Update for ACORDE-QA (Mario & Luciano)
[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.
6fb64ed1 25// Authors: Arturo Fernandez, Enrique Gamez, Mario Rodríguez Cahuantzi, Eleazar Cuautle(ICN-UNAM)
b86e74f5 26// FCFM-UAP, Mexico.
27//
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] = {
57 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
58 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
59 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
60 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
61 797, 797, 797, 797, 797, 797, 797, 797, 797, 797,
6fb64ed1 62 582, 582, 582, 582, 582, 609, 605, 582, 582, 582};
19f796ed 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, -76, -176, -250, -350, -450};
70
71const Float_t AliACORDEConstants::fgkExtraModulePositionZ[4] = {93.0, 18., -18, -93};
72const Float_t AliACORDEConstants::fgkExtraModulePositionX = 0.0;
73const Float_t AliACORDEConstants::fgkExtraModulePositionY = 850.0;
7348e57f 74const Int_t AliACORDEConstants::fgkModuleElectronicChannel[60] = {
75/* DCS 0_0 ITS-1*/ 10,
76/* DCS 0_1 */ 4,
77/* DCS 0_2 */ 8,
78/* DCS 0_3 */ 7,
79/* DCS 0_4 */ 6,
80/* DCS 0_5 */ 5,
81/* DCS 0_6 */ 9,
82/* DCS 0_7 */ 3,
83/* DCS 0_8 */ 2,
84/* DCS 0_9 ITS-2*/ 42,
85/* DCS 1_0 */ 20,
86/* DCS 1_1 */ 19,
87/* DCS 1_2 */ 18,
88/* DCS 1_3 */ 17,
89/* DCS 1_4 */ 16,
90/* DCS 1_5 */ 15,
91/* DCS 1_6 */ 14,
92/* DCS 1_7 */ 13,
93/* DCS 1_8 */ 12,
94/* DCS 1_9 */ 11,
95/* DCS 2_0 */ 60,
96/* DCS 2_1 */ 59,
97/* DCS 2_2 */ 58,
98/* DCS 2_3 */ 57,
99/* DCS 2_4 */ 56,
100/* DCS 2_5 */ 55,
101/* DCS 2_6 */ 54,
102/* DCS 2_7 */ 53,
103/* DCS 2_8 */ 52,
104/* DCS 2_9 */ 51,
105/* DCS 3_0 */ 40,
106/* DCS 3_1 */ 39,
107/* DCS 3_2 */ 38,
108/* DCS 3_3 */ 37,
109/* DCS 3_4 */ 36,
110/* DCS 3_5 */ 35,
111/* DCS 3_6 */ 34,
112/* DCS 3_7 */ 33,
113/* DCS 3_8 */ 32,
114/* DCS 3_9 */ 31,
115/* DCS 4_0 */ 30,
116/* DCS 4_1 */ 29,
117/* DCS 4_2 */ 28,
118/* DCS 4_3 */ 27,
119/* DCS 4_4 */ 26,
120/* DCS 4_5 */ 25,
121/* DCS 4_6 */ 24,
122/* DCS 4_7 */ 23,
123/* DCS 4_8 */ 22,
124/* DCS 4_9 */ 21,
125/* DCS 5_0 ITS-3*/ 1,
126/* DCS 5_1 */ 49,
127/* DCS 5_2 */ 48,
128/* DCS 5_3 */ 47,
129/* DCS 5_4 */ 46,
130/* DCS 5_5 */ 45,
131/* DCS 5_6 */ 44,
132/* DCS 5_7 */ 43,
133/* DCS 5_8 */ 50,
134/* DCS 5_9 ITS-4*/ 41
135};
b86e74f5 136
137ClassImp(AliACORDEConstants)
138
139//_____________________________________________________________________________
140AliACORDEConstants::AliACORDEConstants()
141 : TObject()
142{
143 // Default constructor
144}
145
b86e74f5 146
147//_____________________________________________________________________________
148AliACORDEConstants* AliACORDEConstants::Instance()
149{
150 if ( !fgInstance ) {
151 fgInstance = new AliACORDEConstants;
152 }
153 return fgInstance;
154}
155
156//_____________________________________________________________________________
157AliACORDEConstants::~AliACORDEConstants()
158{
159 fgInstance = 0;
160}
161
162//_____________________________________________________________________________
19f796ed 163Float_t AliACORDEConstants::ModulePositionX(Int_t i) const
b86e74f5 164{
165 // Module lenght
19f796ed 166 return fgkModulePositionX[i];
b86e74f5 167}
168
169//_____________________________________________________________________________
19f796ed 170Float_t AliACORDEConstants::ModulePositionY(Int_t i) const
b86e74f5 171{
19f796ed 172 // Module lenght
173 return fgkModulePositionY[i];
b86e74f5 174}
b86e74f5 175//_____________________________________________________________________________
19f796ed 176Float_t AliACORDEConstants::ModulePositionZ(Int_t i) const
b86e74f5 177{
19f796ed 178 // Module lenght
179 return fgkModulePositionZ[i];
b86e74f5 180}
181
19f796ed 182Float_t AliACORDEConstants::ExtraModulePositionX() const
b86e74f5 183{
19f796ed 184 // Module lenght
185 return fgkExtraModulePositionX;
b86e74f5 186}
187
188//_____________________________________________________________________________
19f796ed 189Float_t AliACORDEConstants::ExtraModulePositionY() const
b86e74f5 190{
19f796ed 191 // Module lenght
192 return fgkExtraModulePositionY;
b86e74f5 193}
b86e74f5 194//_____________________________________________________________________________
19f796ed 195Float_t AliACORDEConstants::ExtraModulePositionZ(Int_t i) const
b86e74f5 196{
19f796ed 197 // Module lenght
198 return fgkExtraModulePositionZ[i];
b86e74f5 199}
7348e57f 200//_____________________________________________________________________________
201Int_t AliACORDEConstants::ModuleElectronicChannel(Int_t i) const
202{
203 // return de ID (electronic channel in ACORDE) of each module
204 // acording to the match between DCS and Electronic nomenclature
205 return fgkModuleElectronicChannel[i];
206}
b86e74f5 207//_____________________________________________________________________________
19f796ed 208Float_t AliACORDEConstants::ModuleLength() const
209{
210 // Module lenght
211 return fgkModuleLength;
b86e74f5 212}
213
214//_____________________________________________________________________________
19f796ed 215Float_t AliACORDEConstants::ModuleWidth() const
b86e74f5 216{
19f796ed 217 // Module width
218 return fgkModuleWidth;
b86e74f5 219}
220
221//_____________________________________________________________________________
19f796ed 222Float_t AliACORDEConstants::ModuleHeight() const
b86e74f5 223{
19f796ed 224 // Module height
225 return fgkModuleHeight;
b86e74f5 226}
227
228//_____________________________________________________________________________
19f796ed 229Float_t AliACORDEConstants::PlasticLength() const
b86e74f5 230{
19f796ed 231 // Length of the scintillator active zone for a single counter
232 return fgkPlasticLength;
b86e74f5 233}
234
235//_____________________________________________________________________________
19f796ed 236Float_t AliACORDEConstants::PlasticWidth() const
b86e74f5 237{
19f796ed 238 // Width of the scintillator active zone for a single counter
239 return fgkPlasticWidth;
b86e74f5 240}
241
242//_____________________________________________________________________________
19f796ed 243Float_t AliACORDEConstants::PlasticHeight() const
b86e74f5 244{
19f796ed 245 // Height of the scintillator active zone for a single counter
246 return fgkPlasticHeight;
b86e74f5 247}
248
19f796ed 249Float_t AliACORDEConstants::ProfileWidth() const
b86e74f5 250{
19f796ed 251 // Width of the profile of the Al box
252 return fgkProfileWidth;
b86e74f5 253}
254
19f796ed 255Float_t AliACORDEConstants::ProfileThickness() const
b86e74f5 256{
19f796ed 257 // Thickness of the profile of the Al box
258 return fgkProfileThickness;
b86e74f5 259}
260
19f796ed 261
b86e74f5 262//_____________________________________________________________________________
263Float_t AliACORDEConstants::Depth() const
264{
265 // Alice IP depth
266 return fgkDepth;
267}