/[PAMELA software]/PamCut/doc/Doxygen/html/CaloAxis2_8h_source.html
ViewVC logotype

Diff of /PamCut/doc/Doxygen/html/CaloAxis2_8h_source.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by pam-fi, Wed May 27 13:30:07 2009 UTC revision 1.3 by pam-fi, Fri Sep 25 15:41:26 2009 UTC
# Line 19  Line 19 
19        <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>        <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
20      </ul>      </ul>
21    </div>    </div>
22  <h1>CaloAxis2.h</h1><a href="CaloAxis2_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef CALOAXIS2_H_</span>  <h1>CaloAxis2.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef CALOAXIS2_H_</span>
23  <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define CALOAXIS2_H_</span>  <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define CALOAXIS2_H_</span>
24  <a name="l00003"></a>00003 <span class="preprocessor"></span>  <a name="l00003"></a>00003 <span class="preprocessor"></span>
25  <a name="l00004"></a>00004 <span class="preprocessor">#if !defined(__CINT__) || defined(__MAKECINT__)</span>  <a name="l00004"></a>00004 <span class="preprocessor">#if !defined(__CINT__) || defined(__MAKECINT__)</span>
# Line 48  Line 48 
48  <a name="l00027"></a>00027 <span class="comment">//</span>  <a name="l00027"></a>00027 <span class="comment">//</span>
49  <a name="l00028"></a>00028 <span class="comment">//</span>  <a name="l00028"></a>00028 <span class="comment">//</span>
50  <a name="l00029"></a>00029 <span class="comment">//===============================================================================</span>  <a name="l00029"></a>00029 <span class="comment">//===============================================================================</span>
51  <a name="l00030"></a><a class="code" href="classCaloEvent.html">00030</a> <span class="keyword">class </span><a class="code" href="classCaloEvent.html">CaloEvent</a>{  <a name="l00030"></a>00030 <span class="keyword">class </span>CaloEvent{
52  <a name="l00031"></a>00031  <a name="l00031"></a>00031
53  <a name="l00032"></a>00032 <span class="keyword">public</span>:  <a name="l00032"></a>00032 <span class="keyword">public</span>:
54  <a name="l00033"></a>00033 <span class="comment">//  calo event</span>  <a name="l00033"></a>00033 <span class="comment">//  calo event</span>
55  <a name="l00034"></a>00034 <span class="comment">//  ------------------------------</span>  <a name="l00034"></a>00034 <span class="comment">//  ------------------------------</span>
56  <a name="l00035"></a>00035 <span class="comment">//  hit strips</span>  <a name="l00035"></a>00035 <span class="comment">//  hit strips</span>
57  <a name="l00036"></a>00036 <span class="comment">//  ------------------------------</span>  <a name="l00036"></a>00036 <span class="comment">//  ------------------------------</span>
58  <a name="l00037"></a><a class="code" href="classCaloEvent.html#593e99c95482f5e63e43eaa8c843bba2">00037</a>     vector&lt;int&gt; <a class="code" href="classCaloEvent.html#593e99c95482f5e63e43eaa8c843bba2">ids</a>;  <span class="comment">//strip 0-95</span>  <a name="l00037"></a>00037     vector&lt;int&gt; ids;  <span class="comment">//strip 0-95</span>
59  <a name="l00038"></a><a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">00038</a>     vector&lt;int&gt; <a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>;  <span class="comment">//plane 0-21</span>  <a name="l00038"></a>00038     vector&lt;int&gt; idp;  <span class="comment">//plane 0-21</span>
60  <a name="l00039"></a><a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">00039</a>     vector&lt;float&gt; <a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>; <span class="comment">// signal</span>  <a name="l00039"></a>00039     vector&lt;float&gt; q; <span class="comment">// signal</span>
61  <a name="l00040"></a><a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">00040</a>     vector&lt;float&gt; <a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>;  <a name="l00040"></a>00040     vector&lt;float&gt; zcoord;
62  <a name="l00041"></a><a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">00041</a>     vector&lt;float&gt; <a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>;  <a name="l00041"></a>00041     vector&lt;float&gt; xycoord;
63  <a name="l00042"></a>00042  <a name="l00042"></a>00042
64  <a name="l00043"></a>00043  <a name="l00043"></a>00043
65  <a name="l00044"></a>00044 <span class="comment">//  ------------------------------</span>  <a name="l00044"></a>00044 <span class="comment">//  ------------------------------</span>
66  <a name="l00045"></a>00045 <span class="comment">//  methods</span>  <a name="l00045"></a>00045 <span class="comment">//  methods</span>
67  <a name="l00046"></a>00046 <span class="comment">//  ------------------------------</span>  <a name="l00046"></a>00046 <span class="comment">//  ------------------------------</span>
68  <a name="l00047"></a><a class="code" href="classCaloEvent.html#fd2bc3739bbbf688c9323d8a96e17c5f">00047</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloEvent.html#fd2bc3739bbbf688c9323d8a96e17c5f">Add</a>(<span class="keywordtype">int</span> iis, <span class="keywordtype">int</span> iip, <span class="keywordtype">float</span> fq, <span class="keywordtype">float</span> fz, <span class="keywordtype">float</span> fxy){  <a name="l00047"></a>00047     <span class="keywordtype">void</span> Add(<span class="keywordtype">int</span> iis, <span class="keywordtype">int</span> iip, <span class="keywordtype">float</span> fq, <span class="keywordtype">float</span> fz, <span class="keywordtype">float</span> fxy){
69  <a name="l00048"></a>00048         <a class="code" href="classCaloEvent.html#593e99c95482f5e63e43eaa8c843bba2">ids</a>.push_back(iis);  <a name="l00048"></a>00048         ids.push_back(iis);
70  <a name="l00049"></a>00049         <a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>.push_back(iip);  <a name="l00049"></a>00049         idp.push_back(iip);
71  <a name="l00050"></a>00050         <a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>.push_back(fq);  <a name="l00050"></a>00050         q.push_back(fq);
72  <a name="l00051"></a>00051         <a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>.push_back(fz);  <a name="l00051"></a>00051         zcoord.push_back(fz);
73  <a name="l00052"></a>00052         <a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>.push_back(fxy);  <a name="l00052"></a>00052         xycoord.push_back(fxy);
74  <a name="l00053"></a>00053     };  <a name="l00053"></a>00053     };
75  <a name="l00054"></a>00054  <a name="l00054"></a>00054
76  <a name="l00055"></a>00055  <a name="l00055"></a>00055
77  <a name="l00056"></a>00056  <a name="l00056"></a>00056
78  <a name="l00057"></a><a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">00057</a>     <span class="keywordtype">int</span>  <a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(){<span class="keywordflow">return</span> (<span class="keywordtype">int</span>)(<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>.size());};  <a name="l00057"></a>00057     <span class="keywordtype">int</span>  GetN(){<span class="keywordflow">return</span> (<span class="keywordtype">int</span>)(q.size());};
79  <a name="l00058"></a>00058  <a name="l00058"></a>00058
80  <a name="l00059"></a><a class="code" href="classCaloEvent.html#6cb8e9a295bf452dbca12f3089045706">00059</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloEvent.html#6cb8e9a295bf452dbca12f3089045706">Reset</a>(){  <a name="l00059"></a>00059     <span class="keywordtype">void</span> Reset(){
81  <a name="l00060"></a>00060         <a class="code" href="classCaloEvent.html#593e99c95482f5e63e43eaa8c843bba2">ids</a>.clear();  <a name="l00060"></a>00060         ids.clear();
82  <a name="l00061"></a>00061         <a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>.clear();  <a name="l00061"></a>00061         idp.clear();
83  <a name="l00062"></a>00062         <a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>.clear();  <a name="l00062"></a>00062         q.clear();
84  <a name="l00063"></a>00063         <a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>.clear();  <a name="l00063"></a>00063         zcoord.clear();
85  <a name="l00064"></a>00064         <a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>.clear();  <a name="l00064"></a>00064         xycoord.clear();
86  <a name="l00065"></a>00065     };  <a name="l00065"></a>00065     };
87  <a name="l00066"></a>00066  <a name="l00066"></a>00066
88  <a name="l00067"></a><a class="code" href="classCaloEvent.html#aa540318b81bbed181ab8cefa5df87ac">00067</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloEvent.html#aa540318b81bbed181ab8cefa5df87ac">Delete</a>(){ <a class="code" href="classCaloEvent.html#6cb8e9a295bf452dbca12f3089045706">Reset</a>(); };  <a name="l00067"></a>00067     <span class="keywordtype">void</span> Delete(){ Reset(); };
89  <a name="l00068"></a>00068  <a name="l00068"></a>00068
90  <a name="l00069"></a><a class="code" href="classCaloEvent.html#d288c6c79268b65eae838c461e11b8eb">00069</a>     <a class="code" href="classCaloEvent.html#d288c6c79268b65eae838c461e11b8eb">~CaloEvent</a>(){ <a class="code" href="classCaloEvent.html#aa540318b81bbed181ab8cefa5df87ac">Delete</a>(); };  <a name="l00069"></a>00069     ~CaloEvent(){ Delete(); };
91  <a name="l00070"></a>00070  <a name="l00070"></a>00070
92  <a name="l00071"></a><a class="code" href="classCaloEvent.html#67cd3b4a14bcdb5d15b40a177ca37fe3">00071</a>     <a class="code" href="classCaloEvent.html#67cd3b4a14bcdb5d15b40a177ca37fe3">CaloEvent</a>(){ };  <a name="l00071"></a>00071     CaloEvent(){ };
93  <a name="l00072"></a>00072  <a name="l00072"></a>00072
94  <a name="l00073"></a><a class="code" href="classCaloEvent.html#3eadf14b2b405c65a695fac497ec3c22">00073</a>     <a class="code" href="classCaloEvent.html#3eadf14b2b405c65a695fac497ec3c22">CaloEvent</a>( CaloLevel1* calo, <span class="keywordtype">int</span> view, Bool_t usemechanicalalignement){ <a class="code" href="classCaloEvent.html#538af1924be400124d003802302e71dd">Set</a>(calo,view,usemechanicalalignement); };  <a name="l00073"></a>00073     CaloEvent( CaloLevel1* calo, <span class="keywordtype">int</span> view, Bool_t usemechanicalalignement){ Set(calo,view,usemechanicalalignement); };
95  <a name="l00074"></a>00074  <a name="l00074"></a>00074
96  <a name="l00075"></a><a class="code" href="classCaloEvent.html#d7beea6828722ab1ecff5e25fa33210a">00075</a>     <a class="code" href="classCaloEvent.html#d7beea6828722ab1ecff5e25fa33210a">CaloEvent</a>( CaloLevel1* calo, <span class="keywordtype">int</span> view){ <a class="code" href="classCaloEvent.html#538af1924be400124d003802302e71dd">Set</a>(calo,view); };  <a name="l00075"></a>00075     CaloEvent( CaloLevel1* calo, <span class="keywordtype">int</span> view){ Set(calo,view); };
97  <a name="l00076"></a>00076  <a name="l00076"></a>00076
98  <a name="l00077"></a><a class="code" href="classCaloEvent.html#538af1924be400124d003802302e71dd">00077</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloEvent.html#538af1924be400124d003802302e71dd">Set</a>(CaloLevel1* calo, <span class="keywordtype">int</span> view, Bool_t usemechanicalalignement){  <a name="l00077"></a>00077     <span class="keywordtype">void</span> Set(CaloLevel1* calo, <span class="keywordtype">int</span> view, Bool_t usemechanicalalignement){
99  <a name="l00078"></a>00078  <a name="l00078"></a>00078
100  <a name="l00079"></a>00079         <a class="code" href="classCaloEvent.html#6cb8e9a295bf452dbca12f3089045706">Reset</a>();  <a name="l00079"></a>00079         Reset();
101  <a name="l00080"></a>00080 <span class="comment">//      cout &lt;&lt; " CaloEvent::Set()"&lt;&lt;endl;</span>  <a name="l00080"></a>00080 <span class="comment">//      cout &lt;&lt; " CaloEvent::Set()"&lt;&lt;endl;</span>
102  <a name="l00081"></a>00081         CaloStrip cstrip;  <a name="l00081"></a>00081         CaloStrip cstrip;
103  <a name="l00082"></a>00082         cstrip = CaloStrip(calo,usemechanicalalignement);  <a name="l00082"></a>00082         cstrip = CaloStrip(calo,usemechanicalalignement);
# Line 114  Line 114 
114  <a name="l00093"></a>00093                 <span class="keywordflow">else</span>        fxy = cstrip.GetY();  <a name="l00093"></a>00093                 <span class="keywordflow">else</span>        fxy = cstrip.GetY();
115  <a name="l00094"></a>00094                 <span class="keywordtype">float</span> fz = cstrip.GetZ();  <a name="l00094"></a>00094                 <span class="keywordtype">float</span> fz = cstrip.GetZ();
116  <a name="l00095"></a>00095                 <span class="keywordtype">float</span> fq = cstrip.GetE();  <a name="l00095"></a>00095                 <span class="keywordtype">float</span> fq = cstrip.GetE();
117  <a name="l00096"></a>00096                 <span class="keywordflow">if</span>(fq&gt;0)<a class="code" href="classCaloEvent.html#fd2bc3739bbbf688c9323d8a96e17c5f">Add</a>(is,ip,fq,fz,fxy);  <a name="l00096"></a>00096                 <span class="keywordflow">if</span>(fq&gt;0)Add(is,ip,fq,fz,fxy);
118  <a name="l00097"></a>00097             }  <a name="l00097"></a>00097             }
119  <a name="l00098"></a>00098         }  <a name="l00098"></a>00098         }
120  <a name="l00099"></a>00099  <a name="l00099"></a>00099
121  <a name="l00100"></a>00100     };  <a name="l00100"></a>00100     };
122  <a name="l00101"></a><a class="code" href="classCaloEvent.html#eb4e3acbb34abd7b51794c6aee4852e5">00101</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloEvent.html#eb4e3acbb34abd7b51794c6aee4852e5">Set</a>(CaloLevel1* calo, <span class="keywordtype">int</span> view){ <a class="code" href="classCaloEvent.html#eb4e3acbb34abd7b51794c6aee4852e5">Set</a>(calo,view,0); };  <a name="l00101"></a>00101     <span class="keywordtype">void</span> Set(CaloLevel1* calo, <span class="keywordtype">int</span> view){ Set(calo,view,0); };
123  <a name="l00102"></a>00102  <a name="l00102"></a>00102
124  <a name="l00103"></a>00103  <a name="l00103"></a>00103
125  <a name="l00104"></a>00104 };  <a name="l00104"></a>00104 };
# Line 129  Line 129 
129  <a name="l00108"></a>00108 <span class="comment">//</span>  <a name="l00108"></a>00108 <span class="comment">//</span>
130  <a name="l00109"></a>00109 <span class="comment">//</span>  <a name="l00109"></a>00109 <span class="comment">//</span>
131  <a name="l00110"></a>00110 <span class="comment">//===============================================================================</span>  <a name="l00110"></a>00110 <span class="comment">//===============================================================================</span>
132  <a name="l00111"></a><a class="code" href="classCaloAxis.html">00111</a> <span class="keyword">class </span><a class="code" href="classCaloAxis.html">CaloAxis</a> {  <a name="l00111"></a>00111 <span class="keyword">class </span>CaloAxis {
133  <a name="l00112"></a>00112  <a name="l00112"></a>00112
134  <a name="l00113"></a>00113 <span class="keyword">public</span>:  <a name="l00113"></a>00113 <span class="keyword">public</span>:
135  <a name="l00114"></a>00114  <a name="l00114"></a>00114
136  <a name="l00115"></a><a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">00115</a>     <a class="code" href="classCaloEvent.html">CaloEvent</a> *<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>;  <a name="l00115"></a>00115     CaloEvent *cevent;
137  <a name="l00116"></a>00116  <a name="l00116"></a>00116
138  <a name="l00117"></a>00117 <span class="comment">//  ------------------------------</span>  <a name="l00117"></a>00117 <span class="comment">//  ------------------------------</span>
139  <a name="l00118"></a>00118 <span class="comment">//  selected points along the axis</span>  <a name="l00118"></a>00118 <span class="comment">//  selected points along the axis</span>
140  <a name="l00119"></a>00119 <span class="comment">//  ------------------------------</span>  <a name="l00119"></a>00119 <span class="comment">//  ------------------------------</span>
141  <a name="l00120"></a>00120 <span class="comment">//  fitted points</span>  <a name="l00120"></a>00120 <span class="comment">//  fitted points</span>
142  <a name="l00121"></a><a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">00121</a>     vector&lt;float&gt; <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>;<span class="comment">// independent coordinates (z)</span>  <a name="l00121"></a>00121     vector&lt;float&gt; x;<span class="comment">// independent coordinates (z)</span>
143  <a name="l00122"></a><a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">00122</a>     vector&lt;float&gt; <a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>;<span class="comment">// dependente coordinate (x/y)</span>  <a name="l00122"></a>00122     vector&lt;float&gt; y;<span class="comment">// dependente coordinate (x/y)</span>
144  <a name="l00123"></a><a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">00123</a>     vector&lt;float&gt; <a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>;<span class="comment">// fit weight</span>  <a name="l00123"></a>00123     vector&lt;float&gt; w;<span class="comment">// fit weight</span>
145  <a name="l00124"></a><a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">00124</a>     vector&lt;float&gt; <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>;<span class="comment">// signal</span>  <a name="l00124"></a>00124     vector&lt;float&gt; q;<span class="comment">// signal</span>
146  <a name="l00125"></a>00125  <a name="l00125"></a>00125
147  <a name="l00126"></a>00126 <span class="comment">//  ------------------------------</span>  <a name="l00126"></a>00126 <span class="comment">//  ------------------------------</span>
148  <a name="l00127"></a>00127 <span class="comment">//  axis parameters</span>  <a name="l00127"></a>00127 <span class="comment">//  axis parameters</span>
149  <a name="l00128"></a>00128 <span class="comment">//  ------------------------------</span>  <a name="l00128"></a>00128 <span class="comment">//  ------------------------------</span>
150  <a name="l00129"></a><a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">00129</a>     Float_t <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[2];  <a name="l00129"></a>00129     Float_t par[2];
151  <a name="l00130"></a><a class="code" href="classCaloAxis.html#8ffb46af208ad9a97e6d8feb8d9a088a">00130</a>     Float_t <a class="code" href="classCaloAxis.html#8ffb46af208ad9a97e6d8feb8d9a088a">covpar</a>[2][2];  <a name="l00130"></a>00130     Float_t covpar[2][2];
152  <a name="l00131"></a>00131  <a name="l00131"></a>00131
153  <a name="l00132"></a>00132 <span class="comment">//  ------------------------------</span>  <a name="l00132"></a>00132 <span class="comment">//  ------------------------------</span>
154  <a name="l00133"></a>00133 <span class="comment">//  general variables</span>  <a name="l00133"></a>00133 <span class="comment">//  general variables</span>
155  <a name="l00134"></a>00134 <span class="comment">//  ------------------------------</span>  <a name="l00134"></a>00134 <span class="comment">//  ------------------------------</span>
156  <a name="l00135"></a><a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">00135</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[22];<span class="comment">// baricenter</span>  <a name="l00135"></a>00135     <span class="keywordtype">float</span> cog[22];<span class="comment">// baricenter</span>
157  <a name="l00136"></a><a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">00136</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[22]; <span class="comment">// charge in each plane</span>  <a name="l00136"></a>00136     <span class="keywordtype">float</span> qpl[22]; <span class="comment">// charge in each plane</span>
158  <a name="l00137"></a>00137  <a name="l00137"></a>00137
159  <a name="l00138"></a>00138 <span class="comment">//  ------------------------------</span>  <a name="l00138"></a>00138 <span class="comment">//  ------------------------------</span>
160  <a name="l00139"></a>00139 <span class="comment">//  objects to draw the axis</span>  <a name="l00139"></a>00139 <span class="comment">//  objects to draw the axis</span>
161  <a name="l00140"></a>00140 <span class="comment">//  ------------------------------</span>  <a name="l00140"></a>00140 <span class="comment">//  ------------------------------</span>
162  <a name="l00141"></a><a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">00141</a>     TPolyMarker *<a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a>;  <a name="l00141"></a>00141     TPolyMarker *sel;
163  <a name="l00142"></a><a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">00142</a>     TLine       *<a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a>;  <a name="l00142"></a>00142     TLine       *axis;
164  <a name="l00143"></a>00143  <a name="l00143"></a>00143
165  <a name="l00144"></a>00144  <a name="l00144"></a>00144
166  <a name="l00145"></a>00145 <span class="comment">//  ------------------------------</span>  <a name="l00145"></a>00145 <span class="comment">//  ------------------------------</span>
167  <a name="l00146"></a>00146 <span class="comment">//  methods</span>  <a name="l00146"></a>00146 <span class="comment">//  methods</span>
168  <a name="l00147"></a>00147 <span class="comment">//  ------------------------------</span>  <a name="l00147"></a>00147 <span class="comment">//  ------------------------------</span>
169  <a name="l00148"></a><a class="code" href="classCaloAxis.html#cf42fbb09c6992fb4292da8ec22ef551">00148</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#cf42fbb09c6992fb4292da8ec22ef551">Init</a>(){  <a name="l00148"></a>00148     <span class="keywordtype">void</span> Init(){
170  <a name="l00149"></a>00149         <span class="keywordflow">for</span>(Int_t i=0; i&lt;2;i++){  <a name="l00149"></a>00149         <span class="keywordflow">for</span>(Int_t i=0; i&lt;2;i++){
171  <a name="l00150"></a>00150             <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[i]=0;  <a name="l00150"></a>00150             par[i]=0;
172  <a name="l00151"></a>00151             <span class="keywordflow">for</span>(Int_t j=0; j&lt;2;j++)<a class="code" href="classCaloAxis.html#8ffb46af208ad9a97e6d8feb8d9a088a">covpar</a>[i][j]=0;  <a name="l00151"></a>00151             <span class="keywordflow">for</span>(Int_t j=0; j&lt;2;j++)covpar[i][j]=0;
173  <a name="l00152"></a>00152         };  <a name="l00152"></a>00152         };
174  <a name="l00153"></a>00153         <a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a>  = 0;  <a name="l00153"></a>00153         sel  = 0;
175  <a name="l00154"></a>00154         <a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a> = 0;  <a name="l00154"></a>00154         axis = 0;
176  <a name="l00155"></a>00155         <span class="keywordflow">for</span>(Int_t i=0; i&lt;22; i++){  <a name="l00155"></a>00155         <span class="keywordflow">for</span>(Int_t i=0; i&lt;22; i++){
177  <a name="l00156"></a>00156             <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[i]=0;  <a name="l00156"></a>00156             cog[i]=0;
178  <a name="l00157"></a>00157             <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[i]=0;  <a name="l00157"></a>00157             qpl[i]=0;
179  <a name="l00158"></a>00158         }  <a name="l00158"></a>00158         }
180  <a name="l00159"></a>00159 <span class="comment">//      if(cevent)cevent-&gt;Reset();</span>  <a name="l00159"></a>00159 <span class="comment">//      if(cevent)cevent-&gt;Reset();</span>
181  <a name="l00160"></a>00160     }  <a name="l00160"></a>00160     }
182  <a name="l00161"></a>00161  <a name="l00161"></a>00161
183  <a name="l00162"></a><a class="code" href="classCaloAxis.html#00e32ad98be21c697b8a0671b90e8dd1">00162</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#00e32ad98be21c697b8a0671b90e8dd1">Set</a>(CaloLevel1* calo, Int_t view){ <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#538af1924be400124d003802302e71dd">Set</a>(calo,view,0); };  <a name="l00162"></a>00162     <span class="keywordtype">void</span> Set(CaloLevel1* calo, Int_t view){ cevent-&gt;Set(calo,view,0); };
184  <a name="l00163"></a><a class="code" href="classCaloAxis.html#ba39f6561558754993ca0cb221f94053">00163</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#ba39f6561558754993ca0cb221f94053">Set</a>(CaloLevel1* calo, Int_t view, Bool_t usemechanicalalignement){ <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#538af1924be400124d003802302e71dd">Set</a>(calo,view,usemechanicalalignement); };  <a name="l00163"></a>00163     <span class="keywordtype">void</span> Set(CaloLevel1* calo, Int_t view, Bool_t usemechanicalalignement){ cevent-&gt;Set(calo,view,usemechanicalalignement); };
185  <a name="l00164"></a>00164  <a name="l00164"></a>00164
186  <a name="l00165"></a><a class="code" href="classCaloAxis.html#5fbc947804114f961214c5c26b8fe927">00165</a>     <a class="code" href="classCaloAxis.html#5fbc947804114f961214c5c26b8fe927">CaloAxis</a>(){  <a name="l00165"></a>00165     CaloAxis(){
187  <a name="l00166"></a>00166         <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a> = <span class="keyword">new</span> <a class="code" href="classCaloEvent.html">CaloEvent</a>();  <a name="l00166"></a>00166         cevent = <span class="keyword">new</span> CaloEvent();
188  <a name="l00167"></a>00167         <a class="code" href="classCaloAxis.html#cf42fbb09c6992fb4292da8ec22ef551">Init</a>();  <a name="l00167"></a>00167         Init();
189  <a name="l00168"></a>00168     };  <a name="l00168"></a>00168     };
190  <a name="l00169"></a>00169  <a name="l00169"></a>00169
191  <a name="l00170"></a><a class="code" href="classCaloAxis.html#a0601f823b9ba6d1e359d4f2c61d6be5">00170</a>     <a class="code" href="classCaloAxis.html#a0601f823b9ba6d1e359d4f2c61d6be5">CaloAxis</a>(CaloLevel1* calo, Int_t view){  <a name="l00170"></a>00170     CaloAxis(CaloLevel1* calo, Int_t view){
192  <a name="l00171"></a>00171         <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a> = <span class="keyword">new</span> <a class="code" href="classCaloEvent.html">CaloEvent</a>();  <a name="l00171"></a>00171         cevent = <span class="keyword">new</span> CaloEvent();
193  <a name="l00172"></a>00172         <a class="code" href="classCaloAxis.html#cf42fbb09c6992fb4292da8ec22ef551">Init</a>();  <a name="l00172"></a>00172         Init();
194  <a name="l00173"></a>00173         <a class="code" href="classCaloAxis.html#00e32ad98be21c697b8a0671b90e8dd1">Set</a>(calo,view);  <a name="l00173"></a>00173         Set(calo,view);
195  <a name="l00174"></a>00174     };  <a name="l00174"></a>00174     };
196  <a name="l00175"></a><a class="code" href="classCaloAxis.html#c86a443d7a47406a5bdf5b05afa7d122">00175</a>     <a class="code" href="classCaloAxis.html#c86a443d7a47406a5bdf5b05afa7d122">CaloAxis</a>(CaloLevel1* calo, Int_t view, Bool_t usemechanicalalignement){  <a name="l00175"></a>00175     CaloAxis(CaloLevel1* calo, Int_t view, Bool_t usemechanicalalignement){
197  <a name="l00176"></a>00176         <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a> = <span class="keyword">new</span> <a class="code" href="classCaloEvent.html">CaloEvent</a>();  <a name="l00176"></a>00176         cevent = <span class="keyword">new</span> CaloEvent();
198  <a name="l00177"></a>00177         <a class="code" href="classCaloAxis.html#cf42fbb09c6992fb4292da8ec22ef551">Init</a>();  <a name="l00177"></a>00177         Init();
199  <a name="l00178"></a>00178         <a class="code" href="classCaloAxis.html#00e32ad98be21c697b8a0671b90e8dd1">Set</a>(calo,view,usemechanicalalignement);  <a name="l00178"></a>00178         Set(calo,view,usemechanicalalignement);
200  <a name="l00179"></a>00179     };  <a name="l00179"></a>00179     };
201  <a name="l00180"></a>00180  <a name="l00180"></a>00180
202  <a name="l00181"></a>00181  <a name="l00181"></a>00181
203  <a name="l00182"></a><a class="code" href="classCaloAxis.html#a1b225fccc498fdf49c415497d405eac">00182</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#a1b225fccc498fdf49c415497d405eac">Reset</a>(){  <a name="l00182"></a>00182     <span class="keywordtype">void</span> Reset(){
204  <a name="l00183"></a>00183 <span class="comment">//      cout &lt;&lt; " CaloAxis::Reset()"&lt;&lt;endl;</span>  <a name="l00183"></a>00183 <span class="comment">//      cout &lt;&lt; " CaloAxis::Reset()"&lt;&lt;endl;</span>
205  <a name="l00184"></a>00184         <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.clear();  <a name="l00184"></a>00184         x.clear();
206  <a name="l00185"></a>00185         <a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>.clear();  <a name="l00185"></a>00185         y.clear();
207  <a name="l00186"></a>00186         <a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>.clear();  <a name="l00186"></a>00186         w.clear();
208  <a name="l00187"></a>00187         <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.clear();  <a name="l00187"></a>00187         q.clear();
209  <a name="l00188"></a>00188 <span class="comment">//      cout &lt;&lt; sel &lt;&lt; endl;</span>  <a name="l00188"></a>00188 <span class="comment">//      cout &lt;&lt; sel &lt;&lt; endl;</span>
210  <a name="l00189"></a>00189         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a>)<a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a>-&gt;Delete();  <a name="l00189"></a>00189         <span class="keywordflow">if</span>(sel)sel-&gt;Delete();
211  <a name="l00190"></a>00190 <span class="comment">//      cout &lt;&lt; axis &lt;&lt; endl;</span>  <a name="l00190"></a>00190 <span class="comment">//      cout &lt;&lt; axis &lt;&lt; endl;</span>
212  <a name="l00191"></a>00191         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a>)<a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a>-&gt;Delete();  <a name="l00191"></a>00191         <span class="keywordflow">if</span>(axis)axis-&gt;Delete();
213  <a name="l00192"></a>00192 <span class="comment">//      if(cevent)cevent-&gt;Reset();</span>  <a name="l00192"></a>00192 <span class="comment">//      if(cevent)cevent-&gt;Reset();</span>
214  <a name="l00193"></a>00193         <a class="code" href="classCaloAxis.html#cf42fbb09c6992fb4292da8ec22ef551">Init</a>();  <a name="l00193"></a>00193         Init();
215  <a name="l00194"></a>00194     }  <a name="l00194"></a>00194     }
216  <a name="l00195"></a>00195  <a name="l00195"></a>00195
217  <a name="l00196"></a><a class="code" href="classCaloAxis.html#bed1c4a34e0db2caf824f29bbb014789">00196</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#bed1c4a34e0db2caf824f29bbb014789">Delete</a>(){ <a class="code" href="classCaloAxis.html#a1b225fccc498fdf49c415497d405eac">Reset</a>(); <span class="keyword">delete</span> <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>; };  <a name="l00196"></a>00196     <span class="keywordtype">void</span> Delete(){ Reset(); <span class="keyword">delete</span> cevent; };
218  <a name="l00197"></a>00197  <a name="l00197"></a>00197
219  <a name="l00198"></a><a class="code" href="classCaloAxis.html#12750c5b587e571b7ab632826e9e5e98">00198</a>     <a class="code" href="classCaloAxis.html#12750c5b587e571b7ab632826e9e5e98">~CaloAxis</a>(){ <a class="code" href="classCaloAxis.html#bed1c4a34e0db2caf824f29bbb014789">Delete</a>(); };  <a name="l00198"></a>00198     ~CaloAxis(){ Delete(); };
220  <a name="l00199"></a>00199  <a name="l00199"></a>00199
221  <a name="l00200"></a>00200  <a name="l00200"></a>00200
222  <a name="l00201"></a><a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">00201</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">Add</a>(<span class="keywordtype">float</span> xin, <span class="keywordtype">float</span> yin){  <a name="l00201"></a>00201     <span class="keywordtype">void</span> Add(<span class="keywordtype">float</span> xin, <span class="keywordtype">float</span> yin){
223  <a name="l00202"></a>00202         <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.push_back(xin);  <a name="l00202"></a>00202         x.push_back(xin);
224  <a name="l00203"></a>00203         <a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>.push_back(yin);  <a name="l00203"></a>00203         y.push_back(yin);
225  <a name="l00204"></a>00204         <a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>.push_back(1.);  <a name="l00204"></a>00204         w.push_back(1.);
226  <a name="l00205"></a>00205         <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.push_back(0.);  <a name="l00205"></a>00205         q.push_back(0.);
227  <a name="l00206"></a>00206 <span class="comment">/*      Int_t nin = x.size(); */</span>  <a name="l00206"></a>00206 <span class="comment">/*      Int_t nin = x.size(); */</span>
228  <a name="l00207"></a>00207 <span class="comment">/*      if(nin&gt;2)Fit(); */</span>  <a name="l00207"></a>00207 <span class="comment">/*      if(nin&gt;2)Fit(); */</span>
229  <a name="l00208"></a>00208     };  <a name="l00208"></a>00208     };
230  <a name="l00209"></a><a class="code" href="classCaloAxis.html#3b38f46913dc5e5ec4b522541822cfae">00209</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#3b38f46913dc5e5ec4b522541822cfae">Add</a>(<span class="keywordtype">float</span> xin, <span class="keywordtype">float</span> yin, <span class="keywordtype">float</span> qin){  <a name="l00209"></a>00209     <span class="keywordtype">void</span> Add(<span class="keywordtype">float</span> xin, <span class="keywordtype">float</span> yin, <span class="keywordtype">float</span> qin){
231  <a name="l00210"></a>00210         <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.push_back(xin);  <a name="l00210"></a>00210         x.push_back(xin);
232  <a name="l00211"></a>00211         <a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>.push_back(yin);  <a name="l00211"></a>00211         y.push_back(yin);
233  <a name="l00212"></a>00212         <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.push_back(qin);  <a name="l00212"></a>00212         q.push_back(qin);
234  <a name="l00213"></a>00213         <a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>.push_back(1.);  <a name="l00213"></a>00213         w.push_back(1.);
235  <a name="l00214"></a>00214 <span class="comment">/*      Int_t nin = x.size(); */</span>  <a name="l00214"></a>00214 <span class="comment">/*      Int_t nin = x.size(); */</span>
236  <a name="l00215"></a>00215 <span class="comment">/*      if(nin&gt;2)Fit(); */</span>  <a name="l00215"></a>00215 <span class="comment">/*      if(nin&gt;2)Fit(); */</span>
237  <a name="l00216"></a>00216     };  <a name="l00216"></a>00216     };
238  <a name="l00217"></a><a class="code" href="classCaloAxis.html#93078ed5c1350094a15e601351f8500e">00217</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#93078ed5c1350094a15e601351f8500e">Add</a>(<span class="keywordtype">float</span> xin, <span class="keywordtype">float</span> yin, <span class="keywordtype">float</span> qin, <span class="keywordtype">float</span> win){  <a name="l00217"></a>00217     <span class="keywordtype">void</span> Add(<span class="keywordtype">float</span> xin, <span class="keywordtype">float</span> yin, <span class="keywordtype">float</span> qin, <span class="keywordtype">float</span> win){
239  <a name="l00218"></a>00218         <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.push_back(xin);  <a name="l00218"></a>00218         x.push_back(xin);
240  <a name="l00219"></a>00219         <a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>.push_back(yin);  <a name="l00219"></a>00219         y.push_back(yin);
241  <a name="l00220"></a>00220         <a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>.push_back(win);  <a name="l00220"></a>00220         w.push_back(win);
242  <a name="l00221"></a>00221         <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.push_back(qin);  <a name="l00221"></a>00221         q.push_back(qin);
243  <a name="l00222"></a>00222 <span class="comment">/*      Int_t nin = x.size(); */</span>  <a name="l00222"></a>00222 <span class="comment">/*      Int_t nin = x.size(); */</span>
244  <a name="l00223"></a>00223 <span class="comment">/*      if(nin&gt;2)Fit(); */</span>  <a name="l00223"></a>00223 <span class="comment">/*      if(nin&gt;2)Fit(); */</span>
245  <a name="l00224"></a>00224     };  <a name="l00224"></a>00224     };
246  <a name="l00225"></a>00225  <a name="l00225"></a>00225
247  <a name="l00226"></a><a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">00226</a>     <span class="keywordtype">int</span> <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>(){  <a name="l00226"></a>00226     <span class="keywordtype">int</span> Fit(){
248  <a name="l00227"></a>00227  <a name="l00227"></a>00227
249  <a name="l00228"></a>00228 <span class="comment">//      cout &lt;&lt; " CaloAxis::Fit()"&lt;&lt;endl;</span>  <a name="l00228"></a>00228 <span class="comment">//      cout &lt;&lt; " CaloAxis::Fit()"&lt;&lt;endl;</span>
250  <a name="l00229"></a>00229         Float_t SSS = 0;  <a name="l00229"></a>00229         Float_t SSS = 0;
# Line 255  Line 255 
255  <a name="l00234"></a>00234         Float_t SXY = 0;  <a name="l00234"></a>00234         Float_t SXY = 0;
256  <a name="l00235"></a>00235  <a name="l00235"></a>00235
257  <a name="l00236"></a>00236         Int_t np=0;  <a name="l00236"></a>00236         Int_t np=0;
258  <a name="l00237"></a>00237         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.size()); i++){  <a name="l00237"></a>00237         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(x.size()); i++){
259  <a name="l00238"></a>00238             SSS += <a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>[i]*<a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>[i];  <a name="l00238"></a>00238             SSS += w[i]*w[i];
260  <a name="l00239"></a>00239             SSX += <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i]*w[i]*w[i];  <a name="l00239"></a>00239             SSX += x[i]*w[i]*w[i];
261  <a name="l00240"></a>00240             SXX += <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i]*<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i]*w[i]*w[i];  <a name="l00240"></a>00240             SXX += x[i]*x[i]*w[i]*w[i];
262  <a name="l00241"></a>00241             SSY += <a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>[i]*w[i]*w[i];  <a name="l00241"></a>00241             SSY += y[i]*w[i]*w[i];
263  <a name="l00242"></a>00242             SXY += <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i]*<a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>[i]*w[i]*w[i];  <a name="l00242"></a>00242             SXY += x[i]*y[i]*w[i]*w[i];
264  <a name="l00243"></a>00243             <span class="keywordflow">if</span>(w[i])np++;  <a name="l00243"></a>00243             <span class="keywordflow">if</span>(w[i])np++;
265  <a name="l00244"></a>00244         }  <a name="l00244"></a>00244         }
266  <a name="l00245"></a>00245         Float_t det = SSS*SXX-SSX*SSX;  <a name="l00245"></a>00245         Float_t det = SSS*SXX-SSX*SSX;
267  <a name="l00246"></a>00246         <span class="keywordflow">if</span>(det==0)<span class="keywordflow">return</span> 0;  <a name="l00246"></a>00246         <span class="keywordflow">if</span>(det==0)<span class="keywordflow">return</span> 0;
268  <a name="l00247"></a>00247         <span class="keywordflow">if</span>(np&lt;3)<span class="keywordflow">return</span> 0;  <a name="l00247"></a>00247         <span class="keywordflow">if</span>(np&lt;3)<span class="keywordflow">return</span> 0;
269  <a name="l00248"></a>00248 <span class="comment">//      cout &lt;&lt; np &lt;&lt; " points fitted -- ok "&lt;&lt;endl;</span>  <a name="l00248"></a>00248 <span class="comment">//      cout &lt;&lt; np &lt;&lt; " points fitted -- ok "&lt;&lt;endl;</span>
270  <a name="l00249"></a>00249         <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0] = (SSY*SXX-SXY*SSX)/det;  <a name="l00249"></a>00249         par[0] = (SSY*SXX-SXY*SSX)/det;
271  <a name="l00250"></a>00250         <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1] = (SXY*SSS-SSY*SSX)/det;  <a name="l00250"></a>00250         par[1] = (SXY*SSS-SSY*SSX)/det;
272  <a name="l00251"></a>00251         <span class="keywordflow">return</span> 1;  <a name="l00251"></a>00251         <span class="keywordflow">return</span> 1;
273  <a name="l00252"></a>00252     };  <a name="l00252"></a>00252     };
274  <a name="l00253"></a>00253  <a name="l00253"></a>00253
275  <a name="l00254"></a><a class="code" href="classCaloAxis.html#7c3a74ca8926244b321e7ef2d12cedd2">00254</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#7c3a74ca8926244b321e7ef2d12cedd2">Print</a>(){  <a name="l00254"></a>00254     <span class="keywordtype">void</span> Print(){
276  <a name="l00255"></a>00255 <span class="comment">// useful for debug     for(Int_t i=0; i&lt;(int)(x.size()); i++)if(w[i])cout &lt;&lt; x[i] &lt;&lt; " - "&lt;&lt;y[i]&lt;&lt;endl;</span>  <a name="l00255"></a>00255 <span class="comment">// useful for debug     for(Int_t i=0; i&lt;(int)(x.size()); i++)if(w[i])cout &lt;&lt; x[i] &lt;&lt; " - "&lt;&lt;y[i]&lt;&lt;endl;</span>
277  <a name="l00256"></a>00256     }  <a name="l00256"></a>00256     }
278  <a name="l00257"></a>00257  <a name="l00257"></a>00257
279  <a name="l00258"></a><a class="code" href="classCaloAxis.html#24eb8972ce108383bf4d9ee90f0bff89">00258</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#24eb8972ce108383bf4d9ee90f0bff89">GetPar</a>(Int_t i){<span class="keywordflow">return</span> <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[i];};  <a name="l00258"></a>00258     <span class="keywordtype">float</span> GetPar(Int_t i){<span class="keywordflow">return</span> par[i];};
280  <a name="l00259"></a>00259  <a name="l00259"></a>00259
281  <a name="l00260"></a><a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">00260</a>     <span class="keywordtype">int</span>   <a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>(){<span class="keywordflow">return</span> (<span class="keywordtype">int</span>)(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.size());};  <a name="l00260"></a>00260     <span class="keywordtype">int</span>   GetN(){<span class="keywordflow">return</span> (<span class="keywordtype">int</span>)(x.size());};
282  <a name="l00261"></a>00261  <a name="l00261"></a>00261
283  <a name="l00262"></a><a class="code" href="classCaloAxis.html#2973ca2a8afc807f56805c9420b47ed0">00262</a>     <span class="keywordtype">float</span>* <a class="code" href="classCaloAxis.html#2973ca2a8afc807f56805c9420b47ed0">GetX</a>(){  <a name="l00262"></a>00262     <span class="keywordtype">float</span>* GetX(){
284  <a name="l00263"></a>00263         <span class="keywordtype">float</span> *xout = <span class="keyword">new</span> <span class="keywordtype">float</span>[(int)(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.size())];  <a name="l00263"></a>00263         <span class="keywordtype">float</span> *xout = <span class="keyword">new</span> <span class="keywordtype">float</span>[(int)(x.size())];
285  <a name="l00264"></a>00264         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.size()); i++)xout[i]=<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i];  <a name="l00264"></a>00264         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(x.size()); i++)xout[i]=x[i];
286  <a name="l00265"></a>00265         <span class="keywordflow">return</span> xout;  <a name="l00265"></a>00265         <span class="keywordflow">return</span> xout;
287  <a name="l00266"></a>00266     }  <a name="l00266"></a>00266     }
288  <a name="l00267"></a>00267  <a name="l00267"></a>00267
289  <a name="l00268"></a><a class="code" href="classCaloAxis.html#c3172d5d58795cc3de1522559a231066">00268</a>     <span class="keywordtype">float</span>* <a class="code" href="classCaloAxis.html#c3172d5d58795cc3de1522559a231066">GetY</a>(){  <a name="l00268"></a>00268     <span class="keywordtype">float</span>* GetY(){
290  <a name="l00269"></a>00269         <span class="keywordtype">float</span> *yout = <span class="keyword">new</span> <span class="keywordtype">float</span>[(int)(<a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>.size())];  <a name="l00269"></a>00269         <span class="keywordtype">float</span> *yout = <span class="keyword">new</span> <span class="keywordtype">float</span>[(int)(y.size())];
291  <a name="l00270"></a>00270         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>.size()); i++) yout[i]=<a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>[i];  <a name="l00270"></a>00270         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(y.size()); i++) yout[i]=y[i];
292  <a name="l00271"></a>00271         <span class="keywordflow">return</span> yout;  <a name="l00271"></a>00271         <span class="keywordflow">return</span> yout;
293  <a name="l00272"></a>00272     }  <a name="l00272"></a>00272     }
294  <a name="l00273"></a>00273  <a name="l00273"></a>00273
295  <a name="l00274"></a><a class="code" href="classCaloAxis.html#fa2726b36147a39e2c64d4808aa435e3">00274</a>     <span class="keywordtype">float</span>* <a class="code" href="classCaloAxis.html#fa2726b36147a39e2c64d4808aa435e3">GetQ</a>(){  <a name="l00274"></a>00274     <span class="keywordtype">float</span>* GetQ(){
296  <a name="l00275"></a>00275         <span class="keywordtype">float</span> *qout = <span class="keyword">new</span> <span class="keywordtype">float</span>[(int)(<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.size())];  <a name="l00275"></a>00275         <span class="keywordtype">float</span> *qout = <span class="keyword">new</span> <span class="keywordtype">float</span>[(int)(q.size())];
297  <a name="l00276"></a>00276         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.size()); i++) qout[i]=<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>[i];  <a name="l00276"></a>00276         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;(int)(q.size()); i++) qout[i]=q[i];
298  <a name="l00277"></a>00277         <span class="keywordflow">return</span> qout;  <a name="l00277"></a>00277         <span class="keywordflow">return</span> qout;
299  <a name="l00278"></a>00278     }  <a name="l00278"></a>00278     }
300  <a name="l00279"></a>00279  <a name="l00279"></a>00279
301  <a name="l00280"></a><a class="code" href="classCaloAxis.html#cd5c771ea0ead8eb2428118551358eb0">00280</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#cd5c771ea0ead8eb2428118551358eb0">GetChi2</a>(){  <a name="l00280"></a>00280     <span class="keywordtype">float</span> GetChi2(){
302  <a name="l00281"></a>00281         <span class="keywordtype">float</span> chi2=0;  <a name="l00281"></a>00281         <span class="keywordtype">float</span> chi2=0;
303  <a name="l00282"></a>00282         <span class="keywordtype">int</span>   nchi=0;  <a name="l00282"></a>00282         <span class="keywordtype">int</span>   nchi=0;
304  <a name="l00283"></a>00283         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>.size()); i++){  <a name="l00283"></a>00283         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(y.size()); i++){
305  <a name="l00284"></a>00284             chi2 += <a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>[i]*<a class="code" href="classCaloAxis.html#a14b06b7a9cd75a27ce585e250efdc63">w</a>[i]*(<a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>[i]-<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0]-<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1]*<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i])*(<a class="code" href="classCaloAxis.html#dc1ce8c49916d35fb3bfcc29e03f8905">y</a>[i]-<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0]-<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1]*<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i]);  <a name="l00284"></a>00284             chi2 += w[i]*w[i]*(y[i]-par[0]-par[1]*x[i])*(y[i]-par[0]-par[1]*x[i]);
306  <a name="l00285"></a>00285             nchi += (int)w[i];  <a name="l00285"></a>00285             nchi += (int)w[i];
307  <a name="l00286"></a>00286         };  <a name="l00286"></a>00286         };
308  <a name="l00287"></a>00287  <a name="l00287"></a>00287
# Line 313  Line 313 
313  <a name="l00292"></a>00292         <span class="keywordflow">return</span> chi2;  <a name="l00292"></a>00292         <span class="keywordflow">return</span> chi2;
314  <a name="l00293"></a>00293     }  <a name="l00293"></a>00293     }
315  <a name="l00294"></a>00294  <a name="l00294"></a>00294
316  <a name="l00295"></a><a class="code" href="classCaloAxis.html#0d817c015af5b772b4a0944aa3dbf696">00295</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#0d817c015af5b772b4a0944aa3dbf696">GetQaxis</a>(){  <a name="l00295"></a>00295     <span class="keywordtype">float</span> GetQaxis(){
317  <a name="l00296"></a>00296         <span class="keywordtype">float</span> qaxis=0;  <a name="l00296"></a>00296         <span class="keywordtype">float</span> qaxis=0;
318  <a name="l00297"></a>00297         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.size()); i++) qaxis +=<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>[i];  <a name="l00297"></a>00297         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(q.size()); i++) qaxis +=q[i];
319  <a name="l00298"></a>00298 <span class="comment">//      for(Int_t i=0; i&lt;(int)(q.size()); i++) cout&lt;&lt;q[i]&lt;&lt;endl;</span>  <a name="l00298"></a>00298 <span class="comment">//      for(Int_t i=0; i&lt;(int)(q.size()); i++) cout&lt;&lt;q[i]&lt;&lt;endl;</span>
320  <a name="l00299"></a>00299         <span class="keywordflow">return</span> qaxis;  <a name="l00299"></a>00299         <span class="keywordflow">return</span> qaxis;
321  <a name="l00300"></a>00300     }  <a name="l00300"></a>00300     }
322  <a name="l00301"></a>00301  <a name="l00301"></a>00301
323  <a name="l00302"></a><a class="code" href="classCaloAxis.html#8bb7108aa0e18c85b471618cfcbba66a">00302</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#8bb7108aa0e18c85b471618cfcbba66a">GetQaxis</a>(<span class="keywordtype">float</span> toll){  <a name="l00302"></a>00302     <span class="keywordtype">float</span> GetQaxis(<span class="keywordtype">float</span> toll){
324  <a name="l00303"></a>00303         <span class="keywordtype">float</span> qaxis=0;  <a name="l00303"></a>00303         <span class="keywordtype">float</span> qaxis=0;
325  <a name="l00304"></a>00304         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){  <a name="l00304"></a>00304         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){
326  <a name="l00305"></a>00305             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00305"></a>00305             <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
327  <a name="l00306"></a>00306             <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[ih];  <a name="l00306"></a>00306             <span class="keywordtype">float</span> z = cevent-&gt;zcoord[ih];
328  <a name="l00307"></a>00307             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[ih];  <a name="l00307"></a>00307             <span class="keywordtype">float</span> q = cevent-&gt;q[ih];
329  <a name="l00308"></a>00308             <span class="comment">//int ip = cevent-&gt;idp[ih];</span>  <a name="l00308"></a>00308             <span class="comment">//int ip = cevent-&gt;idp[ih];</span>
330  <a name="l00309"></a>00309             <span class="keywordtype">float</span> d = fabs(x-<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0]-<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1]*z)/sqrt(<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1]*<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1]+1);  <a name="l00309"></a>00309             <span class="keywordtype">float</span> d = fabs(x-par[0]-par[1]*z)/sqrt(par[1]*par[1]+1);
331  <a name="l00310"></a>00310             <span class="keywordflow">if</span>( d &lt; toll )qaxis+=q;  <a name="l00310"></a>00310             <span class="keywordflow">if</span>( d &lt; toll )qaxis+=q;
332  <a name="l00311"></a>00311         }  <a name="l00311"></a>00311         }
333  <a name="l00312"></a>00312         <span class="keywordflow">return</span> qaxis;  <a name="l00312"></a>00312         <span class="keywordflow">return</span> qaxis;
334  <a name="l00313"></a>00313     }  <a name="l00313"></a>00313     }
335  <a name="l00314"></a>00314  <a name="l00314"></a>00314
336  <a name="l00315"></a><a class="code" href="classCaloAxis.html#c59062096fd2f8addafd4c79c4f64382">00315</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#c59062096fd2f8addafd4c79c4f64382">GetCOG</a>(Int_t ip){  <a name="l00315"></a>00315     <span class="keywordtype">float</span> GetCOG(Int_t ip){
337  <a name="l00316"></a>00316         <span class="keywordflow">if</span>(ip&gt;=0 &amp;&amp; ip&lt;22)<span class="keywordflow">return</span> <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip];  <a name="l00316"></a>00316         <span class="keywordflow">if</span>(ip&gt;=0 &amp;&amp; ip&lt;22)<span class="keywordflow">return</span> cog[ip];
338  <a name="l00317"></a>00317         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;  <a name="l00317"></a>00317         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
339  <a name="l00318"></a>00318     }  <a name="l00318"></a>00318     }
340  <a name="l00319"></a>00319  <a name="l00319"></a>00319
341  <a name="l00320"></a><a class="code" href="classCaloAxis.html#8c4cd0cb64825ff08e0f91e1759d4fa2">00320</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#8c4cd0cb64825ff08e0f91e1759d4fa2">GetQ</a>(Int_t ip){  <a name="l00320"></a>00320     <span class="keywordtype">float</span> GetQ(Int_t ip){
342  <a name="l00321"></a>00321         <span class="keywordflow">if</span>(ip&gt;=0 &amp;&amp; ip&lt;22)<span class="keywordflow">return</span> <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip];  <a name="l00321"></a>00321         <span class="keywordflow">if</span>(ip&gt;=0 &amp;&amp; ip&lt;22)<span class="keywordflow">return</span> qpl[ip];
343  <a name="l00322"></a>00322         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;  <a name="l00322"></a>00322         <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
344  <a name="l00323"></a>00323     }  <a name="l00323"></a>00323     }
345  <a name="l00324"></a>00324  <a name="l00324"></a>00324
346  <a name="l00325"></a><a class="code" href="classCaloAxis.html#79e084034e3a504494b41b8d14a210f1">00325</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#79e084034e3a504494b41b8d14a210f1">GetQstrip</a>(){  <a name="l00325"></a>00325     <span class="keywordtype">float</span> GetQstrip(){
347  <a name="l00326"></a>00326  <a name="l00326"></a>00326
348  <a name="l00327"></a>00327         <span class="keywordtype">float</span> qaxis=0;  <a name="l00327"></a>00327         <span class="keywordtype">float</span> qaxis=0;
349  <a name="l00328"></a>00328         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.size()); i++) qaxis +=<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>[i];  <a name="l00328"></a>00328         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(q.size()); i++) qaxis +=q[i];
350  <a name="l00329"></a>00329         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.size()==0) <span class="keywordflow">return</span> 0.;  <a name="l00329"></a>00329         <span class="keywordflow">if</span>(q.size()==0) <span class="keywordflow">return</span> 0.;
351  <a name="l00330"></a>00330         <span class="keywordflow">return</span> qaxis/<a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a>.size();  <a name="l00330"></a>00330         <span class="keywordflow">return</span> qaxis/q.size();
352  <a name="l00331"></a>00331     }  <a name="l00331"></a>00331     }
353  <a name="l00332"></a>00332  <a name="l00332"></a>00332
354  <a name="l00333"></a><a class="code" href="classCaloAxis.html#83364a0c2e1fa2a8cc1a1ab94cf9c05b">00333</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#83364a0c2e1fa2a8cc1a1ab94cf9c05b">GetYfit</a>(<span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>){  <a name="l00333"></a>00333     <span class="keywordtype">float</span> GetYfit(<span class="keywordtype">float</span> x){
355  <a name="l00334"></a>00334         <span class="keywordflow">return</span> <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0]+x*<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1];  <a name="l00334"></a>00334         <span class="keywordflow">return</span> par[0]+x*par[1];
356  <a name="l00335"></a>00335     }  <a name="l00335"></a>00335     }
357  <a name="l00336"></a>00336  <a name="l00336"></a>00336
358  <a name="l00337"></a><a class="code" href="classCaloAxis.html#9cb7da77d46cacded3ecb698d8402c75">00337</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#9cb7da77d46cacded3ecb698d8402c75">GetXmin</a>(){  <a name="l00337"></a>00337     <span class="keywordtype">float</span> GetXmin(){
359  <a name="l00338"></a>00338         <span class="keywordtype">float</span> zmin=9999;  <a name="l00338"></a>00338         <span class="keywordtype">float</span> zmin=9999;
360  <a name="l00339"></a>00339         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.size()); i++) <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i]&lt;zmin) zmin = <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i];  <a name="l00339"></a>00339         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(x.size()); i++) <span class="keywordflow">if</span>(x[i]&lt;zmin) zmin = x[i];
361  <a name="l00340"></a>00340         <span class="keywordflow">return</span> zmin;  <a name="l00340"></a>00340         <span class="keywordflow">return</span> zmin;
362  <a name="l00341"></a>00341     }  <a name="l00341"></a>00341     }
363  <a name="l00342"></a><a class="code" href="classCaloAxis.html#2b80915852cae6f6119b0b66ddf6da18">00342</a>     <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#2b80915852cae6f6119b0b66ddf6da18">GetXmax</a>(){  <a name="l00342"></a>00342     <span class="keywordtype">float</span> GetXmax(){
364  <a name="l00343"></a>00343         <span class="keywordtype">float</span> zmax=-9999;  <a name="l00343"></a>00343         <span class="keywordtype">float</span> zmax=-9999;
365  <a name="l00344"></a>00344         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>.size()); i++) <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i]&gt;zmax) zmax = <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a>[i];  <a name="l00344"></a>00344         <span class="keywordflow">for</span>(Int_t i=0; i&lt;(int)(x.size()); i++) <span class="keywordflow">if</span>(x[i]&gt;zmax) zmax = x[i];
366  <a name="l00345"></a>00345         <span class="keywordflow">return</span> zmax;  <a name="l00345"></a>00345         <span class="keywordflow">return</span> zmax;
367  <a name="l00346"></a>00346  <a name="l00346"></a>00346
368  <a name="l00347"></a>00347     }  <a name="l00347"></a>00347     }
369  <a name="l00348"></a>00348  <a name="l00348"></a>00348
370  <a name="l00349"></a>00349  <a name="l00349"></a>00349
371  <a name="l00350"></a><a class="code" href="classCaloAxis.html#42f57a3a58bfeda6e03b25a6ba875fb6">00350</a>     <span class="keywordtype">void</span> <a class="code" href="classCaloAxis.html#42f57a3a58bfeda6e03b25a6ba875fb6">Draw</a>(){  <a name="l00350"></a>00350     <span class="keywordtype">void</span> Draw(){
372  <a name="l00351"></a>00351  <a name="l00351"></a>00351
373  <a name="l00352"></a>00352 <span class="comment">//      cout &lt;&lt; " CaloAxis::Draw()"&lt;&lt;endl;</span>  <a name="l00352"></a>00352 <span class="comment">//      cout &lt;&lt; " CaloAxis::Draw()"&lt;&lt;endl;</span>
374  <a name="l00353"></a>00353         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">return</span>;  <a name="l00353"></a>00353         <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">return</span>;
375  <a name="l00354"></a>00354  <a name="l00354"></a>00354
376  <a name="l00355"></a>00355         <a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a> = <span class="keyword">new</span> TPolyMarker(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>(),<a class="code" href="classCaloAxis.html#c3172d5d58795cc3de1522559a231066">GetY</a>(),<a class="code" href="classCaloAxis.html#2973ca2a8afc807f56805c9420b47ed0">GetX</a>());  <a name="l00355"></a>00355         sel = <span class="keyword">new</span> TPolyMarker(GetN(),GetY(),GetX());
377  <a name="l00356"></a>00356         <a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a>-&gt;SetMarkerSize(0.3);  <a name="l00356"></a>00356         sel-&gt;SetMarkerSize(0.3);
378  <a name="l00357"></a>00357         <a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a>-&gt;SetMarkerColor(5);  <a name="l00357"></a>00357         sel-&gt;SetMarkerColor(5);
379  <a name="l00358"></a>00358  <a name="l00358"></a>00358
380  <a name="l00359"></a>00359         <a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a> = <span class="keyword">new</span> TLine( <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0]+<a class="code" href="classCaloAxis.html#9cb7da77d46cacded3ecb698d8402c75">GetXmin</a>()*<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1], <a class="code" href="classCaloAxis.html#9cb7da77d46cacded3ecb698d8402c75">GetXmin</a>(), <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0]+<a class="code" href="classCaloAxis.html#2b80915852cae6f6119b0b66ddf6da18">GetXmax</a>()*<a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1], <a class="code" href="classCaloAxis.html#2b80915852cae6f6119b0b66ddf6da18">GetXmax</a>() );  <a name="l00359"></a>00359         axis = <span class="keyword">new</span> TLine( par[0]+GetXmin()*par[1], GetXmin(), par[0]+GetXmax()*par[1], GetXmax() );
381  <a name="l00360"></a>00360         <a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a>-&gt;SetLineWidth(1);  <a name="l00360"></a>00360         axis-&gt;SetLineWidth(1);
382  <a name="l00361"></a>00361         <a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a>-&gt;SetLineColor(5);  <a name="l00361"></a>00361         axis-&gt;SetLineColor(5);
383  <a name="l00362"></a>00362  <a name="l00362"></a>00362
384  <a name="l00363"></a>00363 <span class="comment">//      cout &lt;&lt; sel &lt;&lt; endl;</span>  <a name="l00363"></a>00363 <span class="comment">//      cout &lt;&lt; sel &lt;&lt; endl;</span>
385  <a name="l00364"></a>00364 <span class="comment">//      cout &lt;&lt; axis &lt;&lt; endl;</span>  <a name="l00364"></a>00364 <span class="comment">//      cout &lt;&lt; axis &lt;&lt; endl;</span>
386  <a name="l00365"></a>00365  <a name="l00365"></a>00365
387  <a name="l00366"></a>00366         <a class="code" href="classCaloAxis.html#9e4372d0b9d9a3ec17fc2e1570039273">sel</a>-&gt;Draw();  <a name="l00366"></a>00366         sel-&gt;Draw();
388  <a name="l00367"></a>00367         <a class="code" href="classCaloAxis.html#7ca3199fb8575c566821219253d02ccf">axis</a>-&gt;Draw();  <a name="l00367"></a>00367         axis-&gt;Draw();
389  <a name="l00368"></a>00368     };  <a name="l00368"></a>00368     };
390  <a name="l00369"></a>00369  <a name="l00369"></a>00369
391  <a name="l00370"></a>00370  <a name="l00370"></a>00370
392  <a name="l00371"></a>00371     <span class="comment">//-----------------------------------------------------------------</span>  <a name="l00371"></a>00371     <span class="comment">//-----------------------------------------------------------------</span>
393  <a name="l00372"></a>00372     <span class="comment">// fit the axis (optimized for non-interacting patterns)</span>  <a name="l00372"></a>00372     <span class="comment">// fit the axis (optimized for non-interacting patterns)</span>
394  <a name="l00373"></a>00373     <span class="comment">//-----------------------------------------------------------------</span>  <a name="l00373"></a>00373     <span class="comment">//-----------------------------------------------------------------</span>
395  <a name="l00374"></a><a class="code" href="classCaloAxis.html#768db65112c0f2ecc7b0561772004e0f">00374</a>     <span class="keywordtype">int</span> <a class="code" href="classCaloAxis.html#768db65112c0f2ecc7b0561772004e0f">FitAxis</a>( CaloLevel1* calo , Int_t view , Float_t toll , Bool_t usemechanicalalignement ){  <a name="l00374"></a>00374     <span class="keywordtype">int</span> FitAxis( CaloLevel1* calo , Int_t view , Float_t toll , Bool_t usemechanicalalignement ){
396  <a name="l00375"></a>00375  <a name="l00375"></a>00375
397  <a name="l00376"></a>00376 <span class="comment">//      cout &lt;&lt; "CaloAxis::FitAxis(...)"&lt;&lt;endl;</span>  <a name="l00376"></a>00376 <span class="comment">//      cout &lt;&lt; "CaloAxis::FitAxis(...)"&lt;&lt;endl;</span>
398  <a name="l00377"></a>00377  <a name="l00377"></a>00377
399  <a name="l00378"></a>00378         <a class="code" href="classCaloAxis.html#00e32ad98be21c697b8a0671b90e8dd1">Set</a>(calo,view,usemechanicalalignement);  <a name="l00378"></a>00378         Set(calo,view,usemechanicalalignement);
400  <a name="l00379"></a>00379  <a name="l00379"></a>00379
401  <a name="l00380"></a>00380         <span class="comment">// ------------------------------</span>  <a name="l00380"></a>00380         <span class="comment">// ------------------------------</span>
402  <a name="l00381"></a>00381         <span class="comment">// first : all hits included, w=1</span>  <a name="l00381"></a>00381         <span class="comment">// first : all hits included, w=1</span>
403  <a name="l00382"></a>00382         <span class="comment">// ------------------------------</span>  <a name="l00382"></a>00382         <span class="comment">// ------------------------------</span>
404  <a name="l00383"></a>00383         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){  <a name="l00383"></a>00383         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){
405  <a name="l00384"></a>00384             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00384"></a>00384             <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
406  <a name="l00385"></a>00385             <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[ih];  <a name="l00385"></a>00385             <span class="keywordtype">float</span> z = cevent-&gt;zcoord[ih];
407  <a name="l00386"></a>00386             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[ih];  <a name="l00386"></a>00386             <span class="keywordtype">float</span> q = cevent-&gt;q[ih];
408  <a name="l00387"></a>00387             <a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">Add</a>(z,x,q);  <a name="l00387"></a>00387             Add(z,x,q);
409  <a name="l00388"></a>00388         }  <a name="l00388"></a>00388         }
410  <a name="l00389"></a>00389  <a name="l00389"></a>00389
411  <a name="l00390"></a>00390         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">return</span> 0;  <a name="l00390"></a>00390         <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">return</span> 0;
412  <a name="l00391"></a>00391         <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>();  <a name="l00391"></a>00391         Fit();
413  <a name="l00392"></a>00392 <span class="comment">// useful for debug     cout &lt;&lt; "(1)"&lt;&lt;endl;</span>  <a name="l00392"></a>00392 <span class="comment">// useful for debug     cout &lt;&lt; "(1)"&lt;&lt;endl;</span>
414  <a name="l00393"></a>00393 <span class="comment">//      cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl;</span>  <a name="l00393"></a>00393 <span class="comment">//      cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl;</span>
415  <a name="l00394"></a>00394 <span class="comment">//      cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl;</span>  <a name="l00394"></a>00394 <span class="comment">//      cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl;</span>
# Line 439  Line 439 
439  <a name="l00418"></a>00418             niter++;  <a name="l00418"></a>00418             niter++;
440  <a name="l00419"></a>00419             <span class="keywordtype">float</span> ttoll = toll;           <span class="comment">//tolerance (cm)</span>  <a name="l00419"></a>00419             <span class="keywordtype">float</span> ttoll = toll;           <span class="comment">//tolerance (cm)</span>
441  <a name="l00420"></a>00420             <span class="keywordflow">if</span>(niter==1)ttoll = 10.*toll;  <a name="l00420"></a>00420             <span class="keywordflow">if</span>(niter==1)ttoll = 10.*toll;
442  <a name="l00421"></a>00421             dof = <a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>();           <span class="comment">//previous fit</span>  <a name="l00421"></a>00421             dof = GetN();           <span class="comment">//previous fit</span>
443  <a name="l00422"></a>00422             P0  = <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0];  <a name="l00422"></a>00422             P0  = par[0];
444  <a name="l00423"></a>00423             P1  = <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1];  <a name="l00423"></a>00423             P1  = par[1];
445  <a name="l00424"></a>00424             <a class="code" href="classCaloAxis.html#a1b225fccc498fdf49c415497d405eac">Reset</a>();                <span class="comment">//fit reset</span>  <a name="l00424"></a>00424             Reset();                <span class="comment">//fit reset</span>
446  <a name="l00425"></a>00425             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){<span class="comment">//loop over selected hits</span>  <a name="l00425"></a>00425             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){<span class="comment">//loop over selected hits</span>
447  <a name="l00426"></a>00426                 <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00426"></a>00426                 <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
448  <a name="l00427"></a>00427                 <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[ih];  <a name="l00427"></a>00427                 <span class="keywordtype">float</span> z = cevent-&gt;zcoord[ih];
449  <a name="l00428"></a>00428                 <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[ih];  <a name="l00428"></a>00428                 <span class="keywordtype">float</span> q = cevent-&gt;q[ih];
450  <a name="l00429"></a>00429                 <span class="keywordtype">int</span> ip = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>[ih];  <a name="l00429"></a>00429                 <span class="keywordtype">int</span> ip = cevent-&gt;idp[ih];
451  <a name="l00430"></a>00430                 <span class="keywordtype">float</span> d = fabs(x-P0-P1*z)/sqrt(P1*P1+1);<span class="comment">//distance to axis</span>  <a name="l00430"></a>00430                 <span class="keywordtype">float</span> d = fabs(x-P0-P1*z)/sqrt(P1*P1+1);<span class="comment">//distance to axis</span>
452  <a name="l00431"></a>00431 <span class="comment">//              cout&lt;&lt;d&lt;&lt;endl;</span>  <a name="l00431"></a>00431 <span class="comment">//              cout&lt;&lt;d&lt;&lt;endl;</span>
453  <a name="l00432"></a>00432                 <span class="keywordflow">if</span>( d &lt; ttoll &amp;&amp; (niter==1 || (niter&gt;1 &amp;&amp; pok[ip]==1)) ){  <a name="l00432"></a>00432                 <span class="keywordflow">if</span>( d &lt; ttoll &amp;&amp; (niter==1 || (niter&gt;1 &amp;&amp; pok[ip]==1)) ){
454  <a name="l00433"></a>00433 <span class="comment">//              if( d &lt; ttoll ){</span>  <a name="l00433"></a>00433 <span class="comment">//              if( d &lt; ttoll ){</span>
455  <a name="l00434"></a>00434                     <span class="keywordtype">float</span> W=a+b*(ip+1);  <a name="l00434"></a>00434                     <span class="keywordtype">float</span> W=a+b*(ip+1);
456  <a name="l00435"></a>00435 <span class="comment">//                  cout &lt;&lt; ip &lt;&lt; " "&lt;&lt;W&lt;&lt;endl;</span>  <a name="l00435"></a>00435 <span class="comment">//                  cout &lt;&lt; ip &lt;&lt; " "&lt;&lt;W&lt;&lt;endl;</span>
457  <a name="l00436"></a>00436                     <a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">Add</a>(z,x,q,W);  <a name="l00436"></a>00436                     Add(z,x,q,W);
458  <a name="l00437"></a>00437                     pok[ip]=1;  <a name="l00437"></a>00437                     pok[ip]=1;
459  <a name="l00438"></a>00438                 }  <a name="l00438"></a>00438                 }
460  <a name="l00439"></a>00439             }  <a name="l00439"></a>00439             }
# Line 474  Line 474 
474  <a name="l00453"></a>00453  <a name="l00453"></a>00453
475  <a name="l00454"></a>00454  <a name="l00454"></a>00454
476  <a name="l00455"></a>00455             <span class="keywordflow">if</span>(niter==100)<span class="keywordflow">break</span>;  <a name="l00455"></a>00455             <span class="keywordflow">if</span>(niter==100)<span class="keywordflow">break</span>;
477  <a name="l00456"></a>00456             <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">break</span>;  <a name="l00456"></a>00456             <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">break</span>;
478  <a name="l00457"></a>00457             <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>();  <a name="l00457"></a>00457             Fit();
479  <a name="l00458"></a>00458         }<span class="keywordflow">while</span>(niter==1 || <a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>() != dof);  <a name="l00458"></a>00458         }<span class="keywordflow">while</span>(niter==1 || GetN() != dof);
480  <a name="l00459"></a>00459 <span class="comment">//      cout &lt;&lt; " &gt;&gt;&gt; "&lt;&lt;GetN()&lt;&lt;endl;</span>  <a name="l00459"></a>00459 <span class="comment">//      cout &lt;&lt; " &gt;&gt;&gt; "&lt;&lt;GetN()&lt;&lt;endl;</span>
481  <a name="l00460"></a>00460         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">return</span> 0;  <a name="l00460"></a>00460         <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">return</span> 0;
482  <a name="l00461"></a>00461         <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>();  <a name="l00461"></a>00461         Fit();
483  <a name="l00462"></a>00462 <span class="comment">//      cout &lt;&lt; "(2)"&lt;&lt;endl;</span>  <a name="l00462"></a>00462 <span class="comment">//      cout &lt;&lt; "(2)"&lt;&lt;endl;</span>
484  <a name="l00463"></a>00463 <span class="comment">//      cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl;</span>  <a name="l00463"></a>00463 <span class="comment">//      cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl;</span>
485  <a name="l00464"></a>00464 <span class="comment">//      cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl;</span>  <a name="l00464"></a>00464 <span class="comment">//      cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl;</span>
# Line 491  Line 491 
491  <a name="l00470"></a>00470         <span class="comment">// third : selecting only closest strip-clusters</span>  <a name="l00470"></a>00470         <span class="comment">// third : selecting only closest strip-clusters</span>
492  <a name="l00471"></a>00471         <span class="comment">// and fit baricenters</span>  <a name="l00471"></a>00471         <span class="comment">// and fit baricenters</span>
493  <a name="l00472"></a>00472         <span class="comment">// ---------------------------------------------</span>  <a name="l00472"></a>00472         <span class="comment">// ---------------------------------------------</span>
494  <a name="l00473"></a>00473         P0  = <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0];  <a name="l00473"></a>00473         P0  = par[0];
495  <a name="l00474"></a>00474         P1  = <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1];  <a name="l00474"></a>00474         P1  = par[1];
496  <a name="l00475"></a>00475         <a class="code" href="classCaloAxis.html#a1b225fccc498fdf49c415497d405eac">Reset</a>();  <a name="l00475"></a>00475         Reset();
497  <a name="l00476"></a>00476  <a name="l00476"></a>00476
498  <a name="l00477"></a>00477         <span class="keywordtype">float</span> dmin[22];  <a name="l00477"></a>00477         <span class="keywordtype">float</span> dmin[22];
499  <a name="l00478"></a>00478         <span class="keywordtype">int</span> closest[22];  <a name="l00478"></a>00478         <span class="keywordtype">int</span> closest[22];
# Line 501  Line 501 
501  <a name="l00480"></a>00480             dmin[ip]=999;  <a name="l00480"></a>00480             dmin[ip]=999;
502  <a name="l00481"></a>00481             closest[ip]=-1;  <a name="l00481"></a>00481             closest[ip]=-1;
503  <a name="l00482"></a>00482         }  <a name="l00482"></a>00482         }
504  <a name="l00483"></a>00483         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){  <a name="l00483"></a>00483         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){
505  <a name="l00484"></a>00484             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00484"></a>00484             <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
506  <a name="l00485"></a>00485             <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[ih];  <a name="l00485"></a>00485             <span class="keywordtype">float</span> z = cevent-&gt;zcoord[ih];
507  <a name="l00486"></a>00486             <span class="comment">//float q = cevent-&gt;q[ih];</span>  <a name="l00486"></a>00486             <span class="comment">//float q = cevent-&gt;q[ih];</span>
508  <a name="l00487"></a>00487             <span class="keywordtype">int</span> ip = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>[ih];  <a name="l00487"></a>00487             <span class="keywordtype">int</span> ip = cevent-&gt;idp[ih];
509  <a name="l00488"></a>00488             <span class="comment">//int is = cevent-&gt;ids[ih];</span>  <a name="l00488"></a>00488             <span class="comment">//int is = cevent-&gt;ids[ih];</span>
510  <a name="l00489"></a>00489             <span class="keywordtype">float</span> d = fabs(x-P0-P1*z)/sqrt(P1*P1+1);  <a name="l00489"></a>00489             <span class="keywordtype">float</span> d = fabs(x-P0-P1*z)/sqrt(P1*P1+1);
511  <a name="l00490"></a>00490             <span class="keywordflow">if</span>( d &lt; toll &amp;&amp; d&lt;dmin[ip] &amp;&amp; pok[ip]==1 ){  <a name="l00490"></a>00490             <span class="keywordflow">if</span>( d &lt; toll &amp;&amp; d&lt;dmin[ip] &amp;&amp; pok[ip]==1 ){
# Line 517  Line 517 
517  <a name="l00496"></a>00496         }  <a name="l00496"></a>00496         }
518  <a name="l00497"></a>00497         <span class="keywordflow">for</span>(Int_t ip=0; ip&lt;22; ip++){  <a name="l00497"></a>00497         <span class="keywordflow">for</span>(Int_t ip=0; ip&lt;22; ip++){
519  <a name="l00498"></a>00498             <span class="keywordflow">if</span>(closest[ip]!=-1){  <a name="l00498"></a>00498             <span class="keywordflow">if</span>(closest[ip]!=-1){
520  <a name="l00499"></a>00499                 <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[closest[ip]];  <a name="l00499"></a>00499                 <span class="keywordtype">float</span> x = cevent-&gt;xycoord[closest[ip]];
521  <a name="l00500"></a>00500                 <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[closest[ip]];  <a name="l00500"></a>00500                 <span class="keywordtype">float</span> z = cevent-&gt;zcoord[closest[ip]];
522  <a name="l00501"></a>00501                 <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[closest[ip]];  <a name="l00501"></a>00501                 <span class="keywordtype">float</span> q = cevent-&gt;q[closest[ip]];
523  <a name="l00502"></a>00502                 <span class="comment">//int is = cevent-&gt;ids[closest[ip]];</span>  <a name="l00502"></a>00502                 <span class="comment">//int is = cevent-&gt;ids[closest[ip]];</span>
524  <a name="l00503"></a>00503                 <a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">Add</a>(z,x,q,q);  <a name="l00503"></a>00503                 Add(z,x,q,q);
525  <a name="l00504"></a>00504                 <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip] += x*q;  <a name="l00504"></a>00504                 cog[ip] += x*q;
526  <a name="l00505"></a>00505                 <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip] += q;  <a name="l00505"></a>00505                 qpl[ip] += q;
527  <a name="l00506"></a>00506 <span class="comment">//              cout &lt;&lt; ip &lt;&lt; " -o- "&lt;&lt;is&lt;&lt;endl;</span>  <a name="l00506"></a>00506 <span class="comment">//              cout &lt;&lt; ip &lt;&lt; " -o- "&lt;&lt;is&lt;&lt;endl;</span>
528  <a name="l00507"></a>00507             }  <a name="l00507"></a>00507             }
529  <a name="l00508"></a>00508         }  <a name="l00508"></a>00508         }
530  <a name="l00509"></a>00509         <span class="comment">// -----------------</span>  <a name="l00509"></a>00509         <span class="comment">// -----------------</span>
531  <a name="l00510"></a>00510         <span class="comment">// add +/- one strip</span>  <a name="l00510"></a>00510         <span class="comment">// add +/- one strip</span>
532  <a name="l00511"></a>00511         <span class="comment">// -----------------</span>  <a name="l00511"></a>00511         <span class="comment">// -----------------</span>
533  <a name="l00512"></a>00512         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){  <a name="l00512"></a>00512         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){
534  <a name="l00513"></a>00513             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00513"></a>00513             <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
535  <a name="l00514"></a>00514             <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[ih];  <a name="l00514"></a>00514             <span class="keywordtype">float</span> z = cevent-&gt;zcoord[ih];
536  <a name="l00515"></a>00515             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[ih];  <a name="l00515"></a>00515             <span class="keywordtype">float</span> q = cevent-&gt;q[ih];
537  <a name="l00516"></a>00516             <span class="keywordtype">int</span> ip = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>[ih];  <a name="l00516"></a>00516             <span class="keywordtype">int</span> ip = cevent-&gt;idp[ih];
538  <a name="l00517"></a>00517             <span class="keywordtype">int</span> is = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#593e99c95482f5e63e43eaa8c843bba2">ids</a>[ih];  <a name="l00517"></a>00517             <span class="keywordtype">int</span> is = cevent-&gt;ids[ih];
539  <a name="l00518"></a>00518             <span class="keywordflow">if</span>( closest[ip]!=-1 ){  <a name="l00518"></a>00518             <span class="keywordflow">if</span>( closest[ip]!=-1 ){
540  <a name="l00519"></a>00519                 <span class="keywordtype">int</span> isc = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#593e99c95482f5e63e43eaa8c843bba2">ids</a>[closest[ip]];  <a name="l00519"></a>00519                 <span class="keywordtype">int</span> isc = cevent-&gt;ids[closest[ip]];
541  <a name="l00520"></a>00520                 <span class="keywordflow">if</span>( is == isc+1 || is == isc-1 ){  <a name="l00520"></a>00520                 <span class="keywordflow">if</span>( is == isc+1 || is == isc-1 ){
542  <a name="l00521"></a>00521                     <a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">Add</a>(z,x,q,q);  <a name="l00521"></a>00521                     Add(z,x,q,q);
543  <a name="l00522"></a>00522                     <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip] += x*q;  <a name="l00522"></a>00522                     cog[ip] += x*q;
544  <a name="l00523"></a>00523                     <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip] += q;  <a name="l00523"></a>00523                     qpl[ip] += q;
545  <a name="l00524"></a>00524 <span class="comment">//                  cout &lt;&lt; ip &lt;&lt; " -+- "&lt;&lt;is&lt;&lt;endl;</span>  <a name="l00524"></a>00524 <span class="comment">//                  cout &lt;&lt; ip &lt;&lt; " -+- "&lt;&lt;is&lt;&lt;endl;</span>
546  <a name="l00525"></a>00525                 }  <a name="l00525"></a>00525                 }
547  <a name="l00526"></a>00526             }  <a name="l00526"></a>00526             }
548  <a name="l00527"></a>00527         }  <a name="l00527"></a>00527         }
549  <a name="l00528"></a>00528         <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>();  <a name="l00528"></a>00528         Fit();
550  <a name="l00529"></a>00529  <a name="l00529"></a>00529
551  <a name="l00530"></a>00530         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">return</span> 0;  <a name="l00530"></a>00530         <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">return</span> 0;
552  <a name="l00531"></a>00531         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++){  <a name="l00531"></a>00531         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++){
553  <a name="l00532"></a>00532             <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip]!=0){  <a name="l00532"></a>00532             <span class="keywordflow">if</span>(qpl[ip]!=0){
554  <a name="l00533"></a>00533                 <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip]=<a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip]/<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip];  <a name="l00533"></a>00533                 cog[ip]=cog[ip]/qpl[ip];
555  <a name="l00534"></a>00534 <span class="comment">//          Add(z,cog[ip],cog[ip],0.7);</span>  <a name="l00534"></a>00534 <span class="comment">//          Add(z,cog[ip],cog[ip],0.7);</span>
556  <a name="l00535"></a>00535             }  <a name="l00535"></a>00535             }
557  <a name="l00536"></a>00536         }  <a name="l00536"></a>00536         }
# Line 567  Line 567 
567  <a name="l00546"></a>00546     };  <a name="l00546"></a>00546     };
568  <a name="l00547"></a>00547  <a name="l00547"></a>00547
569  <a name="l00548"></a>00548  <a name="l00548"></a>00548
570  <a name="l00549"></a><a class="code" href="classCaloAxis.html#02b1f08ab710247112097a662a24cc5a">00549</a>     <span class="keywordtype">int</span> <a class="code" href="classCaloAxis.html#02b1f08ab710247112097a662a24cc5a">FitAxis</a>( CaloLevel1* calo , Int_t view , Float_t toll ){ <span class="keywordflow">return</span> <a class="code" href="classCaloAxis.html#02b1f08ab710247112097a662a24cc5a">FitAxis</a>(calo,view,toll,0); };  <a name="l00549"></a>00549     <span class="keywordtype">int</span> FitAxis( CaloLevel1* calo , Int_t view , Float_t toll ){ <span class="keywordflow">return</span> FitAxis(calo,view,toll,0); };
571  <a name="l00550"></a>00550  <a name="l00550"></a>00550
572  <a name="l00551"></a>00551  <a name="l00551"></a>00551
573  <a name="l00552"></a>00552  <a name="l00552"></a>00552
574  <a name="l00553"></a>00553     <span class="comment">//-----------------------------------------------------------------</span>  <a name="l00553"></a>00553     <span class="comment">//-----------------------------------------------------------------</span>
575  <a name="l00554"></a>00554     <span class="comment">// fit the axis (optimized for interacting patterns?? ...forse)</span>  <a name="l00554"></a>00554     <span class="comment">// fit the axis (optimized for interacting patterns?? ...forse)</span>
576  <a name="l00555"></a>00555     <span class="comment">//-----------------------------------------------------------------</span>  <a name="l00555"></a>00555     <span class="comment">//-----------------------------------------------------------------</span>
577  <a name="l00556"></a><a class="code" href="classCaloAxis.html#bf6b255e057ff7e1f49970ecec2145ad">00556</a>     <span class="keywordtype">int</span> <a class="code" href="classCaloAxis.html#bf6b255e057ff7e1f49970ecec2145ad">FitShower</a>( CaloLevel1* calo , Int_t view , Float_t toll , Bool_t usemechanicalalignement ){  <a name="l00556"></a>00556     <span class="keywordtype">int</span> FitShower( CaloLevel1* calo , Int_t view , Float_t toll , Bool_t usemechanicalalignement ){
578  <a name="l00557"></a>00557  <a name="l00557"></a>00557
579  <a name="l00558"></a>00558 <span class="comment">//      cout &lt;&lt; "CaloAxis::FitAxis(...)"&lt;&lt;endl;</span>  <a name="l00558"></a>00558 <span class="comment">//      cout &lt;&lt; "CaloAxis::FitAxis(...)"&lt;&lt;endl;</span>
580  <a name="l00559"></a>00559  <a name="l00559"></a>00559
581  <a name="l00560"></a>00560         <a class="code" href="classCaloAxis.html#00e32ad98be21c697b8a0671b90e8dd1">Set</a>(calo,view,usemechanicalalignement);  <a name="l00560"></a>00560         Set(calo,view,usemechanicalalignement);
582  <a name="l00561"></a>00561  <a name="l00561"></a>00561
583  <a name="l00562"></a>00562         <span class="comment">// ------------------------------</span>  <a name="l00562"></a>00562         <span class="comment">// ------------------------------</span>
584  <a name="l00563"></a>00563         <span class="comment">// first :</span>  <a name="l00563"></a>00563         <span class="comment">// first :</span>
585  <a name="l00564"></a>00564         <span class="comment">// ------------------------------</span>  <a name="l00564"></a>00564         <span class="comment">// ------------------------------</span>
586  <a name="l00565"></a>00565         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){  <a name="l00565"></a>00565         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){
587  <a name="l00566"></a>00566             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00566"></a>00566             <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
588  <a name="l00567"></a>00567             <span class="comment">//float z = cevent-&gt;zcoord[ih];</span>  <a name="l00567"></a>00567             <span class="comment">//float z = cevent-&gt;zcoord[ih];</span>
589  <a name="l00568"></a>00568             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[ih];  <a name="l00568"></a>00568             <span class="keywordtype">float</span> q = cevent-&gt;q[ih];
590  <a name="l00569"></a>00569             <span class="keywordtype">int</span> ip  = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>[ih];  <a name="l00569"></a>00569             <span class="keywordtype">int</span> ip  = cevent-&gt;idp[ih];
591  <a name="l00570"></a>00570             <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip] += x*q;  <a name="l00570"></a>00570             cog[ip] += x*q;
592  <a name="l00571"></a>00571             <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip] += q;  <a name="l00571"></a>00571             qpl[ip] += q;
593  <a name="l00572"></a>00572 <span class="comment">//          Add(z,x,q);</span>  <a name="l00572"></a>00572 <span class="comment">//          Add(z,x,q);</span>
594  <a name="l00573"></a>00573         }  <a name="l00573"></a>00573         }
595  <a name="l00574"></a>00574         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++){  <a name="l00574"></a>00574         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++){
596  <a name="l00575"></a>00575             <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip]!=0)<a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip]=<a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip]/<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip];  <a name="l00575"></a>00575             <span class="keywordflow">if</span>(qpl[ip]!=0)cog[ip]=cog[ip]/qpl[ip];
597  <a name="l00576"></a>00576 <span class="comment">//          cout &lt;&lt; ip &lt;&lt; " &gt; "&lt;&lt;qpl[ip]&lt;&lt;" "&lt;&lt;cog[ip]&lt;&lt;endl;</span>  <a name="l00576"></a>00576 <span class="comment">//          cout &lt;&lt; ip &lt;&lt; " &gt; "&lt;&lt;qpl[ip]&lt;&lt;" "&lt;&lt;cog[ip]&lt;&lt;endl;</span>
598  <a name="l00577"></a>00577         }  <a name="l00577"></a>00577         }
599  <a name="l00578"></a>00578         <span class="comment">// ----------------</span>  <a name="l00578"></a>00578         <span class="comment">// ----------------</span>
# Line 605  Line 605 
605  <a name="l00584"></a>00584         <span class="keywordtype">int</span> closest[22];  <a name="l00584"></a>00584         <span class="keywordtype">int</span> closest[22];
606  <a name="l00585"></a>00585         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++)if(qpl[ip]&gt;qplmax){  <a name="l00585"></a>00585         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++)if(qpl[ip]&gt;qplmax){
607  <a name="l00586"></a>00586             ipmax=ip;  <a name="l00586"></a>00586             ipmax=ip;
608  <a name="l00587"></a>00587             qplmax=<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip];  <a name="l00587"></a>00587             qplmax=qpl[ip];
609  <a name="l00588"></a>00588             dmin[ip]=1000.;<span class="comment">//init</span>  <a name="l00588"></a>00588             dmin[ip]=1000.;<span class="comment">//init</span>
610  <a name="l00589"></a>00589             closest[ip]=-1;<span class="comment">//init</span>  <a name="l00589"></a>00589             closest[ip]=-1;<span class="comment">//init</span>
611  <a name="l00590"></a>00590         }  <a name="l00590"></a>00590         }
612  <a name="l00591"></a>00591         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){  <a name="l00591"></a>00591         <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){
613  <a name="l00592"></a>00592             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00592"></a>00592             <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
614  <a name="l00593"></a>00593             <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[ih];  <a name="l00593"></a>00593             <span class="keywordtype">float</span> z = cevent-&gt;zcoord[ih];
615  <a name="l00594"></a>00594             <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[ih];  <a name="l00594"></a>00594             <span class="keywordtype">float</span> q = cevent-&gt;q[ih];
616  <a name="l00595"></a>00595             <span class="keywordtype">int</span> ip  = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>[ih];  <a name="l00595"></a>00595             <span class="keywordtype">int</span> ip  = cevent-&gt;idp[ih];
617  <a name="l00596"></a>00596 <span class="comment">//          if( (ipmax&gt;3 &amp;&amp; ip&lt;=ipmax) || ipmax&lt;=3 )Add(z,x,q);</span>  <a name="l00596"></a>00596 <span class="comment">//          if( (ipmax&gt;3 &amp;&amp; ip&lt;=ipmax) || ipmax&lt;=3 )Add(z,x,q);</span>
618  <a name="l00597"></a>00597             <span class="keywordflow">if</span>( ip&lt;=ipmax || ip&lt;=3 ){  <a name="l00597"></a>00597             <span class="keywordflow">if</span>( ip&lt;=ipmax || ip&lt;=3 ){
619  <a name="l00598"></a>00598                 <a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">Add</a>(z,x,q);  <a name="l00598"></a>00598                 Add(z,x,q);
620  <a name="l00599"></a>00599             }  <a name="l00599"></a>00599             }
621  <a name="l00600"></a>00600         }  <a name="l00600"></a>00600         }
622  <a name="l00601"></a>00601         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">return</span> 0;  <a name="l00601"></a>00601         <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">return</span> 0;
623  <a name="l00602"></a>00602         <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>();  <a name="l00602"></a>00602         Fit();
624  <a name="l00603"></a>00603 <span class="comment">//      cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl;</span>  <a name="l00603"></a>00603 <span class="comment">//      cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl;</span>
625  <a name="l00604"></a>00604 <span class="comment">//      cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl;</span>  <a name="l00604"></a>00604 <span class="comment">//      cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl;</span>
626  <a name="l00605"></a>00605 <span class="comment">//      cout &lt;&lt; " Chi2    :"&lt;&lt;GetChi2()&lt;&lt;endl;</span>  <a name="l00605"></a>00605 <span class="comment">//      cout &lt;&lt; " Chi2    :"&lt;&lt;GetChi2()&lt;&lt;endl;</span>
# Line 650  Line 650 
650  <a name="l00629"></a>00629             niter++;  <a name="l00629"></a>00629             niter++;
651  <a name="l00630"></a>00630             <span class="keywordtype">float</span> ttoll = toll;           <span class="comment">//tolerance (cm)</span>  <a name="l00630"></a>00630             <span class="keywordtype">float</span> ttoll = toll;           <span class="comment">//tolerance (cm)</span>
652  <a name="l00631"></a>00631             <span class="keywordflow">if</span>(niter==1)ttoll = 10.*toll;  <a name="l00631"></a>00631             <span class="keywordflow">if</span>(niter==1)ttoll = 10.*toll;
653  <a name="l00632"></a>00632             dof = <a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>();           <span class="comment">//previous fit</span>  <a name="l00632"></a>00632             dof = GetN();           <span class="comment">//previous fit</span>
654  <a name="l00633"></a>00633             P0  = <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[0];  <a name="l00633"></a>00633             P0  = par[0];
655  <a name="l00634"></a>00634             P1  = <a class="code" href="classCaloAxis.html#e4b2ce253db4df8576ccc1f122a7e432">par</a>[1];  <a name="l00634"></a>00634             P1  = par[1];
656  <a name="l00635"></a>00635             <a class="code" href="classCaloAxis.html#a1b225fccc498fdf49c415497d405eac">Reset</a>();                <span class="comment">//fit reset</span>  <a name="l00635"></a>00635             Reset();                <span class="comment">//fit reset</span>
657  <a name="l00636"></a>00636             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;22; i++){  <a name="l00636"></a>00636             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;22; i++){
658  <a name="l00637"></a>00637                 <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[i]=0;  <a name="l00637"></a>00637                 cog[i]=0;
659  <a name="l00638"></a>00638                 <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[i]=0;  <a name="l00638"></a>00638                 qpl[i]=0;
660  <a name="l00639"></a>00639             }  <a name="l00639"></a>00639             }
661  <a name="l00640"></a>00640             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;<a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#2b2597fe0263fe128101a6ab02520130">GetN</a>(); ih++){  <a name="l00640"></a>00640             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ih=0;ih&lt;cevent-&gt;GetN(); ih++){
662  <a name="l00641"></a>00641                 <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#bea775e33c9f4ea5c308eace6ac4a513">x</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#b48403ffdb4114d57e4ea4058438e814">xycoord</a>[ih];  <a name="l00641"></a>00641                 <span class="keywordtype">float</span> x = cevent-&gt;xycoord[ih];
663  <a name="l00642"></a>00642                 <span class="keywordtype">float</span> z = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#340ff2ae2167b37d0b6acc56b1475daf">zcoord</a>[ih];  <a name="l00642"></a>00642                 <span class="keywordtype">float</span> z = cevent-&gt;zcoord[ih];
664  <a name="l00643"></a>00643                 <span class="keywordtype">float</span> <a class="code" href="classCaloAxis.html#06da2809e33c9fa67e151d210fdab8fe">q</a> = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#688d5d2803d4688d4f1ef72cbaf42dcd">q</a>[ih];  <a name="l00643"></a>00643                 <span class="keywordtype">float</span> q = cevent-&gt;q[ih];
665  <a name="l00644"></a>00644                 <span class="keywordtype">int</span> ip = <a class="code" href="classCaloAxis.html#fb48c08633030431b7e509ff1b34558d">cevent</a>-&gt;<a class="code" href="classCaloEvent.html#3ad199ffd33f6300bff64e854c6ad652">idp</a>[ih];  <a name="l00644"></a>00644                 <span class="keywordtype">int</span> ip = cevent-&gt;idp[ih];
666  <a name="l00645"></a>00645                 <span class="keywordtype">float</span> d = fabs(x-P0-P1*z)/sqrt(P1*P1+1);  <a name="l00645"></a>00645                 <span class="keywordtype">float</span> d = fabs(x-P0-P1*z)/sqrt(P1*P1+1);
667  <a name="l00646"></a>00646 <span class="comment">//              cout&lt;&lt;d&lt;&lt;endl;</span>  <a name="l00646"></a>00646 <span class="comment">//              cout&lt;&lt;d&lt;&lt;endl;</span>
668  <a name="l00647"></a>00647                 <span class="keywordflow">if</span>(  <a name="l00647"></a>00647                 <span class="keywordflow">if</span>(
# Line 681  Line 681 
681  <a name="l00660"></a>00660                     <span class="keywordflow">if</span>( d &lt; ttoll || ( niter==2 &amp;&amp; ih==closest[ip] )){  <a name="l00660"></a>00660                     <span class="keywordflow">if</span>( d &lt; ttoll || ( niter==2 &amp;&amp; ih==closest[ip] )){
682  <a name="l00661"></a>00661 <span class="comment">/*                      if(ip==ipmax &amp;&amp; ipmax&gt;1)Add(z,x,q,W*q);  */</span>  <a name="l00661"></a>00661 <span class="comment">/*                      if(ip==ipmax &amp;&amp; ipmax&gt;1)Add(z,x,q,W*q);  */</span>
683  <a name="l00662"></a>00662 <span class="comment">/*                      else Add(z,x,q,W);  */</span>  <a name="l00662"></a>00662 <span class="comment">/*                      else Add(z,x,q,W);  */</span>
684  <a name="l00663"></a>00663                         <a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip] += x*q;  <a name="l00663"></a>00663                         cog[ip] += x*q;
685  <a name="l00664"></a>00664                         <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip] += q;  <a name="l00664"></a>00664                         qpl[ip] += q;
686  <a name="l00665"></a>00665                         <a class="code" href="classCaloAxis.html#4953d4ace9da1118672a451d66afd01b">Add</a>(z,x,q,W);  <a name="l00665"></a>00665                         Add(z,x,q,W);
687  <a name="l00666"></a>00666                         pok[ip]=1;  <a name="l00666"></a>00666                         pok[ip]=1;
688  <a name="l00667"></a>00667                         cout &lt;&lt; ip &lt;&lt; <span class="stringliteral">" "</span>&lt;&lt;<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip]&lt;&lt;endl;  <a name="l00667"></a>00667                         cout &lt;&lt; ip &lt;&lt; <span class="stringliteral">" "</span>&lt;&lt;qpl[ip]&lt;&lt;endl;
689  <a name="l00668"></a>00668                     }  <a name="l00668"></a>00668                     }
690  <a name="l00669"></a>00669                 }  <a name="l00669"></a>00669                 }
691  <a name="l00670"></a>00670             }  <a name="l00670"></a>00670             }
# Line 703  Line 703 
703  <a name="l00682"></a>00682                 }  <a name="l00682"></a>00682                 }
704  <a name="l00683"></a>00683             }  <a name="l00683"></a>00683             }
705  <a name="l00684"></a>00684  <a name="l00684"></a>00684
706  <a name="l00685"></a>00685             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++)cout &lt;&lt; <a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip] &lt;&lt; <span class="stringliteral">" "</span>;  <a name="l00685"></a>00685             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++)cout &lt;&lt; qpl[ip] &lt;&lt; <span class="stringliteral">" "</span>;
707  <a name="l00686"></a>00686             cout &lt;&lt; endl;  <a name="l00686"></a>00686             cout &lt;&lt; endl;
708  <a name="l00687"></a>00687  <a name="l00687"></a>00687
709  <a name="l00688"></a>00688  <a name="l00688"></a>00688
710  <a name="l00689"></a>00689             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++)<span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip]!=0)<a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip]=<a class="code" href="classCaloAxis.html#575a6d4f2ab14d0039902b0818395222">cog</a>[ip]/<a class="code" href="classCaloAxis.html#2ff6400f0393e7ab05627a438c6eeca5">qpl</a>[ip];  <a name="l00689"></a>00689             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ip=0; ip&lt;22; ip++)<span class="keywordflow">if</span>(qpl[ip]!=0)cog[ip]=cog[ip]/qpl[ip];
711  <a name="l00690"></a>00690  <a name="l00690"></a>00690
712  <a name="l00691"></a>00691  <a name="l00691"></a>00691
713  <a name="l00692"></a>00692             <span class="keywordflow">if</span>(niter==100)<span class="keywordflow">break</span>;  <a name="l00692"></a>00692             <span class="keywordflow">if</span>(niter==100)<span class="keywordflow">break</span>;
714  <a name="l00693"></a>00693             <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">break</span>;  <a name="l00693"></a>00693             <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">break</span>;
715  <a name="l00694"></a>00694  <a name="l00694"></a>00694
716  <a name="l00695"></a>00695             <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>();  <a name="l00695"></a>00695             Fit();
717  <a name="l00696"></a>00696  <a name="l00696"></a>00696
718  <a name="l00697"></a>00697         }<span class="keywordflow">while</span>(niter==1 || <a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>() != dof);  <a name="l00697"></a>00697         }<span class="keywordflow">while</span>(niter==1 || GetN() != dof);
719  <a name="l00698"></a>00698 <span class="comment">//      cout &lt;&lt; " &gt;&gt;&gt; "&lt;&lt;GetN()&lt;&lt;endl;</span>  <a name="l00698"></a>00698 <span class="comment">//      cout &lt;&lt; " &gt;&gt;&gt; "&lt;&lt;GetN()&lt;&lt;endl;</span>
720  <a name="l00699"></a>00699         <span class="keywordflow">if</span>(<a class="code" href="classCaloAxis.html#be448c5906fb90329316b50796d2c721">GetN</a>()&lt;3)<span class="keywordflow">return</span> 0;  <a name="l00699"></a>00699         <span class="keywordflow">if</span>(GetN()&lt;3)<span class="keywordflow">return</span> 0;
721  <a name="l00700"></a>00700         <a class="code" href="classCaloAxis.html#58d8a61ebffbef5318b9539cd7364633">Fit</a>();  <a name="l00700"></a>00700         Fit();
722  <a name="l00701"></a>00701 <span class="comment">/* //   cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl; */</span>  <a name="l00701"></a>00701 <span class="comment">/* //   cout &lt;&lt; " n. hits :"&lt;&lt;GetN()&lt;&lt;endl; */</span>
723  <a name="l00702"></a>00702 <span class="comment">/* //   cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl; */</span>  <a name="l00702"></a>00702 <span class="comment">/* //   cout &lt;&lt; " P0 P1   :"&lt;&lt;par[0]&lt;&lt; " "&lt;&lt;par[1]&lt;&lt;endl; */</span>
724  <a name="l00703"></a>00703 <span class="comment">/* //   cout &lt;&lt; " Chi2    :"&lt;&lt;GetChi2()&lt;&lt;endl; */</span>  <a name="l00703"></a>00703 <span class="comment">/* //   cout &lt;&lt; " Chi2    :"&lt;&lt;GetChi2()&lt;&lt;endl; */</span>
# Line 802  Line 802 
802  <a name="l00781"></a>00781     };  <a name="l00781"></a>00781     };
803  <a name="l00782"></a>00782  <a name="l00782"></a>00782
804  <a name="l00783"></a>00783  <a name="l00783"></a>00783
805  <a name="l00784"></a><a class="code" href="classCaloAxis.html#eb0e8858c1297b4b3e3f5f66f09f508e">00784</a>     <span class="keywordtype">int</span> <a class="code" href="classCaloAxis.html#eb0e8858c1297b4b3e3f5f66f09f508e">FitShower</a>( CaloLevel1* calo , Int_t view , Float_t toll ){ <span class="keywordflow">return</span> <a class="code" href="classCaloAxis.html#768db65112c0f2ecc7b0561772004e0f">FitAxis</a>(calo,view,toll,0); };  <a name="l00784"></a>00784     <span class="keywordtype">int</span> FitShower( CaloLevel1* calo , Int_t view , Float_t toll ){ <span class="keywordflow">return</span> FitAxis(calo,view,toll,0); };
806  <a name="l00785"></a>00785  <a name="l00785"></a>00785
807  <a name="l00786"></a>00786  <a name="l00786"></a>00786
808  <a name="l00787"></a>00787 };  <a name="l00787"></a>00787 };
# Line 816  Line 816 
816  <a name="l00795"></a>00795  <a name="l00795"></a>00795
817  <a name="l00796"></a>00796 <span class="preprocessor">#endif // CALOAXIS2_H_</span>  <a name="l00796"></a>00796 <span class="preprocessor">#endif // CALOAXIS2_H_</span>
818  </pre></div></div>  </pre></div></div>
819  <hr size="1"><address style="text-align: right;"><small>Generated on Wed May 27 15:21:27 2009 for PamCut by&nbsp;  <hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 15:08:58 2009 for PamCut by&nbsp;
820  <a href="http://www.doxygen.org/index.html">  <a href="http://www.doxygen.org/index.html">
821  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
822  </body>  </body>

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.23