1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 ////////////////////////////////////////////////////////////////////////
20 // AliACORDEConstants class
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.
25 // Authors: Arturo Fernandez, Enrique Gamez, Mario RodrÃguez Cahuantzi, Eleazar Cuautle(ICN-UNAM)
28 ////////////////////////////////////////////////////////////////////////
30 #include "AliACORDEConstants.h"
32 AliACORDEConstants* AliACORDEConstants::fgInstance = 0;
34 const Float_t AliACORDEConstants::fgkModuleLength = 300.0;
35 const Float_t AliACORDEConstants::fgkModuleWidth = 26.0;
36 const Float_t AliACORDEConstants::fgkModuleHeight = 10.0;
37 const Float_t AliACORDEConstants::fgkPlasticLength = 190.0;
38 const Float_t AliACORDEConstants::fgkPlasticWidth = 20.0;
39 const Float_t AliACORDEConstants::fgkPlasticHeight = 1.0;
40 const Float_t AliACORDEConstants::fgkProfileWidth = 3.8;
41 const Float_t AliACORDEConstants::fgkProfileThickness = 0.3;
42 const Float_t AliACORDEConstants::fgkDepth =4420;
44 const Float_t AliACORDEConstants::fgkHitEnergyThreshold = 1.52; // MeV
45 const Float_t AliACORDEConstants::fgkMaxHitTimeDifference = 40.0; // ns
46 const Int_t AliACORDEConstants::fgkMultiMuonThreshold = 2;
47 const Float_t AliACORDEConstants::fgkMultiMuonWindow = 25;
48 const 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,
56 const 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,
62 582, 582, 582, 582, 582, 609, 605, 582, 582, 582};
63 const 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, -176, -250, -350, -450};
71 const Float_t AliACORDEConstants::fgkExtraModulePositionZ[4] = {93.0, 18., -18, -93};
72 const Float_t AliACORDEConstants::fgkExtraModulePositionX = 0.0;
73 const Float_t AliACORDEConstants::fgkExtraModulePositionY = 850.0;
74 const Int_t AliACORDEConstants::fgkModuleElectronicChannel[60] = {
75 /* DCS 0_0 ITS-1*/ 10,
84 /* DCS 0_9 ITS-2*/ 42,
125 /* DCS 5_0 ITS-3*/ 1,
134 /* DCS 5_9 ITS-4*/ 41
137 ClassImp(AliACORDEConstants)
139 //_____________________________________________________________________________
140 AliACORDEConstants::AliACORDEConstants()
143 // Default constructor
147 //_____________________________________________________________________________
148 AliACORDEConstants* AliACORDEConstants::Instance()
151 fgInstance = new AliACORDEConstants;
156 //_____________________________________________________________________________
157 AliACORDEConstants::~AliACORDEConstants()
162 //_____________________________________________________________________________
163 Float_t AliACORDEConstants::ModulePositionX(Int_t i) const
166 return fgkModulePositionX[i];
169 //_____________________________________________________________________________
170 Float_t AliACORDEConstants::ModulePositionY(Int_t i) const
173 return fgkModulePositionY[i];
175 //_____________________________________________________________________________
176 Float_t AliACORDEConstants::ModulePositionZ(Int_t i) const
179 return fgkModulePositionZ[i];
182 Float_t AliACORDEConstants::ExtraModulePositionX() const
185 return fgkExtraModulePositionX;
188 //_____________________________________________________________________________
189 Float_t AliACORDEConstants::ExtraModulePositionY() const
192 return fgkExtraModulePositionY;
194 //_____________________________________________________________________________
195 Float_t AliACORDEConstants::ExtraModulePositionZ(Int_t i) const
198 return fgkExtraModulePositionZ[i];
200 //_____________________________________________________________________________
201 Int_t AliACORDEConstants::ModuleElectronicChannel(Int_t i) const
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];
207 //_____________________________________________________________________________
208 Float_t AliACORDEConstants::ModuleLength() const
211 return fgkModuleLength;
214 //_____________________________________________________________________________
215 Float_t AliACORDEConstants::ModuleWidth() const
218 return fgkModuleWidth;
221 //_____________________________________________________________________________
222 Float_t AliACORDEConstants::ModuleHeight() const
225 return fgkModuleHeight;
228 //_____________________________________________________________________________
229 Float_t AliACORDEConstants::PlasticLength() const
231 // Length of the scintillator active zone for a single counter
232 return fgkPlasticLength;
235 //_____________________________________________________________________________
236 Float_t AliACORDEConstants::PlasticWidth() const
238 // Width of the scintillator active zone for a single counter
239 return fgkPlasticWidth;
242 //_____________________________________________________________________________
243 Float_t AliACORDEConstants::PlasticHeight() const
245 // Height of the scintillator active zone for a single counter
246 return fgkPlasticHeight;
249 Float_t AliACORDEConstants::ProfileWidth() const
251 // Width of the profile of the Al box
252 return fgkProfileWidth;
255 Float_t AliACORDEConstants::ProfileThickness() const
257 // Thickness of the profile of the Al box
258 return fgkProfileThickness;
262 //_____________________________________________________________________________
263 Float_t AliACORDEConstants::Depth() const