Files
musrfit/doc/technical/html/classPFitterFcn.html
2026-10-29 15:47:56 +00:00

555 lines
31 KiB
HTML

<!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.17.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>musrfit: PFitterFcn Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="codefolding.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="cookie.js"></script>
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
const theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default';
mermaid.initialize({ startOnLoad: true, theme: theme });
</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.12.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.17.0 -->
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', codefold.init);
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', () => {
initMenu('',true);
});
</script>
<div id="main-nav-mobile">
</div><!-- main-nav-mobile -->
<div id="main-nav">
<ul class="sm sm-dox" id="main-menu">
<li id="searchBoxPos2" style="float:right">
</li>
</ul>
</div><!-- main-nav -->
</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">
document.addEventListener('DOMContentLoaded',() => { initNavTree('classPFitterFcn.html','','classPFitterFcn-members'); });
</script>
<div id="container">
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">PFitterFcn Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Objective function interface for ROOT Minuit2 minimization.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PFitterFcn:</div>
<div class="dyncontent">
<div class="center"><img src="classPFitterFcn__inherit__graph.png" border="0" usemap="#aPFitterFcn_inherit__map" loading="lazy" alt="Inheritance graph"/></div>
<map name="aPFitterFcn_inherit__map" id="aPFitterFcn_inherit__map">
<area shape="rect" title="Objective function interface for ROOT Minuit2 minimization." alt="" coords="47,81,132,109"/>
<area shape="rect" title=" " alt="" coords="5,5,174,33"/>
<area shape="poly" title=" " alt="" coords="92,49,92,81,87,81,87,49"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for PFitterFcn:</div>
<div class="dyncontent">
<div class="center"><img src="classPFitterFcn__coll__graph.png" border="0" usemap="#aPFitterFcn_coll__map" loading="lazy" alt="Collaboration graph"/></div>
<map name="aPFitterFcn_coll__map" id="aPFitterFcn_coll__map">
<area shape="rect" title="Objective function interface for ROOT Minuit2 minimization." alt="" coords="1127,65,1211,93"/>
<area shape="rect" title=" " alt="" coords="791,40,960,67"/>
<area shape="poly" title=" " alt="" coords="975,58,1103,69,1126,72,1126,77,1102,75,975,64"/>
<area shape="rect" href="classPRunListCollection.html" title="Manager class for all processed μSR run data during fitting." alt="" coords="808,92,943,119"/>
<area shape="poly" title=" " alt="" coords="958,108,1029,108,1102,100,1134,91,1135,96,1103,105,1029,113,958,114"/>
<area shape="rect" href="classPMsrHandler.html" title="MSR file parser and manager for the musrfit framework." alt="" coords="318,90,418,118"/>
<area shape="poly" title=" " alt="" coords="434,106,573,112,702,112,807,107,807,112,702,117,573,117,434,111"/>
<area shape="rect" href="classPRunDataHandler.html" title="Raw data file reader and format converter for μSR data." alt="" coords="573,50,702,78"/>
<area shape="poly" title=" " alt="" coords="434,94,549,78,572,74,573,80,549,84,434,99"/>
<area shape="rect" href="structPStartupOptions.html" title=" " alt="" coords="21,6,142,34"/>
<area shape="poly" title=" " alt="" coords="158,24,222,35,288,54,321,70,349,87,346,92,318,74,286,59,221,40,157,29"/>
<area shape="rect" href="classPMsrGlobalBlock.html" title=" " alt="" coords="19,62,144,90"/>
<area shape="poly" title=" " alt="" coords="160,81,318,97,317,102,159,86"/>
<area shape="rect" href="structPMsrFourierStructure.html" title=" " alt="" coords="7,118,156,146"/>
<area shape="poly" title=" " alt="" coords="171,132,228,130,286,124,322,116,323,121,287,129,229,135,171,137"/>
<area shape="rect" href="structPMsrStatisticStructure.html" title=" " alt="" coords="5,174,158,202"/>
<area shape="poly" title=" " alt="" coords="173,185,230,177,286,161,323,140,351,116,355,120,326,144,288,166,231,182,174,190"/>
<area shape="poly" title=" " alt="" coords="718,75,808,91,807,96,717,80"/>
<area shape="rect" href="structPAny2ManyInfo.html" title=" " alt="" coords="311,13,426,41"/>
<area shape="poly" title=" " alt="" coords="442,34,573,52,572,58,441,39"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aca141b73bdd8ea1648e24e10d873071f" id="r_aca141b73bdd8ea1648e24e10d873071f"><td class="memItemLeft">&#160;</td><td class="memItemRight"><a class="el" href="#aca141b73bdd8ea1648e24e10d873071f">PFitterFcn</a> (<a class="el" href="classPRunListCollection.html">PRunListCollection</a> *runList, Bool_t useChi2)</td></tr>
<tr class="memdesc:aca141b73bdd8ea1648e24e10d873071f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for objective function. <br /></td></tr>
<tr class="memitem:a583614a566b194b6af759a13faee8b16" id="r_a583614a566b194b6af759a13faee8b16"><td class="memItemLeft">&#160;</td><td class="memItemRight"><a class="el" href="#a583614a566b194b6af759a13faee8b16">~PFitterFcn</a> ()</td></tr>
<tr class="memdesc:a583614a566b194b6af759a13faee8b16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="memitem:abd14f65dc42f918087a8d19caab6974b" id="r_abd14f65dc42f918087a8d19caab6974b"><td class="memItemLeft">Double_t&#160;</td><td class="memItemRight"><a class="el" href="#abd14f65dc42f918087a8d19caab6974b">Up</a> () const</td></tr>
<tr class="memdesc:abd14f65dc42f918087a8d19caab6974b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns error definition for Minuit2 (Up value). <br /></td></tr>
<tr class="memitem:a8d4e0fcd2a1cab6c700167c568dc1a05" id="r_a8d4e0fcd2a1cab6c700167c568dc1a05"><td class="memItemLeft">Double_t&#160;</td><td class="memItemRight"><a class="el" href="#a8d4e0fcd2a1cab6c700167c568dc1a05">operator()</a> (const std::vector&lt; Double_t &gt; &amp;par) const</td></tr>
<tr class="memdesc:a8d4e0fcd2a1cab6c700167c568dc1a05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates objective function for given parameters. <br /></td></tr>
<tr class="memitem:aea2f1368f2c5c1846edfda4b3643a330" id="r_aea2f1368f2c5c1846edfda4b3643a330"><td class="memItemLeft">UInt_t&#160;</td><td class="memItemRight"><a class="el" href="#aea2f1368f2c5c1846edfda4b3643a330">GetTotalNoOfFittedBins</a> ()</td></tr>
<tr class="memdesc:aea2f1368f2c5c1846edfda4b3643a330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns total number of bins used in the fit across all runs. <br /></td></tr>
<tr class="memitem:a1e76d7c877c209890a9be768c687f916" id="r_a1e76d7c877c209890a9be768c687f916"><td class="memItemLeft">UInt_t&#160;</td><td class="memItemRight"><a class="el" href="#a1e76d7c877c209890a9be768c687f916">GetNoOfFittedBins</a> (const UInt_t idx)</td></tr>
<tr class="memdesc:a1e76d7c877c209890a9be768c687f916"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of fitted bins for a specific run. <br /></td></tr>
<tr class="memitem:a47dd253617cb0347c5dfe23a3b0bad8e" id="r_a47dd253617cb0347c5dfe23a3b0bad8e"><td class="memItemLeft">void&#160;</td><td class="memItemRight"><a class="el" href="#a47dd253617cb0347c5dfe23a3b0bad8e">CalcExpectedChiSquare</a> (const std::vector&lt; Double_t &gt; &amp;par, Double_t &amp;totalExpectedChisq, std::vector&lt; Double_t &gt; &amp;expectedChisqPerRun)</td></tr>
<tr class="memdesc:a47dd253617cb0347c5dfe23a3b0bad8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates expected χ² (or maxLH) for quality assessment. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pri-attribs" class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a6a7c88008d214c406f905e88880eb82c" id="r_a6a7c88008d214c406f905e88880eb82c"><td class="memItemLeft">Double_t&#160;</td><td class="memItemRight"><a class="el" href="#a6a7c88008d214c406f905e88880eb82c">fUp</a></td></tr>
<tr class="memdesc:a6a7c88008d214c406f905e88880eb82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error definition: 1.0 for χ² (1σ = Δχ²=1), 0.5 for maxLH (1σ = ΔmaxLH=0.5). <br /></td></tr>
<tr class="memitem:ac8bd7bd48c10a805d6d3735106b51d4f" id="r_ac8bd7bd48c10a805d6d3735106b51d4f"><td class="memItemLeft">Bool_t&#160;</td><td class="memItemRight"><a class="el" href="#ac8bd7bd48c10a805d6d3735106b51d4f">fUseChi2</a></td></tr>
<tr class="memdesc:ac8bd7bd48c10a805d6d3735106b51d4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fit mode flag: true = χ² minimization, false = max log-likelihood. <br /></td></tr>
<tr class="memitem:a0a9887fbd00a8df475cd6127e1f4c80e" id="r_a0a9887fbd00a8df475cd6127e1f4c80e"><td class="memItemLeft"><a class="el" href="classPRunListCollection.html">PRunListCollection</a> *&#160;</td><td class="memItemRight"><a class="el" href="#a0a9887fbd00a8df475cd6127e1f4c80e">fRunListCollection</a></td></tr>
<tr class="memdesc:a0a9887fbd00a8df475cd6127e1f4c80e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to preprocessed muSR data collection. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Objective function interface for ROOT Minuit2 minimization. </p>
<p>This class implements the FCNBase interface required by ROOT's Minuit2 minimizer. It provides the objective function (χ² or log-likelihood) that Minuit2 minimizes during parameter optimization.</p>
<p>The class serves as a bridge between musrfit's data structures (<a class="el" href="classPRunListCollection.html" title="Manager class for all processed μSR run data during fitting.">PRunListCollection</a>) and Minuit2's optimization algorithms, calculating the goodness-of-fit measure for any given parameter set.</p>
<dl class="section user"><dt>Fitting modes:</dt><dd><ul>
<li><b>χ² minimization:</b> Standard least-squares fitting for Gaussian errors</li>
<li><b>Maximum likelihood:</b> Poisson statistics, better for low-count data</li>
</ul>
</dd></dl>
<dl class="section user"><dt>Usage in fitting workflow:</dt><dd><ol type="1">
<li><a class="el" href="classPFitter.html">PFitter</a> creates a <a class="el" href="classPFitterFcn.html" title="Objective function interface for ROOT Minuit2 minimization.">PFitterFcn</a> instance with data and fit mode</li>
<li>Minuit2 calls <a class="el" href="#a8d4e0fcd2a1cab6c700167c568dc1a05" title="Evaluates objective function for given parameters.">operator()()</a> repeatedly with trial parameter sets</li>
<li><a class="el" href="#a8d4e0fcd2a1cab6c700167c568dc1a05" title="Evaluates objective function for given parameters.">operator()()</a> calculates χ²/maxLH by evaluating theory vs. data</li>
<li>Minuit2 searches parameter space to minimize the returned value</li>
<li><a class="el" href="#abd14f65dc42f918087a8d19caab6974b" title="Returns error definition for Minuit2 (Up value).">Up()</a> defines the error criterion (Δχ²=1 or ΔmaxLH=0.5 for 1σ)</li>
</ol>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPFitter.html">PFitter</a>, <a class="el" href="classPRunListCollection.html" title="Manager class for all processed μSR run data during fitting.">PRunListCollection</a> </dd>
<dd>
ROOT::Minuit2::FCNBase in ROOT Minuit2 documentation </dd></dl>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8h_source.html#l00065">65</a> of file <a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>.</p>
</div><a name="doc-constructors" id="doc-constructors"></a><h2 id="header-doc-constructors" class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aca141b73bdd8ea1648e24e10d873071f" name="aca141b73bdd8ea1648e24e10d873071f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca141b73bdd8ea1648e24e10d873071f">&#9670;&#160;</a></span>PFitterFcn()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PFitterFcn::PFitterFcn </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPRunListCollection.html">PRunListCollection</a> *</td> <td class="paramname"><span class="paramname"><em>runList</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Bool_t</td> <td class="paramname"><span class="paramname"><em>useChi2</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for objective function. </p>
<p>Initializes the function evaluator with preprocessed data and configures the error definition based on the fitting mode.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runList</td><td>Pointer to collection of preprocessed run data </td></tr>
<tr><td class="paramname">useChi2</td><td>If true, use χ² minimization; if false, use maximum likelihood</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The runList pointer must remain valid for the lifetime of this object.</dd></dl>
<p>Constructor.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runList</td><td>run list collection </td></tr>
<tr><td class="paramname">useChi2</td><td>if true, a chisq fit will be performed, otherwise a log max-likelihood fit will be carried out. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8cpp_source.html#l00041">41</a> of file <a class="el" href="PFitterFcn_8cpp_source.html">PFitterFcn.cpp</a>.</p>
<p class="reference">References <a class="el" href="PFitterFcn_8h_source.html#l00168">fRunListCollection</a>, <a class="el" href="PFitterFcn_8h_source.html#l00166">fUp</a>, and <a class="el" href="PFitterFcn_8h_source.html#l00167">fUseChi2</a>.</p>
</div>
</div>
<a id="a583614a566b194b6af759a13faee8b16" name="a583614a566b194b6af759a13faee8b16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a583614a566b194b6af759a13faee8b16">&#9670;&#160;</a></span>~PFitterFcn()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PFitterFcn::~PFitterFcn </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor. </p>
<p>Destructor </p>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8cpp_source.html#l00059">59</a> of file <a class="el" href="PFitterFcn_8cpp_source.html">PFitterFcn.cpp</a>.</p>
</div>
</div>
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2>
<a id="a47dd253617cb0347c5dfe23a3b0bad8e" name="a47dd253617cb0347c5dfe23a3b0bad8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47dd253617cb0347c5dfe23a3b0bad8e">&#9670;&#160;</a></span>CalcExpectedChiSquare()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PFitterFcn::CalcExpectedChiSquare </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; Double_t &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>par</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Double_t &amp;</td> <td class="paramname"><span class="paramname"><em>totalExpectedChisq</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; Double_t &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>expectedChisqPerRun</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates expected χ² (or maxLH) for quality assessment. </p>
<p>Computes the theoretical expected value of χ² assuming the model is correct. This is used to assess goodness-of-fit:</p><ul>
<li>If observed χ² ≈ expected χ²: fit is consistent with data quality</li>
<li>If observed χ² &gt;&gt; expected χ²: systematic deviations present</li>
<li>If observed χ² &lt;&lt; expected χ²: possible overestimated errors</li>
</ul>
<p>For single histogram fits, expected χ² = NDF. For asymmetry fits, the calculation is more complex due to error propagation.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector for evaluation </td></tr>
<tr><td class="paramname">totalExpectedChisq</td><td>Returns total expected χ²/maxLH (output) </td></tr>
<tr><td class="paramname">expectedChisqPerRun</td><td>Returns expected χ²/maxLH for each run (output)</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The expectedChisqPerRun vector is resized and filled by this method.</dd></dl>
<p>Calculates the expected chisq, expected chisq per run, and chisq per run, if applicable.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td></td></tr>
<tr><td class="paramname">totalExpectedChisq</td><td>expected chisq for all run blocks </td></tr>
<tr><td class="paramname">expectedChisqPerRun</td><td>expected chisq vector for all the run blocks </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8cpp_source.html#l00106">106</a> of file <a class="el" href="PFitterFcn_8cpp_source.html">PFitterFcn.cpp</a>.</p>
<p class="reference">References <a class="el" href="PFitterFcn_8h_source.html#l00168">fRunListCollection</a>, and <a class="el" href="PFitterFcn_8h_source.html#l00167">fUseChi2</a>.</p>
</div>
</div>
<a id="a1e76d7c877c209890a9be768c687f916" name="a1e76d7c877c209890a9be768c687f916"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e76d7c877c209890a9be768c687f916">&#9670;&#160;</a></span>GetNoOfFittedBins()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">UInt_t PFitterFcn::GetNoOfFittedBins </td>
<td>(</td>
<td class="paramtype">const UInt_t</td> <td class="paramname"><span class="paramname"><em>idx</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns number of fitted bins for a specific run. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">idx</td><td>Run index (0-based) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bins fitted for the specified run </dd></dl>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8h_source.html#l00142">142</a> of file <a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>.</p>
<p class="reference">References <a class="el" href="PFitterFcn_8h_source.html#l00168">fRunListCollection</a>.</p>
</div>
</div>
<a id="aea2f1368f2c5c1846edfda4b3643a330" name="aea2f1368f2c5c1846edfda4b3643a330"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea2f1368f2c5c1846edfda4b3643a330">&#9670;&#160;</a></span>GetTotalNoOfFittedBins()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">UInt_t PFitterFcn::GetTotalNoOfFittedBins </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns total number of bins used in the fit across all runs. </p>
<dl class="section return"><dt>Returns</dt><dd>Total count of fitted bins (summed over all runs) </dd></dl>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8h_source.html#l00133">133</a> of file <a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>.</p>
<p class="reference">References <a class="el" href="PFitterFcn_8h_source.html#l00168">fRunListCollection</a>.</p>
</div>
</div>
<a id="a8d4e0fcd2a1cab6c700167c568dc1a05" name="a8d4e0fcd2a1cab6c700167c568dc1a05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d4e0fcd2a1cab6c700167c568dc1a05">&#9670;&#160;</a></span>operator()()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Double_t PFitterFcn::operator() </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; Double_t &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>par</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluates objective function for given parameters. </p>
<p>This is the core function called by Minuit2 during minimization. It computes either χ² or negative log-likelihood by:</p><ol type="1">
<li>Passing parameters to <a class="el" href="classPRunListCollection.html" title="Manager class for all processed μSR run data during fitting.">PRunListCollection</a></li>
<li>Calculating theory predictions for all runs</li>
<li>Comparing theory vs. data across all fitted bins</li>
<li>Returning the total χ²/maxLH value</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector with current trial values </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>χ² value (if fUseChi2=true) or -2×log-likelihood (if fUseChi2=false)</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function must be const as required by FCNBase interface. </dd>
<dd>
For likelihood fits, returns -2×ln(L) so minimization is equivalent to maximizing L.</dd></dl>
<dl class="section user"><dt>Performance:</dt><dd>This function is called hundreds to thousands of times during a fit, so it's optimized for speed (parallel evaluation if OpenMP enabled).</dd></dl>
<p>Minuit2 interface function call routine. This is the function which should be minimized.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>a vector with all the parameters of the function </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8cpp_source.html#l00071">71</a> of file <a class="el" href="PFitterFcn_8cpp_source.html">PFitterFcn.cpp</a>.</p>
<p class="reference">References <a class="el" href="PFitterFcn_8h_source.html#l00168">fRunListCollection</a>, and <a class="el" href="PFitterFcn_8h_source.html#l00167">fUseChi2</a>.</p>
</div>
</div>
<a id="abd14f65dc42f918087a8d19caab6974b" name="abd14f65dc42f918087a8d19caab6974b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd14f65dc42f918087a8d19caab6974b">&#9670;&#160;</a></span>Up()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Double_t PFitterFcn::Up </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns error definition for Minuit2 (Up value). </p>
<p>The "Up" value defines what change in the objective function corresponds to 1σ error bars on parameters:</p><ul>
<li>For χ² fits: Up = 1.0 (parabolic errors, Δχ²=1)</li>
<li>For max likelihood: Up = 0.5 (asymmetric errors, ΔmaxLH=0.5)</li>
</ul>
<p>This value is used by Minuit2's error analysis algorithms (HESSE, MINOS).</p>
<dl class="section return"><dt>Returns</dt><dd>Error definition value (1.0 for χ², 0.5 for likelihood)</dd></dl>
<dl class="section see"><dt>See also</dt><dd>ROOT::Minuit2::FCNBase::Up() in Minuit2 manual </dd></dl>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8h_source.html#l00102">102</a> of file <a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>.</p>
<p class="reference">References <a class="el" href="PFitterFcn_8h_source.html#l00166">fUp</a>.</p>
</div>
</div>
<a name="doc-variable-members" id="doc-variable-members"></a><h2 id="header-doc-variable-members" class="groupheader">Member Data Documentation</h2>
<a id="a0a9887fbd00a8df475cd6127e1f4c80e" name="a0a9887fbd00a8df475cd6127e1f4c80e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a9887fbd00a8df475cd6127e1f4c80e">&#9670;&#160;</a></span>fRunListCollection</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classPRunListCollection.html">PRunListCollection</a>* PFitterFcn::fRunListCollection</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pointer to preprocessed muSR data collection. </p>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8h_source.html#l00168">168</a> of file <a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFitterFcn_8cpp_source.html#l00106">CalcExpectedChiSquare()</a>, <a class="el" href="PFitterFcn_8h_source.html#l00142">GetNoOfFittedBins()</a>, <a class="el" href="PFitterFcn_8h_source.html#l00133">GetTotalNoOfFittedBins()</a>, <a class="el" href="PFitterFcn_8cpp_source.html#l00071">operator()()</a>, and <a class="el" href="PFitterFcn_8cpp_source.html#l00041">PFitterFcn()</a>.</p>
</div>
</div>
<a id="a6a7c88008d214c406f905e88880eb82c" name="a6a7c88008d214c406f905e88880eb82c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a7c88008d214c406f905e88880eb82c">&#9670;&#160;</a></span>fUp</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Double_t PFitterFcn::fUp</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Error definition: 1.0 for χ² (1σ = Δχ²=1), 0.5 for maxLH (1σ = ΔmaxLH=0.5). </p>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8h_source.html#l00166">166</a> of file <a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFitterFcn_8cpp_source.html#l00041">PFitterFcn()</a>, and <a class="el" href="PFitterFcn_8h_source.html#l00102">Up()</a>.</p>
</div>
</div>
<a id="ac8bd7bd48c10a805d6d3735106b51d4f" name="ac8bd7bd48c10a805d6d3735106b51d4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8bd7bd48c10a805d6d3735106b51d4f">&#9670;&#160;</a></span>fUseChi2</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PFitterFcn::fUseChi2</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Fit mode flag: true = χ² minimization, false = max log-likelihood. </p>
<p class="definition">Definition at line <a class="el" href="PFitterFcn_8h_source.html#l00167">167</a> of file <a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PFitterFcn_8cpp_source.html#l00106">CalcExpectedChiSquare()</a>, <a class="el" href="PFitterFcn_8cpp_source.html#l00071">operator()()</a>, and <a class="el" href="PFitterFcn_8cpp_source.html#l00041">PFitterFcn()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/workspace/LMU/musrfit/src/include/<a class="el" href="PFitterFcn_8h_source.html">PFitterFcn.h</a></li>
<li>/workspace/LMU/musrfit/src/classes/<a class="el" href="PFitterFcn_8cpp_source.html">PFitterFcn.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="classPFitterFcn.html">PFitterFcn</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.17.0 </li>
</ul>
</div>
</body>
</html>