]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/CALO/AliHLTCaloConstants.h
- adding some logging
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloConstants.h
CommitLineData
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
21namespace 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 60namespace CALO = CaloHLTConst; // just for easier notation
61namespace EMCAL = CaloHLTConst::EmcalHLTConst;
62namespace PHOS = CaloHLTConst::PhosHLTConst;
5addc185 63
a0fab818 64
77f350f7 65class AliHLTCaloConstants
66{
67public:
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 109protected:
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 127private:
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