]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ACORDE/AliACORDEConstants.cxx
Adding ANALYSIS
[u/mrichter/AliRoot.git] / ACORDE / AliACORDEConstants.cxx
... / ...
CommitLineData
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
32AliACORDEConstants* AliACORDEConstants::fgInstance = 0;
33
34const Float_t AliACORDEConstants::fgkModuleLength = 300.0;
35const Float_t AliACORDEConstants::fgkModuleWidth = 24.0;
36const Float_t AliACORDEConstants::fgkModuleHeight = 10.0;
37const Float_t AliACORDEConstants::fgkPlasticLength = 190.0;
38const Float_t AliACORDEConstants::fgkPlasticWidth = 19.5;
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
44const Float_t AliACORDEConstants::fgkHitEnergyThreshold = 1.52; // MeVs
45const Float_t AliACORDEConstants::fgkMaxHitTimeDifference = 40.0; // nanoseconds
46const Int_t AliACORDEConstants::fgkMultiMuonThreshold = 2;
47const Float_t AliACORDEConstants::fgkMultiMuonWindow = 25;
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-156.171, -152.082,-155.098, -155.141,-154.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] = {
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};
119const 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};
126const 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
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] = {
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};
150const 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
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
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
228ClassImp(AliACORDEConstants)
229
230//_____________________________________________________________________________
231AliACORDEConstants::AliACORDEConstants()
232 : TObject()
233{
234 // Default constructor
235}
236
237
238//_____________________________________________________________________________
239AliACORDEConstants* AliACORDEConstants::Instance()
240{
241//
242// Instance implementacion
243//
244
245 if ( !fgInstance ) {
246 fgInstance = new AliACORDEConstants;
247 }
248 return fgInstance;
249}
250
251//_____________________________________________________________________________
252AliACORDEConstants::~AliACORDEConstants()
253{
254//
255// destructor for instance
256//
257 fgInstance = 0;
258}
259
260//_____________________________________________________________________________
261Float_t AliACORDEConstants::InsideModulePositionX(Int_t i) const
262{
263//
264// Returns the InsideModulePositionX
265//
266 return fgkInsideModulePositionX[i];
267}
268//_____________________________________________________________________________
269Float_t AliACORDEConstants::InsideModulePositionY(Int_t i) const
270{
271//
272// returns the InsideModulePositionY
273//
274 return fgkInsideModulePositionY[i];
275}
276//_____________________________________________________________________________
277Float_t AliACORDEConstants::InsideModulePositionZ(Int_t i) const
278{
279//
280// returns the InsideModulePositionZ
281//
282 return fgkInsideModulePositionZ[i];
283}
284//_____________________________________________________________________________
285Float_t AliACORDEConstants::CenterModulePositionX(Int_t i) const
286{
287//
288// returns the center module position X
289//
290 return fgkCenterModulePositionX[i];
291}
292//_____________________________________________________________________________
293Float_t AliACORDEConstants::CenterModulePositionY(Int_t i) const
294{
295//
296// returns the center module position Y
297//
298 return fgkCenterModulePositionY[i];
299}
300//_____________________________________________________________________________
301Float_t AliACORDEConstants::CenterModulePositionZ(Int_t i) const
302{
303//
304// returns the center module position Z
305//
306 return fgkCenterModulePositionZ[i];
307}
308//_____________________________________________________________________________
309Float_t AliACORDEConstants::OutsideModulePositionX(Int_t i) const
310{
311//
312// returns the outside module position x
313//
314 return fgkOutsideModulePositionX[i];
315}
316//_____________________________________________________________________________
317Float_t AliACORDEConstants::OutsideModulePositionY(Int_t i) const
318{
319//
320// returns the out side module position y
321//
322 return fgkOutsideModulePositionY[i];
323}
324//_____________________________________________________________________________
325Float_t AliACORDEConstants::OutsideModulePositionZ(Int_t i) const
326{
327//
328// returns the out side module position z
329//
330 return fgkOutsideModulePositionZ[i];
331}
332//_____________________________________________________________________________
333Float_t AliACORDEConstants::OldModulePositionX(Int_t i) const
334{
335 // Module lenght
336 return fgkOldModulePositionX[i];
337}
338
339//_____________________________________________________________________________
340Float_t AliACORDEConstants::OldModulePositionY(Int_t i) const
341{
342 // Module lenght
343 return fgkOldModulePositionY[i];
344}
345//_____________________________________________________________________________
346Float_t AliACORDEConstants::OldModulePositionZ(Int_t i) const
347{
348 // Module lenght
349 return fgkOldModulePositionZ[i];
350}
351
352
353//_____________________________________________________________________________
354Float_t AliACORDEConstants::SupportModulePositionX(Int_t i) const
355{
356 // Module lenght
357 return fgkSupportModulePositionX[i];
358}
359
360//_____________________________________________________________________________
361Float_t AliACORDEConstants::SupportModulePositionY(Int_t i) const
362{
363 // Module lenght
364 return fgkSupportModulePositionY[i];
365}
366//_____________________________________________________________________________
367Float_t AliACORDEConstants::SupportModulePositionZ(Int_t i) const
368{
369 // Module lenght
370 return fgkSupportModulePositionZ[i];
371}
372
373
374
375Float_t AliACORDEConstants::OldExtraModulePositionX() const
376{
377 // Module lenght
378 return fgkOldExtraModulePositionX;
379}
380
381//_____________________________________________________________________________
382Float_t AliACORDEConstants::OldExtraModulePositionY() const
383{
384 // Module lenght
385 return fgkOldExtraModulePositionY;
386}
387//_____________________________________________________________________________
388Float_t AliACORDEConstants::OldExtraModulePositionZ(Int_t i) const
389{
390 // Module lenght
391 return fgkOldExtraModulePositionZ[i];
392}
393//_____________________________________________________________________________
394Int_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//_____________________________________________________________________________
401Float_t AliACORDEConstants::ModuleLength() const
402{
403 // Module lenght
404 return fgkModuleLength;
405}
406
407//_____________________________________________________________________________
408Float_t AliACORDEConstants::ModuleWidth() const
409{
410 // Module width
411 return fgkModuleWidth;
412}
413
414//_____________________________________________________________________________
415Float_t AliACORDEConstants::ModuleHeight() const
416{
417 // Module height
418 return fgkModuleHeight;
419}
420
421//_____________________________________________________________________________
422Float_t AliACORDEConstants::PlasticLength() const
423{
424 // Length of the scintillator active zone for a single counter
425 return fgkPlasticLength;
426}
427
428//_____________________________________________________________________________
429Float_t AliACORDEConstants::PlasticWidth() const
430{
431 // Width of the scintillator active zone for a single counter
432 return fgkPlasticWidth;
433}
434
435//_____________________________________________________________________________
436Float_t AliACORDEConstants::PlasticHeight() const
437{
438 // Height of the scintillator active zone for a single counter
439 return fgkPlasticHeight;
440}
441
442Float_t AliACORDEConstants::ProfileWidth() const
443{
444 // Width of the profile of the Al box
445 return fgkProfileWidth;
446}
447
448Float_t AliACORDEConstants::ProfileThickness() const
449{
450 // Thickness of the profile of the Al box
451 return fgkProfileThickness;
452}
453
454
455//_____________________________________________________________________________
456Float_t AliACORDEConstants::Depth() const
457{
458 // Alice IP depth
459 return fgkDepth;
460}