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

2853 lines
523 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/PTheory.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('PTheory_8cpp_source.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">PTheory.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="PTheory_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"> PTheory.cpp</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"></span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> Author: Andreas Suter</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> e-mail: andreas.suter@psi.ch</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"></span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">***************************************************************************/</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">/***************************************************************************</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * Copyright (C) 2007-2025 by Andreas Suter *</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> * andreas.suter@psi.ch *</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> * This program is free software; you can redistribute it and/or modify *</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> * it under the terms of the GNU General Public License as published by *</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> * the Free Software Foundation; either version 2 of the License, or *</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * (at your option) any later version. *</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * This program is distributed in the hope that it will be useful, *</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of *</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * GNU General Public License for more details. *</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * *</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * You should have received a copy of the GNU General Public License *</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * along with this program; if not, write to the *</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * Free Software Foundation, Inc., *</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> ***************************************************************************/</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#include &lt;TObject.h&gt;</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#include &lt;TString.h&gt;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#include &lt;TF1.h&gt;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#include &lt;TObjString.h&gt;</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="preprocessor">#include &lt;TObjArray.h&gt;</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#include &lt;TClass.h&gt;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#include &lt;TMath.h&gt;</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#include &lt;Math/SpecFuncMathMore.h&gt;</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#include &quot;<a class="code" href="PMsrHandler_8h.html">PMsrHandler.h</a>&quot;</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#include &quot;<a class="code" href="PTheory_8h.html">PTheory.h</a>&quot;</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"><a class="line" href="PTheory_8cpp.html#a907d8d6dcc4c26245a296a6dadf477c1"> 47</a></span><span class="preprocessor">#define SQRT_TWO 1.41421356237</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="PTheory_8cpp.html#a204175c725ee19858dedec2865d490b8"> 48</a></span><span class="preprocessor">#define SQRT_PI 1.77245385091</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="keyword">extern</span> std::vector&lt;void*&gt; <a class="code hl_variable" href="PTheory_8cpp.html#a003c5aa531d7a1fd21bfcfb3526d9f27">gGlobalUserFcn</a>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">// Constructor</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="classPTheory.html#a261d59fce8fe8f1d94bffd7db5871ec2"> 125</a></span><a class="code hl_function" href="classPTheory.html#a261d59fce8fe8f1d94bffd7db5871ec2">PTheory::PTheory</a>(<a class="code hl_class" href="classPMsrHandler.html">PMsrHandler</a> *msrInfo, UInt_t runNo, <span class="keyword">const</span> Bool_t hasParent) : <a class="code hl_variable" href="classPTheory.html#acafff64c51c65fb9713e93503713fff5">fMsrInfo</a>(msrInfo)</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> <span class="comment">// init stuff</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a> = TString(<span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_variable" href="classPTheory.html#a206a0d0f432f8f581e718451a90c2e47">fDynLFdt</a> = 0.0;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_variable" href="classPTheory.html#a25c32f4daa2a96461d1bf4ee84138ccc">fSamplingTime</a> = 0.001; <span class="comment">// default = 1ns (units in us)</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">static</span> UInt_t lineNo = 1; <span class="comment">// lineNo</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">static</span> UInt_t depth = 0; <span class="comment">// needed to handle &#39;+&#39; properly</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> (hasParent == <span class="keyword">false</span>) { <span class="comment">// reset static counters if root object</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> lineNo = 1; <span class="comment">// the lineNo counter and the depth counter need to be</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> depth = 0; <span class="comment">// reset for every root object (new run).</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_define" href="PTheory_8h.html#abffa2911fef01b9acc49bcd36c0c614d">THEORY_MAX_PARAM</a>; i++)</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i] = 0.0;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// keep the number of user functions found up to this point</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <a class="code hl_variable" href="classPTheory.html#a7bac1fe73ad243c4a3d4add99700f0bb">fUserFcnIdx</a> = <a class="code hl_function" href="classPTheory.html#a249af67baeb38ac226cc28c9a172f622">GetUserFcnIdx</a>(lineNo);</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">// get the input to be analyzed from the msr handler</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <a class="code hl_typedef" href="PMusr_8h.html#a88b0f32c26fd54bdacfbef77212d951d">PMsrLines</a> *fullTheoryBlock = msrInfo-&gt;<a class="code hl_function" href="classPMsrHandler.html#a8e7c43e94adb005bd55727422e99bcf6">GetMsrTheory</a>();</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">if</span> (lineNo &gt; fullTheoryBlock-&gt;size()-1) {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// get the line to be parsed</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <a class="code hl_struct" href="structPMsrLineStructure.html">PMsrLineStructure</a> *line = &amp;(*fullTheoryBlock)[lineNo];</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// copy line content to str in order to remove comments</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> TString str = line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Copy();</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// remove theory line comment if present, i.e. something starting with &#39;(&#39;</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> Int_t index = str.Index(<span class="stringliteral">&quot;(&quot;</span>);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">if</span> (index &gt; 0) <span class="comment">// theory line comment present</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> str.Resize(index);</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">// remove msr-file comment if present, i.e. something starting with &#39;#&#39;</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> index = str.Index(<span class="stringliteral">&quot;#&quot;</span>);</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">if</span> (index &gt; 0) <span class="comment">// theory line comment present</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> str.Resize(index);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// tokenize line</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> TObjArray *tokens;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> TObjString *ostr;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> tokens = str.Tokenize(<span class="stringliteral">&quot; \t&quot;</span>);</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">if</span> (!tokens) {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **SEVERE ERROR** Couldn&#39;t tokenize theory block line &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a> &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; line content: &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Data();</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> exit(0);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> }</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tokens-&gt;At(0));</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> str = ostr-&gt;GetString();</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">// search the theory function</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> UInt_t idx = <a class="code hl_function" href="classPTheory.html#a310b2b0ad6658f91ee67b05426a6d22c">SearchDataBase</a>(str);</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// function found is not defined</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">if</span> (idx == <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(<a class="code hl_define" href="PTheory_8h.html#a59c3ee4ee03bd01ce7c4f9a4b64c38bb">THEORY_UNDEFINED</a>)) {</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** Theory line &#39;&quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Data() &lt;&lt; <span class="stringliteral">&quot;&#39;&quot;</span>;</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; in line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a> &lt;&lt; <span class="stringliteral">&quot; is undefined!&quot;</span>;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span>;</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> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// line is a valid function, hence analyze parameters</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">if</span> ((<span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(tokens-&gt;GetEntries()-1) &lt; <a class="code hl_variable" href="classPTheory.html#aedd9c54d28240e0c1a4fb2601d4e0d00">fNoOfParam</a>) &amp;&amp;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> ((idx != <a class="code hl_define" href="PTheory_8h.html#ac75bdc062fc362eb1f77f7d8bb559709">THEORY_USER_FCN</a>) &amp;&amp; (idx != <a class="code hl_define" href="PTheory_8h.html#a5ff0b0d39d64d6cc3d63bade14466a1b">THEORY_POLYNOM</a>))) {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** Theory line &#39;&quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Data() &lt;&lt; <span class="stringliteral">&quot;&#39;&quot;</span>;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; in line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; expecting &quot;</span> &lt;&lt; <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[idx].fNoOfParam &lt;&lt; <span class="stringliteral">&quot;, but found &quot;</span> &lt;&lt; tokens-&gt;GetEntries()-1;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// keep function index</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a> = idx;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// filter out the parameters</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> Int_t <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a>;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> UInt_t value;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> Bool_t ok = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">for</span> (Int_t i=1; i&lt;tokens-&gt;GetEntries(); i++) {</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tokens-&gt;At(i));</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// if userFcn, the first entry is the function name and needs to be handled specially</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">if</span> ((<a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a> == <a class="code hl_define" href="PTheory_8h.html#ac75bdc062fc362eb1f77f7d8bb559709">THEORY_USER_FCN</a>) &amp;&amp; ((i == 1) || (i == 2))) {</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">if</span> (i == 1) {</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_variable" href="classPTheory.html#afaaefb22b8da1e94df68898352a8b819">fUserFcnSharedLibName</a> = str;</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> }</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordflow">if</span> (i == 2) {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a> = str;</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> }</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// check if str is map</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">if</span> (str.Contains(<span class="stringliteral">&quot;map&quot;</span>)) {</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> = sscanf(str.Data(), <span class="stringliteral">&quot;map%u&quot;</span>, &amp;value);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> == 1) { <span class="comment">// everthing ok</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> ok = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// get parameter from map</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_typedef" href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a> maps = *(*msrInfo-&gt;<a class="code hl_function" href="classPMsrHandler.html#a91ee12241aaa131ec1cfccd3e21dc18c">GetMsrRunList</a>())[runNo].GetMap();</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">if</span> ((value &lt;= maps.size()) &amp;&amp; (value &gt; 0)) { <span class="comment">// everything fine</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.push_back(maps[value-1]-1);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> } <span class="keywordflow">else</span> { <span class="comment">// map index out of range</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** map index &quot;</span> &lt;&lt; value &lt;&lt; <span class="stringliteral">&quot; out of range! See line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> } <span class="keywordflow">else</span> { <span class="comment">// something wrong</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR**: map &#39;&quot;</span> &lt;&lt; str.Data() &lt;&lt; <span class="stringliteral">&quot;&#39; not allowed. See line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str.Contains(<span class="stringliteral">&quot;fun&quot;</span>)) { <span class="comment">// check if str is fun</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> = sscanf(str.Data(), <span class="stringliteral">&quot;fun%u&quot;</span>, &amp;value);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> == 1) { <span class="comment">// everthing ok</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> ok = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// handle function, i.e. get, from the function number x (FUNx), the function index, </span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// add function offset and fill &quot;parameter vector&quot; </span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.push_back(msrInfo-&gt;<a class="code hl_function" href="classPMsrHandler.html#ac2f5d112f2ca66af7e4fed8614f8cfbd">GetFuncIndex</a>(value)+<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>);</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> } <span class="keywordflow">else</span> { <span class="comment">// something wrong</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> }</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> } <span class="keywordflow">else</span> { <span class="comment">// check if str is param no</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> = sscanf(str.Data(), <span class="stringliteral">&quot;%u&quot;</span>, &amp;value);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="PStartupHandler_8cpp.html#a9611b3a00430a86619b5923de30f9fdb">status</a> == 1) { <span class="comment">// everthing ok</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> ok = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.push_back(value-1);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> }</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="comment">// check if one of the valid entries was found</span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">if</span> (!ok) {</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** &#39;&quot;</span> &lt;&lt; str.Data() &lt;&lt; <span class="stringliteral">&quot;&#39; not allowed. See line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> }</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> }</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> </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="comment">// call the next line (only if valid so far and not the last line)</span></div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="comment">// handle &#39;*&#39;</span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> &amp;&amp; (lineNo &lt; fullTheoryBlock-&gt;size()-1)) {</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> line = &amp;(*fullTheoryBlock)[lineNo+1];</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">if</span> (!line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Contains(<span class="stringliteral">&quot;+&quot;</span>)) { <span class="comment">// make sure next line is not a &#39;+&#39;</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> depth++;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> lineNo++;</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a> = <span class="keyword">new</span> <a class="code hl_function" href="classPTheory.html#a261d59fce8fe8f1d94bffd7db5871ec2">PTheory</a>(msrInfo, runNo, <span class="keyword">true</span>);</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> depth--;</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> }</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> }</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// call the next line (only if valid so far and not the last line)</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// handle &#39;+&#39;</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> &amp;&amp; (lineNo &lt; fullTheoryBlock-&gt;size()-1)) {</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> line = &amp;(*fullTheoryBlock)[lineNo+1];</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">if</span> ((depth == 0) &amp;&amp; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Contains(<span class="stringliteral">&quot;+&quot;</span>)) {</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> lineNo += 2; <span class="comment">// go to the next theory function line</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a> = <span class="keyword">new</span> <a class="code hl_function" href="classPTheory.html#a261d59fce8fe8f1d94bffd7db5871ec2">PTheory</a>(msrInfo, runNo, <span class="keyword">true</span>);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> }</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> }</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> </div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// make clean and tidy theory block for the msr-file</span></div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> &amp;&amp; !hasParent) { <span class="comment">// parent theory object</span></div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_function" href="classPTheory.html#af8f347354bef0901edc211965b9e10fa">MakeCleanAndTidyTheoryBlock</a>(fullTheoryBlock);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> }</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="comment">// check if user function, if so, check if it is reachable (root) and if yes invoke object</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a>.IsWhitespace()) {</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> std::cout &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; user function class name: &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a>.Data() &lt;&lt; std::endl;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">if</span> (!TClass::GetDict(<a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a>.Data())) {</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">if</span> (gSystem-&gt;Load(<a class="code hl_variable" href="classPTheory.html#afaaefb22b8da1e94df68898352a8b819">fUserFcnSharedLibName</a>.Data()) &lt; 0) {</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** user function class &#39;&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a>.Data() &lt;&lt; <span class="stringliteral">&quot;&#39; not found.&quot;</span>;</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; Tried to load &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#afaaefb22b8da1e94df68898352a8b819">fUserFcnSharedLibName</a>.Data() &lt;&lt; <span class="stringliteral">&quot; but failed.&quot;</span>;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; See line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="keywordflow">if</span> (tokens) {</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <span class="keyword">delete</span> tokens;</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> }</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!TClass::GetDict(<a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a>.Data())) {</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** user function class &#39;&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a>.Data() &lt;&lt; <span class="stringliteral">&quot;&#39; not found.&quot;</span>;</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; &quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#afaaefb22b8da1e94df68898352a8b819">fUserFcnSharedLibName</a>.Data() &lt;&lt; <span class="stringliteral">&quot; loaded successfully, but no dictionary present.&quot;</span>;</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; See line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">if</span> (tokens) {</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">delete</span> tokens;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> }</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> }</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> }</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="comment">// invoke user function object</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a> = <span class="keyword">static_cast&lt;</span><a class="code hl_class" href="classPUserFcnBase.html">PUserFcnBase</a>*<span class="keyword">&gt;</span>(TClass::GetClass(<a class="code hl_variable" href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">fUserFcnClassName</a>.Data())-&gt;New());</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a> == <span class="keyword">nullptr</span>) {</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** user function object could not be invoked. See line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> } <span class="keywordflow">else</span> { <span class="comment">// user function valid, hence expand the fUserParam vector to the proper size</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <a class="code hl_variable" href="classPTheory.html#a227b713015c7feece87f4a84d3df4168">fUserParam</a>.resize(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size());</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> }</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="comment">// check if the global part of the user function is needed</span></div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a>-&gt;NeedGlobalPart()) {</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a>-&gt;SetGlobalPart(<a class="code hl_variable" href="PTheory_8cpp.html#a003c5aa531d7a1fd21bfcfb3526d9f27">gGlobalUserFcn</a>, <a class="code hl_variable" href="classPTheory.html#a7bac1fe73ad243c4a3d4add99700f0bb">fUserFcnIdx</a>); <span class="comment">// invoke or retrieve global user function object</span></div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a>-&gt;GlobalPartIsValid()) {</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::PTheory: **ERROR** global user function object could not be invoked/retrived. See line no &quot;</span> &lt;&lt; line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">fLineNo</a>;</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> }</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> }</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> </div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="keywordflow">if</span> (tokens) {</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">delete</span> tokens;</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> }</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span>}</div>
</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span><span class="comment">// Destructor</span></div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00375" data-start="{" data-end="}">
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"><a class="line" href="classPTheory.html#a0a8d9245b191d7777e19b501ec450e79"> 375</a></span><a class="code hl_function" href="classPTheory.html#a0a8d9245b191d7777e19b501ec450e79">PTheory::~PTheory</a>()</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span>{</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.clear();</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <a class="code hl_variable" href="classPTheory.html#a227b713015c7feece87f4a84d3df4168">fUserParam</a>.clear();</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.clear();</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>.clear();</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="comment">// recursive clean up</span></div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <a class="code hl_function" href="classPTheory.html#a97d09b52469458cff3497397ace0378d">CleanUp</a>(<span class="keyword">this</span>);</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="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a>) {</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keyword">delete</span> <a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a>;</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> }</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> </div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <a class="code hl_variable" href="PTheory_8cpp.html#a003c5aa531d7a1fd21bfcfb3526d9f27">gGlobalUserFcn</a>.clear();</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span>}</div>
</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> </div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span><span class="comment">// IsValid</span></div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00415" data-start="{" data-end="}">
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"><a class="line" href="classPTheory.html#a63b9712d6b46f7b409e631f1d5ea4578"> 415</a></span>Bool_t <a class="code hl_function" href="classPTheory.html#a63b9712d6b46f7b409e631f1d5ea4578">PTheory::IsValid</a>()</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> </div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>) {</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>) {</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <span class="keywordflow">return</span> (<a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> &amp;&amp; <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;IsValid() &amp;&amp; <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;IsValid());</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <span class="keywordflow">return</span> (<a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> &amp;&amp; <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;IsValid());</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> }</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>) {</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keywordflow">return</span> (<a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</a> &amp;&amp; <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;IsValid());</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">fValid</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> }</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span>}</div>
</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> </div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00468" data-start="{" data-end="}">
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"><a class="line" href="classPTheory.html#ab0b6defce6fa75187ae306332fac3425"> 468</a></span>Double_t <a class="code hl_function" href="classPTheory.html#ab0b6defce6fa75187ae306332fac3425">PTheory::Func</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span><span class="keyword"></span>{</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>) {</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>) { <span class="comment">// fMul != 0 &amp;&amp; fAdd != 0</span></div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a>) {</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1c4b962bf6a3a7925fe8a6b38dcd6e1f">THEORY_CONST</a>:</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a10c8cb04d11bfa98d1218ec4f742a295">Constant</a>(paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a21950bbfaced68e161da531cb886e273">THEORY_ASYMMETRY</a>:</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a49c6859a2ea2b3383a9b38830755cfc5">Asymmetry</a>(paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a50dd1b1c343ffbde509878c1ad5c6be3">THEORY_SIMPLE_EXP</a>:</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aadab2da9cc55e5373652ece16c5b51a7">SimpleExp</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a0fa28d9c46e7156f542c9897d463cbad">THEORY_GENERAL_EXP</a>:</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a53685d230ca22581c76d449422be5eab">GeneralExp</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a2a760199e37bbd093f4cfbea0bfbb7e6">THEORY_SIMPLE_GAUSS</a>:</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a2677ed739e48737f07028b7f3d3c5f63">SimpleGauss</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5735489ca2a1f29831bbcf346f288f1d">THEORY_STATIC_GAUSS_KT</a>:</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a8ae9bd3e7ecccc6b3a93128d1a5cc89f">StaticGaussKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a65bacde87fa33c016f3748156e45e8f9">THEORY_STATIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38b45a5848b847170d41ed5c17ef4cde">StaticGaussKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1e9a52e292e7af6a5c720a268c2b2691">THEORY_DYNAMIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a416b942041ffd226091d405aa5e1ff42">DynamicGaussKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#abf798eb53f9e66ca14b37930bb48c43f">THEORY_STATIC_LORENTZ_KT</a>:</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38dec3c50021c73664737bb0481dcbcd">StaticLorentzKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#afcb6f0dfa7b27c3a822b5573417c707c">THEORY_STATIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adddf87c309ea4130751cc3c401eee6b9">StaticLorentzKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1667e6402dc1a7506b5738344311871f">THEORY_DYNAMIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a96db7325d7d1008c260f613935a986a6">DynamicLorentzKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6bee45adf227233d2fbe363ecdd77b2b">THEORY_DYNAMIC_GAULOR_FAST_KT_ZF</a>:</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a5fd8b32f6cbab4650975f714b393e05b">DynamicGauLorKTZFFast</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa1694bd7aad1dcbbc6e5ba39805e9642">THEORY_DYNAMIC_GAULOR_FAST_KT_LF</a>:</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#abcc03b3a088cf08941c2295c06d258cf">DynamicGauLorKTLFFast</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#af25bfdde66204ba0e79f5e900e7ea665">THEORY_DYNAMIC_GAULOR_KT_LF</a>:</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a03bd0458d6c25973450b36193691ed2a">DynamicGauLorKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ae66296baf270bb32ddd626e470446f87">THEORY_COMBI_LGKT</a>:</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae379c15c25527635fa88faa06ca57863">CombiLGKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa4938409d6eb59d61b6ae141bb89e8bd">THEORY_STR_KT</a>:</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4dc432db11ee23d7a3f8ffe92d233068">StrKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a54ce92f9f7c92e18633ed5ba3de4994a">THEORY_SPIN_GLASS</a>:</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad7486d946964f49b73e7e1aa804f9f94">SpinGlass</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1a2e06835dd7ea1493b8298ffe9c1d1f">THEORY_RANDOM_ANISOTROPIC_HYPERFINE</a>:</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a646477b37fc74bffbd4ab69694f8a708">RandomAnisotropicHyperfine</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a20651a33a3fecea08ddc8419f79d2ef8">THEORY_ABRAGAM</a>:</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a13b41bea368eebeee597fe0693c36c13">Abragam</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) + </div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5875617e42c9a8cc05bddc797776e710">THEORY_TF_COS</a>:</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a32ec790324e2ba2bda1637bfa3926af9">TFCos</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6f0db5546d80e016d901aaaccde43daa">THEORY_INTERNAL_FIELD</a>:</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a78888a303a73c0e0d8aae5b9eb6b4032">InternalField</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7387fa75781eaa3dd7efacdfa0f9809e">THEORY_INTERNAL_FIELD_KORNILOV</a>:</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a9f729f4d453aad6b0edc939fd6043114">InternalFieldGK</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a67cd9941e76442343691ee3fbd6bf510">THEORY_INTERNAL_FIELD_LARKIN</a>:</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#af2426f3c6e4cefeb172ed8864ba3a10c">InternalFieldLL</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a93d57cc2e7aee24c9f3353b50ef78ba8">THEORY_BESSEL</a>:</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aceccb4ac553dfb2069a2a4f2104e88c8">Bessel</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) + </div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a545ee3335eb250cd7cf19e2ef1b61c0a">THEORY_INTERNAL_BESSEL</a>:</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a7fca9d0d5b05f781768290d372e259f9">InternalBessel</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#acb5fed62cfa070ac90cfd4338dff2e01">THEORY_SKEWED_GAUSS</a>:</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a80acc8e368f76f4d1c1dbfd1f9c078a3">SkewedGauss</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a340acd5ee00788eb3593819b7ff53c7a">THEORY_STATIC_ZF_NK</a>:</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a3e6ba6cd1f46b64bae7d4a0ce84e6050">StaticNKZF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues); </div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a9e8dae1e660cfd060df77f88e64dd04c">THEORY_STATIC_TF_NK</a>:</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad874ccd579a1b04238da82ce4a639970">StaticNKTF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5804e118e0acd4b9ce13661b1170d081">THEORY_DYNAMIC_ZF_NK</a>:</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4cfeda3b0fdb4ab1f325c021a575bf95">DynamicNKZF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7bb987a6b4927c25ab86dcf87d65a7ae">THEORY_DYNAMIC_TF_NK</a>:</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aa8f4e5c3a654184a64689426853d357a">DynamicNKTF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aaf0e563f0c38d32806754c2d43e8de79">THEORY_F_MU_F</a>:</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adc4b7167a0aa86f4a3ebe4dd5d305bcb">FmuF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5ff0b0d39d64d6cc3d63bade14466a1b">THEORY_POLYNOM</a>:</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae984a95857932719634345a35803a92e">Polynom</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a4a76a5fa9874e18fdb4cc3091dd50b6c">THEORY_MU_MINUS_EXP</a>:</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae431d544feaad24170d4ef0a3c9e0722">MuMinusExpTF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ac75bdc062fc362eb1f77f7d8bb559709">THEORY_USER_FCN</a>:</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ace253c9696e455779b05e9f9dee0896c">UserFcn</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues) +</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::Func: **PANIC ERROR** You never should have reached this line?!?! (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> exit(0);</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> }</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> } <span class="keywordflow">else</span> { <span class="comment">// fMul !=0 &amp;&amp; fAdd == 0</span></div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a>) {</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1c4b962bf6a3a7925fe8a6b38dcd6e1f">THEORY_CONST</a>:</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a10c8cb04d11bfa98d1218ec4f742a295">Constant</a>(paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a21950bbfaced68e161da531cb886e273">THEORY_ASYMMETRY</a>:</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a49c6859a2ea2b3383a9b38830755cfc5">Asymmetry</a>(paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a50dd1b1c343ffbde509878c1ad5c6be3">THEORY_SIMPLE_EXP</a>:</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aadab2da9cc55e5373652ece16c5b51a7">SimpleExp</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a0fa28d9c46e7156f542c9897d463cbad">THEORY_GENERAL_EXP</a>:</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a53685d230ca22581c76d449422be5eab">GeneralExp</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a2a760199e37bbd093f4cfbea0bfbb7e6">THEORY_SIMPLE_GAUSS</a>:</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a2677ed739e48737f07028b7f3d3c5f63">SimpleGauss</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5735489ca2a1f29831bbcf346f288f1d">THEORY_STATIC_GAUSS_KT</a>:</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a8ae9bd3e7ecccc6b3a93128d1a5cc89f">StaticGaussKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a65bacde87fa33c016f3748156e45e8f9">THEORY_STATIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38b45a5848b847170d41ed5c17ef4cde">StaticGaussKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1e9a52e292e7af6a5c720a268c2b2691">THEORY_DYNAMIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a416b942041ffd226091d405aa5e1ff42">DynamicGaussKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#abf798eb53f9e66ca14b37930bb48c43f">THEORY_STATIC_LORENTZ_KT</a>:</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38dec3c50021c73664737bb0481dcbcd">StaticLorentzKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#afcb6f0dfa7b27c3a822b5573417c707c">THEORY_STATIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adddf87c309ea4130751cc3c401eee6b9">StaticLorentzKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1667e6402dc1a7506b5738344311871f">THEORY_DYNAMIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a96db7325d7d1008c260f613935a986a6">DynamicLorentzKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6bee45adf227233d2fbe363ecdd77b2b">THEORY_DYNAMIC_GAULOR_FAST_KT_ZF</a>:</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a5fd8b32f6cbab4650975f714b393e05b">DynamicGauLorKTZFFast</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa1694bd7aad1dcbbc6e5ba39805e9642">THEORY_DYNAMIC_GAULOR_FAST_KT_LF</a>:</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#abcc03b3a088cf08941c2295c06d258cf">DynamicGauLorKTLFFast</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#af25bfdde66204ba0e79f5e900e7ea665">THEORY_DYNAMIC_GAULOR_KT_LF</a>:</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a03bd0458d6c25973450b36193691ed2a">DynamicGauLorKTLF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ae66296baf270bb32ddd626e470446f87">THEORY_COMBI_LGKT</a>:</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae379c15c25527635fa88faa06ca57863">CombiLGKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa4938409d6eb59d61b6ae141bb89e8bd">THEORY_STR_KT</a>:</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4dc432db11ee23d7a3f8ffe92d233068">StrKT</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a54ce92f9f7c92e18633ed5ba3de4994a">THEORY_SPIN_GLASS</a>:</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad7486d946964f49b73e7e1aa804f9f94">SpinGlass</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1a2e06835dd7ea1493b8298ffe9c1d1f">THEORY_RANDOM_ANISOTROPIC_HYPERFINE</a>:</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a646477b37fc74bffbd4ab69694f8a708">RandomAnisotropicHyperfine</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a20651a33a3fecea08ddc8419f79d2ef8">THEORY_ABRAGAM</a>:</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a13b41bea368eebeee597fe0693c36c13">Abragam</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5875617e42c9a8cc05bddc797776e710">THEORY_TF_COS</a>:</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a32ec790324e2ba2bda1637bfa3926af9">TFCos</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6f0db5546d80e016d901aaaccde43daa">THEORY_INTERNAL_FIELD</a>:</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a78888a303a73c0e0d8aae5b9eb6b4032">InternalField</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7387fa75781eaa3dd7efacdfa0f9809e">THEORY_INTERNAL_FIELD_KORNILOV</a>:</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a9f729f4d453aad6b0edc939fd6043114">InternalFieldGK</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a67cd9941e76442343691ee3fbd6bf510">THEORY_INTERNAL_FIELD_LARKIN</a>:</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#af2426f3c6e4cefeb172ed8864ba3a10c">InternalFieldLL</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a93d57cc2e7aee24c9f3353b50ef78ba8">THEORY_BESSEL</a>:</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aceccb4ac553dfb2069a2a4f2104e88c8">Bessel</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a545ee3335eb250cd7cf19e2ef1b61c0a">THEORY_INTERNAL_BESSEL</a>:</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a7fca9d0d5b05f781768290d372e259f9">InternalBessel</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#acb5fed62cfa070ac90cfd4338dff2e01">THEORY_SKEWED_GAUSS</a>:</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a80acc8e368f76f4d1c1dbfd1f9c078a3">SkewedGauss</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a340acd5ee00788eb3593819b7ff53c7a">THEORY_STATIC_ZF_NK</a>:</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a3e6ba6cd1f46b64bae7d4a0ce84e6050">StaticNKZF</a> (t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a9e8dae1e660cfd060df77f88e64dd04c">THEORY_STATIC_TF_NK</a>:</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad874ccd579a1b04238da82ce4a639970">StaticNKTF</a> (t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5804e118e0acd4b9ce13661b1170d081">THEORY_DYNAMIC_ZF_NK</a>:</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4cfeda3b0fdb4ab1f325c021a575bf95">DynamicNKZF</a> (t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7bb987a6b4927c25ab86dcf87d65a7ae">THEORY_DYNAMIC_TF_NK</a>:</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aa8f4e5c3a654184a64689426853d357a">DynamicNKTF</a> (t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a4a76a5fa9874e18fdb4cc3091dd50b6c">THEORY_MU_MINUS_EXP</a>:</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae431d544feaad24170d4ef0a3c9e0722">MuMinusExpTF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aaf0e563f0c38d32806754c2d43e8de79">THEORY_F_MU_F</a>:</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adc4b7167a0aa86f4a3ebe4dd5d305bcb">FmuF</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5ff0b0d39d64d6cc3d63bade14466a1b">THEORY_POLYNOM</a>:</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae984a95857932719634345a35803a92e">Polynom</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ac75bdc062fc362eb1f77f7d8bb559709">THEORY_USER_FCN</a>:</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ace253c9696e455779b05e9f9dee0896c">UserFcn</a>(t, paramValues, funcValues) * <a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::Func: **PANIC ERROR** You never should have reached this line?!?! (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> exit(0);</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</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="keywordflow">else</span> { <span class="comment">// fMul == 0 &amp;&amp; fAdd != 0</span></div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>) {</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a>) {</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1c4b962bf6a3a7925fe8a6b38dcd6e1f">THEORY_CONST</a>:</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a10c8cb04d11bfa98d1218ec4f742a295">Constant</a>(paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a21950bbfaced68e161da531cb886e273">THEORY_ASYMMETRY</a>:</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a49c6859a2ea2b3383a9b38830755cfc5">Asymmetry</a>(paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a50dd1b1c343ffbde509878c1ad5c6be3">THEORY_SIMPLE_EXP</a>:</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aadab2da9cc55e5373652ece16c5b51a7">SimpleExp</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a0fa28d9c46e7156f542c9897d463cbad">THEORY_GENERAL_EXP</a>:</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a53685d230ca22581c76d449422be5eab">GeneralExp</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a2a760199e37bbd093f4cfbea0bfbb7e6">THEORY_SIMPLE_GAUSS</a>:</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a2677ed739e48737f07028b7f3d3c5f63">SimpleGauss</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5735489ca2a1f29831bbcf346f288f1d">THEORY_STATIC_GAUSS_KT</a>:</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a8ae9bd3e7ecccc6b3a93128d1a5cc89f">StaticGaussKT</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a65bacde87fa33c016f3748156e45e8f9">THEORY_STATIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38b45a5848b847170d41ed5c17ef4cde">StaticGaussKTLF</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1e9a52e292e7af6a5c720a268c2b2691">THEORY_DYNAMIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a416b942041ffd226091d405aa5e1ff42">DynamicGaussKTLF</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#abf798eb53f9e66ca14b37930bb48c43f">THEORY_STATIC_LORENTZ_KT</a>:</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38dec3c50021c73664737bb0481dcbcd">StaticLorentzKT</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#afcb6f0dfa7b27c3a822b5573417c707c">THEORY_STATIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adddf87c309ea4130751cc3c401eee6b9">StaticLorentzKTLF</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1667e6402dc1a7506b5738344311871f">THEORY_DYNAMIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a96db7325d7d1008c260f613935a986a6">DynamicLorentzKTLF</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6bee45adf227233d2fbe363ecdd77b2b">THEORY_DYNAMIC_GAULOR_FAST_KT_ZF</a>:</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a5fd8b32f6cbab4650975f714b393e05b">DynamicGauLorKTZFFast</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa1694bd7aad1dcbbc6e5ba39805e9642">THEORY_DYNAMIC_GAULOR_FAST_KT_LF</a>:</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#abcc03b3a088cf08941c2295c06d258cf">DynamicGauLorKTLFFast</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#af25bfdde66204ba0e79f5e900e7ea665">THEORY_DYNAMIC_GAULOR_KT_LF</a>:</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a03bd0458d6c25973450b36193691ed2a">DynamicGauLorKTLF</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ae66296baf270bb32ddd626e470446f87">THEORY_COMBI_LGKT</a>:</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae379c15c25527635fa88faa06ca57863">CombiLGKT</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa4938409d6eb59d61b6ae141bb89e8bd">THEORY_STR_KT</a>:</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4dc432db11ee23d7a3f8ffe92d233068">StrKT</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a54ce92f9f7c92e18633ed5ba3de4994a">THEORY_SPIN_GLASS</a>:</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad7486d946964f49b73e7e1aa804f9f94">SpinGlass</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1a2e06835dd7ea1493b8298ffe9c1d1f">THEORY_RANDOM_ANISOTROPIC_HYPERFINE</a>:</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a646477b37fc74bffbd4ab69694f8a708">RandomAnisotropicHyperfine</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a20651a33a3fecea08ddc8419f79d2ef8">THEORY_ABRAGAM</a>:</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a13b41bea368eebeee597fe0693c36c13">Abragam</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5875617e42c9a8cc05bddc797776e710">THEORY_TF_COS</a>:</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a32ec790324e2ba2bda1637bfa3926af9">TFCos</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6f0db5546d80e016d901aaaccde43daa">THEORY_INTERNAL_FIELD</a>:</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a78888a303a73c0e0d8aae5b9eb6b4032">InternalField</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7387fa75781eaa3dd7efacdfa0f9809e">THEORY_INTERNAL_FIELD_KORNILOV</a>:</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a9f729f4d453aad6b0edc939fd6043114">InternalFieldGK</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a67cd9941e76442343691ee3fbd6bf510">THEORY_INTERNAL_FIELD_LARKIN</a>:</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#af2426f3c6e4cefeb172ed8864ba3a10c">InternalFieldLL</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a93d57cc2e7aee24c9f3353b50ef78ba8">THEORY_BESSEL</a>:</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aceccb4ac553dfb2069a2a4f2104e88c8">Bessel</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a545ee3335eb250cd7cf19e2ef1b61c0a">THEORY_INTERNAL_BESSEL</a>:</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a7fca9d0d5b05f781768290d372e259f9">InternalBessel</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#acb5fed62cfa070ac90cfd4338dff2e01">THEORY_SKEWED_GAUSS</a>:</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a80acc8e368f76f4d1c1dbfd1f9c078a3">SkewedGauss</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a340acd5ee00788eb3593819b7ff53c7a">THEORY_STATIC_ZF_NK</a>:</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a3e6ba6cd1f46b64bae7d4a0ce84e6050">StaticNKZF</a> (t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a9e8dae1e660cfd060df77f88e64dd04c">THEORY_STATIC_TF_NK</a>:</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad874ccd579a1b04238da82ce4a639970">StaticNKTF</a> (t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5804e118e0acd4b9ce13661b1170d081">THEORY_DYNAMIC_ZF_NK</a>:</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4cfeda3b0fdb4ab1f325c021a575bf95">DynamicNKZF</a> (t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7bb987a6b4927c25ab86dcf87d65a7ae">THEORY_DYNAMIC_TF_NK</a>:</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aa8f4e5c3a654184a64689426853d357a">DynamicNKTF</a> (t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a4a76a5fa9874e18fdb4cc3091dd50b6c">THEORY_MU_MINUS_EXP</a>:</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae431d544feaad24170d4ef0a3c9e0722">MuMinusExpTF</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aaf0e563f0c38d32806754c2d43e8de79">THEORY_F_MU_F</a>:</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adc4b7167a0aa86f4a3ebe4dd5d305bcb">FmuF</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5ff0b0d39d64d6cc3d63bade14466a1b">THEORY_POLYNOM</a>:</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae984a95857932719634345a35803a92e">Polynom</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ac75bdc062fc362eb1f77f7d8bb559709">THEORY_USER_FCN</a>:</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ace253c9696e455779b05e9f9dee0896c">UserFcn</a>(t, paramValues, funcValues) + <a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>-&gt;Func(t, paramValues, funcValues);</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::Func: **PANIC ERROR** You never should have reached this line?!?! (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> exit(0);</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="keywordflow">else</span> { <span class="comment">// fMul == 0 &amp;&amp; fAdd == 0</span></div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <span class="keywordflow">switch</span> (<a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a>) {</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1c4b962bf6a3a7925fe8a6b38dcd6e1f">THEORY_CONST</a>:</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a10c8cb04d11bfa98d1218ec4f742a295">Constant</a>(paramValues, funcValues);</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a21950bbfaced68e161da531cb886e273">THEORY_ASYMMETRY</a>:</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a49c6859a2ea2b3383a9b38830755cfc5">Asymmetry</a>(paramValues, funcValues);</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a50dd1b1c343ffbde509878c1ad5c6be3">THEORY_SIMPLE_EXP</a>:</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aadab2da9cc55e5373652ece16c5b51a7">SimpleExp</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a0fa28d9c46e7156f542c9897d463cbad">THEORY_GENERAL_EXP</a>:</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a53685d230ca22581c76d449422be5eab">GeneralExp</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a2a760199e37bbd093f4cfbea0bfbb7e6">THEORY_SIMPLE_GAUSS</a>:</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a2677ed739e48737f07028b7f3d3c5f63">SimpleGauss</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5735489ca2a1f29831bbcf346f288f1d">THEORY_STATIC_GAUSS_KT</a>:</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a8ae9bd3e7ecccc6b3a93128d1a5cc89f">StaticGaussKT</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a65bacde87fa33c016f3748156e45e8f9">THEORY_STATIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38b45a5848b847170d41ed5c17ef4cde">StaticGaussKTLF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1e9a52e292e7af6a5c720a268c2b2691">THEORY_DYNAMIC_GAUSS_KT_LF</a>:</div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a416b942041ffd226091d405aa5e1ff42">DynamicGaussKTLF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#abf798eb53f9e66ca14b37930bb48c43f">THEORY_STATIC_LORENTZ_KT</a>:</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a38dec3c50021c73664737bb0481dcbcd">StaticLorentzKT</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#afcb6f0dfa7b27c3a822b5573417c707c">THEORY_STATIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adddf87c309ea4130751cc3c401eee6b9">StaticLorentzKTLF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1667e6402dc1a7506b5738344311871f">THEORY_DYNAMIC_LORENTZ_KT_LF</a>:</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a96db7325d7d1008c260f613935a986a6">DynamicLorentzKTLF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6bee45adf227233d2fbe363ecdd77b2b">THEORY_DYNAMIC_GAULOR_FAST_KT_ZF</a>:</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a5fd8b32f6cbab4650975f714b393e05b">DynamicGauLorKTZFFast</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa1694bd7aad1dcbbc6e5ba39805e9642">THEORY_DYNAMIC_GAULOR_FAST_KT_LF</a>:</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#abcc03b3a088cf08941c2295c06d258cf">DynamicGauLorKTLFFast</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#af25bfdde66204ba0e79f5e900e7ea665">THEORY_DYNAMIC_GAULOR_KT_LF</a>:</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a03bd0458d6c25973450b36193691ed2a">DynamicGauLorKTLF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ae66296baf270bb32ddd626e470446f87">THEORY_COMBI_LGKT</a>:</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae379c15c25527635fa88faa06ca57863">CombiLGKT</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aa4938409d6eb59d61b6ae141bb89e8bd">THEORY_STR_KT</a>:</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4dc432db11ee23d7a3f8ffe92d233068">StrKT</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a54ce92f9f7c92e18633ed5ba3de4994a">THEORY_SPIN_GLASS</a>:</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad7486d946964f49b73e7e1aa804f9f94">SpinGlass</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a1a2e06835dd7ea1493b8298ffe9c1d1f">THEORY_RANDOM_ANISOTROPIC_HYPERFINE</a>:</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a646477b37fc74bffbd4ab69694f8a708">RandomAnisotropicHyperfine</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a20651a33a3fecea08ddc8419f79d2ef8">THEORY_ABRAGAM</a>:</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a13b41bea368eebeee597fe0693c36c13">Abragam</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5875617e42c9a8cc05bddc797776e710">THEORY_TF_COS</a>:</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a32ec790324e2ba2bda1637bfa3926af9">TFCos</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a6f0db5546d80e016d901aaaccde43daa">THEORY_INTERNAL_FIELD</a>:</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a78888a303a73c0e0d8aae5b9eb6b4032">InternalField</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7387fa75781eaa3dd7efacdfa0f9809e">THEORY_INTERNAL_FIELD_KORNILOV</a>:</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a9f729f4d453aad6b0edc939fd6043114">InternalFieldGK</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a67cd9941e76442343691ee3fbd6bf510">THEORY_INTERNAL_FIELD_LARKIN</a>:</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#af2426f3c6e4cefeb172ed8864ba3a10c">InternalFieldLL</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a93d57cc2e7aee24c9f3353b50ef78ba8">THEORY_BESSEL</a>:</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aceccb4ac553dfb2069a2a4f2104e88c8">Bessel</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a545ee3335eb250cd7cf19e2ef1b61c0a">THEORY_INTERNAL_BESSEL</a>:</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a7fca9d0d5b05f781768290d372e259f9">InternalBessel</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#acb5fed62cfa070ac90cfd4338dff2e01">THEORY_SKEWED_GAUSS</a>:</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a80acc8e368f76f4d1c1dbfd1f9c078a3">SkewedGauss</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a340acd5ee00788eb3593819b7ff53c7a">THEORY_STATIC_ZF_NK</a>:</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a3e6ba6cd1f46b64bae7d4a0ce84e6050">StaticNKZF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a9e8dae1e660cfd060df77f88e64dd04c">THEORY_STATIC_TF_NK</a>:</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ad874ccd579a1b04238da82ce4a639970">StaticNKTF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5804e118e0acd4b9ce13661b1170d081">THEORY_DYNAMIC_ZF_NK</a>:</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#a4cfeda3b0fdb4ab1f325c021a575bf95">DynamicNKZF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a7bb987a6b4927c25ab86dcf87d65a7ae">THEORY_DYNAMIC_TF_NK</a>:</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#aa8f4e5c3a654184a64689426853d357a">DynamicNKTF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a4a76a5fa9874e18fdb4cc3091dd50b6c">THEORY_MU_MINUS_EXP</a>:</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae431d544feaad24170d4ef0a3c9e0722">MuMinusExpTF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#aaf0e563f0c38d32806754c2d43e8de79">THEORY_F_MU_F</a>:</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#adc4b7167a0aa86f4a3ebe4dd5d305bcb">FmuF</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#a5ff0b0d39d64d6cc3d63bade14466a1b">THEORY_POLYNOM</a>:</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ae984a95857932719634345a35803a92e">Polynom</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> <span class="keywordflow">case</span> <a class="code hl_define" href="PTheory_8h.html#ac75bdc062fc362eb1f77f7d8bb559709">THEORY_USER_FCN</a>:</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classPTheory.html#ace253c9696e455779b05e9f9dee0896c">UserFcn</a>(t, paramValues, funcValues);</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::Func: **PANIC ERROR** You never should have reached this line?!?! (&quot;</span> &lt;&lt; <a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a> &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> std::cerr &lt;&lt; std::endl;</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> exit(0);</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> }</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> }</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> }</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span>}</div>
</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> </div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00830" data-start="{" data-end="}">
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"><a class="line" href="classPTheory.html#a97d09b52469458cff3497397ace0378d"> 830</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPTheory.html#a97d09b52469458cff3497397ace0378d">PTheory::CleanUp</a>(<a class="code hl_function" href="classPTheory.html#a261d59fce8fe8f1d94bffd7db5871ec2">PTheory</a> *theo)</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span>{</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <span class="keywordflow">if</span> (theo-&gt;<a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>) { <span class="comment">// &#39;*&#39; present</span></div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> <span class="keyword">delete</span> theo-&gt;<a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a>;</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> theo-&gt;<a class="code hl_variable" href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">fMul</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> }</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> </div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <span class="keywordflow">if</span> (theo-&gt;<a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>) {</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> <span class="keyword">delete</span> theo-&gt;<a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a>;</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> theo-&gt;<a class="code hl_variable" href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">fAdd</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> }</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span>}</div>
</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> </div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00862" data-start="{" data-end="}">
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"><a class="line" href="classPTheory.html#a310b2b0ad6658f91ee67b05426a6d22c"> 862</a></span>Int_t <a class="code hl_function" href="classPTheory.html#a310b2b0ad6658f91ee67b05426a6d22c">PTheory::SearchDataBase</a>(TString name)</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span>{</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> Int_t idx = <a class="code hl_define" href="PTheory_8h.html#a59c3ee4ee03bd01ce7c4f9a4b64c38bb">THEORY_UNDEFINED</a>;</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> </div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_define" href="PTheory_8h.html#a86aff503a459f7c9a1d31205ce537cc7">THEORY_MAX</a>; i++) {</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> <span class="keywordflow">if</span> (!name.CompareTo(<a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[i].fName, TString::kIgnoreCase) ||</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> !name.CompareTo(<a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[i].fAbbrev, TString::kIgnoreCase)) {</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> idx = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[i].fType);</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> <a class="code hl_variable" href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">fType</a> = <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[i].fType;</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> <a class="code hl_variable" href="classPTheory.html#aedd9c54d28240e0c1a4fb2601d4e0d00">fNoOfParam</a> = <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[i].fNoOfParam;</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> }</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> }</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> </div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> <span class="keywordflow">return</span> idx;</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span>}</div>
</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">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span><span class="comment">// GetUserFcnIdx (private)</span></div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen00896" data-start="{" data-end="}">
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"><a class="line" href="classPTheory.html#a249af67baeb38ac226cc28c9a172f622"> 896</a></span>Int_t <a class="code hl_function" href="classPTheory.html#a249af67baeb38ac226cc28c9a172f622">PTheory::GetUserFcnIdx</a>(UInt_t lineNo)<span class="keyword"> const</span></div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span><span class="keyword"></span>{</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> Int_t userFcnIdx = -1;</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> </div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> <span class="comment">// retrieve the theory block from the msr-file handler</span></div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <a class="code hl_typedef" href="PMusr_8h.html#a88b0f32c26fd54bdacfbef77212d951d">PMsrLines</a> *fullTheoryBlock = <a class="code hl_variable" href="classPTheory.html#acafff64c51c65fb9713e93503713fff5">fMsrInfo</a>-&gt;GetMsrTheory();</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> </div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> <span class="comment">// make sure that lineNo is within proper bounds</span></div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> <span class="keywordflow">if</span> (lineNo &gt; fullTheoryBlock-&gt;size())</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> <span class="keywordflow">return</span> userFcnIdx;</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> </div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <span class="comment">// count the number of user function present up to the lineNo</span></div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <span class="keywordflow">for</span> (UInt_t i=1; i&lt;=lineNo; i++) {</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <span class="keywordflow">if</span> (fullTheoryBlock-&gt;at(i).fLine.Contains(<span class="stringliteral">&quot;userFcn&quot;</span>, TString::kIgnoreCase))</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> userFcnIdx++;</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> userFcnIdx;</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">// MakeCleanAndTidyTheoryBlock 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="foldopen00943" data-start="{" data-end="}">
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"><a class="line" href="classPTheory.html#af8f347354bef0901edc211965b9e10fa"> 943</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPTheory.html#af8f347354bef0901edc211965b9e10fa">PTheory::MakeCleanAndTidyTheoryBlock</a>(<a class="code hl_typedef" href="PMusr_8h.html#a88b0f32c26fd54bdacfbef77212d951d">PMsrLines</a> *fullTheoryBlock)</div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span>{</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> <a class="code hl_struct" href="structPMsrLineStructure.html">PMsrLineStructure</a> *line;</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> TString str, tidy;</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> Char_t substr[256];</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> TObjArray *tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> TObjString *ostr = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> Int_t idx = <a class="code hl_define" href="PTheory_8h.html#a59c3ee4ee03bd01ce7c4f9a4b64c38bb">THEORY_UNDEFINED</a>;</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> </div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> <span class="keywordflow">for</span> (UInt_t i=1; i&lt;fullTheoryBlock-&gt;size(); i++) {</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="comment">// get the line to be prettyfied</span></div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> line = &amp;(*fullTheoryBlock)[i];</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> <span class="comment">// copy line content to str in order to remove comments</span></div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> str = line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Copy();</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> <span class="comment">// remove theory line comment if present, i.e. something starting with &#39;(&#39;</span></div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> Int_t index = str.Index(<span class="stringliteral">&quot;(&quot;</span>);</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> <span class="keywordflow">if</span> (index &gt; 0) <span class="comment">// theory line comment present</span></div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> str.Resize(index);</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> <span class="comment">// tokenize line</span></div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> tokens = str.Tokenize(<span class="stringliteral">&quot; \t&quot;</span>);</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <span class="comment">// make a handable string out of the asymmetry token</span></div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tokens-&gt;At(0));</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> <span class="comment">// check if the line is just a &#39;+&#39; if so nothing to be done</span></div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> <span class="keywordflow">if</span> (str.Contains(<span class="stringliteral">&quot;+&quot;</span>))</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> <span class="comment">// check if the function is a polynom</span></div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> <span class="keywordflow">if</span> (!str.CompareTo(<span class="stringliteral">&quot;p&quot;</span>) || str.Contains(<span class="stringliteral">&quot;polynom&quot;</span>)) {</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> <a class="code hl_function" href="classPTheory.html#a1f3f55a7d197f9c621fecd116657f159">MakeCleanAndTidyPolynom</a>(i, fullTheoryBlock);</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> <span class="keywordflow">continue</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> <span class="comment">// check if the function is a userFcn</span></div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> <span class="keywordflow">if</span> (!str.CompareTo(<span class="stringliteral">&quot;u&quot;</span>) || str.Contains(<span class="stringliteral">&quot;userFcn&quot;</span>)) {</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> <a class="code hl_function" href="classPTheory.html#aa7992fe6037b1cb64b580605667894c0">MakeCleanAndTidyUserFcn</a>(i, fullTheoryBlock);</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> }</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> <span class="comment">// search the theory function</span></div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> <span class="keywordflow">for</span> (UInt_t j=0; j&lt;<a class="code hl_define" href="PTheory_8h.html#a86aff503a459f7c9a1d31205ce537cc7">THEORY_MAX</a>; j++) {</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> <span class="keywordflow">if</span> (!str.CompareTo(<a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[j].fName, TString::kIgnoreCase) ||</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> !str.CompareTo(<a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[j].fAbbrev, TString::kIgnoreCase)) {</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> idx = <span class="keyword">static_cast&lt;</span>Int_t<span class="keyword">&gt;</span>(<a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[j].fType);</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> }</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> }</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> <span class="comment">// check if theory is indeed defined. This should not be necessay at this point but ...</span></div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> <span class="keywordflow">if</span> (idx == <a class="code hl_define" href="PTheory_8h.html#a59c3ee4ee03bd01ce7c4f9a4b64c38bb">THEORY_UNDEFINED</a>)</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> <span class="comment">// check that there enough tokens. This should not be necessay at this point but ...</span></div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <span class="keywordflow">if</span> (<span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(tokens-&gt;GetEntries()) &lt; <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[idx].fNoOfParam + 1)</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> <span class="comment">// make tidy string</span></div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> snprintf(substr, <span class="keyword">sizeof</span>(substr), <span class="stringliteral">&quot;%-10s&quot;</span>, <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[idx].fName.Data());</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> tidy = TString(substr);</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> <span class="keywordflow">for</span> (Int_t j=1; j&lt;tokens-&gt;GetEntries(); j++) {</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tokens-&gt;At(j));</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> snprintf(substr, <span class="keyword">sizeof</span>(substr), <span class="stringliteral">&quot;%6s&quot;</span>, str.Data());</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> tidy += TString(substr);</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> }</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[idx].fComment.Length() != 0) {</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> <span class="keywordflow">if</span> (tidy.Length() &lt; 35) {</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> <span class="keywordflow">for</span> (Int_t k=0; k&lt;35-tidy.Length(); k++)</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> tidy += TString(<span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> tidy += TString(<span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> }</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> <span class="keywordflow">if</span> (<span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(tokens-&gt;GetEntries()) == <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[idx].fNoOfParam + 1) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> tidy += <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[idx].fComment;</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> tidy += <a class="code hl_variable" href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a>[idx].fCommentTimeShift;</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> }</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> <span class="comment">// write tidy string back into theory block</span></div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> (*fullTheoryBlock)[i].fLine = tidy;</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> <span class="comment">// clean up</span></div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <span class="keywordflow">if</span> (tokens) {</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <span class="keyword">delete</span> tokens;</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> }</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> }</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>}</div>
</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> </div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span><span class="comment">// MakeCleanAndTidyPolynom private</span></div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01040" data-start="{" data-end="}">
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"><a class="line" href="classPTheory.html#a1f3f55a7d197f9c621fecd116657f159"> 1040</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPTheory.html#a1f3f55a7d197f9c621fecd116657f159">PTheory::MakeCleanAndTidyPolynom</a>(UInt_t i, <a class="code hl_typedef" href="PMusr_8h.html#a88b0f32c26fd54bdacfbef77212d951d">PMsrLines</a> *fullTheoryBlock)</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span>{</div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <a class="code hl_struct" href="structPMsrLineStructure.html">PMsrLineStructure</a> *line;</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> TString str, tidy;</div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> TObjArray *tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> TObjString *ostr;</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> Char_t substr[256];</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">// init tidy</span></div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> tidy = TString(<span class="stringliteral">&quot;polynom &quot;</span>);</div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">// get the line to be prettyfied</span></div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> line = &amp;(*fullTheoryBlock)[i];</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> <span class="comment">// copy line content to str in order to remove comments</span></div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> str = line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Copy();</div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> <span class="comment">// tokenize line</span></div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> tokens = str.Tokenize(<span class="stringliteral">&quot; \t&quot;</span>);</div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> </div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">// check if comment is already present, and if yes ignore it by setting max correctly</span></div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> Int_t max = tokens-&gt;GetEntries();</div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keywordflow">for</span> (Int_t j=1; j&lt;max; j++) {</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tokens-&gt;At(j));</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <span class="keywordflow">if</span> (str.Contains(<span class="stringliteral">&quot;(&quot;</span>)) { <span class="comment">// comment present</span></div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> max=j;</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> <span class="keywordflow">break</span>;</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> </div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> <span class="keywordflow">for</span> (Int_t j=1; j&lt;max; j++) {</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tokens-&gt;At(j));</div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> snprintf(substr, <span class="keyword">sizeof</span>(substr), <span class="stringliteral">&quot;%6s&quot;</span>, str.Data());</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> tidy += TString(substr);</div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> }</div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> </div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> <span class="comment">// add comment</span></div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> tidy += <span class="stringliteral">&quot; (tshift p0 p1 ... pn)&quot;</span>;</div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> </div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">// write tidy string back into theory block</span></div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> (*fullTheoryBlock)[i].fLine = tidy;</div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> </div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> <span class="keywordflow">if</span> (tokens) {</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> <span class="keyword">delete</span> tokens;</div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> tokens = <span class="keyword">nullptr</span>;</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>}</div>
</div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> </div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span><span class="comment">// MakeCleanAndTidyUserFcn private</span></div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01103" data-start="{" data-end="}">
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"><a class="line" href="classPTheory.html#aa7992fe6037b1cb64b580605667894c0"> 1103</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classPTheory.html#aa7992fe6037b1cb64b580605667894c0">PTheory::MakeCleanAndTidyUserFcn</a>(UInt_t i, <a class="code hl_typedef" href="PMusr_8h.html#a88b0f32c26fd54bdacfbef77212d951d">PMsrLines</a> *fullTheoryBlock)</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span>{</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> <a class="code hl_struct" href="structPMsrLineStructure.html">PMsrLineStructure</a> *line;</div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> TString str, tidy;</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> TObjArray *tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> TObjString *ostr;</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> </div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">// init tidy</span></div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> tidy = TString(<span class="stringliteral">&quot;userFcn &quot;</span>);</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="comment">// get the line to be prettyfied</span></div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> line = &amp;(*fullTheoryBlock)[i];</div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">// copy line content to str in order to remove comments</span></div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> str = line-&gt;<a class="code hl_variable" href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">fLine</a>.Copy();</div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> <span class="comment">// tokenize line</span></div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> tokens = str.Tokenize(<span class="stringliteral">&quot; \t&quot;</span>);</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">for</span> (Int_t j=1; j&lt;tokens-&gt;GetEntries(); j++) {</div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> ostr = <span class="keyword">dynamic_cast&lt;</span>TObjString*<span class="keyword">&gt;</span>(tokens-&gt;At(j));</div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> str = ostr-&gt;GetString();</div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> tidy += TString(<span class="stringliteral">&quot; &quot;</span>) + str;</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> </div>
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> <span class="comment">// write tidy string back into theory block</span></div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> (*fullTheoryBlock)[i].fLine = tidy;</div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> </div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> <span class="keywordflow">if</span> (tokens) {</div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> <span class="keyword">delete</span> tokens;</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> tokens = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> }</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span>}</div>
</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><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01152" data-start="{" data-end="}">
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"><a class="line" href="classPTheory.html#a10c8cb04d11bfa98d1218ec4f742a295"> 1152</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a10c8cb04d11bfa98d1218ec4f742a295">PTheory::Constant</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> <span class="comment">// expected parameters: const</span></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> Double_t constant;</div>
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> </div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[0] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> constant = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[0]];</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> constant = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[0]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> }</div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> </div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> <span class="keywordflow">return</span> constant;</div>
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span>}</div>
</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> </div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01187" data-start="{" data-end="}">
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"><a class="line" href="classPTheory.html#a49c6859a2ea2b3383a9b38830755cfc5"> 1187</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a49c6859a2ea2b3383a9b38830755cfc5">PTheory::Asymmetry</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> <span class="comment">// expected parameters: asym</span></div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> </div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> Double_t asym;</div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> </div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[0] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> asym = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[0]];</div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> asym = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[0]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> }</div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> </div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> <span class="keywordflow">return</span> asym;</div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span>}</div>
</div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> </div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01225" data-start="{" data-end="}">
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"><a class="line" href="classPTheory.html#aadab2da9cc55e5373652ece16c5b51a7"> 1225</a></span>Double_t <a class="code hl_function" href="classPTheory.html#aadab2da9cc55e5373652ece16c5b51a7">PTheory::SimpleExp</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">// expected parameters: lambda [tshift]</span></div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> </div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> Double_t val[2];</div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> </div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 2);</div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> </div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span> }</div>
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span> }</div>
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> </div>
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span> Double_t tt;</div>
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 1) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span> tt = t;</div>
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> tt = t-val[1];</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="keywordflow">return</span> TMath::Exp(-tt*val[0]);</div>
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span>}</div>
</div>
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> </div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01277" data-start="{" data-end="}">
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"><a class="line" href="classPTheory.html#a53685d230ca22581c76d449422be5eab"> 1277</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a53685d230ca22581c76d449422be5eab">PTheory::GeneralExp</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> <span class="comment">// expected parameters: lambda beta [tshift]</span></div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> </div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> Double_t val[3];</div>
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> Double_t result;</div>
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> </div>
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> </div>
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> }</div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> }</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> </div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> Double_t tt;</div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> tt = t;</div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> tt = t-val[2];</div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> </div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> <span class="comment">// check if tt*val[0] &lt; 0 and </span></div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span> <span class="keywordflow">if</span> ((tt*val[0] &lt; 0) &amp;&amp; (trunc(val[1])-val[1] != 0.0)) {</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> result = 0.0;</div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> result = TMath::Exp(-TMath::Power(tt*val[0], val[1]));</div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> }</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> </div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span>}</div>
</div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> </div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01334" data-start="{" data-end="}">
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"><a class="line" href="classPTheory.html#a2677ed739e48737f07028b7f3d3c5f63"> 1334</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a2677ed739e48737f07028b7f3d3c5f63">PTheory::SimpleGauss</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> <span class="comment">// expected parameters: sigma [tshift]</span></div>
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> </div>
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> Double_t val[2];</div>
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span> </div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 2);</div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> </div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> }</div>
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> }</div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> </div>
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> Double_t tt;</div>
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 1) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span> tt = t;</div>
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span> tt = t-val[1];</div>
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span> </div>
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span> <span class="keywordflow">return</span> TMath::Exp(-0.5*TMath::Power(tt*val[0], 2.0));</div>
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span>}</div>
</div>
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span> </div>
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01390" data-start="{" data-end="}">
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"><a class="line" href="classPTheory.html#a8ae9bd3e7ecccc6b3a93128d1a5cc89f"> 1390</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a8ae9bd3e7ecccc6b3a93128d1a5cc89f">PTheory::StaticGaussKT</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span> <span class="comment">// expected parameters: sigma [tshift]</span></div>
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span> </div>
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> Double_t val[2];</div>
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> </div>
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 2);</div>
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span> </div>
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> }</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> </div>
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> Double_t sigma_t_2;</div>
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 1) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> sigma_t_2 = t*t*val[0]*val[0];</div>
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span> sigma_t_2 = (t-val[1])*(t-val[1])*val[0]*val[0];</div>
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> </div>
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span> <span class="keywordflow">return</span> 0.333333333333333 * (1.0 + 2.0*(1.0 - sigma_t_2)*TMath::Exp(-0.5*sigma_t_2));</div>
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span>}</div>
</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><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01432" data-start="{" data-end="}">
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"><a class="line" href="classPTheory.html#a38b45a5848b847170d41ed5c17ef4cde"> 1432</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a38b45a5848b847170d41ed5c17ef4cde">PTheory::StaticGaussKTLF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span> </div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span> <span class="comment">// expected parameters: frequency damping [tshift]</span></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> Double_t val[3];</div>
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span> Double_t result;</div>
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span> </div>
<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span> </div>
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</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="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01447" name="l01447"></a><span class="lineno"> 1447</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span> }</div>
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span> }</div>
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span> </div>
<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</span> <span class="comment">// check if all parameters == 0</span></div>
<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</span> <span class="keywordflow">if</span> ((val[0] == 0.0) &amp;&amp; (val[1] == 0.0))</div>
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span> </div>
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span> <span class="comment">// check if the parameter values have changed, and if yes recalculate the non-analytic integral</span></div>
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span> <span class="comment">// check only the first two parameters since the tshift is irrelevant for the LF-integral calculation!!</span></div>
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span> Bool_t newParam = <span class="keyword">false</span>;</div>
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++) {</div>
<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span> <span class="keywordflow">if</span> (val[i] != <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i]) {</div>
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span> newParam = <span class="keyword">true</span>;</div>
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span> }</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> </div>
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span> <span class="keywordflow">if</span> (newParam) { <span class="comment">// new parameters found</span></div>
<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span> {</div>
<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++)</div>
<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span> <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i] = val[i];</div>
<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span> <a class="code hl_function" href="classPTheory.html#a162fdcf419f2285a05766fa75fc4badd">CalculateGaussLFIntegral</a>(val);</div>
<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span> }</div>
<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span> }</div>
<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span> </div>
<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span> Double_t tt;</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="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01475" name="l01475"></a><span class="lineno"> 1475</span> tt = t;</div>
<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"> 1477</span> tt = t-val[2];</div>
<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"> 1478</span> </div>
<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span> <span class="keywordflow">if</span> (tt &lt; 0.0) <span class="comment">// for times &lt; 0 return a function value of 1.0</span></div>
<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"> 1480</span> <span class="keywordflow">return</span> 1.0;</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> Double_t sigma_t_2 = 0.0;</div>
<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span> <span class="keywordflow">if</span> (val[0] &lt; 0.02) { <span class="comment">// if smaller 20kHz ~ 0.27G use the ZF formula</span></div>
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</span> sigma_t_2 = tt*tt*val[1]*val[1];</div>
<div class="line"><a id="l01485" name="l01485"></a><span class="lineno"> 1485</span> result = 0.333333333333333 * (1.0 + 2.0*(1.0 - sigma_t_2)*TMath::Exp(-0.5*sigma_t_2));</div>
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val[1]/val[0] &gt; 79.5775) { <span class="comment">// check if Delta/w0 &gt; 500.0, in which case the ZF formula is used</span></div>
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> sigma_t_2 = tt*tt*val[1]*val[1];</div>
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> result = 0.333333333333333 * (1.0 + 2.0*(1.0 - sigma_t_2)*TMath::Exp(-0.5*sigma_t_2));</div>
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> Double_t delta = val[1];</div>
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</span> Double_t w0 = 2.0*TMath::Pi()*val[0];</div>
<div class="line"><a id="l01492" name="l01492"></a><span class="lineno"> 1492</span> </div>
<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span> result = 1.0 - 2.0*TMath::Power(delta/w0,2.0)*(1.0 - </div>
<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span> TMath::Exp(-0.5*TMath::Power(delta*tt, 2.0))*TMath::Cos(w0*tt)) +</div>
<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"> 1495</span> <a class="code hl_function" href="classPTheory.html#a44d4841bb66f761c2502b78017f1756b">GetLFIntegralValue</a>(tt);</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> </div>
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span> </div>
<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"> 1500</span>}</div>
</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="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01521" data-start="{" data-end="}">
<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"><a class="line" href="classPTheory.html#a416b942041ffd226091d405aa5e1ff42"> 1521</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a416b942041ffd226091d405aa5e1ff42">PTheory::DynamicGaussKTLF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span> <span class="comment">// expected parameters: frequency damping hopping [tshift]</span></div>
<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"> 1524</span> </div>
<div class="line"><a id="l01525" name="l01525"></a><span class="lineno"> 1525</span> Double_t val[4];</div>
<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span> Double_t result = 0.0;</div>
<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</span> Bool_t useKeren = <span class="keyword">false</span>;</div>
<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"> 1528</span> </div>
<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 4);</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> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span> }</div>
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span> }</div>
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span> </div>
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</span> <span class="comment">// check if all parameters == 0</span></div>
<div class="line"><a id="l01541" name="l01541"></a><span class="lineno"> 1541</span> <span class="keywordflow">if</span> ((val[0] == 0.0) &amp;&amp; (val[1] == 0.0) &amp;&amp; (val[2] == 0.0))</div>
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"> 1543</span> </div>
<div class="line"><a id="l01544" name="l01544"></a><span class="lineno"> 1544</span> <span class="comment">// make sure that damping and hopping are positive definite</span></div>
<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"> 1545</span> <span class="keywordflow">if</span> (val[1] &lt; 0.0)</div>
<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"> 1546</span> val[1] = -val[1];</div>
<div class="line"><a id="l01547" name="l01547"></a><span class="lineno"> 1547</span> <span class="keywordflow">if</span> (val[2] &lt; 0.0)</div>
<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"> 1548</span> val[2] = -val[2];</div>
<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"> 1549</span> </div>
<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</span> <span class="comment">// check that Delta != 0, if not (i.e. stupid parameter) return 1, which is the correct limit</span></div>
<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span> <span class="keywordflow">if</span> (fabs(val[1]) &lt; 1.0e-6) {</div>
<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l01553" name="l01553"></a><span class="lineno"> 1553</span> }</div>
<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</span> </div>
<div class="line"><a id="l01555" name="l01555"></a><span class="lineno"> 1555</span> <span class="comment">// check if Keren approximation can be used</span></div>
<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span> <span class="keywordflow">if</span> (val[2]/val[1] &gt; 5.0) <span class="comment">// nu/Delta &gt; 5.0</span></div>
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span> useKeren = <span class="keyword">true</span>;</div>
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</span> </div>
<div class="line"><a id="l01559" name="l01559"></a><span class="lineno"> 1559</span> <span class="keywordflow">if</span> (!useKeren) {</div>
<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"> 1560</span> <span class="comment">// check if the parameter values have changed, and if yes recalculate the non-analytic integral</span></div>
<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span> <span class="comment">// check only the first three parameters since the tshift is irrelevant for the LF-integral calculation!!</span></div>
<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"> 1562</span> Bool_t newParam = <span class="keyword">false</span>;</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;3; i++) {</div>
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span> <span class="keywordflow">if</span> (val[i] != <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i]) {</div>
<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"> 1565</span> newParam = <span class="keyword">true</span>;</div>
<div class="line"><a id="l01566" name="l01566"></a><span class="lineno"> 1566</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span> }</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> </div>
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> <span class="keywordflow">if</span> (newParam) { <span class="comment">// new parameters found</span></div>
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;3; i++)</div>
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span> <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i] = val[i];</div>
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</span> <a class="code hl_function" href="classPTheory.html#a68818588fe0ed93817fcb2f1230851e1">CalculateDynKTLF</a>(val, 0); <span class="comment">// 0 means Gauss</span></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> }</div>
<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span> </div>
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> Double_t tt;</div>
<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 3) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01579" name="l01579"></a><span class="lineno"> 1579</span> tt = t;</div>
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</span> tt = t-val[3];</div>
<div class="line"><a id="l01582" name="l01582"></a><span class="lineno"> 1582</span> </div>
<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span> <span class="keywordflow">if</span> (tt &lt; 0.0) <span class="comment">// for times &lt; 0 return a function value of 0.0</span></div>
<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</span> <span class="keywordflow">return</span> 0.0;</div>
<div class="line"><a id="l01585" name="l01585"></a><span class="lineno"> 1585</span> </div>
<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</span> </div>
<div class="line"><a id="l01587" name="l01587"></a><span class="lineno"> 1587</span> <span class="keywordflow">if</span> (useKeren) { <span class="comment">// see PRB50, 10039 (1994)</span></div>
<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"> 1588</span> Double_t wL = <a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a> * val[0];</div>
<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"> 1589</span> Double_t wL2 = wL*wL;</div>
<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"> 1590</span> Double_t nu2 = val[2]*val[2];</div>
<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"> 1591</span> Double_t Gamma_t = 2.0*val[1]*val[1]/((wL2+nu2)*(wL2+nu2))*</div>
<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span> ((wL2+nu2)*val[2]*t</div>
<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"> 1593</span> + (wL2-nu2)*(1.0 - TMath::Exp(-val[2]*t)*TMath::Cos(wL*t))</div>
<div class="line"><a id="l01594" name="l01594"></a><span class="lineno"> 1594</span> - 2.0*val[2]*wL*TMath::Exp(-val[2]*t)*TMath::Sin(wL*t));</div>
<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"> 1595</span> result = TMath::Exp(-Gamma_t);</div>
<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"> 1596</span> } <span class="keywordflow">else</span> { <span class="comment">// from Voltera</span></div>
<div class="line"><a id="l01597" name="l01597"></a><span class="lineno"> 1597</span> result = <a class="code hl_function" href="classPTheory.html#afbefd7086854bfb72f02b95f3b22bdcd">GetDynKTLFValue</a>(tt);</div>
<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span> }</div>
<div class="line"><a id="l01599" name="l01599"></a><span class="lineno"> 1599</span> </div>
<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"> 1600</span> <span class="keywordflow">return</span> result;</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>}</div>
</div>
<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</span> </div>
<div class="line"><a id="l01604" name="l01604"></a><span class="lineno"> 1604</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01619" data-start="{" data-end="}">
<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"><a class="line" href="classPTheory.html#a38dec3c50021c73664737bb0481dcbcd"> 1619</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a38dec3c50021c73664737bb0481dcbcd">PTheory::StaticLorentzKT</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01620" name="l01620"></a><span class="lineno"> 1620</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"> 1621</span> <span class="comment">// expected parameters: lambda [tshift]</span></div>
<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</span> </div>
<div class="line"><a id="l01623" name="l01623"></a><span class="lineno"> 1623</span> Double_t val[2];</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> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 2);</div>
<div class="line"><a id="l01626" name="l01626"></a><span class="lineno"> 1626</span> </div>
<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"> 1627</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01628" name="l01628"></a><span class="lineno"> 1628</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01629" name="l01629"></a><span class="lineno"> 1629</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"> 1630</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"> 1631</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</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> }</div>
<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"> 1635</span> </div>
<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</span> Double_t a_t;</div>
<div class="line"><a id="l01637" name="l01637"></a><span class="lineno"> 1637</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 1) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</span> a_t = t*val[0];</div>
<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01640" name="l01640"></a><span class="lineno"> 1640</span> a_t = (t-val[1])*val[0];</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="keywordflow">return</span> 0.333333333333333 * (1.0 + 2.0*(1.0 - a_t)*TMath::Exp(-a_t));</div>
<div class="line"><a id="l01643" name="l01643"></a><span class="lineno"> 1643</span>}</div>
</div>
<div class="line"><a id="l01644" name="l01644"></a><span class="lineno"> 1644</span> </div>
<div class="line"><a id="l01645" name="l01645"></a><span class="lineno"> 1645</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01662" data-start="{" data-end="}">
<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"><a class="line" href="classPTheory.html#adddf87c309ea4130751cc3c401eee6b9"> 1662</a></span>Double_t <a class="code hl_function" href="classPTheory.html#adddf87c309ea4130751cc3c401eee6b9">PTheory::StaticLorentzKTLF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span> <span class="comment">// expected parameters: frequency damping [tshift]</span></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> Double_t val[3];</div>
<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span> Double_t result;</div>
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span> </div>
<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span> </div>
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"> 1671</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01675" name="l01675"></a><span class="lineno"> 1675</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span> }</div>
<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> }</div>
<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span> </div>
<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"> 1680</span> <span class="comment">// check if all parameters == 0</span></div>
<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"> 1681</span> <span class="keywordflow">if</span> ((val[0] == 0.0) &amp;&amp; (val[1] == 0.0))</div>
<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span> <span class="keywordflow">return</span> 1.0;</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> <span class="comment">// check if the parameter values have changed, and if yes recalculate the non-analytic integral</span></div>
<div class="line"><a id="l01685" name="l01685"></a><span class="lineno"> 1685</span> <span class="comment">// check only the first two parameters since the tshift is irrelevant for the LF-integral calculation!!</span></div>
<div class="line"><a id="l01686" name="l01686"></a><span class="lineno"> 1686</span> Bool_t newParam = <span class="keyword">false</span>;</div>
<div class="line"><a id="l01687" name="l01687"></a><span class="lineno"> 1687</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++) {</div>
<div class="line"><a id="l01688" name="l01688"></a><span class="lineno"> 1688</span> <span class="keywordflow">if</span> (val[i] != <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i]) {</div>
<div class="line"><a id="l01689" name="l01689"></a><span class="lineno"> 1689</span> newParam = <span class="keyword">true</span>;</div>
<div class="line"><a id="l01690" name="l01690"></a><span class="lineno"> 1690</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"> 1691</span> }</div>
<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span> }</div>
<div class="line"><a id="l01693" name="l01693"></a><span class="lineno"> 1693</span> </div>
<div class="line"><a id="l01694" name="l01694"></a><span class="lineno"> 1694</span> <span class="keywordflow">if</span> (newParam) { <span class="comment">// new parameters found</span></div>
<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"> 1695</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;2; i++)</div>
<div class="line"><a id="l01696" name="l01696"></a><span class="lineno"> 1696</span> <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i] = val[i];</div>
<div class="line"><a id="l01697" name="l01697"></a><span class="lineno"> 1697</span> <a class="code hl_function" href="classPTheory.html#ad0fab4cfa3e30636987597b2e515556f">CalculateLorentzLFIntegral</a>(val);</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> </div>
<div class="line"><a id="l01700" name="l01700"></a><span class="lineno"> 1700</span> Double_t tt;</div>
<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"> 1701</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01702" name="l01702"></a><span class="lineno"> 1702</span> tt = t;</div>
<div class="line"><a id="l01703" name="l01703"></a><span class="lineno"> 1703</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"> 1704</span> tt = t-val[2];</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> <span class="keywordflow">if</span> (tt &lt; 0.0) <span class="comment">// for times &lt; 0 return a function value of 1.0</span></div>
<div class="line"><a id="l01707" name="l01707"></a><span class="lineno"> 1707</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l01708" name="l01708"></a><span class="lineno"> 1708</span> </div>
<div class="line"><a id="l01709" name="l01709"></a><span class="lineno"> 1709</span> <span class="keywordflow">if</span> (val[0] &lt; 0.02) { <span class="comment">// if smaller 20kHz ~ 0.27G use the ZF formula</span></div>
<div class="line"><a id="l01710" name="l01710"></a><span class="lineno"> 1710</span> Double_t at = tt*val[1];</div>
<div class="line"><a id="l01711" name="l01711"></a><span class="lineno"> 1711</span> result = 0.333333333333333 * (1.0 + 2.0*(1.0 - at)*TMath::Exp(-at));</div>
<div class="line"><a id="l01712" name="l01712"></a><span class="lineno"> 1712</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val[1]/val[0] &gt; 159.1549) { <span class="comment">// check if a/w0 &gt; 1000.0, in which case the ZF formula is used</span></div>
<div class="line"><a id="l01713" name="l01713"></a><span class="lineno"> 1713</span> Double_t at = tt*val[1];</div>
<div class="line"><a id="l01714" name="l01714"></a><span class="lineno"> 1714</span> result = 0.333333333333333 * (1.0 + 2.0*(1.0 - at)*TMath::Exp(-at));</div>
<div class="line"><a id="l01715" name="l01715"></a><span class="lineno"> 1715</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01716" name="l01716"></a><span class="lineno"> 1716</span> Double_t a = val[1];</div>
<div class="line"><a id="l01717" name="l01717"></a><span class="lineno"> 1717</span> Double_t at = a*tt;</div>
<div class="line"><a id="l01718" name="l01718"></a><span class="lineno"> 1718</span> Double_t w0 = 2.0*TMath::Pi()*val[0];</div>
<div class="line"><a id="l01719" name="l01719"></a><span class="lineno"> 1719</span> Double_t a_w0 = a/w0;</div>
<div class="line"><a id="l01720" name="l01720"></a><span class="lineno"> 1720</span> Double_t w0t = w0*tt;</div>
<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span> </div>
<div class="line"><a id="l01722" name="l01722"></a><span class="lineno"> 1722</span> Double_t j1, j0;</div>
<div class="line"><a id="l01723" name="l01723"></a><span class="lineno"> 1723</span> <span class="keywordflow">if</span> (fabs(w0t) &lt; 0.001) { <span class="comment">// check zero time limits of the spherical bessel functions j0(x) and j1(x)</span></div>
<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"> 1724</span> j0 = 1.0;</div>
<div class="line"><a id="l01725" name="l01725"></a><span class="lineno"> 1725</span> j1 = 0.0;</div>
<div class="line"><a id="l01726" name="l01726"></a><span class="lineno"> 1726</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"> 1727</span> j0 = sin(w0t)/w0t;</div>
<div class="line"><a id="l01728" name="l01728"></a><span class="lineno"> 1728</span> j1 = (sin(w0t)-w0t*cos(w0t))/(w0t*w0t);</div>
<div class="line"><a id="l01729" name="l01729"></a><span class="lineno"> 1729</span> }</div>
<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"> 1730</span> </div>
<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"> 1731</span> result = 1.0 - a_w0*j1*exp(-at) - a_w0*a_w0*(j0*exp(-at) - 1.0) - <a class="code hl_function" href="classPTheory.html#a44d4841bb66f761c2502b78017f1756b">GetLFIntegralValue</a>(tt);</div>
<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</span> }</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> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l01735" name="l01735"></a><span class="lineno"> 1735</span> </div>
<div class="line"><a id="l01736" name="l01736"></a><span class="lineno"> 1736</span>}</div>
</div>
<div class="line"><a id="l01737" name="l01737"></a><span class="lineno"> 1737</span> </div>
<div class="line"><a id="l01738" name="l01738"></a><span class="lineno"> 1738</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01759" data-start="{" data-end="}">
<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"><a class="line" href="classPTheory.html#a96db7325d7d1008c260f613935a986a6"> 1759</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a96db7325d7d1008c260f613935a986a6">PTheory::DynamicLorentzKTLF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01761" name="l01761"></a><span class="lineno"> 1761</span> <span class="comment">// expected parameters: frequency damping hopping [tshift]</span></div>
<div class="line"><a id="l01762" name="l01762"></a><span class="lineno"> 1762</span> </div>
<div class="line"><a id="l01763" name="l01763"></a><span class="lineno"> 1763</span> Double_t val[4];</div>
<div class="line"><a id="l01764" name="l01764"></a><span class="lineno"> 1764</span> Double_t result = 0.0;</div>
<div class="line"><a id="l01765" name="l01765"></a><span class="lineno"> 1765</span> </div>
<div class="line"><a id="l01766" name="l01766"></a><span class="lineno"> 1766</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 4);</div>
<div class="line"><a id="l01767" name="l01767"></a><span class="lineno"> 1767</span> </div>
<div class="line"><a id="l01768" name="l01768"></a><span class="lineno"> 1768</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01769" name="l01769"></a><span class="lineno"> 1769</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01770" name="l01770"></a><span class="lineno"> 1770</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01771" name="l01771"></a><span class="lineno"> 1771</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"> 1772</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"> 1774</span> }</div>
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"> 1775</span> }</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">// check if all parameters == 0</span></div>
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span> <span class="keywordflow">if</span> ((val[0] == 0.0) &amp;&amp; (val[1] == 0.0) &amp;&amp; (val[2] == 0.0))</div>
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span> </div>
<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span> <span class="comment">// make sure that damping and hopping are positive definite</span></div>
<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span> <span class="keywordflow">if</span> (val[1] &lt; 0.0)</div>
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"> 1783</span> val[1] = -val[1];</div>
<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span> <span class="keywordflow">if</span> (val[2] &lt; 0.0)</div>
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span> val[2] = -val[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> </div>
<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span> Double_t tt;</div>
<div class="line"><a id="l01789" name="l01789"></a><span class="lineno"> 1789</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 3) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01790" name="l01790"></a><span class="lineno"> 1790</span> tt = t;</div>
<div class="line"><a id="l01791" name="l01791"></a><span class="lineno"> 1791</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01792" name="l01792"></a><span class="lineno"> 1792</span> tt = t-val[3];</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> <span class="keywordflow">if</span> (tt &lt; 0.0) <span class="comment">// for times &lt; 0 return a function value of 1.0</span></div>
<div class="line"><a id="l01795" name="l01795"></a><span class="lineno"> 1795</span> <span class="keywordflow">return</span> 1.0;</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 hopping &gt; 5 * damping, of Larmor angular frequency is &gt; 30 * damping (BMW limit)</span></div>
<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span> Double_t w0 = 2.0*TMath::Pi()*val[0];</div>
<div class="line"><a id="l01799" name="l01799"></a><span class="lineno"> 1799</span> Double_t a = val[1];</div>
<div class="line"><a id="l01800" name="l01800"></a><span class="lineno"> 1800</span> Double_t nu = val[2];</div>
<div class="line"><a id="l01801" name="l01801"></a><span class="lineno"> 1801</span> <span class="keywordflow">if</span> ((nu &gt; 5.0 * a) || (w0 &gt;= 30.0 * a)) {</div>
<div class="line"><a id="l01802" name="l01802"></a><span class="lineno"> 1802</span> <span class="comment">// &#39;c&#39; and &#39;d&#39; are parameters BMW obtained by fitting large parameter space LF-curves to the model below</span></div>
<div class="line"><a id="l01803" name="l01803"></a><span class="lineno"> 1803</span> <span class="keyword">const</span> Double_t c[7] = {1.15331, 1.64826, -0.71763, 3.0, 0.386683, -5.01876, 2.41854};</div>
<div class="line"><a id="l01804" name="l01804"></a><span class="lineno"> 1804</span> <span class="keyword">const</span> Double_t d[4] = {2.44056, 2.92063, 1.69581, 0.667277};</div>
<div class="line"><a id="l01805" name="l01805"></a><span class="lineno"> 1805</span> Double_t w0N[4];</div>
<div class="line"><a id="l01806" name="l01806"></a><span class="lineno"> 1806</span> Double_t nuN[4];</div>
<div class="line"><a id="l01807" name="l01807"></a><span class="lineno"> 1807</span> w0N[0] = w0;</div>
<div class="line"><a id="l01808" name="l01808"></a><span class="lineno"> 1808</span> nuN[0] = nu;</div>
<div class="line"><a id="l01809" name="l01809"></a><span class="lineno"> 1809</span> <span class="keywordflow">for</span> (UInt_t i=1; i&lt;4; i++) {</div>
<div class="line"><a id="l01810" name="l01810"></a><span class="lineno"> 1810</span> w0N[i] = w0 * w0N[i-1];</div>
<div class="line"><a id="l01811" name="l01811"></a><span class="lineno"> 1811</span> nuN[i] = nu * nuN[i-1];</div>
<div class="line"><a id="l01812" name="l01812"></a><span class="lineno"> 1812</span> }</div>
<div class="line"><a id="l01813" name="l01813"></a><span class="lineno"> 1813</span> Double_t denom = w0N[3]+d[0]*w0N[2]*nuN[0]+d[1]*w0N[1]*nuN[1]+d[2]*w0N[0]*nuN[2]+d[3]*nuN[3];</div>
<div class="line"><a id="l01814" name="l01814"></a><span class="lineno"> 1814</span> Double_t b1 = (c[0]*w0N[2]+c[1]*w0N[1]*nuN[0]+c[2]*w0N[0]*nuN[1])/denom;</div>
<div class="line"><a id="l01815" name="l01815"></a><span class="lineno"> 1815</span> Double_t b2 = (c[3]*w0N[2]+c[4]*w0N[1]*nuN[0]+c[5]*w0N[0]*nuN[1]+c[6]*nuN[2])/denom;</div>
<div class="line"><a id="l01816" name="l01816"></a><span class="lineno"> 1816</span> </div>
<div class="line"><a id="l01817" name="l01817"></a><span class="lineno"> 1817</span> Double_t w0t = w0*tt;</div>
<div class="line"><a id="l01818" name="l01818"></a><span class="lineno"> 1818</span> Double_t j1, j0;</div>
<div class="line"><a id="l01819" name="l01819"></a><span class="lineno"> 1819</span> <span class="keywordflow">if</span> (fabs(w0t) &lt; 0.001) { <span class="comment">// check zero time limits of the spherical bessel functions j0(x) and j1(x)</span></div>
<div class="line"><a id="l01820" name="l01820"></a><span class="lineno"> 1820</span> j0 = 1.0;</div>
<div class="line"><a id="l01821" name="l01821"></a><span class="lineno"> 1821</span> j1 = 0.0;</div>
<div class="line"><a id="l01822" name="l01822"></a><span class="lineno"> 1822</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01823" name="l01823"></a><span class="lineno"> 1823</span> j0 = sin(w0t)/w0t;</div>
<div class="line"><a id="l01824" name="l01824"></a><span class="lineno"> 1824</span> j1 = (sin(w0t)-w0t*cos(w0t))/(w0t*w0t);</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> Double_t Gamma_t = -4.0/3.0*a*(b1*(1.0-j0*TMath::Exp(-nu*tt))+b2*j1*TMath::Exp(-nu*tt)+(1.0-b2*w0/3.0-b1*nu)*tt);</div>
<div class="line"><a id="l01828" name="l01828"></a><span class="lineno"> 1828</span> </div>
<div class="line"><a id="l01829" name="l01829"></a><span class="lineno"> 1829</span> <span class="keywordflow">return</span> TMath::Exp(Gamma_t);</div>
<div class="line"><a id="l01830" name="l01830"></a><span class="lineno"> 1830</span> }</div>
<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"> 1831</span> </div>
<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span> <span class="comment">// check if the parameter values have changed, and if yes recalculate the non-analytic integral</span></div>
<div class="line"><a id="l01833" name="l01833"></a><span class="lineno"> 1833</span> <span class="comment">// check only the first three parameters since the tshift is irrelevant for the LF-integral calculation!!</span></div>
<div class="line"><a id="l01834" name="l01834"></a><span class="lineno"> 1834</span> Bool_t newParam = <span class="keyword">false</span>;</div>
<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;3; i++) {</div>
<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span> <span class="keywordflow">if</span> (val[i] != <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i]) {</div>
<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span> newParam = <span class="keyword">true</span>;</div>
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</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> </div>
<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span> <span class="keywordflow">if</span> (newParam) { <span class="comment">// new parameters found</span></div>
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;3; i++)</div>
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i] = val[i];</div>
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span> <a class="code hl_function" href="classPTheory.html#a68818588fe0ed93817fcb2f1230851e1">CalculateDynKTLF</a>(val, 1); <span class="comment">// 1 means Lorentz</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> </div>
<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"> 1848</span> result = <a class="code hl_function" href="classPTheory.html#afbefd7086854bfb72f02b95f3b22bdcd">GetDynKTLFValue</a>(tt);</div>
<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</span> </div>
<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"> 1850</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span> </div>
<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span>}</div>
</div>
<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span> </div>
<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01867" data-start="{" data-end="}">
<div class="line"><a id="l01867" name="l01867"></a><span class="lineno"><a class="line" href="classPTheory.html#a5fd8b32f6cbab4650975f714b393e05b"> 1867</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a5fd8b32f6cbab4650975f714b393e05b">PTheory::DynamicGauLorKTZFFast</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01868" name="l01868"></a><span class="lineno"> 1868</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01869" name="l01869"></a><span class="lineno"> 1869</span> <span class="comment">// expected parameters: damping hopping [tshift]</span></div>
<div class="line"><a id="l01870" name="l01870"></a><span class="lineno"> 1870</span> </div>
<div class="line"><a id="l01871" name="l01871"></a><span class="lineno"> 1871</span> Double_t val[3];</div>
<div class="line"><a id="l01872" name="l01872"></a><span class="lineno"> 1872</span> </div>
<div class="line"><a id="l01873" name="l01873"></a><span class="lineno"> 1873</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l01874" name="l01874"></a><span class="lineno"> 1874</span> </div>
<div class="line"><a id="l01875" name="l01875"></a><span class="lineno"> 1875</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01876" name="l01876"></a><span class="lineno"> 1876</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01877" name="l01877"></a><span class="lineno"> 1877</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01878" name="l01878"></a><span class="lineno"> 1878</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"> 1879</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"> 1880</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01881" name="l01881"></a><span class="lineno"> 1881</span> }</div>
<div class="line"><a id="l01882" name="l01882"></a><span class="lineno"> 1882</span> }</div>
<div class="line"><a id="l01883" name="l01883"></a><span class="lineno"> 1883</span> </div>
<div class="line"><a id="l01884" name="l01884"></a><span class="lineno"> 1884</span> Double_t tt;</div>
<div class="line"><a id="l01885" name="l01885"></a><span class="lineno"> 1885</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span> tt = t;</div>
<div class="line"><a id="l01887" name="l01887"></a><span class="lineno"> 1887</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01888" name="l01888"></a><span class="lineno"> 1888</span> tt = t-val[2];</div>
<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span> </div>
<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"> 1890</span> Double_t nut = val[1]*tt;</div>
<div class="line"><a id="l01891" name="l01891"></a><span class="lineno"> 1891</span> <span class="keywordflow">return</span> exp(-sqrt(4.0*pow(val[0]/val[1], 2.0)*(exp(-nut)-1.0+nut)));</div>
<div class="line"><a id="l01892" name="l01892"></a><span class="lineno"> 1892</span>}</div>
</div>
<div class="line"><a id="l01893" name="l01893"></a><span class="lineno"> 1893</span> </div>
<div class="line"><a id="l01894" name="l01894"></a><span class="lineno"> 1894</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="classPTheory.html#abcc03b3a088cf08941c2295c06d258cf"> 1907</a></span>Double_t <a class="code hl_function" href="classPTheory.html#abcc03b3a088cf08941c2295c06d258cf">PTheory::DynamicGauLorKTLFFast</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"> 1909</span> <span class="comment">// expected parameters: frequency damping hopping [tshift]</span></div>
<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"> 1910</span> </div>
<div class="line"><a id="l01911" name="l01911"></a><span class="lineno"> 1911</span> Double_t val[4];</div>
<div class="line"><a id="l01912" name="l01912"></a><span class="lineno"> 1912</span> </div>
<div class="line"><a id="l01913" name="l01913"></a><span class="lineno"> 1913</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 4);</div>
<div class="line"><a id="l01914" name="l01914"></a><span class="lineno"> 1914</span> </div>
<div class="line"><a id="l01915" name="l01915"></a><span class="lineno"> 1915</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01916" name="l01916"></a><span class="lineno"> 1916</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01917" name="l01917"></a><span class="lineno"> 1917</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01918" name="l01918"></a><span class="lineno"> 1918</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01919" name="l01919"></a><span class="lineno"> 1919</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"> 1921</span> }</div>
<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span> }</div>
<div class="line"><a id="l01923" name="l01923"></a><span class="lineno"> 1923</span> </div>
<div class="line"><a id="l01924" name="l01924"></a><span class="lineno"> 1924</span> Double_t tt;</div>
<div class="line"><a id="l01925" name="l01925"></a><span class="lineno"> 1925</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 3) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01926" name="l01926"></a><span class="lineno"> 1926</span> tt = t;</div>
<div class="line"><a id="l01927" name="l01927"></a><span class="lineno"> 1927</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01928" name="l01928"></a><span class="lineno"> 1928</span> tt = t-val[3];</div>
<div class="line"><a id="l01929" name="l01929"></a><span class="lineno"> 1929</span> </div>
<div class="line"><a id="l01930" name="l01930"></a><span class="lineno"> 1930</span> Double_t w0 = TMath::TwoPi()*val[0];</div>
<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span> Double_t w0_2 = w0*w0;</div>
<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</span> Double_t nu_2 = val[2]*val[2];</div>
<div class="line"><a id="l01933" name="l01933"></a><span class="lineno"> 1933</span> Double_t nu_t = val[2]*tt;</div>
<div class="line"><a id="l01934" name="l01934"></a><span class="lineno"> 1934</span> Double_t w0_t = w0*tt;</div>
<div class="line"><a id="l01935" name="l01935"></a><span class="lineno"> 1935</span> Double_t Gamma_t = ((w0_2+nu_2)*nu_t+(w0_2-nu_2)*(1.0-exp(-nu_t)*cos(w0_t))-2.0*val[2]*w0*exp(-nu_t)*sin(w0_t))/pow(w0_2+nu_2,2.0);</div>
<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"> 1936</span> <span class="keywordflow">if</span> (Gamma_t &lt; 0.0)</div>
<div class="line"><a id="l01937" name="l01937"></a><span class="lineno"> 1937</span> Gamma_t = 0.0;</div>
<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"> 1938</span> </div>
<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"> 1939</span> <span class="keywordflow">return</span> exp(-sqrt(4.0*val[1]*val[1]*Gamma_t));</div>
<div class="line"><a id="l01940" name="l01940"></a><span class="lineno"> 1940</span>}</div>
</div>
<div class="line"><a id="l01941" name="l01941"></a><span class="lineno"> 1941</span> </div>
<div class="line"><a id="l01942" name="l01942"></a><span class="lineno"> 1942</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen01954" data-start="{" data-end="}">
<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"><a class="line" href="classPTheory.html#a03bd0458d6c25973450b36193691ed2a"> 1954</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a03bd0458d6c25973450b36193691ed2a">PTheory::DynamicGauLorKTLF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l01955" name="l01955"></a><span class="lineno"> 1955</span><span class="keyword"></span>{</div>
<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">// expected parameters: frequency damping hopping [tshift]</span></div>
<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"> 1957</span> </div>
<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"> 1958</span> Double_t val[4];</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> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 4);</div>
<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span> </div>
<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"> 1963</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"> 1966</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"> 1968</span> }</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> Double_t tt;</div>
<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 3) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span> tt = t;</div>
<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span> tt = t-val[3];</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">// check if the parameter values have changed, and if yes recalculate DynamicGaussKTLF</span></div>
<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"> 1978</span> Bool_t newParam = <span class="keyword">false</span>;</div>
<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;3; i++) {</div>
<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"> 1980</span> <span class="keywordflow">if</span> (val[i] != <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i]) {</div>
<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"> 1981</span> newParam = <span class="keyword">true</span>;</div>
<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"> 1982</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</span> }</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> </div>
<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span> <span class="keywordflow">if</span> (newParam) { <span class="comment">// new parameters found, hence calculate DynamicGauLorKTLF</span></div>
<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span> <span class="comment">// keep parameters</span></div>
<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"> 1988</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;3; i++)</div>
<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"> 1989</span> <a class="code hl_variable" href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">fPrevParam</a>[i] = val[i];</div>
<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"> 1990</span> </div>
<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"> 1991</span> <span class="comment">// reset GL LF polarzation vector</span></div>
<div class="line"><a id="l01992" name="l01992"></a><span class="lineno"> 1992</span> <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>.clear();</div>
<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"> 1993</span> <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>.resize(20000); <span class="comment">// Tmax=20us, dt=1ns</span></div>
<div class="line"><a id="l01994" name="l01994"></a><span class="lineno"> 1994</span> </div>
<div class="line"><a id="l01995" name="l01995"></a><span class="lineno"> 1995</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> rr={0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0, 5.0, 7.5, 10.0,</div>
<div class="line"><a id="l01996" name="l01996"></a><span class="lineno"> 1996</span> 12.8125, 15.625, 18.4375, 21.25, 26.875, 32.5, 43.75, 55.0, 77.5, 100.0};</div>
<div class="line"><a id="l01997" name="l01997"></a><span class="lineno"> 1997</span> Double_t par[3] = {val[0], val[1], val[2]};</div>
<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"> 1998</span> Double_t sqrtTwoInv = 1.0/sqrt(2.0);</div>
<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span> Bool_t isOneVec{<span class="keyword">false</span>};</div>
<div class="line"><a id="l02000" name="l02000"></a><span class="lineno"> 2000</span> Bool_t useKeren{<span class="keyword">false</span>};</div>
<div class="line"><a id="l02001" name="l02001"></a><span class="lineno"> 2001</span> Double_t scale, up{0.0}, low{-1.0};</div>
<div class="line"><a id="l02002" name="l02002"></a><span class="lineno"> 2002</span> </div>
<div class="line"><a id="l02003" name="l02003"></a><span class="lineno"> 2003</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;rr.size(); i++) {</div>
<div class="line"><a id="l02004" name="l02004"></a><span class="lineno"> 2004</span> useKeren = <span class="keyword">false</span>;</div>
<div class="line"><a id="l02005" name="l02005"></a><span class="lineno"> 2005</span> isOneVec = <span class="keyword">false</span>;</div>
<div class="line"><a id="l02006" name="l02006"></a><span class="lineno"> 2006</span> </div>
<div class="line"><a id="l02007" name="l02007"></a><span class="lineno"> 2007</span> <span class="comment">// Delta_G = rr * Delta_L</span></div>
<div class="line"><a id="l02008" name="l02008"></a><span class="lineno"> 2008</span> par[1] = rr[i] * val[1];</div>
<div class="line"><a id="l02009" name="l02009"></a><span class="lineno"> 2009</span> </div>
<div class="line"><a id="l02010" name="l02010"></a><span class="lineno"> 2010</span> <span class="comment">// check if all parameters == 0</span></div>
<div class="line"><a id="l02011" name="l02011"></a><span class="lineno"> 2011</span> <span class="keywordflow">if</span> ((par[0] == 0.0) &amp;&amp; (par[1] == 0.0) &amp;&amp; (par[2] == 0.0)) {</div>
<div class="line"><a id="l02012" name="l02012"></a><span class="lineno"> 2012</span> isOneVec = <span class="keyword">true</span>;</div>
<div class="line"><a id="l02013" name="l02013"></a><span class="lineno"> 2013</span> }</div>
<div class="line"><a id="l02014" name="l02014"></a><span class="lineno"> 2014</span> </div>
<div class="line"><a id="l02015" name="l02015"></a><span class="lineno"> 2015</span> <span class="comment">// make sure that damping and hopping are positive definite</span></div>
<div class="line"><a id="l02016" name="l02016"></a><span class="lineno"> 2016</span> <span class="keywordflow">if</span> (par[1] &lt; 0.0)</div>
<div class="line"><a id="l02017" name="l02017"></a><span class="lineno"> 2017</span> par[1] = -par[1];</div>
<div class="line"><a id="l02018" name="l02018"></a><span class="lineno"> 2018</span> <span class="keywordflow">if</span> (par[2] &lt; 0.0)</div>
<div class="line"><a id="l02019" name="l02019"></a><span class="lineno"> 2019</span> par[2] = -par[2];</div>
<div class="line"><a id="l02020" name="l02020"></a><span class="lineno"> 2020</span> </div>
<div class="line"><a id="l02021" name="l02021"></a><span class="lineno"> 2021</span> <span class="comment">// check that Delta != 0, if not (i.e. stupid parameter) return 1, which is the correct limit</span></div>
<div class="line"><a id="l02022" name="l02022"></a><span class="lineno"> 2022</span> <span class="keywordflow">if</span> (fabs(par[1]) &lt; 1.0e-6) {</div>
<div class="line"><a id="l02023" name="l02023"></a><span class="lineno"> 2023</span> isOneVec = <span class="keyword">true</span>;</div>
<div class="line"><a id="l02024" name="l02024"></a><span class="lineno"> 2024</span> }</div>
<div class="line"><a id="l02025" name="l02025"></a><span class="lineno"> 2025</span> </div>
<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"> 2026</span> <span class="comment">// check if Keren approximation can be used</span></div>
<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"> 2027</span> <span class="keywordflow">if</span> (par[2]/par[1] &gt; 5.0) <span class="comment">// nu/Delta &gt; 5.0</span></div>
<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"> 2028</span> useKeren = <span class="keyword">true</span>;</div>
<div class="line"><a id="l02029" name="l02029"></a><span class="lineno"> 2029</span> </div>
<div class="line"><a id="l02030" name="l02030"></a><span class="lineno"> 2030</span> <span class="keywordflow">if</span> (!useKeren &amp;&amp; !isOneVec) {</div>
<div class="line"><a id="l02031" name="l02031"></a><span class="lineno"> 2031</span> <a class="code hl_function" href="classPTheory.html#a68818588fe0ed93817fcb2f1230851e1">CalculateDynKTLF</a>(par, 0); <span class="comment">// 0 means Gauss</span></div>
<div class="line"><a id="l02032" name="l02032"></a><span class="lineno"> 2032</span> }</div>
<div class="line"><a id="l02033" name="l02033"></a><span class="lineno"> 2033</span> </div>
<div class="line"><a id="l02034" name="l02034"></a><span class="lineno"> 2034</span> <span class="comment">// calculate polarization vector for the given parameters</span></div>
<div class="line"><a id="l02035" name="l02035"></a><span class="lineno"> 2035</span> up = -std::erf(sqrtTwoInv/rr[i]);</div>
<div class="line"><a id="l02036" name="l02036"></a><span class="lineno"> 2036</span> scale = up - low;</div>
<div class="line"><a id="l02037" name="l02037"></a><span class="lineno"> 2037</span> low = up;</div>
<div class="line"><a id="l02038" name="l02038"></a><span class="lineno"> 2038</span> </div>
<div class="line"><a id="l02039" name="l02039"></a><span class="lineno"> 2039</span> <span class="keyword">const</span> Double_t dt=0.001;</div>
<div class="line"><a id="l02040" name="l02040"></a><span class="lineno"> 2040</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;20000; i++) {</div>
<div class="line"><a id="l02041" name="l02041"></a><span class="lineno"> 2041</span> <span class="keywordflow">if</span> (isOneVec) {</div>
<div class="line"><a id="l02042" name="l02042"></a><span class="lineno"> 2042</span> <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>[i] += scale;</div>
<div class="line"><a id="l02043" name="l02043"></a><span class="lineno"> 2043</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (useKeren &amp;&amp; !isOneVec) {<span class="comment">// see PRB50, 10039 (1994)</span></div>
<div class="line"><a id="l02044" name="l02044"></a><span class="lineno"> 2044</span> Double_t wL = <a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a> * par[0];</div>
<div class="line"><a id="l02045" name="l02045"></a><span class="lineno"> 2045</span> Double_t wL2 = wL*wL;</div>
<div class="line"><a id="l02046" name="l02046"></a><span class="lineno"> 2046</span> Double_t nu2 = par[2]*par[2];</div>
<div class="line"><a id="l02047" name="l02047"></a><span class="lineno"> 2047</span> Double_t Gamma_t = 2.0*par[1]*par[1]/((wL2+nu2)*(wL2+nu2))*</div>
<div class="line"><a id="l02048" name="l02048"></a><span class="lineno"> 2048</span> ((wL2+nu2)*val[2]*i*dt</div>
<div class="line"><a id="l02049" name="l02049"></a><span class="lineno"> 2049</span> + (wL2-nu2)*(1.0 - TMath::Exp(-val[2]*i*dt)*TMath::Cos(wL*i*dt))</div>
<div class="line"><a id="l02050" name="l02050"></a><span class="lineno"> 2050</span> - 2.0*val[2]*wL*TMath::Exp(-val[2]*i*dt)*TMath::Sin(wL*i*dt));</div>
<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"> 2051</span> <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>[i] += scale*TMath::Exp(-Gamma_t);</div>
<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!useKeren &amp;&amp; !isOneVec) {</div>
<div class="line"><a id="l02053" name="l02053"></a><span class="lineno"> 2053</span> <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>[i] += scale*<a class="code hl_function" href="classPTheory.html#afbefd7086854bfb72f02b95f3b22bdcd">GetDynKTLFValue</a>(i*dt);</div>
<div class="line"><a id="l02054" name="l02054"></a><span class="lineno"> 2054</span> }</div>
<div class="line"><a id="l02055" name="l02055"></a><span class="lineno"> 2055</span> }</div>
<div class="line"><a id="l02056" name="l02056"></a><span class="lineno"> 2056</span> }</div>
<div class="line"><a id="l02057" name="l02057"></a><span class="lineno"> 2057</span> }</div>
<div class="line"><a id="l02058" name="l02058"></a><span class="lineno"> 2058</span> </div>
<div class="line"><a id="l02059" name="l02059"></a><span class="lineno"> 2059</span> </div>
<div class="line"><a id="l02060" name="l02060"></a><span class="lineno"> 2060</span> <span class="comment">// get the proper value from the look-up table</span></div>
<div class="line"><a id="l02061" name="l02061"></a><span class="lineno"> 2061</span> Double_t result{1.0};</div>
<div class="line"><a id="l02062" name="l02062"></a><span class="lineno"> 2062</span> <span class="keywordflow">if</span> (tt&gt;=0)</div>
<div class="line"><a id="l02063" name="l02063"></a><span class="lineno"> 2063</span> result=<a class="code hl_function" href="classPTheory.html#ab5cf3eb3c9aa8bb22d98597fd6a244e6">GetDyn_GL_KTLFValue</a>(tt);</div>
<div class="line"><a id="l02064" name="l02064"></a><span class="lineno"> 2064</span> </div>
<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</span>}</div>
</div>
<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span> </div>
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02083" data-start="{" data-end="}">
<div class="line"><a id="l02083" name="l02083"></a><span class="lineno"><a class="line" href="classPTheory.html#ae379c15c25527635fa88faa06ca57863"> 2083</a></span>Double_t <a class="code hl_function" href="classPTheory.html#ae379c15c25527635fa88faa06ca57863">PTheory::CombiLGKT</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02084" name="l02084"></a><span class="lineno"> 2084</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"> 2085</span> <span class="comment">// expected parameters: lambdaL lambdaG [tshift]</span></div>
<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</span> </div>
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> Double_t val[3];</div>
<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"> 2088</span> </div>
<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"> 2089</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span> </div>
<div class="line"><a id="l02091" name="l02091"></a><span class="lineno"> 2091</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02092" name="l02092"></a><span class="lineno"> 2092</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02093" name="l02093"></a><span class="lineno"> 2093</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02094" name="l02094"></a><span class="lineno"> 2094</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02095" name="l02095"></a><span class="lineno"> 2095</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02096" name="l02096"></a><span class="lineno"> 2096</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02097" name="l02097"></a><span class="lineno"> 2097</span> }</div>
<div class="line"><a id="l02098" name="l02098"></a><span class="lineno"> 2098</span> }</div>
<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"> 2099</span> </div>
<div class="line"><a id="l02100" name="l02100"></a><span class="lineno"> 2100</span> Double_t tt;</div>
<div class="line"><a id="l02101" name="l02101"></a><span class="lineno"> 2101</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"> 2102</span> tt = t;</div>
<div class="line"><a id="l02103" name="l02103"></a><span class="lineno"> 2103</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</span> tt = t-val[2];</div>
<div class="line"><a id="l02105" name="l02105"></a><span class="lineno"> 2105</span> </div>
<div class="line"><a id="l02106" name="l02106"></a><span class="lineno"> 2106</span> Double_t lambdaL_t = tt*val[0];</div>
<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"> 2107</span> Double_t lambdaG_t_2 = tt*tt*val[1]*val[1];</div>
<div class="line"><a id="l02108" name="l02108"></a><span class="lineno"> 2108</span> </div>
<div class="line"><a id="l02109" name="l02109"></a><span class="lineno"> 2109</span> <span class="keywordflow">return</span> 0.333333333333333 * </div>
<div class="line"><a id="l02110" name="l02110"></a><span class="lineno"> 2110</span> (1.0 + 2.0*(1.0-lambdaL_t-lambdaG_t_2)*TMath::Exp(-(lambdaL_t+0.5*lambdaG_t_2)));</div>
<div class="line"><a id="l02111" name="l02111"></a><span class="lineno"> 2111</span>}</div>
</div>
<div class="line"><a id="l02112" name="l02112"></a><span class="lineno"> 2112</span> </div>
<div class="line"><a id="l02113" name="l02113"></a><span class="lineno"> 2113</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02129" data-start="{" data-end="}">
<div class="line"><a id="l02129" name="l02129"></a><span class="lineno"><a class="line" href="classPTheory.html#a4dc432db11ee23d7a3f8ffe92d233068"> 2129</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a4dc432db11ee23d7a3f8ffe92d233068">PTheory::StrKT</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02130" name="l02130"></a><span class="lineno"> 2130</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02131" name="l02131"></a><span class="lineno"> 2131</span> <span class="comment">// expected parameters: sigma beta [tshift]</span></div>
<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"> 2132</span> </div>
<div class="line"><a id="l02133" name="l02133"></a><span class="lineno"> 2133</span> Double_t val[3];</div>
<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"> 2134</span> </div>
<div class="line"><a id="l02135" name="l02135"></a><span class="lineno"> 2135</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"> 2136</span> </div>
<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"> 2137</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"> 2138</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02140" name="l02140"></a><span class="lineno"> 2140</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"> 2141</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02142" name="l02142"></a><span class="lineno"> 2142</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02143" name="l02143"></a><span class="lineno"> 2143</span> }</div>
<div class="line"><a id="l02144" name="l02144"></a><span class="lineno"> 2144</span> }</div>
<div class="line"><a id="l02145" name="l02145"></a><span class="lineno"> 2145</span> </div>
<div class="line"><a id="l02146" name="l02146"></a><span class="lineno"> 2146</span> <span class="comment">// check for beta too small (beta &lt; 0.1) in which case numerical problems could arise and the function is anyhow</span></div>
<div class="line"><a id="l02147" name="l02147"></a><span class="lineno"> 2147</span> <span class="comment">// almost identical to a constant of 1/3.</span></div>
<div class="line"><a id="l02148" name="l02148"></a><span class="lineno"> 2148</span> <span class="keywordflow">if</span> (val[1] &lt; 0.1)</div>
<div class="line"><a id="l02149" name="l02149"></a><span class="lineno"> 2149</span> <span class="keywordflow">return</span> 0.333333333333333;</div>
<div class="line"><a id="l02150" name="l02150"></a><span class="lineno"> 2150</span> </div>
<div class="line"><a id="l02151" name="l02151"></a><span class="lineno"> 2151</span> Double_t tt;</div>
<div class="line"><a id="l02152" name="l02152"></a><span class="lineno"> 2152</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02153" name="l02153"></a><span class="lineno"> 2153</span> tt = t;</div>
<div class="line"><a id="l02154" name="l02154"></a><span class="lineno"> 2154</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02155" name="l02155"></a><span class="lineno"> 2155</span> tt = t-val[2];</div>
<div class="line"><a id="l02156" name="l02156"></a><span class="lineno"> 2156</span> </div>
<div class="line"><a id="l02157" name="l02157"></a><span class="lineno"> 2157</span> Double_t sigma_t = TMath::Power(tt*val[0],val[1]);</div>
<div class="line"><a id="l02158" name="l02158"></a><span class="lineno"> 2158</span> </div>
<div class="line"><a id="l02159" name="l02159"></a><span class="lineno"> 2159</span> <span class="keywordflow">return</span> 0.333333333333333 * </div>
<div class="line"><a id="l02160" name="l02160"></a><span class="lineno"> 2160</span> (1.0 + 2.0*(1.0-sigma_t)*TMath::Exp(-sigma_t/val[1]));</div>
<div class="line"><a id="l02161" name="l02161"></a><span class="lineno"> 2161</span>}</div>
</div>
<div class="line"><a id="l02162" name="l02162"></a><span class="lineno"> 2162</span> </div>
<div class="line"><a id="l02163" name="l02163"></a><span class="lineno"> 2163</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02178" data-start="{" data-end="}">
<div class="line"><a id="l02178" name="l02178"></a><span class="lineno"><a class="line" href="classPTheory.html#ad7486d946964f49b73e7e1aa804f9f94"> 2178</a></span>Double_t <a class="code hl_function" href="classPTheory.html#ad7486d946964f49b73e7e1aa804f9f94">PTheory::SpinGlass</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02179" name="l02179"></a><span class="lineno"> 2179</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02180" name="l02180"></a><span class="lineno"> 2180</span> <span class="comment">// expected parameters: lambda gamma q [tshift]</span></div>
<div class="line"><a id="l02181" name="l02181"></a><span class="lineno"> 2181</span> </div>
<div class="line"><a id="l02182" name="l02182"></a><span class="lineno"> 2182</span> <span class="keywordflow">if</span> (paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[0]] == 0.0)</div>
<div class="line"><a id="l02183" name="l02183"></a><span class="lineno"> 2183</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l02184" name="l02184"></a><span class="lineno"> 2184</span> </div>
<div class="line"><a id="l02185" name="l02185"></a><span class="lineno"> 2185</span> Double_t val[4];</div>
<div class="line"><a id="l02186" name="l02186"></a><span class="lineno"> 2186</span> </div>
<div class="line"><a id="l02187" name="l02187"></a><span class="lineno"> 2187</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 4);</div>
<div class="line"><a id="l02188" name="l02188"></a><span class="lineno"> 2188</span> </div>
<div class="line"><a id="l02189" name="l02189"></a><span class="lineno"> 2189</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02190" name="l02190"></a><span class="lineno"> 2190</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02191" name="l02191"></a><span class="lineno"> 2191</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02192" name="l02192"></a><span class="lineno"> 2192</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02193" name="l02193"></a><span class="lineno"> 2193</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02194" name="l02194"></a><span class="lineno"> 2194</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02195" name="l02195"></a><span class="lineno"> 2195</span> }</div>
<div class="line"><a id="l02196" name="l02196"></a><span class="lineno"> 2196</span> }</div>
<div class="line"><a id="l02197" name="l02197"></a><span class="lineno"> 2197</span> </div>
<div class="line"><a id="l02198" name="l02198"></a><span class="lineno"> 2198</span> Double_t tt;</div>
<div class="line"><a id="l02199" name="l02199"></a><span class="lineno"> 2199</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 3) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02200" name="l02200"></a><span class="lineno"> 2200</span> tt = t;</div>
<div class="line"><a id="l02201" name="l02201"></a><span class="lineno"> 2201</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02202" name="l02202"></a><span class="lineno"> 2202</span> tt = t-val[3];</div>
<div class="line"><a id="l02203" name="l02203"></a><span class="lineno"> 2203</span> </div>
<div class="line"><a id="l02204" name="l02204"></a><span class="lineno"> 2204</span> Double_t lambda_2 = val[0]*val[0];</div>
<div class="line"><a id="l02205" name="l02205"></a><span class="lineno"> 2205</span> Double_t lambda_t_2_q = tt*tt*lambda_2*val[2];</div>
<div class="line"><a id="l02206" name="l02206"></a><span class="lineno"> 2206</span> Double_t rate_2 = 4.0*lambda_2*(1.0-val[2])*tt/val[1];</div>
<div class="line"><a id="l02207" name="l02207"></a><span class="lineno"> 2207</span> </div>
<div class="line"><a id="l02208" name="l02208"></a><span class="lineno"> 2208</span> Double_t rateL = TMath::Sqrt(fabs(rate_2));</div>
<div class="line"><a id="l02209" name="l02209"></a><span class="lineno"> 2209</span> Double_t rateT = TMath::Sqrt(fabs(rate_2)+lambda_t_2_q);</div>
<div class="line"><a id="l02210" name="l02210"></a><span class="lineno"> 2210</span> </div>
<div class="line"><a id="l02211" name="l02211"></a><span class="lineno"> 2211</span> <span class="keywordflow">return</span> 0.333333333333333*(TMath::Exp(-rateL) + 2.0*(1.0-lambda_t_2_q/rateT)*TMath::Exp(-rateT));</div>
<div class="line"><a id="l02212" name="l02212"></a><span class="lineno"> 2212</span>}</div>
</div>
<div class="line"><a id="l02213" name="l02213"></a><span class="lineno"> 2213</span> </div>
<div class="line"><a id="l02214" name="l02214"></a><span class="lineno"> 2214</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02229" data-start="{" data-end="}">
<div class="line"><a id="l02229" name="l02229"></a><span class="lineno"><a class="line" href="classPTheory.html#a646477b37fc74bffbd4ab69694f8a708"> 2229</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a646477b37fc74bffbd4ab69694f8a708">PTheory::RandomAnisotropicHyperfine</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02230" name="l02230"></a><span class="lineno"> 2230</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02231" name="l02231"></a><span class="lineno"> 2231</span> <span class="comment">// expected parameters: nu lambda [tshift]</span></div>
<div class="line"><a id="l02232" name="l02232"></a><span class="lineno"> 2232</span> </div>
<div class="line"><a id="l02233" name="l02233"></a><span class="lineno"> 2233</span> Double_t val[3];</div>
<div class="line"><a id="l02234" name="l02234"></a><span class="lineno"> 2234</span> </div>
<div class="line"><a id="l02235" name="l02235"></a><span class="lineno"> 2235</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l02236" name="l02236"></a><span class="lineno"> 2236</span> </div>
<div class="line"><a id="l02237" name="l02237"></a><span class="lineno"> 2237</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02238" name="l02238"></a><span class="lineno"> 2238</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02239" name="l02239"></a><span class="lineno"> 2239</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02240" name="l02240"></a><span class="lineno"> 2240</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02241" name="l02241"></a><span class="lineno"> 2241</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02242" name="l02242"></a><span class="lineno"> 2242</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02243" name="l02243"></a><span class="lineno"> 2243</span> }</div>
<div class="line"><a id="l02244" name="l02244"></a><span class="lineno"> 2244</span> }</div>
<div class="line"><a id="l02245" name="l02245"></a><span class="lineno"> 2245</span> </div>
<div class="line"><a id="l02246" name="l02246"></a><span class="lineno"> 2246</span> Double_t tt;</div>
<div class="line"><a id="l02247" name="l02247"></a><span class="lineno"> 2247</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02248" name="l02248"></a><span class="lineno"> 2248</span> tt = t;</div>
<div class="line"><a id="l02249" name="l02249"></a><span class="lineno"> 2249</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02250" name="l02250"></a><span class="lineno"> 2250</span> tt = t-val[2];</div>
<div class="line"><a id="l02251" name="l02251"></a><span class="lineno"> 2251</span> </div>
<div class="line"><a id="l02252" name="l02252"></a><span class="lineno"> 2252</span> Double_t nu_t = tt*val[0];</div>
<div class="line"><a id="l02253" name="l02253"></a><span class="lineno"> 2253</span> Double_t lambda_t = tt*val[1];</div>
<div class="line"><a id="l02254" name="l02254"></a><span class="lineno"> 2254</span> </div>
<div class="line"><a id="l02255" name="l02255"></a><span class="lineno"> 2255</span> <span class="keywordflow">return</span> 0.166666666666667*(1.0-0.5*nu_t)*TMath::Exp(-0.5*nu_t) +</div>
<div class="line"><a id="l02256" name="l02256"></a><span class="lineno"> 2256</span> 0.333333333333333*(1.0-0.25*nu_t)*TMath::Exp(-0.25*(nu_t+2.44949*lambda_t));</div>
<div class="line"><a id="l02257" name="l02257"></a><span class="lineno"> 2257</span>}</div>
</div>
<div class="line"><a id="l02258" name="l02258"></a><span class="lineno"> 2258</span> </div>
<div class="line"><a id="l02259" name="l02259"></a><span class="lineno"> 2259</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02274" data-start="{" data-end="}">
<div class="line"><a id="l02274" name="l02274"></a><span class="lineno"><a class="line" href="classPTheory.html#a13b41bea368eebeee597fe0693c36c13"> 2274</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a13b41bea368eebeee597fe0693c36c13">PTheory::Abragam</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02275" name="l02275"></a><span class="lineno"> 2275</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02276" name="l02276"></a><span class="lineno"> 2276</span> <span class="comment">// expected parameters: sigma gamma [tshift]</span></div>
<div class="line"><a id="l02277" name="l02277"></a><span class="lineno"> 2277</span> </div>
<div class="line"><a id="l02278" name="l02278"></a><span class="lineno"> 2278</span> Double_t val[3];</div>
<div class="line"><a id="l02279" name="l02279"></a><span class="lineno"> 2279</span> </div>
<div class="line"><a id="l02280" name="l02280"></a><span class="lineno"> 2280</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l02281" name="l02281"></a><span class="lineno"> 2281</span> </div>
<div class="line"><a id="l02282" name="l02282"></a><span class="lineno"> 2282</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02283" name="l02283"></a><span class="lineno"> 2283</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02284" name="l02284"></a><span class="lineno"> 2284</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02285" name="l02285"></a><span class="lineno"> 2285</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02286" name="l02286"></a><span class="lineno"> 2286</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02287" name="l02287"></a><span class="lineno"> 2287</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02288" name="l02288"></a><span class="lineno"> 2288</span> }</div>
<div class="line"><a id="l02289" name="l02289"></a><span class="lineno"> 2289</span> }</div>
<div class="line"><a id="l02290" name="l02290"></a><span class="lineno"> 2290</span> </div>
<div class="line"><a id="l02291" name="l02291"></a><span class="lineno"> 2291</span> Double_t tt;</div>
<div class="line"><a id="l02292" name="l02292"></a><span class="lineno"> 2292</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02293" name="l02293"></a><span class="lineno"> 2293</span> tt = t;</div>
<div class="line"><a id="l02294" name="l02294"></a><span class="lineno"> 2294</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02295" name="l02295"></a><span class="lineno"> 2295</span> tt = t-val[2];</div>
<div class="line"><a id="l02296" name="l02296"></a><span class="lineno"> 2296</span> </div>
<div class="line"><a id="l02297" name="l02297"></a><span class="lineno"> 2297</span> Double_t gamma_t = tt*val[1];</div>
<div class="line"><a id="l02298" name="l02298"></a><span class="lineno"> 2298</span> </div>
<div class="line"><a id="l02299" name="l02299"></a><span class="lineno"> 2299</span> <span class="keywordflow">return</span> TMath::Exp(-TMath::Power(val[0]/val[1],2.0)*</div>
<div class="line"><a id="l02300" name="l02300"></a><span class="lineno"> 2300</span> (TMath::Exp(-gamma_t)-1.0+gamma_t));</div>
<div class="line"><a id="l02301" name="l02301"></a><span class="lineno"> 2301</span>}</div>
</div>
<div class="line"><a id="l02302" name="l02302"></a><span class="lineno"> 2302</span> </div>
<div class="line"><a id="l02303" name="l02303"></a><span class="lineno"> 2303</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02318" data-start="{" data-end="}">
<div class="line"><a id="l02318" name="l02318"></a><span class="lineno"><a class="line" href="classPTheory.html#a32ec790324e2ba2bda1637bfa3926af9"> 2318</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a32ec790324e2ba2bda1637bfa3926af9">PTheory::TFCos</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02319" name="l02319"></a><span class="lineno"> 2319</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02320" name="l02320"></a><span class="lineno"> 2320</span> <span class="comment">// expected parameters: phase frequency [tshift]</span></div>
<div class="line"><a id="l02321" name="l02321"></a><span class="lineno"> 2321</span> </div>
<div class="line"><a id="l02322" name="l02322"></a><span class="lineno"> 2322</span> Double_t val[3];</div>
<div class="line"><a id="l02323" name="l02323"></a><span class="lineno"> 2323</span> </div>
<div class="line"><a id="l02324" name="l02324"></a><span class="lineno"> 2324</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l02325" name="l02325"></a><span class="lineno"> 2325</span> </div>
<div class="line"><a id="l02326" name="l02326"></a><span class="lineno"> 2326</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02327" name="l02327"></a><span class="lineno"> 2327</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02328" name="l02328"></a><span class="lineno"> 2328</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02329" name="l02329"></a><span class="lineno"> 2329</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02330" name="l02330"></a><span class="lineno"> 2330</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02331" name="l02331"></a><span class="lineno"> 2331</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02332" name="l02332"></a><span class="lineno"> 2332</span> }</div>
<div class="line"><a id="l02333" name="l02333"></a><span class="lineno"> 2333</span> }</div>
<div class="line"><a id="l02334" name="l02334"></a><span class="lineno"> 2334</span> </div>
<div class="line"><a id="l02335" name="l02335"></a><span class="lineno"> 2335</span> Double_t tt;</div>
<div class="line"><a id="l02336" name="l02336"></a><span class="lineno"> 2336</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02337" name="l02337"></a><span class="lineno"> 2337</span> tt = t;</div>
<div class="line"><a id="l02338" name="l02338"></a><span class="lineno"> 2338</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02339" name="l02339"></a><span class="lineno"> 2339</span> tt = t-val[2];</div>
<div class="line"><a id="l02340" name="l02340"></a><span class="lineno"> 2340</span> </div>
<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"> 2341</span> <span class="keywordflow">return</span> TMath::Cos(<a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a>*val[0]+<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1]*tt);</div>
<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span>}</div>
</div>
<div class="line"><a id="l02343" name="l02343"></a><span class="lineno"> 2343</span> </div>
<div class="line"><a id="l02344" name="l02344"></a><span class="lineno"> 2344</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02359" data-start="{" data-end="}">
<div class="line"><a id="l02359" name="l02359"></a><span class="lineno"><a class="line" href="classPTheory.html#a78888a303a73c0e0d8aae5b9eb6b4032"> 2359</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a78888a303a73c0e0d8aae5b9eb6b4032">PTheory::InternalField</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02360" name="l02360"></a><span class="lineno"> 2360</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02361" name="l02361"></a><span class="lineno"> 2361</span> <span class="comment">// expected parameters: fraction phase frequency rateT rateL [tshift]</span></div>
<div class="line"><a id="l02362" name="l02362"></a><span class="lineno"> 2362</span> </div>
<div class="line"><a id="l02363" name="l02363"></a><span class="lineno"> 2363</span> Double_t val[6];</div>
<div class="line"><a id="l02364" name="l02364"></a><span class="lineno"> 2364</span> </div>
<div class="line"><a id="l02365" name="l02365"></a><span class="lineno"> 2365</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 6);</div>
<div class="line"><a id="l02366" name="l02366"></a><span class="lineno"> 2366</span> </div>
<div class="line"><a id="l02367" name="l02367"></a><span class="lineno"> 2367</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02368" name="l02368"></a><span class="lineno"> 2368</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02369" name="l02369"></a><span class="lineno"> 2369</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02370" name="l02370"></a><span class="lineno"> 2370</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02371" name="l02371"></a><span class="lineno"> 2371</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02372" name="l02372"></a><span class="lineno"> 2372</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02373" name="l02373"></a><span class="lineno"> 2373</span> }</div>
<div class="line"><a id="l02374" name="l02374"></a><span class="lineno"> 2374</span> }</div>
<div class="line"><a id="l02375" name="l02375"></a><span class="lineno"> 2375</span> </div>
<div class="line"><a id="l02376" name="l02376"></a><span class="lineno"> 2376</span> Double_t tt;</div>
<div class="line"><a id="l02377" name="l02377"></a><span class="lineno"> 2377</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 5) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02378" name="l02378"></a><span class="lineno"> 2378</span> tt = t;</div>
<div class="line"><a id="l02379" name="l02379"></a><span class="lineno"> 2379</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02380" name="l02380"></a><span class="lineno"> 2380</span> tt = t-val[5];</div>
<div class="line"><a id="l02381" name="l02381"></a><span class="lineno"> 2381</span> </div>
<div class="line"><a id="l02382" name="l02382"></a><span class="lineno"> 2382</span> <span class="keywordflow">return</span> val[0]*TMath::Cos(<a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a>*val[1]+<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[2]*tt)*TMath::Exp(-val[3]*tt) +</div>
<div class="line"><a id="l02383" name="l02383"></a><span class="lineno"> 2383</span> (1-val[0])*TMath::Exp(-val[4]*tt);</div>
<div class="line"><a id="l02384" name="l02384"></a><span class="lineno"> 2384</span>}</div>
</div>
<div class="line"><a id="l02385" name="l02385"></a><span class="lineno"> 2385</span> </div>
<div class="line"><a id="l02386" name="l02386"></a><span class="lineno"> 2386</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02401" data-start="{" data-end="}">
<div class="line"><a id="l02401" name="l02401"></a><span class="lineno"><a class="line" href="classPTheory.html#a9f729f4d453aad6b0edc939fd6043114"> 2401</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a9f729f4d453aad6b0edc939fd6043114">PTheory::InternalFieldGK</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02402" name="l02402"></a><span class="lineno"> 2402</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02403" name="l02403"></a><span class="lineno"> 2403</span> <span class="comment">// expected parameters: [0]:fraction [1]:frequency [2]:sigma [3]:lambda [4]:beta [[5]:tshift]</span></div>
<div class="line"><a id="l02404" name="l02404"></a><span class="lineno"> 2404</span> </div>
<div class="line"><a id="l02405" name="l02405"></a><span class="lineno"> 2405</span> Double_t val[6];</div>
<div class="line"><a id="l02406" name="l02406"></a><span class="lineno"> 2406</span> </div>
<div class="line"><a id="l02407" name="l02407"></a><span class="lineno"> 2407</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 6);</div>
<div class="line"><a id="l02408" name="l02408"></a><span class="lineno"> 2408</span> </div>
<div class="line"><a id="l02409" name="l02409"></a><span class="lineno"> 2409</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02410" name="l02410"></a><span class="lineno"> 2410</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02411" name="l02411"></a><span class="lineno"> 2411</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02412" name="l02412"></a><span class="lineno"> 2412</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02413" name="l02413"></a><span class="lineno"> 2413</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02414" name="l02414"></a><span class="lineno"> 2414</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02415" name="l02415"></a><span class="lineno"> 2415</span> }</div>
<div class="line"><a id="l02416" name="l02416"></a><span class="lineno"> 2416</span> }</div>
<div class="line"><a id="l02417" name="l02417"></a><span class="lineno"> 2417</span> </div>
<div class="line"><a id="l02418" name="l02418"></a><span class="lineno"> 2418</span> Double_t tt;</div>
<div class="line"><a id="l02419" name="l02419"></a><span class="lineno"> 2419</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 5) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02420" name="l02420"></a><span class="lineno"> 2420</span> tt = t;</div>
<div class="line"><a id="l02421" name="l02421"></a><span class="lineno"> 2421</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02422" name="l02422"></a><span class="lineno"> 2422</span> tt = t-val[5];</div>
<div class="line"><a id="l02423" name="l02423"></a><span class="lineno"> 2423</span> </div>
<div class="line"><a id="l02424" name="l02424"></a><span class="lineno"> 2424</span> Double_t result = 0.0;</div>
<div class="line"><a id="l02425" name="l02425"></a><span class="lineno"> 2425</span> Double_t w_t = <a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1]*tt;</div>
<div class="line"><a id="l02426" name="l02426"></a><span class="lineno"> 2426</span> Double_t rateLF = TMath::Power(val[3]*tt, val[4]);</div>
<div class="line"><a id="l02427" name="l02427"></a><span class="lineno"> 2427</span> Double_t rate2 = val[2]*val[2]*tt*tt; <span class="comment">// (sigma t)^2</span></div>
<div class="line"><a id="l02428" name="l02428"></a><span class="lineno"> 2428</span> </div>
<div class="line"><a id="l02429" name="l02429"></a><span class="lineno"> 2429</span> <span class="keywordflow">if</span> (val[1] &lt; 0.01) { <span class="comment">// internal field frequency is approaching zero</span></div>
<div class="line"><a id="l02430" name="l02430"></a><span class="lineno"> 2430</span> result = (1.0-val[0])*TMath::Exp(-rateLF) + val[0]*(1.0-rate2)*TMath::Exp(-0.5*rate2);</div>
<div class="line"><a id="l02431" name="l02431"></a><span class="lineno"> 2431</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l02432" name="l02432"></a><span class="lineno"> 2432</span> result = (1.0-val[0])*TMath::Exp(-rateLF) + val[0]*(TMath::Cos(w_t)-val[2]*val[2]*tt/(<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1])*TMath::Sin(w_t))*TMath::Exp(-0.5*rate2);</div>
<div class="line"><a id="l02433" name="l02433"></a><span class="lineno"> 2433</span> }</div>
<div class="line"><a id="l02434" name="l02434"></a><span class="lineno"> 2434</span> </div>
<div class="line"><a id="l02435" name="l02435"></a><span class="lineno"> 2435</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02436" name="l02436"></a><span class="lineno"> 2436</span>}</div>
</div>
<div class="line"><a id="l02437" name="l02437"></a><span class="lineno"> 2437</span> </div>
<div class="line"><a id="l02438" name="l02438"></a><span class="lineno"> 2438</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02453" data-start="{" data-end="}">
<div class="line"><a id="l02453" name="l02453"></a><span class="lineno"><a class="line" href="classPTheory.html#af2426f3c6e4cefeb172ed8864ba3a10c"> 2453</a></span>Double_t <a class="code hl_function" href="classPTheory.html#af2426f3c6e4cefeb172ed8864ba3a10c">PTheory::InternalFieldLL</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02454" name="l02454"></a><span class="lineno"> 2454</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02455" name="l02455"></a><span class="lineno"> 2455</span> <span class="comment">// expected parameters: [0]:fraction [1]:frequency [2]:a [3]:lambda [4]:beta [[5]:tshift]</span></div>
<div class="line"><a id="l02456" name="l02456"></a><span class="lineno"> 2456</span> </div>
<div class="line"><a id="l02457" name="l02457"></a><span class="lineno"> 2457</span> Double_t val[6];</div>
<div class="line"><a id="l02458" name="l02458"></a><span class="lineno"> 2458</span> </div>
<div class="line"><a id="l02459" name="l02459"></a><span class="lineno"> 2459</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 6);</div>
<div class="line"><a id="l02460" name="l02460"></a><span class="lineno"> 2460</span> </div>
<div class="line"><a id="l02461" name="l02461"></a><span class="lineno"> 2461</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02462" name="l02462"></a><span class="lineno"> 2462</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02463" name="l02463"></a><span class="lineno"> 2463</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02464" name="l02464"></a><span class="lineno"> 2464</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02465" name="l02465"></a><span class="lineno"> 2465</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02466" name="l02466"></a><span class="lineno"> 2466</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02467" name="l02467"></a><span class="lineno"> 2467</span> }</div>
<div class="line"><a id="l02468" name="l02468"></a><span class="lineno"> 2468</span> }</div>
<div class="line"><a id="l02469" name="l02469"></a><span class="lineno"> 2469</span> </div>
<div class="line"><a id="l02470" name="l02470"></a><span class="lineno"> 2470</span> Double_t tt;</div>
<div class="line"><a id="l02471" name="l02471"></a><span class="lineno"> 2471</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 5) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02472" name="l02472"></a><span class="lineno"> 2472</span> tt = t;</div>
<div class="line"><a id="l02473" name="l02473"></a><span class="lineno"> 2473</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02474" name="l02474"></a><span class="lineno"> 2474</span> tt = t-val[5];</div>
<div class="line"><a id="l02475" name="l02475"></a><span class="lineno"> 2475</span> </div>
<div class="line"><a id="l02476" name="l02476"></a><span class="lineno"> 2476</span> Double_t result = 0.0;</div>
<div class="line"><a id="l02477" name="l02477"></a><span class="lineno"> 2477</span> Double_t w_t = <a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1]*tt;</div>
<div class="line"><a id="l02478" name="l02478"></a><span class="lineno"> 2478</span> Double_t rateLF = TMath::Power(val[3]*tt, val[4]);</div>
<div class="line"><a id="l02479" name="l02479"></a><span class="lineno"> 2479</span> Double_t a_t = val[2]*tt; <span class="comment">// a t</span></div>
<div class="line"><a id="l02480" name="l02480"></a><span class="lineno"> 2480</span> </div>
<div class="line"><a id="l02481" name="l02481"></a><span class="lineno"> 2481</span> <span class="keywordflow">if</span> (val[1] &lt; 0.01) { <span class="comment">// internal field frequency is approaching zero</span></div>
<div class="line"><a id="l02482" name="l02482"></a><span class="lineno"> 2482</span> result = (1.0-val[0])*TMath::Exp(-rateLF) + val[0]*(1.0-a_t)*TMath::Exp(-a_t);</div>
<div class="line"><a id="l02483" name="l02483"></a><span class="lineno"> 2483</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l02484" name="l02484"></a><span class="lineno"> 2484</span> result = (1.0-val[0])*TMath::Exp(-rateLF) + val[0]*(TMath::Cos(w_t)-val[3]/(<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1])*TMath::Sin(w_t))*TMath::Exp(-a_t);</div>
<div class="line"><a id="l02485" name="l02485"></a><span class="lineno"> 2485</span> }</div>
<div class="line"><a id="l02486" name="l02486"></a><span class="lineno"> 2486</span> </div>
<div class="line"><a id="l02487" name="l02487"></a><span class="lineno"> 2487</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02488" name="l02488"></a><span class="lineno"> 2488</span>}</div>
</div>
<div class="line"><a id="l02489" name="l02489"></a><span class="lineno"> 2489</span> </div>
<div class="line"><a id="l02490" name="l02490"></a><span class="lineno"> 2490</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02505" data-start="{" data-end="}">
<div class="line"><a id="l02505" name="l02505"></a><span class="lineno"><a class="line" href="classPTheory.html#aceccb4ac553dfb2069a2a4f2104e88c8"> 2505</a></span>Double_t <a class="code hl_function" href="classPTheory.html#aceccb4ac553dfb2069a2a4f2104e88c8">PTheory::Bessel</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02506" name="l02506"></a><span class="lineno"> 2506</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02507" name="l02507"></a><span class="lineno"> 2507</span> <span class="comment">// expected parameters: phase frequency [tshift]</span></div>
<div class="line"><a id="l02508" name="l02508"></a><span class="lineno"> 2508</span> </div>
<div class="line"><a id="l02509" name="l02509"></a><span class="lineno"> 2509</span> Double_t val[3];</div>
<div class="line"><a id="l02510" name="l02510"></a><span class="lineno"> 2510</span> </div>
<div class="line"><a id="l02511" name="l02511"></a><span class="lineno"> 2511</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l02512" name="l02512"></a><span class="lineno"> 2512</span> </div>
<div class="line"><a id="l02513" name="l02513"></a><span class="lineno"> 2513</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02514" name="l02514"></a><span class="lineno"> 2514</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02515" name="l02515"></a><span class="lineno"> 2515</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02516" name="l02516"></a><span class="lineno"> 2516</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02517" name="l02517"></a><span class="lineno"> 2517</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02518" name="l02518"></a><span class="lineno"> 2518</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02519" name="l02519"></a><span class="lineno"> 2519</span> }</div>
<div class="line"><a id="l02520" name="l02520"></a><span class="lineno"> 2520</span> }</div>
<div class="line"><a id="l02521" name="l02521"></a><span class="lineno"> 2521</span> </div>
<div class="line"><a id="l02522" name="l02522"></a><span class="lineno"> 2522</span> Double_t tt;</div>
<div class="line"><a id="l02523" name="l02523"></a><span class="lineno"> 2523</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02524" name="l02524"></a><span class="lineno"> 2524</span> tt = t;</div>
<div class="line"><a id="l02525" name="l02525"></a><span class="lineno"> 2525</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02526" name="l02526"></a><span class="lineno"> 2526</span> tt = t-val[2];</div>
<div class="line"><a id="l02527" name="l02527"></a><span class="lineno"> 2527</span> </div>
<div class="line"><a id="l02528" name="l02528"></a><span class="lineno"> 2528</span> <span class="keywordflow">return</span> TMath::BesselJ0(<a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a>*val[0]+<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1]*tt);</div>
<div class="line"><a id="l02529" name="l02529"></a><span class="lineno"> 2529</span>}</div>
</div>
<div class="line"><a id="l02530" name="l02530"></a><span class="lineno"> 2530</span> </div>
<div class="line"><a id="l02531" name="l02531"></a><span class="lineno"> 2531</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02546" data-start="{" data-end="}">
<div class="line"><a id="l02546" name="l02546"></a><span class="lineno"><a class="line" href="classPTheory.html#a7fca9d0d5b05f781768290d372e259f9"> 2546</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a7fca9d0d5b05f781768290d372e259f9">PTheory::InternalBessel</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02547" name="l02547"></a><span class="lineno"> 2547</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02548" name="l02548"></a><span class="lineno"> 2548</span> <span class="comment">// expected parameters: fraction phase frequency rateT rateL [tshift]</span></div>
<div class="line"><a id="l02549" name="l02549"></a><span class="lineno"> 2549</span> </div>
<div class="line"><a id="l02550" name="l02550"></a><span class="lineno"> 2550</span> Double_t val[6];</div>
<div class="line"><a id="l02551" name="l02551"></a><span class="lineno"> 2551</span> </div>
<div class="line"><a id="l02552" name="l02552"></a><span class="lineno"> 2552</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 6);</div>
<div class="line"><a id="l02553" name="l02553"></a><span class="lineno"> 2553</span> </div>
<div class="line"><a id="l02554" name="l02554"></a><span class="lineno"> 2554</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02555" name="l02555"></a><span class="lineno"> 2555</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02556" name="l02556"></a><span class="lineno"> 2556</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02557" name="l02557"></a><span class="lineno"> 2557</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02558" name="l02558"></a><span class="lineno"> 2558</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02559" name="l02559"></a><span class="lineno"> 2559</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02560" name="l02560"></a><span class="lineno"> 2560</span> }</div>
<div class="line"><a id="l02561" name="l02561"></a><span class="lineno"> 2561</span> }</div>
<div class="line"><a id="l02562" name="l02562"></a><span class="lineno"> 2562</span> </div>
<div class="line"><a id="l02563" name="l02563"></a><span class="lineno"> 2563</span> Double_t tt;</div>
<div class="line"><a id="l02564" name="l02564"></a><span class="lineno"> 2564</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 5) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02565" name="l02565"></a><span class="lineno"> 2565</span> tt = t;</div>
<div class="line"><a id="l02566" name="l02566"></a><span class="lineno"> 2566</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02567" name="l02567"></a><span class="lineno"> 2567</span> tt = t-val[5];</div>
<div class="line"><a id="l02568" name="l02568"></a><span class="lineno"> 2568</span> </div>
<div class="line"><a id="l02569" name="l02569"></a><span class="lineno"> 2569</span> <span class="keywordflow">return</span> val[0]* TMath::BesselJ0(<a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a>*val[1]+<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[2]*tt)*</div>
<div class="line"><a id="l02570" name="l02570"></a><span class="lineno"> 2570</span> TMath::Exp(-val[3]*tt) +</div>
<div class="line"><a id="l02571" name="l02571"></a><span class="lineno"> 2571</span> (1.0-val[0])*TMath::Exp(-val[4]*tt);</div>
<div class="line"><a id="l02572" name="l02572"></a><span class="lineno"> 2572</span>}</div>
</div>
<div class="line"><a id="l02573" name="l02573"></a><span class="lineno"> 2573</span> </div>
<div class="line"><a id="l02574" name="l02574"></a><span class="lineno"> 2574</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02595" data-start="{" data-end="}">
<div class="line"><a id="l02595" name="l02595"></a><span class="lineno"><a class="line" href="classPTheory.html#a80acc8e368f76f4d1c1dbfd1f9c078a3"> 2595</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a80acc8e368f76f4d1c1dbfd1f9c078a3">PTheory::SkewedGauss</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> &amp;paramValues,</div>
<div class="line"><a id="l02596" name="l02596"></a><span class="lineno"> 2596</span> <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> &amp;funcValues)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l02597" name="l02597"></a><span class="lineno"> 2597</span> <span class="comment">// Expected parameters: phase, frequency, sigma-, sigma+, [tshift].</span></div>
<div class="line"><a id="l02598" name="l02598"></a><span class="lineno"> 2598</span> <span class="comment">// To be stored in the array &quot;val&quot; as:</span></div>
<div class="line"><a id="l02599" name="l02599"></a><span class="lineno"> 2599</span> <span class="comment">// val[0] = phase</span></div>
<div class="line"><a id="l02600" name="l02600"></a><span class="lineno"> 2600</span> <span class="comment">// val[1] = frequency</span></div>
<div class="line"><a id="l02601" name="l02601"></a><span class="lineno"> 2601</span> <span class="comment">// val[2] = sigma-</span></div>
<div class="line"><a id="l02602" name="l02602"></a><span class="lineno"> 2602</span> <span class="comment">// val[3] = sigma+</span></div>
<div class="line"><a id="l02603" name="l02603"></a><span class="lineno"> 2603</span> <span class="comment">// val[4] = tshift [optional]</span></div>
<div class="line"><a id="l02604" name="l02604"></a><span class="lineno"> 2604</span> Double_t val[5];</div>
<div class="line"><a id="l02605" name="l02605"></a><span class="lineno"> 2605</span> </div>
<div class="line"><a id="l02606" name="l02606"></a><span class="lineno"> 2606</span> <span class="comment">// Check that we have the correct number of fit parameters.</span></div>
<div class="line"><a id="l02607" name="l02607"></a><span class="lineno"> 2607</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 5);</div>
<div class="line"><a id="l02608" name="l02608"></a><span class="lineno"> 2608</span> </div>
<div class="line"><a id="l02609" name="l02609"></a><span class="lineno"> 2609</span> <span class="comment">// Check if FUNCTIONS are used.</span></div>
<div class="line"><a id="l02610" name="l02610"></a><span class="lineno"> 2610</span> <span class="keywordflow">for</span> (UInt_t i = 0; i &lt; <a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02611" name="l02611"></a><span class="lineno"> 2611</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02612" name="l02612"></a><span class="lineno"> 2612</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02613" name="l02613"></a><span class="lineno"> 2613</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02614" name="l02614"></a><span class="lineno"> 2614</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] - <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02615" name="l02615"></a><span class="lineno"> 2615</span> }</div>
<div class="line"><a id="l02616" name="l02616"></a><span class="lineno"> 2616</span> }</div>
<div class="line"><a id="l02617" name="l02617"></a><span class="lineno"> 2617</span> </div>
<div class="line"><a id="l02618" name="l02618"></a><span class="lineno"> 2618</span> <span class="comment">// Apply the tshift (if required).</span></div>
<div class="line"><a id="l02619" name="l02619"></a><span class="lineno"> 2619</span> Double_t tt = t;</div>
<div class="line"><a id="l02620" name="l02620"></a><span class="lineno"> 2620</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 5) {</div>
<div class="line"><a id="l02621" name="l02621"></a><span class="lineno"> 2621</span> tt = t - val[4];</div>
<div class="line"><a id="l02622" name="l02622"></a><span class="lineno"> 2622</span> }</div>
<div class="line"><a id="l02623" name="l02623"></a><span class="lineno"> 2623</span> </div>
<div class="line"><a id="l02624" name="l02624"></a><span class="lineno"> 2624</span> <span class="comment">// Evaluate the skewed Gaussian!</span></div>
<div class="line"><a id="l02625" name="l02625"></a><span class="lineno"> 2625</span> </div>
<div class="line"><a id="l02626" name="l02626"></a><span class="lineno"> 2626</span> <span class="comment">// First, calculate some &quot;helper&quot; terms.</span></div>
<div class="line"><a id="l02627" name="l02627"></a><span class="lineno"> 2627</span> Double_t sigma_p = std::abs(val[3]);</div>
<div class="line"><a id="l02628" name="l02628"></a><span class="lineno"> 2628</span> Double_t sigma_m = std::abs(val[2]);</div>
<div class="line"><a id="l02629" name="l02629"></a><span class="lineno"> 2629</span> Double_t arg_p = sigma_p * tt;</div>
<div class="line"><a id="l02630" name="l02630"></a><span class="lineno"> 2630</span> Double_t arg_m = sigma_m * tt;</div>
<div class="line"><a id="l02631" name="l02631"></a><span class="lineno"> 2631</span> Double_t z_p = arg_p / <a class="code hl_define" href="PTheory_8cpp.html#a907d8d6dcc4c26245a296a6dadf477c1">SQRT_TWO</a>; <span class="comment">// sigma+</span></div>
<div class="line"><a id="l02632" name="l02632"></a><span class="lineno"> 2632</span> Double_t z_m = arg_m / <a class="code hl_define" href="PTheory_8cpp.html#a907d8d6dcc4c26245a296a6dadf477c1">SQRT_TWO</a>; <span class="comment">// sigma-</span></div>
<div class="line"><a id="l02633" name="l02633"></a><span class="lineno"> 2633</span> Double_t g_p = TMath::Exp(-0.5 * arg_p * arg_p); <span class="comment">// gauss sigma+</span></div>
<div class="line"><a id="l02634" name="l02634"></a><span class="lineno"> 2634</span> Double_t g_m = TMath::Exp(-0.5 * arg_m * arg_m); <span class="comment">// gauss sigma-</span></div>
<div class="line"><a id="l02635" name="l02635"></a><span class="lineno"> 2635</span> Double_t w_p = sigma_p / (sigma_p + sigma_m);</div>
<div class="line"><a id="l02636" name="l02636"></a><span class="lineno"> 2636</span> Double_t w_m = 1.0 - w_p;</div>
<div class="line"><a id="l02637" name="l02637"></a><span class="lineno"> 2637</span> Double_t phase = <a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a> * val[0];</div>
<div class="line"><a id="l02638" name="l02638"></a><span class="lineno"> 2638</span> Double_t freq = <a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a> * val[1];</div>
<div class="line"><a id="l02639" name="l02639"></a><span class="lineno"> 2639</span> </div>
<div class="line"><a id="l02640" name="l02640"></a><span class="lineno"> 2640</span> <span class="comment">// Evalute the EVEN frequency component of the skewed Gaussian.</span></div>
<div class="line"><a id="l02641" name="l02641"></a><span class="lineno"> 2641</span> Double_t skg_cos = TMath::Cos(phase + freq * tt) * (w_m * g_m + w_p * g_p);</div>
<div class="line"><a id="l02642" name="l02642"></a><span class="lineno"> 2642</span> </div>
<div class="line"><a id="l02643" name="l02643"></a><span class="lineno"> 2643</span> <span class="comment">// Evalute the ODD frequency component of the skewed Gaussian.</span></div>
<div class="line"><a id="l02644" name="l02644"></a><span class="lineno"> 2644</span> <span class="keyword">constexpr</span> Double_t z_max = 26.7776;</div>
<div class="line"><a id="l02645" name="l02645"></a><span class="lineno"> 2645</span> <span class="comment">// Note: the check against z_max is needed to prevent floating-point overflow</span></div>
<div class="line"><a id="l02646" name="l02646"></a><span class="lineno"> 2646</span> <span class="comment">// in the return value of ROOT::Math::conf_hyperg(1/2, 3/2, z * z)</span></div>
<div class="line"><a id="l02647" name="l02647"></a><span class="lineno"> 2647</span> <span class="comment">// (i.e., confluent hypergeometric function of the first kind, 1F1).</span></div>
<div class="line"><a id="l02648" name="l02648"></a><span class="lineno"> 2648</span> <span class="comment">// In the case that z &gt; z_max, return zero (otherwise there is some</span></div>
<div class="line"><a id="l02649" name="l02649"></a><span class="lineno"> 2649</span> <span class="comment">// numeric discontinuity at later times).</span></div>
<div class="line"><a id="l02650" name="l02650"></a><span class="lineno"> 2650</span> Double_t skg_sin =</div>
<div class="line"><a id="l02651" name="l02651"></a><span class="lineno"> 2651</span> TMath::Sin(phase + freq * tt) *</div>
<div class="line"><a id="l02652" name="l02652"></a><span class="lineno"> 2652</span> ((z_m &gt; z_max) or (z_p &gt; z_max)</div>
<div class="line"><a id="l02653" name="l02653"></a><span class="lineno"> 2653</span> ? 0.0</div>
<div class="line"><a id="l02654" name="l02654"></a><span class="lineno"> 2654</span> : (w_m * g_m * 2.0 * z_m / <a class="code hl_define" href="PTheory_8cpp.html#a204175c725ee19858dedec2865d490b8">SQRT_PI</a>) *</div>
<div class="line"><a id="l02655" name="l02655"></a><span class="lineno"> 2655</span> ROOT::Math::conf_hyperg(0.5, 1.5, z_m * z_m) -</div>
<div class="line"><a id="l02656" name="l02656"></a><span class="lineno"> 2656</span> (w_p * g_p * 2.0 * z_p / <a class="code hl_define" href="PTheory_8cpp.html#a204175c725ee19858dedec2865d490b8">SQRT_PI</a>) *</div>
<div class="line"><a id="l02657" name="l02657"></a><span class="lineno"> 2657</span> ROOT::Math::conf_hyperg(0.5, 1.5, z_p * z_p));</div>
<div class="line"><a id="l02658" name="l02658"></a><span class="lineno"> 2658</span> </div>
<div class="line"><a id="l02659" name="l02659"></a><span class="lineno"> 2659</span> <span class="comment">// Return the skewed Gaussian: skg = skg_cos + skg_sin.</span></div>
<div class="line"><a id="l02660" name="l02660"></a><span class="lineno"> 2660</span> <span class="comment">// Also check that skg_sin is finite!</span></div>
<div class="line"><a id="l02661" name="l02661"></a><span class="lineno"> 2661</span> <span class="keywordflow">return</span> skg_cos + (std::isfinite(skg_sin) ? skg_sin : 0.0);</div>
<div class="line"><a id="l02662" name="l02662"></a><span class="lineno"> 2662</span>}</div>
</div>
<div class="line"><a id="l02663" name="l02663"></a><span class="lineno"> 2663</span> </div>
<div class="line"><a id="l02664" name="l02664"></a><span class="lineno"> 2664</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02684" data-start="{" data-end="}">
<div class="line"><a id="l02684" name="l02684"></a><span class="lineno"><a class="line" href="classPTheory.html#a3e6ba6cd1f46b64bae7d4a0ce84e6050"> 2684</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a3e6ba6cd1f46b64bae7d4a0ce84e6050">PTheory::StaticNKZF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02685" name="l02685"></a><span class="lineno"> 2685</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02686" name="l02686"></a><span class="lineno"> 2686</span> <span class="comment">// expected paramters: damping_D0 [0], R_b tshift [1]</span></div>
<div class="line"><a id="l02687" name="l02687"></a><span class="lineno"> 2687</span> </div>
<div class="line"><a id="l02688" name="l02688"></a><span class="lineno"> 2688</span> Double_t val[3];</div>
<div class="line"><a id="l02689" name="l02689"></a><span class="lineno"> 2689</span> Double_t result = 1.0;</div>
<div class="line"><a id="l02690" name="l02690"></a><span class="lineno"> 2690</span> </div>
<div class="line"><a id="l02691" name="l02691"></a><span class="lineno"> 2691</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 3);</div>
<div class="line"><a id="l02692" name="l02692"></a><span class="lineno"> 2692</span> </div>
<div class="line"><a id="l02693" name="l02693"></a><span class="lineno"> 2693</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l02694" name="l02694"></a><span class="lineno"> 2694</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02695" name="l02695"></a><span class="lineno"> 2695</span> </div>
<div class="line"><a id="l02696" name="l02696"></a><span class="lineno"> 2696</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02697" name="l02697"></a><span class="lineno"> 2697</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02698" name="l02698"></a><span class="lineno"> 2698</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02699" name="l02699"></a><span class="lineno"> 2699</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02700" name="l02700"></a><span class="lineno"> 2700</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02701" name="l02701"></a><span class="lineno"> 2701</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02702" name="l02702"></a><span class="lineno"> 2702</span> }</div>
<div class="line"><a id="l02703" name="l02703"></a><span class="lineno"> 2703</span> }</div>
<div class="line"><a id="l02704" name="l02704"></a><span class="lineno"> 2704</span> </div>
<div class="line"><a id="l02705" name="l02705"></a><span class="lineno"> 2705</span> Double_t tt;</div>
<div class="line"><a id="l02706" name="l02706"></a><span class="lineno"> 2706</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 2) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02707" name="l02707"></a><span class="lineno"> 2707</span> tt = t;</div>
<div class="line"><a id="l02708" name="l02708"></a><span class="lineno"> 2708</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02709" name="l02709"></a><span class="lineno"> 2709</span> tt = t-val[2];</div>
<div class="line"><a id="l02710" name="l02710"></a><span class="lineno"> 2710</span> </div>
<div class="line"><a id="l02711" name="l02711"></a><span class="lineno"> 2711</span> Double_t D2_t2 = val[0]*val[0]*tt*tt;</div>
<div class="line"><a id="l02712" name="l02712"></a><span class="lineno"> 2712</span> Double_t denom = 1.0+val[1]*val[1]*D2_t2;</div>
<div class="line"><a id="l02713" name="l02713"></a><span class="lineno"> 2713</span> </div>
<div class="line"><a id="l02714" name="l02714"></a><span class="lineno"> 2714</span> result = 0.333333333333333 + 0.666666666666666667 * TMath::Power(1.0/denom, 1.5) * (1.0 - (D2_t2/denom)) * exp(-0.5*D2_t2/denom);</div>
<div class="line"><a id="l02715" name="l02715"></a><span class="lineno"> 2715</span> </div>
<div class="line"><a id="l02716" name="l02716"></a><span class="lineno"> 2716</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02717" name="l02717"></a><span class="lineno"> 2717</span>}</div>
</div>
<div class="line"><a id="l02718" name="l02718"></a><span class="lineno"> 2718</span> </div>
<div class="line"><a id="l02719" name="l02719"></a><span class="lineno"> 2719</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02739" data-start="{" data-end="}">
<div class="line"><a id="l02739" name="l02739"></a><span class="lineno"><a class="line" href="classPTheory.html#ad874ccd579a1b04238da82ce4a639970"> 2739</a></span>Double_t <a class="code hl_function" href="classPTheory.html#ad874ccd579a1b04238da82ce4a639970">PTheory::StaticNKTF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02740" name="l02740"></a><span class="lineno"> 2740</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02741" name="l02741"></a><span class="lineno"> 2741</span> <span class="comment">// expected paramters: phase [0], frequency [1], damping_D0 [2], R_b [3], [tshift [4]]</span></div>
<div class="line"><a id="l02742" name="l02742"></a><span class="lineno"> 2742</span> </div>
<div class="line"><a id="l02743" name="l02743"></a><span class="lineno"> 2743</span> Double_t val[5];</div>
<div class="line"><a id="l02744" name="l02744"></a><span class="lineno"> 2744</span> Double_t result = 1.0;</div>
<div class="line"><a id="l02745" name="l02745"></a><span class="lineno"> 2745</span> </div>
<div class="line"><a id="l02746" name="l02746"></a><span class="lineno"> 2746</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 5);</div>
<div class="line"><a id="l02747" name="l02747"></a><span class="lineno"> 2747</span> </div>
<div class="line"><a id="l02748" name="l02748"></a><span class="lineno"> 2748</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l02749" name="l02749"></a><span class="lineno"> 2749</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02750" name="l02750"></a><span class="lineno"> 2750</span> </div>
<div class="line"><a id="l02751" name="l02751"></a><span class="lineno"> 2751</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02752" name="l02752"></a><span class="lineno"> 2752</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02753" name="l02753"></a><span class="lineno"> 2753</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02754" name="l02754"></a><span class="lineno"> 2754</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02755" name="l02755"></a><span class="lineno"> 2755</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02756" name="l02756"></a><span class="lineno"> 2756</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02757" name="l02757"></a><span class="lineno"> 2757</span> }</div>
<div class="line"><a id="l02758" name="l02758"></a><span class="lineno"> 2758</span> }</div>
<div class="line"><a id="l02759" name="l02759"></a><span class="lineno"> 2759</span> </div>
<div class="line"><a id="l02760" name="l02760"></a><span class="lineno"> 2760</span> Double_t tt;</div>
<div class="line"><a id="l02761" name="l02761"></a><span class="lineno"> 2761</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 4) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02762" name="l02762"></a><span class="lineno"> 2762</span> tt = t;</div>
<div class="line"><a id="l02763" name="l02763"></a><span class="lineno"> 2763</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02764" name="l02764"></a><span class="lineno"> 2764</span> tt = t-val[4];</div>
<div class="line"><a id="l02765" name="l02765"></a><span class="lineno"> 2765</span> </div>
<div class="line"><a id="l02766" name="l02766"></a><span class="lineno"> 2766</span> Double_t D2_t2 = val[2]*val[2]*tt*tt;</div>
<div class="line"><a id="l02767" name="l02767"></a><span class="lineno"> 2767</span> Double_t denom = 1.0+val[3]*val[3]*D2_t2;</div>
<div class="line"><a id="l02768" name="l02768"></a><span class="lineno"> 2768</span> </div>
<div class="line"><a id="l02769" name="l02769"></a><span class="lineno"> 2769</span> result = sqrt(1.0/denom)*exp(-0.5*D2_t2/denom)*TMath::Cos(<a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a>*val[0]+<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1]*tt);</div>
<div class="line"><a id="l02770" name="l02770"></a><span class="lineno"> 2770</span> </div>
<div class="line"><a id="l02771" name="l02771"></a><span class="lineno"> 2771</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02772" name="l02772"></a><span class="lineno"> 2772</span>}</div>
</div>
<div class="line"><a id="l02773" name="l02773"></a><span class="lineno"> 2773</span> </div>
<div class="line"><a id="l02774" name="l02774"></a><span class="lineno"> 2774</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02795" data-start="{" data-end="}">
<div class="line"><a id="l02795" name="l02795"></a><span class="lineno"><a class="line" href="classPTheory.html#a4cfeda3b0fdb4ab1f325c021a575bf95"> 2795</a></span>Double_t <a class="code hl_function" href="classPTheory.html#a4cfeda3b0fdb4ab1f325c021a575bf95">PTheory::DynamicNKZF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02796" name="l02796"></a><span class="lineno"> 2796</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02797" name="l02797"></a><span class="lineno"> 2797</span> <span class="comment">// expected paramters: damping_D0 [0], R_b [1], nu_c [2], [tshift [3]]</span></div>
<div class="line"><a id="l02798" name="l02798"></a><span class="lineno"> 2798</span> </div>
<div class="line"><a id="l02799" name="l02799"></a><span class="lineno"> 2799</span> Double_t val[4];</div>
<div class="line"><a id="l02800" name="l02800"></a><span class="lineno"> 2800</span> Double_t result = 1.0;</div>
<div class="line"><a id="l02801" name="l02801"></a><span class="lineno"> 2801</span> </div>
<div class="line"><a id="l02802" name="l02802"></a><span class="lineno"> 2802</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 4);</div>
<div class="line"><a id="l02803" name="l02803"></a><span class="lineno"> 2803</span> </div>
<div class="line"><a id="l02804" name="l02804"></a><span class="lineno"> 2804</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l02805" name="l02805"></a><span class="lineno"> 2805</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02806" name="l02806"></a><span class="lineno"> 2806</span> </div>
<div class="line"><a id="l02807" name="l02807"></a><span class="lineno"> 2807</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02808" name="l02808"></a><span class="lineno"> 2808</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02809" name="l02809"></a><span class="lineno"> 2809</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02810" name="l02810"></a><span class="lineno"> 2810</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02811" name="l02811"></a><span class="lineno"> 2811</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02812" name="l02812"></a><span class="lineno"> 2812</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02813" name="l02813"></a><span class="lineno"> 2813</span> }</div>
<div class="line"><a id="l02814" name="l02814"></a><span class="lineno"> 2814</span> }</div>
<div class="line"><a id="l02815" name="l02815"></a><span class="lineno"> 2815</span> </div>
<div class="line"><a id="l02816" name="l02816"></a><span class="lineno"> 2816</span> Double_t tt;</div>
<div class="line"><a id="l02817" name="l02817"></a><span class="lineno"> 2817</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 3) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02818" name="l02818"></a><span class="lineno"> 2818</span> tt = t;</div>
<div class="line"><a id="l02819" name="l02819"></a><span class="lineno"> 2819</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02820" name="l02820"></a><span class="lineno"> 2820</span> tt = t-val[3];</div>
<div class="line"><a id="l02821" name="l02821"></a><span class="lineno"> 2821</span> </div>
<div class="line"><a id="l02822" name="l02822"></a><span class="lineno"> 2822</span> Double_t theta;</div>
<div class="line"><a id="l02823" name="l02823"></a><span class="lineno"> 2823</span> <span class="keywordflow">if</span> (val[2] &lt; 1.0e-6) { <span class="comment">// nu_c -&gt; 0</span></div>
<div class="line"><a id="l02824" name="l02824"></a><span class="lineno"> 2824</span> theta = 0.5*tt*tt;</div>
<div class="line"><a id="l02825" name="l02825"></a><span class="lineno"> 2825</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l02826" name="l02826"></a><span class="lineno"> 2826</span> theta = (exp(-val[2]*tt) - 1.0 + val[2]*tt)/(val[2]*val[2]);</div>
<div class="line"><a id="l02827" name="l02827"></a><span class="lineno"> 2827</span> }</div>
<div class="line"><a id="l02828" name="l02828"></a><span class="lineno"> 2828</span> Double_t denom = 1.0 + 4.0*val[0]*val[0]*val[1]*val[1]*theta;</div>
<div class="line"><a id="l02829" name="l02829"></a><span class="lineno"> 2829</span> </div>
<div class="line"><a id="l02830" name="l02830"></a><span class="lineno"> 2830</span> result = sqrt(1.0/denom)*exp(-2.0*val[0]*val[0]*theta/denom);</div>
<div class="line"><a id="l02831" name="l02831"></a><span class="lineno"> 2831</span> </div>
<div class="line"><a id="l02832" name="l02832"></a><span class="lineno"> 2832</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02833" name="l02833"></a><span class="lineno"> 2833</span>}</div>
</div>
<div class="line"><a id="l02834" name="l02834"></a><span class="lineno"> 2834</span> </div>
<div class="line"><a id="l02835" name="l02835"></a><span class="lineno"> 2835</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="foldopen" id="foldopen02856" data-start="{" data-end="}">
<div class="line"><a id="l02856" name="l02856"></a><span class="lineno"><a class="line" href="classPTheory.html#aa8f4e5c3a654184a64689426853d357a"> 2856</a></span>Double_t <a class="code hl_function" href="classPTheory.html#aa8f4e5c3a654184a64689426853d357a">PTheory::DynamicNKTF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02857" name="l02857"></a><span class="lineno"> 2857</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02858" name="l02858"></a><span class="lineno"> 2858</span> <span class="comment">// expected paramters: phase [0], frequency [1], damping_D0 [2], R_b [3], nu_c [4], [tshift [5]]</span></div>
<div class="line"><a id="l02859" name="l02859"></a><span class="lineno"> 2859</span> </div>
<div class="line"><a id="l02860" name="l02860"></a><span class="lineno"> 2860</span> Double_t val[6];</div>
<div class="line"><a id="l02861" name="l02861"></a><span class="lineno"> 2861</span> Double_t result = 1.0;</div>
<div class="line"><a id="l02862" name="l02862"></a><span class="lineno"> 2862</span> </div>
<div class="line"><a id="l02863" name="l02863"></a><span class="lineno"> 2863</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 6);</div>
<div class="line"><a id="l02864" name="l02864"></a><span class="lineno"> 2864</span> </div>
<div class="line"><a id="l02865" name="l02865"></a><span class="lineno"> 2865</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l02866" name="l02866"></a><span class="lineno"> 2866</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02867" name="l02867"></a><span class="lineno"> 2867</span> </div>
<div class="line"><a id="l02868" name="l02868"></a><span class="lineno"> 2868</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02869" name="l02869"></a><span class="lineno"> 2869</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02870" name="l02870"></a><span class="lineno"> 2870</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02871" name="l02871"></a><span class="lineno"> 2871</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02872" name="l02872"></a><span class="lineno"> 2872</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02873" name="l02873"></a><span class="lineno"> 2873</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02874" name="l02874"></a><span class="lineno"> 2874</span> }</div>
<div class="line"><a id="l02875" name="l02875"></a><span class="lineno"> 2875</span> }</div>
<div class="line"><a id="l02876" name="l02876"></a><span class="lineno"> 2876</span> </div>
<div class="line"><a id="l02877" name="l02877"></a><span class="lineno"> 2877</span> Double_t tt;</div>
<div class="line"><a id="l02878" name="l02878"></a><span class="lineno"> 2878</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 5) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02879" name="l02879"></a><span class="lineno"> 2879</span> tt = t;</div>
<div class="line"><a id="l02880" name="l02880"></a><span class="lineno"> 2880</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02881" name="l02881"></a><span class="lineno"> 2881</span> tt = t-val[5];</div>
<div class="line"><a id="l02882" name="l02882"></a><span class="lineno"> 2882</span> </div>
<div class="line"><a id="l02883" name="l02883"></a><span class="lineno"> 2883</span> Double_t theta;</div>
<div class="line"><a id="l02884" name="l02884"></a><span class="lineno"> 2884</span> <span class="keywordflow">if</span> (val[4] &lt; 1.0e-6) { <span class="comment">// nu_c -&gt; 0</span></div>
<div class="line"><a id="l02885" name="l02885"></a><span class="lineno"> 2885</span> theta = 0.5*tt*tt;</div>
<div class="line"><a id="l02886" name="l02886"></a><span class="lineno"> 2886</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l02887" name="l02887"></a><span class="lineno"> 2887</span> theta = (exp(-val[4]*tt) - 1.0 + val[4]*tt)/(val[4]*val[4]);</div>
<div class="line"><a id="l02888" name="l02888"></a><span class="lineno"> 2888</span> }</div>
<div class="line"><a id="l02889" name="l02889"></a><span class="lineno"> 2889</span> Double_t denom = 1.0 + 2.0*val[2]*val[2]*val[3]*val[3]*theta;</div>
<div class="line"><a id="l02890" name="l02890"></a><span class="lineno"> 2890</span> </div>
<div class="line"><a id="l02891" name="l02891"></a><span class="lineno"> 2891</span> result = sqrt(1.0/denom)*exp(-val[2]*val[2]*theta/denom)*TMath::Cos(<a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a>*val[0]+<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[1]*tt);</div>
<div class="line"><a id="l02892" name="l02892"></a><span class="lineno"> 2892</span> </div>
<div class="line"><a id="l02893" name="l02893"></a><span class="lineno"> 2893</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02894" name="l02894"></a><span class="lineno"> 2894</span>}</div>
</div>
<div class="line"><a id="l02895" name="l02895"></a><span class="lineno"> 2895</span> </div>
<div class="line"><a id="l02896" name="l02896"></a><span class="lineno"> 2896</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l02907" name="l02907"></a><span class="lineno"> 2907</span>Double_t <a class="code hl_function" href="classPTheory.html#adc4b7167a0aa86f4a3ebe4dd5d305bcb">PTheory::FmuF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02908" name="l02908"></a><span class="lineno"> 2908</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02909" name="l02909"></a><span class="lineno"> 2909</span> <span class="comment">// expected paramters: w_d [0], [tshift [1]]</span></div>
<div class="line"><a id="l02910" name="l02910"></a><span class="lineno"> 2910</span> </div>
<div class="line"><a id="l02911" name="l02911"></a><span class="lineno"> 2911</span> Double_t val[2];</div>
<div class="line"><a id="l02912" name="l02912"></a><span class="lineno"> 2912</span> </div>
<div class="line"><a id="l02913" name="l02913"></a><span class="lineno"> 2913</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 2);</div>
<div class="line"><a id="l02914" name="l02914"></a><span class="lineno"> 2914</span> </div>
<div class="line"><a id="l02915" name="l02915"></a><span class="lineno"> 2915</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l02916" name="l02916"></a><span class="lineno"> 2916</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l02917" name="l02917"></a><span class="lineno"> 2917</span> </div>
<div class="line"><a id="l02918" name="l02918"></a><span class="lineno"> 2918</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02919" name="l02919"></a><span class="lineno"> 2919</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02920" name="l02920"></a><span class="lineno"> 2920</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02921" name="l02921"></a><span class="lineno"> 2921</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02922" name="l02922"></a><span class="lineno"> 2922</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02923" name="l02923"></a><span class="lineno"> 2923</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02924" name="l02924"></a><span class="lineno"> 2924</span> }</div>
<div class="line"><a id="l02925" name="l02925"></a><span class="lineno"> 2925</span> }</div>
<div class="line"><a id="l02926" name="l02926"></a><span class="lineno"> 2926</span> </div>
<div class="line"><a id="l02927" name="l02927"></a><span class="lineno"> 2927</span> Double_t tt;</div>
<div class="line"><a id="l02928" name="l02928"></a><span class="lineno"> 2928</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 1) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l02929" name="l02929"></a><span class="lineno"> 2929</span> tt = t;</div>
<div class="line"><a id="l02930" name="l02930"></a><span class="lineno"> 2930</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l02931" name="l02931"></a><span class="lineno"> 2931</span> tt = t-val[1];</div>
<div class="line"><a id="l02932" name="l02932"></a><span class="lineno"> 2932</span> </div>
<div class="line"><a id="l02933" name="l02933"></a><span class="lineno"> 2933</span> <span class="keyword">const</span> Double_t sqrt3 = sqrt(3.0);</div>
<div class="line"><a id="l02934" name="l02934"></a><span class="lineno"> 2934</span> <span class="keyword">const</span> Double_t wd_t = val[0]*tt;</div>
<div class="line"><a id="l02935" name="l02935"></a><span class="lineno"> 2935</span> </div>
<div class="line"><a id="l02936" name="l02936"></a><span class="lineno"> 2936</span> <span class="keywordflow">return</span> (3.0+cos(sqrt3*wd_t)+(1.0-1.0/sqrt3)*cos(((3.0-sqrt3)/2.0)*wd_t)+(1.0+1.0/sqrt3)*cos(((3.0 + sqrt3)/2.0)*wd_t))/6.0;</div>
<div class="line"><a id="l02937" name="l02937"></a><span class="lineno"> 2937</span>}</div>
<div class="line"><a id="l02938" name="l02938"></a><span class="lineno"> 2938</span> </div>
<div class="line"><a id="l02939" name="l02939"></a><span class="lineno"> 2939</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l02953" name="l02953"></a><span class="lineno"> 2953</span>Double_t <a class="code hl_function" href="classPTheory.html#ae984a95857932719634345a35803a92e">PTheory::Polynom</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02954" name="l02954"></a><span class="lineno"> 2954</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02955" name="l02955"></a><span class="lineno"> 2955</span> <span class="comment">// expected parameters: tshift p0 p1 p2 ...</span></div>
<div class="line"><a id="l02956" name="l02956"></a><span class="lineno"> 2956</span> </div>
<div class="line"><a id="l02957" name="l02957"></a><span class="lineno"> 2957</span> Double_t result = 0.0;</div>
<div class="line"><a id="l02958" name="l02958"></a><span class="lineno"> 2958</span> Double_t tshift = 0.0;</div>
<div class="line"><a id="l02959" name="l02959"></a><span class="lineno"> 2959</span> Double_t val;</div>
<div class="line"><a id="l02960" name="l02960"></a><span class="lineno"> 2960</span> Double_t expo = 0.0;</div>
<div class="line"><a id="l02961" name="l02961"></a><span class="lineno"> 2961</span> </div>
<div class="line"><a id="l02962" name="l02962"></a><span class="lineno"> 2962</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02963" name="l02963"></a><span class="lineno"> 2963</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l02964" name="l02964"></a><span class="lineno"> 2964</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02965" name="l02965"></a><span class="lineno"> 2965</span> val = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02966" name="l02966"></a><span class="lineno"> 2966</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02967" name="l02967"></a><span class="lineno"> 2967</span> val = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02968" name="l02968"></a><span class="lineno"> 2968</span> }</div>
<div class="line"><a id="l02969" name="l02969"></a><span class="lineno"> 2969</span> <span class="keywordflow">if</span> (i==0) { <span class="comment">// tshift</span></div>
<div class="line"><a id="l02970" name="l02970"></a><span class="lineno"> 2970</span> tshift = val;</div>
<div class="line"><a id="l02971" name="l02971"></a><span class="lineno"> 2971</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l02972" name="l02972"></a><span class="lineno"> 2972</span> }</div>
<div class="line"><a id="l02973" name="l02973"></a><span class="lineno"> 2973</span> result += val*pow(t-tshift, expo);</div>
<div class="line"><a id="l02974" name="l02974"></a><span class="lineno"> 2974</span> expo++;</div>
<div class="line"><a id="l02975" name="l02975"></a><span class="lineno"> 2975</span> }</div>
<div class="line"><a id="l02976" name="l02976"></a><span class="lineno"> 2976</span> </div>
<div class="line"><a id="l02977" name="l02977"></a><span class="lineno"> 2977</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l02978" name="l02978"></a><span class="lineno"> 2978</span>}</div>
<div class="line"><a id="l02979" name="l02979"></a><span class="lineno"> 2979</span> </div>
<div class="line"><a id="l02980" name="l02980"></a><span class="lineno"> 2980</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l02990" name="l02990"></a><span class="lineno"> 2990</span>Double_t <a class="code hl_function" href="classPTheory.html#ace253c9696e455779b05e9f9dee0896c">PTheory::UserFcn</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l02991" name="l02991"></a><span class="lineno"> 2991</span><span class="keyword"></span>{</div>
<div class="line"><a id="l02992" name="l02992"></a><span class="lineno"> 2992</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l02993" name="l02993"></a><span class="lineno"> 2993</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#a227b713015c7feece87f4a84d3df4168">fUserParam</a>.size(); i++) {</div>
<div class="line"><a id="l02994" name="l02994"></a><span class="lineno"> 2994</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l02995" name="l02995"></a><span class="lineno"> 2995</span> <a class="code hl_variable" href="classPTheory.html#a227b713015c7feece87f4a84d3df4168">fUserParam</a>[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l02996" name="l02996"></a><span class="lineno"> 2996</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l02997" name="l02997"></a><span class="lineno"> 2997</span> <a class="code hl_variable" href="classPTheory.html#a227b713015c7feece87f4a84d3df4168">fUserParam</a>[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l02998" name="l02998"></a><span class="lineno"> 2998</span> }</div>
<div class="line"><a id="l02999" name="l02999"></a><span class="lineno"> 2999</span> }</div>
<div class="line"><a id="l03000" name="l03000"></a><span class="lineno"> 3000</span> </div>
<div class="line"><a id="l03001" name="l03001"></a><span class="lineno"> 3001</span> <span class="keywordflow">return</span> (*<a class="code hl_variable" href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">fUserFcn</a>)(t, <a class="code hl_variable" href="classPTheory.html#a227b713015c7feece87f4a84d3df4168">fUserParam</a>);</div>
<div class="line"><a id="l03002" name="l03002"></a><span class="lineno"> 3002</span>}</div>
<div class="line"><a id="l03003" name="l03003"></a><span class="lineno"> 3003</span> </div>
<div class="line"><a id="l03004" name="l03004"></a><span class="lineno"> 3004</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03017" name="l03017"></a><span class="lineno"> 3017</span><span class="keywordtype">void</span> <a class="code hl_function" href="classPTheory.html#a162fdcf419f2285a05766fa75fc4badd">PTheory::CalculateGaussLFIntegral</a>(<span class="keyword">const</span> Double_t *val)<span class="keyword"> const</span></div>
<div class="line"><a id="l03018" name="l03018"></a><span class="lineno"> 3018</span><span class="keyword"></span>{</div>
<div class="line"><a id="l03019" name="l03019"></a><span class="lineno"> 3019</span> <span class="comment">// val[0] = nu (field), val[1] = Delta</span></div>
<div class="line"><a id="l03020" name="l03020"></a><span class="lineno"> 3020</span> </div>
<div class="line"><a id="l03021" name="l03021"></a><span class="lineno"> 3021</span> <span class="keywordflow">if</span> (val[0] == 0.0) { <span class="comment">// field == 0.0, hence nothing to be done</span></div>
<div class="line"><a id="l03022" name="l03022"></a><span class="lineno"> 3022</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l03023" name="l03023"></a><span class="lineno"> 3023</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val[1]/val[0] &gt; 79.5775) { <span class="comment">// check if a/w0 &gt; 500.0, in which case the ZF formula is used and here nothing has to be done</span></div>
<div class="line"><a id="l03024" name="l03024"></a><span class="lineno"> 3024</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l03025" name="l03025"></a><span class="lineno"> 3025</span> }</div>
<div class="line"><a id="l03026" name="l03026"></a><span class="lineno"> 3026</span> </div>
<div class="line"><a id="l03027" name="l03027"></a><span class="lineno"> 3027</span> </div>
<div class="line"><a id="l03028" name="l03028"></a><span class="lineno"> 3028</span> Double_t dt=0.001; <span class="comment">// all times in usec</span></div>
<div class="line"><a id="l03029" name="l03029"></a><span class="lineno"> 3029</span> Double_t t, ft;</div>
<div class="line"><a id="l03030" name="l03030"></a><span class="lineno"> 3030</span> Double_t w0 = TMath::TwoPi()*val[0];</div>
<div class="line"><a id="l03031" name="l03031"></a><span class="lineno"> 3031</span> Double_t Delta = val[1];</div>
<div class="line"><a id="l03032" name="l03032"></a><span class="lineno"> 3032</span> Double_t preFactor = 2.0*TMath::Power(Delta, 4.0) / TMath::Power(w0, 3.0);</div>
<div class="line"><a id="l03033" name="l03033"></a><span class="lineno"> 3033</span> </div>
<div class="line"><a id="l03034" name="l03034"></a><span class="lineno"> 3034</span> <span class="comment">// check if the time resolution needs to be increased</span></div>
<div class="line"><a id="l03035" name="l03035"></a><span class="lineno"> 3035</span> <span class="keyword">const</span> Int_t samplingPerPeriod = 20;</div>
<div class="line"><a id="l03036" name="l03036"></a><span class="lineno"> 3036</span> <span class="keyword">const</span> Int_t samplingOnExp = 3000;</div>
<div class="line"><a id="l03037" name="l03037"></a><span class="lineno"> 3037</span> <span class="keywordflow">if</span> ((Delta &lt;= w0) &amp;&amp; (1.0/val[0] &lt; 20.0)) { <span class="comment">// makes sure that the frequency sampling is fine enough</span></div>
<div class="line"><a id="l03038" name="l03038"></a><span class="lineno"> 3038</span> <span class="keywordflow">if</span> (1.0/val[0]/samplingPerPeriod &lt; 0.001) {</div>
<div class="line"><a id="l03039" name="l03039"></a><span class="lineno"> 3039</span> dt = 1.0/val[0]/samplingPerPeriod;</div>
<div class="line"><a id="l03040" name="l03040"></a><span class="lineno"> 3040</span> }</div>
<div class="line"><a id="l03041" name="l03041"></a><span class="lineno"> 3041</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((Delta &gt; w0) &amp;&amp; (Delta &lt;= 10.0)) {</div>
<div class="line"><a id="l03042" name="l03042"></a><span class="lineno"> 3042</span> <span class="keywordflow">if</span> (Delta/w0 &gt; 10.0) {</div>
<div class="line"><a id="l03043" name="l03043"></a><span class="lineno"> 3043</span> dt = 0.00005;</div>
<div class="line"><a id="l03044" name="l03044"></a><span class="lineno"> 3044</span> }</div>
<div class="line"><a id="l03045" name="l03045"></a><span class="lineno"> 3045</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((Delta &gt; w0) &amp;&amp; (Delta &gt; 10.0)) { <span class="comment">// makes sure there is a fine enough sampling for large Delta&#39;s</span></div>
<div class="line"><a id="l03046" name="l03046"></a><span class="lineno"> 3046</span> <span class="keywordflow">if</span> (1.0/Delta/samplingOnExp &lt; 0.001) {</div>
<div class="line"><a id="l03047" name="l03047"></a><span class="lineno"> 3047</span> dt = 1.0/Delta/samplingOnExp;</div>
<div class="line"><a id="l03048" name="l03048"></a><span class="lineno"> 3048</span> }</div>
<div class="line"><a id="l03049" name="l03049"></a><span class="lineno"> 3049</span> }</div>
<div class="line"><a id="l03050" name="l03050"></a><span class="lineno"> 3050</span> </div>
<div class="line"><a id="l03051" name="l03051"></a><span class="lineno"> 3051</span> <span class="comment">// keep sampling time</span></div>
<div class="line"><a id="l03052" name="l03052"></a><span class="lineno"> 3052</span> <a class="code hl_variable" href="classPTheory.html#a25c32f4daa2a96461d1bf4ee84138ccc">fSamplingTime</a> = dt;</div>
<div class="line"><a id="l03053" name="l03053"></a><span class="lineno"> 3053</span> </div>
<div class="line"><a id="l03054" name="l03054"></a><span class="lineno"> 3054</span> <span class="comment">// clear previously allocated vector</span></div>
<div class="line"><a id="l03055" name="l03055"></a><span class="lineno"> 3055</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.clear();</div>
<div class="line"><a id="l03056" name="l03056"></a><span class="lineno"> 3056</span> </div>
<div class="line"><a id="l03057" name="l03057"></a><span class="lineno"> 3057</span> <span class="comment">// calculate integral</span></div>
<div class="line"><a id="l03058" name="l03058"></a><span class="lineno"> 3058</span> t = 0.0;</div>
<div class="line"><a id="l03059" name="l03059"></a><span class="lineno"> 3059</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.push_back(0.0); <span class="comment">// start value of the integral</span></div>
<div class="line"><a id="l03060" name="l03060"></a><span class="lineno"> 3060</span> </div>
<div class="line"><a id="l03061" name="l03061"></a><span class="lineno"> 3061</span> ft = 0.0;</div>
<div class="line"><a id="l03062" name="l03062"></a><span class="lineno"> 3062</span> Double_t step = 0.0, lastft = 1.0, diff = 0.0;</div>
<div class="line"><a id="l03063" name="l03063"></a><span class="lineno"> 3063</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l03064" name="l03064"></a><span class="lineno"> 3064</span> t += dt;</div>
<div class="line"><a id="l03065" name="l03065"></a><span class="lineno"> 3065</span> step = 0.5*dt*preFactor*(exp(-0.5*pow(Delta * (t-dt), 2.0))*sin(w0*(t-dt))+</div>
<div class="line"><a id="l03066" name="l03066"></a><span class="lineno"> 3066</span> exp(-0.5*pow(Delta * t, 2.0))*sin(w0*t));</div>
<div class="line"><a id="l03067" name="l03067"></a><span class="lineno"> 3067</span> ft += step;</div>
<div class="line"><a id="l03068" name="l03068"></a><span class="lineno"> 3068</span> diff = fabs(fabs(lastft)-fabs(ft));</div>
<div class="line"><a id="l03069" name="l03069"></a><span class="lineno"> 3069</span> lastft = ft;</div>
<div class="line"><a id="l03070" name="l03070"></a><span class="lineno"> 3070</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.push_back(ft);</div>
<div class="line"><a id="l03071" name="l03071"></a><span class="lineno"> 3071</span> } <span class="keywordflow">while</span> ((t &lt;= 20.0) &amp;&amp; (diff &gt; 1.0e-10));</div>
<div class="line"><a id="l03072" name="l03072"></a><span class="lineno"> 3072</span>}</div>
<div class="line"><a id="l03073" name="l03073"></a><span class="lineno"> 3073</span> </div>
<div class="line"><a id="l03074" name="l03074"></a><span class="lineno"> 3074</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03087" name="l03087"></a><span class="lineno"> 3087</span><span class="keywordtype">void</span> <a class="code hl_function" href="classPTheory.html#ad0fab4cfa3e30636987597b2e515556f">PTheory::CalculateLorentzLFIntegral</a>(<span class="keyword">const</span> Double_t *val)<span class="keyword"> const</span></div>
<div class="line"><a id="l03088" name="l03088"></a><span class="lineno"> 3088</span><span class="keyword"></span>{</div>
<div class="line"><a id="l03089" name="l03089"></a><span class="lineno"> 3089</span> <span class="comment">// val[0] = nu, val[1] = a</span></div>
<div class="line"><a id="l03090" name="l03090"></a><span class="lineno"> 3090</span> </div>
<div class="line"><a id="l03091" name="l03091"></a><span class="lineno"> 3091</span> <span class="comment">// a few checks if the integral actually needs to be calculated</span></div>
<div class="line"><a id="l03092" name="l03092"></a><span class="lineno"> 3092</span> <span class="keywordflow">if</span> (val[0] &lt; 0.02) { <span class="comment">// if smaller 20kHz ~ 0.27G use the ZF formula and here nothing has to be done</span></div>
<div class="line"><a id="l03093" name="l03093"></a><span class="lineno"> 3093</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l03094" name="l03094"></a><span class="lineno"> 3094</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val[1]/val[0] &gt; 159.1549) { <span class="comment">// check if a/w0 &gt; 1000.0, in which case the ZF formula is used and here nothing has to be done</span></div>
<div class="line"><a id="l03095" name="l03095"></a><span class="lineno"> 3095</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l03096" name="l03096"></a><span class="lineno"> 3096</span> }</div>
<div class="line"><a id="l03097" name="l03097"></a><span class="lineno"> 3097</span> </div>
<div class="line"><a id="l03098" name="l03098"></a><span class="lineno"> 3098</span> Double_t dt=0.001; <span class="comment">// all times in usec</span></div>
<div class="line"><a id="l03099" name="l03099"></a><span class="lineno"> 3099</span> Double_t t, ft;</div>
<div class="line"><a id="l03100" name="l03100"></a><span class="lineno"> 3100</span> Double_t w0 = TMath::TwoPi()*val[0];</div>
<div class="line"><a id="l03101" name="l03101"></a><span class="lineno"> 3101</span> Double_t a = val[1];</div>
<div class="line"><a id="l03102" name="l03102"></a><span class="lineno"> 3102</span> Double_t preFactor = a*(1+pow(a/w0,2.0));</div>
<div class="line"><a id="l03103" name="l03103"></a><span class="lineno"> 3103</span> </div>
<div class="line"><a id="l03104" name="l03104"></a><span class="lineno"> 3104</span> <span class="comment">// check if the time resolution needs to be increased</span></div>
<div class="line"><a id="l03105" name="l03105"></a><span class="lineno"> 3105</span> <span class="keyword">const</span> Int_t samplingPerPeriod = 20;</div>
<div class="line"><a id="l03106" name="l03106"></a><span class="lineno"> 3106</span> <span class="keyword">const</span> Int_t samplingOnExp = 3000;</div>
<div class="line"><a id="l03107" name="l03107"></a><span class="lineno"> 3107</span> <span class="keywordflow">if</span> ((a &lt;= w0) &amp;&amp; (1.0/val[0] &lt; 20.0)) { <span class="comment">// makes sure that the frequency sampling is fine enough</span></div>
<div class="line"><a id="l03108" name="l03108"></a><span class="lineno"> 3108</span> <span class="keywordflow">if</span> (1.0/val[0]/samplingPerPeriod &lt; 0.001) {</div>
<div class="line"><a id="l03109" name="l03109"></a><span class="lineno"> 3109</span> dt = 1.0/val[0]/samplingPerPeriod;</div>
<div class="line"><a id="l03110" name="l03110"></a><span class="lineno"> 3110</span> }</div>
<div class="line"><a id="l03111" name="l03111"></a><span class="lineno"> 3111</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((a &gt; w0) &amp;&amp; (a &lt;= 10.0)) {</div>
<div class="line"><a id="l03112" name="l03112"></a><span class="lineno"> 3112</span> <span class="keywordflow">if</span> (a/w0 &gt; 10.0) {</div>
<div class="line"><a id="l03113" name="l03113"></a><span class="lineno"> 3113</span> dt = 0.00005;</div>
<div class="line"><a id="l03114" name="l03114"></a><span class="lineno"> 3114</span> }</div>
<div class="line"><a id="l03115" name="l03115"></a><span class="lineno"> 3115</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((a &gt; w0) &amp;&amp; (a &gt; 10.0)) { <span class="comment">// makes sure there is a fine enough sampling for large a&#39;s</span></div>
<div class="line"><a id="l03116" name="l03116"></a><span class="lineno"> 3116</span> <span class="keywordflow">if</span> (1.0/a/samplingOnExp &lt; 0.001) {</div>
<div class="line"><a id="l03117" name="l03117"></a><span class="lineno"> 3117</span> dt = 1.0/a/samplingOnExp;</div>
<div class="line"><a id="l03118" name="l03118"></a><span class="lineno"> 3118</span> }</div>
<div class="line"><a id="l03119" name="l03119"></a><span class="lineno"> 3119</span> }</div>
<div class="line"><a id="l03120" name="l03120"></a><span class="lineno"> 3120</span> </div>
<div class="line"><a id="l03121" name="l03121"></a><span class="lineno"> 3121</span> <span class="comment">// keep sampling time</span></div>
<div class="line"><a id="l03122" name="l03122"></a><span class="lineno"> 3122</span> <a class="code hl_variable" href="classPTheory.html#a25c32f4daa2a96461d1bf4ee84138ccc">fSamplingTime</a> = dt;</div>
<div class="line"><a id="l03123" name="l03123"></a><span class="lineno"> 3123</span> </div>
<div class="line"><a id="l03124" name="l03124"></a><span class="lineno"> 3124</span> <span class="comment">// clear previously allocated vector</span></div>
<div class="line"><a id="l03125" name="l03125"></a><span class="lineno"> 3125</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.clear();</div>
<div class="line"><a id="l03126" name="l03126"></a><span class="lineno"> 3126</span> </div>
<div class="line"><a id="l03127" name="l03127"></a><span class="lineno"> 3127</span> <span class="comment">// calculate integral</span></div>
<div class="line"><a id="l03128" name="l03128"></a><span class="lineno"> 3128</span> t = 0.0;</div>
<div class="line"><a id="l03129" name="l03129"></a><span class="lineno"> 3129</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.push_back(0.0); <span class="comment">// start value of the integral</span></div>
<div class="line"><a id="l03130" name="l03130"></a><span class="lineno"> 3130</span> </div>
<div class="line"><a id="l03131" name="l03131"></a><span class="lineno"> 3131</span> ft = 0.0;</div>
<div class="line"><a id="l03132" name="l03132"></a><span class="lineno"> 3132</span> <span class="comment">// calculate first integral bin value (needed bcause of sin(x)/x x-&gt;0)</span></div>
<div class="line"><a id="l03133" name="l03133"></a><span class="lineno"> 3133</span> t += dt;</div>
<div class="line"><a id="l03134" name="l03134"></a><span class="lineno"> 3134</span> ft += 0.5*dt*preFactor*(1.0+sin(w0*t)/(w0*t)*exp(-a*t));</div>
<div class="line"><a id="l03135" name="l03135"></a><span class="lineno"> 3135</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.push_back(ft);</div>
<div class="line"><a id="l03136" name="l03136"></a><span class="lineno"> 3136</span> <span class="comment">// calculate all the other integral bin values</span></div>
<div class="line"><a id="l03137" name="l03137"></a><span class="lineno"> 3137</span> Double_t step = 0.0, lastft = 1.0, diff = 0.0;</div>
<div class="line"><a id="l03138" name="l03138"></a><span class="lineno"> 3138</span> <span class="keywordflow">do</span> {</div>
<div class="line"><a id="l03139" name="l03139"></a><span class="lineno"> 3139</span> t += dt;</div>
<div class="line"><a id="l03140" name="l03140"></a><span class="lineno"> 3140</span> step = 0.5*dt*preFactor*(sin(w0*(t-dt))/(w0*(t-dt))*exp(-a*(t-dt))+sin(w0*t)/(w0*t)*exp(-a*t));</div>
<div class="line"><a id="l03141" name="l03141"></a><span class="lineno"> 3141</span> ft += step;</div>
<div class="line"><a id="l03142" name="l03142"></a><span class="lineno"> 3142</span> diff = fabs(fabs(lastft)-fabs(ft));</div>
<div class="line"><a id="l03143" name="l03143"></a><span class="lineno"> 3143</span> lastft = ft;</div>
<div class="line"><a id="l03144" name="l03144"></a><span class="lineno"> 3144</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.push_back(ft);</div>
<div class="line"><a id="l03145" name="l03145"></a><span class="lineno"> 3145</span> } <span class="keywordflow">while</span> ((t &lt;= 20.0) &amp;&amp; (diff &gt; 1.0e-10));</div>
<div class="line"><a id="l03146" name="l03146"></a><span class="lineno"> 3146</span>}</div>
<div class="line"><a id="l03147" name="l03147"></a><span class="lineno"> 3147</span> </div>
<div class="line"><a id="l03148" name="l03148"></a><span class="lineno"> 3148</span> </div>
<div class="line"><a id="l03149" name="l03149"></a><span class="lineno"> 3149</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03157" name="l03157"></a><span class="lineno"> 3157</span>Double_t <a class="code hl_function" href="classPTheory.html#a44d4841bb66f761c2502b78017f1756b">PTheory::GetLFIntegralValue</a>(<span class="keyword">const</span> Double_t t)<span class="keyword"> const</span></div>
<div class="line"><a id="l03158" name="l03158"></a><span class="lineno"> 3158</span><span class="keyword"></span>{</div>
<div class="line"><a id="l03159" name="l03159"></a><span class="lineno"> 3159</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l03160" name="l03160"></a><span class="lineno"> 3160</span> <span class="keywordflow">return</span> 0.0;</div>
<div class="line"><a id="l03161" name="l03161"></a><span class="lineno"> 3161</span> </div>
<div class="line"><a id="l03162" name="l03162"></a><span class="lineno"> 3162</span> UInt_t idx = <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(t/<a class="code hl_variable" href="classPTheory.html#a25c32f4daa2a96461d1bf4ee84138ccc">fSamplingTime</a>);</div>
<div class="line"><a id="l03163" name="l03163"></a><span class="lineno"> 3163</span> </div>
<div class="line"><a id="l03164" name="l03164"></a><span class="lineno"> 3164</span> <span class="keywordflow">if</span> (idx + 2 &gt; <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.size())</div>
<div class="line"><a id="l03165" name="l03165"></a><span class="lineno"> 3165</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>.back();</div>
<div class="line"><a id="l03166" name="l03166"></a><span class="lineno"> 3166</span> </div>
<div class="line"><a id="l03167" name="l03167"></a><span class="lineno"> 3167</span> <span class="comment">// linearly interpolate between the two relevant function bins</span></div>
<div class="line"><a id="l03168" name="l03168"></a><span class="lineno"> 3168</span> Double_t df = (<a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>[idx+1]-<a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>[idx])*(t/<a class="code hl_variable" href="classPTheory.html#a25c32f4daa2a96461d1bf4ee84138ccc">fSamplingTime</a>-<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(idx));</div>
<div class="line"><a id="l03169" name="l03169"></a><span class="lineno"> 3169</span> </div>
<div class="line"><a id="l03170" name="l03170"></a><span class="lineno"> 3170</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">fLFIntegral</a>[idx]+df;</div>
<div class="line"><a id="l03171" name="l03171"></a><span class="lineno"> 3171</span>}</div>
<div class="line"><a id="l03172" name="l03172"></a><span class="lineno"> 3172</span> </div>
<div class="line"><a id="l03173" name="l03173"></a><span class="lineno"> 3173</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03184" name="l03184"></a><span class="lineno"> 3184</span><span class="keywordtype">void</span> <a class="code hl_function" href="classPTheory.html#a68818588fe0ed93817fcb2f1230851e1">PTheory::CalculateDynKTLF</a>(<span class="keyword">const</span> Double_t *val, Int_t tag)<span class="keyword"> const</span></div>
<div class="line"><a id="l03185" name="l03185"></a><span class="lineno"> 3185</span><span class="keyword"></span>{</div>
<div class="line"><a id="l03186" name="l03186"></a><span class="lineno"> 3186</span> <span class="comment">// val: 0=nu0, 1=Delta (Gauss) / a (Lorentz), 2=nu</span></div>
<div class="line"><a id="l03187" name="l03187"></a><span class="lineno"> 3187</span> <span class="keyword">const</span> Double_t Tmax = 20.0; <span class="comment">// 20 usec</span></div>
<div class="line"><a id="l03188" name="l03188"></a><span class="lineno"> 3188</span> UInt_t N = <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(16.0*Tmax*val[0]);</div>
<div class="line"><a id="l03189" name="l03189"></a><span class="lineno"> 3189</span> </div>
<div class="line"><a id="l03190" name="l03190"></a><span class="lineno"> 3190</span> <span class="comment">// check if rate (Delta or a) is very high</span></div>
<div class="line"><a id="l03191" name="l03191"></a><span class="lineno"> 3191</span> <span class="keywordflow">if</span> (fabs(val[1]) &gt; 0.1) {</div>
<div class="line"><a id="l03192" name="l03192"></a><span class="lineno"> 3192</span> Double_t tmin = 20.0;</div>
<div class="line"><a id="l03193" name="l03193"></a><span class="lineno"> 3193</span> <span class="keywordflow">switch</span> (tag) {</div>
<div class="line"><a id="l03194" name="l03194"></a><span class="lineno"> 3194</span> <span class="keywordflow">case</span> 0: <span class="comment">// Gauss</span></div>
<div class="line"><a id="l03195" name="l03195"></a><span class="lineno"> 3195</span> tmin = fabs(sqrt(3.0)/val[1]);</div>
<div class="line"><a id="l03196" name="l03196"></a><span class="lineno"> 3196</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03197" name="l03197"></a><span class="lineno"> 3197</span> <span class="keywordflow">case</span> 1: <span class="comment">// Lorentz</span></div>
<div class="line"><a id="l03198" name="l03198"></a><span class="lineno"> 3198</span> tmin = fabs(2.0/val[1]);</div>
<div class="line"><a id="l03199" name="l03199"></a><span class="lineno"> 3199</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03200" name="l03200"></a><span class="lineno"> 3200</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l03201" name="l03201"></a><span class="lineno"> 3201</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03202" name="l03202"></a><span class="lineno"> 3202</span> }</div>
<div class="line"><a id="l03203" name="l03203"></a><span class="lineno"> 3203</span> UInt_t Nrate = <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(25.0 * Tmax / tmin);</div>
<div class="line"><a id="l03204" name="l03204"></a><span class="lineno"> 3204</span> <span class="keywordflow">if</span> (Nrate &gt; N) {</div>
<div class="line"><a id="l03205" name="l03205"></a><span class="lineno"> 3205</span> N = Nrate;</div>
<div class="line"><a id="l03206" name="l03206"></a><span class="lineno"> 3206</span> }</div>
<div class="line"><a id="l03207" name="l03207"></a><span class="lineno"> 3207</span> }</div>
<div class="line"><a id="l03208" name="l03208"></a><span class="lineno"> 3208</span> </div>
<div class="line"><a id="l03209" name="l03209"></a><span class="lineno"> 3209</span> <span class="keywordflow">if</span> (N &lt; 300) <span class="comment">// if too few points, i.e. nu0 very small, take 300 points</span></div>
<div class="line"><a id="l03210" name="l03210"></a><span class="lineno"> 3210</span> N = 300;</div>
<div class="line"><a id="l03211" name="l03211"></a><span class="lineno"> 3211</span> </div>
<div class="line"><a id="l03212" name="l03212"></a><span class="lineno"> 3212</span> <span class="keywordflow">if</span> (N&gt;1e6) <span class="comment">// make sure that N is not too large to prevent memory overflow</span></div>
<div class="line"><a id="l03213" name="l03213"></a><span class="lineno"> 3213</span> N = 1e6;</div>
<div class="line"><a id="l03214" name="l03214"></a><span class="lineno"> 3214</span> </div>
<div class="line"><a id="l03215" name="l03215"></a><span class="lineno"> 3215</span> <span class="comment">// allocate memory for dyn KT LF function vector</span></div>
<div class="line"><a id="l03216" name="l03216"></a><span class="lineno"> 3216</span> <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>.clear(); <span class="comment">// get rid of a possible previous vector</span></div>
<div class="line"><a id="l03217" name="l03217"></a><span class="lineno"> 3217</span> <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>.resize(N);</div>
<div class="line"><a id="l03218" name="l03218"></a><span class="lineno"> 3218</span> </div>
<div class="line"><a id="l03219" name="l03219"></a><span class="lineno"> 3219</span> <span class="comment">// calculate the non-analytic integral of the static KT LF function</span></div>
<div class="line"><a id="l03220" name="l03220"></a><span class="lineno"> 3220</span> <span class="keywordflow">switch</span> (tag) {</div>
<div class="line"><a id="l03221" name="l03221"></a><span class="lineno"> 3221</span> <span class="keywordflow">case</span> 0: <span class="comment">// Gauss</span></div>
<div class="line"><a id="l03222" name="l03222"></a><span class="lineno"> 3222</span> <a class="code hl_function" href="classPTheory.html#a162fdcf419f2285a05766fa75fc4badd">CalculateGaussLFIntegral</a>(val);</div>
<div class="line"><a id="l03223" name="l03223"></a><span class="lineno"> 3223</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03224" name="l03224"></a><span class="lineno"> 3224</span> <span class="keywordflow">case</span> 1: <span class="comment">// Lorentz</span></div>
<div class="line"><a id="l03225" name="l03225"></a><span class="lineno"> 3225</span> <a class="code hl_function" href="classPTheory.html#ad0fab4cfa3e30636987597b2e515556f">CalculateLorentzLFIntegral</a>(val);</div>
<div class="line"><a id="l03226" name="l03226"></a><span class="lineno"> 3226</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03227" name="l03227"></a><span class="lineno"> 3227</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l03228" name="l03228"></a><span class="lineno"> 3228</span> std::cerr &lt;&lt; std::endl &lt;&lt; <span class="stringliteral">&quot;&gt;&gt; PTheory::CalculateDynKTLF: **FATAL ERROR** You should never have reached this point.&quot;</span> &lt;&lt; std::endl;</div>
<div class="line"><a id="l03229" name="l03229"></a><span class="lineno"> 3229</span> assert(<span class="keyword">false</span>);</div>
<div class="line"><a id="l03230" name="l03230"></a><span class="lineno"> 3230</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03231" name="l03231"></a><span class="lineno"> 3231</span> }</div>
<div class="line"><a id="l03232" name="l03232"></a><span class="lineno"> 3232</span> </div>
<div class="line"><a id="l03233" name="l03233"></a><span class="lineno"> 3233</span> <span class="comment">// calculate the P^(0)(t) exp(-nu t) vector</span></div>
<div class="line"><a id="l03234" name="l03234"></a><span class="lineno"> 3234</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a> p0exp(N);</div>
<div class="line"><a id="l03235" name="l03235"></a><span class="lineno"> 3235</span> Double_t t = 0.0;</div>
<div class="line"><a id="l03236" name="l03236"></a><span class="lineno"> 3236</span> Double_t dt = Tmax/N;</div>
<div class="line"><a id="l03237" name="l03237"></a><span class="lineno"> 3237</span> <a class="code hl_variable" href="classPTheory.html#a206a0d0f432f8f581e718451a90c2e47">fDynLFdt</a> = dt; <span class="comment">// keep it since it is needed in GetDynKTLFValue()</span></div>
<div class="line"><a id="l03238" name="l03238"></a><span class="lineno"> 3238</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;N; i++) {</div>
<div class="line"><a id="l03239" name="l03239"></a><span class="lineno"> 3239</span> <span class="keywordflow">switch</span> (tag) {</div>
<div class="line"><a id="l03240" name="l03240"></a><span class="lineno"> 3240</span> <span class="keywordflow">case</span> 0: <span class="comment">// Gauss</span></div>
<div class="line"><a id="l03241" name="l03241"></a><span class="lineno"> 3241</span> <span class="keywordflow">if</span> (val[0] &lt; 0.02) { <span class="comment">// if smaller 20kHz ~ 0.27G use zero field formula</span></div>
<div class="line"><a id="l03242" name="l03242"></a><span class="lineno"> 3242</span> Double_t sigma_t_2 = t*t*val[1]*val[1];</div>
<div class="line"><a id="l03243" name="l03243"></a><span class="lineno"> 3243</span> p0exp[i] = 0.333333333333333 * (1.0 + 2.0*(1.0 - sigma_t_2)*TMath::Exp(-0.5*sigma_t_2));</div>
<div class="line"><a id="l03244" name="l03244"></a><span class="lineno"> 3244</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val[1]/val[0] &gt; 79.5775) { <span class="comment">// check if Delta/w0 &gt; 500.0, in which case the ZF formula is used</span></div>
<div class="line"><a id="l03245" name="l03245"></a><span class="lineno"> 3245</span> Double_t sigma_t_2 = t*t*val[1]*val[1];</div>
<div class="line"><a id="l03246" name="l03246"></a><span class="lineno"> 3246</span> p0exp[i] = 0.333333333333333 * (1.0 + 2.0*(1.0 - sigma_t_2)*TMath::Exp(-0.5*sigma_t_2));</div>
<div class="line"><a id="l03247" name="l03247"></a><span class="lineno"> 3247</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l03248" name="l03248"></a><span class="lineno"> 3248</span> Double_t delta = val[1];</div>
<div class="line"><a id="l03249" name="l03249"></a><span class="lineno"> 3249</span> Double_t w0 = <a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[0];</div>
<div class="line"><a id="l03250" name="l03250"></a><span class="lineno"> 3250</span> </div>
<div class="line"><a id="l03251" name="l03251"></a><span class="lineno"> 3251</span> p0exp[i] = 1.0 - 2.0*TMath::Power(delta/w0,2.0)*(1.0 -</div>
<div class="line"><a id="l03252" name="l03252"></a><span class="lineno"> 3252</span> TMath::Exp(-0.5*TMath::Power(delta*t, 2.0))*TMath::Cos(w0*t)) +</div>
<div class="line"><a id="l03253" name="l03253"></a><span class="lineno"> 3253</span> <a class="code hl_function" href="classPTheory.html#a44d4841bb66f761c2502b78017f1756b">GetLFIntegralValue</a>(t);</div>
<div class="line"><a id="l03254" name="l03254"></a><span class="lineno"> 3254</span> }</div>
<div class="line"><a id="l03255" name="l03255"></a><span class="lineno"> 3255</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03256" name="l03256"></a><span class="lineno"> 3256</span> <span class="keywordflow">case</span> 1: <span class="comment">// Lorentz</span></div>
<div class="line"><a id="l03257" name="l03257"></a><span class="lineno"> 3257</span> <span class="keywordflow">if</span> (val[0] &lt; 0.02) { <span class="comment">// if smaller 20kHz ~ 0.27G use zero field formula</span></div>
<div class="line"><a id="l03258" name="l03258"></a><span class="lineno"> 3258</span> Double_t at = t*val[1];</div>
<div class="line"><a id="l03259" name="l03259"></a><span class="lineno"> 3259</span> p0exp[i] = 0.333333333333333 * (1.0 + 2.0*(1.0 - at)*TMath::Exp(-at));</div>
<div class="line"><a id="l03260" name="l03260"></a><span class="lineno"> 3260</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (val[1]/val[0] &gt; 159.1549) { <span class="comment">// check if a/w0 &gt; 1000.0, in which case the ZF formula is used</span></div>
<div class="line"><a id="l03261" name="l03261"></a><span class="lineno"> 3261</span> Double_t at = t*val[1];</div>
<div class="line"><a id="l03262" name="l03262"></a><span class="lineno"> 3262</span> p0exp[i] = 0.333333333333333 * (1.0 + 2.0*(1.0 - at)*TMath::Exp(-at));</div>
<div class="line"><a id="l03263" name="l03263"></a><span class="lineno"> 3263</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l03264" name="l03264"></a><span class="lineno"> 3264</span> Double_t a = val[1];</div>
<div class="line"><a id="l03265" name="l03265"></a><span class="lineno"> 3265</span> Double_t at = a*t;</div>
<div class="line"><a id="l03266" name="l03266"></a><span class="lineno"> 3266</span> Double_t w0 = <a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[0];</div>
<div class="line"><a id="l03267" name="l03267"></a><span class="lineno"> 3267</span> Double_t a_w0 = a/w0;</div>
<div class="line"><a id="l03268" name="l03268"></a><span class="lineno"> 3268</span> Double_t w0t = w0*t;</div>
<div class="line"><a id="l03269" name="l03269"></a><span class="lineno"> 3269</span> </div>
<div class="line"><a id="l03270" name="l03270"></a><span class="lineno"> 3270</span> Double_t j1, j0;</div>
<div class="line"><a id="l03271" name="l03271"></a><span class="lineno"> 3271</span> <span class="keywordflow">if</span> (fabs(w0t) &lt; 0.001) { <span class="comment">// check zero time limits of the spherical bessel functions j0(x) and j1(x)</span></div>
<div class="line"><a id="l03272" name="l03272"></a><span class="lineno"> 3272</span> j0 = 1.0;</div>
<div class="line"><a id="l03273" name="l03273"></a><span class="lineno"> 3273</span> j1 = 0.0;</div>
<div class="line"><a id="l03274" name="l03274"></a><span class="lineno"> 3274</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l03275" name="l03275"></a><span class="lineno"> 3275</span> j0 = sin(w0t)/w0t;</div>
<div class="line"><a id="l03276" name="l03276"></a><span class="lineno"> 3276</span> j1 = (sin(w0t)-w0t*cos(w0t))/(w0t*w0t);</div>
<div class="line"><a id="l03277" name="l03277"></a><span class="lineno"> 3277</span> }</div>
<div class="line"><a id="l03278" name="l03278"></a><span class="lineno"> 3278</span> </div>
<div class="line"><a id="l03279" name="l03279"></a><span class="lineno"> 3279</span> p0exp[i] = 1.0 - a_w0*j1*exp(-at) - a_w0*a_w0*(j0*exp(-at) - 1.0) - <a class="code hl_function" href="classPTheory.html#a44d4841bb66f761c2502b78017f1756b">GetLFIntegralValue</a>(t);</div>
<div class="line"><a id="l03280" name="l03280"></a><span class="lineno"> 3280</span> }</div>
<div class="line"><a id="l03281" name="l03281"></a><span class="lineno"> 3281</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03282" name="l03282"></a><span class="lineno"> 3282</span> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l03283" name="l03283"></a><span class="lineno"> 3283</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l03284" name="l03284"></a><span class="lineno"> 3284</span> }</div>
<div class="line"><a id="l03285" name="l03285"></a><span class="lineno"> 3285</span> p0exp[i] *= TMath::Exp(-val[2]*t);</div>
<div class="line"><a id="l03286" name="l03286"></a><span class="lineno"> 3286</span> t += dt;</div>
<div class="line"><a id="l03287" name="l03287"></a><span class="lineno"> 3287</span> }</div>
<div class="line"><a id="l03288" name="l03288"></a><span class="lineno"> 3288</span> </div>
<div class="line"><a id="l03289" name="l03289"></a><span class="lineno"> 3289</span> <span class="comment">// solve the volterra equation (trapezoid integration)</span></div>
<div class="line"><a id="l03290" name="l03290"></a><span class="lineno"> 3290</span> <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>[0]=p0exp[0];</div>
<div class="line"><a id="l03291" name="l03291"></a><span class="lineno"> 3291</span> </div>
<div class="line"><a id="l03292" name="l03292"></a><span class="lineno"> 3292</span> Double_t sum;</div>
<div class="line"><a id="l03293" name="l03293"></a><span class="lineno"> 3293</span> Double_t a;</div>
<div class="line"><a id="l03294" name="l03294"></a><span class="lineno"> 3294</span> Double_t preFactor = dt*val[2];</div>
<div class="line"><a id="l03295" name="l03295"></a><span class="lineno"> 3295</span> <span class="keywordflow">for</span> (UInt_t i=1; i&lt;N; i++) {</div>
<div class="line"><a id="l03296" name="l03296"></a><span class="lineno"> 3296</span> sum = p0exp[i];</div>
<div class="line"><a id="l03297" name="l03297"></a><span class="lineno"> 3297</span> sum += 0.5*preFactor*p0exp[i]*<a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>[0];</div>
<div class="line"><a id="l03298" name="l03298"></a><span class="lineno"> 3298</span> <span class="keywordflow">for</span> (UInt_t j=1; j&lt;i; j++) {</div>
<div class="line"><a id="l03299" name="l03299"></a><span class="lineno"> 3299</span> sum += preFactor*p0exp[i-j]*<a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>[j];</div>
<div class="line"><a id="l03300" name="l03300"></a><span class="lineno"> 3300</span> }</div>
<div class="line"><a id="l03301" name="l03301"></a><span class="lineno"> 3301</span> a = 1.0-0.5*preFactor*p0exp[0];</div>
<div class="line"><a id="l03302" name="l03302"></a><span class="lineno"> 3302</span> </div>
<div class="line"><a id="l03303" name="l03303"></a><span class="lineno"> 3303</span> <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>[i]=sum/a;</div>
<div class="line"><a id="l03304" name="l03304"></a><span class="lineno"> 3304</span> }</div>
<div class="line"><a id="l03305" name="l03305"></a><span class="lineno"> 3305</span> </div>
<div class="line"><a id="l03306" name="l03306"></a><span class="lineno"> 3306</span> <span class="comment">// clean up</span></div>
<div class="line"><a id="l03307" name="l03307"></a><span class="lineno"> 3307</span> p0exp.clear();</div>
<div class="line"><a id="l03308" name="l03308"></a><span class="lineno"> 3308</span>}</div>
<div class="line"><a id="l03309" name="l03309"></a><span class="lineno"> 3309</span> </div>
<div class="line"><a id="l03310" name="l03310"></a><span class="lineno"> 3310</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03318" name="l03318"></a><span class="lineno"> 3318</span>Double_t <a class="code hl_function" href="classPTheory.html#afbefd7086854bfb72f02b95f3b22bdcd">PTheory::GetDynKTLFValue</a>(<span class="keyword">const</span> Double_t t)<span class="keyword"> const</span></div>
<div class="line"><a id="l03319" name="l03319"></a><span class="lineno"> 3319</span><span class="keyword"></span>{</div>
<div class="line"><a id="l03320" name="l03320"></a><span class="lineno"> 3320</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l03321" name="l03321"></a><span class="lineno"> 3321</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l03322" name="l03322"></a><span class="lineno"> 3322</span> </div>
<div class="line"><a id="l03323" name="l03323"></a><span class="lineno"> 3323</span> UInt_t idx = <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(t/<a class="code hl_variable" href="classPTheory.html#a206a0d0f432f8f581e718451a90c2e47">fDynLFdt</a>);</div>
<div class="line"><a id="l03324" name="l03324"></a><span class="lineno"> 3324</span> </div>
<div class="line"><a id="l03325" name="l03325"></a><span class="lineno"> 3325</span> <span class="keywordflow">if</span> (idx + 2 &gt; <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>.size())</div>
<div class="line"><a id="l03326" name="l03326"></a><span class="lineno"> 3326</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>.back();</div>
<div class="line"><a id="l03327" name="l03327"></a><span class="lineno"> 3327</span> </div>
<div class="line"><a id="l03328" name="l03328"></a><span class="lineno"> 3328</span> <span class="comment">// linearly interpolate between the two relevant function bins</span></div>
<div class="line"><a id="l03329" name="l03329"></a><span class="lineno"> 3329</span> Double_t df = (<a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>[idx+1]-<a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>[idx])*(t/<a class="code hl_variable" href="classPTheory.html#a206a0d0f432f8f581e718451a90c2e47">fDynLFdt</a>-<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(idx));</div>
<div class="line"><a id="l03330" name="l03330"></a><span class="lineno"> 3330</span> </div>
<div class="line"><a id="l03331" name="l03331"></a><span class="lineno"> 3331</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">fDynLFFuncValue</a>[idx]+df;</div>
<div class="line"><a id="l03332" name="l03332"></a><span class="lineno"> 3332</span>}</div>
<div class="line"><a id="l03333" name="l03333"></a><span class="lineno"> 3333</span> </div>
<div class="line"><a id="l03334" name="l03334"></a><span class="lineno"> 3334</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03342" name="l03342"></a><span class="lineno"> 3342</span>Double_t <a class="code hl_function" href="classPTheory.html#ab5cf3eb3c9aa8bb22d98597fd6a244e6">PTheory::GetDyn_GL_KTLFValue</a>(<span class="keyword">const</span> Double_t t)<span class="keyword"> const</span></div>
<div class="line"><a id="l03343" name="l03343"></a><span class="lineno"> 3343</span><span class="keyword"></span>{</div>
<div class="line"><a id="l03344" name="l03344"></a><span class="lineno"> 3344</span> <span class="keywordflow">if</span> (t &lt; 0.0)</div>
<div class="line"><a id="l03345" name="l03345"></a><span class="lineno"> 3345</span> <span class="keywordflow">return</span> 1.0;</div>
<div class="line"><a id="l03346" name="l03346"></a><span class="lineno"> 3346</span> </div>
<div class="line"><a id="l03347" name="l03347"></a><span class="lineno"> 3347</span> <span class="keyword">const</span> Double_t dt=0.001; <span class="comment">// 1ns</span></div>
<div class="line"><a id="l03348" name="l03348"></a><span class="lineno"> 3348</span> UInt_t idx = <span class="keyword">static_cast&lt;</span>UInt_t<span class="keyword">&gt;</span>(t/dt);</div>
<div class="line"><a id="l03349" name="l03349"></a><span class="lineno"> 3349</span> </div>
<div class="line"><a id="l03350" name="l03350"></a><span class="lineno"> 3350</span> <span class="keywordflow">if</span> (idx + 2 &gt; <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>.size())</div>
<div class="line"><a id="l03351" name="l03351"></a><span class="lineno"> 3351</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>.back();</div>
<div class="line"><a id="l03352" name="l03352"></a><span class="lineno"> 3352</span> </div>
<div class="line"><a id="l03353" name="l03353"></a><span class="lineno"> 3353</span> <span class="comment">// linearly interpolate between the two relevant function bins</span></div>
<div class="line"><a id="l03354" name="l03354"></a><span class="lineno"> 3354</span> Double_t df = (<a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>[idx+1]-<a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>[idx])*(t/dt-<span class="keyword">static_cast&lt;</span>Double_t<span class="keyword">&gt;</span>(idx));</div>
<div class="line"><a id="l03355" name="l03355"></a><span class="lineno"> 3355</span> </div>
<div class="line"><a id="l03356" name="l03356"></a><span class="lineno"> 3356</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">fDyn_GL_LFFuncValue</a>[idx]+df;</div>
<div class="line"><a id="l03357" name="l03357"></a><span class="lineno"> 3357</span>}</div>
<div class="line"><a id="l03358" name="l03358"></a><span class="lineno"> 3358</span> </div>
<div class="line"><a id="l03359" name="l03359"></a><span class="lineno"> 3359</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03373" name="l03373"></a><span class="lineno"> 3373</span>Double_t <a class="code hl_function" href="classPTheory.html#ae431d544feaad24170d4ef0a3c9e0722">PTheory::MuMinusExpTF</a>(Double_t t, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; paramValues, <span class="keyword">const</span> <a class="code hl_typedef" href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a>&amp; funcValues)<span class="keyword"> const</span></div>
<div class="line"><a id="l03374" name="l03374"></a><span class="lineno"> 3374</span><span class="keyword"></span>{</div>
<div class="line"><a id="l03375" name="l03375"></a><span class="lineno"> 3375</span> <span class="comment">// expected parameters: N0 tau A lambda phase frequency [tshift]</span></div>
<div class="line"><a id="l03376" name="l03376"></a><span class="lineno"> 3376</span> </div>
<div class="line"><a id="l03377" name="l03377"></a><span class="lineno"> 3377</span> Double_t val[7];</div>
<div class="line"><a id="l03378" name="l03378"></a><span class="lineno"> 3378</span> </div>
<div class="line"><a id="l03379" name="l03379"></a><span class="lineno"> 3379</span> assert(<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() &lt;= 7);</div>
<div class="line"><a id="l03380" name="l03380"></a><span class="lineno"> 3380</span> </div>
<div class="line"><a id="l03381" name="l03381"></a><span class="lineno"> 3381</span> <span class="comment">// check if FUNCTIONS are used</span></div>
<div class="line"><a id="l03382" name="l03382"></a><span class="lineno"> 3382</span> <span class="keywordflow">for</span> (UInt_t i=0; i&lt;<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size(); i++) {</div>
<div class="line"><a id="l03383" name="l03383"></a><span class="lineno"> 3383</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i] &lt; <a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>) { <span class="comment">// parameter or resolved map</span></div>
<div class="line"><a id="l03384" name="l03384"></a><span class="lineno"> 3384</span> val[i] = paramValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]];</div>
<div class="line"><a id="l03385" name="l03385"></a><span class="lineno"> 3385</span> } <span class="keywordflow">else</span> { <span class="comment">// function</span></div>
<div class="line"><a id="l03386" name="l03386"></a><span class="lineno"> 3386</span> val[i] = funcValues[<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>[i]-<a class="code hl_define" href="PMusr_8h.html#a58290ad50dd925e4fb7fad90c8072215">MSR_PARAM_FUN_OFFSET</a>];</div>
<div class="line"><a id="l03387" name="l03387"></a><span class="lineno"> 3387</span> }</div>
<div class="line"><a id="l03388" name="l03388"></a><span class="lineno"> 3388</span> }</div>
<div class="line"><a id="l03389" name="l03389"></a><span class="lineno"> 3389</span> </div>
<div class="line"><a id="l03390" name="l03390"></a><span class="lineno"> 3390</span> Double_t tt;</div>
<div class="line"><a id="l03391" name="l03391"></a><span class="lineno"> 3391</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">fParamNo</a>.size() == 6) <span class="comment">// no tshift</span></div>
<div class="line"><a id="l03392" name="l03392"></a><span class="lineno"> 3392</span> tt = t;</div>
<div class="line"><a id="l03393" name="l03393"></a><span class="lineno"> 3393</span> <span class="keywordflow">else</span> <span class="comment">// tshift present</span></div>
<div class="line"><a id="l03394" name="l03394"></a><span class="lineno"> 3394</span> tt = t-val[6];</div>
<div class="line"><a id="l03395" name="l03395"></a><span class="lineno"> 3395</span> </div>
<div class="line"><a id="l03396" name="l03396"></a><span class="lineno"> 3396</span> <span class="keywordflow">return</span> val[0]*exp(-tt/val[1])*(1.0+val[2]*exp(-val[3]*tt)*cos(<a class="code hl_define" href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a>*val[5]*tt+<a class="code hl_define" href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a>*val[4]));</div>
<div class="line"><a id="l03397" name="l03397"></a><span class="lineno"> 3397</span>}</div>
<div class="line"><a id="l03398" name="l03398"></a><span class="lineno"> 3398</span> </div>
<div class="line"><a id="l03399" name="l03399"></a><span class="lineno"> 3399</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="line"><a id="l03400" name="l03400"></a><span class="lineno"> 3400</span><span class="comment">// END</span></div>
<div class="line"><a id="l03401" name="l03401"></a><span class="lineno"> 3401</span><span class="comment">//--------------------------------------------------------------------------</span></div>
<div class="ttc" id="aPMsrHandler_8h_html"><div class="ttname"><a href="PMsrHandler_8h.html">PMsrHandler.h</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_a88b0f32c26fd54bdacfbef77212d951d"><div class="ttname"><a href="PMusr_8h.html#a88b0f32c26fd54bdacfbef77212d951d">PMsrLines</a></div><div class="ttdeci">std::vector&lt; PMsrLineStructure &gt; PMsrLines</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00982">PMusr.h:982</a></div></div>
<div class="ttc" id="aPMusr_8h_html_aa9c3d2033e27c38e4dbb98e26f1c4e54"><div class="ttname"><a href="PMusr_8h.html#aa9c3d2033e27c38e4dbb98e26f1c4e54">PIntVector</a></div><div class="ttdeci">std::vector&lt; Int_t &gt; PIntVector</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00367">PMusr.h:367</a></div></div>
<div class="ttc" id="aPMusr_8h_html_ae689e7a4bf8a9c0ecf65bcd7d4a0ebde"><div class="ttname"><a href="PMusr_8h.html#ae689e7a4bf8a9c0ecf65bcd7d4a0ebde">PDoubleVector</a></div><div class="ttdeci">std::vector&lt; Double_t &gt; PDoubleVector</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00385">PMusr.h:385</a></div></div>
<div class="ttc" id="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="aPTheory_8cpp_html_a003c5aa531d7a1fd21bfcfb3526d9f27"><div class="ttname"><a href="PTheory_8cpp.html#a003c5aa531d7a1fd21bfcfb3526d9f27">gGlobalUserFcn</a></div><div class="ttdeci">std::vector&lt; void * &gt; gGlobalUserFcn</div><div class="ttdoc">Global storage for user function objects requiring persistent state.</div><div class="ttdef"><b>Definition</b> <a href="PUserFcnBase_8cpp_source.html#l00155">PUserFcnBase.cpp:155</a></div></div>
<div class="ttc" id="aPTheory_8cpp_html_a204175c725ee19858dedec2865d490b8"><div class="ttname"><a href="PTheory_8cpp.html#a204175c725ee19858dedec2865d490b8">SQRT_PI</a></div><div class="ttdeci">#define SQRT_PI</div><div class="ttdef"><b>Definition</b> <a href="#l00048">PTheory.cpp:48</a></div></div>
<div class="ttc" id="aPTheory_8cpp_html_a907d8d6dcc4c26245a296a6dadf477c1"><div class="ttname"><a href="PTheory_8cpp.html#a907d8d6dcc4c26245a296a6dadf477c1">SQRT_TWO</a></div><div class="ttdeci">#define SQRT_TWO</div><div class="ttdef"><b>Definition</b> <a href="#l00047">PTheory.cpp:47</a></div></div>
<div class="ttc" id="aPTheory_8h_html"><div class="ttname"><a href="PTheory_8h.html">PTheory.h</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a066ae70866d9dba13e2b963be9fabd20"><div class="ttname"><a href="PTheory_8h.html#a066ae70866d9dba13e2b963be9fabd20">fgTheoDataBase</a></div><div class="ttdeci">static PTheoDataBase fgTheoDataBase[THEORY_MAX]</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00240">PTheory.h:240</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a0fa28d9c46e7156f542c9897d463cbad"><div class="ttname"><a href="PTheory_8h.html#a0fa28d9c46e7156f542c9897d463cbad">THEORY_GENERAL_EXP</a></div><div class="ttdeci">#define THEORY_GENERAL_EXP</div><div class="ttdoc">General exponential relaxation: exp(-(λt)^β)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00070">PTheory.h:70</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a1667e6402dc1a7506b5738344311871f"><div class="ttname"><a href="PTheory_8h.html#a1667e6402dc1a7506b5738344311871f">THEORY_DYNAMIC_LORENTZ_KT_LF</a></div><div class="ttdeci">#define THEORY_DYNAMIC_LORENTZ_KT_LF</div><div class="ttdoc">Dynamic Lorentzian Kubo-Toyabe in longitudinal field.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00084">PTheory.h:84</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a1a2e06835dd7ea1493b8298ffe9c1d1f"><div class="ttname"><a href="PTheory_8h.html#a1a2e06835dd7ea1493b8298ffe9c1d1f">THEORY_RANDOM_ANISOTROPIC_HYPERFINE</a></div><div class="ttdeci">#define THEORY_RANDOM_ANISOTROPIC_HYPERFINE</div><div class="ttdoc">Random anisotropic hyperfine coupling.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00098">PTheory.h:98</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a1c4b962bf6a3a7925fe8a6b38dcd6e1f"><div class="ttname"><a href="PTheory_8h.html#a1c4b962bf6a3a7925fe8a6b38dcd6e1f">THEORY_CONST</a></div><div class="ttdeci">#define THEORY_CONST</div><div class="ttdoc">Constant value (baseline, background)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00064">PTheory.h:64</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a1e9a52e292e7af6a5c720a268c2b2691"><div class="ttname"><a href="PTheory_8h.html#a1e9a52e292e7af6a5c720a268c2b2691">THEORY_DYNAMIC_GAUSS_KT_LF</a></div><div class="ttdeci">#define THEORY_DYNAMIC_GAUSS_KT_LF</div><div class="ttdoc">Dynamic Gaussian Kubo-Toyabe in longitudinal field.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00078">PTheory.h:78</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a20651a33a3fecea08ddc8419f79d2ef8"><div class="ttname"><a href="PTheory_8h.html#a20651a33a3fecea08ddc8419f79d2ef8">THEORY_ABRAGAM</a></div><div class="ttdeci">#define THEORY_ABRAGAM</div><div class="ttdoc">Abragam relaxation function (diffusion)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00100">PTheory.h:100</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a212460e743fecb084d717bb2180c5a56"><div class="ttname"><a href="PTheory_8h.html#a212460e743fecb084d717bb2180c5a56">DEG_TO_RAD</a></div><div class="ttdeci">#define DEG_TO_RAD</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00202">PTheory.h:202</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a21950bbfaced68e161da531cb886e273"><div class="ttname"><a href="PTheory_8h.html#a21950bbfaced68e161da531cb886e273">THEORY_ASYMMETRY</a></div><div class="ttdeci">#define THEORY_ASYMMETRY</div><div class="ttdoc">Initial asymmetry (multiplicative factor)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00066">PTheory.h:66</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a2a760199e37bbd093f4cfbea0bfbb7e6"><div class="ttname"><a href="PTheory_8h.html#a2a760199e37bbd093f4cfbea0bfbb7e6">THEORY_SIMPLE_GAUSS</a></div><div class="ttdeci">#define THEORY_SIMPLE_GAUSS</div><div class="ttdoc">Simple Gaussian relaxation: exp(-σ²t²/2)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00072">PTheory.h:72</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a340acd5ee00788eb3593819b7ff53c7a"><div class="ttname"><a href="PTheory_8h.html#a340acd5ee00788eb3593819b7ff53c7a">THEORY_STATIC_ZF_NK</a></div><div class="ttdeci">#define THEORY_STATIC_ZF_NK</div><div class="ttdoc">Static Nakajima zero-field function.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00116">PTheory.h:116</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a3b947f4b635461030ff2d87833e5049e"><div class="ttname"><a href="PTheory_8h.html#a3b947f4b635461030ff2d87833e5049e">TWO_PI</a></div><div class="ttdeci">#define TWO_PI</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00210">PTheory.h:210</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a4a76a5fa9874e18fdb4cc3091dd50b6c"><div class="ttname"><a href="PTheory_8h.html#a4a76a5fa9874e18fdb4cc3091dd50b6c">THEORY_MU_MINUS_EXP</a></div><div class="ttdeci">#define THEORY_MU_MINUS_EXP</div><div class="ttdoc">Negative muon (μ-) exponential TF decay.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00126">PTheory.h:126</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a50dd1b1c343ffbde509878c1ad5c6be3"><div class="ttname"><a href="PTheory_8h.html#a50dd1b1c343ffbde509878c1ad5c6be3">THEORY_SIMPLE_EXP</a></div><div class="ttdeci">#define THEORY_SIMPLE_EXP</div><div class="ttdoc">Simple exponential relaxation: exp(-λt)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00068">PTheory.h:68</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a545ee3335eb250cd7cf19e2ef1b61c0a"><div class="ttname"><a href="PTheory_8h.html#a545ee3335eb250cd7cf19e2ef1b61c0a">THEORY_INTERNAL_BESSEL</a></div><div class="ttdeci">#define THEORY_INTERNAL_BESSEL</div><div class="ttdoc">Internal Bessel (field distribution with Bessel)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00112">PTheory.h:112</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a54ce92f9f7c92e18633ed5ba3de4994a"><div class="ttname"><a href="PTheory_8h.html#a54ce92f9f7c92e18633ed5ba3de4994a">THEORY_SPIN_GLASS</a></div><div class="ttdeci">#define THEORY_SPIN_GLASS</div><div class="ttdoc">Spin glass order parameter function.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00096">PTheory.h:96</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a5735489ca2a1f29831bbcf346f288f1d"><div class="ttname"><a href="PTheory_8h.html#a5735489ca2a1f29831bbcf346f288f1d">THEORY_STATIC_GAUSS_KT</a></div><div class="ttdeci">#define THEORY_STATIC_GAUSS_KT</div><div class="ttdoc">Static Gaussian Kubo-Toyabe (zero-field)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00074">PTheory.h:74</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a5804e118e0acd4b9ce13661b1170d081"><div class="ttname"><a href="PTheory_8h.html#a5804e118e0acd4b9ce13661b1170d081">THEORY_DYNAMIC_ZF_NK</a></div><div class="ttdeci">#define THEORY_DYNAMIC_ZF_NK</div><div class="ttdoc">Dynamic Nakajima zero-field function.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00120">PTheory.h:120</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a5875617e42c9a8cc05bddc797776e710"><div class="ttname"><a href="PTheory_8h.html#a5875617e42c9a8cc05bddc797776e710">THEORY_TF_COS</a></div><div class="ttdeci">#define THEORY_TF_COS</div><div class="ttdoc">Transverse field cosine precession.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00102">PTheory.h:102</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a59c3ee4ee03bd01ce7c4f9a4b64c38bb"><div class="ttname"><a href="PTheory_8h.html#a59c3ee4ee03bd01ce7c4f9a4b64c38bb">THEORY_UNDEFINED</a></div><div class="ttdeci">#define THEORY_UNDEFINED</div><div class="ttdoc">Undefined or invalid theory function.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00062">PTheory.h:62</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a5ff0b0d39d64d6cc3d63bade14466a1b"><div class="ttname"><a href="PTheory_8h.html#a5ff0b0d39d64d6cc3d63bade14466a1b">THEORY_POLYNOM</a></div><div class="ttdeci">#define THEORY_POLYNOM</div><div class="ttdoc">Polynomial function (arbitrary order)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00128">PTheory.h:128</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a65bacde87fa33c016f3748156e45e8f9"><div class="ttname"><a href="PTheory_8h.html#a65bacde87fa33c016f3748156e45e8f9">THEORY_STATIC_GAUSS_KT_LF</a></div><div class="ttdeci">#define THEORY_STATIC_GAUSS_KT_LF</div><div class="ttdoc">Static Gaussian Kubo-Toyabe in longitudinal field.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00076">PTheory.h:76</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a67cd9941e76442343691ee3fbd6bf510"><div class="ttname"><a href="PTheory_8h.html#a67cd9941e76442343691ee3fbd6bf510">THEORY_INTERNAL_FIELD_LARKIN</a></div><div class="ttdeci">#define THEORY_INTERNAL_FIELD_LARKIN</div><div class="ttdoc">Internal field (Larkin-Ovchinnikov model)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00108">PTheory.h:108</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a6bee45adf227233d2fbe363ecdd77b2b"><div class="ttname"><a href="PTheory_8h.html#a6bee45adf227233d2fbe363ecdd77b2b">THEORY_DYNAMIC_GAULOR_FAST_KT_ZF</a></div><div class="ttdeci">#define THEORY_DYNAMIC_GAULOR_FAST_KT_ZF</div><div class="ttdoc">Fast dynamic Gauss-Lorentz Kubo-Toyabe (zero-field)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00086">PTheory.h:86</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a6f0db5546d80e016d901aaaccde43daa"><div class="ttname"><a href="PTheory_8h.html#a6f0db5546d80e016d901aaaccde43daa">THEORY_INTERNAL_FIELD</a></div><div class="ttdeci">#define THEORY_INTERNAL_FIELD</div><div class="ttdoc">Internal magnetic field distribution (superconductors)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00104">PTheory.h:104</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a7387fa75781eaa3dd7efacdfa0f9809e"><div class="ttname"><a href="PTheory_8h.html#a7387fa75781eaa3dd7efacdfa0f9809e">THEORY_INTERNAL_FIELD_KORNILOV</a></div><div class="ttdeci">#define THEORY_INTERNAL_FIELD_KORNILOV</div><div class="ttdoc">Internal field (Kornilov vortex lattice model)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00106">PTheory.h:106</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a7bb987a6b4927c25ab86dcf87d65a7ae"><div class="ttname"><a href="PTheory_8h.html#a7bb987a6b4927c25ab86dcf87d65a7ae">THEORY_DYNAMIC_TF_NK</a></div><div class="ttdeci">#define THEORY_DYNAMIC_TF_NK</div><div class="ttdoc">Dynamic Nakajima transverse field function.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00122">PTheory.h:122</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a86aff503a459f7c9a1d31205ce537cc7"><div class="ttname"><a href="PTheory_8h.html#a86aff503a459f7c9a1d31205ce537cc7">THEORY_MAX</a></div><div class="ttdeci">#define THEORY_MAX</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00183">PTheory.h:183</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a93d57cc2e7aee24c9f3353b50ef78ba8"><div class="ttname"><a href="PTheory_8h.html#a93d57cc2e7aee24c9f3353b50ef78ba8">THEORY_BESSEL</a></div><div class="ttdeci">#define THEORY_BESSEL</div><div class="ttdoc">Bessel function (modulated precession)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00110">PTheory.h:110</a></div></div>
<div class="ttc" id="aPTheory_8h_html_a9e8dae1e660cfd060df77f88e64dd04c"><div class="ttname"><a href="PTheory_8h.html#a9e8dae1e660cfd060df77f88e64dd04c">THEORY_STATIC_TF_NK</a></div><div class="ttdeci">#define THEORY_STATIC_TF_NK</div><div class="ttdoc">Static Nakajima transverse field function.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00118">PTheory.h:118</a></div></div>
<div class="ttc" id="aPTheory_8h_html_aa1694bd7aad1dcbbc6e5ba39805e9642"><div class="ttname"><a href="PTheory_8h.html#aa1694bd7aad1dcbbc6e5ba39805e9642">THEORY_DYNAMIC_GAULOR_FAST_KT_LF</a></div><div class="ttdeci">#define THEORY_DYNAMIC_GAULOR_FAST_KT_LF</div><div class="ttdoc">Fast dynamic Gauss-Lorentz Kubo-Toyabe in longitudinal field.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00088">PTheory.h:88</a></div></div>
<div class="ttc" id="aPTheory_8h_html_aa4938409d6eb59d61b6ae141bb89e8bd"><div class="ttname"><a href="PTheory_8h.html#aa4938409d6eb59d61b6ae141bb89e8bd">THEORY_STR_KT</a></div><div class="ttdeci">#define THEORY_STR_KT</div><div class="ttdoc">Stretched Kubo-Toyabe relaxation.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00094">PTheory.h:94</a></div></div>
<div class="ttc" id="aPTheory_8h_html_aaf0e563f0c38d32806754c2d43e8de79"><div class="ttname"><a href="PTheory_8h.html#aaf0e563f0c38d32806754c2d43e8de79">THEORY_F_MU_F</a></div><div class="ttdeci">#define THEORY_F_MU_F</div><div class="ttdoc">F-μ-F (μ-fluorine) oscillation.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00124">PTheory.h:124</a></div></div>
<div class="ttc" id="aPTheory_8h_html_abf798eb53f9e66ca14b37930bb48c43f"><div class="ttname"><a href="PTheory_8h.html#abf798eb53f9e66ca14b37930bb48c43f">THEORY_STATIC_LORENTZ_KT</a></div><div class="ttdeci">#define THEORY_STATIC_LORENTZ_KT</div><div class="ttdoc">Static Lorentzian Kubo-Toyabe (zero-field)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00080">PTheory.h:80</a></div></div>
<div class="ttc" id="aPTheory_8h_html_abffa2911fef01b9acc49bcd36c0c614d"><div class="ttname"><a href="PTheory_8h.html#abffa2911fef01b9acc49bcd36c0c614d">THEORY_MAX_PARAM</a></div><div class="ttdeci">#define THEORY_MAX_PARAM</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00192">PTheory.h:192</a></div></div>
<div class="ttc" id="aPTheory_8h_html_ac75bdc062fc362eb1f77f7d8bb559709"><div class="ttname"><a href="PTheory_8h.html#ac75bdc062fc362eb1f77f7d8bb559709">THEORY_USER_FCN</a></div><div class="ttdeci">#define THEORY_USER_FCN</div><div class="ttdoc">User-defined external function (shared library)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00130">PTheory.h:130</a></div></div>
<div class="ttc" id="aPTheory_8h_html_acb5fed62cfa070ac90cfd4338dff2e01"><div class="ttname"><a href="PTheory_8h.html#acb5fed62cfa070ac90cfd4338dff2e01">THEORY_SKEWED_GAUSS</a></div><div class="ttdeci">#define THEORY_SKEWED_GAUSS</div><div class="ttdoc">Skewed Gaussian relaxation (asymmetric rates)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00114">PTheory.h:114</a></div></div>
<div class="ttc" id="aPTheory_8h_html_ae66296baf270bb32ddd626e470446f87"><div class="ttname"><a href="PTheory_8h.html#ae66296baf270bb32ddd626e470446f87">THEORY_COMBI_LGKT</a></div><div class="ttdeci">#define THEORY_COMBI_LGKT</div><div class="ttdoc">Combined Lorentzian-Gaussian Kubo-Toyabe.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00092">PTheory.h:92</a></div></div>
<div class="ttc" id="aPTheory_8h_html_af25bfdde66204ba0e79f5e900e7ea665"><div class="ttname"><a href="PTheory_8h.html#af25bfdde66204ba0e79f5e900e7ea665">THEORY_DYNAMIC_GAULOR_KT_LF</a></div><div class="ttdeci">#define THEORY_DYNAMIC_GAULOR_KT_LF</div><div class="ttdoc">Dynamic Gauss-Lorentz Kubo-Toyabe in longitudinal field.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00090">PTheory.h:90</a></div></div>
<div class="ttc" id="aPTheory_8h_html_afcb6f0dfa7b27c3a822b5573417c707c"><div class="ttname"><a href="PTheory_8h.html#afcb6f0dfa7b27c3a822b5573417c707c">THEORY_STATIC_LORENTZ_KT_LF</a></div><div class="ttdeci">#define THEORY_STATIC_LORENTZ_KT_LF</div><div class="ttdoc">Static Lorentzian Kubo-Toyabe in longitudinal field.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00082">PTheory.h:82</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_a8e7c43e94adb005bd55727422e99bcf6"><div class="ttname"><a href="classPMsrHandler.html#a8e7c43e94adb005bd55727422e99bcf6">PMsrHandler::GetMsrTheory</a></div><div class="ttdeci">virtual PMsrLines * GetMsrTheory()</div><div class="ttdoc">Returns pointer to THEORY block lines.</div><div class="ttdef"><b>Definition</b> <a href="PMsrHandler_8h_source.html#l00177">PMsrHandler.h:177</a></div></div>
<div class="ttc" id="aclassPMsrHandler_html_a91ee12241aaa131ec1cfccd3e21dc18c"><div class="ttname"><a href="classPMsrHandler.html#a91ee12241aaa131ec1cfccd3e21dc18c">PMsrHandler::GetMsrRunList</a></div><div class="ttdeci">virtual PMsrRunList * GetMsrRunList()</div><div class="ttdoc">Returns pointer to list of RUN blocks.</div><div class="ttdef"><b>Definition</b> <a href="PMsrHandler_8h_source.html#l00183">PMsrHandler.h:183</a></div></div>
<div class="ttc" id="aclassPMsrHandler_html_ac2f5d112f2ca66af7e4fed8614f8cfbd"><div class="ttname"><a href="classPMsrHandler.html#ac2f5d112f2ca66af7e4fed8614f8cfbd">PMsrHandler::GetFuncIndex</a></div><div class="ttdeci">virtual UInt_t GetFuncIndex(Int_t funNo)</div><div class="ttdef"><b>Definition</b> <a href="PMsrHandler_8h_source.html#l00313">PMsrHandler.h:313</a></div></div>
<div class="ttc" id="aclassPTheory_html_a03bd0458d6c25973450b36193691ed2a"><div class="ttname"><a href="classPTheory.html#a03bd0458d6c25973450b36193691ed2a">PTheory::DynamicGauLorKTLF</a></div><div class="ttdeci">virtual Double_t DynamicGauLorKTLF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Dynamic Gaussian-Lorentzian KT (LF). Full numerical calculation.</div><div class="ttdef"><b>Definition</b> <a href="#l01954">PTheory.cpp:1954</a></div></div>
<div class="ttc" id="aclassPTheory_html_a0a8d9245b191d7777e19b501ec450e79"><div class="ttname"><a href="classPTheory.html#a0a8d9245b191d7777e19b501ec450e79">PTheory::~PTheory</a></div><div class="ttdeci">virtual ~PTheory()</div><div class="ttdoc">Destructor that recursively cleans up the expression tree.</div><div class="ttdef"><b>Definition</b> <a href="#l00375">PTheory.cpp:375</a></div></div>
<div class="ttc" id="aclassPTheory_html_a10c8cb04d11bfa98d1218ec4f742a295"><div class="ttname"><a href="classPTheory.html#a10c8cb04d11bfa98d1218ec4f742a295">PTheory::Constant</a></div><div class="ttdeci">virtual Double_t Constant(const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Returns constant value. Formula: c.</div><div class="ttdef"><b>Definition</b> <a href="#l01152">PTheory.cpp:1152</a></div></div>
<div class="ttc" id="aclassPTheory_html_a13b41bea368eebeee597fe0693c36c13"><div class="ttname"><a href="classPTheory.html#a13b41bea368eebeee597fe0693c36c13">PTheory::Abragam</a></div><div class="ttdeci">virtual Double_t Abragam(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Abragam relaxation. Motional narrowing formula.</div><div class="ttdef"><b>Definition</b> <a href="#l02274">PTheory.cpp:2274</a></div></div>
<div class="ttc" id="aclassPTheory_html_a162fdcf419f2285a05766fa75fc4badd"><div class="ttname"><a href="classPTheory.html#a162fdcf419f2285a05766fa75fc4badd">PTheory::CalculateGaussLFIntegral</a></div><div class="ttdeci">virtual void CalculateGaussLFIntegral(const Double_t *val) const</div><div class="ttdoc">Calculates and caches Gaussian LF integral for static KT.</div></div>
<div class="ttc" id="aclassPTheory_html_a1877cbedb79f76a10b98f0a47a9c3db7"><div class="ttname"><a href="classPTheory.html#a1877cbedb79f76a10b98f0a47a9c3db7">PTheory::fValid</a></div><div class="ttdeci">Bool_t fValid</div><div class="ttdoc">True if this theory node and its parse state are valid.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00633">PTheory.h:633</a></div></div>
<div class="ttc" id="aclassPTheory_html_a1d5877643d71ceb9108a3192672f1256"><div class="ttname"><a href="classPTheory.html#a1d5877643d71ceb9108a3192672f1256">PTheory::fAdd</a></div><div class="ttdeci">PTheory * fAdd</div><div class="ttdoc">Pointer to addition child node (left branch of tree)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00637">PTheory.h:637</a></div></div>
<div class="ttc" id="aclassPTheory_html_a1f3f55a7d197f9c621fecd116657f159"><div class="ttname"><a href="classPTheory.html#a1f3f55a7d197f9c621fecd116657f159">PTheory::MakeCleanAndTidyPolynom</a></div><div class="ttdeci">virtual void MakeCleanAndTidyPolynom(UInt_t i, PMsrLines *fullTheoryBlock)</div><div class="ttdoc">Formats a polynomial theory line with proper spacing.</div><div class="ttdef"><b>Definition</b> <a href="#l01040">PTheory.cpp:1040</a></div></div>
<div class="ttc" id="aclassPTheory_html_a206a0d0f432f8f581e718451a90c2e47"><div class="ttname"><a href="classPTheory.html#a206a0d0f432f8f581e718451a90c2e47">PTheory::fDynLFdt</a></div><div class="ttdeci">Double_t fDynLFdt</div><div class="ttdoc">Time step for dynamic LF integral equation.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00653">PTheory.h:653</a></div></div>
<div class="ttc" id="aclassPTheory_html_a2261ffd3f1d028766f98ef8382750535"><div class="ttname"><a href="classPTheory.html#a2261ffd3f1d028766f98ef8382750535">PTheory::fUserFcn</a></div><div class="ttdeci">PUserFcnBase * fUserFcn</div><div class="ttdoc">Pointer to instantiated user function object.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00644">PTheory.h:644</a></div></div>
<div class="ttc" id="aclassPTheory_html_a227b713015c7feece87f4a84d3df4168"><div class="ttname"><a href="classPTheory.html#a227b713015c7feece87f4a84d3df4168">PTheory::fUserParam</a></div><div class="ttdeci">PDoubleVector fUserParam</div><div class="ttdoc">Resolved parameter values for user function calls.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00645">PTheory.h:645</a></div></div>
<div class="ttc" id="aclassPTheory_html_a249af67baeb38ac226cc28c9a172f622"><div class="ttname"><a href="classPTheory.html#a249af67baeb38ac226cc28c9a172f622">PTheory::GetUserFcnIdx</a></div><div class="ttdeci">virtual Int_t GetUserFcnIdx(UInt_t lineNo) const</div><div class="ttdoc">Returns the index of user functions up to the given line.</div><div class="ttdef"><b>Definition</b> <a href="#l00896">PTheory.cpp:896</a></div></div>
<div class="ttc" id="aclassPTheory_html_a25c32f4daa2a96461d1bf4ee84138ccc"><div class="ttname"><a href="classPTheory.html#a25c32f4daa2a96461d1bf4ee84138ccc">PTheory::fSamplingTime</a></div><div class="ttdeci">Double_t fSamplingTime</div><div class="ttdoc">Time step for LF integral calculation (default 1 ns = 0.001 μs)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00650">PTheory.h:650</a></div></div>
<div class="ttc" id="aclassPTheory_html_a261d59fce8fe8f1d94bffd7db5871ec2"><div class="ttname"><a href="classPTheory.html#a261d59fce8fe8f1d94bffd7db5871ec2">PTheory::PTheory</a></div><div class="ttdeci">PTheory(PMsrHandler *msrInfo, UInt_t runNo, const Bool_t hasParent=false)</div><div class="ttdoc">Constructor that parses the THEORY block and builds the expression tree.</div><div class="ttdef"><b>Definition</b> <a href="#l00125">PTheory.cpp:125</a></div></div>
<div class="ttc" id="aclassPTheory_html_a2677ed739e48737f07028b7f3d3c5f63"><div class="ttname"><a href="classPTheory.html#a2677ed739e48737f07028b7f3d3c5f63">PTheory::SimpleGauss</a></div><div class="ttdeci">virtual Double_t SimpleGauss(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Simple Gaussian relaxation. Formula: exp(-σ²t²/2)</div><div class="ttdef"><b>Definition</b> <a href="#l01334">PTheory.cpp:1334</a></div></div>
<div class="ttc" id="aclassPTheory_html_a2e95076ebc576d95c997cafc49265f6b"><div class="ttname"><a href="classPTheory.html#a2e95076ebc576d95c997cafc49265f6b">PTheory::fLFIntegral</a></div><div class="ttdeci">PDoubleVector fLFIntegral</div><div class="ttdoc">Cached static LF KT integral values.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00652">PTheory.h:652</a></div></div>
<div class="ttc" id="aclassPTheory_html_a310b2b0ad6658f91ee67b05426a6d22c"><div class="ttname"><a href="classPTheory.html#a310b2b0ad6658f91ee67b05426a6d22c">PTheory::SearchDataBase</a></div><div class="ttdeci">virtual Int_t SearchDataBase(TString name)</div><div class="ttdoc">Searches fgTheoDataBase for a function by name or abbreviation.</div><div class="ttdef"><b>Definition</b> <a href="#l00862">PTheory.cpp:862</a></div></div>
<div class="ttc" id="aclassPTheory_html_a32ec790324e2ba2bda1637bfa3926af9"><div class="ttname"><a href="classPTheory.html#a32ec790324e2ba2bda1637bfa3926af9">PTheory::TFCos</a></div><div class="ttdeci">virtual Double_t TFCos(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Transverse field cosine. Formula: cos(φ + 2πνt)</div><div class="ttdef"><b>Definition</b> <a href="#l02318">PTheory.cpp:2318</a></div></div>
<div class="ttc" id="aclassPTheory_html_a38b45a5848b847170d41ed5c17ef4cde"><div class="ttname"><a href="classPTheory.html#a38b45a5848b847170d41ed5c17ef4cde">PTheory::StaticGaussKTLF</a></div><div class="ttdeci">virtual Double_t StaticGaussKTLF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Static Gaussian Kubo-Toyabe (LF). Requires numerical integration.</div><div class="ttdef"><b>Definition</b> <a href="#l01432">PTheory.cpp:1432</a></div></div>
<div class="ttc" id="aclassPTheory_html_a38dec3c50021c73664737bb0481dcbcd"><div class="ttname"><a href="classPTheory.html#a38dec3c50021c73664737bb0481dcbcd">PTheory::StaticLorentzKT</a></div><div class="ttdeci">virtual Double_t StaticLorentzKT(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Static Lorentzian Kubo-Toyabe (ZF). Formula: 1/3 + 2/3(1-at)exp(-at)</div><div class="ttdef"><b>Definition</b> <a href="#l01619">PTheory.cpp:1619</a></div></div>
<div class="ttc" id="aclassPTheory_html_a3b0b07a3f5566d1fae57a11a05f3c027"><div class="ttname"><a href="classPTheory.html#a3b0b07a3f5566d1fae57a11a05f3c027">PTheory::fDyn_GL_LFFuncValue</a></div><div class="ttdeci">PDoubleVector fDyn_GL_LFFuncValue</div><div class="ttdoc">Cached dynamic Gauss-Lorentz LF KT values.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00655">PTheory.h:655</a></div></div>
<div class="ttc" id="aclassPTheory_html_a3e6ba6cd1f46b64bae7d4a0ce84e6050"><div class="ttname"><a href="classPTheory.html#a3e6ba6cd1f46b64bae7d4a0ce84e6050">PTheory::StaticNKZF</a></div><div class="ttdeci">virtual Double_t StaticNKZF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Static Nakajima-Keren (ZF). Combined nuclear and electronic relaxation.</div><div class="ttdef"><b>Definition</b> <a href="#l02684">PTheory.cpp:2684</a></div></div>
<div class="ttc" id="aclassPTheory_html_a416b942041ffd226091d405aa5e1ff42"><div class="ttname"><a href="classPTheory.html#a416b942041ffd226091d405aa5e1ff42">PTheory::DynamicGaussKTLF</a></div><div class="ttdeci">virtual Double_t DynamicGaussKTLF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Dynamic Gaussian Kubo-Toyabe (LF). Strong collision model.</div><div class="ttdef"><b>Definition</b> <a href="#l01521">PTheory.cpp:1521</a></div></div>
<div class="ttc" id="aclassPTheory_html_a44d4841bb66f761c2502b78017f1756b"><div class="ttname"><a href="classPTheory.html#a44d4841bb66f761c2502b78017f1756b">PTheory::GetLFIntegralValue</a></div><div class="ttdeci">virtual Double_t GetLFIntegralValue(const Double_t t) const</div><div class="ttdoc">Retrieves cached LF integral value at time t using interpolation.</div></div>
<div class="ttc" id="aclassPTheory_html_a49c6859a2ea2b3383a9b38830755cfc5"><div class="ttname"><a href="classPTheory.html#a49c6859a2ea2b3383a9b38830755cfc5">PTheory::Asymmetry</a></div><div class="ttdeci">virtual Double_t Asymmetry(const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Returns asymmetry value. Formula: A.</div><div class="ttdef"><b>Definition</b> <a href="#l01187">PTheory.cpp:1187</a></div></div>
<div class="ttc" id="aclassPTheory_html_a4bc8faf7ed6d246b0451c4a3b3fe2056"><div class="ttname"><a href="classPTheory.html#a4bc8faf7ed6d246b0451c4a3b3fe2056">PTheory::fMul</a></div><div class="ttdeci">PTheory * fMul</div><div class="ttdoc">Pointer to multiplication child node (right branch of tree)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00638">PTheory.h:638</a></div></div>
<div class="ttc" id="aclassPTheory_html_a4cfeda3b0fdb4ab1f325c021a575bf95"><div class="ttname"><a href="classPTheory.html#a4cfeda3b0fdb4ab1f325c021a575bf95">PTheory::DynamicNKZF</a></div><div class="ttdeci">virtual Double_t DynamicNKZF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Dynamic Nakajima-Keren (ZF). With spin fluctuations.</div><div class="ttdef"><b>Definition</b> <a href="#l02795">PTheory.cpp:2795</a></div></div>
<div class="ttc" id="aclassPTheory_html_a4dc432db11ee23d7a3f8ffe92d233068"><div class="ttname"><a href="classPTheory.html#a4dc432db11ee23d7a3f8ffe92d233068">PTheory::StrKT</a></div><div class="ttdeci">virtual Double_t StrKT(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Stretched Kubo-Toyabe. Formula: exp(-(σt)^β) with KT-like recovery.</div><div class="ttdef"><b>Definition</b> <a href="#l02129">PTheory.cpp:2129</a></div></div>
<div class="ttc" id="aclassPTheory_html_a53685d230ca22581c76d449422be5eab"><div class="ttname"><a href="classPTheory.html#a53685d230ca22581c76d449422be5eab">PTheory::GeneralExp</a></div><div class="ttdeci">virtual Double_t GeneralExp(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">General (stretched) exponential. Formula: exp(-(λt)^β)</div><div class="ttdef"><b>Definition</b> <a href="#l01277">PTheory.cpp:1277</a></div></div>
<div class="ttc" id="aclassPTheory_html_a5f432be04e4207396e9c0860c40ba8ce"><div class="ttname"><a href="classPTheory.html#a5f432be04e4207396e9c0860c40ba8ce">PTheory::fPrevParam</a></div><div class="ttdeci">Double_t fPrevParam[THEORY_MAX_PARAM]</div><div class="ttdoc">Previous parameter values for cache invalidation check.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00651">PTheory.h:651</a></div></div>
<div class="ttc" id="aclassPTheory_html_a5fd8b32f6cbab4650975f714b393e05b"><div class="ttname"><a href="classPTheory.html#a5fd8b32f6cbab4650975f714b393e05b">PTheory::DynamicGauLorKTZFFast</a></div><div class="ttdeci">virtual Double_t DynamicGauLorKTZFFast(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Fast dynamic Gaussian-Lorentzian KT (ZF). Approximate fast calculation.</div><div class="ttdef"><b>Definition</b> <a href="#l01867">PTheory.cpp:1867</a></div></div>
<div class="ttc" id="aclassPTheory_html_a63b9712d6b46f7b409e631f1d5ea4578"><div class="ttname"><a href="classPTheory.html#a63b9712d6b46f7b409e631f1d5ea4578">PTheory::IsValid</a></div><div class="ttdeci">virtual Bool_t IsValid()</div><div class="ttdoc">Checks if the entire theory expression tree is valid.</div><div class="ttdef"><b>Definition</b> <a href="#l00415">PTheory.cpp:415</a></div></div>
<div class="ttc" id="aclassPTheory_html_a646477b37fc74bffbd4ab69694f8a708"><div class="ttname"><a href="classPTheory.html#a646477b37fc74bffbd4ab69694f8a708">PTheory::RandomAnisotropicHyperfine</a></div><div class="ttdeci">virtual Double_t RandomAnisotropicHyperfine(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Random anisotropic hyperfine coupling. Powder average of anisotropic coupling.</div><div class="ttdef"><b>Definition</b> <a href="#l02229">PTheory.cpp:2229</a></div></div>
<div class="ttc" id="aclassPTheory_html_a68818588fe0ed93817fcb2f1230851e1"><div class="ttname"><a href="classPTheory.html#a68818588fe0ed93817fcb2f1230851e1">PTheory::CalculateDynKTLF</a></div><div class="ttdeci">virtual void CalculateDynKTLF(const Double_t *val, Int_t tag) const</div><div class="ttdoc">Calculates dynamic KT in LF using integral equation approach.</div></div>
<div class="ttc" id="aclassPTheory_html_a6f9b4bab0503cdd186d3adcc895a8c07"><div class="ttname"><a href="classPTheory.html#a6f9b4bab0503cdd186d3adcc895a8c07">PTheory::fDynLFFuncValue</a></div><div class="ttdeci">PDoubleVector fDynLFFuncValue</div><div class="ttdoc">Cached dynamic Gaussian/Lorentzian LF KT values.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00654">PTheory.h:654</a></div></div>
<div class="ttc" id="aclassPTheory_html_a78888a303a73c0e0d8aae5b9eb6b4032"><div class="ttname"><a href="classPTheory.html#a78888a303a73c0e0d8aae5b9eb6b4032">PTheory::InternalField</a></div><div class="ttdeci">virtual Double_t InternalField(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Internal field distribution. Gaussian field distribution model.</div><div class="ttdef"><b>Definition</b> <a href="#l02359">PTheory.cpp:2359</a></div></div>
<div class="ttc" id="aclassPTheory_html_a7bac1fe73ad243c4a3d4add99700f0bb"><div class="ttname"><a href="classPTheory.html#a7bac1fe73ad243c4a3d4add99700f0bb">PTheory::fUserFcnIdx</a></div><div class="ttdeci">Int_t fUserFcnIdx</div><div class="ttdoc">Index of this user function among all userFcn entries (for global state)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00641">PTheory.h:641</a></div></div>
<div class="ttc" id="aclassPTheory_html_a7d2a9fb33d33b7a224214f67c0620f46"><div class="ttname"><a href="classPTheory.html#a7d2a9fb33d33b7a224214f67c0620f46">PTheory::fUserFcnClassName</a></div><div class="ttdeci">TString fUserFcnClassName</div><div class="ttdoc">ROOT class name for user function (e.g., &quot;TMyFunction&quot;)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00642">PTheory.h:642</a></div></div>
<div class="ttc" id="aclassPTheory_html_a7fca9d0d5b05f781768290d372e259f9"><div class="ttname"><a href="classPTheory.html#a7fca9d0d5b05f781768290d372e259f9">PTheory::InternalBessel</a></div><div class="ttdeci">virtual Double_t InternalBessel(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Internal Bessel field distribution. Combines Bessel with relaxation.</div><div class="ttdef"><b>Definition</b> <a href="#l02546">PTheory.cpp:2546</a></div></div>
<div class="ttc" id="aclassPTheory_html_a80acc8e368f76f4d1c1dbfd1f9c078a3"><div class="ttname"><a href="classPTheory.html#a80acc8e368f76f4d1c1dbfd1f9c078a3">PTheory::SkewedGauss</a></div><div class="ttdeci">virtual Double_t SkewedGauss(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Skewed Gaussian. Asymmetric relaxation rates before/after zero crossing.</div><div class="ttdef"><b>Definition</b> <a href="#l02595">PTheory.cpp:2595</a></div></div>
<div class="ttc" id="aclassPTheory_html_a8ae9bd3e7ecccc6b3a93128d1a5cc89f"><div class="ttname"><a href="classPTheory.html#a8ae9bd3e7ecccc6b3a93128d1a5cc89f">PTheory::StaticGaussKT</a></div><div class="ttdeci">virtual Double_t StaticGaussKT(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Static Gaussian Kubo-Toyabe (ZF). Formula: 1/3 + 2/3(1-σ²t²)exp(-σ²t²/2)</div><div class="ttdef"><b>Definition</b> <a href="#l01390">PTheory.cpp:1390</a></div></div>
<div class="ttc" id="aclassPTheory_html_a96db7325d7d1008c260f613935a986a6"><div class="ttname"><a href="classPTheory.html#a96db7325d7d1008c260f613935a986a6">PTheory::DynamicLorentzKTLF</a></div><div class="ttdeci">virtual Double_t DynamicLorentzKTLF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Dynamic Lorentzian Kubo-Toyabe (LF). Strong collision model.</div><div class="ttdef"><b>Definition</b> <a href="#l01759">PTheory.cpp:1759</a></div></div>
<div class="ttc" id="aclassPTheory_html_a97d09b52469458cff3497397ace0378d"><div class="ttname"><a href="classPTheory.html#a97d09b52469458cff3497397ace0378d">PTheory::CleanUp</a></div><div class="ttdeci">virtual void CleanUp(PTheory *theo)</div><div class="ttdoc">Recursively deletes child theory nodes (fAdd and fMul).</div><div class="ttdef"><b>Definition</b> <a href="#l00830">PTheory.cpp:830</a></div></div>
<div class="ttc" id="aclassPTheory_html_a9f729f4d453aad6b0edc939fd6043114"><div class="ttname"><a href="classPTheory.html#a9f729f4d453aad6b0edc939fd6043114">PTheory::InternalFieldGK</a></div><div class="ttdeci">virtual Double_t InternalFieldGK(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Internal field (Kornilov model). Vortex lattice field distribution.</div><div class="ttdef"><b>Definition</b> <a href="#l02401">PTheory.cpp:2401</a></div></div>
<div class="ttc" id="aclassPTheory_html_aa7992fe6037b1cb64b580605667894c0"><div class="ttname"><a href="classPTheory.html#aa7992fe6037b1cb64b580605667894c0">PTheory::MakeCleanAndTidyUserFcn</a></div><div class="ttdeci">virtual void MakeCleanAndTidyUserFcn(UInt_t i, PMsrLines *fullTheoryBlock)</div><div class="ttdoc">Formats a user function theory line with proper spacing.</div><div class="ttdef"><b>Definition</b> <a href="#l01103">PTheory.cpp:1103</a></div></div>
<div class="ttc" id="aclassPTheory_html_aa8f4e5c3a654184a64689426853d357a"><div class="ttname"><a href="classPTheory.html#aa8f4e5c3a654184a64689426853d357a">PTheory::DynamicNKTF</a></div><div class="ttdeci">virtual Double_t DynamicNKTF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Dynamic Nakajima-Keren (TF). With spin fluctuations and precession.</div><div class="ttdef"><b>Definition</b> <a href="#l02856">PTheory.cpp:2856</a></div></div>
<div class="ttc" id="aclassPTheory_html_aadab2da9cc55e5373652ece16c5b51a7"><div class="ttname"><a href="classPTheory.html#aadab2da9cc55e5373652ece16c5b51a7">PTheory::SimpleExp</a></div><div class="ttdeci">virtual Double_t SimpleExp(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Simple exponential relaxation. Formula: exp(-λt)</div><div class="ttdef"><b>Definition</b> <a href="#l01225">PTheory.cpp:1225</a></div></div>
<div class="ttc" id="aclassPTheory_html_ab0b6defce6fa75187ae306332fac3425"><div class="ttname"><a href="classPTheory.html#ab0b6defce6fa75187ae306332fac3425">PTheory::Func</a></div><div class="ttdeci">virtual Double_t Func(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Evaluates the theory function at a given time point.</div><div class="ttdef"><b>Definition</b> <a href="#l00468">PTheory.cpp:468</a></div></div>
<div class="ttc" id="aclassPTheory_html_ab2ec4bc446778600b280ff6b600ad231"><div class="ttname"><a href="classPTheory.html#ab2ec4bc446778600b280ff6b600ad231">PTheory::fType</a></div><div class="ttdeci">UInt_t fType</div><div class="ttdoc">Theory function type (THEORY_CONST, THEORY_SIMPLE_EXP, etc.)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00634">PTheory.h:634</a></div></div>
<div class="ttc" id="aclassPTheory_html_ab5cf3eb3c9aa8bb22d98597fd6a244e6"><div class="ttname"><a href="classPTheory.html#ab5cf3eb3c9aa8bb22d98597fd6a244e6">PTheory::GetDyn_GL_KTLFValue</a></div><div class="ttdeci">virtual Double_t GetDyn_GL_KTLFValue(const Double_t t) const</div><div class="ttdoc">Retrieves cached dynamic Gauss-Lorentz KT LF value at time t.</div></div>
<div class="ttc" id="aclassPTheory_html_aba502d80fb7549a222bf514c0f68ef79"><div class="ttname"><a href="classPTheory.html#aba502d80fb7549a222bf514c0f68ef79">PTheory::fParamNo</a></div><div class="ttdeci">std::vector&lt; UInt_t &gt; fParamNo</div><div class="ttdoc">Resolved parameter indices (0-based). Values &gt;= MSR_PARAM_FUN_OFFSET are function references.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00635">PTheory.h:635</a></div></div>
<div class="ttc" id="aclassPTheory_html_abcc03b3a088cf08941c2295c06d258cf"><div class="ttname"><a href="classPTheory.html#abcc03b3a088cf08941c2295c06d258cf">PTheory::DynamicGauLorKTLFFast</a></div><div class="ttdeci">virtual Double_t DynamicGauLorKTLFFast(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Fast dynamic Gaussian-Lorentzian KT (LF). Approximate fast calculation.</div><div class="ttdef"><b>Definition</b> <a href="#l01907">PTheory.cpp:1907</a></div></div>
<div class="ttc" id="aclassPTheory_html_acafff64c51c65fb9713e93503713fff5"><div class="ttname"><a href="classPTheory.html#acafff64c51c65fb9713e93503713fff5">PTheory::fMsrInfo</a></div><div class="ttdeci">PMsrHandler * fMsrInfo</div><div class="ttdoc">Pointer to MSR file handler (not owned)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00647">PTheory.h:647</a></div></div>
<div class="ttc" id="aclassPTheory_html_ace253c9696e455779b05e9f9dee0896c"><div class="ttname"><a href="classPTheory.html#ace253c9696e455779b05e9f9dee0896c">PTheory::UserFcn</a></div><div class="ttdeci">virtual Double_t UserFcn(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">User-defined function. Calls external shared library function.</div></div>
<div class="ttc" id="aclassPTheory_html_aceccb4ac553dfb2069a2a4f2104e88c8"><div class="ttname"><a href="classPTheory.html#aceccb4ac553dfb2069a2a4f2104e88c8">PTheory::Bessel</a></div><div class="ttdeci">virtual Double_t Bessel(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Bessel function precession. Formula: J₀(2πνt + φ)</div><div class="ttdef"><b>Definition</b> <a href="#l02505">PTheory.cpp:2505</a></div></div>
<div class="ttc" id="aclassPTheory_html_ad0fab4cfa3e30636987597b2e515556f"><div class="ttname"><a href="classPTheory.html#ad0fab4cfa3e30636987597b2e515556f">PTheory::CalculateLorentzLFIntegral</a></div><div class="ttdeci">virtual void CalculateLorentzLFIntegral(const Double_t *val) const</div><div class="ttdoc">Calculates and caches Lorentzian LF integral for static KT.</div></div>
<div class="ttc" id="aclassPTheory_html_ad7486d946964f49b73e7e1aa804f9f94"><div class="ttname"><a href="classPTheory.html#ad7486d946964f49b73e7e1aa804f9f94">PTheory::SpinGlass</a></div><div class="ttdeci">virtual Double_t SpinGlass(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Spin glass relaxation function. Edwards-Anderson order parameter.</div><div class="ttdef"><b>Definition</b> <a href="#l02178">PTheory.cpp:2178</a></div></div>
<div class="ttc" id="aclassPTheory_html_ad874ccd579a1b04238da82ce4a639970"><div class="ttname"><a href="classPTheory.html#ad874ccd579a1b04238da82ce4a639970">PTheory::StaticNKTF</a></div><div class="ttdeci">virtual Double_t StaticNKTF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Static Nakajima-Keren (TF). Combined nuclear and electronic relaxation with precession.</div><div class="ttdef"><b>Definition</b> <a href="#l02739">PTheory.cpp:2739</a></div></div>
<div class="ttc" id="aclassPTheory_html_adc4b7167a0aa86f4a3ebe4dd5d305bcb"><div class="ttname"><a href="classPTheory.html#adc4b7167a0aa86f4a3ebe4dd5d305bcb">PTheory::FmuF</a></div><div class="ttdeci">virtual Double_t FmuF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">F-μ-F oscillation. Muon bound between two fluorine atoms.</div></div>
<div class="ttc" id="aclassPTheory_html_adddf87c309ea4130751cc3c401eee6b9"><div class="ttname"><a href="classPTheory.html#adddf87c309ea4130751cc3c401eee6b9">PTheory::StaticLorentzKTLF</a></div><div class="ttdeci">virtual Double_t StaticLorentzKTLF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Static Lorentzian Kubo-Toyabe (LF). Requires numerical integration.</div><div class="ttdef"><b>Definition</b> <a href="#l01662">PTheory.cpp:1662</a></div></div>
<div class="ttc" id="aclassPTheory_html_ae379c15c25527635fa88faa06ca57863"><div class="ttname"><a href="classPTheory.html#ae379c15c25527635fa88faa06ca57863">PTheory::CombiLGKT</a></div><div class="ttdeci">virtual Double_t CombiLGKT(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Combined Lorentzian-Gaussian KT. Product of both relaxation types.</div><div class="ttdef"><b>Definition</b> <a href="#l02083">PTheory.cpp:2083</a></div></div>
<div class="ttc" id="aclassPTheory_html_ae431d544feaad24170d4ef0a3c9e0722"><div class="ttname"><a href="classPTheory.html#ae431d544feaad24170d4ef0a3c9e0722">PTheory::MuMinusExpTF</a></div><div class="ttdeci">virtual Double_t MuMinusExpTF(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">μ⁻ exponential TF. Negative muon in transverse field.</div></div>
<div class="ttc" id="aclassPTheory_html_ae984a95857932719634345a35803a92e"><div class="ttname"><a href="classPTheory.html#ae984a95857932719634345a35803a92e">PTheory::Polynom</a></div><div class="ttdeci">virtual Double_t Polynom(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Polynomial function. Formula: Σᵢ pᵢtⁱ</div></div>
<div class="ttc" id="aclassPTheory_html_aedd9c54d28240e0c1a4fb2601d4e0d00"><div class="ttname"><a href="classPTheory.html#aedd9c54d28240e0c1a4fb2601d4e0d00">PTheory::fNoOfParam</a></div><div class="ttdeci">UInt_t fNoOfParam</div><div class="ttdoc">Expected number of parameters for this function type.</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00636">PTheory.h:636</a></div></div>
<div class="ttc" id="aclassPTheory_html_af2426f3c6e4cefeb172ed8864ba3a10c"><div class="ttname"><a href="classPTheory.html#af2426f3c6e4cefeb172ed8864ba3a10c">PTheory::InternalFieldLL</a></div><div class="ttdeci">virtual Double_t InternalFieldLL(Double_t t, const PDoubleVector &amp;paramValues, const PDoubleVector &amp;funcValues) const</div><div class="ttdoc">Internal field (Larkin-Ovchinnikov model). Vortex lattice field distribution.</div><div class="ttdef"><b>Definition</b> <a href="#l02453">PTheory.cpp:2453</a></div></div>
<div class="ttc" id="aclassPTheory_html_af8f347354bef0901edc211965b9e10fa"><div class="ttname"><a href="classPTheory.html#af8f347354bef0901edc211965b9e10fa">PTheory::MakeCleanAndTidyTheoryBlock</a></div><div class="ttdeci">virtual void MakeCleanAndTidyTheoryBlock(PMsrLines *fullTheoryBlock)</div><div class="ttdoc">Reformats the theory block for clean MSR file output.</div><div class="ttdef"><b>Definition</b> <a href="#l00943">PTheory.cpp:943</a></div></div>
<div class="ttc" id="aclassPTheory_html_afaaefb22b8da1e94df68898352a8b819"><div class="ttname"><a href="classPTheory.html#afaaefb22b8da1e94df68898352a8b819">PTheory::fUserFcnSharedLibName</a></div><div class="ttdeci">TString fUserFcnSharedLibName</div><div class="ttdoc">Shared library path (e.g., &quot;libMyFunctions.so&quot;)</div><div class="ttdef"><b>Definition</b> <a href="PTheory_8h_source.html#l00643">PTheory.h:643</a></div></div>
<div class="ttc" id="aclassPTheory_html_afbefd7086854bfb72f02b95f3b22bdcd"><div class="ttname"><a href="classPTheory.html#afbefd7086854bfb72f02b95f3b22bdcd">PTheory::GetDynKTLFValue</a></div><div class="ttdeci">virtual Double_t GetDynKTLFValue(const Double_t t) const</div><div class="ttdoc">Retrieves cached dynamic KT LF value at time t.</div></div>
<div class="ttc" id="aclassPUserFcnBase_html"><div class="ttname"><a href="classPUserFcnBase.html">PUserFcnBase</a></div><div class="ttdoc">Abstract base class for user-defined theory functions in musrfit.</div><div class="ttdef"><b>Definition</b> <a href="PUserFcnBase_8h_source.html#l00169">PUserFcnBase.h:170</a></div></div>
<div class="ttc" id="astructPMsrLineStructure_html"><div class="ttname"><a href="structPMsrLineStructure.html">PMsrLineStructure</a></div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00973">PMusr.h:973</a></div></div>
<div class="ttc" id="astructPMsrLineStructure_html_a6a4b89aa10455a7340e90c9be1b89f4b"><div class="ttname"><a href="structPMsrLineStructure.html#a6a4b89aa10455a7340e90c9be1b89f4b">PMsrLineStructure::fLineNo</a></div><div class="ttdeci">Int_t fLineNo</div><div class="ttdoc">Line number in original MSR file (1-based)</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00974">PMusr.h:974</a></div></div>
<div class="ttc" id="astructPMsrLineStructure_html_a73a9ae42d0c33cb25ff3a33cdd6edcbe"><div class="ttname"><a href="structPMsrLineStructure.html#a73a9ae42d0c33cb25ff3a33cdd6edcbe">PMsrLineStructure::fLine</a></div><div class="ttdeci">TString fLine</div><div class="ttdoc">Content of the MSR file line.</div><div class="ttdef"><b>Definition</b> <a href="PMusr_8h_source.html#l00975">PMusr.h:975</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="PTheory_8cpp.html">PTheory.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>