]>
Commit | Line | Data |
---|---|---|
178dd351 | 1 | //-*- Mode: C++ -*- |
c375e15d | 2 | // $Id: AliHLTCALOConstants.h $ |
178dd351 | 3 | |
c375e15d | 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 */ | |
7 | ||
8 | /// @file AliHLCaloConstants.h | |
9 | /// @author Svein Lindal | |
10 | /// @date | |
11 | /// @brief Class containing constants for PHOS and EMCAL | |
12 | /// loaded libraries | |
178dd351 | 13 | |
a9c18ed8 | 14 | |
9107088d | 15 | #include "Rtypes.h" |
4f4b7ba4 | 16 | #include "TString.h" |
178dd351 | 17 | #ifndef ALIHLTCALOCONSTANTS_H |
18 | #define ALIHLTCALOCONSTANTS_H | |
19 | ||
dc3d3428 | 20 | |
21 | namespace CaloHLTConst | |
22 | { | |
e523d626 | 23 | const int MAXHOSTS=20; |
24 | ||
dc3d3428 | 25 | //Constants related to the ALTRO chip (Common to EMCAL / PHOS ) |
26 | const int MAXBINVALUE = 1023; | |
27 | const int NGAINS = 2; | |
5d2620b9 | 28 | const int HIGHGAIN = 1; |
29 | const int LOWGAIN = 0; | |
dc3d3428 | 30 | const int ALTROMAXSAMPLES = 1008; /**<The maximum number of samples of the ALTRO*/ |
31 | const int ALTROMAXPRESAMPLES = 15; | |
32 | const int NALTROS = 4; /**<Number of ALTROs per frontend card*/ | |
33 | const int NALTROCHANNELS = 16; | |
34 | ||
35 | //FEE constants common to PHOS EMCAL | |
36 | const int CSPSPERFEE = 32; | |
37 | const int NBRANCHES = 2; | |
38 | ||
39 | namespace EmcalHLTConst | |
40 | { | |
41 | const int NZROWSMOD = 48; /**<Number of rows per module*/ | |
42 | const int NXCOLUMNSMOD = 24; /**<Number of columns per module*/ | |
43 | const int NRCUSPERSECTOR = 4; | |
44 | const int NMODULES = 10; /**<Number of modules of the EMCAL detector*/ | |
45 | const int NRCUSPERMODULE = 2 ; /**<Number of RCUs per Module*/ | |
46 | const int NFEECS = 9; | |
47 | }; | |
48 | ||
49 | namespace PhosHLTConst | |
50 | { | |
51 | const int NZROWSMOD = 56; /**<Number of rows per module*/ | |
52 | const int NXCOLUMNSMOD = 64; /**<Number of columns per module*/ | |
53 | const int NMODULES = 5; /**<Number of modules of the EMCAL detector*/ | |
54 | const int NRCUSPERMODULE = 4 ; /**<Number of RCUs per Module*/ | |
55 | const int NFEECS = 14; /**<Number of Frontend cards per branch*/ | |
56 | }; | |
57 | }; | |
5addc185 | 58 | |
59 | ||
dc3d3428 | 60 | namespace CALO = CaloHLTConst; // just for easier notation |
61 | namespace EMCAL = CaloHLTConst::EmcalHLTConst; | |
62 | namespace PHOS = CaloHLTConst::PhosHLTConst; | |
5addc185 | 63 | |
a0fab818 | 64 | |
77f350f7 | 65 | class AliHLTCaloConstants |
66 | { | |
67 | public: | |
4f4b7ba4 | 68 | AliHLTCaloConstants(); |
8c6eca17 | 69 | virtual ~AliHLTCaloConstants(); |
dc3d3428 | 70 | virtual void InitConstants() = 0; |
71 | ||
72 | // Common PHOS / EMCAL stuff | |
d9f3fa24 | 73 | static Int_t GetALTROMAXSAMPLES() { return CALO::ALTROMAXSAMPLES; }; |
74 | static Int_t GetNGAINS() { return CALO::NGAINS; }; | |
dc3d3428 | 75 | static Int_t GetHIGHGAIN() { return CALO::HIGHGAIN; }; |
d9f3fa24 | 76 | static Int_t GetLOWGAIN() { return CALO::LOWGAIN; }; |
77 | static Int_t GetMAXBINVALUE() { return CALO::MAXBINVALUE; }; | |
78 | static Int_t GetCSPSPERFEE() { return CALO::CSPSPERFEE; }; | |
79 | static Int_t GetNALTROS() { return CALO::NALTROS; }; | |
80 | static Int_t GetNALTROCHANNELS() { return CALO::NALTROCHANNELS; }; | |
dc3d3428 | 81 | static Int_t GetNBRANCHES() { return CALO::NBRANCHES; }; |
1ff2323f | 82 | |
dc3d3428 | 83 | // Detector specific stuff |
dc3d3428 | 84 | // PHOS Only, bad move somewher else, PTH |
85 | virtual Int_t GetNZROWSRCU() const { return 56 ; } ; | |
86 | virtual Int_t GetNXCOLUMNSRCU() const { return 16; } ; | |
87 | // END PHOS Only | |
88 | ||
89 | virtual Int_t GetNZROWSMOD() const = 0; | |
90 | virtual Int_t GetNXCOLUMNSMOD() const = 0; | |
91 | virtual Int_t GetNMODULES() const = 0; | |
dc3d3428 | 92 | virtual Int_t GetNRCUSPERMODULE() const = 0; |
dc3d3428 | 93 | virtual Int_t GetNFEECS() const = 0; |
c65aa222 | 94 | |
c65aa222 | 95 | Int_t GetDDLOFFSET() const { return fkDDLOFFSET; } |
532aa795 | 96 | Float_t GetCELLSTEP() const { return fkCELLSTEP; } |
dc3d3428 | 97 | |
98 | //EMCAL specific, !! Move somewhere else, PTH | |
532aa795 | 99 | Float_t GetMAXCELLSTEPETA() const { return fkMAXCELLSTEPETA; } //FR |
100 | Float_t GetMINCELLSTEPETA() const { return fkMINCELLSTEPETA; } //FR | |
101 | Float_t GetCELLSTEPPHI() const { return fkCELLSTEPPHI; } //FR | |
102 | Float_t GetCELLHEIGHT() const { return fkCELLHEIGHT; } //FR | |
103 | Float_t GetCELLANGLE() const { return fkCELLANGLE; } //FR | |
104 | Float_t GetRADLENGTH() const { return fkRADLENGTH; } //FR | |
105 | Float_t GetCRITICENERGY() const { return fkCRITICENERGY; } //FR | |
106 | Float_t GetCJ() const { return fkCJ;} //FR | |
532aa795 | 107 | TString GetDETNAME() { return fkDETNAME; }; |
8c6eca17 | 108 | |
532aa795 | 109 | protected: |
dc3d3428 | 110 | //EMCAL specific, !! Move somewhere else, PTH |
111 | // @todo: These variables should be declared constant, doesnt work right now | |
112 | // because the default copy contructor is called somewhere. | |
532aa795 | 113 | Float_t fkMAXCELLSTEPETA; |
114 | Float_t fkMINCELLSTEPETA; | |
115 | Float_t fkCELLSTEPPHI; | |
116 | Float_t fkCELLHEIGHT; | |
117 | Float_t fkCELLANGLE; | |
118 | Float_t fkRADLENGTH; | |
119 | Float_t fkCRITICENERGY; | |
2436a6a2 | 120 | |
532aa795 | 121 | Float_t fkCJ; |
2436a6a2 | 122 | Float_t fkCELLSTEP; //Constant |
123 | ||
f3e5fbc0 | 124 | Int_t fkDDLOFFSET; //Constant |
125 | TString fkDETNAME; | |
d9f3fa24 | 126 | |
532aa795 | 127 | private: |
d9f3fa24 | 128 | AliHLTCaloConstants(const AliHLTCaloConstants & ); |
129 | AliHLTCaloConstants & operator = (const AliHLTCaloConstants &); | |
130 | ||
dc3d3428 | 131 | ClassDef(AliHLTCaloConstants, 1) |
77f350f7 | 132 | }; |
a0fab818 | 133 | |
134 | ||
a0fab818 | 135 | |
178dd351 | 136 | #endif |