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 Rodriguez Cahuantzi, Eleazar Cuautle(ICN-UNAM)
27 // Last update: Nov. 24th 08
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, 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};
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, -184, -258, -350, -450};
72 const 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,
80 const Float_t AliACORDEConstants::fgkSupportModulePositionY[60] = {
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,
86 582, 582, 582, 582, 582, 609, 605, 582, 582, 582};
87 const Float_t AliACORDEConstants::fgkSupportModulePositionZ[60] = {
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,
93 450, 350, 250, 104, 50, -85, -176, -250, -350, -450};
96 const Float_t AliACORDEConstants::fgkExtraModulePositionZ[4] = {93.0, 18., -18, -93};
97 const Float_t AliACORDEConstants::fgkExtraModulePositionX = 0.0;
98 const Float_t AliACORDEConstants::fgkExtraModulePositionY = 850.0;
99 const Int_t AliACORDEConstants::fgkModuleElectronicChannel[60] = {
100 /* DCS 0_0 ITS-1*/ 10,
109 /* DCS 0_9 ITS-2*/ 42,
150 /* DCS 5_0 ITS-3*/ 1,
159 /* DCS 5_9 ITS-4*/ 41
164 ClassImp(AliACORDEConstants)
166 //_____________________________________________________________________________
167 AliACORDEConstants::AliACORDEConstants()
170 // Default constructor
174 //_____________________________________________________________________________
175 AliACORDEConstants* AliACORDEConstants::Instance()
178 fgInstance = new AliACORDEConstants;
183 //_____________________________________________________________________________
184 AliACORDEConstants::~AliACORDEConstants()
189 //_____________________________________________________________________________
190 Float_t AliACORDEConstants::ModulePositionX(Int_t i) const
193 return fgkModulePositionX[i];
196 //_____________________________________________________________________________
197 Float_t AliACORDEConstants::ModulePositionY(Int_t i) const
200 return fgkModulePositionY[i];
202 //_____________________________________________________________________________
203 Float_t AliACORDEConstants::ModulePositionZ(Int_t i) const
206 return fgkModulePositionZ[i];
210 //_____________________________________________________________________________
211 Float_t AliACORDEConstants::SupportModulePositionX(Int_t i) const
214 return fgkSupportModulePositionX[i];
217 //_____________________________________________________________________________
218 Float_t AliACORDEConstants::SupportModulePositionY(Int_t i) const
221 return fgkSupportModulePositionY[i];
223 //_____________________________________________________________________________
224 Float_t AliACORDEConstants::SupportModulePositionZ(Int_t i) const
227 return fgkSupportModulePositionZ[i];
232 Float_t AliACORDEConstants::ExtraModulePositionX() const
235 return fgkExtraModulePositionX;
238 //_____________________________________________________________________________
239 Float_t AliACORDEConstants::ExtraModulePositionY() const
242 return fgkExtraModulePositionY;
244 //_____________________________________________________________________________
245 Float_t AliACORDEConstants::ExtraModulePositionZ(Int_t i) const
248 return fgkExtraModulePositionZ[i];
250 //_____________________________________________________________________________
251 Int_t AliACORDEConstants::ModuleElectronicChannel(Int_t i) const
253 // return de ID (electronic channel in ACORDE) of each module
254 // acording to the current match between DCS and Electronic nomenclature
255 return fgkModuleElectronicChannel[i];
257 //_____________________________________________________________________________
258 Float_t AliACORDEConstants::ModuleLength() const
261 return fgkModuleLength;
264 //_____________________________________________________________________________
265 Float_t AliACORDEConstants::ModuleWidth() const
268 return fgkModuleWidth;
271 //_____________________________________________________________________________
272 Float_t AliACORDEConstants::ModuleHeight() const
275 return fgkModuleHeight;
278 //_____________________________________________________________________________
279 Float_t AliACORDEConstants::PlasticLength() const
281 // Length of the scintillator active zone for a single counter
282 return fgkPlasticLength;
285 //_____________________________________________________________________________
286 Float_t AliACORDEConstants::PlasticWidth() const
288 // Width of the scintillator active zone for a single counter
289 return fgkPlasticWidth;
292 //_____________________________________________________________________________
293 Float_t AliACORDEConstants::PlasticHeight() const
295 // Height of the scintillator active zone for a single counter
296 return fgkPlasticHeight;
299 Float_t AliACORDEConstants::ProfileWidth() const
301 // Width of the profile of the Al box
302 return fgkProfileWidth;
305 Float_t AliACORDEConstants::ProfileThickness() const
307 // Thickness of the profile of the Al box
308 return fgkProfileThickness;
312 //_____________________________________________________________________________
313 Float_t AliACORDEConstants::Depth() const