2387 lines
184 KiB
HTML
2387 lines
184 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||
<meta name="generator" content="Doxygen 1.13.2"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>musrfit: PRunSingleHisto 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"> 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&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&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&dn=expat.txt MIT */
|
||
$(function(){initNavTree('classPRunSingleHisto.html',''); initResizable(true); });
|
||
/* @license-end */
|
||
</script>
|
||
<div id="doc-content">
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#pub-methods">Public Member Functions</a> |
|
||
<a href="#pro-methods">Protected Member Functions</a> |
|
||
<a href="#pri-methods">Private Member Functions</a> |
|
||
<a href="#pri-attribs">Private Attributes</a> |
|
||
<a href="classPRunSingleHisto-members.html">List of all members</a> </div>
|
||
<div class="headertitle"><div class="title">PRunSingleHisto Class Reference</div></div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
|
||
<p>Class for fitting single detector histograms (basic time-differential μSR).
|
||
<a href="#details">More...</a></p>
|
||
|
||
<p><code>#include <<a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>></code></p>
|
||
<div class="dynheader">
|
||
Inheritance diagram for PRunSingleHisto:</div>
|
||
<div class="dyncontent">
|
||
<div class="center"><img src="classPRunSingleHisto__inherit__graph.png" border="0" usemap="#aPRunSingleHisto_inherit__map" alt="Inheritance graph"/></div>
|
||
<map name="aPRunSingleHisto_inherit__map" id="aPRunSingleHisto_inherit__map">
|
||
<area shape="rect" title="Class for fitting single detector histograms (basic time-differential μSR)." alt="" coords="5,81,127,109"/>
|
||
<area shape="rect" href="classPRunBase.html" title="Abstract base class defining the interface for all μSR fit types." alt="" coords="26,5,106,33"/>
|
||
<area shape="poly" title=" " alt="" coords="69,49,69,81,63,81,63,49"/>
|
||
</map>
|
||
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
|
||
<div class="dynheader">
|
||
Collaboration diagram for PRunSingleHisto:</div>
|
||
<div class="dyncontent">
|
||
<div class="center"><img src="classPRunSingleHisto__coll__graph.png" border="0" usemap="#aPRunSingleHisto_coll__map" alt="Collaboration graph"/></div>
|
||
<map name="aPRunSingleHisto_coll__map" id="aPRunSingleHisto_coll__map">
|
||
<area shape="rect" title="Class for fitting single detector histograms (basic time-differential μSR)." alt="" coords="936,165,1057,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:a7e036829d2ee4421da864bfcb2c7684d" id="r_a7e036829d2ee4421da864bfcb2c7684d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7e036829d2ee4421da864bfcb2c7684d">PRunSingleHisto</a> ()</td></tr>
|
||
<tr class="memdesc:a7e036829d2ee4421da864bfcb2c7684d"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor creating an empty, invalid single histogram run object. <br /></td></tr>
|
||
<tr class="separator:a7e036829d2ee4421da864bfcb2c7684d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a28f6a71b90e032c43fc56ba3a471d930" id="r_a28f6a71b90e032c43fc56ba3a471d930"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a28f6a71b90e032c43fc56ba3a471d930">PRunSingleHisto</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:a28f6a71b90e032c43fc56ba3a471d930"><td class="mdescLeft"> </td><td class="mdescRight">Main constructor initializing a single histogram run from MSR file and data. <br /></td></tr>
|
||
<tr class="separator:a28f6a71b90e032c43fc56ba3a471d930"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a4b112c8b00fbe14f23244ce822b03603" id="r_a4b112c8b00fbe14f23244ce822b03603"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4b112c8b00fbe14f23244ce822b03603">~PRunSingleHisto</a> ()</td></tr>
|
||
<tr class="memdesc:a4b112c8b00fbe14f23244ce822b03603"><td class="mdescLeft"> </td><td class="mdescRight">Virtual destructor cleaning up allocated resources. <br /></td></tr>
|
||
<tr class="separator:a4b112c8b00fbe14f23244ce822b03603"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a114f2de78d118cadfd3a90dc28e1cf57" id="r_a114f2de78d118cadfd3a90dc28e1cf57"><td class="memItemLeft" align="right" valign="top">virtual Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a114f2de78d118cadfd3a90dc28e1cf57">CalcChiSquare</a> (const std::vector< Double_t > &par)</td></tr>
|
||
<tr class="memdesc:a114f2de78d118cadfd3a90dc28e1cf57"><td class="mdescLeft"> </td><td class="mdescRight">Calculates χ² between histogram data and theory. <br /></td></tr>
|
||
<tr class="separator:a114f2de78d118cadfd3a90dc28e1cf57"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a2aa64a7b5b1b628c557c475efa6e0ba4" id="r_a2aa64a7b5b1b628c557c475efa6e0ba4"><td class="memItemLeft" align="right" valign="top">virtual Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2aa64a7b5b1b628c557c475efa6e0ba4">CalcChiSquareExpected</a> (const std::vector< Double_t > &par)</td></tr>
|
||
<tr class="memdesc:a2aa64a7b5b1b628c557c475efa6e0ba4"><td class="mdescLeft"> </td><td class="mdescRight">Calculates expected χ² based on theory predictions. <br /></td></tr>
|
||
<tr class="separator:a2aa64a7b5b1b628c557c475efa6e0ba4"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5be2273a8f933fc8b4b3d398df302e14" id="r_a5be2273a8f933fc8b4b3d398df302e14"><td class="memItemLeft" align="right" valign="top">virtual Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5be2273a8f933fc8b4b3d398df302e14">CalcMaxLikelihood</a> (const std::vector< Double_t > &par)</td></tr>
|
||
<tr class="memdesc:a5be2273a8f933fc8b4b3d398df302e14"><td class="mdescLeft"> </td><td class="mdescRight">Calculates maximum likelihood for Poisson-distributed histogram counts. <br /></td></tr>
|
||
<tr class="separator:a5be2273a8f933fc8b4b3d398df302e14"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:acee63e46149d3823ea699f917fa91e60" id="r_acee63e46149d3823ea699f917fa91e60"><td class="memItemLeft" align="right" valign="top">virtual Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#acee63e46149d3823ea699f917fa91e60">CalcMaxLikelihoodExpected</a> (const std::vector< Double_t > &par)</td></tr>
|
||
<tr class="memdesc:acee63e46149d3823ea699f917fa91e60"><td class="mdescLeft"> </td><td class="mdescRight">Calculates expected maximum likelihood. <br /></td></tr>
|
||
<tr class="separator:acee63e46149d3823ea699f917fa91e60"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a684cbb35fa5e4a24681dd5b5ad3ad1f4" id="r_a684cbb35fa5e4a24681dd5b5ad3ad1f4"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a684cbb35fa5e4a24681dd5b5ad3ad1f4">CalcTheory</a> ()</td></tr>
|
||
<tr class="memdesc:a684cbb35fa5e4a24681dd5b5ad3ad1f4"><td class="mdescLeft"> </td><td class="mdescRight">Evaluates theory function at all data points or high-resolution grid. <br /></td></tr>
|
||
<tr class="separator:a684cbb35fa5e4a24681dd5b5ad3ad1f4"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a71b2648dc89bc990b2adbcb6c82168e5" id="r_a71b2648dc89bc990b2adbcb6c82168e5"><td class="memItemLeft" align="right" valign="top">virtual UInt_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a71b2648dc89bc990b2adbcb6c82168e5">GetNoOfFitBins</a> ()</td></tr>
|
||
<tr class="memdesc:a71b2648dc89bc990b2adbcb6c82168e5"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of bins included in the fit range. <br /></td></tr>
|
||
<tr class="separator:a71b2648dc89bc990b2adbcb6c82168e5"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a80be353a51c1e9c200f557c872a7e46b" id="r_a80be353a51c1e9c200f557c872a7e46b"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a80be353a51c1e9c200f557c872a7e46b">SetFitRangeBin</a> (const TString fitRange)</td></tr>
|
||
<tr class="memdesc:a80be353a51c1e9c200f557c872a7e46b"><td class="mdescLeft"> </td><td class="mdescRight">Sets fit range using bin-offset specification (COMMANDS block syntax). <br /></td></tr>
|
||
<tr class="separator:a80be353a51c1e9c200f557c872a7e46b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a95a25738b84e975d34d6ece2f07d42ad" id="r_a95a25738b84e975d34d6ece2f07d42ad"><td class="memItemLeft" align="right" valign="top">virtual Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a95a25738b84e975d34d6ece2f07d42ad">GetBackground</a> ()</td></tr>
|
||
<tr class="memdesc:a95a25738b84e975d34d6ece2f07d42ad"><td class="mdescLeft"> </td><td class="mdescRight">Returns the estimated background level. <br /></td></tr>
|
||
<tr class="separator:a95a25738b84e975d34d6ece2f07d42ad"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a62570fa4c6d86fac5796f1fe6912afe9" id="r_a62570fa4c6d86fac5796f1fe6912afe9"><td class="memItemLeft" align="right" valign="top">virtual Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a62570fa4c6d86fac5796f1fe6912afe9">GetStartTimeBin</a> ()</td></tr>
|
||
<tr class="memdesc:a62570fa4c6d86fac5796f1fe6912afe9"><td class="mdescLeft"> </td><td class="mdescRight">Returns the first bin index in the fit range. <br /></td></tr>
|
||
<tr class="separator:a62570fa4c6d86fac5796f1fe6912afe9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a8186675fc3729c4dd086679de0acf700" id="r_a8186675fc3729c4dd086679de0acf700"><td class="memItemLeft" align="right" valign="top">virtual Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a8186675fc3729c4dd086679de0acf700">GetEndTimeBin</a> ()</td></tr>
|
||
<tr class="memdesc:a8186675fc3729c4dd086679de0acf700"><td class="mdescLeft"> </td><td class="mdescRight">Returns the last bin index in the fit range (exclusive). <br /></td></tr>
|
||
<tr class="separator:a8186675fc3729c4dd086679de0acf700"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a6a693657dee12cae29299f150a009059" id="r_a6a693657dee12cae29299f150a009059"><td class="memItemLeft" align="right" valign="top">virtual Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a6a693657dee12cae29299f150a009059">GetPacking</a> ()</td></tr>
|
||
<tr class="memdesc:a6a693657dee12cae29299f150a009059"><td class="mdescLeft"> </td><td class="mdescRight">Returns the bin packing factor. <br /></td></tr>
|
||
<tr class="separator:a6a693657dee12cae29299f150a009059"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7b3225bdea736a38dca1b72873c5e45a" id="r_a7b3225bdea736a38dca1b72873c5e45a"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7b3225bdea736a38dca1b72873c5e45a">GetScaleN0AndBkg</a> ()</td></tr>
|
||
<tr class="memdesc:a7b3225bdea736a38dca1b72873c5e45a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the N₀/background scaling mode. <br /></td></tr>
|
||
<tr class="separator:a7b3225bdea736a38dca1b72873c5e45a"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a194107943e61f591f132c2fc864a3792" id="r_a194107943e61f591f132c2fc864a3792"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a194107943e61f591f132c2fc864a3792">CalcNoOfFitBins</a> ()</td></tr>
|
||
<tr class="memdesc:a194107943e61f591f132c2fc864a3792"><td class="mdescLeft"> </td><td class="mdescRight">Calculates start/end bin indices from fit time range. <br /></td></tr>
|
||
<tr class="separator:a194107943e61f591f132c2fc864a3792"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="inherit_header pub_methods_classPRunBase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classPRunBase')"><img src="closed.png" alt="-"/> 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"> </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"> </td><td class="mdescRight">Default constructor. <br /></td></tr>
|
||
<tr class="separator:ae5fc9bd22de779aff2bbbcbf14b90d42 inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a3f9caf361812bebe3f63146878e28b18 inherit pub_methods_classPRunBase" id="r_a3f9caf361812bebe3f63146878e28b18"><td class="memItemLeft" align="right" valign="top"> </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"> </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"> </td></tr>
|
||
<tr class="memitem:a1048c017a4891ed5ca092377f73fa83a inherit pub_methods_classPRunBase" id="r_a1048c017a4891ed5ca092377f73fa83a"><td class="memItemLeft" align="right" valign="top">virtual </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"> </td><td class="mdescRight">Virtual destructor. <br /></td></tr>
|
||
<tr class="separator:a1048c017a4891ed5ca092377f73fa83a inherit pub_methods_classPRunBase"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a59cbd8ad7cb144c99c1dccefa4e200ff inherit pub_methods_classPRunBase" id="r_a59cbd8ad7cb144c99c1dccefa4e200ff"><td class="memItemLeft" align="right" valign="top">virtual void </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"> </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"> </td></tr>
|
||
<tr class="memitem:ac452c100e88628bad5a6017ae08b5bcb inherit pub_methods_classPRunBase" id="r_ac452c100e88628bad5a6017ae08b5bcb"><td class="memItemLeft" align="right" valign="top">virtual UInt_t </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"> </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"> </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> * </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"> </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"> </td></tr>
|
||
<tr class="memitem:a0b2209bc7e4adf26ad448b78d726c366 inherit pub_methods_classPRunBase" id="r_a0b2209bc7e4adf26ad448b78d726c366"><td class="memItemLeft" align="right" valign="top">virtual void </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"> </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"> </td></tr>
|
||
<tr class="memitem:a269787baf9a101ce181ef0b5a79b9e0d inherit pub_methods_classPRunBase" id="r_a269787baf9a101ce181ef0b5a79b9e0d"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </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"> </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"> </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:ad4e3beb9d99143c8fd117438dbba7fff" id="r_ad4e3beb9d99143c8fd117438dbba7fff"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff">PrepareData</a> ()</td></tr>
|
||
<tr class="memdesc:ad4e3beb9d99143c8fd117438dbba7fff"><td class="mdescLeft"> </td><td class="mdescRight">Main data preparation orchestrator. <br /></td></tr>
|
||
<tr class="separator:ad4e3beb9d99143c8fd117438dbba7fff"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae5f41624e8c54b2f8eeb2313e3cfac8e" id="r_ae5f41624e8c54b2f8eeb2313e3cfac8e"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e">PrepareFitData</a> (<a class="el" href="classPRawRunData.html">PRawRunData</a> *runData, const UInt_t histoNo)</td></tr>
|
||
<tr class="memdesc:ae5f41624e8c54b2f8eeb2313e3cfac8e"><td class="mdescLeft"> </td><td class="mdescRight">Prepares histogram data for fitting. <br /></td></tr>
|
||
<tr class="separator:ae5f41624e8c54b2f8eeb2313e3cfac8e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:abdf5efcec3cc3da8904be1ecac33922c" id="r_abdf5efcec3cc3da8904be1ecac33922c"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#abdf5efcec3cc3da8904be1ecac33922c">PrepareRawViewData</a> (<a class="el" href="classPRawRunData.html">PRawRunData</a> *runData, const UInt_t histoNo)</td></tr>
|
||
<tr class="memdesc:abdf5efcec3cc3da8904be1ecac33922c"><td class="mdescLeft"> </td><td class="mdescRight">Prepares raw histogram data for viewing (minimal processing). <br /></td></tr>
|
||
<tr class="separator:abdf5efcec3cc3da8904be1ecac33922c"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a5b603055ea7f271497bc852e436a464f" id="r_a5b603055ea7f271497bc852e436a464f"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5b603055ea7f271497bc852e436a464f">PrepareViewData</a> (<a class="el" href="classPRawRunData.html">PRawRunData</a> *runData, const UInt_t histoNo)</td></tr>
|
||
<tr class="memdesc:a5b603055ea7f271497bc852e436a464f"><td class="mdescLeft"> </td><td class="mdescRight">Prepares processed histogram data for viewing/plotting. <br /></td></tr>
|
||
<tr class="separator:a5b603055ea7f271497bc852e436a464f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="inherit_header pro_methods_classPRunBase"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classPRunBase')"><img src="closed.png" alt="-"/> 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 </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"> </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"> </td></tr>
|
||
<tr class="memitem:af75ae97c44331887fa56ee247d8e92ac inherit pro_methods_classPRunBase" id="r_af75ae97c44331887fa56ee247d8e92ac"><td class="memItemLeft" align="right" valign="top">virtual void </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"> </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"> </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:a92ee83617d6fe3f0451a360cfc93c892" id="r_a92ee83617d6fe3f0451a360cfc93c892"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a92ee83617d6fe3f0451a360cfc93c892">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> &histoNo)</td></tr>
|
||
<tr class="memdesc:a92ee83617d6fe3f0451a360cfc93c892"><td class="mdescLeft"> </td><td class="mdescRight">Determines and validates t0 values for histogram. <br /></td></tr>
|
||
<tr class="separator:a92ee83617d6fe3f0451a360cfc93c892"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a8c1dad5eddb29c1e6fc295ade612a29a" id="r_a8c1dad5eddb29c1e6fc295ade612a29a"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a8c1dad5eddb29c1e6fc295ade612a29a">GetProperDataRange</a> ()</td></tr>
|
||
<tr class="memdesc:a8c1dad5eddb29c1e6fc295ade612a29a"><td class="mdescLeft"> </td><td class="mdescRight">Determines data range (region of valid histogram data). <br /></td></tr>
|
||
<tr class="separator:a8c1dad5eddb29c1e6fc295ade612a29a"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7f03b7b4d1faa25d8619d3060ec2d1b6" id="r_a7f03b7b4d1faa25d8619d3060ec2d1b6"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7f03b7b4d1faa25d8619d3060ec2d1b6">GetProperFitRange</a> (<a class="el" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock)</td></tr>
|
||
<tr class="memdesc:a7f03b7b4d1faa25d8619d3060ec2d1b6"><td class="mdescLeft"> </td><td class="mdescRight">Determines fit range from MSR file settings. <br /></td></tr>
|
||
<tr class="separator:a7f03b7b4d1faa25d8619d3060ec2d1b6"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a741460485f8838de6a21c4797dec80e6" id="r_a741460485f8838de6a21c4797dec80e6"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a741460485f8838de6a21c4797dec80e6">EstimateN0</a> ()</td></tr>
|
||
<tr class="memdesc:a741460485f8838de6a21c4797dec80e6"><td class="mdescLeft"> </td><td class="mdescRight">Estimates initial normalization N₀ from histogram data. <br /></td></tr>
|
||
<tr class="separator:a741460485f8838de6a21c4797dec80e6"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a6167092dbec6d5144e603553d63a8110" id="r_a6167092dbec6d5144e603553d63a8110"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a6167092dbec6d5144e603553d63a8110">EstimateBkg</a> (UInt_t histoNo)</td></tr>
|
||
<tr class="memdesc:a6167092dbec6d5144e603553d63a8110"><td class="mdescLeft"> </td><td class="mdescRight">Estimates background from pre-t0 bins. <br /></td></tr>
|
||
<tr class="separator:a6167092dbec6d5144e603553d63a8110"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a2c5716a3db81fb1f8c253fdf759930b7" id="r_a2c5716a3db81fb1f8c253fdf759930b7"><td class="memItemLeft" align="right" valign="top">virtual Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2c5716a3db81fb1f8c253fdf759930b7">IsScaleN0AndBkg</a> ()</td></tr>
|
||
<tr class="memdesc:a2c5716a3db81fb1f8c253fdf759930b7"><td class="mdescLeft"> </td><td class="mdescRight">Determines if N₀ and background should be scaled to 1/ns. <br /></td></tr>
|
||
<tr class="separator:a2c5716a3db81fb1f8c253fdf759930b7"><td class="memSeparator" colspan="2"> </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:a8267ca69b0cf2a4e6934e927f227e74b" id="r_a8267ca69b0cf2a4e6934e927f227e74b"><td class="memItemLeft" align="right" valign="top">Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a8267ca69b0cf2a4e6934e927f227e74b">fScaleN0AndBkg</a></td></tr>
|
||
<tr class="memdesc:a8267ca69b0cf2a4e6934e927f227e74b"><td class="mdescLeft"> </td><td class="mdescRight">Scaling mode: true = scale N₀ and B to 1/ns, false = leave as 1/bin (determined by <a class="el" href="#a2c5716a3db81fb1f8c253fdf759930b7" title="Determines if N₀ and background should be scaled to 1/ns.">IsScaleN0AndBkg()</a>) <br /></td></tr>
|
||
<tr class="separator:a8267ca69b0cf2a4e6934e927f227e74b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a3263de8a471132410ce364542bd04a00" id="r_a3263de8a471132410ce364542bd04a00"><td class="memItemLeft" align="right" valign="top">UInt_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3263de8a471132410ce364542bd04a00">fNoOfFitBins</a></td></tr>
|
||
<tr class="memdesc:a3263de8a471132410ce364542bd04a00"><td class="mdescLeft"> </td><td class="mdescRight">Number of bins within fit range (fStartTimeBin to fEndTimeBin) <br /></td></tr>
|
||
<tr class="separator:a3263de8a471132410ce364542bd04a00"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a2df50725ab73222cad6c15698ba57cb9" id="r_a2df50725ab73222cad6c15698ba57cb9"><td class="memItemLeft" align="right" valign="top">Double_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2df50725ab73222cad6c15698ba57cb9">fBackground</a></td></tr>
|
||
<tr class="memdesc:a2df50725ab73222cad6c15698ba57cb9"><td class="mdescLeft"> </td><td class="mdescRight">Background level in counts/bin (estimated from pre-t0 bins or fixed value from RUN block) <br /></td></tr>
|
||
<tr class="separator:a2df50725ab73222cad6c15698ba57cb9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ab2314ada7f993fd9fa07d365be4973e1" id="r_ab2314ada7f993fd9fa07d365be4973e1"><td class="memItemLeft" align="right" valign="top">Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab2314ada7f993fd9fa07d365be4973e1">fPacking</a></td></tr>
|
||
<tr class="memdesc:ab2314ada7f993fd9fa07d365be4973e1"><td class="mdescLeft"> </td><td class="mdescRight">Bin packing factor (REQUIRED: from RUN or GLOBAL block) <br /></td></tr>
|
||
<tr class="separator:ab2314ada7f993fd9fa07d365be4973e1"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aab652fdbf5612f51b224bafb132968d7" id="r_aab652fdbf5612f51b224bafb132968d7"><td class="memItemLeft" align="right" valign="top">Bool_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#aab652fdbf5612f51b224bafb132968d7">fTheoAsData</a></td></tr>
|
||
<tr class="memdesc:aab652fdbf5612f51b224bafb132968d7"><td class="mdescLeft"> </td><td class="mdescRight">Theory mode: true = at data points, false = high-resolution grid for smooth Fourier transforms. <br /></td></tr>
|
||
<tr class="separator:aab652fdbf5612f51b224bafb132968d7"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aad79f1a5522f7b8dd02a931e1da46b72" id="r_aad79f1a5522f7b8dd02a931e1da46b72"><td class="memItemLeft" align="right" valign="top">Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#aad79f1a5522f7b8dd02a931e1da46b72">fGoodBins</a> [2]</td></tr>
|
||
<tr class="memdesc:aad79f1a5522f7b8dd02a931e1da46b72"><td class="mdescLeft"> </td><td class="mdescRight">Good bin markers for COMMANDS block: [0]=fgb (first good bin/t0), [1]=lgb (last good bin) <br /></td></tr>
|
||
<tr class="separator:aad79f1a5522f7b8dd02a931e1da46b72"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:af68e70c2788d8074b18e7e47f6546fbc" id="r_af68e70c2788d8074b18e7e47f6546fbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#af68e70c2788d8074b18e7e47f6546fbc">fForward</a></td></tr>
|
||
<tr class="memdesc:af68e70c2788d8074b18e7e47f6546fbc"><td class="mdescLeft"> </td><td class="mdescRight">Forward detector histogram (background-corrected, packed) <br /></td></tr>
|
||
<tr class="separator:af68e70c2788d8074b18e7e47f6546fbc"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a86de1420609e08e6fa277a6730ecb0a2" id="r_a86de1420609e08e6fa277a6730ecb0a2"><td class="memItemLeft" align="right" valign="top">Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a86de1420609e08e6fa277a6730ecb0a2">fStartTimeBin</a></td></tr>
|
||
<tr class="memdesc:a86de1420609e08e6fa277a6730ecb0a2"><td class="mdescLeft"> </td><td class="mdescRight">First bin index in fit range (inclusive, 0-based after packing) <br /></td></tr>
|
||
<tr class="separator:a86de1420609e08e6fa277a6730ecb0a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7b36967f5d5df2e4085568ee3781e21e" id="r_a7b36967f5d5df2e4085568ee3781e21e"><td class="memItemLeft" align="right" valign="top">Int_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7b36967f5d5df2e4085568ee3781e21e">fEndTimeBin</a></td></tr>
|
||
<tr class="memdesc:a7b36967f5d5df2e4085568ee3781e21e"><td class="mdescLeft"> </td><td class="mdescRight">Last bin index in fit range (exclusive: loop as i < fEndTimeBin) <br /></td></tr>
|
||
<tr class="separator:a7b36967f5d5df2e4085568ee3781e21e"><td class="memSeparator" colspan="2"> </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="-"/> 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 </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"> </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"> </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> </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"> </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"> </td></tr>
|
||
<tr class="memitem:aeccaae88c9db0804981e1bd3f81fc57a inherit pro_attribs_classPRunBase" id="r_aeccaae88c9db0804981e1bd3f81fc57a"><td class="memItemLeft" align="right" valign="top">Int_t </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"> </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"> </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> * </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"> </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"> </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> * </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"> </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"> </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> * </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"> </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"> </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> </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"> </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"> </td></tr>
|
||
<tr class="memitem:a0ec9b72abc7a54f1e0f4c12d45bb0357 inherit pro_attribs_classPRunBase" id="r_a0ec9b72abc7a54f1e0f4c12d45bb0357"><td class="memItemLeft" align="right" valign="top">Double_t </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"> </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"> </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> </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"> </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"> </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> </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"> </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"> </td></tr>
|
||
<tr class="memitem:ab5f96afcdca519f9a33a9fd9a3a6c67d inherit pro_attribs_classPRunBase" id="r_ab5f96afcdca519f9a33a9fd9a3a6c67d"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> > </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"> </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"> </td></tr>
|
||
<tr class="memitem:af4a626805d2fbd201472f0487474bb40 inherit pro_attribs_classPRunBase" id="r_af4a626805d2fbd201472f0487474bb40"><td class="memItemLeft" align="right" valign="top">Double_t </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"> </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"> </td></tr>
|
||
<tr class="memitem:a4736fa656bba18cc5b61a1273ac839d4 inherit pro_attribs_classPRunBase" id="r_a4736fa656bba18cc5b61a1273ac839d4"><td class="memItemLeft" align="right" valign="top">Double_t </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"> </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"> </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> </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"> </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"> </td></tr>
|
||
<tr class="memitem:a96aeb9099bceb6456c90d5b03d2dc3ec inherit pro_attribs_classPRunBase" id="r_a96aeb9099bceb6456c90d5b03d2dc3ec"><td class="memItemLeft" align="right" valign="top">std::unique_ptr< <a class="el" href="classPTheory.html">PTheory</a> > </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"> </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"> </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> </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"> </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"> </td></tr>
|
||
</table>
|
||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||
<div class="textblock"><p>Class for fitting single detector histograms (basic time-differential μSR). </p>
|
||
<p><a class="el" href="classPRunSingleHisto.html" title="Class for fitting single detector histograms (basic time-differential μSR).">PRunSingleHisto</a> implements the most fundamental μSR analysis: fitting a single positron detector histogram to extract relaxation parameters. This is the basis for all μSR measurements and is used when asymmetry analysis is not appropriate or desired.</p>
|
||
<h1><a class="anchor" id="singlehisto_physics"></a>
|
||
Physics and Applications</h1>
|
||
<p><b>Single histogram measurements are used for:</b></p><ul>
|
||
<li><b>Time-differential μSR:</b> Measure μ⁺ decay positron time spectrum</li>
|
||
<li><b>Detector calibration:</b> Characterize individual detector response</li>
|
||
<li><b>Transverse field (TF):</b> When forward/backward separation unnecessary</li>
|
||
<li><b>High statistics:</b> Use all positrons (no F-B discrimination)</li>
|
||
<li><b>Specialized geometries:</b> Non-standard detector arrangements</li>
|
||
<li><b>Method development:</b> Test fitting algorithms on single detector</li>
|
||
</ul>
|
||
<h1><a class="anchor" id="singlehisto_data"></a>
|
||
Data Structure and Analysis</h1>
|
||
<p><b>Histogram content:</b></p><ul>
|
||
<li>Raw counts vs. time from a single positron detector</li>
|
||
<li>Time-zero (t0): Muon arrival time marking start of decay</li>
|
||
<li>Background: Constant or estimated from pre-t0 bins</li>
|
||
<li>Signal: N(t) = N₀·exp(-t/τ_μ)·P(t) + B</li>
|
||
</ul>
|
||
<p>where:</p><ul>
|
||
<li>N₀ = initial count rate (normalization parameter)</li>
|
||
<li>τ_μ = 2.197 μs (muon lifetime)</li>
|
||
<li>P(t) = polarization function (contains physics: relaxation, oscillation, etc.)</li>
|
||
<li>B = background (random coincidences, accidentals)</li>
|
||
</ul>
|
||
<h1><a class="anchor" id="singlehisto_workflow"></a>
|
||
Analysis Workflow</h1>
|
||
<ol type="1">
|
||
<li><b>Load Histogram:</b> Read raw detector counts from data file</li>
|
||
<li><b>Determine t0:</b> Identify muon arrival time</li>
|
||
<li><b>Background Subtraction:</b><ul>
|
||
<li>Fixed: Subtract specified constant</li>
|
||
<li>Estimated: Calculate from pre-t0 bins, subtract with error propagation</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Bin Packing:</b> Rebin to improve statistics (optional)</li>
|
||
<li><b>Fit Range:</b> Select time window for parameter extraction</li>
|
||
<li><b>Theory Evaluation:</b> N_theory(t) = N₀·exp(-t/τ_μ)·P_theory(t) + B</li>
|
||
<li><b>Minimization:</b> χ² or maximum likelihood via MINUIT</li>
|
||
</ol>
|
||
<h1><a class="anchor" id="singlehisto_theory"></a>
|
||
Theory Function</h1>
|
||
<p>The fitted function is typically: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_33_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ N(t) = N_0 e^{-t/\tau_\mu} P(t) + B \]" src="form_33.png"/></picture>
|
||
</p>
|
||
<p>Common polarization functions P(t):</p><ul>
|
||
<li><b>Static Gaussian:</b> P(t) = exp(-σ²t²/2)</li>
|
||
<li><b>Static Lorentzian:</b> P(t) = exp(-λt)</li>
|
||
<li><b>Dynamic relaxation:</b> P(t) = exp(-(λt)^β) (stretched exponential)</li>
|
||
<li><b>Oscillating:</b> P(t) = cos(ωt + φ) · exp(-λt)</li>
|
||
<li><b>Kubo-Toyabe:</b> Complex relaxation functions for spin systems</li>
|
||
</ul>
|
||
<h1><a class="anchor" id="singlehisto_parameters"></a>
|
||
Key Parameters</h1>
|
||
<p><b>Normalization (N₀):</b></p><ul>
|
||
<li>Can be fit parameter or fixed value</li>
|
||
<li>Can be derived from FUNCTIONS block</li>
|
||
<li>Automatically scaled to 1/ns or 1/bin (fScaleN0AndBkg)</li>
|
||
</ul>
|
||
<p><b>Background (B):</b></p><ul>
|
||
<li>Fixed: From "background" entry in RUN block</li>
|
||
<li>Estimated: Calculated from pre-t0 bin range</li>
|
||
<li>Units: counts/bin</li>
|
||
</ul>
|
||
<p><b>Packing:</b></p><ul>
|
||
<li>Number of consecutive bins to combine</li>
|
||
<li>REQUIRED parameter (RUN or GLOBAL block)</li>
|
||
<li>Higher packing → better statistics, worse time resolution</li>
|
||
</ul>
|
||
<h1><a class="anchor" id="singlehisto_msr"></a>
|
||
MSR File Example</h1>
|
||
<div class="fragment"><div class="line">RUN data/run2425 PSI MUE4 PSI MUSR-ROOT (name beamline)</div>
|
||
<div class="line"> fittype 0 (SingleHisto)</div>
|
||
<div class="line"> map 1 (forward histogram number)</div>
|
||
<div class="line"> forward 1</div>
|
||
<div class="line"> packing 50 (combine 50 bins → one packed bin)</div>
|
||
<div class="line"> background 50 150 (estimate from bins 50-150)</div>
|
||
<div class="line"> data 200 2000 (use bins 200-2000 for analysis)</div>
|
||
<div class="line"> t0 210.5 (muon arrival bin)</div>
|
||
<div class="line"> fit 0.1 10.0 (fit from 0.1 to 10.0 μs after t0)</div>
|
||
<div class="line"> </div>
|
||
<div class="line">THEORY</div>
|
||
<div class="line"> asymmetry 1</div>
|
||
<div class="line"> simpleGss 2 (Gaussian relaxation σ)</div>
|
||
<div class="line"> + 3 (constant background offset)</div>
|
||
</div><!-- fragment --><h1><a class="anchor" id="singlehisto_vs_asymmetry"></a>
|
||
Single Histo vs. Asymmetry</h1>
|
||
<table class="doxtable">
|
||
<tr>
|
||
<th>Feature</th><th>Single Histogram</th><th>Asymmetry </th></tr>
|
||
<tr>
|
||
<td>Detectors</td><td>One (forward)</td><td>Two (forward + backward) </td></tr>
|
||
<tr>
|
||
<td>Quantity fitted</td><td>N(t) counts</td><td>A(t) = (F-αB)/(F+αB) </td></tr>
|
||
<tr>
|
||
<td>Statistics</td><td>All positrons</td><td>F and B separately </td></tr>
|
||
<tr>
|
||
<td>Background</td><td>Additive B</td><td>Cancels in asymmetry </td></tr>
|
||
<tr>
|
||
<td>α parameter</td><td>N/A</td><td>Required (F/B asymmetry) </td></tr>
|
||
<tr>
|
||
<td>Use cases</td><td>TF, calibration</td><td>LF, ZF, weak TF </td></tr>
|
||
</table>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPRunAsymmetry.html" title="Class for handling standard μSR asymmetry fits.">PRunAsymmetry</a> for forward-backward asymmetry analysis </dd>
|
||
<dd>
|
||
<a class="el" href="classPRunSingleHistoRRF.html" title="Class for fitting single histogram data in a Rotating Reference Frame (RRF).">PRunSingleHistoRRF</a> for rotating reference frame (high-TF) </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="PRunSingleHisto_8h_source.html#l00143">143</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||
<a id="a7e036829d2ee4421da864bfcb2c7684d" name="a7e036829d2ee4421da864bfcb2c7684d"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7e036829d2ee4421da864bfcb2c7684d">◆ </a></span>PRunSingleHisto() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">PRunSingleHisto::PRunSingleHisto </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 single histogram run object. </p>
|
||
<p>Default constructor for single histogram fitting class.</p>
|
||
<p>Initializes all member variables to default/invalid states:</p><ul>
|
||
<li>fScaleN0AndBkg = true (scale to 1/ns by default)</li>
|
||
<li>fNoOfFitBins = 0 (no bins to fit)</li>
|
||
<li>fBackground = 0 (no background)</li>
|
||
<li>fPacking = -1 (unspecified - will cause error if not set)</li>
|
||
<li>fTheoAsData = false (high-resolution theory grid)</li>
|
||
<li>Good bins markers = -1 (unset)</li>
|
||
<li>Fit range bins = -1 (unset)</li>
|
||
</ul>
|
||
<p>This constructor is needed for creating vectors of <a class="el" href="classPRunSingleHisto.html" title="Class for fitting single detector histograms (basic time-differential μSR).">PRunSingleHisto</a> objects. The resulting object cannot be used until properly initialized via the main constructor.</p>
|
||
<p>Initializes all member variables to safe default values:</p><ul>
|
||
<li>fScaleN0AndBkg = true (normalize N₀ and background to 1/ns)</li>
|
||
<li>fPacking = -1 (invalid until set from MSR file)</li>
|
||
<li>fBackground = 0 (will be estimated or set from MSR file)</li>
|
||
<li>fStartTimeBin / fEndTimeBin = -1 (calculated from fit range)</li>
|
||
<li>fGoodBins[0,1] = -1 (calculated from data range)</li>
|
||
</ul>
|
||
<dl class="section warning"><dt>Warning</dt><dd>This constructor creates an invalid object until initialized with MSR file data. Use the full constructor for normal operation. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">65</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00379">fEndTimeBin</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00374">fGoodBins</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00369">fNoOfFitBins</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00372">fTheoAsData</a>, and <a class="el" href="PRunBase_8cpp_source.html#l00054">PRunBase::PRunBase()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a28f6a71b90e032c43fc56ba3a471d930" name="a28f6a71b90e032c43fc56ba3a471d930"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a28f6a71b90e032c43fc56ba3a471d930">◆ </a></span>PRunSingleHisto() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">PRunSingleHisto::PRunSingleHisto </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> )</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Main constructor initializing a single histogram run from MSR file and data. </p>
|
||
<p>Main constructor for single histogram fitting and viewing.</p>
|
||
<p>Performs comprehensive initialization:</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</li>
|
||
<li>Initializes theory engine, parameter mappings, FUNCTIONS block</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>N₀/Background Scaling:</b><ul>
|
||
<li>Calls <a class="el" href="#a2c5716a3db81fb1f8c253fdf759930b7" title="Determines if N₀ and background should be scaled to 1/ns.">IsScaleN0AndBkg()</a> to determine scaling mode</li>
|
||
<li>Sets fScaleN0AndBkg flag (true = scale to 1/ns, false = leave as 1/bin)</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Packing Validation (CRITICAL):</b><ul>
|
||
<li>Attempts to read packing from RUN block</li>
|
||
<li>Falls back to GLOBAL block if not in RUN</li>
|
||
<li>SEVERE ERROR if packing == -1 (mandatory parameter)</li>
|
||
<li>Marks run invalid and returns if packing not found</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Member Initialization:</b><ul>
|
||
<li>Good bin markers, fit range bins set to -1 (determined later)</li>
|
||
<li>Background initialized to 0 (set during PrepareData if specified)</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Data Preparation:</b><ul>
|
||
<li>Calls <a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> to load and preprocess histogram</li>
|
||
<li>If <a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> fails → marks run invalid</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<p>The object is marked as invalid (fValid=false) if:</p><ul>
|
||
<li>Packing parameter is missing from both RUN and GLOBAL blocks</li>
|
||
<li><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">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) </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>Always check <a class="el" href="classPRunBase.html#a269787baf9a101ce181ef0b5a79b9e0d" title="Returns validity status of this run object.">IsValid()</a> after construction. Packing is MANDATORY.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> for data preprocessing details </dd>
|
||
<dd>
|
||
<a class="el" href="#a2c5716a3db81fb1f8c253fdf759930b7" title="Determines if N₀ and background should be scaled to 1/ns.">IsScaleN0AndBkg()</a> for scaling determination</dd></dl>
|
||
<p>Constructs a fully initialized single histogram run object by:</p><ol type="1">
|
||
<li>Extracting packing value from RUN block (or falling back to GLOBAL block)</li>
|
||
<li>Determining if N₀ and background should be scaled to 1/ns</li>
|
||
<li>Calling <a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> to load and process histogram data</li>
|
||
<li>Setting up fit ranges and background estimation</li>
|
||
</ol>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">msrInfo</td><td>Pointer to MSR file handler (NOT owned, must outlive this object) </td></tr>
|
||
<tr><td class="paramname">rawData</td><td>Pointer to raw run data handler (NOT owned, must outlive this object) </td></tr>
|
||
<tr><td class="paramname">runNo</td><td>Zero-based index of the RUN block in the MSR file </td></tr>
|
||
<tr><td class="paramname">tag</td><td>Operation mode: kFit (fitting) or kView (viewing/plotting) </td></tr>
|
||
<tr><td class="paramname">theoAsData</td><td>If true, theory is calculated only at data points (for viewing); if false, theory uses finer time grid (8× data resolution)</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>Packing MUST be specified either in the RUN block or GLOBAL block. If packing is not found, the constructor sets fValid=false and returns.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>After construction, check <a class="el" href="classPRunBase.html#a269787baf9a101ce181ef0b5a79b9e0d" title="Returns validity status of this run object.">IsValid()</a> to ensure initialization succeeded.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a>, <a class="el" href="#a2c5716a3db81fb1f8c253fdf759930b7" title="Determines if N₀ and background should be scaled to 1/ns.">IsScaleN0AndBkg()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">108</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00379">fEndTimeBin</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00374">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00369">fNoOfFitBins</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00372">fTheoAsData</a>, <a class="el" href="PRunBase_8h_source.html#l00266">PRunBase::fValid</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02412">IsScaleN0AndBkg()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>, and <a class="el" href="PRunBase_8cpp_source.html#l00054">PRunBase::PRunBase()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a4b112c8b00fbe14f23244ce822b03603" name="a4b112c8b00fbe14f23244ce822b03603"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a4b112c8b00fbe14f23244ce822b03603">◆ </a></span>~PRunSingleHisto()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">PRunSingleHisto::~PRunSingleHisto </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 for single histogram fitting class.</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>Cleans up dynamically allocated memory:</p><ul>
|
||
<li>Clears the forward histogram data vector</li>
|
||
<li>Base class destructor handles theory objects and other shared resources </li>
|
||
</ul>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00153">153</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00376">fForward</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Member Function Documentation</h2>
|
||
<a id="a114f2de78d118cadfd3a90dc28e1cf57" name="a114f2de78d118cadfd3a90dc28e1cf57"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a114f2de78d118cadfd3a90dc28e1cf57">◆ </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 PRunSingleHisto::CalcChiSquare </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< Double_t > &</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 histogram data and theory. </p>
|
||
<p>Calculates χ² between data and theory (least-squares fit metric).</p>
|
||
<p>Computes chi-squared for single histogram fitting: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_34_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \chi^2 = \sum_{i} \frac{(N_i^{\rm data} - N_i^{\rm theory})^2}{\sigma_i^2} \]" src="form_34.png"/></picture>
|
||
</p>
|
||
<p>where N_theory(t) = N₀·exp(-t/τ_μ)·P(t) + B</p>
|
||
<p>Uses OpenMP parallelization when available. N₀ can be a fit parameter or derived from FUNCTIONS block.</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>χ² value (minimize during fitting)</dd></dl>
|
||
<p>Computes the standard chi-square goodness-of-fit statistic: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_84_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[\chi^2 = \sum_{i=t_{\rm start}}^{t_{\rm end}} \frac{[N_i - N_{\rm theo}(t_i)]^2}{\sigma_i^2}
|
||
\]" src="form_84.png"/></picture>
|
||
</p>
|
||
<p>where the theory function is: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_85_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[N_{\rm theo}(t) = N_0 e^{-t/\tau_\mu} [1 + P(t)] + B
|
||
\]" src="form_85.png"/></picture>
|
||
</p>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Extract N₀ from parameter vector or evaluate as a function</li>
|
||
<li>Extract muon lifetime τ (defaults to PMUON_LIFETIME if not fitted)</li>
|
||
<li>Extract background B (from fit parameter, fixed value, or estimated range)</li>
|
||
<li>Evaluate all user-defined functions in FUNCTIONS block</li>
|
||
<li>Pre-calculate theory at t=1.0 to initialize LF/user functions (thread-safe)</li>
|
||
<li>Loop over fit range bins [fStartTimeBin, fEndTimeBin) using OpenMP parallelization</li>
|
||
<li>Accumulate χ² with reduction across threads</li>
|
||
<li>Apply correction factor if fScaleN0AndBkg is true</li>
|
||
</ol>
|
||
<p><b>N₀ Parameter vs. Function Handling:</b></p><ul>
|
||
<li>If norm parameter number < MSR_PARAM_FUN_OFFSET: N₀ is a fit parameter</li>
|
||
<li>If norm parameter number ≥ MSR_PARAM_FUN_OFFSET: N₀ is a user-defined function</li>
|
||
</ul>
|
||
<p><b>OpenMP Parallelization:</b></p><ul>
|
||
<li>Dynamic scheduling with chunk size = (N_bins / N_processors), minimum 10</li>
|
||
<li>Private variables per thread: i, time, diff</li>
|
||
<li>Reduction performed on chisq sum</li>
|
||
</ul>
|
||
<p><b>Scaling Correction:</b> If fScaleN0AndBkg is true, χ² is multiplied by: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_86_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[\text{correction} = \text{packing} \times (t_{\rm res} \times 1000)
|
||
\]" src="form_86.png"/></picture>
|
||
</p>
|
||
<p> This accounts for the fact that data scales like pack×t_res, but errors scale like √(pack×t_res), ensuring correct χ² when normalizing to 1/ns.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT2 optimizer (1-based indexing in MSR file, but 0-based in this vector)</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>Chi-square value for the current parameter set</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a2aa64a7b5b1b628c557c475efa6e0ba4" title="Calculates expected χ² based on theory predictions.">CalcChiSquareExpected()</a>, <a class="el" href="#a5be2273a8f933fc8b4b3d398df302e14" title="Calculates maximum likelihood for Poisson-distributed histogram counts.">CalcMaxLikelihood()</a>, <a class="el" href="classPTheory.html#ab0b6defce6fa75187ae306332fac3425" title="Evaluates the theory function at a given time point.">PTheory::Func()</a> </dd></dl>
|
||
|
||
<p>Implements <a class="el" href="classPRunBase.html#afb8ed1f6e8beb0530da96012ad3258d3">PRunBase</a>.</p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00208">208</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00379">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="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>, and <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a2aa64a7b5b1b628c557c475efa6e0ba4" name="a2aa64a7b5b1b628c557c475efa6e0ba4"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2aa64a7b5b1b628c557c475efa6e0ba4">◆ </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 PRunSingleHisto::CalcChiSquareExpected </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< Double_t > &</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. </p>
|
||
<p>Calculates expected χ² using theory as variance (alternative fit metric).</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 χ² (for statistical diagnostics)</dd></dl>
|
||
<p>Computes chi-square using the expected variance (theory value) instead of observed variance. This is sometimes called the "Neyman χ²" or "expected χ²": </p><p class="formulaDsp">
|
||
<picture><source srcset="form_87_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[\chi^2_{\rm exp} = \sum_{i=t_{\rm start}}^{t_{\rm end}} \frac{[N_i - N_{\rm theo}(t_i)]^2}{N_{\rm theo}(t_i)}
|
||
\]" src="form_87.png"/></picture>
|
||
</p>
|
||
<p><b>Difference from Standard χ²:</b></p><ul>
|
||
<li>Standard χ²: variance = σ²ᵢ (from observed data)</li>
|
||
<li>Expected χ²: variance = N_theo(tᵢ) (from theory prediction)</li>
|
||
</ul>
|
||
<p>This metric can be useful when:</p><ul>
|
||
<li>Theory predictions are more reliable than data errors</li>
|
||
<li>Data contains zero or very low counts (standard χ² undefined)</li>
|
||
<li>Testing model consistency against expected distribution</li>
|
||
</ul>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Extract N₀ from parameter vector or evaluate as a function</li>
|
||
<li>Extract muon lifetime τ (defaults to PMUON_LIFETIME if not fitted)</li>
|
||
<li>Extract background B (from fit parameter, fixed value, or estimated range)</li>
|
||
<li>Evaluate all user-defined functions in FUNCTIONS block</li>
|
||
<li>Pre-calculate theory at t=1.0 to initialize LF/user functions (thread-safe)</li>
|
||
<li>Loop over fit range bins [fStartTimeBin, fEndTimeBin) using OpenMP parallelization</li>
|
||
<li>Accumulate χ²_exp with reduction across threads</li>
|
||
<li>Apply correction factor if fScaleN0AndBkg is true</li>
|
||
</ol>
|
||
<p><b>OpenMP Parallelization:</b></p><ul>
|
||
<li>Dynamic scheduling with chunk size = (N_bins / N_processors), minimum 10</li>
|
||
<li>Private variables per thread: i, time, theo, diff</li>
|
||
<li>Reduction performed on chisq sum</li>
|
||
</ul>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT2 optimizer</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>Expected chi-square value for the current parameter set</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a114f2de78d118cadfd3a90dc28e1cf57" title="Calculates χ² between histogram data and theory.">CalcChiSquare()</a>, <a class="el" href="#a5be2273a8f933fc8b4b3d398df302e14" title="Calculates maximum likelihood for Poisson-distributed histogram counts.">CalcMaxLikelihood()</a> </dd></dl>
|
||
|
||
<p>Implements <a class="el" href="classPRunBase.html#a1a15d5f51a874149b0d60798f99449a6">PRunBase</a>.</p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00323">323</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00379">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="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>, and <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5be2273a8f933fc8b4b3d398df302e14" name="a5be2273a8f933fc8b4b3d398df302e14"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5be2273a8f933fc8b4b3d398df302e14">◆ </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 PRunSingleHisto::CalcMaxLikelihood </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< Double_t > &</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 maximum likelihood for Poisson-distributed histogram counts. </p>
|
||
<p>Calculates -2 log(maximum likelihood) for Poisson-distributed histogram data.</p>
|
||
<p>Computes -2ln(L) for low-count data (< 10-20 counts/bin). Superior to χ² when Gaussian approximation invalid.</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</dd></dl>
|
||
<p>Computes the negative log-likelihood assuming Poisson statistics for each bin. This is the preferred fit metric for low-count data where Gaussian approximations break down. The likelihood function is: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_88_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[-2\ln\mathcal{L} = 2 \sum_{i} \left[ N_{\rm theo}(t_i) - N_i + N_i \ln\frac{N_i}{N_{\rm theo}(t_i)} \right]
|
||
\]" src="form_88.png"/></picture>
|
||
</p>
|
||
<p>This is derived from the Poisson probability: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_89_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[P(N_i | N_{\rm theo}) = \frac{N_{\rm theo}^{N_i} e^{-N_{\rm theo}}}{N_i!}
|
||
\]" src="form_89.png"/></picture>
|
||
</p>
|
||
<p>The factor of 2 makes -2ln(L) asymptotically distributed as χ² for large N, allowing use of standard error estimation from MINUIT.</p>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Extract N₀ from parameter vector or evaluate as a function</li>
|
||
<li>Extract muon lifetime τ (defaults to PMUON_LIFETIME if not fitted)</li>
|
||
<li>Extract background B (from fit parameter, fixed value, or estimated range)</li>
|
||
<li>Evaluate all user-defined functions in FUNCTIONS block</li>
|
||
<li>Pre-calculate theory at t=1.0 to initialize LF/user functions (thread-safe)</li>
|
||
<li>Calculate normalizer = packing × t_res × 1000 (if fScaleN0AndBkg is true)</li>
|
||
<li>Loop over fit range bins [fStartTimeBin, fEndTimeBin) using OpenMP parallelization</li>
|
||
<li>For each bin:<ul>
|
||
<li>Calculate theory N_theo(t)</li>
|
||
<li>If N_theo ≤ 0: skip bin with warning (negative theory is unphysical)</li>
|
||
<li>If N_data > 10⁻⁹: add (theo - data) + data×ln(data/theo)</li>
|
||
<li>If N_data ≈ 0: add (theo - data) only (limit as data→0)</li>
|
||
</ul>
|
||
</li>
|
||
<li>Accumulate -2ln(L) with reduction across threads</li>
|
||
<li>Apply normalizer scaling</li>
|
||
</ol>
|
||
<p><b>Edge Cases:</b></p><ul>
|
||
<li><b>Zero data (Nᵢ = 0):</b> Uses limit: -2ln(L) → 2×N_theo</li>
|
||
<li><b>Negative theory:</b> Skips bin and prints warning (should not occur with valid parameters)</li>
|
||
<li><b>Data threshold:</b> Uses 10⁻⁹ to distinguish zero from non-zero data</li>
|
||
</ul>
|
||
<p><b>OpenMP Parallelization:</b></p><ul>
|
||
<li>Dynamic scheduling with chunk size = (N_bins / N_processors), minimum 10</li>
|
||
<li>Private variables per thread: i, time, theo, data</li>
|
||
<li>Reduction performed on mllh sum (note: reduction(-:mllh) for subtraction)</li>
|
||
</ul>
|
||
<p><b>When to Use Maximum Likelihood vs. χ²:</b></p><ul>
|
||
<li><b>Use likelihood:</b> Low count rates (< 100 counts/bin), asymmetric errors</li>
|
||
<li><b>Use χ²:</b> High count rates (> 100 counts/bin), Gaussian regime</li>
|
||
</ul>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT2 optimizer</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>-2 × log(maximum likelihood) for the current parameter set</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a114f2de78d118cadfd3a90dc28e1cf57" title="Calculates χ² between histogram data and theory.">CalcChiSquare()</a>, <a class="el" href="#acee63e46149d3823ea699f917fa91e60" title="Calculates expected maximum likelihood.">CalcMaxLikelihoodExpected()</a> </dd>
|
||
<dd>
|
||
PDG Review of Particle Physics: Statistics section (<a href="http://pdg.lbl.gov">http://pdg.lbl.gov</a>) </dd></dl>
|
||
|
||
<p>Implements <a class="el" href="classPRunBase.html#a5d7a15b6962e3767860ef9b4c9208201">PRunBase</a>.</p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00455">455</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00379">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="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>, and <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="acee63e46149d3823ea699f917fa91e60" name="acee63e46149d3823ea699f917fa91e60"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#acee63e46149d3823ea699f917fa91e60">◆ </a></span>CalcMaxLikelihoodExpected()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Double_t PRunSingleHisto::CalcMaxLikelihoodExpected </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::vector< Double_t > &</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 maximum likelihood. </p>
|
||
<p>Calculates expected -2 log(maximum likelihood) using G-test formulation.</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 -2×ln(L)</dd></dl>
|
||
<p>Computes an alternative form of the Poisson likelihood using only the data×ln(data/theo) term. This is related to the G-test (likelihood ratio test) and represents the "expected" contribution to the likelihood: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_90_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[-2\ln\mathcal{L}_{\rm exp} = 2 \sum_{i} N_i \ln\frac{N_i}{N_{\rm theo}(t_i)}
|
||
\]" src="form_90.png"/></picture>
|
||
</p>
|
||
<p><b>Difference from <a class="el" href="#a5be2273a8f933fc8b4b3d398df302e14" title="Calculates maximum likelihood for Poisson-distributed histogram counts.">CalcMaxLikelihood()</a>:</b></p><ul>
|
||
<li><b>Full likelihood:</b> includes (theo - data) + data×ln(data/theo)</li>
|
||
<li><b>Expected likelihood:</b> includes only data×ln(data/theo)</li>
|
||
</ul>
|
||
<p>The omitted (theo - data) term represents the "prior" expectation and is constant for a given theory. This formulation is sometimes used in:</p><ul>
|
||
<li>G-test for goodness-of-fit (likelihood ratio test)</li>
|
||
<li>Comparing relative likelihoods between models</li>
|
||
</ul>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Extract N₀, τ, and background B (same as CalcMaxLikelihood)</li>
|
||
<li>Evaluate all user-defined functions in FUNCTIONS block</li>
|
||
<li>Pre-calculate theory at t=1.0 to initialize LF/user functions (thread-safe)</li>
|
||
<li>Calculate normalizer = packing × t_res × 1000 (if fScaleN0AndBkg is true)</li>
|
||
<li>Loop over fit range bins using OpenMP parallelization</li>
|
||
<li>For each bin with N_data > 10⁻⁹:<ul>
|
||
<li>Calculate theory N_theo(t)</li>
|
||
<li>Add data × ln(data/theo) to likelihood sum</li>
|
||
</ul>
|
||
</li>
|
||
<li>Skip bins with N_data ≈ 0 (zero contribution to expected likelihood)</li>
|
||
<li>Apply normalizer × 2.0 scaling</li>
|
||
</ol>
|
||
<dl class="section warning"><dt>Warning</dt><dd>The comment "is this correct?? needs to be checked. See G-test" in the code indicates this implementation may need verification.</dd></dl>
|
||
<p><b>OpenMP Parallelization:</b></p><ul>
|
||
<li>Dynamic scheduling with chunk size = (N_bins / N_processors), minimum 10</li>
|
||
<li>Private variables per thread: i, time, theo, data</li>
|
||
<li>Reduction performed on mllh sum</li>
|
||
</ul>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">par</td><td>Parameter vector from MINUIT2 optimizer</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>-2 × log(expected likelihood) for the current parameter set</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a5be2273a8f933fc8b4b3d398df302e14" title="Calculates maximum likelihood for Poisson-distributed histogram counts.">CalcMaxLikelihood()</a>, G-test (likelihood ratio test) </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00590">590</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00379">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="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>, and <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a194107943e61f591f132c2fc864a3792" name="a194107943e61f591f132c2fc864a3792"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a194107943e61f591f132c2fc864a3792">◆ </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 PRunSingleHisto::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>Calculates the number of bins in the fit range and caches bin indices.</p>
|
||
<p>Converts fit range (μs) to bin indices, accounting for t0, time resolution, and packing. Updates fStartTimeBin, fEndTimeBin, fNoOfFitBins.</p>
|
||
<p>Converts the fit time range [fFitStartTime, fFitEndTime] to bin indices [fStartTimeBin, fEndTimeBin) and computes the total number of fit bins.</p>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Calculate start bin: <picture><source srcset="form_92_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \lceil \frac{t_{\rm start} - t_{\rm data,0}}{\Delta t} \rceil $" src="form_92.png"/></picture></li>
|
||
<li>Clamp fStartTimeBin to [0, N_data)</li>
|
||
<li>Calculate end bin: <picture><source srcset="form_93_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ \lfloor \frac{t_{\rm end} - t_{\rm data,0}}{\Delta t} \rfloor + 1 $" src="form_93.png"/></picture></li>
|
||
<li>Clamp fEndTimeBin to [0, N_data]</li>
|
||
<li>Compute fNoOfFitBins = fEndTimeBin - fStartTimeBin (or 0 if invalid)</li>
|
||
</ol>
|
||
<p>where:</p><ul>
|
||
<li>t_data,0 = fData.GetDataTimeStart() (time of first data bin)</li>
|
||
<li>Δt = fData.GetDataTimeStep() (time bin width after packing)</li>
|
||
</ul>
|
||
<p><b>Edge Cases:</b></p><ul>
|
||
<li>If fStartTimeBin < 0: clamped to 0</li>
|
||
<li>If fEndTimeBin > N_data: clamped to N_data</li>
|
||
<li>If fEndTimeBin ≤ fStartTimeBin: fNoOfFitBins = 0 (invalid range)</li>
|
||
</ul>
|
||
<dl class="section note"><dt>Note</dt><dd>This method is called automatically by <a class="el" href="#a71b2648dc89bc990b2adbcb6c82168e5" title="Returns the number of bins included in the fit range.">GetNoOfFitBins()</a> and by <a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> after setting up the data arrays.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a71b2648dc89bc990b2adbcb6c82168e5" title="Returns the number of bins included in the fit range.">GetNoOfFitBins()</a>, <a class="el" href="#a80be353a51c1e9c200f557c872a7e46b" title="Sets fit range using bin-offset specification (COMMANDS block syntax).">SetFitRangeBin()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">951</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00379">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="PRunSingleHisto_8h_source.html#l00369">fNoOfFitBins</a>, and <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00792">GetNoOfFitBins()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a684cbb35fa5e4a24681dd5b5ad3ad1f4" name="a684cbb35fa5e4a24681dd5b5ad3ad1f4"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a684cbb35fa5e4a24681dd5b5ad3ad1f4">◆ </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 PRunSingleHisto::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 theory curve N(t) for the current parameter values.</p>
|
||
<p>Calculates N_theory(t) = N₀·exp(-t/τ_μ)·P_theory(t) + B using THEORY block functions. Stores results in fData for χ² calculation.</p>
|
||
<p>Evaluates the single histogram theory function: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_91_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[N(t) = N_0 e^{-t/\tau_\mu} [1 + P(t)] + B
|
||
\]" src="form_91.png"/></picture>
|
||
</p>
|
||
<p>for all time bins in the data set, storing results in fData.fTheory. This is used for:</p><ul>
|
||
<li>Displaying fitted theory curves in plots</li>
|
||
<li>Calculating residuals (data - theory)</li>
|
||
<li>Exporting theory predictions</li>
|
||
</ul>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Extract current parameter values from MSR parameter list</li>
|
||
<li>Determine N₀ (from parameter or function evaluation)</li>
|
||
<li>Determine muon lifetime τ (from parameter or default PMUON_LIFETIME)</li>
|
||
<li>Determine background B (from fit parameter, fixed value, or estimate)</li>
|
||
<li>Evaluate all user-defined functions in FUNCTIONS block</li>
|
||
<li>Loop over all data bins (not just fit range):<ul>
|
||
<li>Calculate time t for bin i</li>
|
||
<li>Evaluate P(t) = fTheory->Func(t, par, fFuncValues)</li>
|
||
<li>Calculate N(t) and append to theory vector</li>
|
||
</ul>
|
||
</li>
|
||
<li>Clean up temporary parameter vector</li>
|
||
</ol>
|
||
<p><b>Time Grid:</b></p><ul>
|
||
<li>Start time: fData.GetDataTimeStart()</li>
|
||
<li>Time step: fData.GetDataTimeStep()</li>
|
||
<li>Number of points: fData.GetValue()->size()</li>
|
||
</ul>
|
||
<dl class="section note"><dt>Note</dt><dd>Theory is calculated for the entire data range, not just the fit range, to enable full visualization of the model.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd>PRunDataHandler::AppendTheoryValue(), <a class="el" href="classPTheory.html#ab0b6defce6fa75187ae306332fac3425" title="Evaluates the theory function at a given time point.">PTheory::Func()</a> </dd></dl>
|
||
|
||
<p>Implements <a class="el" href="classPRunBase.html#a0dde056d0acd7f0ac4dc12380e4063e7">PRunBase</a>.</p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00714">714</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <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>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>, and <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a6167092dbec6d5144e603553d63a8110" name="a6167092dbec6d5144e603553d63a8110"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a6167092dbec6d5144e603553d63a8110">◆ </a></span>EstimateBkg()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Bool_t PRunSingleHisto::EstimateBkg </td>
|
||
<td>(</td>
|
||
<td class="paramtype">UInt_t</td> <td class="paramname"><span class="paramname"><em>histoNo</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>Estimates background from pre-t0 bins. </p>
|
||
<p>Estimates background count rate from pre-t0 bins.</p>
|
||
<p>Calculates background average and error from specified bin range (typically before t0). Sets fBackground member.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">histoNo</td><td>Histogram index </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True on success, false if background range invalid</dd></dl>
|
||
<p>Calculates the average background rate from bins before the muon pulse arrives. For pulsed beam facilities (PSI, RAL, TRIUMF), adjusts the background interval to be a multiple of the beam period to avoid systematic biases from beam structure.</p>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Extract background range [start, end] from MSR file (in bins)</li>
|
||
<li>Validate start < end (swap if necessary)</li>
|
||
<li>If pulsed beam (PSI/RAL/TRIUMF):<ul>
|
||
<li>Calculate interval duration in time: t_bkg = (end - start) × t_res × packing</li>
|
||
<li>Find number of complete beam cycles: N_cycles = floor(t_bkg / T_beam)</li>
|
||
<li>Adjust end bin to match N_cycles × T_beam exactly</li>
|
||
</ul>
|
||
</li>
|
||
<li>Validate start and end are within histogram bounds</li>
|
||
<li>Sum counts in [start, end]: Σ fForward[i]</li>
|
||
<li>Calculate average: fBackground = Σ counts / (end - start)</li>
|
||
</ol>
|
||
<p><b>Beam periods:</b></p><ul>
|
||
<li><b>PSI:</b> 19.75 ns (50.63 MHz cyclotron)</li>
|
||
<li><b>RAL (ISIS):</b> 320 ns (3.125 MHz target)</li>
|
||
<li><b>TRIUMF:</b> 43.0 ns (23.26 MHz cyclotron)</li>
|
||
<li><b>Other facilities:</b> No period correction applied</li>
|
||
</ul>
|
||
<p><b>Why adjust to beam period?</b> Pulsed beams have time-dependent backgrounds from:</p><ul>
|
||
<li>Flash (instantaneous background from beam pulse)</li>
|
||
<li>Prompt particles</li>
|
||
<li>Pion background</li>
|
||
</ul>
|
||
<p>Averaging over complete beam cycles ensures unbiased background estimates by including all phases of the pulsed structure.</p>
|
||
<p><b>Edge cases:</b></p><ul>
|
||
<li>If interval < 1 beam period: uses original end bin (no correction)</li>
|
||
<li>If start ≥ histogram length: returns false with error</li>
|
||
<li>If end ≥ histogram length: returns false with error</li>
|
||
</ul>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">histoNo</td><td>Forward histogram number (for error messages, currently not directly used)</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>true if background estimated successfully, false if bins out of bounds</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>The estimated background is stored in fBackground member variable and subtracted from data in <a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a> if not fitted.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a>, <a class="el" href="PMusr_8h.html#acbf6e0bace9638d4b7182c0ea78a76aa" title="PSI (Paul Scherrer Institute) accelerator cycle: 19.75 ns.">ACCEL_PERIOD_PSI</a>, <a class="el" href="PMusr_8h.html#af100c5520356cd7487587f0c9c2286df" title="RAL (Rutherford Appleton Lab) - pulsed beam.">ACCEL_PERIOD_RAL</a>, <a class="el" href="PMusr_8h.html#a289dd448598859518bc73c87233af6a1" title="TRIUMF accelerator cycle: 43.37 ns.">ACCEL_PERIOD_TRIUMF</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">2296</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PMusr_8h_source.html#l00149">ACCEL_PERIOD_PSI</a>, <a class="el" href="PMusr_8h_source.html#l00153">ACCEL_PERIOD_RAL</a>, <a class="el" href="PMusr_8h_source.html#l00151">ACCEL_PERIOD_TRIUMF</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00376">fForward</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, and <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a741460485f8838de6a21c4797dec80e6" name="a741460485f8838de6a21c4797dec80e6"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a741460485f8838de6a21c4797dec80e6">◆ </a></span>EstimateN0()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void PRunSingleHisto::EstimateN0 </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>Estimates initial normalization N₀ from histogram data. </p>
|
||
<p>Automatically estimates the normalization parameter N₀ from data.</p>
|
||
<p>Calculates N₀ estimate from histogram amplitude, used as starting value if N₀ is a fit parameter.</p>
|
||
<p>Provides an intelligent initial guess for N₀ to help MINUIT convergence. The estimate is based on the maximum count rate in the fit range, accounting for muon decay and background.</p>
|
||
<p><b>When estimation is performed:</b></p><ul>
|
||
<li>MSR file requests estimation (estimate_n0 flag in GLOBAL block)</li>
|
||
<li>Norm parameter is a fit parameter (not fixed, not a function)</li>
|
||
<li>Parameter step size ≠ 0 (i.e., not fixed)</li>
|
||
</ul>
|
||
<p><b>When estimation is skipped:</b></p><ul>
|
||
<li>Norm is a function (paramNo > MSR_PARAM_FUN_OFFSET)</li>
|
||
<li>Norm parameter is fixed (step = 0)</li>
|
||
<li>Invalid parameter number</li>
|
||
</ul>
|
||
<p><b>Estimation algorithm:</b></p><ol type="1">
|
||
<li>Find maximum value in fit range: max_data = max(N(t) in fit range)</li>
|
||
<li>Find corresponding time t_max</li>
|
||
<li>Extract or estimate background B</li>
|
||
<li>Correct for exponential decay: N₀_est = (max_data - B) / exp(-t_max/τ_μ)</li>
|
||
<li>Adjust for scaling if fScaleN0AndBkg is true</li>
|
||
<li>Update parameter value and step size in MSR parameter list</li>
|
||
</ol>
|
||
<p><b>Background handling:</b></p><ul>
|
||
<li>If background is fitted: extract current background parameter value</li>
|
||
<li>If fixed background given: use fixed value</li>
|
||
<li>If background range given: use fBackground estimate</li>
|
||
<li>Otherwise: assume B = 0</li>
|
||
</ul>
|
||
<p><b>Scaling adjustment:</b> If fScaleN0AndBkg is true (normalizing to 1/ns), the estimate is divided by: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_106_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[\text{scale factor} = \text{packing} \times (t_{\rm res} \times 1000)
|
||
\]" src="form_106.png"/></picture>
|
||
</p>
|
||
<dl class="section note"><dt>Note</dt><dd>This method modifies the MSR parameter list in place, updating both the parameter value and the step size (for MINUIT error estimation).</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a2c5716a3db81fb1f8c253fdf759930b7" title="Determines if N₀ and background should be scaled to 1/ns.">IsScaleN0AndBkg()</a>, <a class="el" href="#a6167092dbec6d5144e603553d63a8110" title="Estimates background from pre-t0 bins.">EstimateBkg()</a>, <a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l02160">2160</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00376">fForward</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</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>, and <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a95a25738b84e975d34d6ece2f07d42ad" name="a95a25738b84e975d34d6ece2f07d42ad"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a95a25738b84e975d34d6ece2f07d42ad">◆ </a></span>GetBackground()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">virtual Double_t PRunSingleHisto::GetBackground </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 estimated background level. </p>
|
||
<dl class="section return"><dt>Returns</dt><dd>Background in counts/bin </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00286">286</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a8186675fc3729c4dd086679de0acf700" name="a8186675fc3729c4dd086679de0acf700"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a8186675fc3729c4dd086679de0acf700">◆ </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 PRunSingleHisto::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 < fEndTimeBin) </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00298">298</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00379">fEndTimeBin</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a71b2648dc89bc990b2adbcb6c82168e5" name="a71b2648dc89bc990b2adbcb6c82168e5"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a71b2648dc89bc990b2adbcb6c82168e5">◆ </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 PRunSingleHisto::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>Returns the number of bins in the current fit range.</p>
|
||
<p>Used for degrees of freedom: ν = N_bins - N_params</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>Number of bins in fit range</dd></dl>
|
||
<p>Calculates (if not already done) and returns the number of data bins that will be included in the χ² or likelihood calculation. This is determined by the fit range [fFitStartTime, fFitEndTime] and the data time grid.</p>
|
||
<p>The calculation is performed by <a class="el" href="#a194107943e61f591f132c2fc864a3792" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a>, which sets:</p><ul>
|
||
<li>fStartTimeBin: first bin index in fit range</li>
|
||
<li>fEndTimeBin: one past last bin index in fit range</li>
|
||
<li>fNoOfFitBins = fEndTimeBin - fStartTimeBin</li>
|
||
</ul>
|
||
<dl class="section return"><dt>Returns</dt><dd>Number of bins in the fit range (degrees of freedom = N_bins - N_params)</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a194107943e61f591f132c2fc864a3792" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a>, <a class="el" href="#a80be353a51c1e9c200f557c872a7e46b" title="Sets fit range using bin-offset specification (COMMANDS block syntax).">SetFitRangeBin()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00792">792</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">CalcNoOfFitBins()</a>, and <a class="el" href="PRunSingleHisto_8h_source.html#l00369">fNoOfFitBins</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a6a693657dee12cae29299f150a009059" name="a6a693657dee12cae29299f150a009059"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a6a693657dee12cae29299f150a009059">◆ </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 PRunSingleHisto::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>Number of raw bins combined into one packed bin </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00304">304</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00371">fPacking</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a8c1dad5eddb29c1e6fc295ade612a29a" name="a8c1dad5eddb29c1e6fc295ade612a29a"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a8c1dad5eddb29c1e6fc295ade612a29a">◆ </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 PRunSingleHisto::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>Determines the data range (first good bin / last good bin).</p>
|
||
<p>Establishes start/end bins for analysis from RUN block "data" entry. Data range is typically wider than fit range.</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if valid data range determined</dd></dl>
|
||
<p>Establishes which histogram bins contain valid muon decay data by finding the "first good bin" (fgb) and "last good bin" (lgb). This range excludes:</p><ul>
|
||
<li>Pre-t0 bins (before muon arrival)</li>
|
||
<li>Early bins affected by detector dead time or pileup</li>
|
||
<li>Late bins with insufficient statistics</li>
|
||
</ul>
|
||
<p><b>Priority hierarchy (highest to lowest):</b></p><ol type="1">
|
||
<li><b>RUN block:</b> Explicitly specified fgb/lgb in RUN block</li>
|
||
<li><b>GLOBAL block:</b> Default fgb/lgb from GLOBAL block</li>
|
||
<li><b>Auto-estimation:</b> Fallback estimates with warning</li>
|
||
</ol>
|
||
<p><b>Auto-estimation (if not specified):</b></p><ul>
|
||
<li><b>fgb:</b> t0 + 10 ns (to avoid dead time issues)</li>
|
||
<li><b>lgb:</b> End of histogram (all bins)</li>
|
||
</ul>
|
||
<p><b>Validation:</b></p><ol type="1">
|
||
<li>Check fgb < lgb (swap if necessary)</li>
|
||
<li>Check 0 ≤ fgb < histogram length</li>
|
||
<li>Check 0 ≤ lgb ≤ histogram length</li>
|
||
<li>If lgb > histogram length: clamp to (length - 1) and print warning</li>
|
||
</ol>
|
||
<p><b>Storage:</b> Results are stored in:</p><ul>
|
||
<li>fGoodBins[0] = fgb (first good bin index)</li>
|
||
<li>fGoodBins[1] = lgb (last good bin index)</li>
|
||
</ul>
|
||
<p>These values are used by:</p><ul>
|
||
<li><a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a> to determine packing range</li>
|
||
<li><a class="el" href="#a7f03b7b4d1faa25d8619d3060ec2d1b6" title="Determines fit range from MSR file settings.">GetProperFitRange()</a> as fallback for fit range</li>
|
||
</ul>
|
||
<dl class="section return"><dt>Returns</dt><dd>true if data range is valid and within bounds, false if validation fails</dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>Auto-estimated ranges may not be appropriate for all detectors. Explicit specification in MSR file is strongly recommended.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>This method is called by <a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> after histogram grouping but before packing and fit range determination.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a>, <a class="el" href="#a7f03b7b4d1faa25d8619d3060ec2d1b6" title="Determines fit range from MSR file settings.">GetProperFitRange()</a>, <a class="el" href="#aad79f1a5522f7b8dd02a931e1da46b72" title="Good bin markers for COMMANDS block: [0]=fgb (first good bin/t0), [1]=lgb (last good bin)">fGoodBins</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l01948">1948</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00376">fForward</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00374">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="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a7f03b7b4d1faa25d8619d3060ec2d1b6" name="a7f03b7b4d1faa25d8619d3060ec2d1b6"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7f03b7b4d1faa25d8619d3060ec2d1b6">◆ </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 PRunSingleHisto::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>Determines the fit range (start and end times for χ² calculation).</p>
|
||
<p>Extracts fit time window from RUN or GLOBAL block "fit" entry. Format: time-based (μs) or bin-based (fgb+n0 lgb-n1).</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">globalBlock</td><td>GLOBAL block with default fit settings</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<p>Establishes the time window [t_start, t_end] over which the fit will be performed. The fit range can be specified in two ways:</p>
|
||
<p><b>Specification methods:</b></p><ol type="1">
|
||
<li><b>Time-based:</b> <code>fit <start> <end></code> in microseconds<ul>
|
||
<li>Example: <code>fit 0.1 10.0</code> (fit from 0.1 to 10.0 μs after t0)</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Bin-based:</b> <code>fit fgb[+offset0] lgb[-offset1]</code> in bins<ul>
|
||
<li>Example: <code>fit fgb+10 lgb-20</code> (fit from 10 bins after fgb to 20 bins before lgb)</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<p><b>Priority hierarchy (highest to lowest):</b></p><ol type="1">
|
||
<li><b>RUN block time-based:</b> <code>fit <start> <end></code> in RUN block</li>
|
||
<li><b>RUN block bin-based:</b> <code>fit fgb+n0 lgb-n1</code> in RUN block</li>
|
||
<li><b>GLOBAL block time-based:</b> <code>fit <start> <end></code> in GLOBAL block</li>
|
||
<li><b>GLOBAL block bin-based:</b> <code>fit fgb+n0 lgb-n1</code> in GLOBAL block</li>
|
||
<li><b>Auto-fallback:</b> Use entire data range [fgb, lgb]</li>
|
||
</ol>
|
||
<p><b>Bin-based conversion to time:</b> When fit range is given in bins, it's converted to time: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_102_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[t_{\rm start} = (\text{fgb} + n_0 - t_0) \times \Delta t
|
||
\]" src="form_102.png"/></picture>
|
||
</p>
|
||
<p class="formulaDsp">
|
||
<picture><source srcset="form_103_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[t_{\rm end} = (\text{lgb} - n_1 - t_0) \times \Delta t
|
||
\]" src="form_103.png"/></picture>
|
||
</p>
|
||
<p>where:</p><ul>
|
||
<li>fgb/lgb = first/last good bin from <a class="el" href="#a8c1dad5eddb29c1e6fc295ade612a29a" title="Determines data range (region of valid histogram data).">GetProperDataRange()</a></li>
|
||
<li>n₀/n₁ = offsets (can be positive or negative)</li>
|
||
<li>t₀ = time-zero bin</li>
|
||
<li>Δt = time resolution (fTimeResolution in μs)</li>
|
||
</ul>
|
||
<p><b>Storage and updates:</b></p><ul>
|
||
<li>fFitStartTime, fFitEndTime are set to the determined range</li>
|
||
<li>If bin-based, the converted time values are written back to the MSR data structure for log file reporting</li>
|
||
</ul>
|
||
<p><b>Fallback behavior:</b> If no fit range is specified anywhere, uses the entire data range: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_104_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[t_{\rm start} = (\text{fgb} - t_0) \times \Delta t
|
||
\]" src="form_104.png"/></picture>
|
||
</p>
|
||
<p class="formulaDsp">
|
||
<picture><source srcset="form_105_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[t_{\rm end} = (\text{lgb} - t_0) \times \Delta t
|
||
\]" src="form_105.png"/></picture>
|
||
</p>
|
||
<p> and prints a warning to std::cerr.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">globalBlock</td><td>Pointer to GLOBAL block from MSR file</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section note"><dt>Note</dt><dd>This method is called by <a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> after <a class="el" href="#a8c1dad5eddb29c1e6fc295ade612a29a" title="Determines data range (region of valid histogram data).">GetProperDataRange()</a> has established fGoodBins[0] and fGoodBins[1].</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a>, <a class="el" href="#a8c1dad5eddb29c1e6fc295ade612a29a" title="Determines data range (region of valid histogram data).">GetProperDataRange()</a>, <a class="el" href="#a80be353a51c1e9c200f557c872a7e46b" title="Sets fit range using bin-offset specification (COMMANDS block syntax).">SetFitRangeBin()</a>, <a class="el" href="#a194107943e61f591f132c2fc864a3792" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l02082">2082</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.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="PRunSingleHisto_8h_source.html#l00374">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="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a92ee83617d6fe3f0451a360cfc93c892" name="a92ee83617d6fe3f0451a360cfc93c892"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a92ee83617d6fe3f0451a360cfc93c892">◆ </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 PRunSingleHisto::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> &</td> <td class="paramname"><span class="paramname"><em>histoNo</em></span> )</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>Determines time-zero (t0) values for all histograms using hierarchical fallback.</p>
|
||
<p>Extracts time-zero from RUN block, data file header, GLOBAL block, or automatic determination. Validates t0 is within histogram bounds.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">runData</td><td>Raw run data </td></tr>
|
||
<tr><td class="paramname">globalBlock</td><td>GLOBAL block settings </td></tr>
|
||
<tr><td class="paramname">histoNo</td><td>Vector of histogram indices </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if valid t0 found</dd></dl>
|
||
<p>Time-zero (t0) marks the muon arrival time in each detector histogram, the reference point from which decay time is measured. This method uses a priority system to find t0 values:</p>
|
||
<p><b>Priority hierarchy (highest to lowest):</b></p><ol type="1">
|
||
<li><b>RUN block t0:</b> Explicitly specified in the RUN block (highest priority)</li>
|
||
<li><b>GLOBAL block t0:</b> Default t0 for all runs in the GLOBAL block</li>
|
||
<li><b>Data file t0:</b> Stored in the raw data file (from previous analysis)</li>
|
||
<li><b>Estimated t0:</b> Automatic estimation (UNRELIABLE, prints warning)</li>
|
||
</ol>
|
||
<p><b>For ADDRUN support:</b> If multiple runs are added (fRunInfo->GetRunNameSize() > 1), this method also determines t0 values for each added run (fAddT0s) using the same hierarchy. Proper t0 alignment is essential for correct ADDRUN operation.</p>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Resize fT0s vector to histogram count (number of grouped detectors)</li>
|
||
<li>Initialize all t0 values to -1.0 (sentinel for "not set")</li>
|
||
<li>Fill from RUN block (if specified)</li>
|
||
<li>Fill from GLOBAL block where still -1.0</li>
|
||
<li>Fill from data file where still -1.0</li>
|
||
<li>Fill from estimation where still -1.0 (prints <b>WARNING</b>)</li>
|
||
<li>Validate all t0 values are within histogram bounds</li>
|
||
<li>If ADDRUN present: repeat steps 2-6 for each added run</li>
|
||
</ol>
|
||
<p><b>Validation:</b> After fallback, checks that each t0 satisfies: </p><p class="formulaDsp">
|
||
<picture><source srcset="form_101_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[0 \leq t_0 \leq N_{\rm bins}
|
||
\]" src="form_101.png"/></picture>
|
||
</p>
|
||
<p> If validation fails, returns false with error message.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">runData</td><td>Pointer to raw run data handler for main run </td></tr>
|
||
<tr><td class="paramname">globalBlock</td><td>Pointer to GLOBAL block from MSR file </td></tr>
|
||
<tr><td class="paramname">histoNo</td><td>Vector of histogram indices (zero-based, after redGreen offset correction)</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>true if all t0 values found and validated, false if any t0 is out of bounds</dd></dl>
|
||
<dl class="section warning"><dt>Warning</dt><dd>Estimated t0 values (fallback option #4) are often UNRELIABLE, especially for low-energy muons (LEM). Manual specification in MSR file is strongly recommended. A warning is printed to std::cerr when estimation is used.</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>This method updates fT0s (main run) and fAddT0s (ADDRUN) member variables. It also updates the MSR file handler with found t0 values for persistence.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a>, <a class="el" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9" title="Time-zero bin values for all histograms in this run (forward, backward, etc.)">fT0s</a>, <a class="el" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d" title="Time-zero bin values for additional runs to be added to main run.">fAddT0s</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l01783">1783</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.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="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a7b3225bdea736a38dca1b72873c5e45a" name="a7b3225bdea736a38dca1b72873c5e45a"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7b3225bdea736a38dca1b72873c5e45a">◆ </a></span>GetScaleN0AndBkg()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">virtual Bool_t PRunSingleHisto::GetScaleN0AndBkg </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 N₀/background scaling mode. </p>
|
||
<dl class="section return"><dt>Returns</dt><dd>true = scaled to 1/ns, false = left as 1/bin </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00310">310</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a62570fa4c6d86fac5796f1fe6912afe9" name="a62570fa4c6d86fac5796f1fe6912afe9"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a62570fa4c6d86fac5796f1fe6912afe9">◆ </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 PRunSingleHisto::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) </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00292">292</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8h_source.html#l00378">fStartTimeBin</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a2c5716a3db81fb1f8c253fdf759930b7" name="a2c5716a3db81fb1f8c253fdf759930b7"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2c5716a3db81fb1f8c253fdf759930b7">◆ </a></span>IsScaleN0AndBkg()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Bool_t PRunSingleHisto::IsScaleN0AndBkg </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 if N₀ and background should be scaled to 1/ns. </p>
|
||
<p>Determines if N₀ and background should be normalized to 1/ns.</p>
|
||
<p>Checks time resolution and fitting preferences to decide scaling mode. Returns true for standard time bins (scale to 1/ns), false otherwise.</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if scaling should be applied</dd></dl>
|
||
<p>Checks whether N₀ and background parameters should be scaled to represent count rates per nanosecond (1/ns) rather than counts per packed bin.</p>
|
||
<p><b>Default behavior:</b> Scaling is ENABLED (true)</p>
|
||
<p>This makes fitted parameters physically meaningful and independent of packing:</p><ul>
|
||
<li>N₀ represents the initial muon decay rate at t=0 in counts/ns</li>
|
||
<li>Background B represents constant background rate in counts/ns</li>
|
||
</ul>
|
||
<p><b>To disable scaling:</b> Add to MSR file COMMAND block: </p><div class="fragment"><div class="line">SCALE_N0_BKG FALSE</div>
|
||
</div><!-- fragment --><p><b>When to disable scaling:</b></p><ul>
|
||
<li>When N₀ and B should represent total counts per packed bin</li>
|
||
<li>When comparing with older analysis that didn't use scaling</li>
|
||
<li>When packing is 1 (no difference between modes)</li>
|
||
</ul>
|
||
<p><b>Effect on fit parameters:</b></p><ul>
|
||
<li><b>Scaled (default):</b> N₀ and B independent of packing choice</li>
|
||
<li><b>Unscaled:</b> N₀ and B depend on packing value</li>
|
||
</ul>
|
||
<p><b>Implementation details:</b> Scaling is applied in:</p><ul>
|
||
<li><a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a>: Data is divided by (packing × t_res × 1000)</li>
|
||
<li><a class="el" href="#a114f2de78d118cadfd3a90dc28e1cf57" title="Calculates χ² between histogram data and theory.">CalcChiSquare()</a>: χ² is multiplied by (packing × t_res × 1000)</li>
|
||
<li><a class="el" href="#a5be2273a8f933fc8b4b3d398df302e14" title="Calculates maximum likelihood for Poisson-distributed histogram counts.">CalcMaxLikelihood()</a>: -2ln(L) is multiplied by normalizer</li>
|
||
<li><a class="el" href="#a6167092dbec6d5144e603553d63a8110" title="Estimates background from pre-t0 bins.">EstimateBkg()</a>: Background estimate is divided by (t_res × 1000)</li>
|
||
</ul>
|
||
<p>These operations cancel out mathematically but keep parameters in 1/ns units.</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>true if N₀ and background should be scaled to 1/ns (default), false if they should represent counts per packed bin</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>This method is called during construction to set fScaleN0AndBkg.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a114f2de78d118cadfd3a90dc28e1cf57" title="Calculates χ² between histogram data and theory.">CalcChiSquare()</a>, <a class="el" href="#a5be2273a8f933fc8b4b3d398df302e14" title="Calculates maximum likelihood for Poisson-distributed histogram counts.">CalcMaxLikelihood()</a>, <a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a>, <a class="el" href="#a6167092dbec6d5144e603553d63a8110" title="Estimates background from pre-t0 bins.">EstimateBkg()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l02412">2412</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ad4e3beb9d99143c8fd117438dbba7fff" name="ad4e3beb9d99143c8fd117438dbba7fff"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ad4e3beb9d99143c8fd117438dbba7fff">◆ </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 PRunSingleHisto::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 orchestrator. </p>
|
||
<p>Main data preprocessing pipeline for single histogram runs.</p>
|
||
<p>Coordinates histogram loading and preprocessing: determines operation mode, calls <a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a> or <a class="el" href="#a5b603055ea7f271497bc852e436a464f" title="Prepares processed histogram data for viewing/plotting.">PrepareViewData()</a>, validates success.</p>
|
||
<dl class="section return"><dt>Returns</dt><dd>True if data preparation succeeds, false on error</dd></dl>
|
||
<p>Orchestrates the complete data loading and preprocessing workflow:</p><ol type="1">
|
||
<li><b>Load raw data:</b> Fetch run from <a class="el" href="classPRunDataHandler.html" title="Raw data file reader and format converter for μSR data.">PRunDataHandler</a> using run name</li>
|
||
<li><b>Extract metadata:</b> Magnetic field, beam energy, temperature(s)</li>
|
||
<li><b>Validate histograms:</b> Check that forward histogram numbers exist in data file</li>
|
||
<li><b>Get time resolution:</b> Extract bin width (typically 0.1-10 ns)</li>
|
||
<li><b>Determine t0:</b> Call <a class="el" href="#a92ee83617d6fe3f0451a360cfc93c892" title="Determines and validates t0 values for histogram.">GetProperT0()</a> for muon arrival times</li>
|
||
<li><b>Load histogram data:</b> Copy forward histogram bins from raw data</li>
|
||
<li><b>Add runs (ADDRUN):</b> If multiple runs specified, add them with t0 alignment</li>
|
||
<li><b>Group histograms:</b> Sum multiple detectors within a group (with t0 alignment)</li>
|
||
<li><b>Get data range (fgb/lgb):</b> Call <a class="el" href="#a8c1dad5eddb29c1e6fc295ade612a29a" title="Determines data range (region of valid histogram data).">GetProperDataRange()</a> for good bin limits</li>
|
||
<li><b>Get fit range:</b> Call <a class="el" href="#a7f03b7b4d1faa25d8619d3060ec2d1b6" title="Determines fit range from MSR file settings.">GetProperFitRange()</a> for fit time window</li>
|
||
<li><b>Check lifetime correction:</b> Determine if exponential decay should be removed (for viewing)</li>
|
||
<li><b>Dispatch to preparation:</b><ul>
|
||
<li>kFit → <a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a>: packing, background subtraction</li>
|
||
<li>kView (no lifetime corr.) → <a class="el" href="#abdf5efcec3cc3da8904be1ecac33922c" title="Prepares raw histogram data for viewing (minimal processing).">PrepareRawViewData()</a>: packing, theory calculation</li>
|
||
<li>kView (with lifetime corr.) → <a class="el" href="#a5b603055ea7f271497bc852e436a464f" title="Prepares processed histogram data for viewing/plotting.">PrepareViewData()</a>: lifetime removal, theory</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<p><b>ADDRUN t0 Alignment:</b> When adding runs, histograms are aligned by their t0 values: </p><div class="fragment"><div class="line">forward[k][j] += addRunData[k]->at(j + addT0[k] - mainT0[k])</div>
|
||
</div><!-- fragment --><p> This ensures muon arrival times coincide across added runs.</p>
|
||
<p><b>Grouping t0 Alignment:</b> When grouping histograms, they are aligned to the first histogram's t0: </p><div class="fragment"><div class="line"><a class="code hl_variable" href="#af68e70c2788d8074b18e7e47f6546fbc">fForward</a>[j] += forward[i][j + t0[i] - t0[0]]</div>
|
||
<div class="ttc" id="aclassPRunSingleHisto_html_af68e70c2788d8074b18e7e47f6546fbc"><div class="ttname"><a href="#af68e70c2788d8074b18e7e47f6546fbc">PRunSingleHisto::fForward</a></div><div class="ttdeci">PDoubleVector fForward</div><div class="ttdoc">Forward detector histogram (background-corrected, packed)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHisto_8h_source.html#l00376">PRunSingleHisto.h:376</a></div></div>
|
||
</div><!-- fragment --><dl class="section return"><dt>Returns</dt><dd>true if all preprocessing steps succeeded, false otherwise</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>If any step fails (missing data file, invalid histogram numbers, t0 errors), this method returns false and error messages are printed to std::cerr.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a92ee83617d6fe3f0451a360cfc93c892" title="Determines and validates t0 values for histogram.">GetProperT0()</a>, <a class="el" href="#a8c1dad5eddb29c1e6fc295ade612a29a" title="Determines data range (region of valid histogram data).">GetProperDataRange()</a>, <a class="el" href="#a7f03b7b4d1faa25d8619d3060ec2d1b6" title="Determines fit range from MSR file settings.">GetProperFitRange()</a>, <a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a>, <a class="el" href="#abdf5efcec3cc3da8904be1ecac33922c" title="Prepares raw histogram data for viewing (minimal processing).">PrepareRawViewData()</a>, <a class="el" href="#a5b603055ea7f271497bc852e436a464f" title="Prepares processed histogram data for viewing/plotting.">PrepareViewData()</a> </dd></dl>
|
||
|
||
<p>Implements <a class="el" href="classPRunBase.html#a108aca748689e37a7e045a770677b517">PRunBase</a>.</p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l01011">1011</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunBase_8h_source.html#l00279">PRunBase::fAddT0s</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00376">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="PRunSingleHisto_8cpp_source.html#l01948">GetProperDataRange()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02082">GetProperFitRange()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01783">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="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ae5f41624e8c54b2f8eeb2313e3cfac8e" name="ae5f41624e8c54b2f8eeb2313e3cfac8e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ae5f41624e8c54b2f8eeb2313e3cfac8e">◆ </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 PRunSingleHisto::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> )</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>Prepares histogram data for fitting (kFit mode).</p>
|
||
<p>Loads forward histogram, extracts metadata, determines t0, subtracts background, packs bins, propagates errors, sets up time grid and fit ranges.</p>
|
||
<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>Histogram index in data file </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True on success, false if preprocessing fails</dd></dl>
|
||
<p>Performs final data transformations after <a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a> has loaded and grouped the raw histogram data:</p><ol type="1">
|
||
<li><b>Estimate N₀ (optional):</b> If MSR file requests it, call <a class="el" href="#a741460485f8838de6a21c4797dec80e6" title="Estimates initial normalization N₀ from histogram data.">EstimateN0()</a></li>
|
||
<li><b>Handle background:</b><ul>
|
||
<li>If background is fitted: leave data unchanged</li>
|
||
<li>If fixed background given: subtract it from all bins</li>
|
||
<li>If background range given: call <a class="el" href="#a6167092dbec6d5144e603553d63a8110" title="Estimates background from pre-t0 bins.">EstimateBkg()</a> and subtract estimate</li>
|
||
<li>If nothing specified: auto-estimate from bins [0.1×t0, 0.6×t0] with warning</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Packing (rebinning):</b> Combine consecutive bins to improve statistics:<ul>
|
||
<li>If packing = 1: copy bins directly</li>
|
||
<li>If packing > 1: sum every 'packing' bins into one</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Normalization:</b> If fScaleN0AndBkg is true, divide by (packing × t_res × 1000) to normalize counts to 1/ns</li>
|
||
<li><b>Error calculation:</b><ul>
|
||
<li>If N > 0: σ = √N (Poisson statistics)</li>
|
||
<li>If N = 0: σ = 1/normalizer (avoid division by zero in χ²)</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Set time grid:</b><ul>
|
||
<li>Data start time: (fgb - 0.5 + pack/2 - t0) × t_res</li>
|
||
<li>Data time step: pack × t_res</li>
|
||
</ul>
|
||
</li>
|
||
<li><b>Calculate fit bins:</b> Call <a class="el" href="#a194107943e61f591f132c2fc864a3792" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> to set fStartTimeBin, fEndTimeBin</li>
|
||
</ol>
|
||
<p><b>Packing Algorithm:</b> </p><div class="fragment"><div class="line"><span class="keywordflow">for</span> (i = fgb; i < lgb; i++) {</div>
|
||
<div class="line"> value += forward[i];</div>
|
||
<div class="line"> <span class="keywordflow">if</span> ((i-fgb) % packing == 0 && i != fgb) {</div>
|
||
<div class="line"> data.push_back(value / normalizer);</div>
|
||
<div class="line"> error.push_back(sqrt(value) / normalizer);</div>
|
||
<div class="line"> value = 0;</div>
|
||
<div class="line"> }</div>
|
||
<div class="line">}</div>
|
||
</div><!-- fragment --><p><b>Background Handling Priority:</b></p><ol type="1">
|
||
<li>Check if background is fitted (bkgFitParamNo ≠ -1) → leave data as-is</li>
|
||
<li>Check if fixed background given (bkgFix ≠ PMUSR_UNDEFINED) → subtract fixed value</li>
|
||
<li>Check if background range given (bkgRange[0] ≥ 0) → estimate and subtract</li>
|
||
<li>Fallback: auto-estimate from [0.1×t0, 0.6×t0] → print warning</li>
|
||
</ol>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">runData</td><td>Pointer to raw run data handler (for metadata access) </td></tr>
|
||
<tr><td class="paramname">histoNo</td><td>Forward histogram number (for background estimation)</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>true if preparation succeeded, false if <a class="el" href="#a6167092dbec6d5144e603553d63a8110" title="Estimates background from pre-t0 bins.">EstimateBkg()</a> failed</dd></dl>
|
||
<dl class="section note"><dt>Note</dt><dd>This method populates fData (<a class="el" href="classPRunData.html">PRunData</a> object) with packed data ready for fitting.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#ad4e3beb9d99143c8fd117438dbba7fff" title="Main data preparation orchestrator.">PrepareData()</a>, <a class="el" href="#a6167092dbec6d5144e603553d63a8110" title="Estimates background from pre-t0 bins.">EstimateBkg()</a>, <a class="el" href="#a741460485f8838de6a21c4797dec80e6" title="Estimates initial normalization N₀ from histogram data.">EstimateN0()</a>, <a class="el" href="#a194107943e61f591f132c2fc864a3792" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">1199</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">CalcNoOfFitBins()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">EstimateBkg()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02160">EstimateN0()</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00376">fForward</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00374">fGoodBins</a>, <a class="el" href="PRunBase_8h_source.html#l00271">PRunBase::fMsrInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</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>, and <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="abdf5efcec3cc3da8904be1ecac33922c" name="abdf5efcec3cc3da8904be1ecac33922c"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#abdf5efcec3cc3da8904be1ecac33922c">◆ </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 PRunSingleHisto::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> )</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 raw histogram data for viewing (minimal processing). </p>
|
||
<p>Lighter-weight preprocessing for raw histogram visualization without background subtraction or full fitting infrastructure.</p>
|
||
<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>Histogram index </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True on success</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="PRunSingleHisto_8cpp_source.html#l01292">1292</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">CalcNoOfFitBins()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">EstimateBkg()</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00376">fForward</a>, <a class="el" href="PRunBase_8h_source.html#l00284">PRunBase::fFuncValues</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00374">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="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00372">fTheoAsData</a>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>, and <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a5b603055ea7f271497bc852e436a464f" name="a5b603055ea7f271497bc852e436a464f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a5b603055ea7f271497bc852e436a464f">◆ </a></span>PrepareViewData()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Bool_t PRunSingleHisto::PrepareViewData </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> )</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 processed histogram data for viewing/plotting. </p>
|
||
<p>Similar to <a class="el" href="#ae5f41624e8c54b2f8eeb2313e3cfac8e" title="Prepares histogram data for fitting.">PrepareFitData()</a> but optimized for visualization with potentially wider time range for context.</p>
|
||
<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>Histogram index </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>True on success</dd></dl>
|
||
<p>Take the pre-processed data (i.e. grouping and addrun are preformed) and form the histogram for viewing with life time correction, i.e. the exponential decay is removed. </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>transform data sets (see below).</li>
|
||
<li>calculate theory</li>
|
||
</ol>
|
||
<p>Muon life time corrected data: Starting from </p><p class="formulaDsp">
|
||
<picture><source srcset="form_94_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ N(t) = N_0 e^{-t/\tau} [ 1 + A(t) ] + \mathrm{Bkg} \]" src="form_94.png"/></picture>
|
||
</p>
|
||
<p> it follows that </p><p class="formulaDsp">
|
||
<picture><source srcset="form_95_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ A(t) = (-1) + e^{+t/\tau}\, \frac{N(t)-\mathrm{Bkg}}{N_0}. \]" src="form_95.png"/></picture>
|
||
</p>
|
||
<p> For the error estimate only the statistical error of <picture><source srcset="form_96_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ N(t) $" src="form_96.png"/></picture> is used, and hence </p><p class="formulaDsp">
|
||
<picture><source srcset="form_97_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ \Delta A(t) = \frac{e^{t/\tau}}{N_0}\,\sqrt{\frac{N(t)}{p}} \]" src="form_97.png"/></picture>
|
||
</p>
|
||
<p> where <picture><source srcset="form_98_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ p $" src="form_98.png"/></picture> is the packing, and <picture><source srcset="form_96_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ N(t) $" src="form_96.png"/></picture> are the packed data, i.e. </p><p class="formulaDsp">
|
||
<picture><source srcset="form_99_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaDsp" alt="\[ N(t_i) = \frac{1}{p}\, \sum_{j=i}^{i+p} n_j \]" src="form_99.png"/></picture>
|
||
</p>
|
||
<p> with <picture><source srcset="form_100_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$ n_j $" src="form_100.png"/></picture> the raw histogram data bins.</p>
|
||
<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="PRunSingleHisto_8cpp_source.html#l01481">1481</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.cpp</a>.</p>
|
||
|
||
<p class="reference">References <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">CalcNoOfFitBins()</a>, <a class="el" href="PRunBase_8cpp_source.html#l00274">PRunBase::CalculateKaiserFilterCoeff()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">EstimateBkg()</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00370">fBackground</a>, <a class="el" href="PRunBase_8h_source.html#l00275">PRunBase::fData</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00376">fForward</a>, <a class="el" href="PRunBase_8h_source.html#l00284">PRunBase::fFuncValues</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00374">fGoodBins</a>, <a class="el" href="PRunBase_8cpp_source.html#l00340">PRunBase::FilterTheo()</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="PRunSingleHisto_8h_source.html#l00371">fPacking</a>, <a class="el" href="PRunBase_8h_source.html#l00272">PRunBase::fRunInfo</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00368">fScaleN0AndBkg</a>, <a class="el" href="PRunBase_8h_source.html#l00278">PRunBase::fT0s</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00372">fTheoAsData</a>, <a class="el" href="PRunBase_8h_source.html#l00285">PRunBase::fTheory</a>, <a class="el" href="PRunBase_8h_source.html#l00276">PRunBase::fTimeResolution</a>, <a class="el" href="PMusr_8h_source.html#l00138">GAMMA_BAR_MUON</a>, <a class="el" href="PMusr_8h_source.html#l00260">MSR_PARAM_FUN_OFFSET</a>, <a class="el" href="PMusr_8h_source.html#l00119">PMUON_LIFETIME</a>, <a class="el" href="PMusr_8h_source.html#l00172">PMUSR_UNDEFINED</a>, <a class="el" href="PMusr_8h_source.html#l00339">RRF_UNIT_G</a>, <a class="el" href="PMusr_8h_source.html#l00333">RRF_UNIT_kHz</a>, <a class="el" href="PMusr_8h_source.html#l00337">RRF_UNIT_Mcs</a>, <a class="el" href="PMusr_8h_source.html#l00335">RRF_UNIT_MHz</a>, and <a class="el" href="PMusr_8h_source.html#l00341">RRF_UNIT_T</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a80be353a51c1e9c200f557c872a7e46b" name="a80be353a51c1e9c200f557c872a7e46b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a80be353a51c1e9c200f557c872a7e46b">◆ </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 PRunSingleHisto::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>Dynamically changes the fit range from COMMAND block instructions.</p>
|
||
<p>Format: "fit_range fgb+n0 lgb-n1"</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">fitRange</td><td>String with bin offsets from good bin markers</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<p>Parses and applies a FIT_RANGE command to modify the fit range on the fly, typically used during interactive fitting sessions or systematic scans.</p>
|
||
<p><b>Syntax (in COMMAND block):</b> </p><div class="fragment"><div class="line">FIT_RANGE fgb[+n00] lgb[-n01] [fgb[+n10] lgb[-n11] ... fgb[+nN0] lgb[-nN1]]</div>
|
||
</div><!-- fragment --><p>where:</p><ul>
|
||
<li><b>fgb:</b> First good bin (start of fit range)</li>
|
||
<li><b>lgb:</b> Last good bin (end of fit range)</li>
|
||
<li><b>+nXY / -nXY:</b> Optional offsets to shift the range (+ extends, - contracts)</li>
|
||
<li><b>Multiple pairs:</b> If N+1 pairs given, they apply to each of N RUN blocks</li>
|
||
</ul>
|
||
<p><b>Two modes:</b></p><ol type="1">
|
||
<li><b>Single pair:</b> <code>FIT_RANGE fgb lgb</code> applies to all runs</li>
|
||
<li><b>Per-run pairs:</b> <code>FIT_RANGE fgb₀ lgb₀ fgb₁ lgb₁ ...</code> applies pair i to RUN block i</li>
|
||
</ol>
|
||
<p><b>Algorithm:</b></p><ol type="1">
|
||
<li>Tokenize the fitRange string by spaces/tabs</li>
|
||
<li>If 3 tokens (FIT_RANGE + 2 values): apply to this run</li>
|
||
<li>If >3 tokens and odd number: extract pair for this run's index (fRunNo)</li>
|
||
<li>Parse offsets from + or - characters in fgb/lgb strings</li>
|
||
<li>Calculate new fFitStartTime and fFitEndTime:<ul>
|
||
<li>fFitStartTime = (fGoodBins[0] + offset - t0) × t_res</li>
|
||
<li>fFitEndTime = (fGoodBins[1] - offset - t0) × t_res</li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
<p><b>Example:</b> </p><div class="fragment"><div class="line">FIT_RANGE 100+10 500-20 # Fit from bin 110 to bin 480 (applying offsets)</div>
|
||
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">fitRange</td><td>String from COMMAND block containing FIT_RANGE specification</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section note"><dt>Note</dt><dd>Errors in parsing (wrong number of tokens) are reported to std::cerr and the command is ignored.</dd></dl>
|
||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a194107943e61f591f132c2fc864a3792" title="Calculates start/end bin indices from fit time range.">CalcNoOfFitBins()</a>, <a class="el" href="#a7f03b7b4d1faa25d8619d3060ec2d1b6" title="Determines fit range from MSR file settings.">GetProperFitRange()</a> </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8cpp_source.html#l00845">845</a> of file <a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.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="PRunSingleHisto_8h_source.html#l00374">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="a2df50725ab73222cad6c15698ba57cb9" name="a2df50725ab73222cad6c15698ba57cb9"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a2df50725ab73222cad6c15698ba57cb9">◆ </a></span>fBackground</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Double_t PRunSingleHisto::fBackground</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>Background level in counts/bin (estimated from pre-t0 bins or fixed value from RUN block) </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00370">370</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00208">CalcChiSquare()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00323">CalcChiSquareExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00455">CalcMaxLikelihood()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00590">CalcMaxLikelihoodExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00714">CalcTheory()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">EstimateBkg()</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00286">GetBackground()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a7b36967f5d5df2e4085568ee3781e21e" name="a7b36967f5d5df2e4085568ee3781e21e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a7b36967f5d5df2e4085568ee3781e21e">◆ </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 PRunSingleHisto::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 < fEndTimeBin) </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00379">379</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00208">CalcChiSquare()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00323">CalcChiSquareExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00455">CalcMaxLikelihood()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00590">CalcMaxLikelihoodExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">CalcNoOfFitBins()</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00298">GetEndTimeBin()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="af68e70c2788d8074b18e7e47f6546fbc" name="af68e70c2788d8074b18e7e47f6546fbc"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#af68e70c2788d8074b18e7e47f6546fbc">◆ </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> PRunSingleHisto::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 (background-corrected, packed) </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00376">376</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">EstimateBkg()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02160">EstimateN0()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01948">GetProperDataRange()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01011">PrepareData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00153">~PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aad79f1a5522f7b8dd02a931e1da46b72" name="aad79f1a5522f7b8dd02a931e1da46b72"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aad79f1a5522f7b8dd02a931e1da46b72">◆ </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 PRunSingleHisto::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 COMMANDS block: [0]=fgb (first good bin/t0), [1]=lgb (last good bin) </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00374">374</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l01948">GetProperDataRange()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02082">GetProperFitRange()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00845">SetFitRangeBin()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a3263de8a471132410ce364542bd04a00" name="a3263de8a471132410ce364542bd04a00"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a3263de8a471132410ce364542bd04a00">◆ </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 PRunSingleHisto::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 (fStartTimeBin to fEndTimeBin) </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00369">369</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">CalcNoOfFitBins()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00792">GetNoOfFitBins()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="ab2314ada7f993fd9fa07d365be4973e1" name="ab2314ada7f993fd9fa07d365be4973e1"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ab2314ada7f993fd9fa07d365be4973e1">◆ </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 PRunSingleHisto::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: from RUN or GLOBAL block) </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00371">371</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00208">CalcChiSquare()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00323">CalcChiSquareExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00455">CalcMaxLikelihood()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00590">CalcMaxLikelihoodExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">EstimateBkg()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02160">EstimateN0()</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00304">GetPacking()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a8267ca69b0cf2a4e6934e927f227e74b" name="a8267ca69b0cf2a4e6934e927f227e74b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a8267ca69b0cf2a4e6934e927f227e74b">◆ </a></span>fScaleN0AndBkg</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Bool_t PRunSingleHisto::fScaleN0AndBkg</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>Scaling mode: true = scale N₀ and B to 1/ns, false = leave as 1/bin (determined by <a class="el" href="#a2c5716a3db81fb1f8c253fdf759930b7" title="Determines if N₀ and background should be scaled to 1/ns.">IsScaleN0AndBkg()</a>) </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00368">368</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00208">CalcChiSquare()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00323">CalcChiSquareExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00455">CalcMaxLikelihood()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00590">CalcMaxLikelihoodExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02296">EstimateBkg()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l02160">EstimateN0()</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00310">GetScaleN0AndBkg()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01199">PrepareFitData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a86de1420609e08e6fa277a6730ecb0a2" name="a86de1420609e08e6fa277a6730ecb0a2"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a86de1420609e08e6fa277a6730ecb0a2">◆ </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 PRunSingleHisto::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="PRunSingleHisto_8h_source.html#l00378">378</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l00208">CalcChiSquare()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00323">CalcChiSquareExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00455">CalcMaxLikelihood()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00590">CalcMaxLikelihoodExpected()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00951">CalcNoOfFitBins()</a>, <a class="el" href="PRunSingleHisto_8h_source.html#l00292">GetStartTimeBin()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="aab652fdbf5612f51b224bafb132968d7" name="aab652fdbf5612f51b224bafb132968d7"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aab652fdbf5612f51b224bafb132968d7">◆ </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 PRunSingleHisto::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 mode: true = at data points, false = high-resolution grid for smooth Fourier transforms. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="PRunSingleHisto_8h_source.html#l00372">372</a> of file <a class="el" href="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a>.</p>
|
||
|
||
<p class="reference">Referenced by <a class="el" href="PRunSingleHisto_8cpp_source.html#l01292">PrepareRawViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l01481">PrepareViewData()</a>, <a class="el" href="PRunSingleHisto_8cpp_source.html#l00065">PRunSingleHisto()</a>, and <a class="el" href="PRunSingleHisto_8cpp_source.html#l00108">PRunSingleHisto()</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="PRunSingleHisto_8h_source.html">PRunSingleHisto.h</a></li>
|
||
<li>/workspace/LMU/musrfit/src/classes/<a class="el" href="PRunSingleHisto_8cpp_source.html">PRunSingleHisto.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="classPRunSingleHisto.html">PRunSingleHisto</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>
|