Fix over the QA Histogram in AliACORDEQADataMaker::MakeRaws
[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
1093dbd7 162
163
b86e74f5 164ClassImp(AliACORDEConstants)
165
166//_____________________________________________________________________________
167AliACORDEConstants::AliACORDEConstants()
168 : TObject()
169{
170 // Default constructor
171}
172
b86e74f5 173
174//_____________________________________________________________________________
175AliACORDEConstants* AliACORDEConstants::Instance()
176{
177 if ( !fgInstance ) {
178 fgInstance = new AliACORDEConstants;
179 }
180 return fgInstance;
181}
182
183//_____________________________________________________________________________
184AliACORDEConstants::~AliACORDEConstants()
185{
186 fgInstance = 0;
187}
188
189//_____________________________________________________________________________
19f796ed 190Float_t AliACORDEConstants::ModulePositionX(Int_t i) const
b86e74f5 191{
192 // Module lenght
19f796ed 193 return fgkModulePositionX[i];
b86e74f5 194}
195
196//_____________________________________________________________________________
19f796ed 197Float_t AliACORDEConstants::ModulePositionY(Int_t i) const
b86e74f5 198{
19f796ed 199 // Module lenght
200 return fgkModulePositionY[i];
b86e74f5 201}
b86e74f5 202//_____________________________________________________________________________
19f796ed 203Float_t AliACORDEConstants::ModulePositionZ(Int_t i) const
b86e74f5 204{
19f796ed 205 // Module lenght
206 return fgkModulePositionZ[i];
b86e74f5 207}
208
ee0da434 209
210//_____________________________________________________________________________
211Float_t AliACORDEConstants::SupportModulePositionX(Int_t i) const
212{
213 // Module lenght
214 return fgkSupportModulePositionX[i];
215}
216
217//_____________________________________________________________________________
218Float_t AliACORDEConstants::SupportModulePositionY(Int_t i) const
219{
220 // Module lenght
221 return fgkSupportModulePositionY[i];
222}
223//_____________________________________________________________________________
224Float_t AliACORDEConstants::SupportModulePositionZ(Int_t i) const
225{
226 // Module lenght
227 return fgkSupportModulePositionZ[i];
228}
229
230
231
19f796ed 232Float_t AliACORDEConstants::ExtraModulePositionX() const
b86e74f5 233{
19f796ed 234 // Module lenght
235 return fgkExtraModulePositionX;
b86e74f5 236}
237
238//_____________________________________________________________________________
19f796ed 239Float_t AliACORDEConstants::ExtraModulePositionY() const
b86e74f5 240{
19f796ed 241 // Module lenght
242 return fgkExtraModulePositionY;
b86e74f5 243}
b86e74f5 244//_____________________________________________________________________________
19f796ed 245Float_t AliACORDEConstants::ExtraModulePositionZ(Int_t i) const
b86e74f5 246{
19f796ed 247 // Module lenght
248 return fgkExtraModulePositionZ[i];
b86e74f5 249}
7348e57f 250//_____________________________________________________________________________
251Int_t AliACORDEConstants::ModuleElectronicChannel(Int_t i) const
252{
253 // return de ID (electronic channel in ACORDE) of each module
ee0da434 254 // acording to the current match between DCS and Electronic nomenclature
7348e57f 255 return fgkModuleElectronicChannel[i];
256}
b86e74f5 257//_____________________________________________________________________________
19f796ed 258Float_t AliACORDEConstants::ModuleLength() const
259{
260 // Module lenght
261 return fgkModuleLength;
b86e74f5 262}
263
264//_____________________________________________________________________________
19f796ed 265Float_t AliACORDEConstants::ModuleWidth() const
b86e74f5 266{
19f796ed 267 // Module width
268 return fgkModuleWidth;
b86e74f5 269}
270
271//_____________________________________________________________________________
19f796ed 272Float_t AliACORDEConstants::ModuleHeight() const
b86e74f5 273{
19f796ed 274 // Module height
275 return fgkModuleHeight;
b86e74f5 276}
277
278//_____________________________________________________________________________
19f796ed 279Float_t AliACORDEConstants::PlasticLength() const
b86e74f5 280{
19f796ed 281 // Length of the scintillator active zone for a single counter
282 return fgkPlasticLength;
b86e74f5 283}
284
285//_____________________________________________________________________________
19f796ed 286Float_t AliACORDEConstants::PlasticWidth() const
b86e74f5 287{
19f796ed 288 // Width of the scintillator active zone for a single counter
289 return fgkPlasticWidth;
b86e74f5 290}
291
292//_____________________________________________________________________________
19f796ed 293Float_t AliACORDEConstants::PlasticHeight() const
b86e74f5 294{
19f796ed 295 // Height of the scintillator active zone for a single counter
296 return fgkPlasticHeight;
b86e74f5 297}
298
19f796ed 299Float_t AliACORDEConstants::ProfileWidth() const
b86e74f5 300{
19f796ed 301 // Width of the profile of the Al box
302 return fgkProfileWidth;
b86e74f5 303}
304
19f796ed 305Float_t AliACORDEConstants::ProfileThickness() const
b86e74f5 306{
19f796ed 307 // Thickness of the profile of the Al box
308 return fgkProfileThickness;
b86e74f5 309}
310
19f796ed 311
b86e74f5 312//_____________________________________________________________________________
313Float_t AliACORDEConstants::Depth() const
314{
315 // Alice IP depth
316 return fgkDepth;
317}