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

1283 lines
252 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>musrfit: /workspace/LMU/musrfit/src/classes/PRunSingleHistoRRF.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">musrfit<span id="projectnumber">&#160;1.9.9</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','Search',true);
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('PRunSingleHistoRRF_8cpp_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">PRunSingleHistoRRF.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="PRunSingleHistoRRF_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"></span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> PRunSingleHistoRRF.cpp</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"></span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> Author: Andreas Suter</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> e-mail: andreas.suter@psi.ch</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"></span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">***************************************************************************/</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * Copyright (C) 2007-2025 by Andreas Suter *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * andreas.suter@psi.ch *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * This program is free software; you can redistribute it and/or modify *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * it under the terms of the GNU General Public License as published by *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * the Free Software Foundation; either version 2 of the License, or *</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * (at your option) any later version. *</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * This program is distributed in the hope that it will be useful, *</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of *</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * GNU General Public License for more details. *</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * You should have received a copy of the GNU General Public License *</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * along with this program; if not, write to the *</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * Free Software Foundation, Inc., *</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> ***************************************************************************/</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#ifdef HAVE_CONFIG_H</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &quot;config.h&quot;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#ifdef HAVE_GOMP</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#include &lt;fstream&gt;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#include &lt;TString.h&gt;</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#include &lt;TObjArray.h&gt;</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#include &lt;TObjString.h&gt;</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#include &lt;TH1F.h&gt;</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#include &quot;<a class="code" href="PMusr_8h.html">PMusr.h</a>&quot;</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#include &quot;<a class="code" href="PFourier_8h.html">PFourier.h</a>&quot;</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#include &quot;<a class="code" href="PRunSingleHistoRRF_8h.html">PRunSingleHistoRRF.h</a>&quot;</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">// Constructor</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00073" data-start="{" data-end="}">
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a3b403bb5ab6f2330dea34b962bd67219"> 73</a></span><a class="code hl_function" href="classPRunSingleHistoRRF.html#a3b403bb5ab6f2330dea34b962bd67219">PRunSingleHistoRRF::PRunSingleHistoRRF</a>() : <a class="code hl_function" href="classPRunBase.html#ae5fc9bd22de779aff2bbbcbf14b90d42">PRunBase</a>()</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>{</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abef0b34e96c5bf89d4c1037e0008c52f">fNoOfFitBins</a> = 0;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a> = 0.0;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab715692e9f766a461a258d98707f1a94">fBkgErr</a> = 1.0;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a> = -1;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a8ac1684d7102a6e627df9679353b1bcf">fTheoAsData</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// the 2 following variables are need in case fit range is given in bins, and since</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// the fit range can be changed in the command block, these variables need to be accessible</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] = -1;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] = -1;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab5ace5bf93deb2df89c121063666f1c4">fN0EstimateEndTime</a> = 1.0; <span class="comment">// end time in (us) over which N0 is estimated.</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span>}</div>
</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment">// Constructor</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00132" data-start="{" data-end="}">
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a0cd015da9ae3b35d81068377f04e610f"> 132</a></span><a class="code hl_function" href="classPRunSingleHistoRRF.html#a3b403bb5ab6f2330dea34b962bd67219">PRunSingleHistoRRF::PRunSingleHistoRRF</a>(<a class="code hl_class" href="classPMsrHandler.html">PMsrHandler</a> *msrInfo, <a class="code hl_class" href="classPRunDataHandler.html">PRunDataHandler</a> *rawData, UInt_t runNo, <a class="code hl_enumeration" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331ab">EPMusrHandleTag</a> tag, Bool_t theoAsData) :</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_function" href="classPRunBase.html#ae5fc9bd22de779aff2bbbcbf14b90d42">PRunBase</a>(msrInfo, rawData, runNo, tag), <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a8ac1684d7102a6e627df9679353b1bcf">fTheoAsData</a>(theoAsData)</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>{</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abef0b34e96c5bf89d4c1037e0008c52f">fNoOfFitBins</a> = 0;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_class" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *global = msrInfo-&gt;<a class="code hl_function" href="classPMsrHandler.html#a34ec651b059b2bde5808e07c3d033e74">GetMsrGlobal</a>();</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> (!global-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#a1597f73baddfa9785f75ad2d841b6aa9">IsPresent</a>()) {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PRunSingleHistoRRF(): **SEVERE ERROR**: no GLOBAL-block present!&quot;</span>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; For Single Histo RRF the GLOBAL-block is mandatory! Please fix this first.&quot;</span>;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> fValid = false;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> return;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> }</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <a class="code hl_function" href="PStartupHandler_8cpp.html#a81551ff222b7f215c821232131fe1626">if</a> (!global-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#abada7c4677106d4abf547d2e4a1af09e">GetRRFUnit</a>().CompareTo(<span class="stringliteral">&quot;??&quot;</span>)) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PRunSingleHistoRRF(): **SEVERE ERROR**: no RRF-Frequency found!&quot;</span>;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> fValid = false;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> return;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> }</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a> = global-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#aa99ab5a8c16c2661e6bc186e3d78ac64">GetRRFPacking</a>();</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <a class="code hl_function" href="PStartupHandler_8cpp.html#a81551ff222b7f215c821232131fe1626">if</a> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a> == -1) {</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PRunSingleHistoRRF(): **SEVERE ERROR**: no RRF-Packing found!&quot;</span>;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <a class="code hl_variable" href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> }</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// the 2 following variables are need in case fit range is given in bins, and since</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="comment">// the fit range can be changed in the command block, these variables need to be accessible</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] = -1;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] = -1;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab5ace5bf93deb2df89c121063666f1c4">fN0EstimateEndTime</a> = 1.0; <span class="comment">// end time in (us) over which N0 is estimated.</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunSingleHistoRRF.html#a64b5a3e7a52fd3e5cce6e02e67325391">PrepareData</a>()) {</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PRunSingleHistoRRF(): **SEVERE ERROR**: Couldn&#39;t prepare data for fitting!&quot;</span>;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; This is very bad :-(, will quit ...&quot;</span>;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <a class="code hl_variable" href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span>}</div>
</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment">// Destructor</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a60d1d3e1a165effd9c2a2b4ecd29382b"> 193</a></span><a class="code hl_function" href="classPRunSingleHistoRRF.html#a60d1d3e1a165effd9c2a2b4ecd29382b">PRunSingleHistoRRF::~PRunSingleHistoRRF</a>()</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span>{</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.clear();</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span>}</div>
</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="comment">// CalcChiSquare (public)</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00239" data-start="{" data-end="}">
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a20acaae4f31c28daa5a5b2046cb861ce"> 239</a></span>Double_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a20acaae4f31c28daa5a5b2046cb861ce">PRunSingleHistoRRF::CalcChiSquare</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt;&amp; par)</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span>{</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> Double_t chisq = 0.0;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> Double_t diff = 0.0;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// calculate functions</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetNoOfFuncs(); i++) {</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> UInt_t funcNo = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetFuncNo(i);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>[i] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funcNo, *<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetMap(), par, <a class="code hl_variable" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a>);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> }</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> </div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// calculate chi square</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> Double_t time(1.0);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> Int_t i;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="comment">// Calculate the theory function once to ensure one function evaluation for the current set of parameters.</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="comment">// This is needed for the LF and user functions where some non-thread-save calculations only need to be calculated once</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="comment">// for a given set of parameters---which should be done outside of the parallelized loop.</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="comment">// For all other functions it means a tiny and acceptable overhead.</span></div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> time = <a class="code hl_variable" href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">fTheory</a>-&gt;Func(time, par, <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="preprocessor"> #ifdef HAVE_GOMP</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> Int_t chunk = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a> - <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a>)/omp_get_num_procs();</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">if</span> (chunk &lt; 10)</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> chunk = 10;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="preprocessor"> #pragma omp parallel for default(shared) private(i,time,diff) schedule(dynamic,chunk) reduction(+:chisq)</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">for</span> (i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a>; i&lt;<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a>; ++i) {</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> time = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStart() + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(i)*<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStep();</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> diff = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;at(i) - <a class="code hl_variable" href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">fTheory</a>-&gt;Func(time, par, <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> chisq += diff*diff / (<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetError()-&gt;at(i)*<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetError()-&gt;at(i));</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> }</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> chisq;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span>}</div>
</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> </div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="comment">// CalcChiSquareExpected (public)</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00306" data-start="{" data-end="}">
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a54445267cc4b9a56ddc1daafa506e0bf"> 306</a></span>Double_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a54445267cc4b9a56ddc1daafa506e0bf">PRunSingleHistoRRF::CalcChiSquareExpected</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt;&amp; par)</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span>{</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> Double_t chisq = 0.0;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> Double_t diff = 0.0;</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> Double_t theo = 0.0;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> </div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="comment">// calculate functions</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetNoOfFuncs(); i++) {</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> UInt_t funcNo = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetFuncNo(i);</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>[i] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funcNo, *<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetMap(), par, <a class="code hl_variable" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a>);</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> }</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="comment">// calculate chi square</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> Double_t time(1.0);</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> Int_t i;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="comment">// Calculate the theory function once to ensure one function evaluation for the current set of parameters.</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> <span class="comment">// This is needed for the LF and user functions where some non-thread-save calculations only need to be calculated once</span></div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="comment">// for a given set of parameters---which should be done outside of the parallelized loop.</span></div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// For all other functions it means a tiny and acceptable overhead.</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> time = <a class="code hl_variable" href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">fTheory</a>-&gt;Func(time, par, <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>);</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><span class="preprocessor"> #ifdef HAVE_GOMP</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> Int_t chunk = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a> - <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a>)/omp_get_num_procs();</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">if</span> (chunk &lt; 10)</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> chunk = 10;</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="preprocessor"> #pragma omp parallel for default(shared) private(i,time,diff) schedule(dynamic,chunk) reduction(+:chisq)</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <span class="keywordflow">for</span> (i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a>; i &lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a>; ++i) {</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> time = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStart() + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(i)*<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStep();</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> theo = <a class="code hl_variable" href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">fTheory</a>-&gt;Func(time, par, <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>);</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> diff = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;at(i) - theo;</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> chisq += diff*diff / theo;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> }</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> </div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordflow">return</span> chisq;</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span>}</div>
</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> </div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="comment">// CalcMaxLikelihood (public)</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00378" data-start="{" data-end="}">
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#ad2ee805b0b66aa9c034802d869c6712b"> 378</a></span>Double_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#ad2ee805b0b66aa9c034802d869c6712b">PRunSingleHistoRRF::CalcMaxLikelihood</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt;&amp; par)</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span>{</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="comment">// not yet implemented</span></div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> </div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> <span class="keywordflow">return</span> 0.0;</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span>}</div>
</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> </div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span><span class="comment">// CalcTheory (public)</span></div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00423" data-start="{" data-end="}">
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#af5efc7a53365a692d8fe4c0bb7938a2f"> 423</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#af5efc7a53365a692d8fe4c0bb7938a2f">PRunSingleHistoRRF::CalcTheory</a>()</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span>{</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> <span class="comment">// feed the parameter vector</span></div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> std::vector&lt;Double_t&gt; par;</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <a class="code hl_typedef" href="PMusr_8h.html#ab08a4f791c8d0001ed434bae845fe95c">PMsrParamList</a> *paramList = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrParamList();</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;paramList-&gt;size(); i++)</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> par.push_back((*paramList)[i].fValue);</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> </div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <span class="comment">// calculate functions</span></div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetNoOfFuncs(); i++) {</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>[i] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(<a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetFuncNo(i), *<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetMap(), par, <a class="code hl_variable" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a>);</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> }</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> </div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> <span class="comment">// calculate theory</span></div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> UInt_t size = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;size();</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> Double_t start = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStart();</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> Double_t resolution = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStep();</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> Double_t time;</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;size; i++) {</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> time = start + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(i)*resolution;</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendTheoryValue(<a class="code hl_variable" href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">fTheory</a>-&gt;Func(time, par, <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>));</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> }</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> </div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> par.clear();</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span>}</div>
</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> </div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span><span class="comment">// GetNoOfFitBins (public)</span></div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00472" data-start="{" data-end="}">
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#aec3aac4e64931206a360598fb3363a68"> 472</a></span>UInt_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#aec3aac4e64931206a360598fb3363a68">PRunSingleHistoRRF::GetNoOfFitBins</a>()</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span>{</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#af702d4108e8383bed131f393e2a0dcf4">CalcNoOfFitBins</a>();</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abef0b34e96c5bf89d4c1037e0008c52f">fNoOfFitBins</a>;</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span>}</div>
</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> </div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span><span class="comment">// SetFitRangeBin (public)</span></div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00529" data-start="{" data-end="}">
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#adaf4b75ab0ca72305da9e58d578c7314"> 529</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#adaf4b75ab0ca72305da9e58d578c7314">PRunSingleHistoRRF::SetFitRangeBin</a>(<span class="keyword">const</span> TString fitRange)</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span>{</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> TObjArray *tok = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> TObjString *ostr = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> TString str;</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> Ssiz_t idx = -1;</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> Int_t offset = 0;</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> tok = fitRange.Tokenize(<span class="stringliteral">&quot; \t&quot;</span>);</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> </div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">if</span> (tok-&gt;GetEntries() == 3) { <span class="comment">// structure FIT_RANGE fgb+n0 lgb-n1</span></div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="comment">// handle fgb+n0 entry</span></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tok-&gt;At(1));</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> idx = str.First(<span class="stringliteral">&quot;+&quot;</span>);</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">if</span> (str.IsFloat()) <span class="comment">// if str is a valid number, convert is to an integer</span></div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> offset = str.Atoi();</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> }</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] + offset - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>;</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="comment">// handle lgb-n1 entry</span></div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tok-&gt;At(2));</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> idx = str.First(<span class="stringliteral">&quot;-&quot;</span>);</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">if</span> (str.IsFloat()) <span class="comment">// if str is a valid number, convert is to an integer</span></div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> offset = str.Atoi();</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> }</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] - offset - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>;</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((tok-&gt;GetEntries() &gt; 3) &amp;&amp; (tok-&gt;GetEntries() % 2 == 1)) { <span class="comment">// structure FIT_RANGE fgb[+n00] lgb[-n01] [fgb[+n10] lgb[-n11] ... fgb[+nN0] lgb[-nN1]]</span></div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> Int_t pos = 2*(<a class="code hl_variable" href="classPRunBase.html#aeccaae88c9db0804981e1bd3f81fc57a">fRunNo</a>+1)-1;</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> </div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">if</span> (pos + 1 &gt;= tok-&gt;GetEntries()) {</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::SetFitRangeBin(): **ERROR** invalid FIT_RANGE command found: &#39;&quot;</span> &lt;&lt; fitRange &lt;&lt; <span class="stringliteral">&quot;&#39;&quot;</span>;</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; will ignore it. Sorry ...&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="comment">// handle fgb+n0 entry</span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tok-&gt;At(pos));</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> idx = str.First(<span class="stringliteral">&quot;+&quot;</span>);</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="keywordflow">if</span> (str.IsFloat()) <span class="comment">// if str is a valid number, convert is to an integer</span></div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> offset = str.Atoi();</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> }</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] + offset - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> </div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="comment">// handle lgb-n1 entry</span></div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tok-&gt;At(pos+1));</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> idx = str.First(<span class="stringliteral">&quot;-&quot;</span>);</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="keywordflow">if</span> (str.IsFloat()) <span class="comment">// if str is a valid number, convert is to an integer</span></div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> offset = str.Atoi();</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> }</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] - offset - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>;</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> }</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> } <span class="keywordflow">else</span> { <span class="comment">// error</span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::SetFitRangeBin(): **ERROR** invalid FIT_RANGE command found: &#39;&quot;</span> &lt;&lt; fitRange &lt;&lt; <span class="stringliteral">&quot;&#39;&quot;</span>;</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; will ignore it. Sorry ...&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> }</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> </div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">if</span> (tok) {</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keyword">delete</span> tok;</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> }</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span>}</div>
</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> </div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span><span class="comment">// CalcNoOfFitBins (public)</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00641" data-start="{" data-end="}">
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#af702d4108e8383bed131f393e2a0dcf4"> 641</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#af702d4108e8383bed131f393e2a0dcf4">PRunSingleHistoRRF::CalcNoOfFitBins</a>()</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span>{</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="comment">// In order not having to loop over all bins and to stay consistent with the chisq method, calculate the start and end bins explicitly</span></div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a> = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(ceil((<a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> - <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStart())/<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStep()));</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a> &lt; 0)</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a> = 0;</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a> = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(floor((<a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> - <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStart())/<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStep())) + 1;</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a> &gt; <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;size()))</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a> = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;size();</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> </div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a> &gt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a>)</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abef0b34e96c5bf89d4c1037e0008c52f">fNoOfFitBins</a> = <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">fEndTimeBin</a> - <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">fStartTimeBin</a>;</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abef0b34e96c5bf89d4c1037e0008c52f">fNoOfFitBins</a> = 0;</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span>}</div>
</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> </div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span><span class="comment">// PrepareData (protected)</span></div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00706" data-start="{" data-end="}">
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a64b5a3e7a52fd3e5cce6e02e67325391"> 706</a></span>Bool_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a64b5a3e7a52fd3e5cce6e02e67325391">PRunSingleHistoRRF::PrepareData</a>()</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span>{</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> Bool_t success = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> </div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">fValid</a>)</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> </div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="comment">// keep the Global block info</span></div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <a class="code hl_class" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal();</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> </div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <span class="comment">// get the proper run</span></div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> <a class="code hl_class" href="classPRawRunData.html">PRawRunData</a>* runData = <a class="code hl_variable" href="classPRunBase.html#ac8852c15177607e0d4383fc2e69e8ef7">fRawData</a>-&gt;GetRunData(*<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName());</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> <span class="keywordflow">if</span> (!runData) { <span class="comment">// couldn&#39;t get run</span></div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PrepareData(): **ERROR** Couldn&#39;t get run &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName()-&gt;Data() &lt;&lt; <span class="stringliteral">&quot;!&quot;</span>;</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> }</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> </div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="comment">// keep the field from the meta-data from the data-file</span></div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <a class="code hl_variable" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a>.fField = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#ab1cab688e4df99844efed36d7660ae50">GetField</a>();</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> </div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <span class="comment">// keep the energy from the meta-data from the data-file</span></div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> <a class="code hl_variable" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a>.fEnergy = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#ab2727ab18ff3f554690433f27154f271">GetEnergy</a>();</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> </div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> <span class="comment">// keep the temperature(s) from the meta-data from the data-file</span></div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i=0; i&lt;runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a82dc4ab15ee7fba75b9f8f23f2f28d47">GetNoOfTemperatures</a>(); i++)</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> <a class="code hl_variable" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a>.fTemp.push_back(runData-&gt;<a class="code hl_function" href="classPRawRunData.html#ae0ff86dd2ca17589777bb65781eca4f7">GetTemperature</a>(i));</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> </div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> <span class="comment">// collect histogram numbers</span></div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <a class="code hl_typedef" href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a> histoNo; <span class="comment">// histoNo = msr-file forward + redGreen_offset - 1</span></div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetForwardHistoNoSize(); i++) {</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> histoNo.push_back(<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetForwardHistoNo(i));</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> </div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> <span class="keywordflow">if</span> (!runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a76d09e675fb730a765809de705e40428">IsPresent</a>(histoNo[i])) {</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PrepareData(): **PANIC ERROR**:&quot;</span>;</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; histoNo found = &quot;</span> &lt;&lt; histoNo[i] &lt;&lt; <span class="stringliteral">&quot;, which is NOT present in the data file!?!?&quot;</span>;</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; Will quit :-(&quot;</span>;</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> histoNo.clear();</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> }</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> }</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> </div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <span class="comment">// keep the time resolution in (us)</span></div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a> = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a36017a95d0f34ff2ec2c17beeb5886f5">GetTimeResolution</a>()/1.0e3;</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> std::cout.precision(10);</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHisto::PrepareData(): time resolution=&quot;</span> &lt;&lt; std::fixed &lt;&lt; runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a36017a95d0f34ff2ec2c17beeb5886f5">GetTimeResolution</a>() &lt;&lt; <span class="stringliteral">&quot;(ns)&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> </div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> <span class="comment">// get all the proper t0&#39;s and addt0&#39;s for the current RUN block</span></div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunSingleHistoRRF.html#acf61e38a66398bcb2d37d890aa099da6">GetProperT0</a>(runData, globalBlock, histoNo)) {</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> }</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> </div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <span class="comment">// keep the histo of each group at this point (addruns handled below)</span></div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> std::vector&lt;PDoubleVector&gt; forward;</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> forward.resize(histoNo.size()); <span class="comment">// resize to number of groups</span></div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;histoNo.size(); i++) {</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> forward[i].resize(runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[i])-&gt;size());</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> forward[i] = *runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[i]);</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> }</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> </div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> <span class="comment">// check if there are runs to be added to the current one</span></div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunNameSize() &gt; 1) { <span class="comment">// runs to be added present</span></div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <a class="code hl_class" href="classPRawRunData.html">PRawRunData</a> *addRunData;</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="keywordflow">for</span> (UInt_t i=1; i&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunNameSize(); i++) {</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> </div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <span class="comment">// get run to be added to the main one</span></div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> addRunData = <a class="code hl_variable" href="classPRunBase.html#ac8852c15177607e0d4383fc2e69e8ef7">fRawData</a>-&gt;GetRunData(*<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName(i));</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">if</span> (addRunData == <span class="keyword">nullptr</span>) { <span class="comment">// couldn&#39;t get run</span></div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PrepareData(): **ERROR** Couldn&#39;t get addrun &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName(i)-&gt;Data() &lt;&lt; <span class="stringliteral">&quot;!&quot;</span>;</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> }</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> </div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> <span class="comment">// add forward run</span></div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> UInt_t addRunSize;</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> <span class="keywordflow">for</span> (UInt_t k=0; k&lt;histoNo.size(); k++) { <span class="comment">// fill each group</span></div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> addRunSize = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[k])-&gt;size();</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[k])-&gt;size(); j++) { <span class="comment">// loop over the bin indices</span></div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <span class="comment">// make sure that the index stays in the proper range</span></div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <span class="keywordflow">if</span> ((<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(j)+<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][k])-<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[k]) &gt;= 0) &amp;&amp;</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> (j+<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][k])-<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[k]) &lt; addRunSize)) {</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> forward[k][j] += addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[k])-&gt;at(j+<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][k])-<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[k]));</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> }</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> }</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> }</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> }</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> }</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> </div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> <span class="comment">// set forward histo data of the first group</span></div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.resize(forward[0].size());</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size(); i++) {</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i] = forward[0][i];</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> }</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> </div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> <span class="comment">// group histograms, add all the remaining forward histograms of the group</span></div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> <span class="keywordflow">for</span> (UInt_t i=1; i&lt;histoNo.size(); i++) { <span class="comment">// loop over the groupings</span></div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[i])-&gt;size(); j++) { <span class="comment">// loop over the bin indices</span></div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> <span class="comment">// make sure that the index stays within proper range</span></div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> <span class="keywordflow">if</span> ((<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(j)+<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i])-<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) &gt;= 0) &amp;&amp;</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> (j+<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i])-<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) &lt; runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[i])-&gt;size())) {</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[j] += forward[i][j+<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i])-<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0])];</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> }</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> }</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> }</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> </div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> <span class="comment">// get the data range (fgb/lgb) for the current RUN block</span></div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunSingleHistoRRF.html#ad2f3a3cbc00f42870a695a6012f4aaeb">GetProperDataRange</a>()) {</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> }</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> </div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> <span class="comment">// get the fit range for the current RUN block</span></div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#a8190e9405a89a9121ad67d3940c75f3d">GetProperFitRange</a>(globalBlock);</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> </div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> <span class="comment">// do the more fit/view specific stuff</span></div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab6465ea668810646cd74b40a4e25ca42">fHandleTag</a> == <a class="code hl_enumvalue" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331aba6d36a468d5cc6244a9c4b150e0b107a7">kFit</a>)</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> success = <a class="code hl_function" href="classPRunSingleHistoRRF.html#a3d7f8f12b68f67821a2891b9432bf8d2">PrepareFitData</a>(runData, histoNo[0]);</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab6465ea668810646cd74b40a4e25ca42">fHandleTag</a> == <a class="code hl_enumvalue" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331abaa9d4431e390709c09f825d8afbf32289">kView</a>)</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> success = <a class="code hl_function" href="classPRunSingleHistoRRF.html#a8d5ea8242073e34b0186a662e1f66869">PrepareViewData</a>(runData, histoNo[0]);</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> success = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> </div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> <span class="comment">// cleanup</span></div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> histoNo.clear();</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> </div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> <span class="keywordflow">return</span> success;</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span>}</div>
</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> </div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span><span class="comment">// PrepareFitData (protected)</span></div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00906" data-start="{" data-end="}">
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a3d7f8f12b68f67821a2891b9432bf8d2"> 906</a></span>Bool_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a3d7f8f12b68f67821a2891b9432bf8d2">PRunSingleHistoRRF::PrepareFitData</a>(<a class="code hl_class" href="classPRawRunData.html">PRawRunData</a>* runData, <span class="keyword">const</span> UInt_t histoNo)</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span>{</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <span class="comment">// keep the raw data for the RRF asymmetry error estimate for later</span></div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> rawNt;</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size(); i++) {</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> rawNt.push_back(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i]); <span class="comment">// N(t) without any corrections</span></div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> }</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> Double_t freqMax = <a class="code hl_function" href="classPRunSingleHistoRRF.html#a2a095182422c0b8903d4533d5df9eed9">GetMainFrequency</a>(rawNt);</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> std::cout &lt;&lt; <span class="stringliteral">&quot;info&gt; freqMax=&quot;</span> &lt;&lt; freqMax &lt;&lt; <span class="stringliteral">&quot; (MHz)&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> </div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> <span class="comment">// &quot;optimal packing&quot;</span></div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> Double_t optNoPoints = 8;</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> <span class="keywordflow">if</span> (freqMax &lt; 271.0) <span class="comment">// &lt; 271 MHz, i.e ~ 2T</span></div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> optNoPoints = 5;</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> std::cout &lt;&lt; <span class="stringliteral">&quot;info&gt; optimal packing: &quot;</span> &lt;&lt; <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(1.0 / (<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>*(freqMax - <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetRRFFreq(<span class="stringliteral">&quot;MHz&quot;</span>))) / optNoPoints);</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> </div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> <span class="comment">// initially fForward is the &quot;raw data set&quot; (i.e. grouped histo and raw runs already added) to be fitted. This means fForward = N(t) at this point.</span></div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> </div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> <span class="comment">// 1) check how the background shall be handled</span></div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> <span class="comment">// subtract background from histogramms ------------------------------------------</span></div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgFix(0) == <a class="code hl_define" href="PMusr_8h.html#a5357075a43f071649455751fedd2bdf5">PMUSR_UNDEFINED</a>) { <span class="comment">// no fixed background given</span></div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(0) &gt;= 0) {</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunSingleHistoRRF.html#a9b73cc476c39a5781f577a86c870f4aa">EstimateBkg</a>(histoNo))</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> } <span class="keywordflow">else</span> { <span class="comment">// no background given to do the job, try estimate</span></div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetBkgRange(<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]*0.1), 0);</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetBkgRange(<span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]*0.6), 1);</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PrepareFitData(): **WARNING** Neither fix background nor background bins are given!&quot;</span>;</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; Will try the following: bkg start = &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(0) &lt;&lt; <span class="stringliteral">&quot;, bkg end = &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(1);</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO WARRANTY THAT THIS MAKES ANY SENSE! Better check ...&quot;</span>;</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunSingleHistoRRF.html#a9b73cc476c39a5781f577a86c870f4aa">EstimateBkg</a>(histoNo))</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> }</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> <span class="comment">// subtract background from fForward</span></div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size(); i++)</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i] -= <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a>;</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> } <span class="keywordflow">else</span> { <span class="comment">// fixed background given</span></div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size(); i++) {</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i] -= <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgFix(0);</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> }</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a> = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgFix(0);</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> }</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> <span class="comment">// here fForward = N(t) - Nbkg</span></div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> </div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> Int_t t0 = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]);</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> </div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="comment">// 2) N(t) - Nbkg -&gt; exp(+t/tau) [N(t)-Nbkg]</span></div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> Double_t startTime = <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a> * (<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]) - <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(t0));</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> </div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> Double_t time_tau=0.0;</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> Double_t exp_t_tau=0.0;</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]; i&lt;<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> time_tau = (startTime + <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a> * (i - <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0])) / <a class="code hl_define" href="PMusr_8h.html#a572a4ff40a2185e40b2b009c95bac7cf">PMUON_LIFETIME</a>;</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> exp_t_tau = exp(time_tau);</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i] *= exp_t_tau;</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a9188ea8e610cc22798280636c8b53beb">fM</a>.push_back(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i]); <span class="comment">// i.e. M(t) = [N(t)-Nbkg] exp(+t/tau); needed to estimate N0 later on</span></div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">fMerr</a>.push_back(exp_t_tau*sqrt(rawNt[i]+<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab715692e9f766a461a258d98707f1a94">fBkgErr</a>*<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab715692e9f766a461a258d98707f1a94">fBkgErr</a>));</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> }</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> </div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> <span class="comment">// calculate weights</span></div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">fMerr</a>.size(); i++) {</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">fMerr</a>[i] &gt; 0.0)</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ad831240ac6214d41dee3d20f303b2b49">fW</a>.push_back(1.0/(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">fMerr</a>[i]*<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">fMerr</a>[i]));</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ad831240ac6214d41dee3d20f303b2b49">fW</a>.push_back(1.0);</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> }</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> <span class="comment">// now fForward = exp(+t/tau) [N(t)-Nbkg] = M(t)</span></div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> </div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> <span class="comment">// 3) estimate N0</span></div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> Double_t errN0 = 0.0;</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> Double_t n0 = <a class="code hl_function" href="classPRunSingleHistoRRF.html#a3b473fe7da2670dd7381c729dea86244">EstimateN0</a>(errN0, freqMax);</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> </div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> <span class="comment">// 4a) A(t) = exp(+t/tau) [N(t)-Nbkg] / N0 - 1.0</span></div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]; i&lt;=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i] = <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i] / n0 - 1.0;</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> }</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> </div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> <span class="comment">// 4b) error estimate of A(t): errA(t) = exp(+t/tau)/N0 sqrt( N(t) + ([N(t)-N_bkg]/N0)^2 errN0^2 )</span></div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]; i&lt;=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> time_tau = (startTime + <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a> * (i - <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0])) / <a class="code hl_define" href="PMusr_8h.html#a572a4ff40a2185e40b2b009c95bac7cf">PMUON_LIFETIME</a>;</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> exp_t_tau = exp(time_tau);</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a28cf424562a7f425cf832fe95ab42609">fAerr</a>.push_back(exp_t_tau/n0*sqrt(rawNt[i]+pow(((rawNt[i]-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a>)/n0)*errN0,2.0)));</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> }</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> </div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <span class="comment">// 5) rotate A(t): A(t) -&gt; 2* A(t) * cos(wRRF t + phiRRF), the factor 2.0 is needed since the high frequency part is suppressed.</span></div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> <a class="code hl_class" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal();</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> Double_t wRRF = globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#afef14551c982f5898c9c7f2d555fc6cd">GetRRFFreq</a>(<span class="stringliteral">&quot;Mc&quot;</span>);</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> Double_t phaseRRF = globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#afca59c06d5b563dc6379094c79addac4">GetRRFPhase</a>()*TMath::TwoPi()/180.0;</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> Double_t time = 0.0;</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]; i&lt;=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> time = startTime + <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a> * (<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(i) - <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]));</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i] *= 2.0*cos(wRRF * time + phaseRRF);</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> }</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> </div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> <span class="comment">// 6) RRF packing</span></div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> Double_t dval=0.0;</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]; i&lt;=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a> == 1) {</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendValue(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i]);</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> } <span class="keywordflow">else</span> { <span class="comment">// RRF packing &gt; 1</span></div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> <span class="keywordflow">if</span> (((i-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]) % <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a> == 0) &amp;&amp; (i != <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0])) { <span class="comment">// fill data</span></div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> dval /= <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a>;</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendValue(dval);</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">// reset dval</span></div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> dval = 0.0;</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> }</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> dval += <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i];</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> }</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> }</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> </div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <span class="comment">// 7) estimate packed RRF errors (see log-book p.204)</span></div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <span class="comment">// the error estimate of the unpacked RRF asymmetry is: errA_RRF(t) \simeq exp(t/tau)/N0 sqrt( [N(t) + ((N(t)-N_bkg)/N0)^2 errN0^2] )</span></div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> dval = 0.0;</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> <span class="comment">// the packed RRF asymmetry error</span></div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]; i&lt;=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> <span class="keywordflow">if</span> (((i-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]) % <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a> == 0) &amp;&amp; (i != <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0])) { <span class="comment">// fill data</span></div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendErrorValue(sqrt(2.0*dval)/<a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a>); <span class="comment">// the factor 2.0 is needed since the high frequency part is suppressed.</span></div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> dval = 0.0;</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> }</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> dval += <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a28cf424562a7f425cf832fe95ab42609">fAerr</a>[i-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]]*<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a28cf424562a7f425cf832fe95ab42609">fAerr</a>[i-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]];</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> }</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> </div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">// set start time and time step</span></div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.SetDataTimeStart(<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>*(<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0])-<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(t0)+<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a>-1)/2.0));</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.SetDataTimeStep(<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>*<a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a>);</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> </div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#af702d4108e8383bed131f393e2a0dcf4">CalcNoOfFitBins</a>();</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> </div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span>}</div>
</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> </div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span><span class="comment">// PrepareViewData (protected)</span></div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01092" data-start="{" data-end="}">
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a8d5ea8242073e34b0186a662e1f66869"> 1092</a></span>Bool_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a8d5ea8242073e34b0186a662e1f66869">PRunSingleHistoRRF::PrepareViewData</a>(<a class="code hl_class" href="classPRawRunData.html">PRawRunData</a>* runData, <span class="keyword">const</span> UInt_t histoNo)</div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span>{</div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> <span class="comment">// --------------</span></div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">// prepare data</span></div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">// --------------</span></div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> </div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">// prepare RRF single histo</span></div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#a3d7f8f12b68f67821a2891b9432bf8d2">PrepareFitData</a>(runData, histoNo);</div>
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> </div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">// check for view packing</span></div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> Int_t viewPacking = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrPlotList()-&gt;at(0).fViewPacking;</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> <span class="keywordflow">if</span> (viewPacking &gt; 0) {</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> <span class="keywordflow">if</span> (viewPacking &lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a>) {</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::PrepareViewData(): **WARNING** Found View Packing (&quot;</span> &lt;&lt; viewPacking &lt;&lt; <span class="stringliteral">&quot;) &lt; RRF Packing (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">fRRFPacking</a> &lt;&lt; <span class="stringliteral">&quot;).&quot;</span>;</div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; Will ignore View Packing.&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">// STILL MISSING</span></div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> }</div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> }</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> </div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">// --------------</span></div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <span class="comment">// prepare theory</span></div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">// --------------</span></div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> </div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="comment">// feed the parameter vector</span></div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> std::vector&lt;Double_t&gt; par;</div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <a class="code hl_typedef" href="PMusr_8h.html#ab08a4f791c8d0001ed434bae845fe95c">PMsrParamList</a> *paramList = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrParamList();</div>
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;paramList-&gt;size(); i++)</div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> par.push_back((*paramList)[i].fValue);</div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> </div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">// calculate functions</span></div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetNoOfFuncs(); i++) {</div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>[i] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(<a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetFuncNo(i), *<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetMap(), par, <a class="code hl_variable" href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">fMetaData</a>);</div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> }</div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> </div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> <span class="comment">// check if a finer binning for the theory is needed</span></div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> UInt_t size = <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size();</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> Int_t factor = 8; <span class="comment">// 8 times more points for the theory (if fTheoAsData == false)</span></div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.SetTheoryTimeStart(<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStart());</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a8ac1684d7102a6e627df9679353b1bcf">fTheoAsData</a>) { <span class="comment">// calculate theory only at the data points</span></div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.SetTheoryTimeStep(<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStep());</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> <span class="comment">// finer binning for the theory (8 times as many points = factor)</span></div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> size *= factor;</div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.SetTheoryTimeStep(<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetDataTimeStep()/(Double_t)factor);</div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> }</div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> </div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> <span class="comment">// calculate theory</span></div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> Double_t time = 0.0;</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> Double_t theoryValue = 0.0;</div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;size; i++) {</div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> time = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetTheoryTimeStart() + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(i)*<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetTheoryTimeStep();</div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> theoryValue = <a class="code hl_variable" href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">fTheory</a>-&gt;Func(time, par, <a class="code hl_variable" href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">fFuncValues</a>);</div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> <span class="keywordflow">if</span> (fabs(theoryValue) &gt; 10.0) { <span class="comment">// dirty hack needs to be fixed!!</span></div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> theoryValue = 0.0;</div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> }</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendTheoryValue(theoryValue);</div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> }</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> </div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span>}</div>
</div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> </div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span><span class="comment">// GetProperT0 (private)</span></div>
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01205" data-start="{" data-end="}">
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#acf61e38a66398bcb2d37d890aa099da6"> 1205</a></span>Bool_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#acf61e38a66398bcb2d37d890aa099da6">PRunSingleHistoRRF::GetProperT0</a>(<a class="code hl_class" href="classPRawRunData.html">PRawRunData</a>* runData, <a class="code hl_class" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock, <a class="code hl_typedef" href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a> &amp;histoNo)</div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span>{</div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span> <span class="comment">// feed all T0&#39;s</span></div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> <span class="comment">// first init T0&#39;s, T0&#39;s are stored as (forward T0, backward T0, etc.)</span></div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>.clear();</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>.resize(histoNo.size());</div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>.size(); i++) {</div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] = -1.0;</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> }</div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span> </div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> <span class="comment">// fill in the T0&#39;s from the msr-file (if present)</span></div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetT0BinSize(); i++) {</div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetT0Bin(i);</div>
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span> }</div>
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span> </div>
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> <span class="comment">// fill in the T0&#39;s from the GLOBAL block section (if present)</span></div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#a72b1d861b00fd1630f5e53dc15cbbc26">GetT0BinSize</a>(); i++) {</div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] == -1.0) { <span class="comment">// i.e. not given in the RUN block section</span></div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] = globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#af65258b5b4b5b516731c4addf9215021">GetT0Bin</a>(i);</div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> }</div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> }</div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> </div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">// fill in the T0&#39;s from the data file, if not already present in the msr-file</span></div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;histoNo.size(); i++) {</div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] == -1.0) { <span class="comment">// i.e. not present in the msr-file, try the data file</span></div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> <span class="keywordflow">if</span> (runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(histoNo[i]) &gt; 0.0) {</div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(histoNo[i]);</div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetT0Bin(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i], i); <span class="comment">// keep value for the msr-file</span></div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> }</div>
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> }</div>
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> }</div>
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> </div>
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> <span class="comment">// fill in the T0&#39;s gaps, i.e. in case the T0&#39;s are NOT in the msr-file and NOT in the data file</span></div>
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;histoNo.size(); i++) {</div>
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] == -1.0) { <span class="comment">// i.e. not present in the msr-file and data file, use the estimated T0</span></div>
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(histoNo[i]);</div>
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetT0Bin(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i], i); <span class="comment">// keep value for the msr-file</span></div>
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span> </div>
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperT0(): **WARRNING** NO t0&#39;s found, neither in the run data nor in the msr-file!&quot;</span>;</div>
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; run: &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName()-&gt;Data();</div>
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; will try the estimated one: forward t0 = &quot;</span> &lt;&lt; runData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(histoNo[i]);</div>
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO WARRANTY THAT THIS OK!! For instance for LEM this is almost for sure rubbish!&quot;</span>;</div>
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> }</div>
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> }</div>
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> </div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> <span class="comment">// check if t0 is within proper bounds</span></div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetForwardHistoNoSize(); i++) {</div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> <span class="keywordflow">if</span> ((<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] &lt; 0.0) || (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] &gt; <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[i])-&gt;size()))) {</div>
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperT0(): **ERROR** t0 data bin (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] &lt;&lt; <span class="stringliteral">&quot;) doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> }</div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> }</div>
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> </div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> <span class="comment">// check if there are runs to be added to the current one. If yes keep the needed t0&#39;s</span></div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunNameSize() &gt; 1) { <span class="comment">// runs to be added present</span></div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> <a class="code hl_class" href="classPRawRunData.html">PRawRunData</a> *addRunData;</div>
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>.resize(<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunNameSize()-1); <span class="comment">// resize to the number of addruns</span></div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <span class="keywordflow">for</span> (UInt_t i=1; i&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunNameSize(); i++) {</div>
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> </div>
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">// get run to be added to the main one</span></div>
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> addRunData = <a class="code hl_variable" href="classPRunBase.html#ac8852c15177607e0d4383fc2e69e8ef7">fRawData</a>-&gt;GetRunData(*<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName(i));</div>
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> <span class="keywordflow">if</span> (addRunData == <span class="keyword">nullptr</span>) { <span class="comment">// couldn&#39;t get run</span></div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperT0(): **ERROR** Couldn&#39;t get addrun &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName(i)-&gt;Data() &lt;&lt; <span class="stringliteral">&quot;!&quot;</span>;</div>
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> }</div>
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> </div>
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> <span class="comment">// feed all T0&#39;s</span></div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> <span class="comment">// first init T0&#39;s, T0&#39;s are stored as (forward T0, backward T0, etc.)</span></div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1].resize(histoNo.size());</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1].size(); j++) {</div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] = -1.0;</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> }</div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> </div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> <span class="comment">// fill in the T0&#39;s from the msr-file (if present)</span></div>
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetT0BinSize(); j++) {</div>
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAddT0Bin(i-1,j); <span class="comment">// addRunIdx starts at 0</span></div>
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> }</div>
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> </div>
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">// fill in the T0&#39;s from the data file, if not already present in the msr-file</span></div>
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;histoNo.size(); j++) {</div>
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] == -1.0) <span class="comment">// i.e. not present in the msr-file, try the data file</span></div>
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> <span class="keywordflow">if</span> (addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(histoNo[j]) &gt; 0.0) {</div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(histoNo[j]);</div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetAddT0Bin(<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j], i-1, j); <span class="comment">// keep value for the msr-file</span></div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> }</div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> }</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> </div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> <span class="comment">// fill in the T0&#39;s gaps, i.e. in case the T0&#39;s are NOT in the msr-file and NOT in the data file</span></div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;histoNo.size(); j++) {</div>
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] == -1.0) { <span class="comment">// i.e. not present in the msr-file and data file, use the estimated T0</span></div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(histoNo[j]);</div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetAddT0Bin(<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j], i-1, j); <span class="comment">// keep value for the msr-file</span></div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> </div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperT0(): **WARRNING** NO t0&#39;s found, neither in the run data nor in the msr-file!&quot;</span>;</div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; run: &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetRunName(i)-&gt;Data();</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; will try the estimated one: forward t0 = &quot;</span> &lt;&lt; addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(histoNo[j]);</div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO WARRANTY THAT THIS OK!! For instance for LEM this is almost for sure rubbish!&quot;</span>;</div>
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> }</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> }</div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> </div>
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> <span class="comment">// check if t0 is within proper bounds</span></div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetForwardHistoNoSize(); j++) {</div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> <span class="keywordflow">if</span> ((<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] &lt; 0) || (<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] &gt; <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[j])-&gt;size()))) {</div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperT0(): **ERROR** addt0 data bin (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] &lt;&lt; <span class="stringliteral">&quot;) doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span> }</div>
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> }</div>
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> }</div>
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span> }</div>
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> </div>
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span>}</div>
</div>
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span> </div>
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span><span class="comment">// GetProperDataRange (private)</span></div>
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01362" data-start="{" data-end="}">
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#ad2f3a3cbc00f42870a695a6012f4aaeb"> 1362</a></span>Bool_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#ad2f3a3cbc00f42870a695a6012f4aaeb">PRunSingleHistoRRF::GetProperDataRange</a>()</div>
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span>{</div>
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span> <span class="comment">// get start/end data</span></div>
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span> Int_t start;</div>
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> Int_t end;</div>
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span> start = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(0);</div>
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span> end = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(1);</div>
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span> </div>
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">// check if data range has been given in the RUN block, if not try to get it from the GLOBAL block</span></div>
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span> <span class="keywordflow">if</span> (start &lt; 0) {</div>
<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span> start = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetDataRange(0);</div>
<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"> 1373</span> }</div>
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span> <span class="keywordflow">if</span> (end &lt; 0) {</div>
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span> end = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetDataRange(1);</div>
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span> }</div>
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span> </div>
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span> <span class="comment">// check if data range has been provided, and if not try to estimate them</span></div>
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span> <span class="keywordflow">if</span> (start &lt; 0) {</div>
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span> Int_t offset = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(10.0e-3/<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>);</div>
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span> start = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0])+offset;</div>
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetDataRange(start, 0);</div>
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperDataRange(): **WARNING** data range was not provided, will try data range start = t0+&quot;</span> &lt;&lt; offset &lt;&lt; <span class="stringliteral">&quot;(=10ns) = &quot;</span> &lt;&lt; start &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div>
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO WARRANTY THAT THIS DOES MAKE ANY SENSE.&quot;</span>;</div>
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span> }</div>
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span> <span class="keywordflow">if</span> (end &lt; 0) {</div>
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span> end = <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size();</div>
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetDataRange(end, 1);</div>
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperDataRange(): **WARNING** data range was not provided, will try data range end = &quot;</span> &lt;&lt; end &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div>
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO WARRANTY THAT THIS DOES MAKE ANY SENSE.&quot;</span>;</div>
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span> }</div>
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> </div>
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">// check if start and end make any sense</span></div>
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> <span class="comment">// 1st check if start and end are in proper order</span></div>
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span> <span class="keywordflow">if</span> (end &lt; start) { <span class="comment">// need to swap them</span></div>
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span> Int_t keep = end;</div>
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> end = start;</div>
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> start = keep;</div>
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span> }</div>
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> <span class="comment">// 2nd check if start is within proper bounds</span></div>
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> <span class="keywordflow">if</span> ((start &lt; 0) || (start &gt; <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size()))) {</div>
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperDataRange(): **ERROR** start data bin (&quot;</span> &lt;&lt; start &lt;&lt; <span class="stringliteral">&quot;) doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> }</div>
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">// 3rd check if end is within proper bounds</span></div>
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> <span class="keywordflow">if</span> (end &lt; 0) {</div>
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperDataRange(): **ERROR** end data bin (&quot;</span> &lt;&lt; end &lt;&lt; <span class="stringliteral">&quot;) doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span> }</div>
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span> <span class="keywordflow">if</span> (end &gt; <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size())) {</div>
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperDataRange(): **WARNING** end data bin (&quot;</span> &lt;&lt; end &lt;&lt; <span class="stringliteral">&quot;) &gt; histo length (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size() &lt;&lt; <span class="stringliteral">&quot;).&quot;</span>;</div>
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; Will set end = (histo length - 1). Consider to change it in the msr-file.&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span> end = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size()-1);</div>
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span> }</div>
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span> </div>
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span> <span class="comment">// keep good bins for potential later use</span></div>
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] = start;</div>
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] = end;</div>
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span> </div>
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span> <span class="comment">// make sure that fGoodBins are in proper range for fForward</span></div>
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] &lt; 0)</div>
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]=0;</div>
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] &gt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size()) {</div>
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHisto::GetProperDataRange **WARNING** needed to shift forward lgb,&quot;</span>;</div>
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; from &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] &lt;&lt; <span class="stringliteral">&quot; to &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size()-1 &lt;&lt; std::endl;</div>
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size()-1;</div>
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span> }</div>
<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span> </div>
<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span>}</div>
</div>
<div class="line"><a id="l01436" name="l01436"></a><span class="lineno"> 1436</span> </div>
<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span><span class="comment">// GetProperFitRange (private)</span></div>
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01481" data-start="{" data-end="}">
<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a8190e9405a89a9121ad67d3940c75f3d"> 1481</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunSingleHistoRRF.html#a8190e9405a89a9121ad67d3940c75f3d">PRunSingleHistoRRF::GetProperFitRange</a>(<a class="code hl_class" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock)</div>
<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span>{</div>
<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span> <span class="comment">// set fit start/end time; first check RUN Block</span></div>
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetFitRange(0);</div>
<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetFitRange(1);</div>
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> <span class="comment">// if fit range is given in bins (and not time), the fit start/end time can be calculated at this point now</span></div>
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;IsFitRangeInBin()) {</div>
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] + <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetFitRangeOffset(0) - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>; <span class="comment">// (fgb+n0-t0)*dt</span></div>
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] - <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetFitRangeOffset(1) - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>; <span class="comment">// (lgb-n1-t0)*dt</span></div>
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> <span class="comment">// write these times back into the data structure. This way it is available when writting the log-file</span></div>
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetFitRange(<a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a>, 0);</div>
<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetFitRange(<a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a>, 1);</div>
<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span> }</div>
<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> == <a class="code hl_define" href="PMusr_8h.html#a5357075a43f071649455751fedd2bdf5">PMUSR_UNDEFINED</a>) { <span class="comment">// fit start/end NOT found in the RUN block, check GLOBAL block</span></div>
<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"> 1495</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#a48a649bdcb8aa7c2a27e026a1ec391f6">GetFitRange</a>(0);</div>
<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"> 1496</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#a48a649bdcb8aa7c2a27e026a1ec391f6">GetFitRange</a>(1);</div>
<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span> <span class="comment">// if fit range is given in bins (and not time), the fit start/end time can be calculated at this point now</span></div>
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> <span class="keywordflow">if</span> (globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#a8734b76a827a89242458c50636280e00">IsFitRangeInBin</a>()) {</div>
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] + globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#af094c50d81932b8a76255628bdd89b1c">GetFitRangeOffset</a>(0) - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>; <span class="comment">// (fgb+n0-t0)*dt</span></div>
<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"> 1500</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] - globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#af094c50d81932b8a76255628bdd89b1c">GetFitRangeOffset</a>(1) - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>; <span class="comment">// (lgb-n1-t0)*dt</span></div>
<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"> 1501</span> <span class="comment">// write these times back into the data structure. This way it is available when writting the log-file</span></div>
<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"> 1502</span> globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#a23ab4193c35453a46106df857a82474b">SetFitRange</a>(<a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a>, 0);</div>
<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span> globalBlock-&gt;<a class="code hl_function" href="classPMsrGlobalBlock.html#a23ab4193c35453a46106df857a82474b">SetFitRange</a>(<a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a>, 1);</div>
<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span> }</div>
<div class="line"><a id="l01505" name="l01505"></a><span class="lineno"> 1505</span> }</div>
<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"> 1506</span> <span class="keywordflow">if</span> ((<a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> == <a class="code hl_define" href="PMusr_8h.html#a5357075a43f071649455751fedd2bdf5">PMUSR_UNDEFINED</a>) || (<a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> == <a class="code hl_define" href="PMusr_8h.html#a5357075a43f071649455751fedd2bdf5">PMUSR_UNDEFINED</a>)) {</div>
<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"> 1507</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0] - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>; <span class="comment">// (fgb-t0)*dt</span></div>
<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1] - <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>; <span class="comment">// (lgb-t0)*dt</span></div>
<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::GetProperFitRange(): **WARNING** Couldn&#39;t get fit start/end time!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; Will set it to fgb/lgb which given in time is: &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> &lt;&lt; <span class="stringliteral">&quot;...&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> &lt;&lt; <span class="stringliteral">&quot; (usec)&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"> 1511</span> }</div>
<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span>}</div>
</div>
<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span> </div>
<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span><span class="comment">// GetMainFrequency (private)</span></div>
<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01554" data-start="{" data-end="}">
<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a2a095182422c0b8903d4533d5df9eed9"> 1554</a></span>Double_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a2a095182422c0b8903d4533d5df9eed9">PRunSingleHistoRRF::GetMainFrequency</a>(<a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> &amp;data)</div>
<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</span>{</div>
<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span> Double_t freqMax = 0.0;</div>
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span> </div>
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span> <span class="comment">// create histo</span></div>
<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</span> Double_t startTime = (<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]-<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]) * <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>;</div>
<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"> 1560</span> Int_t noOfBins = <a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]+1;</div>
<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span> std::unique_ptr&lt;TH1F&gt; histo = std::make_unique&lt;TH1F&gt;(<span class="stringliteral">&quot;data&quot;</span>, <span class="stringliteral">&quot;data&quot;</span>, noOfBins, startTime-<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>/2.0, startTime+<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>/2.0+noOfBins*<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>);</div>
<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"> 1562</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]; i&lt;=<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</span> histo-&gt;SetBinContent(i-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">fGoodBins</a>[0]+1, data[i]);</div>
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span> }</div>
<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"> 1565</span> </div>
<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span> <span class="comment">// Fourier transform</span></div>
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span> std::unique_ptr&lt;PFourier&gt; ft = std::make_unique&lt;PFourier&gt;(histo.get(), <a class="code hl_define" href="PMusr_8h.html#a32b38859b7d7cd6d73f22b8baab83e68">FOURIER_UNIT_FREQ</a>);</div>
<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</span> ft-&gt;Transform(<a class="code hl_define" href="PFourier_8h.html#a1b87bd9f20b5c62e7e4bbd995dc43a4c">F_APODIZATION_STRONG</a>);</div>
<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"> 1569</span> </div>
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> <span class="comment">// find frequency maximum</span></div>
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span> TH1F *power = ft-&gt;GetPowerFourier();</div>
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span> Double_t maxFreqVal = 0.0;</div>
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span> <span class="keywordflow">for</span> (Int_t i=1; i&lt;power-&gt;GetNbinsX(); i++) {</div>
<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span> <span class="comment">// ignore dc part at 0 frequency</span></div>
<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"> 1575</span> <span class="keywordflow">if</span> (i&lt;power-&gt;GetNbinsX()-1) {</div>
<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span> <span class="keywordflow">if</span> (power-&gt;GetBinContent(i)&gt;power-&gt;GetBinContent(i+1))</div>
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span> }</div>
<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span> <span class="comment">// ignore everything below 10 MHz</span></div>
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span> <span class="keywordflow">if</span> (power-&gt;GetBinCenter(i) &lt; 10.0)</div>
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span> <span class="comment">// check for maximum</span></div>
<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span> <span class="keywordflow">if</span> (power-&gt;GetBinContent(i) &gt; maxFreqVal) {</div>
<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span> maxFreqVal = power-&gt;GetBinContent(i);</div>
<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"> 1585</span> freqMax = power-&gt;GetBinCenter(i);</div>
<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</span> }</div>
<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"> 1587</span> }</div>
<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"> 1588</span> </div>
<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"> 1589</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"> 1590</span> <span class="keywordflow">if</span> (power)</div>
<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"> 1591</span> <span class="keyword">delete</span> power;</div>
<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span> </div>
<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"> 1593</span> <span class="keywordflow">return</span> freqMax;</div>
<div class="line"><a id="l01594" name="l01594"></a><span class="lineno"> 1594</span>}</div>
</div>
<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"> 1595</span> </div>
<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"> 1596</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01597" name="l01597"></a><span class="lineno"> 1597</span><span class="comment">// EstimateN0 (private)</span></div>
<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01645" data-start="{" data-end="}">
<div class="line"><a id="l01645" name="l01645"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a3b473fe7da2670dd7381c729dea86244"> 1645</a></span>Double_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a3b473fe7da2670dd7381c729dea86244">PRunSingleHistoRRF::EstimateN0</a>(Double_t &amp;errN0, Double_t freqMax)</div>
<div class="line"><a id="l01646" name="l01646"></a><span class="lineno"> 1646</span>{</div>
<div class="line"><a id="l01647" name="l01647"></a><span class="lineno"> 1647</span> <span class="comment">// endBin is estimated such that the number of full cycles (according to the maximum frequency of the data)</span></div>
<div class="line"><a id="l01648" name="l01648"></a><span class="lineno"> 1648</span> <span class="comment">// is approximately the time fN0EstimateEndTime.</span></div>
<div class="line"><a id="l01649" name="l01649"></a><span class="lineno"> 1649</span> Int_t endBin = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(round(ceil(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab5ace5bf93deb2df89c121063666f1c4">fN0EstimateEndTime</a>*freqMax/TMath::TwoPi()) * (TMath::TwoPi()/freqMax) / <a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>));</div>
<div class="line"><a id="l01650" name="l01650"></a><span class="lineno"> 1650</span> </div>
<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"> 1651</span> Double_t n0 = 0.0;</div>
<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"> 1652</span> Double_t wN = 0.0;</div>
<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"> 1653</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;endBin; i++) {</div>
<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"> 1654</span><span class="comment">// n0 += fW[i]*fM[i];</span></div>
<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span> n0 += <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a9188ea8e610cc22798280636c8b53beb">fM</a>[i];</div>
<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"> 1656</span> wN += <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ad831240ac6214d41dee3d20f303b2b49">fW</a>[i];</div>
<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"> 1657</span> }</div>
<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span><span class="comment">// n0 /= wN;</span></div>
<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span> n0 /= endBin;</div>
<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span> </div>
<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span> errN0 = 0.0;</div>
<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"> 1662</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;endBin; i++) {</div>
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span> errN0 += <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ad831240ac6214d41dee3d20f303b2b49">fW</a>[i]*<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ad831240ac6214d41dee3d20f303b2b49">fW</a>[i]*<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">fMerr</a>[i]*<a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">fMerr</a>[i];</div>
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span> }</div>
<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span> errN0 = sqrt(errN0)/wN;</div>
<div class="line"><a id="l01666" name="l01666"></a><span class="lineno"> 1666</span> </div>
<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span> std::cout &lt;&lt; <span class="stringliteral">&quot;info&gt; PRunSingleHistoRRF::EstimateN0(): N0=&quot;</span> &lt;&lt; n0 &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; errN0 &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span> </div>
<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span> <span class="keywordflow">return</span> n0;</div>
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span>}</div>
</div>
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span> </div>
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span><span class="comment">// EstimatBkg (private)</span></div>
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01718" data-start="{" data-end="}">
<div class="line"><a id="l01718" name="l01718"></a><span class="lineno"><a class="line" href="classPRunSingleHistoRRF.html#a9b73cc476c39a5781f577a86c870f4aa"> 1718</a></span>Bool_t <a class="code hl_function" href="classPRunSingleHistoRRF.html#a9b73cc476c39a5781f577a86c870f4aa">PRunSingleHistoRRF::EstimateBkg</a>(UInt_t histoNo)</div>
<div class="line"><a id="l01719" name="l01719"></a><span class="lineno"> 1719</span>{</div>
<div class="line"><a id="l01720" name="l01720"></a><span class="lineno"> 1720</span> Double_t beamPeriod = 0.0;</div>
<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span> </div>
<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"> 1722</span> <span class="comment">// check if data are from PSI, RAL, or TRIUMF</span></div>
<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"> 1723</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetInstitute()-&gt;Contains(<span class="stringliteral">&quot;psi&quot;</span>))</div>
<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</span> beamPeriod = <a class="code hl_define" href="PMusr_8h.html#acbf6e0bace9638d4b7182c0ea78a76aa">ACCEL_PERIOD_PSI</a>;</div>
<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"> 1725</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetInstitute()-&gt;Contains(<span class="stringliteral">&quot;ral&quot;</span>))</div>
<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"> 1726</span> beamPeriod = <a class="code hl_define" href="PMusr_8h.html#af100c5520356cd7487587f0c9c2286df">ACCEL_PERIOD_RAL</a>;</div>
<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"> 1727</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetInstitute()-&gt;Contains(<span class="stringliteral">&quot;triumf&quot;</span>))</div>
<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"> 1728</span> beamPeriod = <a class="code hl_define" href="PMusr_8h.html#a289dd448598859518bc73c87233af6a1">ACCEL_PERIOD_TRIUMF</a>;</div>
<div class="line"><a id="l01729" name="l01729"></a><span class="lineno"> 1729</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"> 1730</span> beamPeriod = 0.0;</div>
<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"> 1731</span> </div>
<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</span> <span class="comment">// check if start and end are in proper order</span></div>
<div class="line"><a id="l01733" name="l01733"></a><span class="lineno"> 1733</span> UInt_t start = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(0);</div>
<div class="line"><a id="l01734" name="l01734"></a><span class="lineno"> 1734</span> UInt_t end = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(1);</div>
<div class="line"><a id="l01735" name="l01735"></a><span class="lineno"> 1735</span> <span class="keywordflow">if</span> (end &lt; start) {</div>
<div class="line"><a id="l01736" name="l01736"></a><span class="lineno"> 1736</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;PRunSingleHistoRRF::EstimatBkg(): end = &quot;</span> &lt;&lt; end &lt;&lt; <span class="stringliteral">&quot; &gt; start = &quot;</span> &lt;&lt; start &lt;&lt; <span class="stringliteral">&quot;! Will swap them!&quot;</span>;</div>
<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span> UInt_t keep = end;</div>
<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"> 1738</span> end = start;</div>
<div class="line"><a id="l01739" name="l01739"></a><span class="lineno"> 1739</span> start = keep;</div>
<div class="line"><a id="l01740" name="l01740"></a><span class="lineno"> 1740</span> }</div>
<div class="line"><a id="l01741" name="l01741"></a><span class="lineno"> 1741</span> </div>
<div class="line"><a id="l01742" name="l01742"></a><span class="lineno"> 1742</span> <span class="comment">// calculate proper background range</span></div>
<div class="line"><a id="l01743" name="l01743"></a><span class="lineno"> 1743</span> <span class="keywordflow">if</span> (beamPeriod != 0.0) {</div>
<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"> 1744</span> Double_t timeBkg = <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end-start)*<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>; <span class="comment">// length of the background intervall in time</span></div>
<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span> UInt_t fullCycles = <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(timeBkg/beamPeriod); <span class="comment">// how many proton beam cylces can be placed within the proposed background intervall</span></div>
<div class="line"><a id="l01746" name="l01746"></a><span class="lineno"> 1746</span> <span class="comment">// correct the end of the background intervall such that the background is as close as possible to a multiple of the proton cylce</span></div>
<div class="line"><a id="l01747" name="l01747"></a><span class="lineno"> 1747</span> end = start + <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>((fullCycles*beamPeriod)/<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>);</div>
<div class="line"><a id="l01748" name="l01748"></a><span class="lineno"> 1748</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;PRunSingleHistoRRF::EstimatBkg(): Background &quot;</span> &lt;&lt; start &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; end;</div>
<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"> 1749</span> <span class="keywordflow">if</span> (end == start)</div>
<div class="line"><a id="l01750" name="l01750"></a><span class="lineno"> 1750</span> end = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(1);</div>
<div class="line"><a id="l01751" name="l01751"></a><span class="lineno"> 1751</span> }</div>
<div class="line"><a id="l01752" name="l01752"></a><span class="lineno"> 1752</span> </div>
<div class="line"><a id="l01753" name="l01753"></a><span class="lineno"> 1753</span> <span class="comment">// check if start is within histogram bounds</span></div>
<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"> 1754</span> <span class="keywordflow">if</span> (start &gt;= <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size()) {</div>
<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"> 1755</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::EstimatBkg(): **ERROR** background bin values out of bound!&quot;</span>;</div>
<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; histo lengths = &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size();</div>
<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; background start = &quot;</span> &lt;&lt; start;</div>
<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span> }</div>
<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"> 1761</span> </div>
<div class="line"><a id="l01762" name="l01762"></a><span class="lineno"> 1762</span> <span class="comment">// check if end is within histogram bounds</span></div>
<div class="line"><a id="l01763" name="l01763"></a><span class="lineno"> 1763</span> <span class="keywordflow">if</span> (end &gt;= <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size()) {</div>
<div class="line"><a id="l01764" name="l01764"></a><span class="lineno"> 1764</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHistoRRF::EstimatBkg(): **ERROR** background bin values out of bound!&quot;</span>;</div>
<div class="line"><a id="l01765" name="l01765"></a><span class="lineno"> 1765</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; histo lengths = &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>.size();</div>
<div class="line"><a id="l01766" name="l01766"></a><span class="lineno"> 1766</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; background end = &quot;</span> &lt;&lt; end;</div>
<div class="line"><a id="l01767" name="l01767"></a><span class="lineno"> 1767</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01768" name="l01768"></a><span class="lineno"> 1768</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01769" name="l01769"></a><span class="lineno"> 1769</span> }</div>
<div class="line"><a id="l01770" name="l01770"></a><span class="lineno"> 1770</span> </div>
<div class="line"><a id="l01771" name="l01771"></a><span class="lineno"> 1771</span> <span class="comment">// calculate background</span></div>
<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"> 1772</span> Double_t bkg = 0.0;</div>
<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span> </div>
<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"> 1774</span> <span class="comment">// forward</span></div>
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"> 1775</span> <span class="keywordflow">for</span> (UInt_t i=start; i&lt;end; i++)</div>
<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"> 1776</span> bkg += <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i];</div>
<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"> 1777</span> bkg /= <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end - start + 1);</div>
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span> </div>
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a> = bkg; <span class="comment">// keep background (per bin)</span></div>
<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span> </div>
<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span> bkg = 0.0;</div>
<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span> <span class="keywordflow">for</span> (UInt_t i=start; i&lt;end; i++)</div>
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"> 1783</span> bkg += pow(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">fForward</a>[i]-<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a>, 2.0);</div>
<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span> <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab715692e9f766a461a258d98707f1a94">fBkgErr</a> = sqrt(bkg/(<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end - start)));</div>
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span> </div>
<div class="line"><a id="l01786" name="l01786"></a><span class="lineno"> 1786</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;info&gt; fBackground=&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a> &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunSingleHistoRRF.html#ab715692e9f766a461a258d98707f1a94">fBkgErr</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l01787" name="l01787"></a><span class="lineno"> 1787</span> </div>
<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetBkgEstimated(<a class="code hl_variable" href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">fBackground</a>, 0);</div>
<div class="line"><a id="l01789" name="l01789"></a><span class="lineno"> 1789</span> </div>
<div class="line"><a id="l01790" name="l01790"></a><span class="lineno"> 1790</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"> 1791</span>}</div>
</div>
<div class="ttc" id="aPFourier_8h_html"><div class="ttname"><a href="PFourier_8h.html">PFourier.h</a></div></div>
<div class="ttc" id="aPFourier_8h_html_a1b87bd9f20b5c62e7e4bbd995dc43a4c"><div class="ttname"><a href="PFourier_8h.html#a1b87bd9f20b5c62e7e4bbd995dc43a4c">F_APODIZATION_STRONG</a></div><div class="ttdeci">#define F_APODIZATION_STRONG</div><div class="ttdoc">Strong apodization (heavy roll-off for best frequency resolution)</div><div class="ttdef"><b>Definition</b> <a href="PFourier_8h_source.html#l00059">PFourier.h:59</a></div></div>
<div class="ttc" id="aPMusr_8h_html"><div class="ttname"><a href="PMusr_8h.html">PMusr.h</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a01eec7e896afb5c4601dea91ee31477b"><div class="ttname"><a href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a></div><div class="ttdeci">std::vector&lt; UInt_t &gt; PUIntVector</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00361">PMusr.h:361</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a289dd448598859518bc73c87233af6a1"><div class="ttname"><a href="PMusr_8h.html#a289dd448598859518bc73c87233af6a1">ACCEL_PERIOD_TRIUMF</a></div><div class="ttdeci">#define ACCEL_PERIOD_TRIUMF</div><div class="ttdoc">TRIUMF accelerator cycle: 43.37 ns.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00151">PMusr.h:151</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a3168a2cda2474c28fe329358530331ab"><div class="ttname"><a href="PMusr_8h.html#a3168a2cda2474c28fe329358530331ab">EPMusrHandleTag</a></div><div class="ttdeci">EPMusrHandleTag</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00413">PMusr.h:413</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a3168a2cda2474c28fe329358530331aba6d36a468d5cc6244a9c4b150e0b107a7"><div class="ttname"><a href="PMusr_8h.html#a3168a2cda2474c28fe329358530331aba6d36a468d5cc6244a9c4b150e0b107a7">kFit</a></div><div class="ttdeci">@ kFit</div><div class="ttdoc">Fitting mode - perform least-squares fit to data.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00415">PMusr.h:415</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a3168a2cda2474c28fe329358530331abaa9d4431e390709c09f825d8afbf32289"><div class="ttname"><a href="PMusr_8h.html#a3168a2cda2474c28fe329358530331abaa9d4431e390709c09f825d8afbf32289">kView</a></div><div class="ttdeci">@ kView</div><div class="ttdoc">Viewing mode - display data and theory without fitting.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00416">PMusr.h:416</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a32b38859b7d7cd6d73f22b8baab83e68"><div class="ttname"><a href="PMusr_8h.html#a32b38859b7d7cd6d73f22b8baab83e68">FOURIER_UNIT_FREQ</a></div><div class="ttdeci">#define FOURIER_UNIT_FREQ</div><div class="ttdoc">Frequency in MHz.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00276">PMusr.h:276</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a5357075a43f071649455751fedd2bdf5"><div class="ttname"><a href="PMusr_8h.html#a5357075a43f071649455751fedd2bdf5">PMUSR_UNDEFINED</a></div><div class="ttdeci">#define PMUSR_UNDEFINED</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00172">PMusr.h:172</a></div></div>
<div class="ttc" id="aPMusr_8h_html_a572a4ff40a2185e40b2b009c95bac7cf"><div class="ttname"><a href="PMusr_8h.html#a572a4ff40a2185e40b2b009c95bac7cf">PMUON_LIFETIME</a></div><div class="ttdeci">#define PMUON_LIFETIME</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00119">PMusr.h:119</a></div></div>
<div class="ttc" id="aPMusr_8h_html_ab08a4f791c8d0001ed434bae845fe95c"><div class="ttname"><a href="PMusr_8h.html#ab08a4f791c8d0001ed434bae845fe95c">PMsrParamList</a></div><div class="ttdeci">std::vector&lt; PMsrParamStructure &gt; PMsrParamList</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01015">PMusr.h:1015</a></div></div>
<div class="ttc" id="aPMusr_8h_html_acbf6e0bace9638d4b7182c0ea78a76aa"><div class="ttname"><a href="PMusr_8h.html#acbf6e0bace9638d4b7182c0ea78a76aa">ACCEL_PERIOD_PSI</a></div><div class="ttdeci">#define ACCEL_PERIOD_PSI</div><div class="ttdoc">PSI (Paul Scherrer Institute) accelerator cycle: 19.75 ns.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00149">PMusr.h:149</a></div></div>
<div class="ttc" id="aPMusr_8h_html_ae689e7a4bf8a9c0ecf65bcd7d4a0ebde"><div class="ttname"><a href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a></div><div class="ttdeci">std::vector&lt; Double_t &gt; PDoubleVector</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00385">PMusr.h:385</a></div></div>
<div class="ttc" id="aPMusr_8h_html_af100c5520356cd7487587f0c9c2286df"><div class="ttname"><a href="PMusr_8h.html#af100c5520356cd7487587f0c9c2286df">ACCEL_PERIOD_RAL</a></div><div class="ttdeci">#define ACCEL_PERIOD_RAL</div><div class="ttdoc">RAL (Rutherford Appleton Lab) - pulsed beam.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00153">PMusr.h:153</a></div></div>
<div class="ttc" id="aPRunSingleHistoRRF_8h_html"><div class="ttname"><a href="PRunSingleHistoRRF_8h.html">PRunSingleHistoRRF.h</a></div></div>
<div class="ttc" id="aPStartupHandler_8cpp_html_a81551ff222b7f215c821232131fe1626"><div class="ttname"><a href="PStartupHandler_8cpp.html#a81551ff222b7f215c821232131fe1626">if</a></div><div class="ttdeci">if(xmlFile.is_open())</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8cpp_source.html#l00091">PStartupHandler.cpp:91</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html"><div class="ttname"><a href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a></div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01030">PMusr.h:1030</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_a1597f73baddfa9785f75ad2d841b6aa9"><div class="ttname"><a href="classPMsrGlobalBlock.html#a1597f73baddfa9785f75ad2d841b6aa9">PMsrGlobalBlock::IsPresent</a></div><div class="ttdeci">virtual Bool_t IsPresent()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01035">PMusr.h:1035</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_a23ab4193c35453a46106df857a82474b"><div class="ttname"><a href="classPMsrGlobalBlock.html#a23ab4193c35453a46106df857a82474b">PMsrGlobalBlock::SetFitRange</a></div><div class="ttdeci">virtual void SetFitRange(Double_t dval, UInt_t idx)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8cpp_source.html#l01121">PMusr.cpp:1121</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_a48a649bdcb8aa7c2a27e026a1ec391f6"><div class="ttname"><a href="classPMsrGlobalBlock.html#a48a649bdcb8aa7c2a27e026a1ec391f6">PMsrGlobalBlock::GetFitRange</a></div><div class="ttdeci">virtual Double_t GetFitRange(UInt_t idx)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8cpp_source.html#l01104">PMusr.cpp:1104</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_a72b1d861b00fd1630f5e53dc15cbbc26"><div class="ttname"><a href="classPMsrGlobalBlock.html#a72b1d861b00fd1630f5e53dc15cbbc26">PMsrGlobalBlock::GetT0BinSize</a></div><div class="ttdeci">virtual UInt_t GetT0BinSize()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01043">PMusr.h:1043</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_a8734b76a827a89242458c50636280e00"><div class="ttname"><a href="classPMsrGlobalBlock.html#a8734b76a827a89242458c50636280e00">PMsrGlobalBlock::IsFitRangeInBin</a></div><div class="ttdeci">virtual Bool_t IsFitRangeInBin()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01048">PMusr.h:1048</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_aa99ab5a8c16c2661e6bc186e3d78ac64"><div class="ttname"><a href="classPMsrGlobalBlock.html#aa99ab5a8c16c2661e6bc186e3d78ac64">PMsrGlobalBlock::GetRRFPacking</a></div><div class="ttdeci">virtual Int_t GetRRFPacking()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01040">PMusr.h:1040</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_abada7c4677106d4abf547d2e4a1af09e"><div class="ttname"><a href="classPMsrGlobalBlock.html#abada7c4677106d4abf547d2e4a1af09e">PMsrGlobalBlock::GetRRFUnit</a></div><div class="ttdeci">virtual TString GetRRFUnit()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8cpp_source.html#l00887">PMusr.cpp:887</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_af094c50d81932b8a76255628bdd89b1c"><div class="ttname"><a href="classPMsrGlobalBlock.html#af094c50d81932b8a76255628bdd89b1c">PMsrGlobalBlock::GetFitRangeOffset</a></div><div class="ttdeci">virtual Int_t GetFitRangeOffset(UInt_t idx)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8cpp_source.html#l01141">PMusr.cpp:1141</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_af65258b5b4b5b516731c4addf9215021"><div class="ttname"><a href="classPMsrGlobalBlock.html#af65258b5b4b5b516731c4addf9215021">PMsrGlobalBlock::GetT0Bin</a></div><div class="ttdeci">virtual Double_t GetT0Bin(UInt_t idx=0)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8cpp_source.html#l00988">PMusr.cpp:988</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_afca59c06d5b563dc6379094c79addac4"><div class="ttname"><a href="classPMsrGlobalBlock.html#afca59c06d5b563dc6379094c79addac4">PMsrGlobalBlock::GetRRFPhase</a></div><div class="ttdeci">virtual Double_t GetRRFPhase()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l01039">PMusr.h:1039</a></div></div>
<div class="ttc" id="aclassPMsrGlobalBlock_html_afef14551c982f5898c9c7f2d555fc6cd"><div class="ttname"><a href="classPMsrGlobalBlock.html#afef14551c982f5898c9c7f2d555fc6cd">PMsrGlobalBlock::GetRRFFreq</a></div><div class="ttdeci">virtual Double_t GetRRFFreq(const char *unit)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8cpp_source.html#l00815">PMusr.cpp:815</a></div></div>
<div class="ttc" id="aclassPMsrHandler_html"><div class="ttname"><a href="classPMsrHandler.html">PMsrHandler</a></div><div class="ttdoc">MSR file parser and manager for the musrfit framework.</div><div class="ttdef"><b>Definition</b> <a href="PMsrHandler_8h_source.html#l00115">PMsrHandler.h:116</a></div></div>
<div class="ttc" id="aclassPMsrHandler_html_a34ec651b059b2bde5808e07c3d033e74"><div class="ttname"><a href="classPMsrHandler.html#a34ec651b059b2bde5808e07c3d033e74">PMsrHandler::GetMsrGlobal</a></div><div class="ttdeci">virtual PMsrGlobalBlock * GetMsrGlobal()</div><div class="ttdoc">Returns pointer to GLOBAL block settings.</div><div class="ttdef"><b>Definition</b> <a href="PMsrHandler_8h_source.html#l00181">PMsrHandler.h:181</a></div></div>
<div class="ttc" id="aclassPRawRunData_html"><div class="ttname"><a href="classPRawRunData.html">PRawRunData</a></div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00825">PMusr.h:825</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_a3156b125b9e2c6b2e643f479ccda500b"><div class="ttname"><a href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">PRawRunData::GetDataBin</a></div><div class="ttdeci">virtual const PDoubleVector * GetDataBin(const UInt_t histoNo)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00877">PMusr.h:877</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_a33181b5d9eb4cc9b78eb1eaa4b3a19c5"><div class="ttname"><a href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">PRawRunData::GetT0Bin</a></div><div class="ttdeci">virtual const Double_t GetT0Bin(const UInt_t histoNo)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00870">PMusr.h:870</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_a36017a95d0f34ff2ec2c17beeb5886f5"><div class="ttname"><a href="classPRawRunData.html#a36017a95d0f34ff2ec2c17beeb5886f5">PRawRunData::GetTimeResolution</a></div><div class="ttdeci">virtual const Double_t GetTimeResolution()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00868">PMusr.h:868</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_a76d09e675fb730a765809de705e40428"><div class="ttname"><a href="classPRawRunData.html#a76d09e675fb730a765809de705e40428">PRawRunData::IsPresent</a></div><div class="ttdeci">virtual const Bool_t IsPresent(UInt_t histoNo)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00869">PMusr.h:869</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_a82dc4ab15ee7fba75b9f8f23f2f28d47"><div class="ttname"><a href="classPRawRunData.html#a82dc4ab15ee7fba75b9f8f23f2f28d47">PRawRunData::GetNoOfTemperatures</a></div><div class="ttdeci">virtual const UInt_t GetNoOfTemperatures()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00860">PMusr.h:860</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_ab1cab688e4df99844efed36d7660ae50"><div class="ttname"><a href="classPRawRunData.html#ab1cab688e4df99844efed36d7660ae50">PRawRunData::GetField</a></div><div class="ttdeci">virtual const Double_t GetField()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00859">PMusr.h:859</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_ab2727ab18ff3f554690433f27154f271"><div class="ttname"><a href="classPRawRunData.html#ab2727ab18ff3f554690433f27154f271">PRawRunData::GetEnergy</a></div><div class="ttdeci">virtual const Double_t GetEnergy()</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00864">PMusr.h:864</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_addd228be02d78cd6170cb224975fed25"><div class="ttname"><a href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">PRawRunData::GetT0BinEstimated</a></div><div class="ttdeci">virtual const Double_t GetT0BinEstimated(const UInt_t histoNo)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00871">PMusr.h:871</a></div></div>
<div class="ttc" id="aclassPRawRunData_html_ae0ff86dd2ca17589777bb65781eca4f7"><div class="ttname"><a href="classPRawRunData.html#ae0ff86dd2ca17589777bb65781eca4f7">PRawRunData::GetTemperature</a></div><div class="ttdeci">virtual const PDoublePairVector * GetTemperature() const</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00861">PMusr.h:861</a></div></div>
<div class="ttc" id="aclassPRunBase_html_a0ec9b72abc7a54f1e0f4c12d45bb0357"><div class="ttname"><a href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">PRunBase::fTimeResolution</a></div><div class="ttdeci">Double_t fTimeResolution</div><div class="ttdoc">Time resolution of raw histogram data in microseconds (μs), e.g., 0.01953125 μs for PSI GPS.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00276">PRunBase.h:276</a></div></div>
<div class="ttc" id="aclassPRunBase_html_a12aa647fe8c42bff6712a1b065d40e9d"><div class="ttname"><a href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">PRunBase::fValid</a></div><div class="ttdeci">Bool_t fValid</div><div class="ttdoc">Flag indicating if run object initialized successfully; false if any error occurred.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00266">PRunBase.h:266</a></div></div>
<div class="ttc" id="aclassPRunBase_html_a4736fa656bba18cc5b61a1273ac839d4"><div class="ttname"><a href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">PRunBase::fFitEndTime</a></div><div class="ttdeci">Double_t fFitEndTime</div><div class="ttdoc">Fit range end time in microseconds (μs) relative to t0.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00282">PRunBase.h:282</a></div></div>
<div class="ttc" id="aclassPRunBase_html_a4756c8b6e7d3764587f57bc62f48f719"><div class="ttname"><a href="classPRunBase.html#a4756c8b6e7d3764587f57bc62f48f719">PRunBase::fFuncValues</a></div><div class="ttdeci">PDoubleVector fFuncValues</div><div class="ttdoc">Cached values of user-defined functions from FUNCTIONS block, evaluated at current parameters.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00284">PRunBase.h:284</a></div></div>
<div class="ttc" id="aclassPRunBase_html_a6deb4b8c63d7754ab2222659e2920631"><div class="ttname"><a href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">PRunBase::fMsrInfo</a></div><div class="ttdeci">PMsrHandler * fMsrInfo</div><div class="ttdoc">Pointer to MSR file handler (owned externally, not deleted here)</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00271">PRunBase.h:271</a></div></div>
<div class="ttc" id="aclassPRunBase_html_a8752e8f10acb6a675a22f45881faa044"><div class="ttname"><a href="classPRunBase.html#a8752e8f10acb6a675a22f45881faa044">PRunBase::fMetaData</a></div><div class="ttdeci">PMetaData fMetaData</div><div class="ttdoc">Experimental metadata extracted from data file header (magnetic field, temperature,...</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00277">PRunBase.h:277</a></div></div>
<div class="ttc" id="aclassPRunBase_html_a96aeb9099bceb6456c90d5b03d2dc3ec"><div class="ttname"><a href="classPRunBase.html#a96aeb9099bceb6456c90d5b03d2dc3ec">PRunBase::fTheory</a></div><div class="ttdeci">std::unique_ptr&lt; PTheory &gt; fTheory</div><div class="ttdoc">Theory function evaluator (smart pointer, automatically deleted)</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00285">PRunBase.h:285</a></div></div>
<div class="ttc" id="aclassPRunBase_html_ab5f96afcdca519f9a33a9fd9a3a6c67d"><div class="ttname"><a href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">PRunBase::fAddT0s</a></div><div class="ttdeci">std::vector&lt; PDoubleVector &gt; fAddT0s</div><div class="ttdoc">Time-zero bin values for additional runs to be added to main run.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00279">PRunBase.h:279</a></div></div>
<div class="ttc" id="aclassPRunBase_html_ab6465ea668810646cd74b40a4e25ca42"><div class="ttname"><a href="classPRunBase.html#ab6465ea668810646cd74b40a4e25ca42">PRunBase::fHandleTag</a></div><div class="ttdeci">EPMusrHandleTag fHandleTag</div><div class="ttdoc">Operation mode: kFit (fitting), kView (display only), kEmpty (uninitialized)</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00268">PRunBase.h:268</a></div></div>
<div class="ttc" id="aclassPRunBase_html_ac2cb35c79fbebe631fdb565946417eed"><div class="ttname"><a href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">PRunBase::fData</a></div><div class="ttdeci">PRunData fData</div><div class="ttdoc">Processed data container: background-corrected, packed, with theory values.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00275">PRunBase.h:275</a></div></div>
<div class="ttc" id="aclassPRunBase_html_ac8852c15177607e0d4383fc2e69e8ef7"><div class="ttname"><a href="classPRunBase.html#ac8852c15177607e0d4383fc2e69e8ef7">PRunBase::fRawData</a></div><div class="ttdeci">PRunDataHandler * fRawData</div><div class="ttdoc">Pointer to raw data handler (owned externally, not deleted here)</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00273">PRunBase.h:273</a></div></div>
<div class="ttc" id="aclassPRunBase_html_ad3be9a269b89805d9e1a5ffa1a8d6ec9"><div class="ttname"><a href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">PRunBase::fT0s</a></div><div class="ttdeci">PDoubleVector fT0s</div><div class="ttdoc">Time-zero bin values for all histograms in this run (forward, backward, etc.)</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00278">PRunBase.h:278</a></div></div>
<div class="ttc" id="aclassPRunBase_html_ae5fc9bd22de779aff2bbbcbf14b90d42"><div class="ttname"><a href="classPRunBase.html#ae5fc9bd22de779aff2bbbcbf14b90d42">PRunBase::PRunBase</a></div><div class="ttdeci">PRunBase()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8cpp_source.html#l00054">PRunBase.cpp:54</a></div></div>
<div class="ttc" id="aclassPRunBase_html_aeccaae88c9db0804981e1bd3f81fc57a"><div class="ttname"><a href="classPRunBase.html#aeccaae88c9db0804981e1bd3f81fc57a">PRunBase::fRunNo</a></div><div class="ttdeci">Int_t fRunNo</div><div class="ttdoc">Run number (0-based index in MSR file RUN blocks)</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00270">PRunBase.h:270</a></div></div>
<div class="ttc" id="aclassPRunBase_html_af1a2a02da26466564461e7a34267387f"><div class="ttname"><a href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">PRunBase::fRunInfo</a></div><div class="ttdeci">PMsrRunBlock * fRunInfo</div><div class="ttdoc">Pointer to this run&#39;s RUN block settings within fMsrInfo.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00272">PRunBase.h:272</a></div></div>
<div class="ttc" id="aclassPRunBase_html_af4a626805d2fbd201472f0487474bb40"><div class="ttname"><a href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">PRunBase::fFitStartTime</a></div><div class="ttdeci">Double_t fFitStartTime</div><div class="ttdoc">Fit range start time in microseconds (μs) relative to t0.</div><div class="ttdef"><b>Definition</b> <a href="PRunBase_8h_source.html#l00281">PRunBase.h:281</a></div></div>
<div class="ttc" id="aclassPRunDataHandler_html"><div class="ttname"><a href="classPRunDataHandler.html">PRunDataHandler</a></div><div class="ttdoc">Raw data file reader and format converter for μSR data.</div><div class="ttdef"><b>Definition</b> <a href="PRunDataHandler_8h_source.html#l00188">PRunDataHandler.h:189</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a0e4d26779c4dc79cb6257b7a018c75b2"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a0e4d26779c4dc79cb6257b7a018c75b2">PRunSingleHistoRRF::fForward</a></div><div class="ttdeci">PDoubleVector fForward</div><div class="ttdoc">Forward detector histogram data (progressively transformed during preparation)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00427">PRunSingleHistoRRF.h:427</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a1d52e0a5f50cfaa01fde2131fc5bdb8d"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a1d52e0a5f50cfaa01fde2131fc5bdb8d">PRunSingleHistoRRF::fEndTimeBin</a></div><div class="ttdeci">Int_t fEndTimeBin</div><div class="ttdoc">Last bin index in fit range (exclusive: loop as i &lt; fEndTimeBin)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00425">PRunSingleHistoRRF.h:425</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a20acaae4f31c28daa5a5b2046cb861ce"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a20acaae4f31c28daa5a5b2046cb861ce">PRunSingleHistoRRF::CalcChiSquare</a></div><div class="ttdeci">virtual Double_t CalcChiSquare(const std::vector&lt; Double_t &gt; &amp;par)</div><div class="ttdoc">Calculates χ² between RRF-transformed data and theory.</div><div class="ttdef"><b>Definition</b> <a href="#l00239">PRunSingleHistoRRF.cpp:239</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a28cf424562a7f425cf832fe95ab42609"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a28cf424562a7f425cf832fe95ab42609">PRunSingleHistoRRF::fAerr</a></div><div class="ttdeci">PDoubleVector fAerr</div><div class="ttdoc">Asymmetry errors before RRF packing. Used for packed error calculation.</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00431">PRunSingleHistoRRF.h:431</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a2a095182422c0b8903d4533d5df9eed9"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a2a095182422c0b8903d4533d5df9eed9">PRunSingleHistoRRF::GetMainFrequency</a></div><div class="ttdeci">virtual Double_t GetMainFrequency(PDoubleVector &amp;data)</div><div class="ttdoc">Finds the dominant precession frequency in raw data.</div><div class="ttdef"><b>Definition</b> <a href="#l01554">PRunSingleHistoRRF.cpp:1554</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a3b403bb5ab6f2330dea34b962bd67219"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a3b403bb5ab6f2330dea34b962bd67219">PRunSingleHistoRRF::PRunSingleHistoRRF</a></div><div class="ttdeci">PRunSingleHistoRRF()</div><div class="ttdoc">Default constructor creating an empty, invalid RRF single histogram run object.</div><div class="ttdef"><b>Definition</b> <a href="#l00073">PRunSingleHistoRRF.cpp:73</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a3b473fe7da2670dd7381c729dea86244"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a3b473fe7da2670dd7381c729dea86244">PRunSingleHistoRRF::EstimateN0</a></div><div class="ttdeci">virtual Double_t EstimateN0(Double_t &amp;errN0, Double_t freqMax)</div><div class="ttdoc">Estimates initial normalization N₀ from lifetime-corrected data.</div><div class="ttdef"><b>Definition</b> <a href="#l01645">PRunSingleHistoRRF.cpp:1645</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a3d7f8f12b68f67821a2891b9432bf8d2"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a3d7f8f12b68f67821a2891b9432bf8d2">PRunSingleHistoRRF::PrepareFitData</a></div><div class="ttdeci">virtual Bool_t PrepareFitData(PRawRunData *runData, const UInt_t histoNo)</div><div class="ttdoc">Performs full RRF transformation for fitting.</div><div class="ttdef"><b>Definition</b> <a href="#l00906">PRunSingleHistoRRF.cpp:906</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a490fb222bfbedda71a452d68ac085e8c"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a490fb222bfbedda71a452d68ac085e8c">PRunSingleHistoRRF::fBackground</a></div><div class="ttdeci">Double_t fBackground</div><div class="ttdoc">Estimated or fixed background level in counts/bin (before packing)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00417">PRunSingleHistoRRF.h:417</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a54445267cc4b9a56ddc1daafa506e0bf"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a54445267cc4b9a56ddc1daafa506e0bf">PRunSingleHistoRRF::CalcChiSquareExpected</a></div><div class="ttdeci">virtual Double_t CalcChiSquareExpected(const std::vector&lt; Double_t &gt; &amp;par)</div><div class="ttdoc">Calculates expected χ² using theory variance instead of data variance.</div><div class="ttdef"><b>Definition</b> <a href="#l00306">PRunSingleHistoRRF.cpp:306</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a60d1d3e1a165effd9c2a2b4ecd29382b"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a60d1d3e1a165effd9c2a2b4ecd29382b">PRunSingleHistoRRF::~PRunSingleHistoRRF</a></div><div class="ttdeci">virtual ~PRunSingleHistoRRF()</div><div class="ttdoc">Virtual destructor releasing allocated resources.</div><div class="ttdef"><b>Definition</b> <a href="#l00193">PRunSingleHistoRRF.cpp:193</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a64b5a3e7a52fd3e5cce6e02e67325391"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a64b5a3e7a52fd3e5cce6e02e67325391">PRunSingleHistoRRF::PrepareData</a></div><div class="ttdeci">virtual Bool_t PrepareData()</div><div class="ttdoc">Main data preparation orchestrator for RRF single histogram analysis.</div><div class="ttdef"><b>Definition</b> <a href="#l00706">PRunSingleHistoRRF.cpp:706</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a7dc91a4d7f10a68d7fe7e075d5449c50"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a7dc91a4d7f10a68d7fe7e075d5449c50">PRunSingleHistoRRF::fStartTimeBin</a></div><div class="ttdeci">Int_t fStartTimeBin</div><div class="ttdoc">First bin index in fit range (inclusive, 0-based in RRF-packed data)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00424">PRunSingleHistoRRF.h:424</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a8190e9405a89a9121ad67d3940c75f3d"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a8190e9405a89a9121ad67d3940c75f3d">PRunSingleHistoRRF::GetProperFitRange</a></div><div class="ttdeci">virtual void GetProperFitRange(PMsrGlobalBlock *globalBlock)</div><div class="ttdoc">Determines fit time range from MSR file settings.</div><div class="ttdef"><b>Definition</b> <a href="#l01481">PRunSingleHistoRRF.cpp:1481</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a8ac1684d7102a6e627df9679353b1bcf"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a8ac1684d7102a6e627df9679353b1bcf">PRunSingleHistoRRF::fTheoAsData</a></div><div class="ttdeci">Bool_t fTheoAsData</div><div class="ttdoc">Theory resolution mode: true = at data points only, false = 8× finer grid for smooth Fourier transfor...</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00420">PRunSingleHistoRRF.h:420</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a8d5ea8242073e34b0186a662e1f66869"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a8d5ea8242073e34b0186a662e1f66869">PRunSingleHistoRRF::PrepareViewData</a></div><div class="ttdeci">virtual Bool_t PrepareViewData(PRawRunData *runData, const UInt_t histoNo)</div><div class="ttdoc">Prepares RRF data for viewing/plotting.</div><div class="ttdef"><b>Definition</b> <a href="#l01092">PRunSingleHistoRRF.cpp:1092</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a9188ea8e610cc22798280636c8b53beb"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a9188ea8e610cc22798280636c8b53beb">PRunSingleHistoRRF::fM</a></div><div class="ttdeci">PDoubleVector fM</div><div class="ttdoc">Lifetime-corrected histogram: M(t) = [N(t) - B] × exp(+t/τ_μ). Used for N₀ estimation.</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00428">PRunSingleHistoRRF.h:428</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_a9b73cc476c39a5781f577a86c870f4aa"><div class="ttname"><a href="classPRunSingleHistoRRF.html#a9b73cc476c39a5781f577a86c870f4aa">PRunSingleHistoRRF::EstimateBkg</a></div><div class="ttdeci">virtual Bool_t EstimateBkg(UInt_t histoNo)</div><div class="ttdoc">Estimates background from pre-t0 bins.</div><div class="ttdef"><b>Definition</b> <a href="#l01718">PRunSingleHistoRRF.cpp:1718</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_aaf4a70aaf75bab55356a75dc83869ad0"><div class="ttname"><a href="classPRunSingleHistoRRF.html#aaf4a70aaf75bab55356a75dc83869ad0">PRunSingleHistoRRF::fGoodBins</a></div><div class="ttdeci">Int_t fGoodBins[2]</div><div class="ttdoc">Good bin range: [0] = first good bin (fgb), [1] = last good bin (lgb). Used for COMMANDS block fit ra...</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00422">PRunSingleHistoRRF.h:422</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_ab5ace5bf93deb2df89c121063666f1c4"><div class="ttname"><a href="classPRunSingleHistoRRF.html#ab5ace5bf93deb2df89c121063666f1c4">PRunSingleHistoRRF::fN0EstimateEndTime</a></div><div class="ttdeci">Double_t fN0EstimateEndTime</div><div class="ttdoc">End time (μs) for N₀ estimation window. Rounded to integer number of oscillation cycles based on main...</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00414">PRunSingleHistoRRF.h:414</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_ab715692e9f766a461a258d98707f1a94"><div class="ttname"><a href="classPRunSingleHistoRRF.html#ab715692e9f766a461a258d98707f1a94">PRunSingleHistoRRF::fBkgErr</a></div><div class="ttdeci">Double_t fBkgErr</div><div class="ttdoc">Statistical error on background estimate (std dev of background region)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00418">PRunSingleHistoRRF.h:418</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_ab779bff30645d1b67be3ce4254b656c2"><div class="ttname"><a href="classPRunSingleHistoRRF.html#ab779bff30645d1b67be3ce4254b656c2">PRunSingleHistoRRF::fMerr</a></div><div class="ttdeci">PDoubleVector fMerr</div><div class="ttdoc">Error on M(t): σ_M = exp(+t/τ_μ) × √(N(t) + σ_B²). Includes background error.</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00429">PRunSingleHistoRRF.h:429</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_abe8ac887807ed2b4223ba3f983bdfb2d"><div class="ttname"><a href="classPRunSingleHistoRRF.html#abe8ac887807ed2b4223ba3f983bdfb2d">PRunSingleHistoRRF::fRRFPacking</a></div><div class="ttdeci">Int_t fRRFPacking</div><div class="ttdoc">RRF packing factor from GLOBAL block (number of raw bins averaged together)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00419">PRunSingleHistoRRF.h:419</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_abef0b34e96c5bf89d4c1037e0008c52f"><div class="ttname"><a href="classPRunSingleHistoRRF.html#abef0b34e96c5bf89d4c1037e0008c52f">PRunSingleHistoRRF::fNoOfFitBins</a></div><div class="ttdeci">UInt_t fNoOfFitBins</div><div class="ttdoc">Number of RRF-packed bins within fit range [fStartTimeBin, fEndTimeBin)</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00416">PRunSingleHistoRRF.h:416</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_acf61e38a66398bcb2d37d890aa099da6"><div class="ttname"><a href="classPRunSingleHistoRRF.html#acf61e38a66398bcb2d37d890aa099da6">PRunSingleHistoRRF::GetProperT0</a></div><div class="ttdeci">virtual Bool_t GetProperT0(PRawRunData *runData, PMsrGlobalBlock *globalBlock, PUIntVector &amp;histoNo)</div><div class="ttdoc">Determines and validates t0 values for all histograms.</div><div class="ttdef"><b>Definition</b> <a href="#l01205">PRunSingleHistoRRF.cpp:1205</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_ad2ee805b0b66aa9c034802d869c6712b"><div class="ttname"><a href="classPRunSingleHistoRRF.html#ad2ee805b0b66aa9c034802d869c6712b">PRunSingleHistoRRF::CalcMaxLikelihood</a></div><div class="ttdeci">virtual Double_t CalcMaxLikelihood(const std::vector&lt; Double_t &gt; &amp;par)</div><div class="ttdoc">Calculates maximum likelihood (not yet implemented for RRF).</div><div class="ttdef"><b>Definition</b> <a href="#l00378">PRunSingleHistoRRF.cpp:378</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_ad2f3a3cbc00f42870a695a6012f4aaeb"><div class="ttname"><a href="classPRunSingleHistoRRF.html#ad2f3a3cbc00f42870a695a6012f4aaeb">PRunSingleHistoRRF::GetProperDataRange</a></div><div class="ttdeci">virtual Bool_t GetProperDataRange()</div><div class="ttdoc">Determines valid data range (first/last good bins).</div><div class="ttdef"><b>Definition</b> <a href="#l01362">PRunSingleHistoRRF.cpp:1362</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_ad831240ac6214d41dee3d20f303b2b49"><div class="ttname"><a href="classPRunSingleHistoRRF.html#ad831240ac6214d41dee3d20f303b2b49">PRunSingleHistoRRF::fW</a></div><div class="ttdeci">PDoubleVector fW</div><div class="ttdoc">Weights for N₀ estimation: W(t) = 1/σ_M². Used in weighted average.</div><div class="ttdef"><b>Definition</b> <a href="PRunSingleHistoRRF_8h_source.html#l00430">PRunSingleHistoRRF.h:430</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_adaf4b75ab0ca72305da9e58d578c7314"><div class="ttname"><a href="classPRunSingleHistoRRF.html#adaf4b75ab0ca72305da9e58d578c7314">PRunSingleHistoRRF::SetFitRangeBin</a></div><div class="ttdeci">virtual void SetFitRangeBin(const TString fitRange)</div><div class="ttdoc">Sets fit range using bin-offset syntax from COMMANDS block.</div><div class="ttdef"><b>Definition</b> <a href="#l00529">PRunSingleHistoRRF.cpp:529</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_aec3aac4e64931206a360598fb3363a68"><div class="ttname"><a href="classPRunSingleHistoRRF.html#aec3aac4e64931206a360598fb3363a68">PRunSingleHistoRRF::GetNoOfFitBins</a></div><div class="ttdeci">virtual UInt_t GetNoOfFitBins()</div><div class="ttdoc">Returns the number of bins included in the current fit range.</div><div class="ttdef"><b>Definition</b> <a href="#l00472">PRunSingleHistoRRF.cpp:472</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_af5efc7a53365a692d8fe4c0bb7938a2f"><div class="ttname"><a href="classPRunSingleHistoRRF.html#af5efc7a53365a692d8fe4c0bb7938a2f">PRunSingleHistoRRF::CalcTheory</a></div><div class="ttdeci">virtual void CalcTheory()</div><div class="ttdoc">Evaluates theory function at all data points for viewing/plotting.</div><div class="ttdef"><b>Definition</b> <a href="#l00423">PRunSingleHistoRRF.cpp:423</a></div></div>
<div class="ttc" id="aclassPRunSingleHistoRRF_html_af702d4108e8383bed131f393e2a0dcf4"><div class="ttname"><a href="classPRunSingleHistoRRF.html#af702d4108e8383bed131f393e2a0dcf4">PRunSingleHistoRRF::CalcNoOfFitBins</a></div><div class="ttdeci">virtual void CalcNoOfFitBins()</div><div class="ttdoc">Calculates start/end bin indices from fit time range.</div><div class="ttdef"><b>Definition</b> <a href="#l00641">PRunSingleHistoRRF.cpp:641</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><a class="el" href="PRunSingleHistoRRF_8cpp.html">PRunSingleHistoRRF.cpp</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>