]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSEmcCalibData.cxx
Add -Wconversion to Mac warnings
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEmcCalibData.cxx
CommitLineData
fc6706cb 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16///////////////////////////////////////////////////////////////////////////////
17// //
18// class for PHOS EmCal calibration //
19// //
20///////////////////////////////////////////////////////////////////////////////
21
22#include "AliPHOSEmcCalibData.h"
23
24ClassImp(AliPHOSEmcCalibData)
25
26//________________________________________________________________
c5a539a3 27AliPHOSEmcCalibData::AliPHOSEmcCalibData():
28 TNamed(),
29 fSampleTimeStep(0)
fc6706cb 30{
31 // Default constructor
32 Reset();
33}
34
35//________________________________________________________________
c5a539a3 36AliPHOSEmcCalibData::AliPHOSEmcCalibData(const char* name):
37 TNamed(),
38 fSampleTimeStep(0)
fc6706cb 39{
40 // Constructor
41 TString namst = "Calib_";
42 namst += name;
43 SetName(namst.Data());
44 SetTitle(namst.Data());
45 Reset();
46}
47
48//________________________________________________________________
49AliPHOSEmcCalibData::AliPHOSEmcCalibData(const AliPHOSEmcCalibData& calibda) :
c5a539a3 50 TNamed(calibda),
51 fSampleTimeStep(calibda.fSampleTimeStep)
fc6706cb 52{
53 // copy constructor
54 SetName(calibda.GetName());
55 SetTitle(calibda.GetName());
27f8cf68 56
fc6706cb 57 for(Int_t module=0; module<5; module++) {
58 for(Int_t column=0; column<56; column++) {
59 for(Int_t row=0; row<64; row++) {
27f8cf68 60 fADCchannelEmc[module][column][row] = calibda.fADCchannelEmc[module][column][row];
61 fADCpedestalEmc[module][column][row] = calibda.fADCpedestalEmc[module][column][row];
e3310625 62 fHighLowRatioEmc[module][column][row] = calibda.fHighLowRatioEmc[module][column][row];
63 fTimeShiftEmc[module][column][row] = calibda.fTimeShiftEmc[module][column][row];
bafc1087 64 fAltroOffsets[module][column][row] = calibda.fAltroOffsets[module][column][row];
fc6706cb 65 }
66 }
67 }
68}
69
70//________________________________________________________________
71AliPHOSEmcCalibData &AliPHOSEmcCalibData::operator =(const AliPHOSEmcCalibData& calibda)
72{
73 // assignment operator
27f8cf68 74
75 if(this != &calibda) {
76
77 SetName(calibda.GetName());
78 SetTitle(calibda.GetName());
79
80 for(Int_t module=0; module<5; module++) {
81 for(Int_t column=0; column<56; column++) {
82 for(Int_t row=0; row<64; row++) {
83 fADCchannelEmc[module][column][row] = calibda.fADCchannelEmc[module][column][row];
84 fADCpedestalEmc[module][column][row] = calibda.fADCpedestalEmc[module][column][row];
e3310625 85 fHighLowRatioEmc[module][column][row] = calibda.fHighLowRatioEmc[module][column][row];
86 fTimeShiftEmc[module][column][row] = calibda.fTimeShiftEmc[module][column][row];
bafc1087 87 fAltroOffsets[module][column][row] = calibda.fAltroOffsets[module][column][row];
27f8cf68 88 }
fc6706cb 89 }
90 }
91 }
27f8cf68 92
fc6706cb 93 return *this;
94}
95
96//________________________________________________________________
97AliPHOSEmcCalibData::~AliPHOSEmcCalibData()
98{
99 // Destructor
100}
101
102//________________________________________________________________
103void AliPHOSEmcCalibData::Reset()
104{
e3310625 105 // Set all pedestals and all ADC channels to its ideal values = 5. (MeV/ADC)
fc6706cb 106
107 for (Int_t module=0; module<5; module++){
108 for (Int_t column=0; column<56; column++){
109 for (Int_t row=0; row<64; row++){
72e5feac 110 fADCpedestalEmc[module][column][row] = 0.;
e3310625 111 fADCchannelEmc[module][column][row] = 0.005;
112 fHighLowRatioEmc[module][column][row] = 16. ;
113 fTimeShiftEmc[module][column][row] = 0. ;
bafc1087 114 fAltroOffsets[module][column][row] = 0 ;
fc6706cb 115 }
116 }
117 }
6f47f50d 118 fSampleTimeStep=100.e-9 ; //100 ns
fc6706cb 119}
120
121//________________________________________________________________
122void AliPHOSEmcCalibData::Print(Option_t *option) const
123{
124 // Print tables of pedestals and ADC channels
125
126 if (strstr(option,"ped")) {
127 printf("\n ---- EMC Pedestal values ----\n\n");
128 for (Int_t module=0; module<5; module++){
129 printf("============== Module %d\n",module+1);
130 for (Int_t column=0; column<56; column++){
131 for (Int_t row=0; row<64; row++){
132 printf("%4.1f",fADCpedestalEmc[module][column][row]);
133 }
134 printf("\n");
135 }
136 }
137 }
138
139 if (strstr(option,"gain")) {
140 printf("\n ---- EMC ADC channel values ----\n\n");
141 for (Int_t module=0; module<5; module++){
142 printf("============== Module %d\n",module+1);
143 for (Int_t column=0; column<56; column++){
144 for (Int_t row=0; row<64; row++){
145 printf("%4.1f",fADCchannelEmc[module][column][row]);
146 }
147 printf("\n");
148 }
149 }
150 }
e3310625 151
152 if (strstr(option,"hilo")) {
153 printf("\n ---- EMC High/Low ratio ----\n\n");
154 for (Int_t module=0; module<5; module++){
155 printf("============== Module %d\n",module+1);
156 for (Int_t column=0; column<56; column++){
157 for (Int_t row=0; row<64; row++){
158 printf("%4.1f",fHighLowRatioEmc[module][column][row]);
159 }
160 printf("\n");
161 }
162 }
163 }
164 if (strstr(option,"time")) {
165 printf("\n ---- EMC t0 shifts ----\n\n");
166 for (Int_t module=0; module<5; module++){
167 printf("============== Module %d\n",module+1);
168 for (Int_t column=0; column<56; column++){
169 for (Int_t row=0; row<64; row++){
170 printf("%6.3e",fTimeShiftEmc[module][column][row]);
171 }
172 printf("\n");
173 }
174 }
175 }
bafc1087 176 if (strstr(option,"altro")) {
177 printf("\n ---- EMC altro offsets ----\n\n");
178 for (Int_t module=0; module<5; module++){
179 printf("============== Module %d\n",module+1);
180 for (Int_t column=0; column<56; column++){
181 for (Int_t row=0; row<64; row++){
182 printf("%5d",fAltroOffsets[module][column][row]);
183 }
184 printf("\n");
185 }
186 }
187 }
fc6706cb 188}
189
1fdb1c5e 190//________________________________________________________________
fc6706cb 191Float_t AliPHOSEmcCalibData::GetADCchannelEmc(Int_t module, Int_t column, Int_t row) const
192{
1fdb1c5e 193 //Return EMC calibration coefficient
fc6706cb 194 //module, column,raw should follow the internal PHOS convention:
195 //module 1:5, column 1:56, row 1:64
196
197 return fADCchannelEmc[module-1][column-1][row-1];
198}
199
1fdb1c5e 200//________________________________________________________________
fc6706cb 201Float_t AliPHOSEmcCalibData::GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const
202{
1fdb1c5e 203 //Return EMC pedestal
204 //module, column,raw should follow the internal PHOS convention:
205 //module 1:5, column 1:56, row 1:64
206
fc6706cb 207 return fADCpedestalEmc[module-1][column-1][row-1];
208}
209
e3310625 210//________________________________________________________________
211Float_t AliPHOSEmcCalibData::GetHighLowRatioEmc(Int_t module, Int_t column, Int_t row) const
212{
213 //Return EMC pedestal
214 //module, column,raw should follow the internal PHOS convention:
215 //module 1:5, column 1:56, row 1:64
216
217 return fHighLowRatioEmc[module-1][column-1][row-1];
218}
219
220//________________________________________________________________
221Float_t AliPHOSEmcCalibData::GetTimeShiftEmc(Int_t module, Int_t column, Int_t row) const
222{
223 //Return EMC pedestal
224 //module, column,raw should follow the internal PHOS convention:
225 //module 1:5, column 1:56, row 1:64
226
227 return fTimeShiftEmc[module-1][column-1][row-1];
228}
bafc1087 229//________________________________________________________________
6f47f50d 230Float_t AliPHOSEmcCalibData::GetSampleTimeStep()const
231{
232 //Returns conversion coefficient from ALTRO smaple time step and secods
233 //Negative value not used in reconstruction (conversion taken from TRU trailer)
234 //and only in raw simulation
235 return fSampleTimeStep ;
236}
237//________________________________________________________________
bafc1087 238Int_t AliPHOSEmcCalibData::GetAltroOffsetEmc(Int_t module, Int_t column, Int_t row) const
239{
240 //Return EMC altro offsets
241 //module, column,raw should follow the internal PHOS convention:
242 //module 1:5, column 1:56, row 1:64
243
244 return fAltroOffsets[module-1][column-1][row-1];
245}
1fdb1c5e 246//________________________________________________________________
fc6706cb 247void AliPHOSEmcCalibData::SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value)
248{
1fdb1c5e 249 //Set EMC calibration coefficient
250 //module, column,raw should follow the internal PHOS convention:
251 //module 1:5, column 1:56, row 1:64
252
fc6706cb 253 fADCchannelEmc[module-1][column-1][row-1] = value;
254}
255
1fdb1c5e 256//________________________________________________________________
fc6706cb 257void AliPHOSEmcCalibData::SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value)
258{
1fdb1c5e 259 //Set EMC pedestal
260 //module, column,raw should follow the internal PHOS convention:
261 //module 1:5, column 1:56, row 1:64
fc6706cb 262 fADCpedestalEmc[module-1][column-1][row-1] = value;
263}
e3310625 264
265//________________________________________________________________
266void AliPHOSEmcCalibData::SetHighLowRatioEmc(Int_t module, Int_t column, Int_t row, Float_t value)
267{
268 //Set EMC pedestal
269 //module, column,raw should follow the internal PHOS convention:
270 //module 1:5, column 1:56, row 1:64
271 fHighLowRatioEmc[module-1][column-1][row-1] = value;
272}
273//________________________________________________________________
274void AliPHOSEmcCalibData::SetTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value)
275{
276 //Set EMC pedestal
277 //module, column,raw should follow the internal PHOS convention:
278 //module 1:5, column 1:56, row 1:64
279 fTimeShiftEmc[module-1][column-1][row-1] = value;
280}
bafc1087 281//________________________________________________________________
282void AliPHOSEmcCalibData::SetAltroOffsetEmc(Int_t module, Int_t column, Int_t row, Int_t value)
283{
284 //Set EMC pedestal
285 //module, column,raw should follow the internal PHOS convention:
286 //module 1:5, column 1:56, row 1:64
287 fAltroOffsets[module-1][column-1][row-1] = value;
288}
6f47f50d 289//________________________________________________________________
290void AliPHOSEmcCalibData::SetSampleTimeStep(Float_t step)
291{
292 //Sets conversion coefficient from ALTRO smaple time step and secods
293 //Negative value not used in reconstruction (conversion taken from TRU trailer)
294 //and only in raw simulation
295 fSampleTimeStep = step ;
296}
297