Files
musrfit/PFitterFcn_8h_source.html
Gitea Actions 8a8eac55b7 Deploy site
2025-12-27 12:57:44 +00:00

166 lines
21 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>musrfit: /workspace/LMU/musrfit/src/include/PFitterFcn.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">musrfit<span id="projectnumber">&#160;1.9.9</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','Search',true);
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('PFitterFcn_8h_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">PFitterFcn.h</div></div>
</div><!--header-->
<div class="contents">
<a href="PFitterFcn_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"></span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> PFitterFcn.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"></span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> Author: Andreas Suter</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> e-mail: andreas.suter@psi.ch</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"></span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">***************************************************************************/</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * Copyright (C) 2007-2025 by Andreas Suter *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * andreas.suter@psi.ch *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * This program is free software; you can redistribute it and/or modify *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * it under the terms of the GNU General Public License as published by *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * the Free Software Foundation; either version 2 of the License, or *</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * (at your option) any later version. *</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * This program is distributed in the hope that it will be useful, *</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of *</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * GNU General Public License for more details. *</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * You should have received a copy of the GNU General Public License *</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * along with this program; if not, write to the *</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * Free Software Foundation, Inc., *</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> ***************************************************************************/</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#ifndef _PFITTERFCN_H_</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#define _PFITTERFCN_H_</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#include &quot;Minuit2/FCNBase.h&quot;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#include &quot;<a class="code" href="PRunListCollection_8h.html">PRunListCollection.h</a>&quot;</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00065" data-start="{" data-end="};">
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classPFitterFcn.html"> 65</a></span><span class="keyword">class </span><a class="code hl_function" href="classPFitterFcn.html#aca141b73bdd8ea1648e24e10d873071f">PFitterFcn</a> : <span class="keyword">public</span> ROOT::Minuit2::FCNBase</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>{</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="comment">//----------------------------------------------------------------------</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_function" href="classPFitterFcn.html#aca141b73bdd8ea1648e24e10d873071f">PFitterFcn</a>(<a class="code hl_class" href="classPRunListCollection.html">PRunListCollection</a> *runList, Bool_t useChi2);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_function" href="classPFitterFcn.html#a583614a566b194b6af759a13faee8b16">~PFitterFcn</a>();</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="comment">//----------------------------------------------------------------------</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="classPFitterFcn.html#abd14f65dc42f918087a8d19caab6974b"> 102</a></span> Double_t <a class="code hl_function" href="classPFitterFcn.html#abd14f65dc42f918087a8d19caab6974b">Up</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_variable" href="classPFitterFcn.html#a6a7c88008d214c406f905e88880eb82c">fUp</a>; }</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="comment">//----------------------------------------------------------------------</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> Double_t <a class="code hl_function" href="classPFitterFcn.html#a8d4e0fcd2a1cab6c700167c568dc1a05">operator()</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt; &amp;par) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">//----------------------------------------------------------------------</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classPFitterFcn.html#aea2f1368f2c5c1846edfda4b3643a330"> 133</a></span> UInt_t <a class="code hl_function" href="classPFitterFcn.html#aea2f1368f2c5c1846edfda4b3643a330">GetTotalNoOfFittedBins</a>() { <span class="keywordflow">return</span> <a class="code hl_variable" href="classPFitterFcn.html#a0a9887fbd00a8df475cd6127e1f4c80e">fRunListCollection</a>-&gt;GetTotalNoOfBinsFitted(); }</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">//----------------------------------------------------------------------</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="classPFitterFcn.html#a1e76d7c877c209890a9be768c687f916"> 142</a></span> UInt_t <a class="code hl_function" href="classPFitterFcn.html#a1e76d7c877c209890a9be768c687f916">GetNoOfFittedBins</a>(<span class="keyword">const</span> UInt_t idx) { <span class="keywordflow">return</span> <a class="code hl_variable" href="classPFitterFcn.html#a0a9887fbd00a8df475cd6127e1f4c80e">fRunListCollection</a>-&gt;GetNoOfBinsFitted(idx); }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">//----------------------------------------------------------------------</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classPFitterFcn.html#a47dd253617cb0347c5dfe23a3b0bad8e">CalcExpectedChiSquare</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt; &amp;par, Double_t &amp;totalExpectedChisq, std::vector&lt;Double_t&gt; &amp;expectedChisqPerRun);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="classPFitterFcn.html#a6a7c88008d214c406f905e88880eb82c"> 166</a></span> Double_t <a class="code hl_variable" href="classPFitterFcn.html#a6a7c88008d214c406f905e88880eb82c">fUp</a>; </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classPFitterFcn.html#ac8bd7bd48c10a805d6d3735106b51d4f"> 167</a></span> Bool_t <a class="code hl_variable" href="classPFitterFcn.html#ac8bd7bd48c10a805d6d3735106b51d4f">fUseChi2</a>; </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="classPFitterFcn.html#a0a9887fbd00a8df475cd6127e1f4c80e"> 168</a></span> <a class="code hl_class" href="classPRunListCollection.html">PRunListCollection</a> *<a class="code hl_variable" href="classPFitterFcn.html#a0a9887fbd00a8df475cd6127e1f4c80e">fRunListCollection</a>; </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span>};</div>
</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="preprocessor">#endif </span><span class="comment">// _PFITTERFCN_H_</span></div>
<div class="ttc" id="aPRunListCollection_8h_html"><div class="ttname"><a href="PRunListCollection_8h.html">PRunListCollection.h</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_a0a9887fbd00a8df475cd6127e1f4c80e"><div class="ttname"><a href="classPFitterFcn.html#a0a9887fbd00a8df475cd6127e1f4c80e">PFitterFcn::fRunListCollection</a></div><div class="ttdeci">PRunListCollection * fRunListCollection</div><div class="ttdoc">Pointer to preprocessed muSR data collection.</div><div class="ttdef"><b>Definition</b> <a href="#l00168">PFitterFcn.h:168</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_a1e76d7c877c209890a9be768c687f916"><div class="ttname"><a href="classPFitterFcn.html#a1e76d7c877c209890a9be768c687f916">PFitterFcn::GetNoOfFittedBins</a></div><div class="ttdeci">UInt_t GetNoOfFittedBins(const UInt_t idx)</div><div class="ttdoc">Returns number of fitted bins for a specific run.</div><div class="ttdef"><b>Definition</b> <a href="#l00142">PFitterFcn.h:142</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_a47dd253617cb0347c5dfe23a3b0bad8e"><div class="ttname"><a href="classPFitterFcn.html#a47dd253617cb0347c5dfe23a3b0bad8e">PFitterFcn::CalcExpectedChiSquare</a></div><div class="ttdeci">void CalcExpectedChiSquare(const std::vector&lt; Double_t &gt; &amp;par, Double_t &amp;totalExpectedChisq, std::vector&lt; Double_t &gt; &amp;expectedChisqPerRun)</div><div class="ttdoc">Calculates expected χ² (or maxLH) for quality assessment.</div><div class="ttdef"><b>Definition</b> <a href="PFitterFcn_8cpp_source.html#l00106">PFitterFcn.cpp:106</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_a583614a566b194b6af759a13faee8b16"><div class="ttname"><a href="classPFitterFcn.html#a583614a566b194b6af759a13faee8b16">PFitterFcn::~PFitterFcn</a></div><div class="ttdeci">~PFitterFcn()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition</b> <a href="PFitterFcn_8cpp_source.html#l00059">PFitterFcn.cpp:59</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_a6a7c88008d214c406f905e88880eb82c"><div class="ttname"><a href="classPFitterFcn.html#a6a7c88008d214c406f905e88880eb82c">PFitterFcn::fUp</a></div><div class="ttdeci">Double_t fUp</div><div class="ttdoc">Error definition: 1.0 for χ² (1σ = Δχ²=1), 0.5 for maxLH (1σ = ΔmaxLH=0.5)</div><div class="ttdef"><b>Definition</b> <a href="#l00166">PFitterFcn.h:166</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_a8d4e0fcd2a1cab6c700167c568dc1a05"><div class="ttname"><a href="classPFitterFcn.html#a8d4e0fcd2a1cab6c700167c568dc1a05">PFitterFcn::operator()</a></div><div class="ttdeci">Double_t operator()(const std::vector&lt; Double_t &gt; &amp;par) const</div><div class="ttdoc">Evaluates objective function for given parameters.</div><div class="ttdef"><b>Definition</b> <a href="PFitterFcn_8cpp_source.html#l00071">PFitterFcn.cpp:71</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_abd14f65dc42f918087a8d19caab6974b"><div class="ttname"><a href="classPFitterFcn.html#abd14f65dc42f918087a8d19caab6974b">PFitterFcn::Up</a></div><div class="ttdeci">Double_t Up() const</div><div class="ttdoc">Returns error definition for Minuit2 (Up value).</div><div class="ttdef"><b>Definition</b> <a href="#l00102">PFitterFcn.h:102</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_ac8bd7bd48c10a805d6d3735106b51d4f"><div class="ttname"><a href="classPFitterFcn.html#ac8bd7bd48c10a805d6d3735106b51d4f">PFitterFcn::fUseChi2</a></div><div class="ttdeci">Bool_t fUseChi2</div><div class="ttdoc">Fit mode flag: true = χ² minimization, false = max log-likelihood.</div><div class="ttdef"><b>Definition</b> <a href="#l00167">PFitterFcn.h:167</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_aca141b73bdd8ea1648e24e10d873071f"><div class="ttname"><a href="classPFitterFcn.html#aca141b73bdd8ea1648e24e10d873071f">PFitterFcn::PFitterFcn</a></div><div class="ttdeci">PFitterFcn(PRunListCollection *runList, Bool_t useChi2)</div><div class="ttdoc">Constructor for objective function.</div><div class="ttdef"><b>Definition</b> <a href="PFitterFcn_8cpp_source.html#l00041">PFitterFcn.cpp:41</a></div></div>
<div class="ttc" id="aclassPFitterFcn_html_aea2f1368f2c5c1846edfda4b3643a330"><div class="ttname"><a href="classPFitterFcn.html#aea2f1368f2c5c1846edfda4b3643a330">PFitterFcn::GetTotalNoOfFittedBins</a></div><div class="ttdeci">UInt_t GetTotalNoOfFittedBins()</div><div class="ttdoc">Returns total number of bins used in the fit across all runs.</div><div class="ttdef"><b>Definition</b> <a href="#l00133">PFitterFcn.h:133</a></div></div>
<div class="ttc" id="aclassPRunListCollection_html"><div class="ttname"><a href="classPRunListCollection.html">PRunListCollection</a></div><div class="ttdoc">Manager class for all processed μSR run data during fitting.</div><div class="ttdef"><b>Definition</b> <a href="PRunListCollection_8h_source.html#l00140">PRunListCollection.h:141</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_b0856f6b0d80ccb263b2f415c91f9e17.html">include</a></li><li class="navelem"><a class="el" href="PFitterFcn_8h.html">PFitterFcn.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>