Added contructor to create an object from the DCS file name (instead of the TMap)
[u/mrichter/AliRoot.git] / ACORDE / AliACORDEConstants.cxx
CommitLineData
b86e74f5 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 serves to group constants needed by ACORDE detector in 1
23// easily accessible place. All constants are public const static data
24// members. The class is never instatiated.
ee0da434 25// Authors: Arturo Fernandez, Enrique Gamez, Mario Rodriguez Cahuantzi, Eleazar Cuautle(ICN-UNAM)
b86e74f5 26// FCFM-UAP, Mexico.
ee0da434 27// Last update: Nov. 24th 08
b86e74f5 28////////////////////////////////////////////////////////////////////////
29
30#include "AliACORDEConstants.h"
31
32AliACORDEConstants* AliACORDEConstants::fgInstance = 0;
33
19f796ed 34const Float_t AliACORDEConstants::fgkModuleLength = 300.0;
74696677 35const Float_t AliACORDEConstants::fgkModuleWidth = 24.0;
19f796ed 36const Float_t AliACORDEConstants::fgkModuleHeight = 10.0;
37const Float_t AliACORDEConstants::fgkPlasticLength = 190.0;
74696677 38const Float_t AliACORDEConstants::fgkPlasticWidth = 19.5;
19f796ed 39const Float_t AliACORDEConstants::fgkPlasticHeight = 1.0;
40const Float_t AliACORDEConstants::fgkProfileWidth = 3.8;
41const Float_t AliACORDEConstants::fgkProfileThickness = 0.3;
42const Float_t AliACORDEConstants::fgkDepth =4420;
43
74696677 44const Float_t AliACORDEConstants::fgkHitEnergyThreshold = 1.52; // MeVs
45const Float_t AliACORDEConstants::fgkMaxHitTimeDifference = 40.0; // nanoseconds
19f796ed 46const Int_t AliACORDEConstants::fgkMultiMuonThreshold = 2;
47const Float_t AliACORDEConstants::fgkMultiMuonWindow = 25;
74696677 48const Float_t AliACORDEConstants::fgkInsideModulePositionX[60] ={
49149.831, 743.687, 744.367, 744.4, 744.535, 745.991, 745.41,0,0, 151.197,
50529.449, 529.76, 529.911, 529.911, 530.172,529.709, 529.692, 529.597, 528.859, 528.131,
51304.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,
54149.892, -537.461, -537.75, -537.327,-536.877, -502.826, -506.978,-531.402,-530.587,149.541};
55const Float_t AliACORDEConstants::fgkInsideModulePositionY[60] ={
56860.235, 486.767, 486.763, 487.156, 487.018, 485.638, 486.394, 0,0,859.869,
57700.202, 700.11, 700.345, 700.746, 701.481, 701.662, 701.925, 701.51, 701.64, 702.098,
58859.937, 859.712, 859.738, 859.788, 859.88, 860.278, 860.155, 860.131, 860.14, 859.731,
59860.096, 860.035, 860.416, 860.451, 860.655, 860.445, 860.601, 860.275, 860.623, 860.665,
60916.198, 916.005, 0, 915.731, 915.768, 914.931, 914.708, 914.794, 915.021, 915.084,
61860.287, 692.384, 692.392, 693.071, 692.86, 725.954, 722.077, 698.292, 698.883, 860.37};
62const Float_t AliACORDEConstants::fgkInsideModulePositionZ[60] ={
6388.372, 348.682, 246.52, 147.039, 48.754, -51.643, -120.342, 0,0, 15.526,
64447.027, 348.189, 249.102, 147.577, 47.405, -50.559, -150.334, -251.987, -348.106, -449.947,
65448.725, 348.555, 248.541, 148.55, 48.717, -51.631, -151.254, -251.632, -351.217,-451.428,
66453.195, 349.899, 249.957, 150.162, 50.603, -49.562, -149.784, -250.068, -349.753, -450.307,
67449.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};
69const 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,
71423.5795, 423.693, 423.795 , 423.452, 423.274, 422.9885, 422.8995, 423.166, 422.7265, 422.1595,
72153.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,
751.637, -643.0205,-643.1815,-642.6285, -642.5675, -610.356, -614.177, -637.256, -636.576, -2.157};
76const Float_t AliACORDEConstants::fgkCenterModulePositionY[60] = {
77859.72, 592.766, 592.428, 592.81, 592.68, 591.3185, 592.017, 590.053, 590.077, 859.516,
78806.5215, 806.3125, 806.312, 806.4895, 806.6705, 807.0455, 807.335, 807.187, 807.615, 808.141,
79859.493, 859.044, 859.285, 859.422, 859.396, 859.597, 859.624, 859.677, 859.482, 859.417,
80859.669, 859.494, 859.527, 859.774, 859.486, 859.499, 859.491, 859.505, 859.823, 859.747,
81807.771, 807.671, 807.6, 807.5765, 807.9485, 807.2915, 807.82, 807.445, 807.366, 807.331,
82859.525, 585.937, 585.616, 586.0805, 586.221, 618.107, 614.02, 591.9165, 592.588, 859.739};
83const Float_t AliACORDEConstants::fgkCenterModulePositionZ[60] = {
8487.187, 348.1785, 247.3485, 147.058, 48.413, -49.9585, -121.0015, -281.09, -349.005, 16.161,
85447.538, 348.676, 250.728, 146.9505, 47.299, -50.535, -150.6745, -249.6215, -348.2345, -449.8365,
86449.018, 349.157, 249.406, 149.052, 49.198, -50.944, -150.735, -250.661,-350.989, -450.826,
87452.428, 349.194, 249.399, 149.286, 49.493, -51.392, -150.955, -251.476, -351.018, -451.487,
88446.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};
90const 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,
92317.71, 317.626, 317.679, 316.993, 316.376, 316.268, 316.105, 316.735, 316.594, 316.188,
935.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};
97const Float_t AliACORDEConstants::fgkOutsideModulePositionY[60] ={
98860.564, 698.765, 698.093, 698.464, 698.342, 696.999, 697.64, 697.851, 697.969, 860.44,
99912.841, 912.515, 912.279, 912.233, 911.86, 912.429, 912.745, 912.864, 913.59, 914.184,
100860.42, 860.067, 860.278, 860.318, 860.285, 860.28, 860.466, 860.362, 860.222, 860.322,
101860.563, 860.247, 859.991, 860.354, 860.06, 860.056, 859.686, 860.074, 860.463, 860.343,
102699.344, 699.337, 698.834, 699.422, 700.129, 699.652, 700.932, 700.096, 699.711, 699.578,
103860.159, 479.49, 478.84, 479.09, 479.582, 0,0,485.541, 486.293, 860.416};
104const Float_t AliACORDEConstants::fgkOutsideModulePositionZ[60] ={
10585.538, 347.675, 248.177, 147.077, 48.072, -48.274, -121.661, -281.827, -347.063, 16.81,
106448.049, 349.163, 252.354, 146.324,47.193, -50.511, -151.015, -247.256, -348.363, -449.726,
107449.235, 349.438, 249.614, 149.883, 49.413, -49.848, -149.932, -250.458, -350.314, -450.194,
108451.868, 348.663, 248.448, 148.685, 48.844, -52.617, -152.185, -251.881, -352.541, -452.442,
109444.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};
111const Float_t AliACORDEConstants::fgkOldModulePositionX[60] = {
19f796ed 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};
74696677 119const Float_t AliACORDEConstants::fgkOldModulePositionY[60] = {
ee0da434 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};
74696677 126const Float_t AliACORDEConstants::fgkOldModulePositionZ[60] = {
ee0da434 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
135const 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};
143const Float_t AliACORDEConstants::fgkSupportModulePositionY[60] = {
19f796ed 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,
6fb64ed1 149 582, 582, 582, 582, 582, 609, 605, 582, 582, 582};
ee0da434 150const Float_t AliACORDEConstants::fgkSupportModulePositionZ[60] = {
19f796ed 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,
a8ae57ba 156 450, 350, 250, 104, 50, -85, -176, -250, -350, -450};
ee0da434 157
19f796ed 158
74696677 159const Float_t AliACORDEConstants::fgkOldExtraModulePositionZ[4] = {93.0, 18., -18, -93};
160const Float_t AliACORDEConstants::fgkOldExtraModulePositionX = 0.0;
161const Float_t AliACORDEConstants::fgkOldExtraModulePositionY = 850.0;
162const Int_t AliACORDEConstants::fgkOldModuleElectronicChannel[60] = {
163// Old configuration of ACORDE channels in patch panel cards used ONLY in cosmic runs from 2008
7348e57f 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};
b86e74f5 225
1093dbd7 226
227
b86e74f5 228ClassImp(AliACORDEConstants)
229
230//_____________________________________________________________________________
231AliACORDEConstants::AliACORDEConstants()
232 : TObject()
233{
234 // Default constructor
235}
236
b86e74f5 237
238//_____________________________________________________________________________
239AliACORDEConstants* AliACORDEConstants::Instance()
240{
241 if ( !fgInstance ) {
242 fgInstance = new AliACORDEConstants;
243 }
244 return fgInstance;
245}
246
247//_____________________________________________________________________________
248AliACORDEConstants::~AliACORDEConstants()
249{
250 fgInstance = 0;
251}
252
253//_____________________________________________________________________________
74696677 254Float_t AliACORDEConstants::InsideModulePositionX(Int_t i) const
255{
256 return fgkInsideModulePositionX[i];
257}
258//_____________________________________________________________________________
259Float_t AliACORDEConstants::InsideModulePositionY(Int_t i) const
260{
261 return fgkInsideModulePositionY[i];
262}
263//_____________________________________________________________________________
264Float_t AliACORDEConstants::InsideModulePositionZ(Int_t i) const
265{
266 return fgkInsideModulePositionZ[i];
267}
268//_____________________________________________________________________________
269Float_t AliACORDEConstants::CenterModulePositionX(Int_t i) const
270{
271 return fgkCenterModulePositionX[i];
272}
273//_____________________________________________________________________________
274Float_t AliACORDEConstants::CenterModulePositionY(Int_t i) const
275{
276 return fgkCenterModulePositionY[i];
277}
278//_____________________________________________________________________________
279Float_t AliACORDEConstants::CenterModulePositionZ(Int_t i) const
280{
281 return fgkCenterModulePositionZ[i];
282}
283//_____________________________________________________________________________
284Float_t AliACORDEConstants::OutsideModulePositionX(Int_t i) const
285{
286 return fgkOutsideModulePositionX[i];
287}
288//_____________________________________________________________________________
289Float_t AliACORDEConstants::OutsideModulePositionY(Int_t i) const
290{
291 return fgkOutsideModulePositionY[i];
292}
293//_____________________________________________________________________________
294Float_t AliACORDEConstants::OutsideModulePositionZ(Int_t i) const
295{
296 return fgkOutsideModulePositionZ[i];
297}
298//_____________________________________________________________________________
299Float_t AliACORDEConstants::OldModulePositionX(Int_t i) const
b86e74f5 300{
301 // Module lenght
74696677 302 return fgkOldModulePositionX[i];
b86e74f5 303}
304
305//_____________________________________________________________________________
74696677 306Float_t AliACORDEConstants::OldModulePositionY(Int_t i) const
b86e74f5 307{
19f796ed 308 // Module lenght
74696677 309 return fgkOldModulePositionY[i];
b86e74f5 310}
b86e74f5 311//_____________________________________________________________________________
74696677 312Float_t AliACORDEConstants::OldModulePositionZ(Int_t i) const
b86e74f5 313{
19f796ed 314 // Module lenght
74696677 315 return fgkOldModulePositionZ[i];
b86e74f5 316}
317
ee0da434 318
319//_____________________________________________________________________________
320Float_t AliACORDEConstants::SupportModulePositionX(Int_t i) const
321{
322 // Module lenght
323 return fgkSupportModulePositionX[i];
324}
325
326//_____________________________________________________________________________
327Float_t AliACORDEConstants::SupportModulePositionY(Int_t i) const
328{
329 // Module lenght
330 return fgkSupportModulePositionY[i];
331}
332//_____________________________________________________________________________
333Float_t AliACORDEConstants::SupportModulePositionZ(Int_t i) const
334{
335 // Module lenght
336 return fgkSupportModulePositionZ[i];
337}
338
339
340
74696677 341Float_t AliACORDEConstants::OldExtraModulePositionX() const
b86e74f5 342{
19f796ed 343 // Module lenght
74696677 344 return fgkOldExtraModulePositionX;
b86e74f5 345}
346
347//_____________________________________________________________________________
74696677 348Float_t AliACORDEConstants::OldExtraModulePositionY() const
b86e74f5 349{
19f796ed 350 // Module lenght
74696677 351 return fgkOldExtraModulePositionY;
b86e74f5 352}
b86e74f5 353//_____________________________________________________________________________
74696677 354Float_t AliACORDEConstants::OldExtraModulePositionZ(Int_t i) const
b86e74f5 355{
19f796ed 356 // Module lenght
74696677 357 return fgkOldExtraModulePositionZ[i];
b86e74f5 358}
7348e57f 359//_____________________________________________________________________________
74696677 360Int_t AliACORDEConstants::OldModuleElectronicChannel(Int_t i) const
7348e57f 361{
362 // return de ID (electronic channel in ACORDE) of each module
ee0da434 363 // acording to the current match between DCS and Electronic nomenclature
74696677 364 return fgkOldModuleElectronicChannel[i];
7348e57f 365}
b86e74f5 366//_____________________________________________________________________________
19f796ed 367Float_t AliACORDEConstants::ModuleLength() const
368{
369 // Module lenght
370 return fgkModuleLength;
b86e74f5 371}
372
373//_____________________________________________________________________________
19f796ed 374Float_t AliACORDEConstants::ModuleWidth() const
b86e74f5 375{
19f796ed 376 // Module width
377 return fgkModuleWidth;
b86e74f5 378}
379
380//_____________________________________________________________________________
19f796ed 381Float_t AliACORDEConstants::ModuleHeight() const
b86e74f5 382{
19f796ed 383 // Module height
384 return fgkModuleHeight;
b86e74f5 385}
386
387//_____________________________________________________________________________
19f796ed 388Float_t AliACORDEConstants::PlasticLength() const
b86e74f5 389{
19f796ed 390 // Length of the scintillator active zone for a single counter
391 return fgkPlasticLength;
b86e74f5 392}
393
394//_____________________________________________________________________________
19f796ed 395Float_t AliACORDEConstants::PlasticWidth() const
b86e74f5 396{
19f796ed 397 // Width of the scintillator active zone for a single counter
398 return fgkPlasticWidth;
b86e74f5 399}
400
401//_____________________________________________________________________________
19f796ed 402Float_t AliACORDEConstants::PlasticHeight() const
b86e74f5 403{
19f796ed 404 // Height of the scintillator active zone for a single counter
405 return fgkPlasticHeight;
b86e74f5 406}
407
19f796ed 408Float_t AliACORDEConstants::ProfileWidth() const
b86e74f5 409{
19f796ed 410 // Width of the profile of the Al box
411 return fgkProfileWidth;
b86e74f5 412}
413
19f796ed 414Float_t AliACORDEConstants::ProfileThickness() const
b86e74f5 415{
19f796ed 416 // Thickness of the profile of the Al box
417 return fgkProfileThickness;
b86e74f5 418}
419
19f796ed 420
b86e74f5 421//_____________________________________________________________________________
422Float_t AliACORDEConstants::Depth() const
423{
424 // Alice IP depth
425 return fgkDepth;
426}