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

556 lines
32 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: PFitterFcn Class Reference</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('classPFitterFcn.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classPFitterFcn-members.html">List of all members</a> </div>
<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" 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" 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="1107,56,1191,84"/>
<area shape="rect" title=" " alt="" coords="776,31,945,58"/>
<area shape="poly" title=" " alt="" coords="961,51,1106,64,1106,69,960,56"/>
<area shape="rect" href="classPRunListCollection.html" title="Manager class for all processed μSR run data during fitting." alt="" coords="793,83,928,110"/>
<area shape="poly" title=" " alt="" coords="944,93,1012,90,1082,83,1106,78,1107,84,1083,88,1012,95,944,99"/>
<area shape="rect" href="classPMsrHandler.html" title="MSR file parser and manager for the musrfit framework." alt="" coords="313,84,414,112"/>
<area shape="poly" title=" " alt="" coords="429,99,551,103,692,103,792,98,792,104,692,108,551,108,429,104"/>
<area shape="rect" href="classPRunDataHandler.html" title="Raw data file reader and format converter for μSR data." alt="" coords="563,49,692,77"/>
<area shape="poly" title=" " alt="" coords="428,87,562,69,563,74,429,92"/>
<area shape="rect" href="structPStartupOptions.html" title=" " alt="" coords="21,5,142,33"/>
<area shape="poly" title=" " alt="" coords="158,27,219,39,283,57,337,81,335,86,281,62,218,44,157,32"/>
<area shape="rect" href="classPMsrGlobalBlock.html" title=" " alt="" coords="19,57,144,85"/>
<area shape="poly" title=" " alt="" coords="160,76,313,90,312,96,159,81"/>
<area shape="rect" href="structPMsrFourierStructure.html" title=" " alt="" coords="7,109,156,137"/>
<area shape="poly" title=" " alt="" coords="171,122,281,115,312,109,313,114,282,120,171,127"/>
<area shape="rect" href="structPMsrStatisticStructure.html" title=" " alt="" coords="5,161,158,189"/>
<area shape="poly" title=" " alt="" coords="173,167,227,159,281,144,314,128,342,110,345,115,316,133,283,149,228,164,174,173"/>
<area shape="poly" title=" " alt="" coords="708,72,793,84,792,89,707,77"/>
<area shape="rect" href="structPAny2ManyInfo.html" title=" " alt="" coords="306,12,421,40"/>
<area shape="poly" title=" " alt="" coords="437,33,563,51,562,57,436,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 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" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><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="separator:aca141b73bdd8ea1648e24e10d873071f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a583614a566b194b6af759a13faee8b16" id="r_a583614a566b194b6af759a13faee8b16"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><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="separator:a583614a566b194b6af759a13faee8b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd14f65dc42f918087a8d19caab6974b" id="r_abd14f65dc42f918087a8d19caab6974b"><td class="memItemLeft" align="right" valign="top">Double_t&#160;</td><td class="memItemRight" valign="bottom"><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="separator:abd14f65dc42f918087a8d19caab6974b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d4e0fcd2a1cab6c700167c568dc1a05" id="r_a8d4e0fcd2a1cab6c700167c568dc1a05"><td class="memItemLeft" align="right" valign="top">Double_t&#160;</td><td class="memItemRight" valign="bottom"><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="separator:a8d4e0fcd2a1cab6c700167c568dc1a05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea2f1368f2c5c1846edfda4b3643a330" id="r_aea2f1368f2c5c1846edfda4b3643a330"><td class="memItemLeft" align="right" valign="top">UInt_t&#160;</td><td class="memItemRight" valign="bottom"><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="separator:aea2f1368f2c5c1846edfda4b3643a330"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e76d7c877c209890a9be768c687f916" id="r_a1e76d7c877c209890a9be768c687f916"><td class="memItemLeft" align="right" valign="top">UInt_t&#160;</td><td class="memItemRight" valign="bottom"><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="separator:a1e76d7c877c209890a9be768c687f916"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47dd253617cb0347c5dfe23a3b0bad8e" id="r_a47dd253617cb0347c5dfe23a3b0bad8e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><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>
<tr class="separator:a47dd253617cb0347c5dfe23a3b0bad8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 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" align="right" valign="top">Double_t&#160;</td><td class="memItemRight" valign="bottom"><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="separator:a6a7c88008d214c406f905e88880eb82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bd7bd48c10a805d6d3735106b51d4f" id="r_ac8bd7bd48c10a805d6d3735106b51d4f"><td class="memItemLeft" align="right" valign="top">Bool_t&#160;</td><td class="memItemRight" valign="bottom"><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="separator:ac8bd7bd48c10a805d6d3735106b51d4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a9887fbd00a8df475cd6127e1f4c80e" id="r_a0a9887fbd00a8df475cd6127e1f4c80e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPRunListCollection.html">PRunListCollection</a> *&#160;</td><td class="memItemRight" valign="bottom"><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>
<tr class="separator:a0a9887fbd00a8df475cd6127e1f4c80e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 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><h2 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>
<h2 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>
<h2 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 -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" 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.13.2 </li>
</ul>
</div>
</body>
</html>