Coding conventions in AliACORDEConstants class corrected
[u/mrichter/AliRoot.git] / ACORDE / AliACORDEConstants.cxx
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 /* $Id$ */
17
18 ////////////////////////////////////////////////////////////////////////
19 //
20 // AliACORDEConstants class
21 //
22 // This class includes the constants needed by ACORDE detector in 
23 // easily accessible place. All constants are public const static data 
24 // members. The class is never instatiated.
25 // Authors: Arturo Fernandez, Enrique Gamez, Mario Rodriguez Cahuantzi, Eleazar Cuautle(ICN-UNAM) 
26 //         FCFM-UAP, Mexico.
27 // Last update: Nov. 24th 08
28 ////////////////////////////////////////////////////////////////////////
29
30 #include "AliACORDEConstants.h"
31
32 AliACORDEConstants* AliACORDEConstants::fgInstance = 0;
33
34 const Float_t AliACORDEConstants::fgkModuleLength          = 300.0;
35 const Float_t AliACORDEConstants::fgkModuleWidth           = 24.0;
36 const Float_t AliACORDEConstants::fgkModuleHeight          =  10.0;
37 const Float_t AliACORDEConstants::fgkPlasticLength = 190.0;
38 const Float_t AliACORDEConstants::fgkPlasticWidth  =  19.5;
39 const Float_t AliACORDEConstants::fgkPlasticHeight =   1.0;
40 const Float_t AliACORDEConstants::fgkProfileWidth =    3.8;
41 const Float_t AliACORDEConstants::fgkProfileThickness = 0.3;
42 const Float_t AliACORDEConstants::fgkDepth               =4420; 
43
44 const Float_t AliACORDEConstants::fgkHitEnergyThreshold = 1.52; // MeVs
45 const Float_t AliACORDEConstants::fgkMaxHitTimeDifference = 40.0; // nanoseconds
46 const Int_t AliACORDEConstants::fgkMultiMuonThreshold = 2;
47 const Float_t AliACORDEConstants::fgkMultiMuonWindow = 25;
48 const Float_t AliACORDEConstants::fgkInsideModulePositionX[60] ={
49 149.831, 743.687, 744.367, 744.4, 744.535, 745.991, 745.41,0,0, 151.197,
50 529.449, 529.76, 529.911, 529.911, 530.172,529.709, 529.692, 529.597, 528.859, 528.131,
51 304.946, 304.472, 304.092, 303.734, 303.165, 303.301, 303.195, 303.422, 303.927, 304.091,
52 -3.974, -3.806, -2.984, -2.855, -3.042, -3.124, -3.395, -2.774, -3.072, -2.897,
53 -319.384, -318.925, 0,-318.133, -317.404, -317.365, -316.973, -317.222,-317.564,-317.913,
54 149.892, -537.461, -537.75, -537.327,-536.877, -502.826, -506.978,-531.402,-530.587,149.541};
55 const Float_t AliACORDEConstants::fgkInsideModulePositionY[60] ={
56 860.235, 486.767, 486.763, 487.156, 487.018, 485.638, 486.394, 0,0,859.869,
57 700.202, 700.11, 700.345, 700.746, 701.481, 701.662, 701.925, 701.51, 701.64, 702.098,
58 859.937, 859.712, 859.738, 859.788, 859.88, 860.278, 860.155, 860.131, 860.14, 859.731,
59 860.096, 860.035, 860.416, 860.451, 860.655, 860.445, 860.601, 860.275, 860.623, 860.665,
60 916.198, 916.005, 0, 915.731, 915.768, 914.931, 914.708, 914.794, 915.021, 915.084,
61 860.287, 692.384, 692.392, 693.071, 692.86, 725.954, 722.077, 698.292, 698.883, 860.37};
62 const Float_t AliACORDEConstants::fgkInsideModulePositionZ[60] ={
63 88.372, 348.682, 246.52, 147.039, 48.754, -51.643, -120.342, 0,0, 15.526,
64 447.027, 348.189, 249.102, 147.577, 47.405, -50.559, -150.334, -251.987, -348.106, -449.947,
65 448.725, 348.555, 248.541, 148.55, 48.717, -51.631, -151.254, -251.632, -351.217,-451.428,
66 453.195, 349.899, 249.957, 150.162, 50.603, -49.562, -149.784, -250.068, -349.753, -450.307,
67 449.871, 351.462, 0, 144.424, 48.172, -52.382, -153.346, -252.389, -353.167, -454.27,
68 -13.83, 350.436, 248.14, 107.763, 46.085, -85.097, -184.909, -258.298, -349.324, -113.94}; 
69 const Float_t AliACORDEConstants::fgkCenterModulePositionX[60] = {
70 -1.733  , 637.6  , 638.1095, 637.888, 637.8125, 639.579 , 638.63  , 639.332, 639.28  , -0.869,
71 423.5795, 423.693, 423.795 , 423.452, 423.274,  422.9885, 422.8995, 423.166, 422.7265, 422.1595,
72 153.119 , 152.362, 152.065 , 151.976, 151.518,  155.316,  151.427,  151.642, 152.465 , 151.93,
73 -151.171, -152.082,-155.098, -155.141,-159.922, -155.124, -155.629, -154.709,-155.223, -154.841,
74 -423.037,  -422.772, -426,-422.229,-421.756, -422.053, -422.1545, -422.0375,-422.135,-422.311,
75 1.637, -643.0205,-643.1815,-642.6285, -642.5675, -610.356, -614.177, -637.256, -636.576, -2.157};
76 const Float_t AliACORDEConstants::fgkCenterModulePositionY[60] = {
77 859.72, 592.766, 592.428, 592.81, 592.68, 591.3185, 592.017, 590.053, 590.077, 859.516,
78 806.5215, 806.3125, 806.312, 806.4895, 806.6705, 807.0455, 807.335, 807.187, 807.615, 808.141,
79 859.493, 859.044, 859.285, 859.422, 859.396, 859.597, 859.624, 859.677, 859.482, 859.417, 
80 859.669, 859.494, 859.527, 859.774, 859.486, 859.499, 859.491, 859.505, 859.823, 859.747,
81 807.771, 807.671, 807.6, 807.5765, 807.9485, 807.2915, 807.82, 807.445, 807.366, 807.331,
82 859.525, 585.937, 585.616, 586.0805, 586.221, 618.107, 614.02, 591.9165, 592.588, 859.739};
83 const Float_t AliACORDEConstants::fgkCenterModulePositionZ[60] = {
84 87.187, 348.1785, 247.3485, 147.058, 48.413, -49.9585, -121.0015, -281.09, -349.005, 16.161,
85 447.538, 348.676, 250.728, 146.9505, 47.299, -50.535, -150.6745, -249.6215, -348.2345, -449.8365,
86 449.018, 349.157, 249.406, 149.052, 49.198, -50.944, -150.735, -250.661,-350.989,  -450.826, 
87 452.428, 349.194, 249.399, 149.286, 49.493, -51.392, -150.955, -251.476, -351.018, -451.487, 
88 446.97,  350.215, 250.215, 146.4975,44.1585, -50.8225, -147.4875, -254.989, -352.524, -448.606, 
89 -14.146, 349.752, 249.0625, 105.4995, 44.571, -81.677, -181.26, -258.498, -349.4315, -113.948};
90 const Float_t AliACORDEConstants::fgkOutsideModulePositionX[60] ={
91 -149.874, 531.513, 531.852, 531.376, 531.09, 533.167, 531.85, 531.587, 531.878, -148.895,
92 317.71, 317.626, 317.679, 316.993, 316.376, 316.268, 316.105, 316.735, 316.594, 316.188,
93 5.086, 4.271, 4.228, 3.875, 3.38, 3.425, 3.402, 3.534, 4.237, 4.199,
94 -303.888, -303.866, -303.157, -302.97, -302.994, -303.264, -303.36, -302.872, -303.247,-302.837,
95 -526.69, -526.619, -526.568, -526.325, -526.108, -526.741, -527.336, -526.853, -526.706, -526.709,
96 -150.248, -748.58, -748.613, -747.93, -748.258, 0, 0,-743.11, -742.565, -150.26};
97 const Float_t AliACORDEConstants::fgkOutsideModulePositionY[60] ={
98 860.564, 698.765, 698.093, 698.464, 698.342, 696.999, 697.64, 697.851, 697.969, 860.44,
99 912.841, 912.515, 912.279, 912.233, 911.86, 912.429, 912.745, 912.864, 913.59, 914.184,
100 860.42, 860.067, 860.278, 860.318, 860.285, 860.28, 860.466, 860.362, 860.222, 860.322,
101 860.563, 860.247, 859.991, 860.354, 860.06, 860.056, 859.686, 860.074, 860.463, 860.343,
102 699.344, 699.337, 698.834, 699.422, 700.129, 699.652, 700.932, 700.096, 699.711, 699.578,
103 860.159, 479.49, 478.84, 479.09, 479.582, 0,0,485.541, 486.293, 860.416};
104 const Float_t AliACORDEConstants::fgkOutsideModulePositionZ[60] ={
105 85.538, 347.675, 248.177, 147.077, 48.072, -48.274, -121.661, -281.827, -347.063, 16.81,
106 448.049, 349.163, 252.354, 146.324,47.193, -50.511, -151.015, -247.256, -348.363, -449.726,
107 449.235, 349.438, 249.614, 149.883, 49.413, -49.848, -149.932, -250.458, -350.314, -450.194,
108 451.868, 348.663, 248.448, 148.685, 48.844, -52.617, -152.185, -251.881, -352.541, -452.442, 
109 444.069, 348.968, 247.813, 148.571, 40.145, -49.263, -141.629, -257.589, -351.881, -442.942,
110 -14.142, 349.068, 249.985, 103.236, 43.057, 0, 0, -258.698, -349.539, -114.16}; 
111 const Float_t AliACORDEConstants::fgkOldModulePositionX[60] = {
112   641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
113   426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
114   153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
115   -153, -153, -153, -153, -153, -153, -153, -153, -153,
116   -153, -426, -426, -426, -426, -426, -426, -426, -426,
117   -426, -426, -644, -644, -644, -644, -644, -619, -623,
118   -641, -641, -641};
119 const Float_t AliACORDEConstants::fgkOldModulePositionY[60] = {
120   582, 574, 574, 574, 574, 574, 574, 574, 574, 582,
121   789, 789, 789, 789, 789, 789, 789, 789, 789, 789,
122   850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
123   850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
124   789, 789, 789, 789, 789, 789, 789, 789, 789, 789,
125   582, 574, 574, 574, 574, 601, 597, 574, 574, 582};
126 const Float_t AliACORDEConstants::fgkOldModulePositionZ[60] = {
127   450, 350, 250, 150, 50, -50, -120, -280, -350, -450,
128   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
129   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
130   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
131   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
132   450, 350, 250, 104, 50, -85, -184, -258, -350, -450};
133
134
135 const Float_t AliACORDEConstants::fgkSupportModulePositionX[60] = {
136   641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
137   426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
138   153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
139   -153, -153, -153, -153, -153, -153, -153, -153, -153,
140   -153, -426, -426, -426, -426, -426, -426, -426, -426,
141   -426, -426, -644, -644, -644, -644, -644, -619, -623,
142   -641, -641, -641};
143 const Float_t AliACORDEConstants::fgkSupportModulePositionY[60] = {
144   582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
145   797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
146   850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
147   850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
148   797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
149   582, 582, 582, 582, 582, 609, 605, 582, 582, 582};
150 const Float_t AliACORDEConstants::fgkSupportModulePositionZ[60] = {
151   450, 350, 250, 150, 50, -50, -120, -280, -350, -450,
152   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
153   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
154   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
155   450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
156   450, 350, 250, 104, 50, -85, -176, -250, -350, -450};
157   
158
159 const Float_t AliACORDEConstants::fgkOldExtraModulePositionZ[4] = {93.0, 18., -18, -93};
160 const Float_t AliACORDEConstants::fgkOldExtraModulePositionX = 0.0;
161 const Float_t AliACORDEConstants::fgkOldExtraModulePositionY = 850.0;
162 const Int_t AliACORDEConstants::fgkOldModuleElectronicChannel[60] = {
163 // Old configuration of ACORDE channels in patch panel cards used ONLY in cosmic runs from 2008
164 /* DCS 0_0 ITS-1*/ 10,
165 /* DCS 0_1 */ 4,
166 /* DCS 0_2 */ 8,
167 /* DCS 0_3 */ 7,
168 /* DCS 0_4 */ 6,
169 /* DCS 0_5 */ 5,
170 /* DCS 0_6 */ 9,
171 /* DCS 0_7 */ 3,
172 /* DCS 0_8 */ 2,
173 /* DCS 0_9 ITS-2*/ 42,
174 /* DCS 1_0 */ 20,
175 /* DCS 1_1 */ 19,
176 /* DCS 1_2 */ 18,
177 /* DCS 1_3 */ 17,
178 /* DCS 1_4 */ 16,
179 /* DCS 1_5 */ 15,
180 /* DCS 1_6 */ 14,
181 /* DCS 1_7 */ 13,
182 /* DCS 1_8 */ 12,
183 /* DCS 1_9 */ 11,
184 /* DCS 2_0 */ 60,
185 /* DCS 2_1 */ 59,
186 /* DCS 2_2 */ 58,
187 /* DCS 2_3 */ 57,
188 /* DCS 2_4 */ 56,
189 /* DCS 2_5 */ 55,
190 /* DCS 2_6 */ 54,
191 /* DCS 2_7 */ 53,
192 /* DCS 2_8 */ 52,
193 /* DCS 2_9 */ 51,
194 /* DCS 3_0 */ 40,
195 /* DCS 3_1 */ 39,
196 /* DCS 3_2 */ 38,
197 /* DCS 3_3 */ 37,
198 /* DCS 3_4 */ 36,
199 /* DCS 3_5 */ 35,
200 /* DCS 3_6 */ 34,
201 /* DCS 3_7 */ 33,
202 /* DCS 3_8 */ 32,
203 /* DCS 3_9 */ 31,
204 /* DCS 4_0 */ 30,
205 /* DCS 4_1 */ 29,
206 /* DCS 4_2 */ 28,
207 /* DCS 4_3 */ 27,
208 /* DCS 4_4 */ 26,
209 /* DCS 4_5 */ 25,
210 /* DCS 4_6 */ 24,
211 /* DCS 4_7 */ 23,
212 /* DCS 4_8 */ 22,
213 /* DCS 4_9 */ 21,
214 /* DCS 5_0 ITS-3*/ 1,
215 /* DCS 5_1 */ 49,
216 /* DCS 5_2 */ 48,
217 /* DCS 5_3 */ 47,
218 /* DCS 5_4 */ 46,
219 /* DCS 5_5 */ 45,
220 /* DCS 5_6 */ 44,
221 /* DCS 5_7 */ 43,
222 /* DCS 5_8 */ 50,
223 /* DCS 5_9 ITS-4*/ 41
224 };
225
226
227
228 ClassImp(AliACORDEConstants)
229
230 //_____________________________________________________________________________
231 AliACORDEConstants::AliACORDEConstants()
232   : TObject()
233 {
234   // Default constructor
235 }
236
237
238 //_____________________________________________________________________________
239 AliACORDEConstants* AliACORDEConstants::Instance()
240 {
241 // 
242 // Instance implementacion
243 //
244
245   if ( !fgInstance ) {
246     fgInstance = new AliACORDEConstants;
247   }
248   return fgInstance;
249 }
250
251 //_____________________________________________________________________________
252 AliACORDEConstants::~AliACORDEConstants()
253 {
254 // 
255 // destructor for instance
256 //
257   fgInstance = 0;
258 }
259
260 //_____________________________________________________________________________
261 Float_t AliACORDEConstants::InsideModulePositionX(Int_t i) const
262 {
263 //
264 // Returns the InsideModulePositionX
265 //
266         return fgkInsideModulePositionX[i];
267 }
268 //_____________________________________________________________________________
269 Float_t AliACORDEConstants::InsideModulePositionY(Int_t i) const
270 {
271 //
272 // returns the InsideModulePositionY
273 //
274         return fgkInsideModulePositionY[i];
275 }
276 //_____________________________________________________________________________
277 Float_t AliACORDEConstants::InsideModulePositionZ(Int_t i) const
278 {
279 //
280 // returns the InsideModulePositionZ
281 //      
282         return fgkInsideModulePositionZ[i];
283 }
284 //_____________________________________________________________________________
285 Float_t AliACORDEConstants::CenterModulePositionX(Int_t i) const
286 {
287 //
288 // returns the center module position X
289 //
290         return fgkCenterModulePositionX[i];
291 }
292 //_____________________________________________________________________________
293 Float_t AliACORDEConstants::CenterModulePositionY(Int_t i) const
294 {
295 //
296 // returns the center module position Y
297 //
298         return fgkCenterModulePositionY[i];
299 }
300 //_____________________________________________________________________________
301 Float_t AliACORDEConstants::CenterModulePositionZ(Int_t i) const
302 {
303 //
304 // returns the center module position Z
305 //      
306         return fgkCenterModulePositionZ[i];
307 }
308 //_____________________________________________________________________________
309 Float_t AliACORDEConstants::OutsideModulePositionX(Int_t i) const
310 {
311 //
312 // returns the outside module position x
313 //
314         return fgkOutsideModulePositionX[i];
315 }
316 //_____________________________________________________________________________
317 Float_t AliACORDEConstants::OutsideModulePositionY(Int_t i) const
318 {
319 //
320 // returns the out side module position y
321 //
322         return fgkOutsideModulePositionY[i];
323 }
324 //_____________________________________________________________________________
325 Float_t AliACORDEConstants::OutsideModulePositionZ(Int_t i) const
326 {
327 //
328 // returns the out side module position z
329 //      
330         return fgkOutsideModulePositionZ[i];
331 }
332 //_____________________________________________________________________________
333 Float_t AliACORDEConstants::OldModulePositionX(Int_t i) const
334 {
335   // Module lenght
336   return fgkOldModulePositionX[i];
337 }
338
339 //_____________________________________________________________________________
340 Float_t AliACORDEConstants::OldModulePositionY(Int_t i) const
341 {
342   // Module lenght
343   return fgkOldModulePositionY[i];
344 }
345 //_____________________________________________________________________________
346 Float_t AliACORDEConstants::OldModulePositionZ(Int_t i) const
347 {
348   // Module lenght
349   return fgkOldModulePositionZ[i];
350 }
351
352
353 //_____________________________________________________________________________
354 Float_t AliACORDEConstants::SupportModulePositionX(Int_t i) const
355 {
356   // Module lenght
357   return fgkSupportModulePositionX[i];
358 }
359
360 //_____________________________________________________________________________
361 Float_t AliACORDEConstants::SupportModulePositionY(Int_t i) const
362 {
363   // Module lenght
364   return fgkSupportModulePositionY[i];
365 }
366 //_____________________________________________________________________________
367 Float_t AliACORDEConstants::SupportModulePositionZ(Int_t i) const
368 {
369   // Module lenght
370   return fgkSupportModulePositionZ[i];
371 }
372
373
374
375 Float_t AliACORDEConstants::OldExtraModulePositionX() const
376 {
377   // Module lenght
378   return fgkOldExtraModulePositionX;
379 }
380
381 //_____________________________________________________________________________
382 Float_t AliACORDEConstants::OldExtraModulePositionY() const
383 {
384   // Module lenght
385   return fgkOldExtraModulePositionY;
386 }
387 //_____________________________________________________________________________
388 Float_t AliACORDEConstants::OldExtraModulePositionZ(Int_t i) const
389 {
390   // Module lenght
391   return fgkOldExtraModulePositionZ[i];
392 }
393 //_____________________________________________________________________________
394 Int_t AliACORDEConstants::OldModuleElectronicChannel(Int_t i) const
395 {
396         // return de ID (electronic channel in ACORDE) of each module
397         // acording to the current match between DCS and Electronic nomenclature
398         return fgkOldModuleElectronicChannel[i];
399 }
400 //_____________________________________________________________________________
401 Float_t AliACORDEConstants::ModuleLength() const
402 {
403   // Module lenght
404   return fgkModuleLength;
405 }
406
407 //_____________________________________________________________________________
408 Float_t AliACORDEConstants::ModuleWidth() const
409 {
410   // Module width
411   return fgkModuleWidth;
412 }
413
414 //_____________________________________________________________________________
415 Float_t AliACORDEConstants::ModuleHeight() const
416 {
417   // Module height
418   return fgkModuleHeight;
419 }
420
421 //_____________________________________________________________________________
422 Float_t AliACORDEConstants::PlasticLength() const
423 {
424   // Length of the scintillator active zone for a single counter
425   return fgkPlasticLength;
426 }
427
428 //_____________________________________________________________________________
429 Float_t AliACORDEConstants::PlasticWidth() const
430 {
431   // Width of the scintillator active zone for a single counter
432   return fgkPlasticWidth;
433 }
434
435 //_____________________________________________________________________________
436 Float_t AliACORDEConstants::PlasticHeight() const
437 {
438   // Height of the scintillator active zone for a single counter
439   return fgkPlasticHeight;
440 }
441
442 Float_t AliACORDEConstants::ProfileWidth() const
443 {
444   // Width of the profile of the Al box
445   return fgkProfileWidth;
446 }
447
448 Float_t AliACORDEConstants::ProfileThickness() const
449 {
450   // Thickness of the profile of the Al box
451   return fgkProfileThickness;
452 }
453
454
455 //_____________________________________________________________________________
456 Float_t AliACORDEConstants::Depth() const
457 {
458   // Alice IP depth
459   return fgkDepth;
460 }