ROOT logo
#ifndef ALIACORDECONSTANTS_H
#define ALIACORDECONSTANTS_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

////////////////////////////////////////////////////////////////////////
//
// AliACORDEConstants class
//
// This class serves to group constants needed by ACORDE detector in 1
// easily accessible place. All constants are public const static data 
// members. The class is never instatiated.
//
// Author: Arturo Fernandez, Enrique Gamez, Mario Rodriguez Cahuantzi
//         FCFM-UAP, Mexico.
//
// Last update: Nov. 24th 08
/////////////////////////////////////////////////////////////////////////

#include <TObject.h>

enum ECRMode {
  kSingleMuons,
  kMuonBundle,
  kMuonFlux
};

class AliACORDEConstants : public TObject {
public:
  virtual ~AliACORDEConstants();

  static AliACORDEConstants* Instance();

  // constant for geometry
  Float_t ModuleLength() const;
  Float_t ModuleWidth() const;
  Float_t ModuleHeight() const;
  Float_t InsideModulePositionX(Int_t i) const;
  Float_t InsideModulePositionY(Int_t i) const;
  Float_t InsideModulePositionZ(Int_t i) const;
  Float_t CenterModulePositionX(Int_t i) const;
  Float_t CenterModulePositionY(Int_t i) const;
  Float_t CenterModulePositionZ(Int_t i) const;
  Float_t OutsideModulePositionX(Int_t i) const;
  Float_t OutsideModulePositionY(Int_t i) const;
  Float_t OutsideModulePositionZ(Int_t i) const;
  Float_t OldModulePositionX(Int_t i) const;
  Float_t OldModulePositionY(Int_t i) const;
  Float_t OldModulePositionZ(Int_t i) const;
  Float_t SupportModulePositionX(Int_t i) const;
  Float_t SupportModulePositionY(Int_t i) const;
  Float_t SupportModulePositionZ(Int_t i) const;
  Float_t OldExtraModulePositionZ(Int_t i) const;
  Int_t OldModuleElectronicChannel(Int_t i) const;
  Float_t OldExtraModulePositionX() const;
  Float_t OldExtraModulePositionY() const;
  Float_t PlasticLength() const;
  Float_t PlasticWidth() const;
  Float_t PlasticHeight() const;
  Float_t ProfileWidth() const;
  Float_t ProfileThickness() const;
  Float_t Depth() const;

  // constant to convert hits in digits
  Float_t HitEnergyThreshold() const { return fgkHitEnergyThreshold;}
  Float_t MaxHitTimeDifference() const { return fgkMaxHitTimeDifference;}
  // constants for trigger
  Int_t MultiMuonThreshold() const { return fgkMultiMuonThreshold;}
  Float_t MultiMuonWindow() const { return fgkMultiMuonWindow;}

protected:

  AliACORDEConstants();

  static AliACORDEConstants* fgInstance; // static instanton
  AliACORDEConstants (const AliACORDEConstants& fgInstance);
  AliACORDEConstants& operator = (const AliACORDEConstants& fInstance);
 
  static const Float_t fgkModuleLength; // Module lenght
  static const Float_t fgkModuleWidth;  // Module width
  static const Float_t fgkModuleHeight; // Module height
  static const Float_t fgkInsideModulePositionX[60]; // Module X-Position (inside)
  static const Float_t fgkInsideModulePositionY[60]; // Module Y-Position (inside)
  static const Float_t fgkInsideModulePositionZ[60]; // Module Z-Position (inside)
  static const Float_t fgkCenterModulePositionX[60]; // Module X-Position (centroid)
  static const Float_t fgkCenterModulePositionY[60]; // Module Y-Position (centroid)
  static const Float_t fgkCenterModulePositionZ[60]; // Module Z-Position (centroid)
  static const Float_t fgkOutsideModulePositionX[60]; // Module X-Position (outside)
  static const Float_t fgkOutsideModulePositionY[60]; // Module Y-Position (outside)
  static const Float_t fgkOutsideModulePositionZ[60]; // Module Z-Position (outside)
  static const Float_t fgkOldModulePositionX[60]; // OLD position in ALICE
  static const Float_t fgkOldModulePositionY[60]; // of center of module
  static const Float_t fgkOldModulePositionZ[60]; // Old position of module Z
  static const Float_t fgkSupportModulePositionX[60]; // Position of bar support X
  static const Float_t fgkSupportModulePositionY[60]; // Position of bar support Y
  static const Float_t fgkSupportModulePositionZ[60]; // Position of bar support Z
  static const Float_t fgkOldExtraModulePositionZ[4]; // Old Position in Z for central modules (up face)
  static const Float_t fgkOldExtraModulePositionX; // Old Position in X for central modules (up face)
  static const Float_t fgkOldExtraModulePositionY; // Old Position in Y for central modules (up face)
  static const Int_t fgkOldModuleElectronicChannel[60]; // Old DCS-Elecronoc assigment for modules

  static const Float_t fgkPlasticLength; // Plastic length
  static const Float_t fgkPlasticWidth;  // Plastic width
  static const Float_t fgkPlasticHeight; // Plastic height


  static const Float_t fgkProfileWidth;   // profile of the module
  static const Float_t fgkProfileThickness; // thickness of scintillator
  static const Float_t fgkDepth; // Alice IP depth from surface

  static const Float_t fgkHitEnergyThreshold; // thereshold of energy
  static const Float_t fgkMaxHitTimeDifference; // time difference of hit in modules
  static const Int_t fgkMultiMuonThreshold; // thereshold of energy (AMU-mode)
  static const Float_t fgkMultiMuonWindow; // time window (AMU-mode)


 private:
  ClassDef(AliACORDEConstants, 0)   // ACORDE(ACORDE) global constants
};

typedef AliACORDEConstants AliCRTConstants; // for backward compatibility

#endif // ALIACORDECONSTANTS_H
 AliACORDEConstants.h:1
 AliACORDEConstants.h:2
 AliACORDEConstants.h:3
 AliACORDEConstants.h:4
 AliACORDEConstants.h:5
 AliACORDEConstants.h:6
 AliACORDEConstants.h:7
 AliACORDEConstants.h:8
 AliACORDEConstants.h:9
 AliACORDEConstants.h:10
 AliACORDEConstants.h:11
 AliACORDEConstants.h:12
 AliACORDEConstants.h:13
 AliACORDEConstants.h:14
 AliACORDEConstants.h:15
 AliACORDEConstants.h:16
 AliACORDEConstants.h:17
 AliACORDEConstants.h:18
 AliACORDEConstants.h:19
 AliACORDEConstants.h:20
 AliACORDEConstants.h:21
 AliACORDEConstants.h:22
 AliACORDEConstants.h:23
 AliACORDEConstants.h:24
 AliACORDEConstants.h:25
 AliACORDEConstants.h:26
 AliACORDEConstants.h:27
 AliACORDEConstants.h:28
 AliACORDEConstants.h:29
 AliACORDEConstants.h:30
 AliACORDEConstants.h:31
 AliACORDEConstants.h:32
 AliACORDEConstants.h:33
 AliACORDEConstants.h:34
 AliACORDEConstants.h:35
 AliACORDEConstants.h:36
 AliACORDEConstants.h:37
 AliACORDEConstants.h:38
 AliACORDEConstants.h:39
 AliACORDEConstants.h:40
 AliACORDEConstants.h:41
 AliACORDEConstants.h:42
 AliACORDEConstants.h:43
 AliACORDEConstants.h:44
 AliACORDEConstants.h:45
 AliACORDEConstants.h:46
 AliACORDEConstants.h:47
 AliACORDEConstants.h:48
 AliACORDEConstants.h:49
 AliACORDEConstants.h:50
 AliACORDEConstants.h:51
 AliACORDEConstants.h:52
 AliACORDEConstants.h:53
 AliACORDEConstants.h:54
 AliACORDEConstants.h:55
 AliACORDEConstants.h:56
 AliACORDEConstants.h:57
 AliACORDEConstants.h:58
 AliACORDEConstants.h:59
 AliACORDEConstants.h:60
 AliACORDEConstants.h:61
 AliACORDEConstants.h:62
 AliACORDEConstants.h:63
 AliACORDEConstants.h:64
 AliACORDEConstants.h:65
 AliACORDEConstants.h:66
 AliACORDEConstants.h:67
 AliACORDEConstants.h:68
 AliACORDEConstants.h:69
 AliACORDEConstants.h:70
 AliACORDEConstants.h:71
 AliACORDEConstants.h:72
 AliACORDEConstants.h:73
 AliACORDEConstants.h:74
 AliACORDEConstants.h:75
 AliACORDEConstants.h:76
 AliACORDEConstants.h:77
 AliACORDEConstants.h:78
 AliACORDEConstants.h:79
 AliACORDEConstants.h:80
 AliACORDEConstants.h:81
 AliACORDEConstants.h:82
 AliACORDEConstants.h:83
 AliACORDEConstants.h:84
 AliACORDEConstants.h:85
 AliACORDEConstants.h:86
 AliACORDEConstants.h:87
 AliACORDEConstants.h:88
 AliACORDEConstants.h:89
 AliACORDEConstants.h:90
 AliACORDEConstants.h:91
 AliACORDEConstants.h:92
 AliACORDEConstants.h:93
 AliACORDEConstants.h:94
 AliACORDEConstants.h:95
 AliACORDEConstants.h:96
 AliACORDEConstants.h:97
 AliACORDEConstants.h:98
 AliACORDEConstants.h:99
 AliACORDEConstants.h:100
 AliACORDEConstants.h:101
 AliACORDEConstants.h:102
 AliACORDEConstants.h:103
 AliACORDEConstants.h:104
 AliACORDEConstants.h:105
 AliACORDEConstants.h:106
 AliACORDEConstants.h:107
 AliACORDEConstants.h:108
 AliACORDEConstants.h:109
 AliACORDEConstants.h:110
 AliACORDEConstants.h:111
 AliACORDEConstants.h:112
 AliACORDEConstants.h:113
 AliACORDEConstants.h:114
 AliACORDEConstants.h:115
 AliACORDEConstants.h:116
 AliACORDEConstants.h:117
 AliACORDEConstants.h:118
 AliACORDEConstants.h:119
 AliACORDEConstants.h:120
 AliACORDEConstants.h:121
 AliACORDEConstants.h:122
 AliACORDEConstants.h:123
 AliACORDEConstants.h:124
 AliACORDEConstants.h:125