]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/html/AliHLTPHOSEmcCalibData_8cxx-source.html
Added source code to the hrml documentation
[u/mrichter/AliRoot.git] / HLT / PHOS / html / AliHLTPHOSEmcCalibData_8cxx-source.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>AliHLTPHOS: AliHLTPHOSEmcCalibData.cxx Source File</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.3.9.1 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>AliHLTPHOSEmcCalibData.cxx</h1><a href="AliHLTPHOSEmcCalibData_8cxx.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/**************************************************************************</span>
9 00002 <span class="comment"> * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *</span>
10 00003 <span class="comment"> *                                                                        *</span>
11 00004 <span class="comment"> * Author: The ALICE Off-line Project.                                    *</span>
12 00005 <span class="comment"> * Contributors are mentioned in the code where appropriate.              *</span>
13 00006 <span class="comment"> *                                                                        *</span>
14 00007 <span class="comment"> * Permission to use, copy, modify and distribute this software and its   *</span>
15 00008 <span class="comment"> * documentation strictly for non-commercial purposes is hereby granted   *</span>
16 00009 <span class="comment"> * without fee, provided that the above copyright notice appears in all   *</span>
17 00010 <span class="comment"> * copies and that both the copyright notice and this permission notice   *</span>
18 00011 <span class="comment"> * appear in the supporting documentation. The authors make no claims     *</span>
19 00012 <span class="comment"> * about the suitability of this software for any purpose. It is          *</span>
20 00013 <span class="comment"> * provided "as is" without express or implied warranty.                  * </span>
21 00014 <span class="comment"> *                                                                        *</span>
22 00015 <span class="comment"> * 7/1- 2007                                                              *</span>
23 00016 <span class="comment"> * Author: Per Thomas Hille                                               *</span>
24 00017 <span class="comment"> * code modified to include the two differnt gains of each detection      *</span>
25 00018 <span class="comment"> * channel and also to include the Pedestals loaded into the ALTRO        * </span>
26 00019 <span class="comment"> * registers for basline subtraction and zero supression                  * </span>
27 00020 <span class="comment"> *                                                                        *</span>
28 00021 <span class="comment"> *                                                                        * </span>
29 00022 <span class="comment"> **************************************************************************/</span>
30 00023 
31 00025 <span class="comment">//                                                                           //</span>
32 00026 <span class="comment">// class for PHOS EmCal calibration                                          //</span>
33 00027 <span class="comment">//                                                                           //</span>
34 00029 <span class="comment"></span>
35 00030 <span class="preprocessor">#include "<a class="code" href="AliHLTPHOSEmcCalibData_8h.html">AliHLTPHOSEmcCalibData.h</a>"</span>
36 00031 
37 <a name="l00032"></a><a class="code" href="AliHLTPHOSEmcCalibData_8cxx.html#a0">00032</a> <a class="code" href="AliHLTPHOSRawAnalyzerPeakFinder_8cxx.html#a0">ClassImp</a>(<a class="code" href="classAliHLTPHOSEmcCalibData.html">AliHLTPHOSEmcCalibData</a>)
38 00033 
39 00034 <span class="comment">//________________________________________________________________</span>
40 00035   <a class="code" href="classAliHLTPHOSEmcCalibData.html">AliHLTPHOSEmcCalibData</a>::<a class="code" href="classAliHLTPHOSEmcCalibData.html">AliHLTPHOSEmcCalibData</a>(): TNamed()
41 00036 {
42 00037   <span class="comment">// Default constructor</span>
43 00038   Reset();
44 00039 }
45 00040 
46 00041 <span class="comment">//________________________________________________________________</span>
47 <a name="l00042"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa1">00042</a> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa0">AliHLTPHOSEmcCalibData::AliHLTPHOSEmcCalibData</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name)
48 00043 {
49 00044   <span class="comment">// Constructor</span>
50 00045   TString namst = <span class="stringliteral">"Calib_"</span>;
51 00046   namst += name;
52 00047   SetName(namst.Data());
53 00048   SetTitle(namst.Data());
54 00049   <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa5">Reset</a>();
55 00050 }
56 00051 
57 00052 <span class="comment">//________________________________________________________________</span>
58 <a name="l00053"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa2">00053</a> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa0">AliHLTPHOSEmcCalibData::AliHLTPHOSEmcCalibData</a>(<span class="keyword">const</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html">AliHLTPHOSEmcCalibData</a>&amp; calibda) :
59 00054   TNamed(calibda)
60 00055 {
61 00056   <span class="comment">// copy constructor</span>
62 00057   SetName(calibda.GetName());
63 00058   SetTitle(calibda.GetName());
64 00059 
65 00060 
66 00061   <span class="comment">//  for(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){</span>
67 00062   <span class="keywordflow">for</span>(Int_t module=0; module&lt;PHOS_MODULES; module++) {
68 00063     <span class="keywordflow">for</span>(Int_t column=0; column&lt; PHOS_COLUMNS; column++) {
69 00064       <span class="keywordflow">for</span>(Int_t row=0; row&lt;PHOS_ROWS; row++) {
70 00065         <span class="keywordflow">for</span>(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){
71 00066           <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module][column][row][gain] =  calibda.<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module][column][row][gain];
72 00067           <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module][column][row][gain] = calibda.<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module][column][row][gain];
73 00068         }
74 00069       }  
75 00070     }
76 00071   }
77 00072 }
78 00073 
79 00074 <span class="comment">//________________________________________________________________</span>
80 <a name="l00075"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa3">00075</a> <a class="code" href="classAliHLTPHOSEmcCalibData.html">AliHLTPHOSEmcCalibData</a> &amp;<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa3">AliHLTPHOSEmcCalibData::operator =</a>(<span class="keyword">const</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html">AliHLTPHOSEmcCalibData</a>&amp; calibda)
81 00076 {
82 00077   <span class="comment">// assignment operator</span>
83 00078 
84 00079   <span class="keywordflow">if</span>(<span class="keyword">this</span> != &amp;calibda) { 
85 00080 
86 00081     SetName(calibda.GetName());
87 00082     SetTitle(calibda.GetName());
88 00083     <span class="comment">//    for(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){</span>
89 00084     <span class="keywordflow">for</span>(Int_t module=0; module&lt;PHOS_MODULES; module++) {
90 00085       <span class="keywordflow">for</span>(Int_t column=0; column&lt; PHOS_COLUMNS; column++) {
91 00086         <span class="keywordflow">for</span>(Int_t row=0; row&lt;PHOS_ROWS; row++) {
92 00087           <span class="keywordflow">for</span>(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){
93 00088             <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module][column][row][gain] = calibda.<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module][column][row][gain];
94 00089             <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module][column][row][gain] = calibda.<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module][column][row][gain];
95 00090           }
96 00091         }
97 00092       }
98 00093     }
99 00094   }
100 00095   <span class="keywordflow">return</span> *<span class="keyword">this</span>;
101 00096 }
102 00097 
103 00098 <span class="comment">//________________________________________________________________</span>
104 <a name="l00099"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa4">00099</a> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa4">AliHLTPHOSEmcCalibData::~AliHLTPHOSEmcCalibData</a>()
105 00100 {
106 00101   <span class="comment">// Destructor</span>
107 00102 }
108 00103 
109 00104 <span class="comment">//________________________________________________________________</span>
110 <a name="l00105"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa5">00105</a> <span class="keywordtype">void</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa5">AliHLTPHOSEmcCalibData::Reset</a>()
111 00106 {
112 00107   <span class="comment">// Set all pedestals and all ADC channels to its ideal values = 1.</span>
113 00108 
114 00109   <span class="comment">//  for(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){</span>
115 00110     <span class="keywordflow">for</span> (Int_t module=0; module&lt;PHOS_MODULES; module++){
116 00111       <span class="keywordflow">for</span> (Int_t column=0; column&lt; PHOS_COLUMNS; column++){
117 00112         <span class="keywordflow">for</span> (Int_t row=0; row&lt;PHOS_ROWS; row++){
118 00113           <span class="keywordflow">for</span>(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){
119 00114           <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module][column][row][gain] = 0.;
120 00115           <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module][column][row][gain]  = 1.;
121 00116         }
122 00117       }
123 00118     }
124 00119   }
125 00120 }
126 00121 
127 00122 <span class="comment">//________________________________________________________________</span>
128 <a name="l00123"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa6">00123</a> <span class="keywordtype">void</span>  <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa6">AliHLTPHOSEmcCalibData::Print</a>(Option_t *option)<span class="keyword"> const</span>
129 00124 <span class="keyword"></span>{
130 00125   <span class="comment">// Print tables of pedestals and ADC channels</span>
131 00126 
132 00127   <span class="keywordflow">if</span> (strstr(option,<span class="stringliteral">"ped"</span>)) {
133 00128     printf(<span class="stringliteral">"\n  ----    EMC Pedestal values     ----\n\n"</span>);
134 00129     <span class="comment">//    for(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){</span>
135 00130       <span class="keywordflow">for</span> (Int_t module=0; module&lt;PHOS_MODULES; module++){
136 00131         printf(<span class="stringliteral">"============== Module %d\n"</span>,module+1);
137 00132         <span class="keywordflow">for</span> (Int_t column=0; column&lt; PHOS_COLUMNS; column++){
138 00133           <span class="keywordflow">for</span> (Int_t row=0; row&lt;PHOS_ROWS; row++){
139 00134             <span class="keywordflow">for</span>(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){
140 00135             printf(<span class="stringliteral">"%4.1f"</span>,<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module][column][row][gain]);
141 00136           }
142 00137           printf(<span class="stringliteral">"\n"</span>);
143 00138         }
144 00139       }
145 00140     }
146 00141   }
147 00142 
148 00143   <span class="keywordflow">if</span> (strstr(option,<span class="stringliteral">"gain"</span>)) {
149 00144     printf(<span class="stringliteral">"\n  ----    EMC ADC channel values  ----\n\n"</span>);
150 00145     <span class="comment">//   for(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){ </span>
151 00146     <span class="keywordflow">for</span> (Int_t module=0; module&lt;PHOS_MODULES; module++){
152 00147       printf(<span class="stringliteral">"============== Module %d\n"</span>,module+1);
153 00148       <span class="keywordflow">for</span> (Int_t column=0; column&lt; PHOS_COLUMNS; column++){
154 00149         <span class="keywordflow">for</span> (Int_t row=0; row&lt;PHOS_ROWS; row++){
155 00150           <span class="keywordflow">for</span>(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){ 
156 00151             printf(<span class="stringliteral">"%4.1f"</span>,<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module][column][row][gain]);
157 00152           }
158 00153           printf(<span class="stringliteral">"\n"</span>);
159 00154         }
160 00155       }
161 00156     }  
162 00157   }
163 00158 }
164 00159 
165 00160 
166 00161 <span class="keywordtype">void</span>  
167 <a name="l00162"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa11">00162</a> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa11">AliHLTPHOSEmcCalibData::MakeADCpedestalCorrectionTable</a>()
168 00163 {
169 00164   <span class="keywordflow">for</span> (Int_t module=0; module&lt;PHOS_MODULES; module++){
170 00165     printf(<span class="stringliteral">"============== Module %d\n"</span>,module+1);
171 00166     <span class="keywordflow">for</span> (Int_t column=0; column&lt; PHOS_COLUMNS; column++){
172 00167       <span class="keywordflow">for</span> (Int_t row=0; row&lt;PHOS_ROWS; row++){
173 00168         <span class="keywordflow">for</span>(Int_t gain = 0; gain &lt; PHOS_GAINS; gain ++){ 
174 00169           <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap3">fADCpedestalCorrectionTable</a>[module][column][row][gain] = <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module][column][row][gain] - <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap2">fADCpedestalAltroReg</a>[module][column][row][gain];
175 00170           <span class="comment">//      printf("%4.1f",fADCchannelEnergy[module][column][row][gain]);</span>
176 00171           <span class="comment">//</span>
177 00172         }
178 00173         printf(<span class="stringliteral">"\n"</span>);
179 00174       }
180 00175     }
181 00176   }    
182 00177 }
183 00178 
184 00179 
185 00180 <span class="comment">//________________________________________________________________</span>
186 <a name="l00181"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa7">00181</a> Float_t <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa7">AliHLTPHOSEmcCalibData::GetADCchannelEnergy</a>(Int_t module, Int_t column, Int_t row, Int_t gain)<span class="keyword"> const</span>
187 00182 <span class="keyword"></span>{
188 00183   <span class="comment">//Return EMC calibration coefficient</span>
189 00184   <span class="comment">//module, column,raw should follow the internal PHOS convention:</span>
190 00185   <span class="comment">//module 1:5, column 1:56, row 1:64</span>
191 00186 
192 00187   <span class="keywordflow">return</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module-1][column-1][row-1][gain];
193 00188 }
194 00189 
195 00190 <span class="comment">//________________________________________________________________</span>
196 <a name="l00191"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa8">00191</a> Float_t <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa8">AliHLTPHOSEmcCalibData::GetADCpedestalEmcMeasured</a>(Int_t module, Int_t column, Int_t row, Int_t gain)<span class="keyword"> const</span>
197 00192 <span class="keyword"></span>{
198 00193   <span class="comment">//Return EMC pedestal</span>
199 00194   <span class="comment">//module, column,raw should follow the internal PHOS convention:</span>
200 00195   <span class="comment">//module 1:5, column 1:56, row 1:64</span>
201 00196 
202 00197 
203 00198   <span class="keywordflow">return</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module-1][column-1][row-1][gain];
204 00199 }
205 00200 
206 00201 <span class="comment">//________________________________________________________________</span>
207 <a name="l00202"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa9">00202</a> <span class="keywordtype">void</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa9">AliHLTPHOSEmcCalibData::SetADCchannelEnergy</a>(Int_t module, Int_t column, Int_t row, Int_t gain, Float_t value)
208 00203 {
209 00204   <span class="comment">//Set EMC calibration coefficient</span>
210 00205   <span class="comment">//module, column,raw should follow the internal PHOS convention:</span>
211 00206   <span class="comment">//module 1:5, column 1:56, row 1:64</span>
212 00207 
213 00208   <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module-1][column-1][row-1][gain] = value;
214 00209 }
215 00210 
216 00211 <span class="comment">//________________________________________________________________</span>
217 <a name="l00212"></a><a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa10">00212</a> <span class="keywordtype">void</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa10">AliHLTPHOSEmcCalibData::SetADCpedestalEmcMeasured</a>(Int_t module, Int_t column, Int_t row, Int_t gain, Float_t value)
218 00213 {
219 00214   <span class="comment">//Set EMC pedestal</span>
220 00215   <span class="comment">//module, column,raw should follow the internal PHOS convention:</span>
221 00216   <span class="comment">//module 1:5, column 1:56, row 1:64</span>
222 00217   <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module-1][column-1][row-1][gain] = value;
223 00218 }
224 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Jan 17 21:56:43 2007 for AliHLTPHOS by&nbsp;
225 <a href="http://www.doxygen.org/index.html">
226 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
227 </body>
228 </html>