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

1719 lines
127 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: PRunMuMinus 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('classPRunMuMinus.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="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classPRunMuMinus-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">PRunMuMinus Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Class for handling negative muon (μ⁻) histogram fits.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PRunMuMinus:</div>
<div class="dyncontent">
<div class="center"><img src="classPRunMuMinus__inherit__graph.png" border="0" usemap="#aPRunMuMinus_inherit__map" alt="Inheritance graph"/></div>
<map name="aPRunMuMinus_inherit__map" id="aPRunMuMinus_inherit__map">
<area shape="rect" title="Class for handling negative muon (μ⁻) histogram fits." alt="" coords="5,81,111,109"/>
<area shape="rect" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types." alt="" coords="18,5,98,33"/>
<area shape="poly" title=" " alt="" coords="61,49,61,81,55,81,55,49"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for PRunMuMinus:</div>
<div class="dyncontent">
<div class="center"><img src="classPRunMuMinus__coll__graph.png" border="0" usemap="#aPRunMuMinus_coll__map" alt="Collaboration graph"/></div>
<map name="aPRunMuMinus_coll__map" id="aPRunMuMinus_coll__map">
<area shape="rect" title="Class for handling negative muon (μ⁻) histogram fits." alt="" coords="936,165,1041,193"/>
<area shape="rect" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types." alt="" coords="806,165,887,193"/>
<area shape="poly" title=" " alt="" coords="902,176,935,176,935,182,902,182"/>
<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="430,100,591,118,687,134,783,154,810,162,808,167,782,159,686,139,590,124,429,105"/>
<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="rect" href="classPMsrRunBlock.html" title=" " alt="" coords="574,165,681,193"/>
<area shape="poly" title=" " alt="" coords="697,176,806,176,806,182,697,182"/>
<area shape="poly" title=" " alt="" coords="709,69,747,79,784,97,802,112,818,130,840,163,836,166,814,133,799,116,781,101,745,84,707,74"/>
<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"/>
<area shape="rect" href="classPRunData.html" title=" " alt="" coords="588,217,668,245"/>
<area shape="poly" title=" " alt="" coords="683,220,782,199,807,191,808,196,783,204,684,225"/>
<area shape="rect" href="structPMetaData.html" title=" " alt="" coords="584,269,671,297"/>
<area shape="poly" title=" " alt="" coords="686,271,734,257,781,237,810,215,832,192,836,195,813,219,784,241,736,262,688,276"/>
</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:a2817c764bb5659503e69a0bcdbe1f010" id="r_a2817c764bb5659503e69a0bcdbe1f010"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2817c764bb5659503e69a0bcdbe1f010">PRunMuMinus</a> ()</td></tr>
<tr class="memdesc:a2817c764bb5659503e69a0bcdbe1f010"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor creating an empty, invalid μ⁻ run object. <br /></td></tr>
<tr class="separator:a2817c764bb5659503e69a0bcdbe1f010"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa68ee9895818eced472ddc5bbe9c52d6" id="r_aa68ee9895818eced472ddc5bbe9c52d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa68ee9895818eced472ddc5bbe9c52d6">PRunMuMinus</a> (<a class="el" href="classPMsrHandler.html">PMsrHandler</a> *msrInfo, <a class="el" href="classPRunDataHandler.html">PRunDataHandler</a> *rawData, UInt_t runNo, <a class="el" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331ab">EPMusrHandleTag</a> tag, Bool_t theoAsData)</td></tr>
<tr class="memdesc:aa68ee9895818eced472ddc5bbe9c52d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main constructor initializing a μ⁻ run from MSR file and raw data. <br /></td></tr>
<tr class="separator:aa68ee9895818eced472ddc5bbe9c52d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07263c85cb90840ff1dbd66a423b0dd7" id="r_a07263c85cb90840ff1dbd66a423b0dd7"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a07263c85cb90840ff1dbd66a423b0dd7">~PRunMuMinus</a> ()</td></tr>
<tr class="memdesc:a07263c85cb90840ff1dbd66a423b0dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor cleaning up allocated resources. <br /></td></tr>
<tr class="separator:a07263c85cb90840ff1dbd66a423b0dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe0df325a415b34082e7604d3d99ce32" id="r_abe0df325a415b34082e7604d3d99ce32"><td class="memItemLeft" align="right" valign="top">virtual Double_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abe0df325a415b34082e7604d3d99ce32">CalcChiSquare</a> (const std::vector&lt; Double_t &gt; &amp;par)</td></tr>
<tr class="memdesc:abe0df325a415b34082e7604d3d99ce32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates χ² between μ⁻ data and theory (least-squares fit metric). <br /></td></tr>
<tr class="separator:abe0df325a415b34082e7604d3d99ce32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64e3216f832ddb5c0b219c7795ea4d66" id="r_a64e3216f832ddb5c0b219c7795ea4d66"><td class="memItemLeft" align="right" valign="top">virtual Double_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a64e3216f832ddb5c0b219c7795ea4d66">CalcChiSquareExpected</a> (const std::vector&lt; Double_t &gt; &amp;par)</td></tr>
<tr class="memdesc:a64e3216f832ddb5c0b219c7795ea4d66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates expected χ² based on theory predictions (statistical diagnostic). <br /></td></tr>
<tr class="separator:a64e3216f832ddb5c0b219c7795ea4d66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae20a804fc578c31788171f710f865210" id="r_ae20a804fc578c31788171f710f865210"><td class="memItemLeft" align="right" valign="top">virtual Double_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae20a804fc578c31788171f710f865210">CalcMaxLikelihood</a> (const std::vector&lt; Double_t &gt; &amp;par)</td></tr>
<tr class="memdesc:ae20a804fc578c31788171f710f865210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates negative log-likelihood for Poisson statistics (low-count fit metric). <br /></td></tr>
<tr class="separator:ae20a804fc578c31788171f710f865210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7941f4ab9ecf135916427b862a4f0796" id="r_a7941f4ab9ecf135916427b862a4f0796"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7941f4ab9ecf135916427b862a4f0796">CalcTheory</a> ()</td></tr>
<tr class="memdesc:a7941f4ab9ecf135916427b862a4f0796"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates theory function at all data points (or high-resolution grid). <br /></td></tr>
<tr class="separator:a7941f4ab9ecf135916427b862a4f0796"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76be61552695c0c8bc1dc4680397e11d" id="r_a76be61552695c0c8bc1dc4680397e11d"><td class="memItemLeft" align="right" valign="top">virtual UInt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a76be61552695c0c8bc1dc4680397e11d">GetNoOfFitBins</a> ()</td></tr>
<tr class="memdesc:a76be61552695c0c8bc1dc4680397e11d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bins included in the fit range. <br /></td></tr>
<tr class="separator:a76be61552695c0c8bc1dc4680397e11d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d60a6ee87cd46de7e9a5798ceb1970d" id="r_a6d60a6ee87cd46de7e9a5798ceb1970d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6d60a6ee87cd46de7e9a5798ceb1970d">SetFitRangeBin</a> (const TString fitRange)</td></tr>
<tr class="memdesc:a6d60a6ee87cd46de7e9a5798ceb1970d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets fit range using bin-offset specification (COMMANDS block syntax). <br /></td></tr>
<tr class="separator:a6d60a6ee87cd46de7e9a5798ceb1970d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06a7d84b23c70fa19beeacbb72591419" id="r_a06a7d84b23c70fa19beeacbb72591419"><td class="memItemLeft" align="right" valign="top">virtual Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a06a7d84b23c70fa19beeacbb72591419">GetStartTimeBin</a> ()</td></tr>
<tr class="memdesc:a06a7d84b23c70fa19beeacbb72591419"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first bin index in the fit range. <br /></td></tr>
<tr class="separator:a06a7d84b23c70fa19beeacbb72591419"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe411be92e5fe6dc6e0646f781c61893" id="r_abe411be92e5fe6dc6e0646f781c61893"><td class="memItemLeft" align="right" valign="top">virtual Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abe411be92e5fe6dc6e0646f781c61893">GetEndTimeBin</a> ()</td></tr>
<tr class="memdesc:abe411be92e5fe6dc6e0646f781c61893"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the last bin index in the fit range (exclusive). <br /></td></tr>
<tr class="separator:abe411be92e5fe6dc6e0646f781c61893"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ce94ec1a181fcbc622747a64652b479" id="r_a3ce94ec1a181fcbc622747a64652b479"><td class="memItemLeft" align="right" valign="top">virtual Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3ce94ec1a181fcbc622747a64652b479">GetPacking</a> ()</td></tr>
<tr class="memdesc:a3ce94ec1a181fcbc622747a64652b479"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the bin packing factor. <br /></td></tr>
<tr class="separator:a3ce94ec1a181fcbc622747a64652b479"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7a4e5bf6faa30254e8abf42ea6ff76d" id="r_ad7a4e5bf6faa30254e8abf42ea6ff76d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad7a4e5bf6faa30254e8abf42ea6ff76d">CalcNoOfFitBins</a> ()</td></tr>
<tr class="memdesc:ad7a4e5bf6faa30254e8abf42ea6ff76d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates start/end bin indices from fit time range. <br /></td></tr>
<tr class="separator:ad7a4e5bf6faa30254e8abf42ea6ff76d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classPRunBase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classPRunBase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classPRunBase.html">PRunBase</a></td></tr>
<tr class="memitem:ae5fc9bd22de779aff2bbbcbf14b90d42 inherit pub_methods_classPRunBase" id="r_ae5fc9bd22de779aff2bbbcbf14b90d42"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ae5fc9bd22de779aff2bbbcbf14b90d42">PRunBase</a> ()</td></tr>
<tr class="memdesc:ae5fc9bd22de779aff2bbbcbf14b90d42 inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:ae5fc9bd22de779aff2bbbcbf14b90d42 inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f9caf361812bebe3f63146878e28b18 inherit pub_methods_classPRunBase" id="r_a3f9caf361812bebe3f63146878e28b18"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a3f9caf361812bebe3f63146878e28b18">PRunBase</a> (<a class="el" href="classPMsrHandler.html">PMsrHandler</a> *msrInfo, <a class="el" href="classPRunDataHandler.html">PRunDataHandler</a> *rawData, UInt_t runNo, <a class="el" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331ab">EPMusrHandleTag</a> tag)</td></tr>
<tr class="memdesc:a3f9caf361812bebe3f63146878e28b18 inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor initializing run from MSR file and raw data. <br /></td></tr>
<tr class="separator:a3f9caf361812bebe3f63146878e28b18 inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1048c017a4891ed5ca092377f73fa83a inherit pub_methods_classPRunBase" id="r_a1048c017a4891ed5ca092377f73fa83a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a1048c017a4891ed5ca092377f73fa83a">~PRunBase</a> ()</td></tr>
<tr class="memdesc:a1048c017a4891ed5ca092377f73fa83a inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:a1048c017a4891ed5ca092377f73fa83a inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59cbd8ad7cb144c99c1dccefa4e200ff inherit pub_methods_classPRunBase" id="r_a59cbd8ad7cb144c99c1dccefa4e200ff"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a59cbd8ad7cb144c99c1dccefa4e200ff">SetFitRange</a> (<a class="el" href="PMusr_8h.html#a93e3841e16074fd3c7648d8fc7b742f4">PDoublePairVector</a> fitRange)</td></tr>
<tr class="memdesc:a59cbd8ad7cb144c99c1dccefa4e200ff inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the fit time range for this run. <br /></td></tr>
<tr class="separator:a59cbd8ad7cb144c99c1dccefa4e200ff inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac452c100e88628bad5a6017ae08b5bcb inherit pub_methods_classPRunBase" id="r_ac452c100e88628bad5a6017ae08b5bcb"><td class="memItemLeft" align="right" valign="top">virtual UInt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ac452c100e88628bad5a6017ae08b5bcb">GetRunNo</a> ()</td></tr>
<tr class="memdesc:ac452c100e88628bad5a6017ae08b5bcb inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the run number (0-based index in MSR file). <br /></td></tr>
<tr class="separator:ac452c100e88628bad5a6017ae08b5bcb inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3e949dbc18ee0596270d059f5d6a2c1 inherit pub_methods_classPRunBase" id="r_ae3e949dbc18ee0596270d059f5d6a2c1"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classPRunData.html">PRunData</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ae3e949dbc18ee0596270d059f5d6a2c1">GetData</a> ()</td></tr>
<tr class="memdesc:ae3e949dbc18ee0596270d059f5d6a2c1 inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer to processed data container. <br /></td></tr>
<tr class="separator:ae3e949dbc18ee0596270d059f5d6a2c1 inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b2209bc7e4adf26ad448b78d726c366 inherit pub_methods_classPRunBase" id="r_a0b2209bc7e4adf26ad448b78d726c366"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a0b2209bc7e4adf26ad448b78d726c366">CleanUp</a> ()</td></tr>
<tr class="memdesc:a0b2209bc7e4adf26ad448b78d726c366 inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cleans up internal data structures. <br /></td></tr>
<tr class="separator:a0b2209bc7e4adf26ad448b78d726c366 inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a269787baf9a101ce181ef0b5a79b9e0d inherit pub_methods_classPRunBase" id="r_a269787baf9a101ce181ef0b5a79b9e0d"><td class="memItemLeft" align="right" valign="top">virtual Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a269787baf9a101ce181ef0b5a79b9e0d">IsValid</a> ()</td></tr>
<tr class="memdesc:a269787baf9a101ce181ef0b5a79b9e0d inherit pub_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns validity status of this run object. <br /></td></tr>
<tr class="separator:a269787baf9a101ce181ef0b5a79b9e0d inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a3a96c9156e9207dcc7b1f95a1fcbb9e5" id="r_a3a96c9156e9207dcc7b1f95a1fcbb9e5"><td class="memItemLeft" align="right" valign="top">virtual Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5">PrepareData</a> ()</td></tr>
<tr class="memdesc:a3a96c9156e9207dcc7b1f95a1fcbb9e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main data preparation routine for μ⁻ fitting and viewing. <br /></td></tr>
<tr class="separator:a3a96c9156e9207dcc7b1f95a1fcbb9e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba3d803c4f6debdc66145d4ec9a9fa23" id="r_aba3d803c4f6debdc66145d4ec9a9fa23"><td class="memItemLeft" align="right" valign="top">virtual Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aba3d803c4f6debdc66145d4ec9a9fa23">PrepareFitData</a> (<a class="el" href="classPRawRunData.html">PRawRunData</a> *runData, const UInt_t histoNo)</td></tr>
<tr class="memdesc:aba3d803c4f6debdc66145d4ec9a9fa23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares μ⁻ histogram data for fitting. <br /></td></tr>
<tr class="separator:aba3d803c4f6debdc66145d4ec9a9fa23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebb1bb9b7b233bc09bd6a996e9ce0e87" id="r_aebb1bb9b7b233bc09bd6a996e9ce0e87"><td class="memItemLeft" align="right" valign="top">virtual Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aebb1bb9b7b233bc09bd6a996e9ce0e87">PrepareRawViewData</a> (<a class="el" href="classPRawRunData.html">PRawRunData</a> *runData, const UInt_t histoNo)</td></tr>
<tr class="memdesc:aebb1bb9b7b233bc09bd6a996e9ce0e87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares μ⁻ histogram data for viewing/plotting (minimal processing). <br /></td></tr>
<tr class="separator:aebb1bb9b7b233bc09bd6a996e9ce0e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classPRunBase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classPRunBase')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classPRunBase.html">PRunBase</a></td></tr>
<tr class="memitem:ac035dac111f8726a36bafe86b2181054 inherit pro_methods_classPRunBase" id="r_ac035dac111f8726a36bafe86b2181054"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ac035dac111f8726a36bafe86b2181054">CalculateKaiserFilterCoeff</a> (Double_t wc, Double_t A, Double_t dw)</td></tr>
<tr class="memdesc:ac035dac111f8726a36bafe86b2181054 inherit pro_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates Kaiser window FIR filter coefficients for RRF smoothing. <br /></td></tr>
<tr class="separator:ac035dac111f8726a36bafe86b2181054 inherit pro_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af75ae97c44331887fa56ee247d8e92ac inherit pro_methods_classPRunBase" id="r_af75ae97c44331887fa56ee247d8e92ac"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#af75ae97c44331887fa56ee247d8e92ac">FilterTheo</a> ()</td></tr>
<tr class="memdesc:af75ae97c44331887fa56ee247d8e92ac inherit pro_methods_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies Kaiser FIR filter to theory values for RRF fits. <br /></td></tr>
<tr class="separator:af75ae97c44331887fa56ee247d8e92ac inherit pro_methods_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a975704a1a49fed0d3bb5941af1f8fce5" id="r_a975704a1a49fed0d3bb5941af1f8fce5"><td class="memItemLeft" align="right" valign="top">virtual Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a975704a1a49fed0d3bb5941af1f8fce5">GetProperT0</a> (<a class="el" href="classPRawRunData.html">PRawRunData</a> *runData, <a class="el" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock, <a class="el" href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a> &amp;histoNo)</td></tr>
<tr class="memdesc:a975704a1a49fed0d3bb5941af1f8fce5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines and validates t0 values for μ⁻ histogram. <br /></td></tr>
<tr class="separator:a975704a1a49fed0d3bb5941af1f8fce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6849d8b428569486521ae56af88caf94" id="r_a6849d8b428569486521ae56af88caf94"><td class="memItemLeft" align="right" valign="top">virtual Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6849d8b428569486521ae56af88caf94">GetProperDataRange</a> ()</td></tr>
<tr class="memdesc:a6849d8b428569486521ae56af88caf94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines data range (region of valid histogram data). <br /></td></tr>
<tr class="separator:a6849d8b428569486521ae56af88caf94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74f9bfd0610af078c6bb724398148ac1" id="r_a74f9bfd0610af078c6bb724398148ac1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a74f9bfd0610af078c6bb724398148ac1">GetProperFitRange</a> (<a class="el" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock)</td></tr>
<tr class="memdesc:a74f9bfd0610af078c6bb724398148ac1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines fit range from MSR file settings. <br /></td></tr>
<tr class="separator:a74f9bfd0610af078c6bb724398148ac1"><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:afd5f4969b908b4a57e95dd1f53ae7702" id="r_afd5f4969b908b4a57e95dd1f53ae7702"><td class="memItemLeft" align="right" valign="top">UInt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afd5f4969b908b4a57e95dd1f53ae7702">fNoOfFitBins</a></td></tr>
<tr class="memdesc:afd5f4969b908b4a57e95dd1f53ae7702"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of bins within fit range (between fStartTimeBin and fEndTimeBin) <br /></td></tr>
<tr class="separator:afd5f4969b908b4a57e95dd1f53ae7702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f6c710527bc6cc3dcb4542aa9d32a39" id="r_a2f6c710527bc6cc3dcb4542aa9d32a39"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f6c710527bc6cc3dcb4542aa9d32a39">fPacking</a></td></tr>
<tr class="memdesc:a2f6c710527bc6cc3dcb4542aa9d32a39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bin packing factor (REQUIRED for μ⁻). <br /></td></tr>
<tr class="separator:a2f6c710527bc6cc3dcb4542aa9d32a39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1578acd55d3ef318e0e63f517adfc983" id="r_a1578acd55d3ef318e0e63f517adfc983"><td class="memItemLeft" align="right" valign="top">Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1578acd55d3ef318e0e63f517adfc983">fTheoAsData</a></td></tr>
<tr class="memdesc:a1578acd55d3ef318e0e63f517adfc983"><td class="mdescLeft">&#160;</td><td class="mdescRight">Theory calculation mode flag. <br /></td></tr>
<tr class="separator:a1578acd55d3ef318e0e63f517adfc983"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f9ea96ed2ba33a888c32efdc907950a" id="r_a2f9ea96ed2ba33a888c32efdc907950a"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f9ea96ed2ba33a888c32efdc907950a">fGoodBins</a> [2]</td></tr>
<tr class="memdesc:a2f9ea96ed2ba33a888c32efdc907950a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Good bin markers for bin-based fit range specification. <br /></td></tr>
<tr class="separator:a2f9ea96ed2ba33a888c32efdc907950a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88d70a3eb1263bd5f7351920f28bd6b5" id="r_a88d70a3eb1263bd5f7351920f28bd6b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a88d70a3eb1263bd5f7351920f28bd6b5">fForward</a></td></tr>
<tr class="memdesc:a88d70a3eb1263bd5f7351920f28bd6b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Forward detector histogram data (background-corrected, packed). <br /></td></tr>
<tr class="separator:a88d70a3eb1263bd5f7351920f28bd6b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba22dd04f7bdde0de5231db0eeee161e" id="r_aba22dd04f7bdde0de5231db0eeee161e"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aba22dd04f7bdde0de5231db0eeee161e">fStartTimeBin</a></td></tr>
<tr class="memdesc:aba22dd04f7bdde0de5231db0eeee161e"><td class="mdescLeft">&#160;</td><td class="mdescRight">First bin index in fit range (inclusive, 0-based after packing) <br /></td></tr>
<tr class="separator:aba22dd04f7bdde0de5231db0eeee161e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac4549dbf197ff0a8217b5bfdaf2b9a5" id="r_aac4549dbf197ff0a8217b5bfdaf2b9a5"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aac4549dbf197ff0a8217b5bfdaf2b9a5">fEndTimeBin</a></td></tr>
<tr class="memdesc:aac4549dbf197ff0a8217b5bfdaf2b9a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Last bin index in fit range (exclusive: loop as i &lt; fEndTimeBin) <br /></td></tr>
<tr class="separator:aac4549dbf197ff0a8217b5bfdaf2b9a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classPRunBase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_attribs_classPRunBase')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classPRunBase.html">PRunBase</a></td></tr>
<tr class="memitem:a12aa647fe8c42bff6712a1b065d40e9d inherit pro_attribs_classPRunBase" id="r_a12aa647fe8c42bff6712a1b065d40e9d"><td class="memItemLeft" align="right" valign="top">Bool_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">fValid</a></td></tr>
<tr class="memdesc:a12aa647fe8c42bff6712a1b065d40e9d inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicating if run object initialized successfully; false if any error occurred. <br /></td></tr>
<tr class="separator:a12aa647fe8c42bff6712a1b065d40e9d inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6465ea668810646cd74b40a4e25ca42 inherit pro_attribs_classPRunBase" id="r_ab6465ea668810646cd74b40a4e25ca42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331ab">EPMusrHandleTag</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ab6465ea668810646cd74b40a4e25ca42">fHandleTag</a></td></tr>
<tr class="memdesc:ab6465ea668810646cd74b40a4e25ca42 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation mode: kFit (fitting), kView (display only), kEmpty (uninitialized) <br /></td></tr>
<tr class="separator:ab6465ea668810646cd74b40a4e25ca42 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeccaae88c9db0804981e1bd3f81fc57a inherit pro_attribs_classPRunBase" id="r_aeccaae88c9db0804981e1bd3f81fc57a"><td class="memItemLeft" align="right" valign="top">Int_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#aeccaae88c9db0804981e1bd3f81fc57a">fRunNo</a></td></tr>
<tr class="memdesc:aeccaae88c9db0804981e1bd3f81fc57a inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run number (0-based index in MSR file RUN blocks) <br /></td></tr>
<tr class="separator:aeccaae88c9db0804981e1bd3f81fc57a inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6deb4b8c63d7754ab2222659e2920631 inherit pro_attribs_classPRunBase" id="r_a6deb4b8c63d7754ab2222659e2920631"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPMsrHandler.html">PMsrHandler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a></td></tr>
<tr class="memdesc:a6deb4b8c63d7754ab2222659e2920631 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to MSR file handler (owned externally, not deleted here) <br /></td></tr>
<tr class="separator:a6deb4b8c63d7754ab2222659e2920631 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1a2a02da26466564461e7a34267387f inherit pro_attribs_classPRunBase" id="r_af1a2a02da26466564461e7a34267387f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPMsrRunBlock.html">PMsrRunBlock</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a></td></tr>
<tr class="memdesc:af1a2a02da26466564461e7a34267387f inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to this run's RUN block settings within fMsrInfo. <br /></td></tr>
<tr class="separator:af1a2a02da26466564461e7a34267387f inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8852c15177607e0d4383fc2e69e8ef7 inherit pro_attribs_classPRunBase" id="r_ac8852c15177607e0d4383fc2e69e8ef7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPRunDataHandler.html">PRunDataHandler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ac8852c15177607e0d4383fc2e69e8ef7">fRawData</a></td></tr>
<tr class="memdesc:ac8852c15177607e0d4383fc2e69e8ef7 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to raw data handler (owned externally, not deleted here) <br /></td></tr>
<tr class="separator:ac8852c15177607e0d4383fc2e69e8ef7 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2cb35c79fbebe631fdb565946417eed inherit pro_attribs_classPRunBase" id="r_ac2cb35c79fbebe631fdb565946417eed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classPRunData.html">PRunData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a></td></tr>
<tr class="memdesc:ac2cb35c79fbebe631fdb565946417eed inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processed data container: background-corrected, packed, with theory values. <br /></td></tr>
<tr class="separator:ac2cb35c79fbebe631fdb565946417eed inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ec9b72abc7a54f1e0f4c12d45bb0357 inherit pro_attribs_classPRunBase" id="r_a0ec9b72abc7a54f1e0f4c12d45bb0357"><td class="memItemLeft" align="right" valign="top">Double_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a></td></tr>
<tr class="memdesc:a0ec9b72abc7a54f1e0f4c12d45bb0357 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time resolution of raw histogram data in microseconds (μs), e.g., 0.01953125 μs for PSI GPS. <br /></td></tr>
<tr class="separator:a0ec9b72abc7a54f1e0f4c12d45bb0357 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8752e8f10acb6a675a22f45881faa044 inherit pro_attribs_classPRunBase" id="r_a8752e8f10acb6a675a22f45881faa044"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structPMetaData.html">PMetaData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a></td></tr>
<tr class="memdesc:a8752e8f10acb6a675a22f45881faa044 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental metadata extracted from data file header (magnetic field, temperature, beam energy) <br /></td></tr>
<tr class="separator:a8752e8f10acb6a675a22f45881faa044 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3be9a269b89805d9e1a5ffa1a8d6ec9 inherit pro_attribs_classPRunBase" id="r_ad3be9a269b89805d9e1a5ffa1a8d6ec9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a></td></tr>
<tr class="memdesc:ad3be9a269b89805d9e1a5ffa1a8d6ec9 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time-zero bin values for all histograms in this run (forward, backward, etc.) <br /></td></tr>
<tr class="separator:ad3be9a269b89805d9e1a5ffa1a8d6ec9 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5f96afcdca519f9a33a9fd9a3a6c67d inherit pro_attribs_classPRunBase" id="r_ab5f96afcdca519f9a33a9fd9a3a6c67d"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a></td></tr>
<tr class="memdesc:ab5f96afcdca519f9a33a9fd9a3a6c67d inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time-zero bin values for additional runs to be added to main run. <br /></td></tr>
<tr class="separator:ab5f96afcdca519f9a33a9fd9a3a6c67d inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a626805d2fbd201472f0487474bb40 inherit pro_attribs_classPRunBase" id="r_af4a626805d2fbd201472f0487474bb40"><td class="memItemLeft" align="right" valign="top">Double_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a></td></tr>
<tr class="memdesc:af4a626805d2fbd201472f0487474bb40 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fit range start time in microseconds (μs) relative to t0. <br /></td></tr>
<tr class="separator:af4a626805d2fbd201472f0487474bb40 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4736fa656bba18cc5b61a1273ac839d4 inherit pro_attribs_classPRunBase" id="r_a4736fa656bba18cc5b61a1273ac839d4"><td class="memItemLeft" align="right" valign="top">Double_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a></td></tr>
<tr class="memdesc:a4736fa656bba18cc5b61a1273ac839d4 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fit range end time in microseconds (μs) relative to t0. <br /></td></tr>
<tr class="separator:a4736fa656bba18cc5b61a1273ac839d4 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4756c8b6e7d3764587f57bc62f48f719 inherit pro_attribs_classPRunBase" id="r_a4756c8b6e7d3764587f57bc62f48f719"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a></td></tr>
<tr class="memdesc:a4756c8b6e7d3764587f57bc62f48f719 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cached values of user-defined functions from FUNCTIONS block, evaluated at current parameters. <br /></td></tr>
<tr class="separator:a4756c8b6e7d3764587f57bc62f48f719 inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96aeb9099bceb6456c90d5b03d2dc3ec inherit pro_attribs_classPRunBase" id="r_a96aeb9099bceb6456c90d5b03d2dc3ec"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classPTheory.html">PTheory</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">fTheory</a></td></tr>
<tr class="memdesc:a96aeb9099bceb6456c90d5b03d2dc3ec inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Theory function evaluator (smart pointer, automatically deleted) <br /></td></tr>
<tr class="separator:a96aeb9099bceb6456c90d5b03d2dc3ec inherit pro_attribs_classPRunBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51b5de438b62d959ef02c23daadbb860 inherit pro_attribs_classPRunBase" id="r_a51b5de438b62d959ef02c23daadbb860"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPRunBase.html#a51b5de438b62d959ef02c23daadbb860">fKaiserFilter</a></td></tr>
<tr class="memdesc:a51b5de438b62d959ef02c23daadbb860 inherit pro_attribs_classPRunBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">Kaiser window FIR filter coefficients for smoothing RRF theory curves. <br /></td></tr>
<tr class="separator:a51b5de438b62d959ef02c23daadbb860 inherit pro_attribs_classPRunBase"><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>Class for handling negative muon (μ⁻) histogram fits. </p>
<p><a class="el" href="classPRunMuMinus.html" title="Class for handling negative muon (μ⁻) histogram fits.">PRunMuMinus</a> implements single-histogram fitting specialized for negative muon measurements. Negative muons (μ⁻) have significantly different properties compared to positive muons (μ⁺), requiring dedicated handling:</p>
<h1><a class="anchor" id="muminus_physics"></a>
Physics of Negative Muons</h1>
<p><b>Key differences from μ⁺:</b></p><ul>
<li><b>Charge:</b> Negatively charged (antimuon has positive charge)</li>
<li><b>Behavior in matter:</b> μ⁻ are captured by nuclei rather than stopping interstitially</li>
<li><b>Cascade process:</b> μ⁻ cascade down atomic orbitals before nuclear capture</li>
<li><b>Lifetime:</b> Effective lifetime is reduced by nuclear capture (typically ~100-1000 ns vs. 2.2 μs free lifetime)</li>
<li><b>Decay signature:</b> Different detector response due to capture vs. decay</li>
<li><b>Applications:</b> Elemental analysis, nuclear structure, muonic atom spectroscopy</li>
</ul>
<h1><a class="anchor" id="muminus_data"></a>
Data Structure</h1>
<p>Unlike asymmetry measurements, μ⁻ fits use a single forward histogram:</p><ul>
<li>One detector histogram (typically forward detector)</li>
<li>No asymmetry calculation (no forward/backward pair)</li>
<li>Direct histogram fitting with background subtraction</li>
<li>Bin packing for improved statistics</li>
</ul>
<h1><a class="anchor" id="muminus_analysis"></a>
Analysis Workflow</h1>
<ol type="1">
<li><b>Data Loading:</b> Load single histogram from data file</li>
<li><b>Background Subtraction:</b> Remove constant or estimated background</li>
<li><b>Time-Zero Determination:</b> Identify μ⁻ arrival time (t0)</li>
<li><b>Bin Packing:</b> Rebin data if specified (required parameter)</li>
<li><b>Theory Calculation:</b> Evaluate capture-modified exponential decay</li>
<li><b>Fit Metric:</b> χ² or maximum likelihood minimization</li>
</ol>
<h1><a class="anchor" id="muminus_theory"></a>
Typical Theory Functions</h1>
<p>Common models for μ⁻ data include:</p><ul>
<li><b>Simple exponential:</b> N(t) = N₀ · exp(-t/τ_eff)</li>
<li><b>With relaxation:</b> N(t) = N₀ · exp(-t/τ_eff) · [1 + A·cos(ωt + φ)]</li>
<li><b>Multi-component:</b> Sum of exponentials for different capture sites</li>
</ul>
<p>where τ_eff combines free decay and nuclear capture rates: </p><p class="formulaDsp">
<picture><source srcset="form_28_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \frac{1}{\tau_{\rm eff}} = \frac{1}{\tau_{\mu}} + \lambda_{\rm capture} \]" src="form_28.png"/></picture>
</p>
<h1><a class="anchor" id="muminus_usage"></a>
Example Usage</h1>
<div class="fragment"><div class="line"><span class="comment">// In MSR file RUN block:</span></div>
<div class="line">RUN data/muminus_run2425 MUD PSI MUSR-ROOT (name beamline)</div>
<div class="line"> fittype 10 (MuMinus)</div>
<div class="line"> map 1 (forward histogram)</div>
<div class="line"> forward 1</div>
<div class="line"> packing 10 (required!)</div>
<div class="line"> background 50 150 (pre-t0 background)</div>
<div class="line"> data 200 2000</div>
<div class="line"> t0 210.5</div>
<div class="line"> fit 0.1 10.0</div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPRunSingleHisto.html" title="Class for fitting single detector histograms (basic time-differential μSR).">PRunSingleHisto</a> for standard positive muon single histogram fits </dd>
<dd>
<a class="el" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types.">PRunBase</a> for base class interface and common functionality </dd></dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00097">97</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a2817c764bb5659503e69a0bcdbe1f010" name="a2817c764bb5659503e69a0bcdbe1f010"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2817c764bb5659503e69a0bcdbe1f010">&#9670;&#160;</a></span>PRunMuMinus() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PRunMuMinus::PRunMuMinus </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor creating an empty, invalid μ⁻ run object. </p>
<p>Creates an uninitialized run object with all values set to defaults. This constructor is needed for creating vectors of <a class="el" href="classPRunMuMinus.html" title="Class for handling negative muon (μ⁻) histogram fits.">PRunMuMinus</a> objects but the object is not usable until properly initialized via the main constructor.</p>
<p>Initializes all member variables to default/invalid states:</p><ul>
<li>Bin counts and indices set to -1 (invalid)</li>
<li>Packing set to -1 (unspecified - will cause error if used)</li>
<li>Theory mode set to false (high-resolution grid)</li>
<li>Handle tag set to kEmpty (uninitialized)</li>
</ul>
<p>This constructor is needed for creating vectors of <a class="el" href="classPRunMuMinus.html" title="Class for handling negative muon (μ⁻) histogram fits.">PRunMuMinus</a> objects, but the resulting object cannot be used for fitting until properly initialized via the main constructor.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#aa68ee9895818eced472ddc5bbe9c52d6" title="Main constructor initializing a μ⁻ run from MSR file and raw data.">PRunMuMinus(PMsrHandler*, PRunDataHandler*, UInt_t, EPMusrHandleTag, Bool_t)</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00064">64</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8h_source.html#l00430">fEndTimeBin</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00414">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00268">PRunBase::fHandleTag</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00376">fNoOfFitBins</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00391">fPacking</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00429">fStartTimeBin</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00402">fTheoAsData</a>, <a class="el" href="PMusr_8h_source.html#l00414">kEmpty</a>, and <a class="el" href="PRunBase_8cpp_source.html#l00054">PRunBase::PRunBase()</a>.</p>
</div>
</div>
<a id="aa68ee9895818eced472ddc5bbe9c52d6" name="aa68ee9895818eced472ddc5bbe9c52d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa68ee9895818eced472ddc5bbe9c52d6">&#9670;&#160;</a></span>PRunMuMinus() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PRunMuMinus::PRunMuMinus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPMsrHandler.html">PMsrHandler</a> *</td> <td class="paramname"><span class="paramname"><em>msrInfo</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPRunDataHandler.html">PRunDataHandler</a> *</td> <td class="paramname"><span class="paramname"><em>rawData</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UInt_t</td> <td class="paramname"><span class="paramname"><em>runNo</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331ab">EPMusrHandleTag</a></td> <td class="paramname"><span class="paramname"><em>tag</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Bool_t</td> <td class="paramname"><span class="paramname"><em>theoAsData</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Main constructor initializing a μ⁻ run from MSR file and raw data. </p>
<p>Performs comprehensive initialization:</p><ol type="1">
<li>Validates packing parameter (REQUIRED for μ⁻ - cannot be -1)</li>
<li>Initializes base class (<a class="el" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types.">PRunBase</a>) with MSR and data handlers</li>
<li>Calls <a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5" title="Main data preparation routine for μ⁻ fitting and viewing.">PrepareData()</a> to load and preprocess the histogram</li>
<li>Validates successful initialization</li>
</ol>
<p>The packing parameter is mandatory for μ⁻ data and is obtained from:</p><ul>
<li>RUN block "packing" entry (if specified)</li>
<li>Falls back to GLOBAL block "packing" entry</li>
<li>SEVERE ERROR if neither is specified → run marked invalid</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msrInfo</td><td>Pointer to MSR file handler (must remain valid) </td></tr>
<tr><td class="paramname">rawData</td><td>Pointer to raw data handler for histogram loading </td></tr>
<tr><td class="paramname">runNo</td><td>Run number (0-based index in MSR file RUN blocks) </td></tr>
<tr><td class="paramname">tag</td><td>Operation mode: kFit (fitting), kView (display/plotting) </td></tr>
<tr><td class="paramname">theoAsData</td><td>Theory mode: true = at data points, false = high-resolution</td></tr>
</table>
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>If <a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5" title="Main data preparation routine for μ⁻ fitting and viewing.">PrepareData()</a> fails, the object is marked invalid (fValid=false)</dd></dl>
<p>Performs comprehensive initialization for negative muon analysis:</p>
<ol type="1">
<li><b>Base Class Initialization:</b><ul>
<li>Calls <a class="el" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types.">PRunBase</a> constructor with MSR/data handlers</li>
<li>Initializes theory engine and parameter mappings</li>
</ul>
</li>
<li><b>Packing Validation (CRITICAL for μ⁻):</b><ul>
<li>Attempts to read packing from RUN block</li>
<li>Falls back to GLOBAL block if not in RUN block</li>
<li>SEVERE ERROR if packing == -1 (unspecified)</li>
<li>Packing is MANDATORY for μ⁻ data (unlike some other fit types)</li>
</ul>
</li>
<li><b>Member Initialization:</b><ul>
<li>Good bin markers set to -1 (determined later)</li>
<li>Fit range bins initialized to -1 (invalid until set)</li>
<li>Number of fit bins set to 0</li>
</ul>
</li>
<li><b>Data Preparation:</b><ul>
<li>Calls <a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5" title="Main data preparation routine for μ⁻ fitting and viewing.">PrepareData()</a> to load and preprocess histogram</li>
<li>If <a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5" title="Main data preparation routine for μ⁻ fitting and viewing.">PrepareData()</a> fails, run is marked invalid</li>
</ul>
</li>
</ol>
<p>The object is marked as invalid (fValid=false) if:</p><ul>
<li>Packing parameter is missing</li>
<li><a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5" title="Main data preparation routine for μ⁻ fitting and viewing.">PrepareData()</a> fails (file not found, invalid t0, etc.)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msrInfo</td><td>Pointer to MSR file handler (must remain valid for object lifetime) </td></tr>
<tr><td class="paramname">rawData</td><td>Pointer to raw data handler for loading histogram files </td></tr>
<tr><td class="paramname">runNo</td><td>Run number (0-based index in MSR file RUN blocks) </td></tr>
<tr><td class="paramname">tag</td><td>Operation mode: kFit (fitting), kView (display/plotting) </td></tr>
<tr><td class="paramname">theoAsData</td><td>Theory calculation mode: true = at data points, false = high-resolution</td></tr>
</table>
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>Invalid objects should not be used for fitting. Check <a class="el" href="classPRunBase.html#a269787baf9a101ce181ef0b5a79b9e0d" title="Returns validity status of this run object.">IsValid()</a> after construction.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5" title="Main data preparation routine for μ⁻ fitting and viewing.">PrepareData()</a> for data preprocessing details </dd>
<dd>
<a class="el" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types.">PRunBase</a> constructor for base initialization </dd></dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">123</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8h_source.html#l00430">fEndTimeBin</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00414">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00376">fNoOfFitBins</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00391">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00429">fStartTimeBin</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00402">fTheoAsData</a>, <a class="el" href="PRunBase_8h_source.html#l00266">PRunBase::fValid</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">PrepareData()</a>, and <a class="el" href="PRunBase_8cpp_source.html#l00054">PRunBase::PRunBase()</a>.</p>
</div>
</div>
<a id="a07263c85cb90840ff1dbd66a423b0dd7" name="a07263c85cb90840ff1dbd66a423b0dd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07263c85cb90840ff1dbd66a423b0dd7">&#9670;&#160;</a></span>~PRunMuMinus()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">PRunMuMinus::~PRunMuMinus </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 virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Virtual destructor cleaning up allocated resources. </p>
<p>Destructor cleaning up allocated resources.</p>
<p>Releases memory used by the forward histogram vector (fForward). Base class destructor handles cleanup of theory objects and other shared resources.</p>
<p>Releases memory used by the forward histogram vector. Other cleanup (theory objects, base class resources) is handled by the <a class="el" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types.">PRunBase</a> destructor. </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00165">165</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8h_source.html#l00427">fForward</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="abe0df325a415b34082e7604d3d99ce32" name="abe0df325a415b34082e7604d3d99ce32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe0df325a415b34082e7604d3d99ce32">&#9670;&#160;</a></span>CalcChiSquare()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Double_t PRunMuMinus::CalcChiSquare </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></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates χ² between μ⁻ data and theory (least-squares fit metric). </p>
<p>Computes the chi-squared statistic for the forward histogram: </p><p class="formulaDsp">
<picture><source srcset="form_29_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \chi^2 = \sum_{i={\rm start}}^{\rm end} \frac{(N_i^{\rm data} - N_i^{\rm theory})^2}{\sigma_i^2} \]" src="form_29.png"/></picture>
</p>
<p>where:</p><ul>
<li>N_i^data is the background-corrected, packed histogram count in bin i</li>
<li>N_i^theory is the theory prediction from THEORY block</li>
<li>σ_i is the propagated error (including background uncertainty)</li>
<li>Sum runs from fStartTimeBin to fEndTimeBin (fit range)</li>
</ul>
<p>Implementation uses OpenMP parallelization when available for performance. Each thread processes a chunk of bins independently, with reduction for final sum.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT with current parameter values </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Chi-squared value (lower is better; minimize during fitting)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ae20a804fc578c31788171f710f865210" title="Calculates negative log-likelihood for Poisson statistics (low-count fit metric).">CalcMaxLikelihood()</a> for alternative fit metric (better for low counts) </dd>
<dd>
<a class="el" href="#a7941f4ab9ecf135916427b862a4f0796" title="Evaluates theory function at all data points (or high-resolution grid).">CalcTheory()</a> for theory function evaluation details</dd></dl>
<p>Computes the chi-squared statistic using the standard formula: </p><p class="formulaDsp">
<picture><source srcset="form_29_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \chi^2 = \sum_{i={\rm start}}^{\rm end} \frac{(N_i^{\rm data} - N_i^{\rm theory})^2}{\sigma_i^2} \]" src="form_29.png"/></picture>
</p>
<p>Algorithm:</p><ol type="1">
<li>Evaluate FUNCTIONS block for user-defined functions</li>
<li>Pre-calculate theory once at t=1.0 (thread-safe initialization for LF/user functions)</li>
<li>Loop over fit range bins (fStartTimeBin to fEndTimeBin)</li>
<li>For each bin:<ul>
<li>Calculate time from bin index</li>
<li>Evaluate theory function at that time</li>
<li>Compute squared difference weighted by error</li>
</ul>
</li>
<li>Sum contributions (with OpenMP reduction if available)</li>
</ol>
<p><b>OpenMP Parallelization:</b></p><ul>
<li>When compiled with GOMP support, χ² calculation is parallelized</li>
<li>Loop divided into dynamic chunks for load balancing</li>
<li>Chunk size: (N_bins / N_processors), minimum 10 bins per chunk</li>
<li>Private variables per thread: i, time, diff</li>
<li>Reduction performed on final chisq sum</li>
</ul>
<p><b>Theory Pre-calculation:</b> The initial call to fTheory-&gt;Func(time=1.0, ...) ensures thread-safe initialization for London field (LF) and user functions that cache computationally expensive calculations per parameter set.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT with current parameter values </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Chi-squared value (sum of weighted squared residuals)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ae20a804fc578c31788171f710f865210" title="Calculates negative log-likelihood for Poisson statistics (low-count fit metric).">CalcMaxLikelihood()</a> for Poisson-based alternative (better for low counts) </dd>
<dd>
<a class="el" href="#a7941f4ab9ecf135916427b862a4f0796" title="Evaluates theory function at all data points (or high-resolution grid).">CalcTheory()</a> for theory evaluation without χ² calculation </dd></dl>
<p>Implements <a class="el" href="classPRunBase.html#afb8ed1f6e8beb0530da96012ad3258d3">PRunBase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00207">207</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00430">fEndTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00284">PRunBase::fFuncValues</a>, <a class="el" href="PRunBase_8h_source.html#l00277">PRunBase::fMetaData</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00429">fStartTimeBin</a>, and <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>.</p>
</div>
</div>
<a id="a64e3216f832ddb5c0b219c7795ea4d66" name="a64e3216f832ddb5c0b219c7795ea4d66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64e3216f832ddb5c0b219c7795ea4d66">&#9670;&#160;</a></span>CalcChiSquareExpected()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Double_t PRunMuMinus::CalcChiSquareExpected </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></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates expected χ² based on theory predictions (statistical diagnostic). </p>
<p>Calculates expected χ² assuming theory is the true distribution (diagnostic).</p>
<p>Computes the expected chi-squared assuming theory values are the "true" counts: </p><p class="formulaDsp">
<picture><source srcset="form_30_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \chi^2_{\rm expected} = \sum_{i} \frac{(N_i^{\rm data} - N_i^{\rm theory})^2}{N_i^{\rm theory}} \]" src="form_30.png"/></picture>
</p>
<p>This diagnostic helps evaluate:</p><ul>
<li>Quality of error estimates</li>
<li>Poisson vs. Gaussian statistics validity</li>
<li>Over/under-dispersion in data</li>
</ul>
<p>For well-estimated errors: χ²_expected ≈ number of degrees of freedom</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Expected χ² value (currently returns 0.0 - placeholder implementation)</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Current implementation returns 0.0; full calculation performed but not returned</dd></dl>
<p>Computes the expected chi-squared using theory values as the expected counts: </p><p class="formulaDsp">
<picture><source srcset="form_30_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \chi^2_{\rm expected} = \sum_{i} \frac{(N_i^{\rm data} - N_i^{\rm theory})^2}{N_i^{\rm theory}} \]" src="form_30.png"/></picture>
</p>
<p>This is a statistical diagnostic for evaluating:</p><ul>
<li>Quality of error estimates (if errors are correct, χ²/ν ≈ 1)</li>
<li>Validity of Gaussian approximation (breaks down for low counts)</li>
<li>Over/under-dispersion in data relative to Poisson expectations</li>
</ul>
<p>For Poisson-distributed data with large counts:</p><ul>
<li>χ²_expected ≈ number of degrees of freedom</li>
<li>χ²_expected / ν ≈ 1 indicates proper error estimation</li>
</ul>
<p>Algorithm is identical to <a class="el" href="#abe0df325a415b34082e7604d3d99ce32" title="Calculates χ² between μ⁻ data and theory (least-squares fit metric).">CalcChiSquare()</a> except:</p><ul>
<li>Error denominator is σ² = N_theory (Poisson variance)</li>
<li>Instead of using fData.GetError()-&gt;at(i)</li>
</ul>
<p><b>OpenMP Parallelization:</b> Same as <a class="el" href="#abe0df325a415b34082e7604d3d99ce32" title="Calculates χ² between μ⁻ data and theory (least-squares fit metric).">CalcChiSquare()</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Expected χ² value (currently returns 0.0 - calculation done but not returned)</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Current implementation performs the calculation but returns 0.0. The calculated value could be returned for diagnostic purposes.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#abe0df325a415b34082e7604d3d99ce32" title="Calculates χ² between μ⁻ data and theory (least-squares fit metric).">CalcChiSquare()</a> for standard χ² calculation </dd></dl>
<p>Implements <a class="el" href="classPRunBase.html#a1a15d5f51a874149b0d60798f99449a6">PRunBase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00275">275</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00430">fEndTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00284">PRunBase::fFuncValues</a>, <a class="el" href="PRunBase_8h_source.html#l00277">PRunBase::fMetaData</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00429">fStartTimeBin</a>, and <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>.</p>
</div>
</div>
<a id="ae20a804fc578c31788171f710f865210" name="ae20a804fc578c31788171f710f865210"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae20a804fc578c31788171f710f865210">&#9670;&#160;</a></span>CalcMaxLikelihood()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Double_t PRunMuMinus::CalcMaxLikelihood </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></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates negative log-likelihood for Poisson statistics (low-count fit metric). </p>
<p>Computes the maximum likelihood estimator assuming Poisson-distributed counts: </p><p class="formulaDsp">
<picture><source srcset="form_31_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ -2\ln L = 2\sum_{i} \left[N_i^{\rm theory} - N_i^{\rm data} \ln(N_i^{\rm theory})\right] \]" src="form_31.png"/></picture>
</p>
<p>Maximum likelihood is superior to χ² when:</p><ul>
<li>Count rates are low (&lt; 10-20 counts per bin)</li>
<li>Poisson statistics dominate (Gaussian approximation invalid)</li>
<li>Error estimation is uncertain</li>
</ul>
<p>The factor of 2 makes the likelihood comparable to χ² in the Gaussian limit. MINUIT minimizes this function just like χ².</p>
<p>Implementation details:</p><ul>
<li>Uses OpenMP parallelization for performance</li>
<li>Handles edge cases: zero data (skips log term), negative theory (warning + skip)</li>
<li>Threshold: data &gt; 10^-9 to include log term</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-2×ln(L) value (lower is better; minimize during fitting)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#abe0df325a415b34082e7604d3d99ce32" title="Calculates χ² between μ⁻ data and theory (least-squares fit metric).">CalcChiSquare()</a> for standard least-squares metric</dd></dl>
<p>Computes the maximum likelihood estimator assuming Poisson-distributed histogram counts: </p><p class="formulaDsp">
<picture><source srcset="form_81_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ -2\ln L = 2\sum_{i} \left[N_i^{\rm theory} - N_i^{\rm data}\ln(N_i^{\rm theory})\right] \]" src="form_81.png"/></picture>
</p>
<p>This is derived from the Poisson probability: </p><p class="formulaDsp">
<picture><source srcset="form_82_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ P(n|\\lambda) = \frac{\\lambda^n e^{-\\lambda}}{n!} \]" src="form_82.png"/></picture>
</p>
<p>Taking negative log-likelihood and multiplying by 2 gives a metric that:</p><ul>
<li>Is minimized at the best-fit parameters (like χ²)</li>
<li>Approaches χ² in the high-count (Gaussian) limit</li>
<li>Handles low counts correctly (no Gaussian approximation needed)</li>
</ul>
<p><b>When to use likelihood vs. χ²:</b></p><ul>
<li><b>Low counts (&lt; 10-20 per bin):</b> Use likelihood (this method)</li>
<li><b>High counts (&gt; 20 per bin):</b> Either method works, χ² is faster</li>
<li><b>Uncertain errors:</b> Use likelihood (no error estimates needed)</li>
</ul>
<p>Algorithm:</p><ol type="1">
<li>Evaluate FUNCTIONS block</li>
<li>Pre-calculate theory at t=1.0 (thread-safe initialization)</li>
<li>Loop over fit range bins</li>
<li>For each bin:<ul>
<li>Calculate theory prediction</li>
<li>Check for negative theory (warning + skip)</li>
<li>Add Poisson likelihood term:<ul>
<li>If data &gt; 10^-9: (theo - data) + data·ln(data/theo)</li>
<li>If data ≈ 0: (theo - data) only (avoid log(0))</li>
</ul>
</li>
</ul>
</li>
<li>Multiply sum by 2 (convention for comparison with χ²)</li>
</ol>
<p><b>Edge Case Handling:</b></p><ul>
<li>Negative theory: Print warning, skip bin (should not happen with proper model)</li>
<li>Zero data: Use simplified formula without log term</li>
<li>Zero theory: Would cause log(0), but checked via negative theory guard</li>
</ul>
<p>Reference: Particle Data Group (PDG), Statistics Review <a href="http://pdg.lbl.gov/index.html">http://pdg.lbl.gov/index.html</a></p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-2×ln(L) value (minimize during fitting, comparable to χ²)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#abe0df325a415b34082e7604d3d99ce32" title="Calculates χ² between μ⁻ data and theory (least-squares fit metric).">CalcChiSquare()</a> for standard least-squares metric </dd></dl>
<p>Implements <a class="el" href="classPRunBase.html#a5d7a15b6962e3767860ef9b4c9208201">PRunBase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00360">360</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00430">fEndTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00284">PRunBase::fFuncValues</a>, <a class="el" href="PRunBase_8h_source.html#l00277">PRunBase::fMetaData</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00429">fStartTimeBin</a>, and <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>.</p>
</div>
</div>
<a id="ad7a4e5bf6faa30254e8abf42ea6ff76d" name="ad7a4e5bf6faa30254e8abf42ea6ff76d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7a4e5bf6faa30254e8abf42ea6ff76d">&#9670;&#160;</a></span>CalcNoOfFitBins()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PRunMuMinus::CalcNoOfFitBins </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 virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculates start/end bin indices from fit time range. </p>
<p>Converts the fit range specified in time (microseconds from t0) into bin indices accounting for:</p><ul>
<li>Data time start offset</li>
<li>Time resolution (bin width)</li>
<li>Packing factor</li>
</ul>
<p>Updates:</p><ul>
<li>fStartTimeBin: First bin in fit range</li>
<li>fEndTimeBin: One past last bin (exclusive upper bound)</li>
<li>fNoOfFitBins: Count of bins in range</li>
</ul>
<p>Called automatically when fit range is changed via <a class="el" href="classPRunBase.html#a59cbd8ad7cb144c99c1dccefa4e200ff" title="Sets the fit time range for this run.">SetFitRange()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPRunBase.html#a59cbd8ad7cb144c99c1dccefa4e200ff" title="Sets the fit time range for this run.">SetFitRange()</a> in <a class="el" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types.">PRunBase</a> for time-based range setting</dd></dl>
<p>Calculate the number of fitted bins for the current fit range. </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00531">531</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00430">fEndTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00282">PRunBase::fFitEndTime</a>, <a class="el" href="PRunBase_8h_source.html#l00281">PRunBase::fFitStartTime</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00376">fNoOfFitBins</a>, and <a class="el" href="PRunMuMinus_8h_source.html#l00429">fStartTimeBin</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00428">GetNoOfFitBins()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00740">PrepareFitData()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00798">PrepareRawViewData()</a>.</p>
</div>
</div>
<a id="a7941f4ab9ecf135916427b862a4f0796" name="a7941f4ab9ecf135916427b862a4f0796"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7941f4ab9ecf135916427b862a4f0796">&#9670;&#160;</a></span>CalcTheory()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PRunMuMinus::CalcTheory </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 virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluates theory function at all data points (or high-resolution grid). </p>
<p>Calculates the expected μ⁻ decay signal using the THEORY block functions. The theory is evaluated either:</p><ul>
<li>At data point times (fTheoAsData=true): For fitting and exact comparison</li>
<li>On high-resolution grid (fTheoAsData=false): For smooth plotting</li>
</ul>
<p>Theory evaluation:</p><ol type="1">
<li>Determines time grid based on fTheoAsData flag</li>
<li>Evaluates FUNCTIONS block (user-defined functions)</li>
<li>Loops over time points calling fTheory-&gt;Func(time, par, funcValues)</li>
<li>Stores results in fData for χ² or likelihood calculation</li>
</ol>
<p>The theory typically models:</p><ul>
<li>Exponential decay: N₀·exp(-t/τ_eff)</li>
<li>With modulation: N₀·exp(-t/τ_eff)·[1 + A·cos(ωt + φ)]</li>
<li>Multi-component captures</li>
</ul>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPTheory.html#ab0b6defce6fa75187ae306332fac3425" title="Evaluates the theory function at a given time point.">PTheory::Func()</a> for theory function implementation </dd>
<dd>
<a class="el" href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5" title="Main data preparation routine for μ⁻ fitting and viewing.">PrepareData()</a> for data grid setup</dd></dl>
<p>Calculate theory for a given set of fit-parameters. </p>
<p>Implements <a class="el" href="classPRunBase.html#a0dde056d0acd7f0ac4dc12380e4063e7">PRunBase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00553">553</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunBase_8h_source.html#l00284">PRunBase::fFuncValues</a>, <a class="el" href="PRunBase_8h_source.html#l00277">PRunBase::fMetaData</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, and <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>.</p>
</div>
</div>
<a id="abe411be92e5fe6dc6e0646f781c61893" name="abe411be92e5fe6dc6e0646f781c61893"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe411be92e5fe6dc6e0646f781c61893">&#9670;&#160;</a></span>GetEndTimeBin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual Int_t PRunMuMinus::GetEndTimeBin </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 class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the last bin index in the fit range (exclusive). </p>
<dl class="section return"><dt>Returns</dt><dd>End bin index (loop condition: i &lt; fEndTimeBin) </dd></dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00281">281</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8h_source.html#l00430">fEndTimeBin</a>.</p>
</div>
</div>
<a id="a76be61552695c0c8bc1dc4680397e11d" name="a76be61552695c0c8bc1dc4680397e11d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76be61552695c0c8bc1dc4680397e11d">&#9670;&#160;</a></span>GetNoOfFitBins()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">UInt_t PRunMuMinus::GetNoOfFitBins </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 virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of bins included in the fit range. </p>
<p>Calculates and returns the count of histogram bins between fStartTimeBin and fEndTimeBin (fit range boundaries). This is used for:</p><ul>
<li>Degrees of freedom: ν = N_bins - N_params</li>
<li>Reduced χ²: χ²_red = χ² / ν</li>
<li>Statistical analysis and diagnostics</li>
</ul>
<p>Internally calls <a class="el" href="#ad7a4e5bf6faa30254e8abf42ea6ff76d" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> to update fNoOfFitBins.</p>
<dl class="section return"><dt>Returns</dt><dd>Number of bins in fit range</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad7a4e5bf6faa30254e8abf42ea6ff76d" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> for bin range calculation details</dd></dl>
<p>Recalculates and returns the count of histogram bins between fStartTimeBin and fEndTimeBin. This count is used for:</p><ul>
<li>Degrees of freedom calculation: ν = N_bins - N_params</li>
<li>Reduced χ²: χ²_red = χ² / ν</li>
<li>Statistical quality assessment</li>
</ul>
<p>Internally calls <a class="el" href="#ad7a4e5bf6faa30254e8abf42ea6ff76d" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> to ensure fNoOfFitBins is up-to-date.</p>
<dl class="section return"><dt>Returns</dt><dd>Number of bins within fit range (fEndTimeBin - fStartTimeBin)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad7a4e5bf6faa30254e8abf42ea6ff76d" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> for bin range calculation from time range </dd></dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00428">428</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8cpp_source.html#l00531">CalcNoOfFitBins()</a>, and <a class="el" href="PRunMuMinus_8h_source.html#l00376">fNoOfFitBins</a>.</p>
</div>
</div>
<a id="a3ce94ec1a181fcbc622747a64652b479" name="a3ce94ec1a181fcbc622747a64652b479"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ce94ec1a181fcbc622747a64652b479">&#9670;&#160;</a></span>GetPacking()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual Int_t PRunMuMinus::GetPacking </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 class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the bin packing factor. </p>
<dl class="section return"><dt>Returns</dt><dd>Packing value (number of raw bins combined into one packed bin) </dd></dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00287">287</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8h_source.html#l00391">fPacking</a>.</p>
</div>
</div>
<a id="a6849d8b428569486521ae56af88caf94" name="a6849d8b428569486521ae56af88caf94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6849d8b428569486521ae56af88caf94">&#9670;&#160;</a></span>GetProperDataRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PRunMuMinus::GetProperDataRange </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 private">private</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines data range (region of valid histogram data). </p>
<p>Establishes the data range boundaries from RUN block specification:</p><ul>
<li>Start bin: First bin with valid μ⁻ data (typically after t0)</li>
<li>End bin: Last bin before noise/artifacts dominate</li>
</ul>
<p>Data range is typically wider than fit range. The fit range is a subset of the data range optimized for parameter extraction.</p>
<dl class="section return"><dt>Returns</dt><dd>True if valid data range determined, false if specification invalid</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a74f9bfd0610af078c6bb724398148ac1" title="Determines fit range from MSR file settings.">GetProperFitRange()</a> for fit range (subset of data range)</dd></dl>
<p>Get the proper data range, i.e. first/last good bin (fgb/lgb).</p><ol type="1">
<li>get fgb/lgb from the RUN block</li>
<li>if fgb/lgb still undefined, try to get it from the GLOBAL block</li>
<li>if fgb/lgb still undefined, try to estimate them.</li>
</ol>
<p><b>return:</b></p><ul>
<li>true if everthing went smooth</li>
<li>false, otherwise. </li>
</ul>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l01076">1076</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8h_source.html#l00427">fForward</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00414">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, and <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">PrepareData()</a>.</p>
</div>
</div>
<a id="a74f9bfd0610af078c6bb724398148ac1" name="a74f9bfd0610af078c6bb724398148ac1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74f9bfd0610af078c6bb724398148ac1">&#9670;&#160;</a></span>GetProperFitRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PRunMuMinus::GetProperFitRange </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *</td> <td class="paramname"><span class="paramname"><em>globalBlock</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines fit range from MSR file settings. </p>
<p>Extracts fit range boundaries (time window for χ² calculation) from:</p><ol type="1">
<li>RUN block "fit" entry (if specified)</li>
<li>GLOBAL block "fit" entry (fallback)</li>
</ol>
<p>Fit range format in MSR file:</p><ul>
<li>Time-based: "fit 0.1 10.0" (μs from t0)</li>
<li>Bin-based: "fit fgb+5 lgb-10" (offsets from markers)</li>
</ul>
<p>The fit range determines which bins contribute to χ² or likelihood. Choosing the optimal range is critical for accurate parameter extraction.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">globalBlock</td><td>GLOBAL block from MSR file with default fit settings</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad7a4e5bf6faa30254e8abf42ea6ff76d" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> for converting time range to bin indices</dd></dl>
<p>Get the proper fit range. There are two possible fit range commands: fit &lt;start&gt; &lt;end&gt; given in (usec), or fit fgb+offset_0 lgb-offset_1 given in (bins), therefore it works the following way:</p><ol type="1">
<li>get fit range assuming given in time from RUN block</li>
<li>if fit range in RUN block is given in bins, replace start/end</li>
<li>if fit range is NOT given yet, try fit range assuming given in time from GLOBAL block</li>
<li>if fit range in GLOBAL block is given in bins, replace start/end</li>
<li>if still no fit range is given, use fgb/lgb.</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">globalBlock</td><td>pointer to the GLOBAL block information form the msr-file. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l01151">1151</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00282">PRunBase::fFitEndTime</a>, <a class="el" href="PRunBase_8h_source.html#l00281">PRunBase::fFitStartTime</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00414">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PMusr_8cpp_source.html#l01104">PMsrGlobalBlock::GetFitRange()</a>, <a class="el" href="PMusr_8cpp_source.html#l01141">PMsrGlobalBlock::GetFitRangeOffset()</a>, <a class="el" href="PMusr_8h_source.html#l01048">PMsrGlobalBlock::IsFitRangeInBin()</a>, <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>, and <a class="el" href="PMusr_8cpp_source.html#l01121">PMsrGlobalBlock::SetFitRange()</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">PrepareData()</a>.</p>
</div>
</div>
<a id="a975704a1a49fed0d3bb5941af1f8fce5" name="a975704a1a49fed0d3bb5941af1f8fce5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a975704a1a49fed0d3bb5941af1f8fce5">&#9670;&#160;</a></span>GetProperT0()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PRunMuMinus::GetProperT0 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPRawRunData.html">PRawRunData</a> *</td> <td class="paramname"><span class="paramname"><em>runData</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *</td> <td class="paramname"><span class="paramname"><em>globalBlock</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a> &amp;</td> <td class="paramname"><span class="paramname"><em>histoNo</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines and validates t0 values for μ⁻ histogram. </p>
<p>Extracts time-zero (muon arrival time) from:</p><ol type="1">
<li>RUN block "t0" entry (if specified)</li>
<li>Data file header (if available)</li>
<li>GLOBAL block default (fallback)</li>
<li>Automatic determination from histogram structure (if enabled)</li>
</ol>
<p>For μ⁻, t0 marks the start of the decay/capture signal. Validates that t0 is within reasonable bounds of the histogram.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runData</td><td>Raw run data containing histogram and metadata </td></tr>
<tr><td class="paramname">globalBlock</td><td>GLOBAL block from MSR file with default settings </td></tr>
<tr><td class="paramname">histoNo</td><td>Vector of histogram indices to process </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if valid t0 found/determined, false otherwise</dd></dl>
<p>Get the proper t0 for the single histogram run.</p><ol type="1">
<li>the t0 vector size = number of detectors (grouping) for forward.</li>
<li>initialize t0's with -1</li>
<li>fill t0's from RUN block</li>
<li>if t0's are missing (i.e. t0 == -1), try to fill from the GLOBAL block.</li>
<li>if t0's are missing, try t0's from the data file</li>
<li>if t0's are missing, try to estimate them</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">histoNo</td><td>histogram number vector of forward; histoNo = msr-file forward + redGreen_offset - 1</td></tr>
</table>
</dd>
</dl>
<p><b>return:</b></p><ul>
<li>true if everthing went smooth</li>
<li>false, otherwise. </li>
</ul>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00945">945</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00279">PRunBase::fAddT0s</a>, <a class="el" href="PRunBase_8h_source.html#l00273">PRunBase::fRawData</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, <a class="el" href="PMusr_8h_source.html#l00877">PRawRunData::GetDataBin()</a>, <a class="el" href="PMusr_8cpp_source.html#l00988">PMsrGlobalBlock::GetT0Bin()</a>, <a class="el" href="PMusr_8h_source.html#l00870">PRawRunData::GetT0Bin()</a>, <a class="el" href="PMusr_8h_source.html#l00871">PRawRunData::GetT0BinEstimated()</a>, and <a class="el" href="PMusr_8h_source.html#l01043">PMsrGlobalBlock::GetT0BinSize()</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">PrepareData()</a>.</p>
</div>
</div>
<a id="a06a7d84b23c70fa19beeacbb72591419" name="a06a7d84b23c70fa19beeacbb72591419"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06a7d84b23c70fa19beeacbb72591419">&#9670;&#160;</a></span>GetStartTimeBin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual Int_t PRunMuMinus::GetStartTimeBin </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 class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the first bin index in the fit range. </p>
<dl class="section return"><dt>Returns</dt><dd>Start bin index (0-based, after packing applied) </dd></dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00275">275</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8h_source.html#l00429">fStartTimeBin</a>.</p>
</div>
</div>
<a id="a3a96c9156e9207dcc7b1f95a1fcbb9e5" name="a3a96c9156e9207dcc7b1f95a1fcbb9e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a96c9156e9207dcc7b1f95a1fcbb9e5">&#9670;&#160;</a></span>PrepareData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PRunMuMinus::PrepareData </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 protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Main data preparation routine for μ⁻ fitting and viewing. </p>
<p>Orchestrates the complete data preprocessing pipeline:</p><ol type="1">
<li>Determines operation mode (fitting vs. viewing)</li>
<li>Calls <a class="el" href="#aba3d803c4f6debdc66145d4ec9a9fa23" title="Prepares μ⁻ histogram data for fitting.">PrepareFitData()</a> or <a class="el" href="#aebb1bb9b7b233bc09bd6a996e9ce0e87" title="Prepares μ⁻ histogram data for viewing/plotting (minimal processing).">PrepareRawViewData()</a> accordingly</li>
<li>Validates successful data loading and processing</li>
</ol>
<p>This method is called once during object construction. If it returns false, the run object is marked as invalid (fValid=false).</p>
<dl class="section return"><dt>Returns</dt><dd>True if data preparation succeeds, false on any error</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#aba3d803c4f6debdc66145d4ec9a9fa23" title="Prepares μ⁻ histogram data for fitting.">PrepareFitData()</a> for fitting mode preprocessing </dd>
<dd>
<a class="el" href="#aebb1bb9b7b233bc09bd6a996e9ce0e87" title="Prepares μ⁻ histogram data for viewing/plotting (minimal processing).">PrepareRawViewData()</a> for viewing mode preprocessing</dd></dl>
<p>Prepare data for fitting or viewing. What is already processed at this stage:</p><ol type="1">
<li>get proper raw run data</li>
<li>get all needed forward histograms</li>
<li>get time resolution</li>
<li>get t0's and perform necessary cross checks (e.g. if t0 of msr-file (if present) are consistent with t0 of the data files, etc.)</li>
<li>add runs (if addruns are present)</li>
<li>group histograms (if grouping is present)</li>
</ol>
<p><b>return:</b></p><ul>
<li>true if everthing went smooth</li>
<li>false, otherwise. </li>
</ul>
<p>Implements <a class="el" href="classPRunBase.html#a108aca748689e37a7e045a770677b517">PRunBase</a>.</p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">596</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00279">PRunBase::fAddT0s</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00427">fForward</a>, <a class="el" href="PRunBase_8h_source.html#l00268">PRunBase::fHandleTag</a>, <a class="el" href="PRunBase_8h_source.html#l00277">PRunBase::fMetaData</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00273">PRunBase::fRawData</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PRunBase_8h_source.html#l00266">PRunBase::fValid</a>, <a class="el" href="PMusr_8h_source.html#l00877">PRawRunData::GetDataBin()</a>, <a class="el" href="PMusr_8h_source.html#l00864">PRawRunData::GetEnergy()</a>, <a class="el" href="PMusr_8h_source.html#l00859">PRawRunData::GetField()</a>, <a class="el" href="PMusr_8h_source.html#l00860">PRawRunData::GetNoOfTemperatures()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l01076">GetProperDataRange()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l01151">GetProperFitRange()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00945">GetProperT0()</a>, <a class="el" href="PMusr_8h_source.html#l00861">PRawRunData::GetTemperature()</a>, <a class="el" href="PMusr_8h_source.html#l00868">PRawRunData::GetTimeResolution()</a>, <a class="el" href="PMusr_8h_source.html#l00869">PRawRunData::IsPresent()</a>, <a class="el" href="PMusr_8h_source.html#l00415">kFit</a>, <a class="el" href="PMusr_8h_source.html#l00416">kView</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00740">PrepareFitData()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00798">PrepareRawViewData()</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">PRunMuMinus()</a>.</p>
</div>
</div>
<a id="aba3d803c4f6debdc66145d4ec9a9fa23" name="aba3d803c4f6debdc66145d4ec9a9fa23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba3d803c4f6debdc66145d4ec9a9fa23">&#9670;&#160;</a></span>PrepareFitData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PRunMuMinus::PrepareFitData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPRawRunData.html">PRawRunData</a> *</td> <td class="paramname"><span class="paramname"><em>runData</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const UInt_t</td> <td class="paramname"><span class="paramname"><em>histoNo</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prepares μ⁻ histogram data for fitting. </p>
<p>Performs comprehensive data preprocessing:</p><ol type="1">
<li>Loads forward histogram from data file</li>
<li>Extracts metadata (field, energy, temperature)</li>
<li>Validates and determines t0 value</li>
<li>Subtracts background (fixed or estimated)</li>
<li>Packs bins according to packing factor</li>
<li>Propagates errors through all transformations</li>
<li>Sets up time grid for theory evaluation</li>
<li>Establishes data/fit ranges</li>
</ol>
<p>Background correction (if specified in RUN block):</p><ul>
<li>Fixed background: Subtract constant value</li>
<li>Estimated background: Calculate from pre-t0 bins, subtract with error propagation</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runData</td><td>Pointer to raw run data handler containing histogram </td></tr>
<tr><td class="paramname">histoNo</td><td>Histogram index in data file (from "forward" entry in RUN block) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True on success, false if data loading or preprocessing fails</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#aebb1bb9b7b233bc09bd6a996e9ce0e87" title="Prepares μ⁻ histogram data for viewing/plotting (minimal processing).">PrepareRawViewData()</a> for alternative viewing mode processing</dd></dl>
<p>Take the pre-processed data (i.e. grouping and addrun are preformed) and form the histogram for fitting. The following steps are preformed:</p><ol type="1">
<li>get fit start/stop time</li>
<li>check that 'first good data bin', 'last good data bin', and 't0' make any sense</li>
<li>packing (i.e rebinning)</li>
</ol>
<p><b>return:</b></p><ul>
<li>true, if everything went smooth</li>
<li>false, otherwise</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runData</td><td>raw run data handler </td></tr>
<tr><td class="paramname">histoNo</td><td>forward histogram number </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00740">740</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8cpp_source.html#l00531">CalcNoOfFitBins()</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00427">fForward</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00414">fGoodBins</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00391">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, and <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">PrepareData()</a>.</p>
</div>
</div>
<a id="aebb1bb9b7b233bc09bd6a996e9ce0e87" name="aebb1bb9b7b233bc09bd6a996e9ce0e87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebb1bb9b7b233bc09bd6a996e9ce0e87">&#9670;&#160;</a></span>PrepareRawViewData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PRunMuMinus::PrepareRawViewData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPRawRunData.html">PRawRunData</a> *</td> <td class="paramname"><span class="paramname"><em>runData</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const UInt_t</td> <td class="paramname"><span class="paramname"><em>histoNo</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel protected">protected</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prepares μ⁻ histogram data for viewing/plotting (minimal processing). </p>
<p>Lighter-weight data preprocessing for visualization:</p><ol type="1">
<li>Loads forward histogram from data file</li>
<li>Extracts metadata</li>
<li>Determines t0</li>
<li>Sets up data range (may extend beyond fit range)</li>
<li>Minimal or no background subtraction</li>
<li>Optional packing for display</li>
</ol>
<p>Used when tag=kView to prepare data for plotting without full fitting infrastructure. Typically displays wider time range than fit range for context.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runData</td><td>Pointer to raw run data handler containing histogram </td></tr>
<tr><td class="paramname">histoNo</td><td>Histogram index in data file </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True on success, false if data loading fails</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#aba3d803c4f6debdc66145d4ec9a9fa23" title="Prepares μ⁻ histogram data for fitting.">PrepareFitData()</a> for full fitting mode processing</dd></dl>
<p>Take the pre-processed data (i.e. grouping and addrun are preformed) and form the histogram for viewing without any life time correction. </p>
<p>The following steps are preformed:</p><ol type="1">
<li>check if view packing is whished.</li>
<li>check that 'first good data bin', 'last good data bin', and 't0' makes any sense</li>
<li>packing (i.e. rebinnig)</li>
<li>calculate theory</li>
</ol>
<p><b>return:</b></p><ul>
<li>true, if everything went smooth</li>
<li>false, otherwise.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">runData</td><td>raw run data handler </td></tr>
<tr><td class="paramname">histoNo</td><td>forward histogram number </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00798">798</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunMuMinus_8cpp_source.html#l00531">CalcNoOfFitBins()</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunBase_8h_source.html#l00282">PRunBase::fFitEndTime</a>, <a class="el" href="PRunBase_8h_source.html#l00281">PRunBase::fFitStartTime</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00427">fForward</a>, <a class="el" href="PRunBase_8h_source.html#l00284">PRunBase::fFuncValues</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00414">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00277">PRunBase::fMetaData</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00391">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00402">fTheoAsData</a>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, and <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">PrepareData()</a>.</p>
</div>
</div>
<a id="a6d60a6ee87cd46de7e9a5798ceb1970d" name="a6d60a6ee87cd46de7e9a5798ceb1970d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d60a6ee87cd46de7e9a5798ceb1970d">&#9670;&#160;</a></span>SetFitRangeBin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PRunMuMinus::SetFitRangeBin </td>
<td>(</td>
<td class="paramtype">const TString</td> <td class="paramname"><span class="paramname"><em>fitRange</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets fit range using bin-offset specification (COMMANDS block syntax). </p>
<p>Parses and applies fit range specified as bin offsets from good bin markers. This supports the COMMANDS block FIT_RANGE syntax for dynamic range adjustments.</p>
<p>Format: "fit_range fgb+n0 lgb-n1"</p><ul>
<li>fgb = first good bin (typically t0 bin)</li>
<li>lgb = last good bin (end of data range)</li>
<li>n0, n1 = offsets in bins (can be + or -)</li>
</ul>
<p>Example: "fit_range fgb+5 lgb-10" → Start 5 bins after t0, end 10 bins before last good bin</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fitRange</td><td>String with fit range specification in bin offsets</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPRunBase.html#a59cbd8ad7cb144c99c1dccefa4e200ff" title="Sets the fit time range for this run.">SetFitRange(PDoublePairVector)</a> in <a class="el" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types.">PRunBase</a> for time-based specification</dd></dl>
<p>Allows to change the fit range on the fly. Used in the COMMAND block. The syntax of the string is: FIT_RANGE fgb[+n00] lgb[-n01] [fgb[+n10] lgb[-n11] ... fgb[+nN0] lgb[-nN1]]. If only one pair of fgb/lgb is given, it is used for all runs in the RUN block section. If multiple fgb/lgb's are given, the number N has to be the number of RUN blocks in the msr-file.</p>
<p>nXY are offsets which can be used to shift, limit the fit range.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">fitRange</td><td>string containing the necessary information. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8cpp_source.html#l00449">449</a> of file <a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.cpp</a>.</p>
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00282">PRunBase::fFitEndTime</a>, <a class="el" href="PRunBase_8h_source.html#l00281">PRunBase::fFitStartTime</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00414">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00270">PRunBase::fRunNo</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, and <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aac4549dbf197ff0a8217b5bfdaf2b9a5" name="aac4549dbf197ff0a8217b5bfdaf2b9a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac4549dbf197ff0a8217b5bfdaf2b9a5">&#9670;&#160;</a></span>fEndTimeBin</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Int_t PRunMuMinus::fEndTimeBin</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>Last bin index in fit range (exclusive: loop as i &lt; fEndTimeBin) </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00430">430</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00207">CalcChiSquare()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00275">CalcChiSquareExpected()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00360">CalcMaxLikelihood()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00531">CalcNoOfFitBins()</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00281">GetEndTimeBin()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00064">PRunMuMinus()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">PRunMuMinus()</a>.</p>
</div>
</div>
<a id="a88d70a3eb1263bd5f7351920f28bd6b5" name="a88d70a3eb1263bd5f7351920f28bd6b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88d70a3eb1263bd5f7351920f28bd6b5">&#9670;&#160;</a></span>fForward</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="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> PRunMuMinus::fForward</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>Forward detector histogram data (background-corrected, packed). </p>
<p>Contains the processed μ⁻ decay histogram after:</p><ul>
<li>Background subtraction</li>
<li>Bin packing</li>
<li>Conversion to appropriate units</li>
</ul>
<p>This is the data fitted against theory predictions. Stored in fData.GetValue() vector for χ² calculation. </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00427">427</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l01076">GetProperDataRange()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00596">PrepareData()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00740">PrepareFitData()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00798">PrepareRawViewData()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00165">~PRunMuMinus()</a>.</p>
</div>
</div>
<a id="a2f9ea96ed2ba33a888c32efdc907950a" name="a2f9ea96ed2ba33a888c32efdc907950a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f9ea96ed2ba33a888c32efdc907950a">&#9670;&#160;</a></span>fGoodBins</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Int_t PRunMuMinus::fGoodBins[2]</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>Good bin markers for bin-based fit range specification. </p>
<p>Stores reference bins used in COMMANDS block FIT_RANGE parsing:</p><ul>
<li>fGoodBins[0]: First good bin (fgb) - typically t0 bin</li>
<li>fGoodBins[1]: Last good bin (lgb) - end of valid data range</li>
</ul>
<p>Used when fit range is specified as "fgb+n0 lgb-n1" rather than absolute times. Needed because COMMANDS block can dynamically change fit range during execution. </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00414">414</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l01076">GetProperDataRange()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l01151">GetProperFitRange()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00740">PrepareFitData()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00798">PrepareRawViewData()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00064">PRunMuMinus()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">PRunMuMinus()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00449">SetFitRangeBin()</a>.</p>
</div>
</div>
<a id="afd5f4969b908b4a57e95dd1f53ae7702" name="afd5f4969b908b4a57e95dd1f53ae7702"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd5f4969b908b4a57e95dd1f53ae7702">&#9670;&#160;</a></span>fNoOfFitBins</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">UInt_t PRunMuMinus::fNoOfFitBins</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>Number of bins within fit range (between fStartTimeBin and fEndTimeBin) </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00376">376</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00531">CalcNoOfFitBins()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00428">GetNoOfFitBins()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00064">PRunMuMinus()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">PRunMuMinus()</a>.</p>
</div>
</div>
<a id="a2f6c710527bc6cc3dcb4542aa9d32a39" name="a2f6c710527bc6cc3dcb4542aa9d32a39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f6c710527bc6cc3dcb4542aa9d32a39">&#9670;&#160;</a></span>fPacking</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Int_t PRunMuMinus::fPacking</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>Bin packing factor (REQUIRED for μ⁻). </p>
<p>Number of consecutive raw histogram bins combined into one packed bin. Higher packing improves statistics but reduces time resolution.</p>
<p>Source priority:</p><ol type="1">
<li>RUN block "packing" entry</li>
<li>GLOBAL block "packing" entry</li>
<li>ERROR if neither specified (mandatory for μ⁻)</li>
</ol>
<p>Typical values: 1 (no packing), 5, 10, 20 </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00391">391</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8h_source.html#l00287">GetPacking()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00740">PrepareFitData()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00798">PrepareRawViewData()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00064">PRunMuMinus()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">PRunMuMinus()</a>.</p>
</div>
</div>
<a id="aba22dd04f7bdde0de5231db0eeee161e" name="aba22dd04f7bdde0de5231db0eeee161e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba22dd04f7bdde0de5231db0eeee161e">&#9670;&#160;</a></span>fStartTimeBin</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Int_t PRunMuMinus::fStartTimeBin</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>First bin index in fit range (inclusive, 0-based after packing) </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00429">429</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00207">CalcChiSquare()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00275">CalcChiSquareExpected()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00360">CalcMaxLikelihood()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00531">CalcNoOfFitBins()</a>, <a class="el" href="PRunMuMinus_8h_source.html#l00275">GetStartTimeBin()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00064">PRunMuMinus()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">PRunMuMinus()</a>.</p>
</div>
</div>
<a id="a1578acd55d3ef318e0e63f517adfc983" name="a1578acd55d3ef318e0e63f517adfc983"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1578acd55d3ef318e0e63f517adfc983">&#9670;&#160;</a></span>fTheoAsData</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Bool_t PRunMuMinus::fTheoAsData</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>Theory calculation mode flag. </p>
<p>Controls theory grid resolution:</p><ul>
<li>true: Theory evaluated only at data point times (efficient for fitting)</li>
<li>false: Theory evaluated on finer grid (smooth curves for plotting/Fourier)</li>
</ul>
<p>Set from <a class="el" href="classPRunListCollection.html" title="Manager class for all processed μSR run data during fitting.">PRunListCollection</a> based on PLOT block settings. </p>
<p class="definition">Definition at line <a class="el" href="PRunMuMinus_8h_source.html#l00402">402</a> of file <a class="el" href="PRunMuMinus_8h_source.html">PRunMuMinus.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="PRunMuMinus_8cpp_source.html#l00798">PrepareRawViewData()</a>, <a class="el" href="PRunMuMinus_8cpp_source.html#l00064">PRunMuMinus()</a>, and <a class="el" href="PRunMuMinus_8cpp_source.html#l00123">PRunMuMinus()</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="PRunMuMinus_8h_source.html">PRunMuMinus.h</a></li>
<li>/workspace/LMU/musrfit/src/classes/<a class="el" href="PRunMuMinus_8cpp_source.html">PRunMuMinus.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="classPRunMuMinus.html">PRunMuMinus</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>