]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/CALO/AliHLTCaloConstants.h
- adding some logging
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloConstants.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTCALOConstants.h $
3
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
13
14
15 #include "Rtypes.h"
16 #include "TString.h"
17 #ifndef ALIHLTCALOCONSTANTS_H
18 #define ALIHLTCALOCONSTANTS_H
19
20
21 namespace CaloHLTConst
22 {
23   const int MAXHOSTS=20;
24
25   //Constants related to the ALTRO chip (Common to EMCAL / PHOS )
26   const int MAXBINVALUE = 1023;
27   const int NGAINS         =   2;    
28   const int HIGHGAIN    =   1;
29   const int LOWGAIN     =   0;
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 };
58
59
60 namespace CALO  =  CaloHLTConst; // just for easier notation
61 namespace EMCAL =  CaloHLTConst::EmcalHLTConst;
62 namespace PHOS  =  CaloHLTConst::PhosHLTConst;
63
64
65 class AliHLTCaloConstants
66 {
67 public:
68   AliHLTCaloConstants();
69   virtual ~AliHLTCaloConstants();
70   virtual void InitConstants() = 0; 
71
72   // Common PHOS / EMCAL stuff
73   static  Int_t GetALTROMAXSAMPLES()    { return CALO::ALTROMAXSAMPLES; };
74   static  Int_t GetNGAINS()             { return CALO::NGAINS; };
75   static  Int_t GetHIGHGAIN()           { return CALO::HIGHGAIN; };
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; };
81   static  Int_t GetNBRANCHES()         { return CALO::NBRANCHES; };     
82
83   // Detector specific stuff
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; 
92   virtual Int_t GetNRCUSPERMODULE() const = 0;
93   virtual Int_t GetNFEECS() const         = 0;
94   
95   Int_t GetDDLOFFSET() const { return fkDDLOFFSET; }
96   Float_t GetCELLSTEP() const { return fkCELLSTEP; }
97   
98   //EMCAL specific, !! Move somewhere else, PTH
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
107   TString GetDETNAME() { return fkDETNAME; };
108
109 protected:
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.
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;
120  
121   Float_t fkCJ;
122   Float_t fkCELLSTEP; //Constant
123
124   Int_t fkDDLOFFSET;   //Constant
125   TString fkDETNAME;
126
127 private:
128   AliHLTCaloConstants(const AliHLTCaloConstants & );
129   AliHLTCaloConstants & operator = (const AliHLTCaloConstants &); 
130
131   ClassDef(AliHLTCaloConstants, 1)
132 };
133
134
135
136 #endif