Newer
Older
FairShipTools / Katerina / doc / html / LoopAnalyse_8py_source.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Python: LoopAnalyse.py 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>
<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 style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Python
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">LoopAnalyse.py</div>  </div>
</div><!--header-->
<div class="contents">
<a href="LoopAnalyse_8py.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"><a class="line" href="namespaceLoopAnalyse.html">    1</a></span>&#160;<span class="keyword">import</span> ROOT,os,sys,getopt</div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="keyword">import</span> rootUtils <span class="keyword">as</span> ut</div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">import</span> shipunit <span class="keyword">as</span> u</div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="keyword">import</span> numpy <span class="keyword">as</span> n</div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="keyword">import</span> collections</div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">from</span> ShipGeoConfig <span class="keyword">import</span> ConfigRegistry</div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">import</span> shipDet_conf</div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">import</span> BookHistos</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">from</span> MCTrackInfo  <span class="keyword">import</span> MCTrackInfo</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">from</span> StrawHits    <span class="keyword">import</span> StrawHits</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">from</span> FitTrackInfo <span class="keyword">import</span> FitTrackInfo</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">import</span> RecoSettings</div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html">   19</a></span>&#160;<span class="keyword">class </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html">LoopAnalyse</a>(object):  </div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a2923fe0517669aa57171ca8b8c5ddcd5">__init__</a>(self, tree, pref, geoFile, debug=0, </div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;           plotField          = <span class="keyword">False</span>,</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;           plotTracking       = <span class="keyword">False</span>, </div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;           plotVertex         = <span class="keyword">False</span>,</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;           plotVertexDetailed = <span class="keyword">False</span>,</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;           plotMomentum       = <span class="keyword">False</span>,</div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a2923fe0517669aa57171ca8b8c5ddcd5">   26</a></span>&#160;           compareFits        = <span class="keyword">False</span>):</div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#ad2db1e1ed4283f297ca3c941f6bc08f8">   27</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad2db1e1ed4283f297ca3c941f6bc08f8">tree</a>    = tree</div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">   28</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">debug</a>   = debug</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a1b4b6c5e1599ccc0ee33e6570feec69b">   30</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a1b4b6c5e1599ccc0ee33e6570feec69b">modules</a>   = <span class="keywordtype">None</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#af3d476045020eca1daa58a8aa9e74213">   31</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#af3d476045020eca1daa58a8aa9e74213">ShipGeo</a>   = <span class="keywordtype">None</span>    </div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ee25894d17cc7d2fa1b584a7ee09b7f">   32</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ee25894d17cc7d2fa1b584a7ee09b7f">run</a>       = <span class="keywordtype">None</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a2c0113170b17339683a405a9e7d84c65">createGeom</a>(pref, geoFile)</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        </div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">   35</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a> = collections.OrderedDict()</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a8bd87d31b00312c73a620b5a3def27dc">   37</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a8bd87d31b00312c73a620b5a3def27dc">hmagnet</a>   = {}</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">   38</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>     = {}</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">   39</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>      = {}</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">   40</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>      = {}</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">   41</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>   = {}</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#ab8dea77e8a2b7227bd033b213ecd6cd1">   42</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ab8dea77e8a2b7227bd033b213ecd6cd1">plotField</a>    = <span class="keyword">False</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">   43</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">plotTracking</a> = <span class="keyword">False</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">   44</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">plotVertex</a>   = <span class="keyword">False</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">   45</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">plotVertexCh</a> = <span class="keyword">False</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">   46</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">plotMomentum</a> = <span class="keyword">False</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a173bc60a9d9169dd48deff9d37e20bc3">   47</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a173bc60a9d9169dd48deff9d37e20bc3">compareFits</a>  = <span class="keyword">False</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    </div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    </div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordflow">if</span> plotField:</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ab8dea77e8a2b7227bd033b213ecd6cd1">plotField</a> = <span class="keyword">True</span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;      <a class="code" href="namespaceBookHistos.html#a67abaf3e0135019e06536753b621063d">BookHistos.bookMFieldHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a8bd87d31b00312c73a620b5a3def27dc">hmagnet</a>)</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordflow">if</span> plotTracking:</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">plotTracking</a> = <span class="keyword">True</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;      <a class="code" href="namespaceBookHistos.html#aff89ad17f02e6488b04ceb83a2e10dd7">BookHistos.bookTrackingHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>)</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keywordflow">if</span> plotVertex:</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">plotVertex</a> = <span class="keyword">True</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;      <a class="code" href="namespaceBookHistos.html#ac19a227a68848ab0808f541b3162a10b">BookHistos.bookVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>)</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordflow">if</span> plotVertexDetailed:</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">plotVertexCh</a> = <span class="keyword">True</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;      <a class="code" href="namespaceBookHistos.html#ac19a227a68848ab0808f541b3162a10b">BookHistos.bookVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>,<span class="stringliteral">&quot;mUp&quot;</span>)</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;      <a class="code" href="namespaceBookHistos.html#ac19a227a68848ab0808f541b3162a10b">BookHistos.bookVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>,<span class="stringliteral">&quot;mDn&quot;</span>)</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;      </div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordflow">if</span> plotMomentum:</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">plotMomentum</a> = <span class="keyword">True</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;      <a class="code" href="namespaceBookHistos.html#a3d68f66c797a179b549fbaa057bd5708">BookHistos.bookMomentumHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>)</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordflow">if</span> compareFits:</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a173bc60a9d9169dd48deff9d37e20bc3">compareFits</a> = <span class="keyword">True</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;      <a class="code" href="namespaceBookHistos.html#a112502351e8db40f2bad296fa6d3c5d5">BookHistos.bookCompareFitHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>)</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;      <span class="keywordflow">if</span> plotVertex  : <a class="code" href="namespaceBookHistos.html#ac19a227a68848ab0808f541b3162a10b">BookHistos.bookVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>, <span class="stringliteral">&quot;NEW&quot;</span>)</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;      <span class="keywordflow">if</span> plotMomentum: <a class="code" href="namespaceBookHistos.html#a3d68f66c797a179b549fbaa057bd5708">BookHistos.bookMomentumHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>, <span class="stringliteral">&quot;NEW&quot;</span>)</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a6d521258d9a779861dff09765dfbc6f4">   73</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a6d521258d9a779861dff09765dfbc6f4">MCTracks</a>  = <a class="code" href="classMCTrackInfo_1_1MCTrackInfo.html">MCTrackInfo</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad2db1e1ed4283f297ca3c941f6bc08f8">tree</a>, 0)<span class="comment">#self.debug)</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a2de98d944e28219a30b0053ece894f66">   74</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a2de98d944e28219a30b0053ece894f66">StrHits</a>   = <a class="code" href="classStrawHits_1_1StrawHits.html">StrawHits</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad2db1e1ed4283f297ca3c941f6bc08f8">tree</a>, self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a1b4b6c5e1599ccc0ee33e6570feec69b">modules</a>, self.ShipGeo.straw.resol, self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">debug</a>, self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a8bd87d31b00312c73a620b5a3def27dc">hmagnet</a>, self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#af3d476045020eca1daa58a8aa9e74213">ShipGeo</a>)</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a70bee34adc4a239345a149e59eba59a5">   75</a></span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a70bee34adc4a239345a149e59eba59a5">FitTracks</a> = <a class="code" href="classFitTrackInfo_1_1FitTrackInfo.html">FitTrackInfo</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad2db1e1ed4283f297ca3c941f6bc08f8">tree</a>, 0)<span class="comment">#self.debug)</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="comment"># FIXneeded - to introduce one more FixTracks!</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;      </div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a2c0113170b17339683a405a9e7d84c65">   79</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a2c0113170b17339683a405a9e7d84c65">createGeom</a>(self,pref, geoFile):</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#af3d476045020eca1daa58a8aa9e74213">ShipGeo</a> = ConfigRegistry.loadpy(<span class="stringliteral">&quot;$FAIRSHIP/geometry/geometry_config.py&quot;</span>, Yheight = pref )</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ee25894d17cc7d2fa1b584a7ee09b7f">run</a> = ROOT.FairRunSim()</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a1b4b6c5e1599ccc0ee33e6570feec69b">modules</a> = shipDet_conf.configure(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ee25894d17cc7d2fa1b584a7ee09b7f">run</a>,self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#af3d476045020eca1daa58a8aa9e74213">ShipGeo</a>)</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    tgeom = ROOT.TGeoManager(<span class="stringliteral">&quot;Geometry&quot;</span>, <span class="stringliteral">&quot;Geane geometry&quot;</span>)</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    gMan  = tgeom.Import(geoFile)</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    geoMat =  ROOT.genfit.TGeoMaterialInterface()</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    ROOT.genfit.MaterialEffects.getInstance().init(geoMat)</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    volDict = {}</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    i=0</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">for</span> x <span class="keywordflow">in</span> ROOT.gGeoManager.GetListOfVolumes():</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;      volDict[i]=x.GetName()</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;      i+=1</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    bfield = ROOT.genfit.BellField(self.ShipGeo.Bfield.max ,self.ShipGeo.Bfield.z,2, self.ShipGeo.Yheight/2.)</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    fM = ROOT.genfit.FieldManager.getInstance()</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    fM.init(bfield)</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a861f617adc812a42750c3d922867c441">   99</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a861f617adc812a42750c3d922867c441">CleanStat</a>(self):</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;total&#39;</span>] = 0</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;HNLnTr&#39;</span>]   = 0</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;HNLzAcc&#39;</span>]  = 0</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;HNLeAcc&#39;</span>]  = 0</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsO&#39;</span>]  = 0</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsN&#39;</span>]  = 0</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsNdfO&#39;</span>]  = 0</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsNdfN&#39;</span>]  = 0</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#ad097c1caf8e5eddb5ae645b4203d311f">  109</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad097c1caf8e5eddb5ae645b4203d311f">writeHistos</a>(self):</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    ut.writeHists(htrck,<span class="stringliteral">&quot;LoopA.root&quot;</span>)</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  </div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  </div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  </div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  </div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#afeb1f011ac9fdf67753be4f54aa0f7f3">  115</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#afeb1f011ac9fdf67753be4f54aa0f7f3">hitMCtrackCorellations</a>(self, weight=1):</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="comment"># FIXneeded - add HNL vertex distribution plots!</span></div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordflow">if</span> ( <span class="keywordflow">not</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">plotTracking</a>): </div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;      <span class="keywordflow">print</span> <span class="stringliteral">&quot;hitMCtrackCorellations does nothing since BookHistos.bookTrackingHistos() was not called!&quot;</span></div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;      <span class="keywordflow">return</span></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">for</span> tid <span class="keywordflow">in</span> self.StrHits.getTrIDs():            <span class="comment"># only multi-hits&gt;25 tracks</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;      <span class="keywordflow">if</span> ( self.StrHits.checkVetoHits(tid) &gt; 0)  :  <span class="keywordflow">continue</span>  <span class="comment"># remove ones with vetoStattion</span></div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;      vec3h = self.StrHits.getStartHit(tid)</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;      vec3p = self.MCTracks.getTrackPropagation(tid, vec3h.Z())</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;      if(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">debug</a>&gt;0):</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;extr.&quot;</span>, tid, <span class="stringliteral">&quot;\t&quot;</span>, vec3p.X(), vec3p.Y(), vec3p.Z(),</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;\tcharge:&quot;</span>, self.MCTracks.getCharge(tid), <span class="stringliteral">&quot;\tdx=&quot;</span>, vec3p.X()-vec3h.X(), <span class="stringliteral">&quot;dy=&quot;</span>, vec3p.Y()-vec3h.Y()</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;      dR       = ROOT.TMath.Sqrt( (vec3p.X()-vec3h.X())**2 + (vec3p.Y()-vec3h.Y())**2 )</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>[<span class="stringliteral">&#39;dRvsPz&#39;</span>].Fill(self.MCTracks.getMomentum(tid).Z(), dR, weight)</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>[<span class="stringliteral">&#39;dRvsZhit&#39;</span>].Fill(vec3h.Z(), dR, weight)</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;      charge   = self.MCTracks.getCharge(tid)</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;      theRatio = abs(vec3p.Y())/(vec3h.Z()-self.MCTracks.getHNLdecayVertex().Z())</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;      HNLflag  = tid <span class="keywordflow">in</span> self.MCTracks.getHNLdecayTrIDs()</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;      <span class="keywordflow">if</span> HNLflag:</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>[<span class="stringliteral">&#39;YMC2dZMCVer&#39;</span>].Fill(theRatio,weight)</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;      <span class="keywordflow">if</span> charge&lt;0:</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>[<span class="stringliteral">&#39;dxdyALLTrHm&#39;</span>].Fill(vec3p.X()-vec3h.X(), vec3p.Y()-vec3h.Y(), weight)  </div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordflow">if</span> HNLflag:</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>[<span class="stringliteral">&#39;dxdyHNLTrHm&#39;</span>].Fill(vec3p.X()-vec3h.X(), vec3p.Y()-vec3h.Y(), weight)  </div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;      <span class="keywordflow">elif</span> charge&gt;0:</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>[<span class="stringliteral">&#39;dxdyALLTrHp&#39;</span>].Fill(vec3p.X()-vec3h.X(), vec3p.Y()-vec3h.Y(), weight)  </div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordflow">if</span> HNLflag:</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>[<span class="stringliteral">&#39;dxdyHNLTrHp&#39;</span>].Fill(vec3p.X()-vec3h.X(), vec3p.Y()-vec3h.Y(), weight)  </div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    </div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    </div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    </div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#ad906a16e512c8a1e577759be22f428e8">  146</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad906a16e512c8a1e577759be22f428e8">fitMCvertexCorellations</a>(self, weight=1, old=True, cut=False, detailed=False):</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    if( cut <span class="keywordflow">and</span> detailed ) : <span class="keywordflow">print</span> <span class="stringliteral">&quot;fitMCvertexCorellations can&#39;t plot detailed vertex for cut! FIX me!&quot;</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    vMC = self.MCTracks.getHNLdecayVertex()</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordflow">if</span> old :</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;      vFt = self.FitTracks.getVertex()</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordflow">else</span> :</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;      vFt = self.StrHits.getReFitVertex()</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">if</span> (<span class="keywordflow">not</span> vFt <span class="keywordflow">or</span> <span class="keywordflow">not</span> vMC) : <span class="keywordflow">return</span></div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    </div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    if(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">plotVertex</a> <span class="keywordflow">or</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">plotVertexCh</a>):</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;      distanceToTracker = self.ShipGeo.TrackStation1[<span class="stringliteral">&#39;z&#39;</span>]-vMC.Z()</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;      coord = [<span class="stringliteral">&#39;x&#39;</span>,<span class="stringliteral">&#39;y&#39;</span>,<span class="stringliteral">&#39;z&#39;</span>]</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;      iz = 1</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;      <span class="keywordflow">while</span> ( (iz&lt;11) <span class="keywordflow">and</span> (distanceToTracker&gt;iz*500) ):</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    iz = iz+1</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;      </div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;      pref=<span class="stringliteral">&quot;&quot;</span></div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;      prefCut=<span class="stringliteral">&quot;&quot;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;      if( cut )    : prefCut=<span class="stringliteral">&#39;ndf&#39;</span></div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;      if( <span class="keywordflow">not</span> old ): pref=<span class="stringliteral">&#39;NEW&#39;</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;      <span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(0,3):</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    delta = vMC(i)-vFt(i)</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    if( self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">plotVertex</a> ):</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;      hname = <span class="stringliteral">&#39;vd&#39;</span>+coord[i]+<span class="stringliteral">&#39;2&#39;</span>+prefCut+pref</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>[hname].Fill(distanceToTracker, delta, weight)</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;      <span class="keywordflow">if</span> (<span class="keywordflow">not</span> cut):</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keywordflow">if</span> (iz&lt;11):</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;          hname=<span class="stringliteral">&#39;vd&#39;</span>+coord[i]+<span class="stringliteral">&#39;2_&#39;</span>+str(iz)+pref</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;          self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>[hname].Fill(delta, weight)</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    </div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    if( self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">plotVertexCh</a> <span class="keywordflow">and</span> old ):</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;      sign = self.MCTracks.checkVertexUpDown()</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;      <span class="keywordflow">if</span> ( sign==0 ): <span class="keywordflow">continue</span></div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;      <span class="keywordflow">if</span> ( sign&lt;0) :</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        pref = <span class="stringliteral">&quot;mUp&quot;</span></div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;      <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        pref = <span class="stringliteral">&quot;mDn&quot;</span></div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;      hname = <span class="stringliteral">&#39;vd&#39;</span>+coord[i]+<span class="stringliteral">&#39;2&#39;</span>+pref</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>[hname].Fill(distanceToTracker, delta, weight)</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;      if( pref==<span class="stringliteral">&#39;NEW&#39;</span>) :</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    doca = self.StrHits.getStepDoca(RecoSettings.VertexExtrSteps-1)</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <span class="keywordflow">if</span> ( doca!=<span class="keywordtype">None</span> ) : self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>[<span class="stringliteral">&#39;doca&#39;</span>+pref].Fill(doca)</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    doca0 = self.StrHits.getStepDoca(0)</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordflow">if</span> ( doca0!=<span class="keywordtype">None</span> ) : self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>[<span class="stringliteral">&#39;doca0&#39;</span>+pref].Fill(doca0)</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keywordflow">if</span> ( doca0!=<span class="keywordtype">None</span> <span class="keywordflow">and</span> doca0!=0):</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>[<span class="stringliteral">&#39;docaRel&#39;</span>+pref].Fill(1,1.)</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;      <span class="keywordflow">for</span> ii <span class="keywordflow">in</span> range (1, RecoSettings.VertexExtrSteps):</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        doca = self.StrHits.getStepDoca(ii)</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="comment">#print &quot;...&quot;, doca, doca/doca0</span></div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordflow">if</span> ( doca!=<span class="keywordtype">None</span> ) : </div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;          self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>[<span class="stringliteral">&#39;docaRel&#39;</span>+pref].Fill(ii+1, doca/doca0)</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordflow">return</span> vFt</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#ac21ece64d3d080ef531539d0aafeb094">  203</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ac21ece64d3d080ef531539d0aafeb094">doCompareFits</a>(self, oldStyle=True, ellCut=False, weight=1):</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    ntracks = self.StrHits.FitTracks(oldStyle) <span class="comment"># does re-fitting</span></div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordflow">if</span> (self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">debug</a>&gt;0) : self.StrHits.PrintNewTracks()</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    fitOldTrIDs = self.FitTracks.getTrIDs()</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    fitNewTrIDs = self.StrHits.getReFitTrIDs()</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    </div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordflow">for</span> tid <span class="keywordflow">in</span> fitOldTrIDs:</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;Chi2NDFold&#39;</span>].Fill(self.FitTracks.getChi2Ndf(tid))</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;NDFold&#39;</span>].Fill(self.FitTracks.getNdf(tid))</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordflow">for</span> tid <span class="keywordflow">in</span> fitNewTrIDs:</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;Chi2NDFnew&#39;</span>].Fill(self.StrHits.getReFitChi2Ndf(tid))</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;NDFnew&#39;</span>].Fill(self.StrHits.getReFitNdf(tid))</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;      </div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordflow">for</span> tid <span class="keywordflow">in</span> self.StrHits.getTrIDsALL(): <span class="comment"># hists with MCTrID&gt;0 </span></div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;      told = ( tid <span class="keywordflow">in</span> fitOldTrIDs)</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;      tnew = ( tid <span class="keywordflow">in</span> fitNewTrIDs)</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;      if( (<span class="keywordflow">not</span> told) <span class="keywordflow">and</span> (<span class="keywordflow">not</span> tnew) ):</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;FitCorrespondence&#39;</span>].Fill(0)</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;      elif( (<span class="keywordflow">not</span> told) <span class="keywordflow">and</span> tnew):</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;FitCorrespondence&#39;</span>].Fill(1)</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;      elif( told <span class="keywordflow">and</span> (<span class="keywordflow">not</span> tnew) ):</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;FitCorrespondence&#39;</span>].Fill(2)</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;      <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    eq = self.StrHits.compareFitTracks(tid, self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a70bee34adc4a239345a149e59eba59a5">FitTracks</a>)</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordflow">if</span> eq:</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;FitCorrespondence&#39;</span>].Fill(5)</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;FitCorrespondence&#39;</span>].Fill(6)</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>[<span class="stringliteral">&#39;dNFoldFNnew&#39;</span>].Fill(len(fitOldTrIDs), len(fitNewTrIDs))</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keywordflow">return</span> ntracks</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a4809a8cb0b5434294a7db2ceb260cb0d">  238</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4809a8cb0b5434294a7db2ceb260cb0d">doPlotMomentum</a>(self, weight, old=True):</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    tids = []</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    pfix = <span class="stringliteral">&quot;&quot;</span></div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keywordflow">if</span> old:</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;      tids  = self.FitTracks.getTrIDs()</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;      tids  = self.StrHits.getReFitTrIDs()</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;      pfix  = <span class="stringliteral">&quot;NEW&quot;</span> </div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;      </div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="keywordflow">for</span> tid <span class="keywordflow">in</span> tids:</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;      r,d,pFit = <span class="keywordtype">None</span>, <span class="keywordtype">None</span>, <span class="keywordtype">None</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;      chi2ndf,ndf  = <span class="keywordtype">None</span>, <span class="keywordtype">None</span></div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;      <span class="keywordflow">if</span> old:</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    r,d,pFit = self.FitTracks.getPosDirPval(tid)</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    ndf      = self.FitTracks.getNdf(tid)</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    chi2ndf  = self.FitTracks.getChi2Ndf(tid)</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;      <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    r,d,pFit = self.StrHits.getReFitPosDirPval(tid)</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    ndf      = self.StrHits.getReFitNdf(tid)</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    chi2ndf  = self.StrHits.getReFitChi2Ndf(tid)</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;      if( <span class="keywordflow">not</span> tid <span class="keywordflow">in</span> self.MCTracks.getTrIDs() ): <span class="keywordflow">continue</span></div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;      pMC = self.MCTracks.getMomentum(tid).Mag()</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;      dPP = (pMC - pFit)/pMC</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;      hname = <span class="stringliteral">&#39;delPOverP0&#39;</span>+pfix</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>[hname].Fill(chi2ndf, dPP, weight)</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;      hname = <span class="stringliteral">&#39;delPOverP1&#39;</span>+pfix</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>[hname].Fill(pMC, dPP, weight)</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;      </div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;      if( ndf&lt;RecoSettings.trackMinNofHits ): <span class="keywordflow">continue</span></div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;      hname = <span class="stringliteral">&#39;delPOverP2&#39;</span>+pfix</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>[hname].Fill(pMC, dPP, weight)</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  </div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;      if( <span class="keywordflow">not</span> tid <span class="keywordflow">in</span> self.MCTracks.getHNLdecayTrIDs() ): <span class="keywordflow">continue</span></div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;      hname = <span class="stringliteral">&#39;delPOverP3&#39;</span>+pfix</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>[hname].Fill(pMC, dPP, weight)</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;      iz = 1</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;      <span class="keywordflow">while</span> ( (iz&lt;6) <span class="keywordflow">and</span> (pMC&gt;iz*10) ):</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    iz = iz+1</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;      <span class="keywordflow">if</span> (iz&lt;6):</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    hname = <span class="stringliteral">&#39;delPOverP3_&#39;</span>+str(iz)+pfix</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>[hname].Fill(dPP, weight)</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a7212bbe08b84fe20cd714aca85459cff">  293</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7212bbe08b84fe20cd714aca85459cff">PrintStat</a>(self):</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keywordflow">for</span> stage <span class="keywordflow">in</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>:</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;      <span class="keywordflow">print</span> <span class="stringliteral">&quot;{0:15}{1:10}&quot;</span>.format(stage, self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[stage])</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="comment">################################################################################################</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classLoopAnalyse_1_1LoopAnalyse.html#a1727a002b217908728507d27dae3ed91">  301</a></span>&#160;  <span class="keyword">def </span><a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a1727a002b217908728507d27dae3ed91">Loop</a>(self, stat=-1):</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a861f617adc812a42750c3d922867c441">CleanStat</a>()</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    </div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    if(stat==-1):</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;      nEvents = self.tree.GetEntries()</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;      nEvents = min(self.tree.GetEntries(),stat)</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="comment"># --------------- cut related values ------------------------------------------------------#</span></div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    <span class="comment"># FIXneeded -  should be done depending on RecoSettings.trackMinNofStations!</span></div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    <span class="comment"># self.MCTracks.setAccPlaneZ(3380*u.cm)  # - after 3rd Station</span></div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    self.MCTracks.setAccPlaneZ(2500*u.cm)  <span class="comment">#- before 1st Station</span></div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    </div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    </div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    </div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    <span class="comment"># -----------------------------------------------------------------------------------------#</span></div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="comment"># -----------------------------------------------------------------------------------------#</span></div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordflow">for</span> n <span class="keywordflow">in</span> range(nEvents):</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;      </div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;      rc = self.tree.GetEntry(n)</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;total&#39;</span>] +=1</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;            </div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;      <span class="comment"># ------------------- MCTracks -----------------------------------------------------------#</span></div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;      nMCPrimTracks = self.MCTracks.readEvent()</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;      if( self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">debug</a>&gt;0) : </div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;\n\nevent &quot;</span>, n, <span class="stringliteral">&quot;====================================================&quot;</span></div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;    self.MCTracks.PrintHNL()</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;      </div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;      <span class="comment">#=&gt;</span></div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;      if( nMCPrimTracks!=2 ) : <span class="keywordflow">continue</span></div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;HNLnTr&#39;</span>]+=1</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;      </div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;      <span class="comment">#=&gt;</span></div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;      <span class="comment"># FIXneeded - should be setting from ShipGeo here!  </span></div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;      if( (self.MCTracks.getHNLdecayVertex().Z()&lt;-1900*u.cm) \</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    <span class="keywordflow">or</span> (self.MCTracks.getHNLdecayVertex().Z()&gt;RecoSettings.VertexMaxZcut)  ) : <span class="keywordflow">continue</span></div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;HNLzAcc&#39;</span>]+=1</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;      </div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;      <span class="comment">#=&gt;</span></div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;      if( (<span class="keywordflow">not</span> self.MCTracks.checkEllipticAcc()) ) : <span class="keywordflow">continue</span> </div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;HNLeAcc&#39;</span>] +=1</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;      if( self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">debug</a>&gt;1 ): <span class="keywordflow">print</span> <span class="stringliteral">&quot;MC event accepted&quot;</span></div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;            </div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;            </div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;      weight = self.MCTracks.getEventWeight()</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;      <span class="comment">#weight = 1</span></div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;      <span class="comment"># ------------------- FitTracks -----------------------------------------------------------#</span></div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;      nFitTracks = self.FitTracks.readEvent()</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;      if(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">plotMomentum</a>):self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4809a8cb0b5434294a7db2ceb260cb0d">doPlotMomentum</a>(weight, old=<span class="keyword">True</span>)</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;      if(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">debug</a>&gt;0) : self.FitTracks.Print()</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;      </div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;      printMCVert = <span class="keyword">False</span></div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;      <span class="keywordflow">if</span> (nFitTracks==2):</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsO&#39;</span>]+=1 </div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    v=self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad906a16e512c8a1e577759be22f428e8">fitMCvertexCorellations</a>(weight, old=<span class="keyword">True</span>, cut=<span class="keyword">False</span>, detailed=self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">plotVertexCh</a>)</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    printMCVert = <span class="keyword">True</span></div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;\n\nOld vertex &quot;</span>, v.X(), v.Y(), v.Z()</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    </div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    ndfok = <span class="keyword">True</span></div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keywordflow">for</span> tid <span class="keywordflow">in</span> self.FitTracks.getTrIDs() :</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;      ndfok = ( ndfok <span class="keywordflow">and</span> (self.FitTracks.getNdf(tid)&gt;RecoSettings.trackMinNofHits) )</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;      <span class="keywordflow">if</span> ( <span class="keywordflow">not</span> ndfok ) : <span class="keywordflow">break</span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordflow">if</span> ndfok : <span class="comment"># FIXneeded - not optimal to call it once more :(</span></div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsNdfO&#39;</span>]+=1</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;      v=self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad906a16e512c8a1e577759be22f428e8">fitMCvertexCorellations</a>(weight, old=<span class="keyword">True</span>, cut=<span class="keyword">True</span>, detailed=<span class="keyword">False</span>)</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;      <span class="keywordflow">print</span> <span class="stringliteral">&quot;the old vertex passes ndf cut!&quot;</span></div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;      <span class="comment"># -------------------- StrawHits --------------------------------------------------------------#</span></div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;      <span class="keywordflow">if</span> ( self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a173bc60a9d9169dd48deff9d37e20bc3">compareFits</a> <span class="keywordflow">or</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">plotTracking</a> ) :</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    self.StrHits.readEvent()</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    </div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    </div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;      <span class="comment"># -------------------- ReFit --------------------------------------------------------------#</span></div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;      nNewFitTracks = 0</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;      <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a173bc60a9d9169dd48deff9d37e20bc3">compareFits</a> :     </div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    nNewFitTracks = self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ac21ece64d3d080ef531539d0aafeb094">doCompareFits</a>(oldStyle=<span class="keyword">True</span>, ellCut=<span class="keyword">False</span>, weight=weight)</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    if(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">plotMomentum</a>):self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4809a8cb0b5434294a7db2ceb260cb0d">doPlotMomentum</a>(weight, old=<span class="keyword">False</span>)</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    </div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;      <span class="keywordflow">if</span> (nNewFitTracks==2): </div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsN&#39;</span>]+=1 </div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    v=self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad906a16e512c8a1e577759be22f428e8">fitMCvertexCorellations</a>(weight, old=<span class="keyword">False</span>)</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;New vertex &quot;</span>, v.X(), v.Y(), v.Z()</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    printMCVert = <span class="keyword">True</span></div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    ndfok = <span class="keyword">True</span></div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordflow">for</span> tid <span class="keywordflow">in</span> self.StrHits.getReFitTrIDs() :</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;      ndfok = ( ndfok <span class="keywordflow">and</span> (self.StrHits.getReFitNdf(tid)&gt;RecoSettings.trackMinNofHits) )</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;      <span class="keywordflow">if</span> ( <span class="keywordflow">not</span> ndfok ) : <span class="keywordflow">break</span></div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="keywordflow">if</span> ndfok : <span class="comment"># FIXneeded - not optimal to call it once more :(</span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;      self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">stat</a>[<span class="stringliteral">&#39;twoFitsNdfN&#39;</span>]+=1</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;      v=self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ad906a16e512c8a1e577759be22f428e8">fitMCvertexCorellations</a>(weight, old=<span class="keyword">False</span>, cut=<span class="keyword">True</span>, detailed=<span class="keyword">False</span>)</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;      <span class="keywordflow">print</span> <span class="stringliteral">&quot;the new vertex passes ndf cut!&quot;</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;      </div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;      <span class="keywordflow">if</span> printMCVert : self.MCTracks.PrintHNL()</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;      if(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">plotTracking</a>) : self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#afeb1f011ac9fdf67753be4f54aa0f7f3">hitMCtrackCorellations</a>(weight)</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;      </div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;      </div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    </div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    </div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    <span class="comment"># end event loop</span></div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="comment">#=======================================</span></div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keywordflow">print</span> <span class="stringliteral">&quot;here -&gt; &quot;</span>, self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ab8dea77e8a2b7227bd033b213ecd6cd1">plotField</a></div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#ab8dea77e8a2b7227bd033b213ecd6cd1">plotField</a>    : <a class="code" href="namespaceBookHistos.html#abfeff9caaeeb86510af0f46d5973580d">BookHistos.plotMFieldHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a8bd87d31b00312c73a620b5a3def27dc">hmagnet</a>)</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">plotTracking</a> : <a class="code" href="namespaceBookHistos.html#ade7c618be66ac74c707485c433073698">BookHistos.plotMCTrackHitCorrelation</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">htrck</a>)</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">plotVertex</a>   : <a class="code" href="namespaceBookHistos.html#a7ed8c33456f1c60dbfb9540e3e183305">BookHistos.plotVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>)</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">plotVertexCh</a> :  </div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;      <a class="code" href="namespaceBookHistos.html#a7ed8c33456f1c60dbfb9540e3e183305">BookHistos.plotVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>,<span class="stringliteral">&quot;mUp&quot;</span>)</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;      <a class="code" href="namespaceBookHistos.html#a7ed8c33456f1c60dbfb9540e3e183305">BookHistos.plotVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>,<span class="stringliteral">&quot;mDn&quot;</span>)</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">plotMomentum</a> : <a class="code" href="namespaceBookHistos.html#a8d3d566c0102e1dde2f04e827c8317da">BookHistos.plotMomentumHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>)</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a173bc60a9d9169dd48deff9d37e20bc3">compareFits</a>  :</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;      <a class="code" href="namespaceBookHistos.html#acf148269f28b03c0ef13f29b23e91a67">BookHistos.plotCompareFitHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">hcmfits</a>)</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;      <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">plotVertex</a>   : <a class="code" href="namespaceBookHistos.html#a7ed8c33456f1c60dbfb9540e3e183305">BookHistos.plotVertexHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">hvtx</a>,<span class="stringliteral">&#39;NEW&#39;</span>)</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;      <span class="keywordflow">if</span> self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">plotMomentum</a> : <a class="code" href="namespaceBookHistos.html#a8d3d566c0102e1dde2f04e827c8317da">BookHistos.plotMomentumHistos</a>(self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">hmom</a>, <span class="stringliteral">&#39;NEW&#39;</span>)</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;      </div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <span class="comment">#=======================================</span></div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    self.<a class="code" href="classLoopAnalyse_1_1LoopAnalyse.html#a7212bbe08b84fe20cd714aca85459cff">PrintStat</a>()</div>
<div class="ttc" id="namespaceBookHistos_html_acf148269f28b03c0ef13f29b23e91a67"><div class="ttname"><a href="namespaceBookHistos.html#acf148269f28b03c0ef13f29b23e91a67">BookHistos.plotCompareFitHistos</a></div><div class="ttdeci">def plotCompareFitHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00171">BookHistos.py:171</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a4e6b4486562adb16f62181b731275e16"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a4e6b4486562adb16f62181b731275e16">LoopAnalyse.LoopAnalyse.plotMomentum</a></div><div class="ttdeci">plotMomentum</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00046">LoopAnalyse.py:46</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_ac21ece64d3d080ef531539d0aafeb094"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#ac21ece64d3d080ef531539d0aafeb094">LoopAnalyse.LoopAnalyse.doCompareFits</a></div><div class="ttdeci">def doCompareFits</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00203">LoopAnalyse.py:203</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a0ff728c41d7e26791ec55b2f99a4d985"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a0ff728c41d7e26791ec55b2f99a4d985">LoopAnalyse.LoopAnalyse.plotVertex</a></div><div class="ttdeci">plotVertex</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00044">LoopAnalyse.py:44</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a6d521258d9a779861dff09765dfbc6f4"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a6d521258d9a779861dff09765dfbc6f4">LoopAnalyse.LoopAnalyse.MCTracks</a></div><div class="ttdeci">MCTracks</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00073">LoopAnalyse.py:73</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a7ac3d79ea3b4aff190a1695649f4bcec"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a7ac3d79ea3b4aff190a1695649f4bcec">LoopAnalyse.LoopAnalyse.htrck</a></div><div class="ttdeci">htrck</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00038">LoopAnalyse.py:38</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_a8d3d566c0102e1dde2f04e827c8317da"><div class="ttname"><a href="namespaceBookHistos.html#a8d3d566c0102e1dde2f04e827c8317da">BookHistos.plotMomentumHistos</a></div><div class="ttdeci">def plotMomentumHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00087">BookHistos.py:87</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_ab8dea77e8a2b7227bd033b213ecd6cd1"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#ab8dea77e8a2b7227bd033b213ecd6cd1">LoopAnalyse.LoopAnalyse.plotField</a></div><div class="ttdeci">plotField</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00042">LoopAnalyse.py:42</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_ad2db1e1ed4283f297ca3c941f6bc08f8"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#ad2db1e1ed4283f297ca3c941f6bc08f8">LoopAnalyse.LoopAnalyse.tree</a></div><div class="ttdeci">tree</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00027">LoopAnalyse.py:27</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_ad097c1caf8e5eddb5ae645b4203d311f"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#ad097c1caf8e5eddb5ae645b4203d311f">LoopAnalyse.LoopAnalyse.writeHistos</a></div><div class="ttdeci">def writeHistos</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00109">LoopAnalyse.py:109</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a2c0113170b17339683a405a9e7d84c65"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a2c0113170b17339683a405a9e7d84c65">LoopAnalyse.LoopAnalyse.createGeom</a></div><div class="ttdeci">def createGeom</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00079">LoopAnalyse.py:79</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a1727a002b217908728507d27dae3ed91"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a1727a002b217908728507d27dae3ed91">LoopAnalyse.LoopAnalyse.Loop</a></div><div class="ttdeci">def Loop</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00301">LoopAnalyse.py:301</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a2de98d944e28219a30b0053ece894f66"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a2de98d944e28219a30b0053ece894f66">LoopAnalyse.LoopAnalyse.StrHits</a></div><div class="ttdeci">StrHits</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00074">LoopAnalyse.py:74</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a02547db5b637d0207b2e658bc8006d8c"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a02547db5b637d0207b2e658bc8006d8c">LoopAnalyse.LoopAnalyse.hcmfits</a></div><div class="ttdeci">hcmfits</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00041">LoopAnalyse.py:41</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a861f617adc812a42750c3d922867c441"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a861f617adc812a42750c3d922867c441">LoopAnalyse.LoopAnalyse.CleanStat</a></div><div class="ttdeci">def CleanStat</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00099">LoopAnalyse.py:99</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_ade7c618be66ac74c707485c433073698"><div class="ttname"><a href="namespaceBookHistos.html#ade7c618be66ac74c707485c433073698">BookHistos.plotMCTrackHitCorrelation</a></div><div class="ttdeci">def plotMCTrackHitCorrelation</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00229">BookHistos.py:229</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_a7ed8c33456f1c60dbfb9540e3e183305"><div class="ttname"><a href="namespaceBookHistos.html#a7ed8c33456f1c60dbfb9540e3e183305">BookHistos.plotVertexHistos</a></div><div class="ttdeci">def plotVertexHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00312">BookHistos.py:312</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_aaa64b54ddb61bceaae19b4982963f899"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#aaa64b54ddb61bceaae19b4982963f899">LoopAnalyse.LoopAnalyse.hmom</a></div><div class="ttdeci">hmom</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00040">LoopAnalyse.py:40</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_aa8ada225d743d939a677bd4de5328dfd"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#aa8ada225d743d939a677bd4de5328dfd">LoopAnalyse.LoopAnalyse.plotTracking</a></div><div class="ttdeci">plotTracking</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00043">LoopAnalyse.py:43</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a7212bbe08b84fe20cd714aca85459cff"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a7212bbe08b84fe20cd714aca85459cff">LoopAnalyse.LoopAnalyse.PrintStat</a></div><div class="ttdeci">def PrintStat</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00293">LoopAnalyse.py:293</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a173bc60a9d9169dd48deff9d37e20bc3"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a173bc60a9d9169dd48deff9d37e20bc3">LoopAnalyse.LoopAnalyse.compareFits</a></div><div class="ttdeci">compareFits</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00047">LoopAnalyse.py:47</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a2923fe0517669aa57171ca8b8c5ddcd5"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a2923fe0517669aa57171ca8b8c5ddcd5">LoopAnalyse.LoopAnalyse.__init__</a></div><div class="ttdeci">def __init__</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00026">LoopAnalyse.py:26</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_af3d476045020eca1daa58a8aa9e74213"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#af3d476045020eca1daa58a8aa9e74213">LoopAnalyse.LoopAnalyse.ShipGeo</a></div><div class="ttdeci">ShipGeo</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00031">LoopAnalyse.py:31</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a8bd87d31b00312c73a620b5a3def27dc"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a8bd87d31b00312c73a620b5a3def27dc">LoopAnalyse.LoopAnalyse.hmagnet</a></div><div class="ttdeci">hmagnet</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00037">LoopAnalyse.py:37</a></div></div>
<div class="ttc" id="classStrawHits_1_1StrawHits_html"><div class="ttname"><a href="classStrawHits_1_1StrawHits.html">StrawHits.StrawHits</a></div><div class="ttdef"><b>Definition:</b> <a href="StrawHits_8py_source.html#l00012">StrawHits.py:12</a></div></div>
<div class="ttc" id="classFitTrackInfo_1_1FitTrackInfo_html"><div class="ttname"><a href="classFitTrackInfo_1_1FitTrackInfo.html">FitTrackInfo.FitTrackInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="FitTrackInfo_8py_source.html#l00005">FitTrackInfo.py:5</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a7ee25894d17cc7d2fa1b584a7ee09b7f"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a7ee25894d17cc7d2fa1b584a7ee09b7f">LoopAnalyse.LoopAnalyse.run</a></div><div class="ttdeci">run</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00032">LoopAnalyse.py:32</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_ad906a16e512c8a1e577759be22f428e8"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#ad906a16e512c8a1e577759be22f428e8">LoopAnalyse.LoopAnalyse.fitMCvertexCorellations</a></div><div class="ttdeci">def fitMCvertexCorellations</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00146">LoopAnalyse.py:146</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a149d2386eb14d4ecea5d563d6603c496"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a149d2386eb14d4ecea5d563d6603c496">LoopAnalyse.LoopAnalyse.debug</a></div><div class="ttdeci">debug</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00028">LoopAnalyse.py:28</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a70bee34adc4a239345a149e59eba59a5"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a70bee34adc4a239345a149e59eba59a5">LoopAnalyse.LoopAnalyse.FitTracks</a></div><div class="ttdeci">FitTracks</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00075">LoopAnalyse.py:75</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a29cb4f1688c88b001163bd37f743b792"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a29cb4f1688c88b001163bd37f743b792">LoopAnalyse.LoopAnalyse.hvtx</a></div><div class="ttdeci">hvtx</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00039">LoopAnalyse.py:39</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_ac19a227a68848ab0808f541b3162a10b"><div class="ttname"><a href="namespaceBookHistos.html#ac19a227a68848ab0808f541b3162a10b">BookHistos.bookVertexHistos</a></div><div class="ttdeci">def bookVertexHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00280">BookHistos.py:280</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_abfeff9caaeeb86510af0f46d5973580d"><div class="ttname"><a href="namespaceBookHistos.html#abfeff9caaeeb86510af0f46d5973580d">BookHistos.plotMFieldHistos</a></div><div class="ttdeci">def plotMFieldHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00038">BookHistos.py:38</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_adaa448922efd6b2c471dc5ae8b644c47"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#adaa448922efd6b2c471dc5ae8b644c47">LoopAnalyse.LoopAnalyse.plotVertexCh</a></div><div class="ttdeci">plotVertexCh</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00045">LoopAnalyse.py:45</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a5af1e9bc3faad1248deaae931d6343db"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a5af1e9bc3faad1248deaae931d6343db">LoopAnalyse.LoopAnalyse.stat</a></div><div class="ttdeci">stat</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00035">LoopAnalyse.py:35</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a4809a8cb0b5434294a7db2ceb260cb0d"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a4809a8cb0b5434294a7db2ceb260cb0d">LoopAnalyse.LoopAnalyse.doPlotMomentum</a></div><div class="ttdeci">def doPlotMomentum</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00238">LoopAnalyse.py:238</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_a67abaf3e0135019e06536753b621063d"><div class="ttname"><a href="namespaceBookHistos.html#a67abaf3e0135019e06536753b621063d">BookHistos.bookMFieldHistos</a></div><div class="ttdeci">def bookMFieldHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00021">BookHistos.py:21</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_aff89ad17f02e6488b04ceb83a2e10dd7"><div class="ttname"><a href="namespaceBookHistos.html#aff89ad17f02e6488b04ceb83a2e10dd7">BookHistos.bookTrackingHistos</a></div><div class="ttdeci">def bookTrackingHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00206">BookHistos.py:206</a></div></div>
<div class="ttc" id="classMCTrackInfo_1_1MCTrackInfo_html"><div class="ttname"><a href="classMCTrackInfo_1_1MCTrackInfo.html">MCTrackInfo.MCTrackInfo</a></div><div class="ttdoc">For a single event stores HNL, its decay products and several other tracks (if requested) from ShipMC...</div><div class="ttdef"><b>Definition:</b> <a href="MCTrackInfo_8py_source.html#l00010">MCTrackInfo.py:10</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_a112502351e8db40f2bad296fa6d3c5d5"><div class="ttname"><a href="namespaceBookHistos.html#a112502351e8db40f2bad296fa6d3c5d5">BookHistos.bookCompareFitHistos</a></div><div class="ttdeci">def bookCompareFitHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00149">BookHistos.py:149</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_afeb1f011ac9fdf67753be4f54aa0f7f3"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#afeb1f011ac9fdf67753be4f54aa0f7f3">LoopAnalyse.LoopAnalyse.hitMCtrackCorellations</a></div><div class="ttdeci">def hitMCtrackCorellations</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00115">LoopAnalyse.py:115</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html">LoopAnalyse.LoopAnalyse</a></div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00019">LoopAnalyse.py:19</a></div></div>
<div class="ttc" id="classLoopAnalyse_1_1LoopAnalyse_html_a1b4b6c5e1599ccc0ee33e6570feec69b"><div class="ttname"><a href="classLoopAnalyse_1_1LoopAnalyse.html#a1b4b6c5e1599ccc0ee33e6570feec69b">LoopAnalyse.LoopAnalyse.modules</a></div><div class="ttdeci">modules</div><div class="ttdef"><b>Definition:</b> <a href="LoopAnalyse_8py_source.html#l00030">LoopAnalyse.py:30</a></div></div>
<div class="ttc" id="namespaceBookHistos_html_a3d68f66c797a179b549fbaa057bd5708"><div class="ttname"><a href="namespaceBookHistos.html#a3d68f66c797a179b549fbaa057bd5708">BookHistos.bookMomentumHistos</a></div><div class="ttdeci">def bookMomentumHistos</div><div class="ttdef"><b>Definition:</b> <a href="BookHistos_8py_source.html#l00067">BookHistos.py:67</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>