2 // $Id: AliHLTCALOConstants.h $
4 //* This file is property of and copyright by the ALICE HLT Project *
5 //* ALICE Experiment at CERN, All rights reserved. *
6 //* See cxx source for full Copyright notice */
8 /// @file AliHLCaloConstants.h
9 /// @author Svein Lindal
11 /// @brief Class containing constants for PHOS and EMCAL
17 #ifndef ALIHLTCALOCONSTANTS_H
18 #define ALIHLTCALOCONSTANTS_H
21 namespace CaloHLTConst
23 //Constants related to the ALTRO chip (Common to EMCAL / PHOS )
24 const int MAXBINVALUE = 1023;
26 const int HIGHGAIN = 1;
27 const int LOWGAIN = 0;
28 const int ALTROMAXSAMPLES = 1008; /**<The maximum number of samples of the ALTRO*/
29 const int ALTROMAXPRESAMPLES = 15;
30 const int NALTROS = 4; /**<Number of ALTROs per frontend card*/
31 const int NALTROCHANNELS = 16;
33 //FEE constants common to PHOS EMCAL
34 const int CSPSPERFEE = 32;
35 const int NBRANCHES = 2;
37 namespace EmcalHLTConst
39 const int NZROWSMOD = 48; /**<Number of rows per module*/
40 const int NXCOLUMNSMOD = 24; /**<Number of columns per module*/
41 const int NRCUSPERSECTOR = 4;
42 const int NMODULES = 10; /**<Number of modules of the EMCAL detector*/
43 const int NRCUSPERMODULE = 2 ; /**<Number of RCUs per Module*/
47 namespace PhosHLTConst
49 const int NZROWSMOD = 56; /**<Number of rows per module*/
50 const int NXCOLUMNSMOD = 64; /**<Number of columns per module*/
51 const int NMODULES = 5; /**<Number of modules of the EMCAL detector*/
52 const int NRCUSPERMODULE = 4 ; /**<Number of RCUs per Module*/
53 const int NFEECS = 14; /**<Number of Frontend cards per branch*/
58 namespace CALO = CaloHLTConst; // just for easier notation
59 namespace EMCAL = CaloHLTConst::EmcalHLTConst;
60 namespace PHOS = CaloHLTConst::PhosHLTConst;
63 class AliHLTCaloConstants
66 AliHLTCaloConstants();
67 virtual ~AliHLTCaloConstants();
68 virtual void InitConstants() = 0;
70 // Common PHOS / EMCAL stuff
71 static Int_t GetALTROMAXSAMPLES() { return CALO::ALTROMAXSAMPLES; };
72 static Int_t GetNGAINS() { return CALO::NGAINS; };
73 static Int_t GetHIGHGAIN() { return CALO::HIGHGAIN; };
74 static Int_t GetLOWGAIN() { return CALO::LOWGAIN; };
75 static Int_t GetMAXBINVALUE() { return CALO::MAXBINVALUE; };
76 static Int_t GetCSPSPERFEE() { return CALO::CSPSPERFEE; };
77 static Int_t GetNALTROS() { return CALO::NALTROS; };
78 static Int_t GetNALTROCHANNELS() { return CALO::NALTROCHANNELS; };
79 static Int_t GetNBRANCHES() { return CALO::NBRANCHES; };
81 // Detector specific stuff
82 // PHOS Only, bad move somewher else, PTH
83 virtual Int_t GetNZROWSRCU() const { return 56 ; } ;
84 virtual Int_t GetNXCOLUMNSRCU() const { return 16; } ;
87 virtual Int_t GetNZROWSMOD() const = 0;
88 virtual Int_t GetNXCOLUMNSMOD() const = 0;
89 virtual Int_t GetNMODULES() const = 0;
90 virtual Int_t GetNRCUSPERMODULE() const = 0;
91 virtual Int_t GetNFEECS() const = 0;
93 Int_t GetDDLOFFSET() const { return fkDDLOFFSET; }
94 Float_t GetCELLSTEP() const { return fkCELLSTEP; }
96 //EMCAL specific, !! Move somewhere else, PTH
97 Float_t GetMAXCELLSTEPETA() const { return fkMAXCELLSTEPETA; } //FR
98 Float_t GetMINCELLSTEPETA() const { return fkMINCELLSTEPETA; } //FR
99 Float_t GetCELLSTEPPHI() const { return fkCELLSTEPPHI; } //FR
100 Float_t GetCELLHEIGHT() const { return fkCELLHEIGHT; } //FR
101 Float_t GetCELLANGLE() const { return fkCELLANGLE; } //FR
102 Float_t GetRADLENGTH() const { return fkRADLENGTH; } //FR
103 Float_t GetCRITICENERGY() const { return fkCRITICENERGY; } //FR
104 Float_t GetCJ() const { return fkCJ;} //FR
105 TString GetDETNAME() { return fkDETNAME; };
108 //EMCAL specific, !! Move somewhere else, PTH
109 // @todo: These variables should be declared constant, doesnt work right now
110 // because the default copy contructor is called somewhere.
111 Float_t fkMAXCELLSTEPETA;
112 Float_t fkMINCELLSTEPETA;
113 Float_t fkCELLSTEPPHI;
114 Float_t fkCELLHEIGHT;
117 Float_t fkCRITICENERGY;
120 Float_t fkCELLSTEP; //Constant
122 Int_t fkDDLOFFSET; //Constant
126 AliHLTCaloConstants(const AliHLTCaloConstants & );
127 AliHLTCaloConstants & operator = (const AliHLTCaloConstants &);
129 ClassDef(AliHLTCaloConstants, 1)