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">
6 <!-- Generated by Doxygen 1.3.9.1 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File 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>
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>
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>)
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()
42 00037 <span class="comment">// Default constructor</span>
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)
49 00044 <span class="comment">// Constructor</span>
50 00045 TString namst = <span class="stringliteral">"Calib_"</span>;
52 00047 SetName(namst.Data());
53 00048 SetTitle(namst.Data());
54 00049 <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa5">Reset</a>();
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>& calibda) :
61 00056 <span class="comment">// copy constructor</span>
62 00057 SetName(calibda.GetName());
63 00058 SetTitle(calibda.GetName());
66 00061 <span class="comment">// for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){</span>
67 00062 <span class="keywordflow">for</span>(Int_t module=0; module<PHOS_MODULES; module++) {
68 00063 <span class="keywordflow">for</span>(Int_t column=0; column< PHOS_COLUMNS; column++) {
69 00064 <span class="keywordflow">for</span>(Int_t row=0; row<PHOS_ROWS; row++) {
70 00065 <span class="keywordflow">for</span>(Int_t gain = 0; gain < 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];
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> &<a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDataa3">AliHLTPHOSEmcCalibData::operator =</a>(<span class="keyword">const</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html">AliHLTPHOSEmcCalibData</a>& calibda)
82 00077 <span class="comment">// assignment operator</span>
84 00079 <span class="keywordflow">if</span>(<span class="keyword">this</span> != &calibda) {
86 00081 SetName(calibda.GetName());
87 00082 SetTitle(calibda.GetName());
88 00083 <span class="comment">// for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){</span>
89 00084 <span class="keywordflow">for</span>(Int_t module=0; module<PHOS_MODULES; module++) {
90 00085 <span class="keywordflow">for</span>(Int_t column=0; column< PHOS_COLUMNS; column++) {
91 00086 <span class="keywordflow">for</span>(Int_t row=0; row<PHOS_ROWS; row++) {
92 00087 <span class="keywordflow">for</span>(Int_t gain = 0; gain < 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];
100 00095 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
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>()
106 00101 <span class="comment">// Destructor</span>
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>()
112 00107 <span class="comment">// Set all pedestals and all ADC channels to its ideal values = 1.</span>
114 00109 <span class="comment">// for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){</span>
115 00110 <span class="keywordflow">for</span> (Int_t module=0; module<PHOS_MODULES; module++){
116 00111 <span class="keywordflow">for</span> (Int_t column=0; column< PHOS_COLUMNS; column++){
117 00112 <span class="keywordflow">for</span> (Int_t row=0; row<PHOS_ROWS; row++){
118 00113 <span class="keywordflow">for</span>(Int_t gain = 0; gain < 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.;
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>
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 < PHOS_GAINS; gain ++){</span>
135 00130 <span class="keywordflow">for</span> (Int_t module=0; module<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< PHOS_COLUMNS; column++){
138 00133 <span class="keywordflow">for</span> (Int_t row=0; row<PHOS_ROWS; row++){
139 00134 <span class="keywordflow">for</span>(Int_t gain = 0; gain < 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]);
142 00137 printf(<span class="stringliteral">"\n"</span>);
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 < PHOS_GAINS; gain ++){ </span>
151 00146 <span class="keywordflow">for</span> (Int_t module=0; module<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< PHOS_COLUMNS; column++){
154 00149 <span class="keywordflow">for</span> (Int_t row=0; row<PHOS_ROWS; row++){
155 00150 <span class="keywordflow">for</span>(Int_t gain = 0; gain < 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]);
158 00153 printf(<span class="stringliteral">"\n"</span>);
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>()
169 00164 <span class="keywordflow">for</span> (Int_t module=0; module<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< PHOS_COLUMNS; column++){
172 00167 <span class="keywordflow">for</span> (Int_t row=0; row<PHOS_ROWS; row++){
173 00168 <span class="keywordflow">for</span>(Int_t gain = 0; gain < 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>
178 00173 printf(<span class="stringliteral">"\n"</span>);
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>
192 00187 <span class="keywordflow">return</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module-1][column-1][row-1][gain];
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>
203 00198 <span class="keywordflow">return</span> <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap1">fADCpedestalEmcMeasured</a>[module-1][column-1][row-1][gain];
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)
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>
213 00208 <a class="code" href="classAliHLTPHOSEmcCalibData.html#AliHLTPHOSEmcCalibDatap0">fADCchannelEnergy</a>[module-1][column-1][row-1][gain] = value;
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)
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;
224 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Jan 17 21:56:43 2007 for AliHLTPHOS by
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>