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

1939 lines
379 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/PRunAsymmetryBNMR.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('PRunAsymmetryBNMR_8cpp_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">PRunAsymmetryBNMR.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="PRunAsymmetryBNMR_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"> PRunAsymmetryBNMR.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: Zaher Salman </span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> Based on PRunAsymmetry.cpp by Andreas Suter</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> e-mail: zaher.salman@psi.ch</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><span class="comment">***************************************************************************/</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * Copyright (C) 2018-2025 by Zaher Salman *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * zaher.salman@psi.ch *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * This program is free software; you can redistribute it and/or modify *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * it under the terms of the GNU General Public License as published by *</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * the Free Software Foundation; either version 2 of the License, or *</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * (at your option) any later version. *</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * This program is distributed in the hope that it will be useful, *</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of *</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * GNU General Public License for more details. *</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * You should have received a copy of the GNU General Public License *</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * along with this program; if not, write to the *</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * Free Software Foundation, Inc., *</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> ***************************************************************************/</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#ifdef HAVE_CONFIG_H</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include &quot;config.h&quot;</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#ifdef HAVE_GOMP</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#include &lt;omp.h&gt;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#include &lt;iostream&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> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#include &quot;<a class="code" href="PMusr_8h.html">PMusr.h</a>&quot;</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="PRunAsymmetryBNMR_8h.html">PRunAsymmetryBNMR.h</a>&quot;</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">// Constructor</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00060" data-start="{" data-end="}">
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#ada9466a1c572c157b7ae6b0cc93cb529"> 60</a></span><a class="code hl_function" href="classPRunAsymmetryBNMR.html#ada9466a1c572c157b7ae6b0cc93cb529">PRunAsymmetryBNMR::PRunAsymmetryBNMR</a>() : <a class="code hl_function" href="classPRunBase.html#ae5fc9bd22de779aff2bbbcbf14b90d42">PRunBase</a>()</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>{</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a34ee72fa9b0e70f9b33a8e2d9e9f29b5">fNoOfFitBins</a> = 0;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> = -1;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a95f265a456a127354923c6ae190d99df">fTheoAsData</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</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="l00067" name="l00067"></a><span class="lineno"> 67</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="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0] = -1;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[1] = -1;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a> = -1;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">fEndTimeBin</a> = -1;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>}</div>
</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><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment">// Constructor</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00102" data-start="{" data-end="}">
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#abe047e546987e2fd4fa8420f6e043936"> 102</a></span><a class="code hl_function" href="classPRunAsymmetryBNMR.html#ada9466a1c572c157b7ae6b0cc93cb529">PRunAsymmetryBNMR::PRunAsymmetryBNMR</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="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_function" href="classPRunBase.html#ae5fc9bd22de779aff2bbbcbf14b90d42">PRunBase</a>(msrInfo, rawData, runNo, tag), <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a95f265a456a127354923c6ae190d99df">fTheoAsData</a>(theoAsData)</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span>{</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</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="l00106" name="l00106"></a><span class="lineno"> 106</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="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0] = -1;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[1] = -1;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a> = -1;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">fEndTimeBin</a> = -1;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetPacking();</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> == -1) { <span class="comment">// i.e. packing is NOT given in the RUN-block, it must be given in the GLOBAL-block</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetPacking();</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> == -1) { <span class="comment">// this should NOT happen, somethin is severely wrong</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PRunAsymmetryBNMR(): **SEVERE ERROR**: Couldn&#39;t find any packing information!&quot;</span>;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</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="l00120" name="l00120"></a><span class="lineno"> 120</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_variable" href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// check if alpha and/or beta is fixed --------------------</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <a class="code hl_typedef" href="PMusr_8h.html#ab08a4f791c8d0001ed434bae845fe95c">PMsrParamList</a> *param = msrInfo-&gt;<a class="code hl_function" href="classPMsrHandler.html#a4364201bedc2a4d4be478ba8a796e204">GetMsrParamList</a>();</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// check if alpha is given</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> Bool_t alphaFixedToOne = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> Bool_t alphaSetDefault = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() == -1) { <span class="comment">// no alpha given</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// std::cerr &lt;&lt; std::endl &lt;&lt; &quot;&gt;&gt; PRunAsymmetryBNMR::PRunAsymmetryBNMR(): **ERROR** no alpha parameter given! This is needed for an asymmetry fit!&quot;;</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// std::cerr &lt;&lt; std::endl;</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// fValid = false;</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// return;</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> alphaSetDefault = true;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> } <span class="keywordflow">else</span> <a class="code hl_function" href="PStartupHandler_8cpp.html#a81551ff222b7f215c821232131fe1626">if</a> ((<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &lt; 0) || (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &gt; (Int_t)param-&gt;size())) { <span class="comment">// check if alpha parameter is within proper bounds</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PRunAsymmetryBNMR(): **ERROR** alpha parameter no = &quot;</span> &lt;&lt; fRunInfo-&gt;GetAlphaParamNo();</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; This is out of bound, since there are only &quot;</span> &lt;&lt; param-&gt;size() &lt;&lt; <span class="stringliteral">&quot; parameters.&quot;</span>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> fValid = false;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> return;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> } <span class="keywordflow">else</span> { <span class="comment">// check if alpha is fixed</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> if (((*param)[fRunInfo-&gt;GetAlphaParamNo()-1].fStep == 0.0) &amp;&amp;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> ((*param)[fRunInfo-&gt;GetAlphaParamNo()-1].fValue == 1.0))</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> alphaFixedToOne = true;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// check if beta is given</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> Bool_t betaFixedToOne = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_function" href="PStartupHandler_8cpp.html#a81551ff222b7f215c821232131fe1626">if</a> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() == -1) { <span class="comment">// no beta given hence assuming beta == 1</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> betaFixedToOne = true;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> } <span class="keywordflow">else</span> <a class="code hl_function" href="PStartupHandler_8cpp.html#a81551ff222b7f215c821232131fe1626">if</a> ((<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; 0) || (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &gt; (Int_t)param-&gt;size())) { <span class="comment">// check if beta parameter is within proper bounds</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PRunAsymmetryBNMR(): **ERROR** beta parameter no = &quot;</span> &lt;&lt; fRunInfo-&gt;GetBetaParamNo();</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; This is out of bound, since there are only &quot;</span> &lt;&lt; param-&gt;size() &lt;&lt; <span class="stringliteral">&quot; parameters.&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> fValid = false;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> return;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> } <span class="keywordflow">else</span> { <span class="comment">// check if beta is fixed</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> if (((*param)[fRunInfo-&gt;GetBetaParamNo()-1].fStep == 0.0) &amp;&amp;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> ((*param)[fRunInfo-&gt;GetBetaParamNo()-1].fValue == 1.0))</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> betaFixedToOne = true;</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> }</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// set fAlphaBetaTag</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <a class="code hl_function" href="PStartupHandler_8cpp.html#a81551ff222b7f215c821232131fe1626">if</a> (alphaFixedToOne &amp;&amp; betaFixedToOne) <span class="comment">// alpha == 1, beta == 1</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a> = 1;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!alphaFixedToOne &amp;&amp; betaFixedToOne &amp; !alphaSetDefault) <span class="comment">// alpha != 1, beta == 1</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a> = 2;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (alphaFixedToOne &amp;&amp; !betaFixedToOne) <span class="comment">// alpha == 1, beta != 1</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a> = 3;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!alphaFixedToOne &amp;&amp; betaFixedToOne &amp; alphaSetDefault) <span class="comment">// alpha ??, beta == 1</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a> = 5;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!alphaFixedToOne &amp;&amp; !betaFixedToOne &amp; alphaSetDefault) <span class="comment">// alpha ??, beta != 1</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a> = 6;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a> = 4;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// calculate fData</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunAsymmetryBNMR.html#a608cda8fb236f131c95c23aa1051f892">PrepareData</a>())</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <a class="code hl_variable" href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>}</div>
</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment">// Destructor</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00194" data-start="{" data-end="}">
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a18f0d22d486bcfc6cf4999ca8dff5ed1"> 194</a></span><a class="code hl_function" href="classPRunAsymmetryBNMR.html#a18f0d22d486bcfc6cf4999ca8dff5ed1">PRunAsymmetryBNMR::~PRunAsymmetryBNMR</a>()</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span>{</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.clear();</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>.clear();</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.clear();</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>.clear();</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>.clear();</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>.clear();</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>.clear();</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>.clear();</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span>}</div>
</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="comment">// CalcChiSquare (public)</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00226" data-start="{" data-end="}">
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#ad24571a515c535dbce615847967e32c6"> 226</a></span>Double_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#ad24571a515c535dbce615847967e32c6">PRunAsymmetryBNMR::CalcChiSquare</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt;&amp; par)</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span>{</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> Double_t chisq = 0.0;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> Double_t diff = 0.0;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> Double_t asymFcnValue = 0.0;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> Double_t a, b, f;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="comment">// calculate functions</span></div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</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="l00235" name="l00235"></a><span class="lineno"> 235</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="l00236" name="l00236"></a><span class="lineno"> 236</span> }</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="comment">// calculate chi square</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> Double_t time(1.0),alphaest;</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> Int_t i;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// determine alpha/beta</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> alphaest = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetEstimatedAlpha();</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a>) {</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">case</span> 1: <span class="comment">// alpha == 1, beta == 1</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> a = 1.0;</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> b = 1.0;</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">case</span> 2: <span class="comment">// alpha != 1, beta == 1</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// alpha is a parameter</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> a = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-1];</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> } <span class="keywordflow">else</span> { <span class="comment">// alpha is function</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> a = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00257" name="l00257"></a><span class="lineno"> 257</span> }</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> b = 1.0;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">case</span> 3: <span class="comment">// alpha == 1, beta != 1</span></div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> a = 1.0;</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> b = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> b = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00269" name="l00269"></a><span class="lineno"> 269</span> }</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">case</span> 4: <span class="comment">// alpha != 1, beta != 1</span></div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// alpha is a parameter</span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> a = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-1];</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> } <span class="keywordflow">else</span> { <span class="comment">// alpha is function</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> a = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00279" name="l00279"></a><span class="lineno"> 279</span> }</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> b = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> b = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00287" name="l00287"></a><span class="lineno"> 287</span> }</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">case</span> 5: <span class="comment">// alpha ?? , beta == 1</span></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> a = alphaest;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> b = 1.0;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">case</span> 6: <span class="comment">// alpha ??, beta != 1</span></div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> a = alphaest;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> b = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> b = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00302" name="l00302"></a><span class="lineno"> 302</span> }</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> a = 1.0;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> b = 1.0;</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> }</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> </div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</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="l00311" name="l00311"></a><span class="lineno"> 311</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="l00312" name="l00312"></a><span class="lineno"> 312</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="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="comment">// For all other functions it means a tiny and acceptable overhead.</span></div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> asymFcnValue = <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="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span><span class="preprocessor"> #ifdef HAVE_GOMP</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> Int_t chunk = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">fEndTimeBin</a> - <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a>)/omp_get_num_procs();</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">if</span> (chunk &lt; 10)</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> chunk = 10;</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="preprocessor"> #pragma omp parallel for default(shared) private(i,time,diff,asymFcnValue,f) schedule(dynamic,chunk) reduction(+:chisq)</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span><span class="preprocessor"> #endif</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keywordflow">for</span> (i=<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a>; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">fEndTimeBin</a>; ++i) {</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</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="l00324" name="l00324"></a><span class="lineno"> 324</span> f = <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>)/2.0;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> asymFcnValue = (f*(a*b+1.0)-(a-1.0))/((a+1.0)-f*(a*b-1.0))-(-f*(a*b+1.0)-(a-1.0))/((a+1.0)+f*(a*b-1.0));</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> diff = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;at(i) - asymFcnValue;</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</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="l00328" name="l00328"></a><span class="lineno"> 328</span> }</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> </div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">return</span> chisq;</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span>}</div>
</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span><span class="comment">// CalcChiSquareExpected (public)</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00345" data-start="{" data-end="}">
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a429398ccaf32c7270e36feb5a60da113"> 345</a></span>Double_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a429398ccaf32c7270e36feb5a60da113">PRunAsymmetryBNMR::CalcChiSquareExpected</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt;&amp; par)</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span>{</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keywordflow">return</span> 0.0;</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span>}</div>
</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> </div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span><span class="comment">// CalcMaxLikelihood (public)</span></div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00362" data-start="{" data-end="}">
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#ab89290085a83e6ca48bfd329ac942f1b"> 362</a></span>Double_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#ab89290085a83e6ca48bfd329ac942f1b">PRunAsymmetryBNMR::CalcMaxLikelihood</a>(<span class="keyword">const</span> std::vector&lt;Double_t&gt;&amp; par)</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span>{</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;PRunAsymmetryBNMR::CalcMaxLikelihood(): not implemented yet ...&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> </div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span>}</div>
</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> </div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span><span class="comment">// GetNoOfFitBins (public)</span></div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00379" data-start="{" data-end="}">
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a1dda6790482d80006911d9b03fc8c5a7"> 379</a></span>UInt_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a1dda6790482d80006911d9b03fc8c5a7">PRunAsymmetryBNMR::GetNoOfFitBins</a>()</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span>{</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#aab556ccc02437934c00e35efcf99664d">CalcNoOfFitBins</a>();</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a34ee72fa9b0e70f9b33a8e2d9e9f29b5">fNoOfFitBins</a>;</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span>}</div>
</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> </div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span><span class="comment">// SetFitRangeBin (public)</span></div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00407" data-start="{" data-end="}">
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#ad2fbe9546f7c409aa12a4c6d4cfc174d"> 407</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#ad2fbe9546f7c409aa12a4c6d4cfc174d">PRunAsymmetryBNMR::SetFitRangeBin</a>(<span class="keyword">const</span> TString fitRange)</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span>{</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> TObjArray *tok = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> TObjString *ostr = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> TString str;</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> Ssiz_t idx = -1;</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> Int_t offset = 0;</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> </div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> tok = fitRange.Tokenize(<span class="stringliteral">&quot; \t&quot;</span>);</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> </div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</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="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="comment">// handle fgb+n0 entry</span></div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</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="l00420" name="l00420"></a><span class="lineno"> 420</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> idx = str.First(<span class="stringliteral">&quot;+&quot;</span>);</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</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="l00426" name="l00426"></a><span class="lineno"> 426</span> offset = str.Atoi();</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> }</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <span class="comment">// handle lgb-n1 entry</span></div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</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="l00432" name="l00432"></a><span class="lineno"> 432</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> idx = str.First(<span class="stringliteral">&quot;-&quot;</span>);</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</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="l00438" name="l00438"></a><span class="lineno"> 438</span> offset = str.Atoi();</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> }</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l00441" name="l00441"></a><span class="lineno"> 441</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="l00442" name="l00442"></a><span class="lineno"> 442</span> Int_t pos = 2*(<a class="code hl_variable" href="classPRunBase.html#aeccaae88c9db0804981e1bd3f81fc57a">fRunNo</a>+1)-1;</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> </div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <span class="keywordflow">if</span> (pos + 1 &gt;= tok-&gt;GetEntries()) {</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l00446" name="l00446"></a><span class="lineno"> 446</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="l00447" name="l00447"></a><span class="lineno"> 447</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <span class="comment">// handle fgb+n0 entry</span></div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> ostr = <span class="keyword">static_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tok-&gt;At(pos));</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> idx = str.First(<span class="stringliteral">&quot;+&quot;</span>);</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</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="l00456" name="l00456"></a><span class="lineno"> 456</span> offset = str.Atoi();</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> }</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l00459" name="l00459"></a><span class="lineno"> 459</span> </div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> <span class="comment">// handle lgb-n1 entry</span></div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> ostr = <span class="keyword">static_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tok-&gt;At(pos+1));</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="comment">// check if there is an offset present</span></div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> idx = str.First(<span class="stringliteral">&quot;-&quot;</span>);</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <span class="keywordflow">if</span> (idx != -1) { <span class="comment">// offset present</span></div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> str.Remove(0, idx+1);</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</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="l00468" name="l00468"></a><span class="lineno"> 468</span> offset = str.Atoi();</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> }</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l00471" name="l00471"></a><span class="lineno"> 471</span> }</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> } <span class="keywordflow">else</span> { <span class="comment">// error</span></div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l00474" name="l00474"></a><span class="lineno"> 474</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="l00475" name="l00475"></a><span class="lineno"> 475</span> }</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> </div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <span class="keywordflow">if</span> (tok) {</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">delete</span> tok;</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> }</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span>}</div>
</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span><span class="comment">// CalcNoOfFitBins (public)</span></div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00493" data-start="{" data-end="}">
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#aab556ccc02437934c00e35efcf99664d"> 493</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#aab556ccc02437934c00e35efcf99664d">PRunAsymmetryBNMR::CalcNoOfFitBins</a>()</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span>{</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</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="l00496" name="l00496"></a><span class="lineno"> 496</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">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="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a> &lt; 0)</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a> = 0;</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">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="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">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="l00501" name="l00501"></a><span class="lineno"> 501</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">fEndTimeBin</a> = <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;size();</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> </div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">fEndTimeBin</a> &gt; <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a>)</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a34ee72fa9b0e70f9b33a8e2d9e9f29b5">fNoOfFitBins</a> = <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">fEndTimeBin</a> - <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">fStartTimeBin</a>);</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a34ee72fa9b0e70f9b33a8e2d9e9f29b5">fNoOfFitBins</a> = 0;</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span>}</div>
</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> </div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span><span class="comment">// CalcTheory (protected)</span></div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00527" data-start="{" data-end="}">
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#ab659b4486d4351caa8bd1f9e05e659b2"> 527</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#ab659b4486d4351caa8bd1f9e05e659b2">PRunAsymmetryBNMR::CalcTheory</a>()</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span>{</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="comment">// feed the parameter vector</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> std::vector&lt;Double_t&gt; par;</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</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="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;paramList-&gt;size(); i++)</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> par.push_back((*paramList)[i].fValue);</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> </div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <span class="comment">// calculate functions</span></div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</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="l00537" name="l00537"></a><span class="lineno"> 537</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="l00538" name="l00538"></a><span class="lineno"> 538</span> }</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="comment">// calculate asymmetry</span></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> Double_t asymFcnValue = 0.0;</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> Double_t a, b, f, alphaest;</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> Double_t time;</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> </div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="comment">// Get estimated alpha</span></div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> alphaest = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetEstimatedAlpha();</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> </div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.GetValue()-&gt;size(); i++) {</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</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="l00550" name="l00550"></a><span class="lineno"> 550</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a>) {</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">case</span> 1: <span class="comment">// alpha == 1, beta == 1</span></div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> asymFcnValue = <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="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="keywordflow">case</span> 2: <span class="comment">// alpha != 1, beta == 1</span></div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// alpha is a parameter</span></div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> a = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-1];</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> } <span class="keywordflow">else</span> { <span class="comment">// alpha is function</span></div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> a = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00562" name="l00562"></a><span class="lineno"> 562</span> }</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> f = <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="l00564" name="l00564"></a><span class="lineno"> 564</span> asymFcnValue = (f*(a+1.0)-(a-1.0))/((a+1.0)-f*(a-1.0)) - (-f*(a+1.0)-(a-1.0))/((a+1.0)+f*(a-1.0));</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">case</span> 3: <span class="comment">// alpha == 1, beta != 1</span></div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> b = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> b = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00574" name="l00574"></a><span class="lineno"> 574</span> }</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> f = <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="l00576" name="l00576"></a><span class="lineno"> 576</span> asymFcnValue = f*(b+1.0)/(2.0-f*(b-1.0))-f*(b+1.0)/(2.0+f*(b-1.0));</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <span class="keywordflow">case</span> 4: <span class="comment">// alpha != 1, beta != 1</span></div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// alpha is a parameter</span></div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> a = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-1];</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> } <span class="keywordflow">else</span> { <span class="comment">// alpha is function</span></div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> a = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00586" name="l00586"></a><span class="lineno"> 586</span> }</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> b = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> b = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00594" name="l00594"></a><span class="lineno"> 594</span> }</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> f = <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="l00596" name="l00596"></a><span class="lineno"> 596</span> asymFcnValue = (f*(a*b+1.0)-(a-1.0))/((a+1.0)-f*(a*b-1.0))-(-f*(a*b+1.0)-(a-1.0))/((a+1.0)+f*(a*b-1.0));</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">case</span> 5: <span class="comment">// alpha ?? , beta == 1</span></div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> a = alphaest;</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> f = <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="l00601" name="l00601"></a><span class="lineno"> 601</span> asymFcnValue = (f*(a+1.0)-(a-1.0))/((a+1.0)-f*(a-1.0)) - (-f*(a+1.0)-(a-1.0))/((a+1.0)+f*(a-1.0));</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">case</span> 6: <span class="comment">// alpha ??, beta != 1</span></div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> a = alphaest;</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> b = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> b = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l00612" name="l00612"></a><span class="lineno"> 612</span> }</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> f = <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="l00614" name="l00614"></a><span class="lineno"> 614</span> asymFcnValue = (f*(a*b+1.0)-(a-1.0))/((a+1.0)-f*(a*b-1.0))-(-f*(a*b+1.0)-(a-1.0))/((a+1.0)+f*(a*b-1.0));</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> asymFcnValue = 0.0;</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> }</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendTheoryValue(asymFcnValue);</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> }</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> </div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> par.clear();</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span>}</div>
</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> </div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span><span class="comment">// PrepareData (protected)</span></div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00651" data-start="{" data-end="}">
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a608cda8fb236f131c95c23aa1051f892"> 651</a></span>Bool_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a608cda8fb236f131c95c23aa1051f892">PRunAsymmetryBNMR::PrepareData</a>()</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span>{</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classPRunBase.html#a12aa647fe8c42bff6712a1b065d40e9d">fValid</a>)</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> </div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <span class="comment">// keep the Global block info</span></div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</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="l00658" name="l00658"></a><span class="lineno"> 658</span> </div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="comment">// get forward/backward histo from PRunDataHandler object ------------------------</span></div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="comment">// get the correct run</span></div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</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="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keywordflow">if</span> (!runData) { <span class="comment">// run not found</span></div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l00664" name="l00664"></a><span class="lineno"> 664</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> }</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> </div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <span class="comment">// keep the field from the meta-data from the data-file</span></div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</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="l00670" name="l00670"></a><span class="lineno"> 670</span> </div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="comment">// keep the energy from the meta-data from the data-file</span></div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</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="l00673" name="l00673"></a><span class="lineno"> 673</span> </div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="comment">// keep the temperature(s) from the meta-data from the data-file</span></div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</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="l00676" name="l00676"></a><span class="lineno"> 676</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="l00677" name="l00677"></a><span class="lineno"> 677</span> </div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <span class="comment">// collect histogram numbers</span></div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <a class="code hl_typedef" href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a> forwardHistoNo;</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <a class="code hl_typedef" href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a> backwardHistoNo;</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</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="l00682" name="l00682"></a><span class="lineno"> 682</span> forwardHistoNo.push_back(<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetForwardHistoNo(i));</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> </div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="keywordflow">if</span> (!runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a76d09e675fb730a765809de705e40428">IsPresent</a>(forwardHistoNo[i])) {</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareData(): **PANIC ERROR**:&quot;</span>;</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; forwardHistoNo found = &quot;</span> &lt;&lt; forwardHistoNo[i] &lt;&lt; <span class="stringliteral">&quot;, which is NOT present in the data file!?!?&quot;</span>;</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</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="l00688" name="l00688"></a><span class="lineno"> 688</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> forwardHistoNo.clear();</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> backwardHistoNo.clear();</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> }</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> }</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBackwardHistoNoSize(); i++) {</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> backwardHistoNo.push_back(<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBackwardHistoNo(i));</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> </div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> <span class="keywordflow">if</span> (!runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a76d09e675fb730a765809de705e40428">IsPresent</a>(backwardHistoNo[i])) {</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareData(): **PANIC ERROR**:&quot;</span>;</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; backwardHistoNo found = &quot;</span> &lt;&lt; backwardHistoNo[i] &lt;&lt; <span class="stringliteral">&quot;, which is NOT present in the data file!?!?&quot;</span>;</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</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="l00702" name="l00702"></a><span class="lineno"> 702</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> forwardHistoNo.clear();</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> backwardHistoNo.clear();</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> }</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span><span class="comment">/* //as35</span></div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span><span class="comment"> if (forwardHistoNo.size() != backwardHistoNo.size()) {</span></div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span><span class="comment"> std::cerr &lt;&lt; std::endl &lt;&lt; &quot;&gt;&gt; PRunAsymmetryBNMR::PrepareData(): **PANIC ERROR**:&quot;;</span></div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span><span class="comment"> std::cerr &lt;&lt; std::endl &lt;&lt; &quot;&gt;&gt; # of forward histograms different from # of backward histograms.&quot;;</span></div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span><span class="comment"> std::cerr &lt;&lt; std::endl &lt;&lt; &quot;&gt;&gt; Will quit :-(&quot;;</span></div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span><span class="comment"> std::cerr &lt;&lt; std::endl;</span></div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span><span class="comment"> // clean up</span></div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span><span class="comment"> forwardHistoNo.clear();</span></div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span><span class="comment"> backwardHistoNo.clear();</span></div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span><span class="comment"> return false;</span></div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span><span class="comment"> }</span></div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span><span class="comment">*/</span> <span class="comment">//as35</span></div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> </div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> <span class="comment">// keep the time resolution in (s)</span></div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</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="l00724" name="l00724"></a><span class="lineno"> 724</span> std::cout.precision(10);</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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;(ms)&quot;</span> &lt;&lt; std::endl;</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">// get all the proper t0&#39;s and addt0&#39;s for the current RUN block</span></div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunAsymmetryBNMR.html#a026b5e554e7c8f3bda7d340e50d9f015">GetProperT0</a>(runData, globalBlock, forwardHistoNo, backwardHistoNo)) {</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> }</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> </div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> <span class="comment">// keep the histo of each group at this point (addruns handled below)</span></div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> std::vector&lt;PDoubleVector&gt; forward, backward;</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> forward.resize(forwardHistoNo.size()); <span class="comment">// resize to number of groups</span></div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;forwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> forward[i].resize(runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(forwardHistoNo[i])-&gt;size());</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> forward[i] = *runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(forwardHistoNo[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> backward.resize(backwardHistoNo.size()); <span class="comment">// resize to number of groups</span></div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;backwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> backward[i].resize(runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(backwardHistoNo[i])-&gt;size());</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> backward[i] = *runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(backwardHistoNo[i]);</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> }</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> </div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <span class="comment">// check if addrun&#39;s are present, and if yes add data</span></div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <span class="comment">// check if there are runs to be added to the current one</span></div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</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="l00748" name="l00748"></a><span class="lineno"> 748</span> <a class="code hl_class" href="classPRawRunData.html">PRawRunData</a> *addRunData;</div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</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="l00750" name="l00750"></a><span class="lineno"> 750</span> <span class="comment">// get run to be added to the main one</span></div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</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="l00752" name="l00752"></a><span class="lineno"> 752</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="l00753" name="l00753"></a><span class="lineno"> 753</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l00754" name="l00754"></a><span class="lineno"> 754</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</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> <span class="comment">// add forward run</span></div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> UInt_t addRunSize; </div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <span class="keywordflow">for</span> (UInt_t k=0; k&lt;forwardHistoNo.size(); k++) { <span class="comment">// fill each group</span></div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> addRunSize = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(forwardHistoNo[k])-&gt;size();</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</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>(forwardHistoNo[k])-&gt;size(); j++) { <span class="comment">// loop over the bin indices</span></div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <span class="comment">// make sure that the index stays in the proper range</span></div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</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][2*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>[2*k]) &gt;= 0) &amp;&amp;</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</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][2*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>[2*k]) &lt; addRunSize)) {</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> forward[k][j] += addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(forwardHistoNo[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][2*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>[2*k]));</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> }</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> }</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> }</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> </div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="comment">// add backward run</span></div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <span class="keywordflow">for</span> (UInt_t k=0; k&lt;backwardHistoNo.size(); k++) { <span class="comment">// fill each group</span></div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> addRunSize = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(backwardHistoNo[k])-&gt;size();</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</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>(backwardHistoNo[k])-&gt;size(); j++) { <span class="comment">// loop over the bin indices</span></div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> <span class="comment">// make sure that the index stays in the proper range</span></div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</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][2*k+1])-<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>[2*k+1]) &gt;= 0) &amp;&amp;</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</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][2*k+1])-<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>[2*k+1]) &lt; addRunSize)) {</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> backward[k][j] += addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(backwardHistoNo[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][2*k+1])-<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>[2*k+1]));</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> }</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> }</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> }</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> }</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> </div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <span class="comment">// set forward histo data of the first group</span></div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.resize(forward[0].size());</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>.resize(forward[0].size());</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size(); i++) {</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i] = forward[0][i];</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i] = forward[1][i];</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> <span class="comment">// set backward histo data of the first group</span></div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.resize(backward[0].size());</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>.resize(backward[0].size());</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.size(); i++) {</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i] = backward[0][i];</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i] = backward[1][i];</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> }</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> <span class="comment">// subtract background from histogramms ------------------------------------------</span></div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</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="l00802" name="l00802"></a><span class="lineno"> 802</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(0) &gt;= 0) { <span class="comment">// background range given</span></div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunAsymmetryBNMR.html#a08d2ed97f50de8d97d88184a1639f39e">SubtractEstimatedBkg</a>())</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> } <span class="keywordflow">else</span> { <span class="comment">// no background given to do the job, try to estimate it</span></div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</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="l00807" name="l00807"></a><span class="lineno"> 807</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="l00808" name="l00808"></a><span class="lineno"> 808</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>[1]*0.1), 2);</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</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>[1]*0.6), 3);</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareData(): **WARNING** Neither fix background nor background bins are given!&quot;</span>;</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; Will try the following:&quot;</span>;</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; forward: 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="l00813" name="l00813"></a><span class="lineno"> 813</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; backward: bkg start = &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(2) &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(3);</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS MAKES ANY SENSE! Better check ...&quot;</span>;</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunAsymmetryBNMR.html#a08d2ed97f50de8d97d88184a1639f39e">SubtractEstimatedBkg</a>())</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> }</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> } <span class="keywordflow">else</span> { <span class="comment">// fixed background given</span></div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunAsymmetryBNMR.html#a0bfbdab177b01314ee5bc4db7573090b">SubtractFixBkg</a>())</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> }</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> </div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> UInt_t histoNo[2] = {forwardHistoNo[0], backwardHistoNo[0]};</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> </div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> <span class="comment">// get the data range (fgb/lgb) for the current RUN block</span></div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classPRunAsymmetryBNMR.html#aed6d7e7341dc25b66f8fb730225b2bd6">GetProperDataRange</a>(runData, histoNo)) {</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> }</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="comment">// get the fit range for the current RUN block</span></div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#adfdb279051dc00cc3ab92383abdbd3e7">GetProperFitRange</a>(globalBlock);</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">// everything looks fine, hence fill data set</span></div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> Bool_t <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a>;</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> <span class="keywordflow">switch</span>(<a class="code hl_variable" href="classPRunBase.html#ab6465ea668810646cd74b40a4e25ca42">fHandleTag</a>) {</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331aba6d36a468d5cc6244a9c4b150e0b107a7">kFit</a>:</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> = <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a47237f968eac2a94d313db1fc8f06459">PrepareFitData</a>();</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="PMusr_8h.html#a3168a2cda2474c28fe329358530331abaa9d4431e390709c09f825d8afbf32289">kView</a>:</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> = <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a1f759a3c1338fa828577d7e9f0b3cbfe">PrepareViewData</a>(runData, histoNo);</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> }</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> </div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> forwardHistoNo.clear();</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> backwardHistoNo.clear();</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> </div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a>;</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span>}</div>
</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> </div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span><span class="comment">// SubtractFixBkg (private)</span></div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00874" data-start="{" data-end="}">
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a0bfbdab177b01314ee5bc4db7573090b"> 874</a></span>Bool_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a0bfbdab177b01314ee5bc4db7573090b">PRunAsymmetryBNMR::SubtractFixBkg</a>()</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span>{</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> Double_t dval;</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> </div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <span class="comment">// Order in RunInfo structure Fp, Fm, Bp, Bm</span></div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size(); i++) {</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> <span class="comment">// keep the error, and make sure that the bin is NOT empty</span></div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i] != 0.0)</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> dval = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i]);</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> dval = 1.0;</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>.push_back(dval);</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i] -= <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgFix(0);</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> </div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> <span class="comment">// keep the error, and make sure that the bin is NOT empty</span></div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i] != 0.0)</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> dval = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i]);</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> dval = 1.0;</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>.push_back(dval);</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i] -= <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgFix(1);</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> </div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <span class="comment">// keep the error, and make sure that the bin is NOT empty</span></div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i] != 0.0)</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> dval = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i]);</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> dval = 1.0;</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>.push_back(dval);</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i] -= <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgFix(2);</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> </div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> <span class="comment">// keep the error, and make sure that the bin is NOT empty</span></div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i] != 0.0)</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> dval = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i]);</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> dval = 1.0;</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>.push_back(dval);</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i] -= <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgFix(3);</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</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> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span>}</div>
</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">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span><span class="comment">// SubtractEstimatedBkg (private)</span></div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00936" data-start="{" data-end="}">
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a08d2ed97f50de8d97d88184a1639f39e"> 936</a></span>Bool_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a08d2ed97f50de8d97d88184a1639f39e">PRunAsymmetryBNMR::SubtractEstimatedBkg</a>()</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span>{</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> Double_t beamPeriod = 0.0;</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">// check if data are from PSI, RAL, or TRIUMF</span></div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</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="l00942" name="l00942"></a><span class="lineno"> 942</span> beamPeriod = <a class="code hl_define" href="PMusr_8h.html#acbf6e0bace9638d4b7182c0ea78a76aa">ACCEL_PERIOD_PSI</a>;</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</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="l00944" name="l00944"></a><span class="lineno"> 944</span> beamPeriod = <a class="code hl_define" href="PMusr_8h.html#af100c5520356cd7487587f0c9c2286df">ACCEL_PERIOD_RAL</a>;</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</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="l00946" name="l00946"></a><span class="lineno"> 946</span> beamPeriod = <a class="code hl_define" href="PMusr_8h.html#a289dd448598859518bc73c87233af6a1">ACCEL_PERIOD_TRIUMF</a>;</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> beamPeriod = 0.0;</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> </div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> <span class="comment">// check if start and end are in proper order</span></div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> Int_t start[2] = {<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(0), <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(2)};</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> Int_t end[2] = {<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(1), <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(3)};</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++) {</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> <span class="keywordflow">if</span> (end[i] &lt; start[i]) {</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;PRunAsymmetryBNMR::SubtractEstimatedBkg(): end = &quot;</span> &lt;&lt; end[i] &lt;&lt; <span class="stringliteral">&quot; &gt; start = &quot;</span> &lt;&lt; start[i] &lt;&lt; <span class="stringliteral">&quot;! Will swap them!&quot;</span>;</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> UInt_t keep = end[i];</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> end[i] = start[i];</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> start[i] = keep;</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> }</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> }</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> </div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <span class="comment">// calculate proper background range</span></div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++) {</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> <span class="keywordflow">if</span> (beamPeriod != 0.0) {</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> Double_t timeBkg = <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end[i]-start[i])*(<a class="code hl_variable" href="classPRunBase.html#a0ec9b72abc7a54f1e0f4c12d45bb0357">fTimeResolution</a>*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>); <span class="comment">// length of the background intervall in time</span></div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</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="l00967" name="l00967"></a><span class="lineno"> 967</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="l00968" name="l00968"></a><span class="lineno"> 968</span> end[i] = start[i] + <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>*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>));</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> std::cout &lt;&lt; <span class="stringliteral">&quot;PRunAsymmetryBNMR::SubtractEstimatedBkg(): Background &quot;</span> &lt;&lt; start[i] &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; end[i] &lt;&lt; std::endl;</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> <span class="keywordflow">if</span> (end[i] == start[i])</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> end[i] = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBkgRange(2*i+1);</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> }</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">// check if start is within histogram bounds</span></div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> <span class="keywordflow">if</span> ((start[0] &lt; 0) || (start[0] &gt;= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size()) ||</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> (start[1] &lt; 0) || (start[1] &gt;= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.size())) {</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::SubtractEstimatedBkg(): **ERROR** background bin values out of bound!&quot;</span>;</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; histo lengths (f/b) = (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size() &lt;&lt; <span class="stringliteral">&quot;/&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.size() &lt;&lt; <span class="stringliteral">&quot;).&quot;</span>;</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; background start (f/b) = (&quot;</span> &lt;&lt; start[0] &lt;&lt; <span class="stringliteral">&quot;/&quot;</span> &lt;&lt; start[1] &lt;&lt; <span class="stringliteral">&quot;).&quot;</span>;</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</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">// check if end is within histogram bounds</span></div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> <span class="keywordflow">if</span> ((end[0] &lt; 0) || (end[0] &gt;= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size()) ||</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> (end[1] &lt; 0) || (end[1] &gt;= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.size())) {</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::SubtractEstimatedBkg(): **ERROR** background bin values out of bound!&quot;</span>;</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; histo lengths (f/b) = (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size() &lt;&lt; <span class="stringliteral">&quot;/&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.size() &lt;&lt; <span class="stringliteral">&quot;).&quot;</span>;</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; background end (f/b) = (&quot;</span> &lt;&lt; end[0] &lt;&lt; <span class="stringliteral">&quot;/&quot;</span> &lt;&lt; end[1] &lt;&lt; <span class="stringliteral">&quot;).&quot;</span>;</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> }</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> </div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> <span class="comment">// calculate background</span></div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> Double_t bkgp[2] = {0.0, 0.0};</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> Double_t errBkgp[2] = {0.0, 0.0};</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> Double_t bkgm[2] = {0.0, 0.0};</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> Double_t errBkgm[2] = {0.0, 0.0};</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> </div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> <span class="comment">// forward</span></div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <span class="keywordflow">for</span> (UInt_t i=start[0]; i&lt;=end[0]; i++) {</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> bkgp[0] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i];</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> bkgm[0] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i];</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> }</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> errBkgp[0] = TMath::Sqrt(bkgp[0])/(end[0] - start[0] + 1);</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> bkgp[0] /= <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end[0] - start[0] + 1);</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; estimated pos hel forward histo background: &quot;</span> &lt;&lt; bkgp[0];</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> errBkgm[0] = TMath::Sqrt(bkgp[0])/(end[0] - start[0] + 1);</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> bkgm[0] /= <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end[0] - start[0] + 1);</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; estimated neg hel forward histo background: &quot;</span> &lt;&lt; bkgm[0];</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> </div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">// backward</span></div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> <span class="keywordflow">for</span> (UInt_t i=start[1]; i&lt;=end[1]; i++) {</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> bkgp[1] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i];</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> bkgm[1] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i];</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> errBkgp[1] = TMath::Sqrt(bkgp[1])/(end[1] - start[1] + 1);</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> bkgp[1] /= <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end[1] - start[1] + 1);</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; estimated pos hel backward histo background: &quot;</span> &lt;&lt; bkgp[1];</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> errBkgm[1] = TMath::Sqrt(bkgm[1])/(end[1] - start[1] + 1);</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> bkgm[1] /= <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end[1] - start[1] + 1);</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; estimated neg hel backward histo background: &quot;</span> &lt;&lt; bkgm[1];</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> </div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> <span class="comment">// correct error for forward, backward</span></div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> Double_t errVal = 0.0;</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size(); i++) {</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i] &gt; 0.0)</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> errVal = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i]+errBkgp[0]*errBkgp[0]);</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> errVal = 1.0;</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>.push_back(errVal);</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i] &gt; 0.0)</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> errVal = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i]+errBkgp[1]*errBkgp[1]);</div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> errVal = 1.0;</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>.push_back(errVal);</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i] &gt; 0.0)</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> errVal = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i]+errBkgm[0]*errBkgm[0]);</div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> errVal = 1.0;</div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>.push_back(errVal);</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i] &gt; 0.0)</div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> errVal = TMath::Sqrt(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i]+errBkgm[1]*errBkgm[1]);</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> errVal = 1.0;</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>.push_back(errVal);</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> }</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> </div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">// subtract background from data</span></div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size(); i++) {</div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i] -= bkgp[0];</div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i] -= bkgp[1];</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i] -= bkgm[0];</div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i] -= bkgm[1];</div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> }</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> </div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetBkgEstimated(bkgp[0], 0);</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetBkgEstimated(bkgp[1], 1);</div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetBkgEstimated(bkgm[0], 3);</div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetBkgEstimated(bkgm[1], 4);</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> </div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">// Get estimate for alpha once</span></div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> Double_t alpha;</div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> alpha = <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a3adbbef3f261a341afc20fc639721de4">EstimateAlpha</a>();</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetEstimatedAlpha(alpha);</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> </div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> </div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span>}</div>
</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> </div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span><span class="comment">// PrepareFitData (protected)</span></div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01084" data-start="{" data-end="}">
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a47237f968eac2a94d313db1fc8f06459"> 1084</a></span>Bool_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a47237f968eac2a94d313db1fc8f06459">PRunAsymmetryBNMR::PrepareFitData</a>()</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span>{</div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> <span class="comment">// transform raw histo data. This is done the following way (for details see the manual):</span></div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">// first rebin the data, than calculate the asymmetry</span></div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> </div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">// everything looks fine, hence fill packed forward and backward histo</span></div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> forwardpPacked;</div>
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> backwardpPacked;</div>
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> forwardmPacked;</div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> backwardmPacked;</div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> Double_t valuep = 0.0;</div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> Double_t errorp = 0.0;</div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> Double_t valuem = 0.0;</div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> Double_t errorm = 0.0;</div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> </div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">// forward</span></div>
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0]; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[1]; i++) {</div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> == 1) {</div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i]);</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>[i]);</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i]);</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>[i]);</div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> } <span class="keywordflow">else</span> { <span class="comment">// packed data, i.e. fPacking &gt; 1</span></div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> <span class="keywordflow">if</span> (((i-<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0]) % <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> == 0) &amp;&amp; (i != <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0])) { <span class="comment">// fill data</span></div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="comment">// in order that after rebinning the fit does not need to be redone (important for plots)</span></div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">// the value is normalize to per bin</span></div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> valuep /= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>;</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> valuem /= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>;</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuep);</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuem);</div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> <span class="keywordflow">if</span> (valuep == 0.0) {</div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorp)/<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>);</div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> }</div>
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> <span class="keywordflow">if</span> (valuem == 0.0) {</div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorm)/<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>);</div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> }</div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> valuep = 0.0;</div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> errorp = 0.0;</div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> valuem = 0.0;</div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> errorm = 0.0;</div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> }</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> valuep += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i];</div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> errorp += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>[i];</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> valuem += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i];</div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> errorm += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>[i];</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> }</div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> }</div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> </div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">// backward</span></div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="keywordflow">for</span> (Int_t i=<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[2]; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[3]; i++) {</div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> == 1) {</div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i]);</div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>[i]);</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i]);</div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>[i]);</div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> } <span class="keywordflow">else</span> { <span class="comment">// packed data, i.e. fPacking &gt; 1</span></div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> <span class="keywordflow">if</span> (((i-<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[2]) % <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a> == 0) &amp;&amp; (i != <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[2])) { <span class="comment">// fill data</span></div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> <span class="comment">// in order that after rebinning the fit does not need to be redone (important for plots)</span></div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> <span class="comment">// the value is normalize to per bin</span></div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> valuep /= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>;</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> valuem /= <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>;</div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuep);</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuem);</div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">if</span> (valuep == 0.0) {</div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorp)/<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>);</div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> }</div>
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span> <span class="keywordflow">if</span> (valuem == 0.0) {</div>
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorm)/<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>);</div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> }</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> valuep = 0.0;</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> errorp = 0.0;</div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> valuem = 0.0;</div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> errorm = 0.0;</div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> }</div>
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> valuep += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i];</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> errorp += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>[i];</div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> valuem += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i];</div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> errorm += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>[i];</div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> }</div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> }</div>
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> </div>
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span> <span class="comment">// check if packed forward and backward hist have the same size, otherwise take the minimum size</span></div>
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> UInt_t noOfBins = forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size();</div>
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> <span class="keywordflow">if</span> (forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size() != backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size()) {</div>
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> <span class="keywordflow">if</span> (forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size() &gt; backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size())</div>
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> noOfBins = backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size();</div>
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span> }</div>
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span> </div>
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> <span class="comment">// form asymmetry including error propagation</span></div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> Double_t asym,error;</div>
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> Double_t fp, bp, efp, ebp;</div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span> Double_t fm, bm, efm, ebm;</div>
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span> <span class="comment">// fill data time start, and step</span></div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> <span class="comment">// data start at data_start-t0 shifted by (pack-1)/2</span></div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</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="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0])-<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0]+<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>-1)/2.0));</div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.SetDataTimeStep(<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="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>));</div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;noOfBins; i++) {</div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> <span class="comment">// to make the formulae more readable</span></div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> fp = forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> bp = backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> efp = forwardpPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> ebp = backwardpPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> fm = forwardmPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> bm = backwardmPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> efm = forwardmPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> ebm = backwardmPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> <span class="comment">// check that there are indeed bins</span></div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> <span class="keywordflow">if</span> (fp+bp != 0.0)</div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> asym = (fp-bp) / (fp+bp) - (fm-bm) / (fm+bm);</div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> asym = 0.0;</div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendValue(asym);</div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> <span class="comment">// calculate the error</span></div>
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span> <span class="keywordflow">if</span> (fp+bp != 0.0)</div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span> errorp = 2.0/((fp+bp)*(fp+bp))*TMath::Sqrt(bp*bp*efp*efp+ebp*ebp*fp*fp);</div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> errorp = 1.0;</div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordflow">if</span> (fm+bm != 0.0)</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> errorm = 2.0/((fm+bm)*(fm+bm))*TMath::Sqrt(bm*bm*efm*efm+ebm*ebm*fm*fm);</div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> errorp = 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> error = TMath::Sqrt(errorp*errorp+errorm*errorm);</div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendErrorValue(error);</div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> }</div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> </div>
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#aab556ccc02437934c00e35efcf99664d">CalcNoOfFitBins</a>();</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">// clean up</span></div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.clear();</div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>.clear();</div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.clear();</div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>.clear();</div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>.clear();</div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>.clear();</div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>.clear();</div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>.clear();</div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> </div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span>}</div>
</div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01246" data-start="{" data-end="}">
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a1f759a3c1338fa828577d7e9f0b3cbfe"> 1246</a></span>Bool_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a1f759a3c1338fa828577d7e9f0b3cbfe">PRunAsymmetryBNMR::PrepareViewData</a>(<a class="code hl_class" href="classPRawRunData.html">PRawRunData</a>* runData, UInt_t histoNo[2])</div>
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span>{</div>
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> <span class="comment">// check if view_packing is wished</span></div>
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> Int_t packing = <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">fPacking</a>;</div>
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrPlotList()-&gt;at(0).fViewPacking &gt; 0) {</div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> packing = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrPlotList()-&gt;at(0).fViewPacking;</div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> }</div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> </div>
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> <span class="comment">// feed the parameter vector</span></div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> std::vector&lt;Double_t&gt; par;</div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</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="l01257" name="l01257"></a><span class="lineno"> 1257</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;paramList-&gt;size(); i++)</div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> par.push_back((*paramList)[i].fValue);</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">// transform raw histo data. This is done the following way (for details see the manual):</span></div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <span class="comment">// first rebin the data, than calculate the asymmetry</span></div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> </div>
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">// first get start data, end data, and t0</span></div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> Int_t start[2] = {<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0], <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[2]};</div>
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> Int_t end[2] = {<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[1], <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[3]};</div>
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> Int_t t0[2] = {<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]), <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>[1])};</div>
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> </div>
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> <span class="comment">// check if the data ranges and t0&#39;s between forward/backward are compatible</span></div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> Int_t fgb[2];</div>
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> <span class="keywordflow">if</span> (start[0]-t0[0] != start[1]-t0[1]) { <span class="comment">// wrong fgb aligning</span></div>
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> <span class="keywordflow">if</span> (abs(start[0]-t0[0]) &gt; abs(start[1]-t0[1])) {</div>
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> fgb[0] = start[0];</div>
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> fgb[1] = t0[1] + start[0]-t0[0];</div>
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareViewData(): **WARNING** needed to shift backward fgb from &quot;</span>;</div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> std::cerr &lt;&lt; start[1] &lt;&lt; <span class="stringliteral">&quot; to &quot;</span> &lt;&lt; fgb[1] &lt;&lt; std::endl;</div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> fgb[0] = t0[0] + start[1]-t0[1];</div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> fgb[1] = start[1];</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareViewData(): **WARNING** needed to shift forward fgb from &quot;</span>;</div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> std::cerr &lt;&lt; start[0] &lt;&lt; <span class="stringliteral">&quot; to &quot;</span> &lt;&lt; fgb[0] &lt;&lt; std::endl;</div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> }</div>
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> } <span class="keywordflow">else</span> { <span class="comment">// fgb aligning is correct</span></div>
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> fgb[0] = start[0];</div>
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> fgb[1] = start[1];</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> </div>
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> Int_t val = fgb[0]-packing*(fgb[0]/packing);</div>
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> <span class="keywordflow">if</span> (fgb[1] - fgb[0] &lt; 0)</div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> val += packing;</div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> } <span class="keywordflow">while</span> (val + fgb[1] - fgb[0] &lt; 0);</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> start[0] = val;</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> start[1] = val + fgb[1] - fgb[0];</div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> </div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">// make sure that there are equal number of rebinned bins in forward and backward</span></div>
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> UInt_t noOfBins0 = (runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[0])-&gt;size()-start[0])/packing;</div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> UInt_t noOfBins1 = (runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[1])-&gt;size()-start[1])/packing;</div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> <span class="keywordflow">if</span> (noOfBins0 &gt; noOfBins1)</div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> noOfBins0 = noOfBins1;</div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> end[0] = start[0] + noOfBins0 * packing;</div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span> end[1] = start[1] + noOfBins0 * packing;</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> </div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> <span class="comment">// check if start, end, and t0 make any sense</span></div>
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> <span class="comment">// 1st check if start and end are in proper order</span></div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++) {</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> <span class="keywordflow">if</span> (end[i] &lt; start[i]) { <span class="comment">// need to swap them</span></div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> Int_t keep = end[i];</div>
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> end[i] = start[i];</div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> start[i] = keep;</div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> }</div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> <span class="comment">// 2nd check if start is within proper bounds</span></div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> <span class="keywordflow">if</span> ((start[i] &lt; 0) || (start[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="l01314" name="l01314"></a><span class="lineno"> 1314</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareViewData(): **ERROR** start data bin doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> <span class="keywordflow">return</span> <span class="keyword">false</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> <span class="comment">// 3rd check if end is within proper bounds</span></div>
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> <span class="keywordflow">if</span> ((end[i] &lt; 0) || (end[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="l01320" name="l01320"></a><span class="lineno"> 1320</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareViewData(): **ERROR** end data bin doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span> }</div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span> <span class="comment">// 4th check if t0 is within proper bounds</span></div>
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span> <span class="keywordflow">if</span> ((t0[i] &lt; 0) || (t0[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="l01326" name="l01326"></a><span class="lineno"> 1326</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareViewData(): **ERROR** t0 data bin doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> }</div>
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span> }</div>
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span> </div>
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span> <span class="comment">// everything looks fine, hence fill packed forward and backward histo</span></div>
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> forwardpPacked;</div>
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> backwardpPacked;</div>
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> forwardmPacked;</div>
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> <a class="code hl_class" href="classPRunData.html">PRunData</a> backwardmPacked;</div>
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> Double_t valuep = 0.0;</div>
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> Double_t errorp = 0.0;</div>
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span> Double_t valuem = 0.0;</div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> Double_t errorm = 0.0;</div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> Double_t value = 0.0;</div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> Double_t error = 0.0;</div>
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span> </div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> <span class="comment">// forward</span></div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordflow">for</span> (Int_t i=start[0]; i&lt;end[0]; i++) {</div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> <span class="keywordflow">if</span> (packing == 1) {</div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i]);</div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>[i]);</div>
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i]);</div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>[i]);</div>
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> } <span class="keywordflow">else</span> { <span class="comment">// packed data, i.e. packing &gt; 1</span></div>
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span> <span class="keywordflow">if</span> (((i-start[0]) % packing == 0) &amp;&amp; (i != start[0])) { <span class="comment">// fill data</span></div>
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span> <span class="comment">// in order that after rebinning the fit does not need to be redone (important for plots)</span></div>
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span> <span class="comment">// the value is normalize to per bin</span></div>
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span> valuep /= packing;</div>
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuep);</div>
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span> valuem /= packing;</div>
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuem);</div>
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span> <span class="keywordflow">if</span> (valuep == 0.0) {</div>
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span> forwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorp)/packing);</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="keywordflow">if</span> (valuem == 0.0) {</div>
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span> forwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorm)/packing);</div>
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span> }</div>
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span> valuep = 0.0;</div>
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span> errorp = 0.0;</div>
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span> valuem = 0.0;</div>
<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span> errorm = 0.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> valuep += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i];</div>
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span> errorp += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>[i];</div>
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span> valuem += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i];</div>
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span> errorm += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>[i];</div>
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span> }</div>
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span> }</div>
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span> </div>
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span> <span class="comment">// backward</span></div>
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span> <span class="keywordflow">for</span> (Int_t i=start[1]; i&lt;end[1]; i++) {</div>
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span> <span class="keywordflow">if</span> (packing == 1) {</div>
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i]);</div>
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>[i]);</div>
<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i]);</div>
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>[i]);</div>
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span> } <span class="keywordflow">else</span> { <span class="comment">// packed data, i.e. packing &gt; 1</span></div>
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span> <span class="keywordflow">if</span> (((i-start[1]) % packing == 0) &amp;&amp; (i != start[1])) { <span class="comment">// fill data</span></div>
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span> <span class="comment">// in order that after rebinning the fit does not need to be redone (important for plots)</span></div>
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> <span class="comment">// the value is normalize to per bin</span></div>
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span> valuep /= packing;</div>
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span> valuem /= packing;</div>
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuep);</div>
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">AppendValue</a>(valuem);</div>
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> <span class="keywordflow">if</span> (valuep == 0.0) {</div>
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> backwardpPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorp)/packing);</div>
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> }</div>
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span> <span class="keywordflow">if</span> (valuem == 0.0) {</div>
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(1.0);</div>
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> backwardmPacked.<a class="code hl_function" href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">AppendErrorValue</a>(TMath::Sqrt(errorm)/packing);</div>
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> }</div>
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span> valuep = 0.0;</div>
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> errorp = 0.0;</div>
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span> valuem = 0.0;</div>
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> errorm = 0.0;</div>
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> }</div>
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span> valuep += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i];</div>
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> errorp += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>[i];</div>
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span> valuem += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i];</div>
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span> errorm += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>[i]*<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>[i];</div>
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span> }</div>
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span> }</div>
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span> </div>
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span> <span class="comment">// check if packed forward and backward hist have the same size, otherwise take the minimum size</span></div>
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span> UInt_t noOfBins = forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size();</div>
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span> <span class="keywordflow">if</span> (forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size() != backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size()) {</div>
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span> <span class="keywordflow">if</span> (forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size() &gt; backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size())</div>
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span> noOfBins = backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size();</div>
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span> }</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">// form asymmetry including error propagation</span></div>
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span> Double_t asym;</div>
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span> Double_t fp, bp, efp, ebp, alpha, beta = 1.0;</div>
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span> Double_t fm, bm, efm, ebm;</div>
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span> <span class="comment">// set data time start, and step</span></div>
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span> <span class="comment">// data start at data_start-t0</span></div>
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</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>(start[0])-t0[0]+<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(packing-1)/2.0));</div>
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.SetDataTimeStep(<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>(packing));</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="comment">// Get estimate for alpha once</span></div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span> alpha = <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a3adbbef3f261a341afc20fc639721de4">EstimateAlpha</a>();</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">// get the proper alpha and beta</span></div>
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">fAlphaBetaTag</a>) {</div>
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span> <span class="keywordflow">case</span> 1: <span class="comment">// alpha == 1, beta == 1</span></div>
<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span> alpha = 1.0;</div>
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span> beta = 1.0;</div>
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span> <span class="keywordflow">case</span> 2: <span class="comment">// alpha != 1, beta == 1</span></div>
<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"> 1444</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// alpha is a parameter</span></div>
<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span> alpha = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-1];</div>
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span> } <span class="keywordflow">else</span> { <span class="comment">// alpha is function</span></div>
<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span> alpha = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l01451" name="l01451"></a><span class="lineno"> 1451</span> }</div>
<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</span> beta = 1.0;</div>
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span> <span class="keywordflow">case</span> 3: <span class="comment">// alpha == 1, beta != 1</span></div>
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span> alpha = 1.0;</div>
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span> beta = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span> beta = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l01463" name="l01463"></a><span class="lineno"> 1463</span> }</div>
<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span> <span class="keywordflow">case</span> 4: <span class="comment">// alpha != 1, beta != 1</span></div>
<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// alpha is a parameter</span></div>
<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span> alpha = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-1];</div>
<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span> } <span class="keywordflow">else</span> { <span class="comment">// alpha is function</span></div>
<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAlphaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span> alpha = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l01473" name="l01473"></a><span class="lineno"> 1473</span> }</div>
<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"> 1474</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"> 1475</span> beta = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"> 1477</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"> 1478</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"> 1480</span> beta = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l01481" name="l01481"></a><span class="lineno"> 1481</span> }</div>
<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span> <span class="keywordflow">case</span> 5: <span class="comment">// alpha ?? , beta == 1</span></div>
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span> <span class="comment">// use estimated value</span></div>
<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span> beta = 1.0;</div>
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> <span class="keywordflow">case</span> 6: <span class="comment">// alpha ??, beta != 1</span></div>
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> <span class="comment">// use estimated value</span></div>
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo() &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// beta is a parameter</span></div>
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> beta = par[<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-1];</div>
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span> } <span class="keywordflow">else</span> { <span class="comment">// beta is a function</span></div>
<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span> <span class="comment">// get function number</span></div>
<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span> UInt_t funNo = <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetBetaParamNo()-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>;</div>
<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span> <span class="comment">// evaluate function</span></div>
<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"> 1495</span> beta = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;EvalFunc(funNo, *<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="l01496" name="l01496"></a><span class="lineno"> 1496</span> }</div>
<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"> 1500</span> }</div>
<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"> 1501</span> </div>
<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"> 1502</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;size(); i++) {</div>
<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span> <span class="comment">// to make the formulae more readable</span></div>
<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span> fp = forwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01505" name="l01505"></a><span class="lineno"> 1505</span> bp = backwardpPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"> 1506</span> efp = forwardpPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"> 1507</span> ebp = backwardpPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span> fm = forwardmPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span> bm = backwardmPacked.<a class="code hl_function" href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">GetValue</a>()-&gt;at(i);</div>
<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span> efm = forwardmPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"> 1511</span> ebm = backwardmPacked.<a class="code hl_function" href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">GetError</a>()-&gt;at(i);</div>
<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">// check that there are indeed bins</span></div>
<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span> <span class="keywordflow">if</span> (fp+bp != 0.0) </div>
<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span> asym = (alpha*fp-bp) / (alpha*beta*fp+bp) - (alpha*fm-bm) / (alpha*beta*fm+bm);</div>
<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span> asym = 0.0;</div>
<div class="line"><a id="l01517" name="l01517"></a><span class="lineno"> 1517</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendValue(asym);</div>
<div class="line"><a id="l01518" name="l01518"></a><span class="lineno"> 1518</span> <span class="comment">// calculate the error</span></div>
<div class="line"><a id="l01519" name="l01519"></a><span class="lineno"> 1519</span> <span class="keywordflow">if</span> (fp+bp != 0.0)</div>
<div class="line"><a id="l01520" name="l01520"></a><span class="lineno"> 1520</span> errorp = 2.0/((fp+bp)*(fp+bp))*TMath::Sqrt(bp*bp*efp*efp+ebp*ebp*fp*fp);</div>
<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"> 1521</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span> errorp = 1.0;</div>
<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span> <span class="keywordflow">if</span> (fm+bm != 0.0)</div>
<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"> 1524</span> errorm = 2.0/((fm+bm)*(fm+bm))*TMath::Sqrt(bm*bm*efm*efm+ebm*ebm*fm*fm);</div>
<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"> 1525</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span> errorm = 1.0;</div>
<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</span> error = TMath::Sqrt(errorp*errorp+errorm*errorm);</div>
<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendErrorValue(error);</div>
<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span> }</div>
<div class="line"><a id="l01530" name="l01530"></a><span class="lineno"> 1530</span> </div>
<div class="line"><a id="l01531" name="l01531"></a><span class="lineno"> 1531</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#aab556ccc02437934c00e35efcf99664d">CalcNoOfFitBins</a>();</div>
<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span> </div>
<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.clear();</div>
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">fForwardpErr</a>.clear();</div>
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.clear();</div>
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">fBackwardpErr</a>.clear();</div>
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>.clear();</div>
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">fForwardmErr</a>.clear();</div>
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>.clear();</div>
<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"> 1541</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">fBackwardmErr</a>.clear();</div>
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span> </div>
<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"> 1543</span> <span class="comment">// fill theory vector for kView</span></div>
<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"> 1544</span> <span class="comment">// calculate functions</span></div>
<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"> 1545</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="l01546" name="l01546"></a><span class="lineno"> 1546</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="l01547" name="l01547"></a><span class="lineno"> 1547</span> }</div>
<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"> 1548</span> </div>
<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"> 1549</span> <span class="comment">// calculate theory</span></div>
<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</span> UInt_t size = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[0])-&gt;size();</div>
<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span> </div>
<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</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="l01553" name="l01553"></a><span class="lineno"> 1553</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="l01554" name="l01554"></a><span class="lineno"> 1554</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a95f265a456a127354923c6ae190d99df">fTheoAsData</a>) { <span class="comment">// calculate theory only at the data points</span></div>
<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</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="l01556" name="l01556"></a><span class="lineno"> 1556</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span> <span class="comment">// finer binning for the theory (8 times as many points = factor)</span></div>
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span> size *= factor;</div>
<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</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="l01560" name="l01560"></a><span class="lineno"> 1560</span> }</div>
<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span> </div>
<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"> 1562</span> Double_t time;</div>
<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;size; i++) {</div>
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</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="l01565" name="l01565"></a><span class="lineno"> 1565</span> value = <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="l01566" name="l01566"></a><span class="lineno"> 1566</span> <span class="keywordflow">if</span> (fabs(value) &gt; 10.0) { <span class="comment">// dirty hack needs to be fixed!!</span></div>
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span> value = 0.0;</div>
<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</span> }</div>
<div class="line"><a id="l01569" name="l01569"></a><span class="lineno"> 1569</span> <a class="code hl_variable" href="classPRunBase.html#ac2cb35c79fbebe631fdb565946417eed">fData</a>.AppendTheoryValue(value);</div>
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> }</div>
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span> </div>
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span> par.clear();</div>
<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span> </div>
<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"> 1575</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span>}</div>
</div>
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</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">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span><span class="comment">// GetProperT0 (private)</span></div>
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01600" data-start="{" data-end="}">
<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a026b5e554e7c8f3bda7d340e50d9f015"> 1600</a></span>Bool_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a026b5e554e7c8f3bda7d340e50d9f015">PRunAsymmetryBNMR::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;forwardHistoNo, <a class="code hl_typedef" href="PMusr_8h.html#a01eec7e896afb5c4601dea91ee31477b">PUIntVector</a> &amp;backwardHistoNo)</div>
<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</span>{</div>
<div class="line"><a id="l01602" name="l01602"></a><span class="lineno"> 1602</span> <span class="comment">// feed all T0&#39;s</span></div>
<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</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="l01604" name="l01604"></a><span class="lineno"> 1604</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>.clear();</div>
<div class="line"><a id="l01605" name="l01605"></a><span class="lineno"> 1605</span> <span class="comment">// this strange fT0 size estimate is needed in case #forw histos != #back histos</span></div>
<div class="line"><a id="l01606" name="l01606"></a><span class="lineno"> 1606</span> <span class="keywordtype">size_t</span> size = 2*forwardHistoNo.size();</div>
<div class="line"><a id="l01607" name="l01607"></a><span class="lineno"> 1607</span> <span class="keywordflow">if</span> (backwardHistoNo.size() &gt; forwardHistoNo.size())</div>
<div class="line"><a id="l01608" name="l01608"></a><span class="lineno"> 1608</span> size = 2*backwardHistoNo.size();</div>
<div class="line"><a id="l01609" name="l01609"></a><span class="lineno"> 1609</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>.resize(size);</div>
<div class="line"><a id="l01610" name="l01610"></a><span class="lineno"> 1610</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="l01611" name="l01611"></a><span class="lineno"> 1611</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] = -1.0;</div>
<div class="line"><a id="l01612" name="l01612"></a><span class="lineno"> 1612</span> }</div>
<div class="line"><a id="l01613" name="l01613"></a><span class="lineno"> 1613</span> </div>
<div class="line"><a id="l01614" name="l01614"></a><span class="lineno"> 1614</span> <span class="comment">// fill in the T0&#39;s from the msr-file (if present)</span></div>
<div class="line"><a id="l01615" name="l01615"></a><span class="lineno"> 1615</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="l01616" name="l01616"></a><span class="lineno"> 1616</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="l01617" name="l01617"></a><span class="lineno"> 1617</span> }</div>
<div class="line"><a id="l01618" name="l01618"></a><span class="lineno"> 1618</span> </div>
<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"> 1619</span> <span class="comment">// fill in the missing T0&#39;s from the GLOBAL block section (if present)</span></div>
<div class="line"><a id="l01620" name="l01620"></a><span class="lineno"> 1620</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="l01621" name="l01621"></a><span class="lineno"> 1621</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[i] == -1) { <span class="comment">// i.e. not given in the RUN block section</span></div>
<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</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="l01623" name="l01623"></a><span class="lineno"> 1623</span> }</div>
<div class="line"><a id="l01624" name="l01624"></a><span class="lineno"> 1624</span> }</div>
<div class="line"><a id="l01625" name="l01625"></a><span class="lineno"> 1625</span> </div>
<div class="line"><a id="l01626" name="l01626"></a><span class="lineno"> 1626</span> <span class="comment">// fill in the missing T0&#39;s from the data file, if not already present in the msr-file</span></div>
<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"> 1627</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;forwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l01628" name="l01628"></a><span class="lineno"> 1628</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*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="l01629" name="l01629"></a><span class="lineno"> 1629</span> <span class="keywordflow">if</span> (runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(forwardHistoNo[i]) &gt; 0.0) {</div>
<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"> 1630</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(forwardHistoNo[i]);</div>
<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"> 1631</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>[2*i], 2*i);</div>
<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span> }</div>
<div class="line"><a id="l01633" name="l01633"></a><span class="lineno"> 1633</span> }</div>
<div class="line"><a id="l01634" name="l01634"></a><span class="lineno"> 1634</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;backwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"> 1635</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i+1] == -1.0) <span class="comment">// i.e. not present in the msr-file, try the data file</span></div>
<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</span> <span class="keywordflow">if</span> (runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(backwardHistoNo[i]) &gt; 0.0) {</div>
<div class="line"><a id="l01637" name="l01637"></a><span class="lineno"> 1637</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i+1] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(backwardHistoNo[i]);</div>
<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</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>[2*i+1], 2*i+1);</div>
<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span> }</div>
<div class="line"><a id="l01640" name="l01640"></a><span class="lineno"> 1640</span> }</div>
<div class="line"><a id="l01641" name="l01641"></a><span class="lineno"> 1641</span> </div>
<div class="line"><a id="l01642" name="l01642"></a><span class="lineno"> 1642</span> <span class="comment">// fill in the T0&#39;s gaps, i.e. in case the T0&#39;s are NEITHER in the msr-file and NOR in the data file</span></div>
<div class="line"><a id="l01643" name="l01643"></a><span class="lineno"> 1643</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;forwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l01644" name="l01644"></a><span class="lineno"> 1644</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*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="l01645" name="l01645"></a><span class="lineno"> 1645</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(forwardHistoNo[i]);</div>
<div class="line"><a id="l01646" name="l01646"></a><span class="lineno"> 1646</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>[2*i], 2*i);</div>
<div class="line"><a id="l01647" name="l01647"></a><span class="lineno"> 1647</span> </div>
<div class="line"><a id="l01648" name="l01648"></a><span class="lineno"> 1648</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l01649" name="l01649"></a><span class="lineno"> 1649</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="l01650" name="l01650"></a><span class="lineno"> 1650</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>(forwardHistoNo[i]);</div>
<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"> 1651</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS OK!! For instance for LEM this is almost for sure rubbish!&quot;</span>;</div>
<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"> 1652</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"> 1653</span> }</div>
<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"> 1654</span> }</div>
<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;backwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"> 1656</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i+1] == -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="l01657" name="l01657"></a><span class="lineno"> 1657</span> <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i+1] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(backwardHistoNo[i]);</div>
<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</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>[2*i+1], 2*i+1);</div>
<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span> </div>
<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l01661" name="l01661"></a><span class="lineno"> 1661</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="l01662" name="l01662"></a><span class="lineno"> 1662</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; will try the estimated one: backward t0 = &quot;</span> &lt;&lt; runData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(backwardHistoNo[i]);</div>
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS OK!! For instance for LEM this is almost for sure rubbish!&quot;</span>;</div>
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span> }</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> </div>
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span> <span class="comment">// check if t0 is within proper bounds</span></div>
<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;forwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span> <span class="keywordflow">if</span> ((<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i] &lt; 0) || (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*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>(forwardHistoNo[i])-&gt;size()))) {</div>
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperT0(): **ERROR** t0 data bin (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i] &lt;&lt; <span class="stringliteral">&quot;) doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; forwardHistoNo &quot;</span> &lt;&lt; forwardHistoNo[i];</div>
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01675" name="l01675"></a><span class="lineno"> 1675</span> }</div>
<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span> }</div>
<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;backwardHistoNo.size(); i++) {</div>
<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> <span class="keywordflow">if</span> ((<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i+1] &lt; 0) || (<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i+1] &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>(backwardHistoNo[i])-&gt;size()))) {</div>
<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::PrepareData(): **ERROR** t0 data bin (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[2*i+1] &lt;&lt; <span class="stringliteral">&quot;) doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"> 1680</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; backwardHistoNo &quot;</span> &lt;&lt; backwardHistoNo[i];</div>
<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"> 1681</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</span> }</div>
<div class="line"><a id="l01684" name="l01684"></a><span class="lineno"> 1684</span> }</div>
<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</span> </div>
<div class="line"><a id="l01686" name="l01686"></a><span class="lineno"> 1686</span> <span class="comment">// check if addrun&#39;s are present, and if yes add the necessary t0&#39;s</span></div>
<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"> 1687</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="l01688" name="l01688"></a><span class="lineno"> 1688</span> <a class="code hl_class" href="classPRawRunData.html">PRawRunData</a> *addRunData;</div>
<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"> 1689</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="l01690" name="l01690"></a><span class="lineno"> 1690</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="l01691" name="l01691"></a><span class="lineno"> 1691</span> <span class="comment">// get run to be added to the main one</span></div>
<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</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="l01693" name="l01693"></a><span class="lineno"> 1693</span> <span class="keywordflow">if</span> (addRunData == 0) { <span class="comment">// couldn&#39;t get run</span></div>
<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l01695" name="l01695"></a><span class="lineno"> 1695</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"> 1696</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01697" name="l01697"></a><span class="lineno"> 1697</span> }</div>
<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"> 1698</span> </div>
<div class="line"><a id="l01699" name="l01699"></a><span class="lineno"> 1699</span> <span class="comment">// feed all T0&#39;s</span></div>
<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"> 1700</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="l01701" name="l01701"></a><span class="lineno"> 1701</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1].clear();</div>
<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"> 1702</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1].resize(2*forwardHistoNo.size());</div>
<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"> 1703</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="l01704" name="l01704"></a><span class="lineno"> 1704</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][j] = -1.0;</div>
<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"> 1705</span> }</div>
<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"> 1706</span> </div>
<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"> 1707</span> <span class="comment">// fill in the T0&#39;s from the msr-file (if present)</span></div>
<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span> <span class="keywordflow">for</span> (Int_t j=0; j&lt;<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetAddT0BinSize(i-1); j++) {</div>
<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"> 1709</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);</div>
<div class="line"><a id="l01710" name="l01710"></a><span class="lineno"> 1710</span> }</div>
<div class="line"><a id="l01711" name="l01711"></a><span class="lineno"> 1711</span> </div>
<div class="line"><a id="l01712" name="l01712"></a><span class="lineno"> 1712</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="l01713" name="l01713"></a><span class="lineno"> 1713</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;forwardHistoNo.size(); j++) {</div>
<div class="line"><a id="l01714" name="l01714"></a><span class="lineno"> 1714</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*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="l01715" name="l01715"></a><span class="lineno"> 1715</span> <span class="keywordflow">if</span> (addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(forwardHistoNo[j]) &gt; 0.0) {</div>
<div class="line"><a id="l01716" name="l01716"></a><span class="lineno"> 1716</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*j] = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(forwardHistoNo[j]);</div>
<div class="line"><a id="l01717" name="l01717"></a><span class="lineno"> 1717</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][2*j], i-1, 2*j);</div>
<div class="line"><a id="l01718" name="l01718"></a><span class="lineno"> 1718</span> }</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> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;backwardHistoNo.size(); j++) {</div>
<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*j+1] == -1.0) <span class="comment">// i.e. not present in the msr-file, try the data file</span></div>
<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"> 1722</span> <span class="keywordflow">if</span> (addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(backwardHistoNo[j]) &gt; 0.0) {</div>
<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"> 1723</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*j+1] = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#a33181b5d9eb4cc9b78eb1eaa4b3a19c5">GetT0Bin</a>(backwardHistoNo[j]);</div>
<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</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][2*j+1], i-1, 2*j+1);</div>
<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"> 1725</span> }</div>
<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"> 1726</span> }</div>
<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"> 1727</span> </div>
<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"> 1728</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="l01729" name="l01729"></a><span class="lineno"> 1729</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;forwardHistoNo.size(); j++) {</div>
<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"> 1730</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*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="l01731" name="l01731"></a><span class="lineno"> 1731</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*j] = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(forwardHistoNo[j]);</div>
<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</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][2*j], i-1, 2*j);</div>
<div class="line"><a id="l01733" name="l01733"></a><span class="lineno"> 1733</span> </div>
<div class="line"><a id="l01734" name="l01734"></a><span class="lineno"> 1734</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l01735" name="l01735"></a><span class="lineno"> 1735</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="l01736" name="l01736"></a><span class="lineno"> 1736</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>(forwardHistoNo[j]);</div>
<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS OK!! For instance for LEM this is almost for sure rubbish!&quot;</span>;</div>
<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"> 1738</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01739" name="l01739"></a><span class="lineno"> 1739</span> }</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> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;backwardHistoNo.size(); j++) {</div>
<div class="line"><a id="l01742" name="l01742"></a><span class="lineno"> 1742</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*j+1] == -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="l01743" name="l01743"></a><span class="lineno"> 1743</span> <a class="code hl_variable" href="classPRunBase.html#ab5f96afcdca519f9a33a9fd9a3a6c67d">fAddT0s</a>[i-1][2*j+1] = addRunData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(backwardHistoNo[j]);</div>
<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"> 1744</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][2*j+1], i-1, 2*j+1);</div>
<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span> </div>
<div class="line"><a id="l01746" name="l01746"></a><span class="lineno"> 1746</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::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="l01747" name="l01747"></a><span class="lineno"> 1747</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="l01748" name="l01748"></a><span class="lineno"> 1748</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; will try the estimated one: backward t0 = &quot;</span> &lt;&lt; runData-&gt;<a class="code hl_function" href="classPRawRunData.html#addd228be02d78cd6170cb224975fed25">GetT0BinEstimated</a>(backwardHistoNo[j]);</div>
<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"> 1749</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS OK!! For instance for LEM this is almost for sure rubbish!&quot;</span>;</div>
<div class="line"><a id="l01750" name="l01750"></a><span class="lineno"> 1750</span> std::cerr &lt;&lt; std::endl;</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> }</div>
<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"> 1754</span> }</div>
<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"> 1755</span> </div>
<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span>}</div>
</div>
<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span> </div>
<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span><span class="comment">// GetProperDataRange (private)</span></div>
<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"> 1761</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01775" data-start="{" data-end="}">
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#aed6d7e7341dc25b66f8fb730225b2bd6"> 1775</a></span>Bool_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#aed6d7e7341dc25b66f8fb730225b2bd6">PRunAsymmetryBNMR::GetProperDataRange</a>(<a class="code hl_class" href="classPRawRunData.html">PRawRunData</a>* runData, UInt_t histoNo[2])</div>
<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"> 1776</span>{</div>
<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"> 1777</span> <span class="comment">// first get start/end data</span></div>
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span> Int_t start[2] = {<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(0), <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(2)};</div>
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> Int_t end[2] = {<a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(1), <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(3)};</div>
<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span> <span class="comment">// check if data range has been provided in the RUN block. If not, try the GLOBAL block</span></div>
<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span> <span class="keywordflow">if</span> (start[0] == -1) {</div>
<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span> start[0] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetDataRange(0);</div>
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"> 1783</span> }</div>
<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span> <span class="keywordflow">if</span> (start[1] == -1) {</div>
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span> start[1] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetDataRange(2);</div>
<div class="line"><a id="l01786" name="l01786"></a><span class="lineno"> 1786</span> }</div>
<div class="line"><a id="l01787" name="l01787"></a><span class="lineno"> 1787</span> <span class="keywordflow">if</span> (end[0] == -1) {</div>
<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span> end[0] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetDataRange(1);</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">if</span> (end[1] == -1) {</div>
<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"> 1791</span> end[1] = <a class="code hl_variable" href="classPRunBase.html#a6deb4b8c63d7754ab2222659e2920631">fMsrInfo</a>-&gt;GetMsrGlobal()-&gt;GetDataRange(3);</div>
<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"> 1792</span> }</div>
<div class="line"><a id="l01793" name="l01793"></a><span class="lineno"> 1793</span> </div>
<div class="line"><a id="l01794" name="l01794"></a><span class="lineno"> 1794</span> Double_t t0[2] = {<a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[0], <a class="code hl_variable" href="classPRunBase.html#ad3be9a269b89805d9e1a5ffa1a8d6ec9">fT0s</a>[1]};</div>
<div class="line"><a id="l01795" name="l01795"></a><span class="lineno"> 1795</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>)); <span class="comment">// needed in case first good bin is not given, default = 10ns</span></div>
<div class="line"><a id="l01796" name="l01796"></a><span class="lineno"> 1796</span> </div>
<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"> 1797</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="l01798" name="l01798"></a><span class="lineno"> 1798</span> <span class="keywordflow">if</span> (start[0] &lt; 0) {</div>
<div class="line"><a id="l01799" name="l01799"></a><span class="lineno"> 1799</span> start[0] = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(t0[0])+offset;</div>
<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetDataRange(start[0], 0);</div>
<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **WARNING** data range (forward) 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[0] &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div>
<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS DOES MAKE ANY SENSE.&quot;</span>;</div>
<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span> }</div>
<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span> <span class="keywordflow">if</span> (start[1] &lt; 0) {</div>
<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"> 1806</span> start[1] = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(t0[1])+offset;</div>
<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetDataRange(start[1], 2);</div>
<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"> 1808</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **WARNING** data range (backward) 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[1] &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div>
<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS DOES MAKE ANY SENSE.&quot;</span>;</div>
<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"> 1810</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</span> }</div>
<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span> <span class="keywordflow">if</span> (end[0] &lt; 0) {</div>
<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"> 1813</span> end[0] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[0])-&gt;size();</div>
<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"> 1814</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetDataRange(end[0], 1);</div>
<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **WARNING** data range (forward) was not provided, will try data range end = &quot;</span> &lt;&lt; end[0] &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div>
<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS DOES MAKE ANY SENSE.&quot;</span>;</div>
<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span> }</div>
<div class="line"><a id="l01819" name="l01819"></a><span class="lineno"> 1819</span> <span class="keywordflow">if</span> (end[1] &lt; 0) {</div>
<div class="line"><a id="l01820" name="l01820"></a><span class="lineno"> 1820</span> end[1] = runData-&gt;<a class="code hl_function" href="classPRawRunData.html#a3156b125b9e2c6b2e643f479ccda500b">GetDataBin</a>(histoNo[1])-&gt;size();</div>
<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span> <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;SetDataRange(end[1], 3);</div>
<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **WARNING** data range (backward) was not provided, will try data range end = &quot;</span> &lt;&lt; end[1] &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div>
<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; NO GUARANTEE THAT THIS DOES MAKE ANY SENSE.&quot;</span>;</div>
<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01825" name="l01825"></a><span class="lineno"> 1825</span> }</div>
<div class="line"><a id="l01826" name="l01826"></a><span class="lineno"> 1826</span> </div>
<div class="line"><a id="l01827" name="l01827"></a><span class="lineno"> 1827</span> <span class="comment">// check if start, end, and t0 make any sense</span></div>
<div class="line"><a id="l01828" name="l01828"></a><span class="lineno"> 1828</span> <span class="comment">// 1st check if start and end are in proper order</span></div>
<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++) {</div>
<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"> 1830</span> <span class="keywordflow">if</span> (end[i] &lt; start[i]) { <span class="comment">// need to swap them</span></div>
<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"> 1831</span> Int_t keep = end[i];</div>
<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span> end[i] = start[i];</div>
<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span> start[i] = keep;</div>
<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</span> }</div>
<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span> <span class="comment">// 2nd check if start is within proper bounds</span></div>
<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span> <span class="keywordflow">if</span> ((start[i] &lt; 0) || (start[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="l01837" name="l01837"></a><span class="lineno"> 1837</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **ERROR** start data bin doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> }</div>
<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"> 1841</span> <span class="comment">// 3rd check if end is within proper bounds</span></div>
<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span> <span class="keywordflow">if</span> (end[i] &lt; 0) {</div>
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **ERROR** end data bin (&quot;</span> &lt;&lt; end[i] &lt;&lt; <span class="stringliteral">&quot;) doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01846" name="l01846"></a><span class="lineno"> 1846</span> }</div>
<div class="line"><a id="l01847" name="l01847"></a><span class="lineno"> 1847</span> <span class="keywordflow">if</span> (end[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="l01848" name="l01848"></a><span class="lineno"> 1848</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **WARNING** end data bin (&quot;</span> &lt;&lt; end[i] &lt;&lt; <span class="stringliteral">&quot;) &gt; histo length (&quot;</span> &lt;&lt; <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()) &lt;&lt; <span class="stringliteral">&quot;).&quot;</span>;</div>
<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</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="l01850" name="l01850"></a><span class="lineno"> 1850</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span> end[i] = <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())-1;</div>
<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span> }</div>
<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span> <span class="comment">// 4th check if t0 is within proper bounds</span></div>
<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</span> <span class="keywordflow">if</span> ((t0[i] &lt; 0) || (t0[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="l01855" name="l01855"></a><span class="lineno"> 1855</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange(): **ERROR** t0 data bin doesn&#39;t make any sense!&quot;</span>;</div>
<div class="line"><a id="l01856" name="l01856"></a><span class="lineno"> 1856</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"> 1857</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l01858" name="l01858"></a><span class="lineno"> 1858</span> }</div>
<div class="line"><a id="l01859" name="l01859"></a><span class="lineno"> 1859</span> }</div>
<div class="line"><a id="l01860" name="l01860"></a><span class="lineno"> 1860</span> </div>
<div class="line"><a id="l01861" name="l01861"></a><span class="lineno"> 1861</span> <span class="comment">// check that start-t0 is the same for forward as for backward, otherwise take max(start[i]-t0[i])</span></div>
<div class="line"><a id="l01862" name="l01862"></a><span class="lineno"> 1862</span> <span class="keywordflow">if</span> (fabs(<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(start[0])-t0[0]) &gt; fabs(<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(start[1])-t0[1])){</div>
<div class="line"><a id="l01863" name="l01863"></a><span class="lineno"> 1863</span> start[1] = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(t0[1] + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(start[0]) - t0[0]);</div>
<div class="line"><a id="l01864" name="l01864"></a><span class="lineno"> 1864</span> end[1] = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(t0[1] + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end[0]) - t0[0]);</div>
<div class="line"><a id="l01865" name="l01865"></a><span class="lineno"> 1865</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange **WARNING** needed to shift backward data range.&quot;</span>;</div>
<div class="line"><a id="l01866" name="l01866"></a><span class="lineno"> 1866</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; given: &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(2) &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(3);</div>
<div class="line"><a id="l01867" name="l01867"></a><span class="lineno"> 1867</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; used : &quot;</span> &lt;&lt; start[1] &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; end[1];</div>
<div class="line"><a id="l01868" name="l01868"></a><span class="lineno"> 1868</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01869" name="l01869"></a><span class="lineno"> 1869</span> }</div>
<div class="line"><a id="l01870" name="l01870"></a><span class="lineno"> 1870</span> <span class="keywordflow">if</span> (fabs(<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(start[0])-t0[0]) &lt; fabs(<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(start[1])-t0[1])){</div>
<div class="line"><a id="l01871" name="l01871"></a><span class="lineno"> 1871</span> start[0] = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(t0[0] + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(start[1]) - t0[1]);</div>
<div class="line"><a id="l01872" name="l01872"></a><span class="lineno"> 1872</span> end[0] = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(t0[0] + <span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(end[1]) - t0[1]);</div>
<div class="line"><a id="l01873" name="l01873"></a><span class="lineno"> 1873</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::GetProperDataRange **WARNING** needed to shift forward data range.&quot;</span>;</div>
<div class="line"><a id="l01874" name="l01874"></a><span class="lineno"> 1874</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; given: &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(0) &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPRunBase.html#af1a2a02da26466564461e7a34267387f">fRunInfo</a>-&gt;GetDataRange(1);</div>
<div class="line"><a id="l01875" name="l01875"></a><span class="lineno"> 1875</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; used : &quot;</span> &lt;&lt; start[0] &lt;&lt; <span class="stringliteral">&quot;, &quot;</span> &lt;&lt; end[0];</div>
<div class="line"><a id="l01876" name="l01876"></a><span class="lineno"> 1876</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l01877" name="l01877"></a><span class="lineno"> 1877</span> }</div>
<div class="line"><a id="l01878" name="l01878"></a><span class="lineno"> 1878</span> </div>
<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"> 1879</span> <span class="comment">// keep good bins for potential latter use</span></div>
<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"> 1880</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[0] = start[0];</div>
<div class="line"><a id="l01881" name="l01881"></a><span class="lineno"> 1881</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[1] = end[0];</div>
<div class="line"><a id="l01882" name="l01882"></a><span class="lineno"> 1882</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[2] = start[1];</div>
<div class="line"><a id="l01883" name="l01883"></a><span class="lineno"> 1883</span> <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">fGoodBins</a>[3] = end[1];</div>
<div class="line"><a id="l01884" name="l01884"></a><span class="lineno"> 1884</span> </div>
<div class="line"><a id="l01885" name="l01885"></a><span class="lineno"> 1885</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span>}</div>
</div>
<div class="line"><a id="l01887" name="l01887"></a><span class="lineno"> 1887</span> </div>
<div class="line"><a id="l01888" name="l01888"></a><span class="lineno"> 1888</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span><span class="comment">// GetProperFitRange (private)</span></div>
<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"> 1890</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01907" data-start="{" data-end="}">
<div class="line"><a id="l01907" name="l01907"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#adfdb279051dc00cc3ab92383abdbd3e7"> 1907</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPRunAsymmetryBNMR.html#adfdb279051dc00cc3ab92383abdbd3e7">PRunAsymmetryBNMR::GetProperFitRange</a>(<a class="code hl_class" href="classPMsrGlobalBlock.html">PMsrGlobalBlock</a> *globalBlock)</div>
<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span>{</div>
<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"> 1909</span> <span class="comment">// set fit start/end time; first check RUN Block</span></div>
<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"> 1910</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="l01911" name="l01911"></a><span class="lineno"> 1911</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="l01912" name="l01912"></a><span class="lineno"> 1912</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="l01913" name="l01913"></a><span class="lineno"> 1913</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="l01914" name="l01914"></a><span class="lineno"> 1914</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l01915" name="l01915"></a><span class="lineno"> 1915</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l01916" name="l01916"></a><span class="lineno"> 1916</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="l01917" name="l01917"></a><span class="lineno"> 1917</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="l01918" name="l01918"></a><span class="lineno"> 1918</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="l01919" name="l01919"></a><span class="lineno"> 1919</span> }</div>
<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</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="l01921" name="l01921"></a><span class="lineno"> 1921</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="l01922" name="l01922"></a><span class="lineno"> 1922</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="l01923" name="l01923"></a><span class="lineno"> 1923</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="l01924" name="l01924"></a><span class="lineno"> 1924</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="l01925" name="l01925"></a><span class="lineno"> 1925</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l01926" name="l01926"></a><span class="lineno"> 1926</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l01927" name="l01927"></a><span class="lineno"> 1927</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="l01928" name="l01928"></a><span class="lineno"> 1928</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="l01929" name="l01929"></a><span class="lineno"> 1929</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="l01930" name="l01930"></a><span class="lineno"> 1930</span> }</div>
<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span> }</div>
<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</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="l01933" name="l01933"></a><span class="lineno"> 1933</span> <a class="code hl_variable" href="classPRunBase.html#af4a626805d2fbd201472f0487474bb40">fFitStartTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l01934" name="l01934"></a><span class="lineno"> 1934</span> <a class="code hl_variable" href="classPRunBase.html#a4736fa656bba18cc5b61a1273ac839d4">fFitEndTime</a> = (<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">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="l01935" name="l01935"></a><span class="lineno"> 1935</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunSingleHisto::GetProperFitRange(): **WARNING** Couldn&#39;t get fit start/end time!&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"> 1936</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="l01937" name="l01937"></a><span class="lineno"> 1937</span> }</div>
<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"> 1938</span>}</div>
</div>
<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"> 1939</span> </div>
<div class="line"><a id="l01940" name="l01940"></a><span class="lineno"> 1940</span> </div>
<div class="line"><a id="l01941" name="l01941"></a><span class="lineno"> 1941</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01942" name="l01942"></a><span class="lineno"> 1942</span><span class="comment">// EstimateAlpha (private)</span></div>
<div class="line"><a id="l01943" name="l01943"></a><span class="lineno"> 1943</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01957" data-start="{" data-end="}">
<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"><a class="line" href="classPRunAsymmetryBNMR.html#a3adbbef3f261a341afc20fc639721de4"> 1957</a></span>Double_t <a class="code hl_function" href="classPRunAsymmetryBNMR.html#a3adbbef3f261a341afc20fc639721de4">PRunAsymmetryBNMR::EstimateAlpha</a>()</div>
<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"> 1958</span>{</div>
<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</span> </div>
<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</span> Double_t SumF[2] = {0.0, 0.0};</div>
<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span> Double_t SumB[2] = {0.0, 0.0};</div>
<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span> Double_t alpha = 1;</div>
<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"> 1963</span> </div>
<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span> </div>
<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</span> <span class="comment">// forward</span></div>
<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"> 1966</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>.size(); i++) {</div>
<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span> SumF[0] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">fForwardp</a>[i];</div>
<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"> 1968</span> SumF[1] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">fForwardm</a>[i];</div>
<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"> 1969</span> }</div>
<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"> 1970</span> </div>
<div class="line"><a id="l01971" name="l01971"></a><span class="lineno"> 1971</span> <span class="comment">// backward</span></div>
<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span> <span class="keywordflow">for</span> (Int_t i=0; i&lt;<a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>.size(); i++) {</div>
<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span> SumB[0] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">fBackwardp</a>[i];</div>
<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span> SumB[1] += <a class="code hl_variable" href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">fBackwardm</a>[i]; </div>
<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span> } </div>
<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span> </div>
<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"> 1977</span> <span class="comment">// Spit out estimated alpha value from total counts (Bp+Bm)/(Fp+Fm)</span></div>
<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"> 1978</span> <span class="keywordflow">if</span> ( (SumF[0]+SumF[1]) == 0) {</div>
<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span> alpha = 1;</div>
<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"> 1980</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"> 1981</span> alpha = (SumB[0]+SumB[1])/(SumF[0]+SumF[1]);</div>
<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"> 1982</span> }</div>
<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PRunAsymmetryBNMR::EstimateAlpha(): alpha estimate=&quot;</span> &lt;&lt; alpha &lt;&lt; std::endl;</div>
<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"> 1984</span> </div>
<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"> 1985</span> <span class="keywordflow">return</span> alpha;</div>
<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span>}</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_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_a58290ad50dd925e4fb7fad90c8072215"><div class="ttname"><a href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a></div><div class="ttdeci">#define MSR_PARAM_FUN_OFFSET</div><div class="ttdoc">Offset added to function indices for parameter parsing.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00260">PMusr.h:260</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_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="aPRunAsymmetryBNMR_8h_html"><div class="ttname"><a href="PRunAsymmetryBNMR_8h.html">PRunAsymmetryBNMR.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="aPStartupHandler_8cpp_html_a9611b3a00430a86619b5923de30f9fdb"><div class="ttname"><a href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a></div><div class="ttdeci">return status</div><div class="ttdef"><b>Definition</b> <a href="PStartupHandler_8cpp_source.html#l00106">PStartupHandler.cpp:106</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_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_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="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_a4364201bedc2a4d4be478ba8a796e204"><div class="ttname"><a href="classPMsrHandler.html#a4364201bedc2a4d4be478ba8a796e204">PMsrHandler::GetMsrParamList</a></div><div class="ttdeci">virtual PMsrParamList * GetMsrParamList()</div><div class="ttdoc">Returns pointer to fit parameter list.</div><div class="ttdef"><b>Definition</b> <a href="PMsrHandler_8h_source.html#l00175">PMsrHandler.h:175</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="aclassPRunAsymmetryBNMR_html_a026b5e554e7c8f3bda7d340e50d9f015"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a026b5e554e7c8f3bda7d340e50d9f015">PRunAsymmetryBNMR::GetProperT0</a></div><div class="ttdeci">virtual Bool_t GetProperT0(PRawRunData *runData, PMsrGlobalBlock *globalBlock, PUIntVector &amp;forwardHisto, PUIntVector &amp;backwardHistoNo)</div><div class="ttdoc">Retrieves proper t0 values for all histograms.</div><div class="ttdef"><b>Definition</b> <a href="#l01600">PRunAsymmetryBNMR.cpp:1600</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a05659649636081d0228e045d636b19e4"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a05659649636081d0228e045d636b19e4">PRunAsymmetryBNMR::fAlphaBetaTag</a></div><div class="ttdeci">UInt_t fAlphaBetaTag</div><div class="ttdoc">Tag indicating α/β configuration: 1=both unity, 2=α free/β unity, 3=α unity/β free,...</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00175">PRunAsymmetryBNMR.h:175</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a08d2ed97f50de8d97d88184a1639f39e"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a08d2ed97f50de8d97d88184a1639f39e">PRunAsymmetryBNMR::SubtractEstimatedBkg</a></div><div class="ttdeci">Bool_t SubtractEstimatedBkg()</div><div class="ttdoc">Estimates and subtracts background from histograms.</div><div class="ttdef"><b>Definition</b> <a href="#l00936">PRunAsymmetryBNMR.cpp:936</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a0bfbdab177b01314ee5bc4db7573090b"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a0bfbdab177b01314ee5bc4db7573090b">PRunAsymmetryBNMR::SubtractFixBkg</a></div><div class="ttdeci">Bool_t SubtractFixBkg()</div><div class="ttdoc">Subtracts fixed background from histograms.</div><div class="ttdef"><b>Definition</b> <a href="#l00874">PRunAsymmetryBNMR.cpp:874</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a18f0d22d486bcfc6cf4999ca8dff5ed1"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a18f0d22d486bcfc6cf4999ca8dff5ed1">PRunAsymmetryBNMR::~PRunAsymmetryBNMR</a></div><div class="ttdeci">virtual ~PRunAsymmetryBNMR()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition</b> <a href="#l00194">PRunAsymmetryBNMR.cpp:194</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a1dda6790482d80006911d9b03fc8c5a7"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a1dda6790482d80006911d9b03fc8c5a7">PRunAsymmetryBNMR::GetNoOfFitBins</a></div><div class="ttdeci">virtual UInt_t GetNoOfFitBins()</div><div class="ttdoc">Returns the number of bins used in the fit.</div><div class="ttdef"><b>Definition</b> <a href="#l00379">PRunAsymmetryBNMR.cpp:379</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a1f759a3c1338fa828577d7e9f0b3cbfe"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a1f759a3c1338fa828577d7e9f0b3cbfe">PRunAsymmetryBNMR::PrepareViewData</a></div><div class="ttdeci">virtual Bool_t PrepareViewData(PRawRunData *runData, UInt_t histoNo[2])</div><div class="ttdoc">Prepares data for viewing/plotting.</div><div class="ttdef"><b>Definition</b> <a href="#l01246">PRunAsymmetryBNMR.cpp:1246</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a34ee72fa9b0e70f9b33a8e2d9e9f29b5"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a34ee72fa9b0e70f9b33a8e2d9e9f29b5">PRunAsymmetryBNMR::fNoOfFitBins</a></div><div class="ttdeci">UInt_t fNoOfFitBins</div><div class="ttdoc">Number of bins included in the fit.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00176">PRunAsymmetryBNMR.h:176</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a3a0e687dd590afde9a291e3f9889e758"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a3a0e687dd590afde9a291e3f9889e758">PRunAsymmetryBNMR::fBackwardmErr</a></div><div class="ttdeci">PDoubleVector fBackwardmErr</div><div class="ttdoc">Negative helicity backward histogram errors.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00187">PRunAsymmetryBNMR.h:187</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a3adbbef3f261a341afc20fc639721de4"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a3adbbef3f261a341afc20fc639721de4">PRunAsymmetryBNMR::EstimateAlpha</a></div><div class="ttdeci">virtual Double_t EstimateAlpha()</div><div class="ttdoc">Estimates α parameter from data.</div><div class="ttdef"><b>Definition</b> <a href="#l01957">PRunAsymmetryBNMR.cpp:1957</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a429398ccaf32c7270e36feb5a60da113"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a429398ccaf32c7270e36feb5a60da113">PRunAsymmetryBNMR::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 chi-square (for statistical analysis).</div><div class="ttdef"><b>Definition</b> <a href="#l00345">PRunAsymmetryBNMR.cpp:345</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a47237f968eac2a94d313db1fc8f06459"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a47237f968eac2a94d313db1fc8f06459">PRunAsymmetryBNMR::PrepareFitData</a></div><div class="ttdeci">virtual Bool_t PrepareFitData()</div><div class="ttdoc">Prepares data specifically for fitting.</div><div class="ttdef"><b>Definition</b> <a href="#l01084">PRunAsymmetryBNMR.cpp:1084</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a489f56051811d3bc9faadcdee457c89b"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a489f56051811d3bc9faadcdee457c89b">PRunAsymmetryBNMR::fForwardm</a></div><div class="ttdeci">PDoubleVector fForwardm</div><div class="ttdoc">Negative helicity forward histogram data.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00184">PRunAsymmetryBNMR.h:184</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a608cda8fb236f131c95c23aa1051f892"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a608cda8fb236f131c95c23aa1051f892">PRunAsymmetryBNMR::PrepareData</a></div><div class="ttdeci">virtual Bool_t PrepareData()</div><div class="ttdoc">Prepares all data for fitting or viewing.</div><div class="ttdef"><b>Definition</b> <a href="#l00651">PRunAsymmetryBNMR.cpp:651</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a6838e3ce5019c327ef5b03a5376d9711"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a6838e3ce5019c327ef5b03a5376d9711">PRunAsymmetryBNMR::fForwardpErr</a></div><div class="ttdeci">PDoubleVector fForwardpErr</div><div class="ttdoc">Positive helicity forward histogram errors.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00181">PRunAsymmetryBNMR.h:181</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a95f265a456a127354923c6ae190d99df"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a95f265a456a127354923c6ae190d99df">PRunAsymmetryBNMR::fTheoAsData</a></div><div class="ttdeci">Bool_t fTheoAsData</div><div class="ttdoc">If true, theory calculated only at data points; if false, extra points for nicer Fourier transforms.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00178">PRunAsymmetryBNMR.h:178</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a96e6762aa247dd4ce55c1764aa356277"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a96e6762aa247dd4ce55c1764aa356277">PRunAsymmetryBNMR::fGoodBins</a></div><div class="ttdeci">Int_t fGoodBins[4]</div><div class="ttdoc">Good bin boundaries: [0]=forward first, [1]=forward last, [2]=backward first, [3]=backward last.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00189">PRunAsymmetryBNMR.h:189</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_a9949207001c8d1ca7224a548aa52c4e0"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#a9949207001c8d1ca7224a548aa52c4e0">PRunAsymmetryBNMR::fStartTimeBin</a></div><div class="ttdeci">Int_t fStartTimeBin</div><div class="ttdoc">First bin index for fitting.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00191">PRunAsymmetryBNMR.h:191</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_aab556ccc02437934c00e35efcf99664d"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#aab556ccc02437934c00e35efcf99664d">PRunAsymmetryBNMR::CalcNoOfFitBins</a></div><div class="ttdeci">virtual void CalcNoOfFitBins()</div><div class="ttdoc">Calculates the number of bins to be fitted.</div><div class="ttdef"><b>Definition</b> <a href="#l00493">PRunAsymmetryBNMR.cpp:493</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ab3bf8e9c9ed784337fb5a68fb2caf6fb"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ab3bf8e9c9ed784337fb5a68fb2caf6fb">PRunAsymmetryBNMR::fBackwardpErr</a></div><div class="ttdeci">PDoubleVector fBackwardpErr</div><div class="ttdoc">Positive helicity backward histogram errors.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00183">PRunAsymmetryBNMR.h:183</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ab659b4486d4351caa8bd1f9e05e659b2"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ab659b4486d4351caa8bd1f9e05e659b2">PRunAsymmetryBNMR::CalcTheory</a></div><div class="ttdeci">virtual void CalcTheory()</div><div class="ttdoc">Calculates theoretical asymmetry function.</div><div class="ttdef"><b>Definition</b> <a href="#l00527">PRunAsymmetryBNMR.cpp:527</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ab89290085a83e6ca48bfd329ac942f1b"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ab89290085a83e6ca48bfd329ac942f1b">PRunAsymmetryBNMR::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 estimator.</div><div class="ttdef"><b>Definition</b> <a href="#l00362">PRunAsymmetryBNMR.cpp:362</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_abdfba8211fe4c0f0b2da682e7ac61120"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#abdfba8211fe4c0f0b2da682e7ac61120">PRunAsymmetryBNMR::fForwardmErr</a></div><div class="ttdeci">PDoubleVector fForwardmErr</div><div class="ttdoc">Negative helicity forward histogram errors.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00185">PRunAsymmetryBNMR.h:185</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_acbed87bedcad1bce0d6a21d24990f9b5"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#acbed87bedcad1bce0d6a21d24990f9b5">PRunAsymmetryBNMR::fBackwardp</a></div><div class="ttdeci">PDoubleVector fBackwardp</div><div class="ttdoc">Positive helicity backward histogram data.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00182">PRunAsymmetryBNMR.h:182</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ad24571a515c535dbce615847967e32c6"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ad24571a515c535dbce615847967e32c6">PRunAsymmetryBNMR::CalcChiSquare</a></div><div class="ttdeci">virtual Double_t CalcChiSquare(const std::vector&lt; Double_t &gt; &amp;par)</div><div class="ttdoc">Calculates chi-square for the current parameter set.</div><div class="ttdef"><b>Definition</b> <a href="#l00226">PRunAsymmetryBNMR.cpp:226</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ad2fbe9546f7c409aa12a4c6d4cfc174d"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ad2fbe9546f7c409aa12a4c6d4cfc174d">PRunAsymmetryBNMR::SetFitRangeBin</a></div><div class="ttdeci">virtual void SetFitRangeBin(const TString fitRange)</div><div class="ttdoc">Sets the fit range in bins.</div><div class="ttdef"><b>Definition</b> <a href="#l00407">PRunAsymmetryBNMR.cpp:407</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ad865725703700924d6745da5bbc293be"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ad865725703700924d6745da5bbc293be">PRunAsymmetryBNMR::fBackwardm</a></div><div class="ttdeci">PDoubleVector fBackwardm</div><div class="ttdoc">Negative helicity backward histogram data.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00186">PRunAsymmetryBNMR.h:186</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ad8b6abc757932cc5f1b49a528bc4e904"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ad8b6abc757932cc5f1b49a528bc4e904">PRunAsymmetryBNMR::fEndTimeBin</a></div><div class="ttdeci">Int_t fEndTimeBin</div><div class="ttdoc">Last bin index for fitting.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00192">PRunAsymmetryBNMR.h:192</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ada9466a1c572c157b7ae6b0cc93cb529"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ada9466a1c572c157b7ae6b0cc93cb529">PRunAsymmetryBNMR::PRunAsymmetryBNMR</a></div><div class="ttdeci">PRunAsymmetryBNMR()</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition</b> <a href="#l00060">PRunAsymmetryBNMR.cpp:60</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_adfdb279051dc00cc3ab92383abdbd3e7"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#adfdb279051dc00cc3ab92383abdbd3e7">PRunAsymmetryBNMR::GetProperFitRange</a></div><div class="ttdeci">virtual void GetProperFitRange(PMsrGlobalBlock *globalBlock)</div><div class="ttdoc">Determines the proper fit range from global block.</div><div class="ttdef"><b>Definition</b> <a href="#l01907">PRunAsymmetryBNMR.cpp:1907</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_ae9042bf4540b1a63c51cfa546eddbe3f"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#ae9042bf4540b1a63c51cfa546eddbe3f">PRunAsymmetryBNMR::fForwardp</a></div><div class="ttdeci">PDoubleVector fForwardp</div><div class="ttdoc">Positive helicity forward histogram data.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00180">PRunAsymmetryBNMR.h:180</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_aed6d7e7341dc25b66f8fb730225b2bd6"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#aed6d7e7341dc25b66f8fb730225b2bd6">PRunAsymmetryBNMR::GetProperDataRange</a></div><div class="ttdeci">virtual Bool_t GetProperDataRange(PRawRunData *runData, UInt_t histoNo[2])</div><div class="ttdoc">Retrieves proper data range for histograms.</div><div class="ttdef"><b>Definition</b> <a href="#l01775">PRunAsymmetryBNMR.cpp:1775</a></div></div>
<div class="ttc" id="aclassPRunAsymmetryBNMR_html_afb5d6a6e9f2d8febbd176f5fccbeca34"><div class="ttname"><a href="classPRunAsymmetryBNMR.html#afb5d6a6e9f2d8febbd176f5fccbeca34">PRunAsymmetryBNMR::fPacking</a></div><div class="ttdeci">Int_t fPacking</div><div class="ttdoc">Bin packing factor from RUN or GLOBAL block.</div><div class="ttdef"><b>Definition</b> <a href="PRunAsymmetryBNMR_8h_source.html#l00177">PRunAsymmetryBNMR.h:177</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="aclassPRunData_html"><div class="ttname"><a href="classPRunData.html">PRunData</a></div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00451">PMusr.h:451</a></div></div>
<div class="ttc" id="aclassPRunData_html_a1ab78ffc18b9593f484ebc3cba8f3acc"><div class="ttname"><a href="classPRunData.html#a1ab78ffc18b9593f484ebc3cba8f3acc">PRunData::AppendErrorValue</a></div><div class="ttdeci">virtual void AppendErrorValue(Double_t dval)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00497">PMusr.h:497</a></div></div>
<div class="ttc" id="aclassPRunData_html_a21e99079b4ddfa3cb574f910c0869f29"><div class="ttname"><a href="classPRunData.html#a21e99079b4ddfa3cb574f910c0869f29">PRunData::AppendValue</a></div><div class="ttdeci">virtual void AppendValue(Double_t dval)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00494">PMusr.h:494</a></div></div>
<div class="ttc" id="aclassPRunData_html_a32bfd5c466faba8f720ba10fee1656af"><div class="ttname"><a href="classPRunData.html#a32bfd5c466faba8f720ba10fee1656af">PRunData::GetValue</a></div><div class="ttdeci">virtual const PDoubleVector * GetValue()</div><div class="ttdoc">Returns pointer to data value vector (asymmetry, counts, or y-data)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00468">PMusr.h:468</a></div></div>
<div class="ttc" id="aclassPRunData_html_a821c4360542e0b6a0952e26cd70ef6ad"><div class="ttname"><a href="classPRunData.html#a821c4360542e0b6a0952e26cd70ef6ad">PRunData::GetError</a></div><div class="ttdeci">virtual const PDoubleVector * GetError()</div><div class="ttdoc">Returns pointer to data error vector (statistical uncertainties)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00470">PMusr.h:470</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="PRunAsymmetryBNMR_8cpp.html">PRunAsymmetryBNMR.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>