Minor fix in space-points tree name (Andrea D.)
[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;
35const Float_t AliACORDEConstants::fgkModuleWidth = 26.0;
36const Float_t AliACORDEConstants::fgkModuleHeight = 10.0;
37const Float_t AliACORDEConstants::fgkPlasticLength = 190.0;
38const Float_t AliACORDEConstants::fgkPlasticWidth = 20.0;
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; // MeV
45const Float_t AliACORDEConstants::fgkMaxHitTimeDifference = 40.0; // ns
46const Int_t AliACORDEConstants::fgkMultiMuonThreshold = 2;
47const Float_t AliACORDEConstants::fgkMultiMuonWindow = 25;
48const Float_t AliACORDEConstants::fgkModulePositionX[60] = {
49 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
50 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
51 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
52 -153, -153, -153, -153, -153, -153, -153, -153, -153,
53 -153, -426, -426, -426, -426, -426, -426, -426, -426,
54 -426, -426, -644, -644, -644, -644, -644, -619, -623,
55 -641, -641, -641};
56const Float_t AliACORDEConstants::fgkModulePositionY[60] = {
ee0da434 57 582, 574, 574, 574, 574, 574, 574, 574, 574, 582,
58 789, 789, 789, 789, 789, 789, 789, 789, 789, 789,
59 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
60 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
61 789, 789, 789, 789, 789, 789, 789, 789, 789, 789,
62 582, 574, 574, 574, 574, 601, 597, 574, 574, 582};
63const Float_t AliACORDEConstants::fgkModulePositionZ[60] = {
64 450, 350, 250, 150, 50, -50, -120, -280, -350, -450,
65 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
66 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
67 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
68 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
69 450, 350, 250, 104, 50, -85, -184, -258, -350, -450};
70
71
72const Float_t AliACORDEConstants::fgkSupportModulePositionX[60] = {
73 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
74 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
75 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
76 -153, -153, -153, -153, -153, -153, -153, -153, -153,
77 -153, -426, -426, -426, -426, -426, -426, -426, -426,
78 -426, -426, -644, -644, -644, -644, -644, -619, -623,
79 -641, -641, -641};
80const Float_t AliACORDEConstants::fgkSupportModulePositionY[60] = {
19f796ed 81 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
82 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
83 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
84 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
85 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
6fb64ed1 86 582, 582, 582, 582, 582, 609, 605, 582, 582, 582};
ee0da434 87const Float_t AliACORDEConstants::fgkSupportModulePositionZ[60] = {
19f796ed 88 450, 350, 250, 150, 50, -50, -120, -280, -350, -450,
89 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
90 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
91 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
92 450, 350, 250, 150, 50, -50, -150, -250, -350, -450,
a8ae57ba 93 450, 350, 250, 104, 50, -85, -176, -250, -350, -450};
ee0da434 94
19f796ed 95
96const Float_t AliACORDEConstants::fgkExtraModulePositionZ[4] = {93.0, 18., -18, -93};
97const Float_t AliACORDEConstants::fgkExtraModulePositionX = 0.0;
98const Float_t AliACORDEConstants::fgkExtraModulePositionY = 850.0;
7348e57f 99const Int_t AliACORDEConstants::fgkModuleElectronicChannel[60] = {
100/* DCS 0_0 ITS-1*/ 10,
101/* DCS 0_1 */ 4,
102/* DCS 0_2 */ 8,
103/* DCS 0_3 */ 7,
104/* DCS 0_4 */ 6,
105/* DCS 0_5 */ 5,
106/* DCS 0_6 */ 9,
107/* DCS 0_7 */ 3,
108/* DCS 0_8 */ 2,
109/* DCS 0_9 ITS-2*/ 42,
110/* DCS 1_0 */ 20,
111/* DCS 1_1 */ 19,
112/* DCS 1_2 */ 18,
113/* DCS 1_3 */ 17,
114/* DCS 1_4 */ 16,
115/* DCS 1_5 */ 15,
116/* DCS 1_6 */ 14,
117/* DCS 1_7 */ 13,
118/* DCS 1_8 */ 12,
119/* DCS 1_9 */ 11,
120/* DCS 2_0 */ 60,
121/* DCS 2_1 */ 59,
122/* DCS 2_2 */ 58,
123/* DCS 2_3 */ 57,
124/* DCS 2_4 */ 56,
125/* DCS 2_5 */ 55,
126/* DCS 2_6 */ 54,
127/* DCS 2_7 */ 53,
128/* DCS 2_8 */ 52,
129/* DCS 2_9 */ 51,
130/* DCS 3_0 */ 40,
131/* DCS 3_1 */ 39,
132/* DCS 3_2 */ 38,
133/* DCS 3_3 */ 37,
134/* DCS 3_4 */ 36,
135/* DCS 3_5 */ 35,
136/* DCS 3_6 */ 34,
137/* DCS 3_7 */ 33,
138/* DCS 3_8 */ 32,
139/* DCS 3_9 */ 31,
140/* DCS 4_0 */ 30,
141/* DCS 4_1 */ 29,
142/* DCS 4_2 */ 28,
143/* DCS 4_3 */ 27,
144/* DCS 4_4 */ 26,
145/* DCS 4_5 */ 25,
146/* DCS 4_6 */ 24,
147/* DCS 4_7 */ 23,
148/* DCS 4_8 */ 22,
149/* DCS 4_9 */ 21,
150/* DCS 5_0 ITS-3*/ 1,
151/* DCS 5_1 */ 49,
152/* DCS 5_2 */ 48,
153/* DCS 5_3 */ 47,
154/* DCS 5_4 */ 46,
155/* DCS 5_5 */ 45,
156/* DCS 5_6 */ 44,
157/* DCS 5_7 */ 43,
158/* DCS 5_8 */ 50,
159/* DCS 5_9 ITS-4*/ 41
160};
b86e74f5 161
162ClassImp(AliACORDEConstants)
163
164//_____________________________________________________________________________
165AliACORDEConstants::AliACORDEConstants()
166 : TObject()
167{
168 // Default constructor
169}
170
b86e74f5 171
172//_____________________________________________________________________________
173AliACORDEConstants* AliACORDEConstants::Instance()
174{
175 if ( !fgInstance ) {
176 fgInstance = new AliACORDEConstants;
177 }
178 return fgInstance;
179}
180
181//_____________________________________________________________________________
182AliACORDEConstants::~AliACORDEConstants()
183{
184 fgInstance = 0;
185}
186
187//_____________________________________________________________________________
19f796ed 188Float_t AliACORDEConstants::ModulePositionX(Int_t i) const
b86e74f5 189{
190 // Module lenght
19f796ed 191 return fgkModulePositionX[i];
b86e74f5 192}
193
194//_____________________________________________________________________________
19f796ed 195Float_t AliACORDEConstants::ModulePositionY(Int_t i) const
b86e74f5 196{
19f796ed 197 // Module lenght
198 return fgkModulePositionY[i];
b86e74f5 199}
b86e74f5 200//_____________________________________________________________________________
19f796ed 201Float_t AliACORDEConstants::ModulePositionZ(Int_t i) const
b86e74f5 202{
19f796ed 203 // Module lenght
204 return fgkModulePositionZ[i];
b86e74f5 205}
206
ee0da434 207
208//_____________________________________________________________________________
209Float_t AliACORDEConstants::SupportModulePositionX(Int_t i) const
210{
211 // Module lenght
212 return fgkSupportModulePositionX[i];
213}
214
215//_____________________________________________________________________________
216Float_t AliACORDEConstants::SupportModulePositionY(Int_t i) const
217{
218 // Module lenght
219 return fgkSupportModulePositionY[i];
220}
221//_____________________________________________________________________________
222Float_t AliACORDEConstants::SupportModulePositionZ(Int_t i) const
223{
224 // Module lenght
225 return fgkSupportModulePositionZ[i];
226}
227
228
229
19f796ed 230Float_t AliACORDEConstants::ExtraModulePositionX() const
b86e74f5 231{
19f796ed 232 // Module lenght
233 return fgkExtraModulePositionX;
b86e74f5 234}
235
236//_____________________________________________________________________________
19f796ed 237Float_t AliACORDEConstants::ExtraModulePositionY() const
b86e74f5 238{
19f796ed 239 // Module lenght
240 return fgkExtraModulePositionY;
b86e74f5 241}
b86e74f5 242//_____________________________________________________________________________
19f796ed 243Float_t AliACORDEConstants::ExtraModulePositionZ(Int_t i) const
b86e74f5 244{
19f796ed 245 // Module lenght
246 return fgkExtraModulePositionZ[i];
b86e74f5 247}
7348e57f 248//_____________________________________________________________________________
249Int_t AliACORDEConstants::ModuleElectronicChannel(Int_t i) const
250{
251 // return de ID (electronic channel in ACORDE) of each module
ee0da434 252 // acording to the current match between DCS and Electronic nomenclature
7348e57f 253 return fgkModuleElectronicChannel[i];
254}
b86e74f5 255//_____________________________________________________________________________
19f796ed 256Float_t AliACORDEConstants::ModuleLength() const
257{
258 // Module lenght
259 return fgkModuleLength;
b86e74f5 260}
261
262//_____________________________________________________________________________
19f796ed 263Float_t AliACORDEConstants::ModuleWidth() const
b86e74f5 264{
19f796ed 265 // Module width
266 return fgkModuleWidth;
b86e74f5 267}
268
269//_____________________________________________________________________________
19f796ed 270Float_t AliACORDEConstants::ModuleHeight() const
b86e74f5 271{
19f796ed 272 // Module height
273 return fgkModuleHeight;
b86e74f5 274}
275
276//_____________________________________________________________________________
19f796ed 277Float_t AliACORDEConstants::PlasticLength() const
b86e74f5 278{
19f796ed 279 // Length of the scintillator active zone for a single counter
280 return fgkPlasticLength;
b86e74f5 281}
282
283//_____________________________________________________________________________
19f796ed 284Float_t AliACORDEConstants::PlasticWidth() const
b86e74f5 285{
19f796ed 286 // Width of the scintillator active zone for a single counter
287 return fgkPlasticWidth;
b86e74f5 288}
289
290//_____________________________________________________________________________
19f796ed 291Float_t AliACORDEConstants::PlasticHeight() const
b86e74f5 292{
19f796ed 293 // Height of the scintillator active zone for a single counter
294 return fgkPlasticHeight;
b86e74f5 295}
296
19f796ed 297Float_t AliACORDEConstants::ProfileWidth() const
b86e74f5 298{
19f796ed 299 // Width of the profile of the Al box
300 return fgkProfileWidth;
b86e74f5 301}
302
19f796ed 303Float_t AliACORDEConstants::ProfileThickness() const
b86e74f5 304{
19f796ed 305 // Thickness of the profile of the Al box
306 return fgkProfileThickness;
b86e74f5 307}
308
19f796ed 309
b86e74f5 310//_____________________________________________________________________________
311Float_t AliACORDEConstants::Depth() const
312{
313 // Alice IP depth
314 return fgkDepth;
315}