]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/CALO/AliHLTCaloConstants.h
Coding conventions
[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   //Constants related to the ALTRO chip (Common to EMCAL / PHOS )
24   const int MAXBINVALUE = 1023;
25   const int NGAINS         =   2;    
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;
32
33   //FEE constants common to PHOS EMCAL
34   const int CSPSPERFEE    = 32;
35   const int NBRANCHES      =   2;   
36   
37   namespace EmcalHLTConst
38   {
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*/
44     const int NFEECS         =  9; 
45   };
46
47   namespace PhosHLTConst
48   {
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*/
54   };
55 };
56
57
58 namespace CALO  =  CaloHLTConst; // just for easier notation
59 namespace EMCAL =  CaloHLTConst::EmcalHLTConst;
60 namespace PHOS  =  CaloHLTConst::PhosHLTConst;
61
62
63 class AliHLTCaloConstants
64 {
65 public:
66   AliHLTCaloConstants();
67   virtual ~AliHLTCaloConstants();
68   virtual void InitConstants() = 0; 
69
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; };     
80
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; } ;
85   // END PHOS Only
86
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;
92   
93   Int_t GetDDLOFFSET() const { return fkDDLOFFSET; }
94   Float_t GetCELLSTEP() const { return fkCELLSTEP; }
95   
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; };
106
107 protected:
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;
115   Float_t fkCELLANGLE;
116   Float_t fkRADLENGTH;
117   Float_t fkCRITICENERGY;
118  
119   Float_t fkCJ;
120   Float_t fkCELLSTEP; //Constant
121
122   Int_t fkDDLOFFSET;   //Constant
123   TString fkDETNAME;
124
125 private:
126   AliHLTCaloConstants(const AliHLTCaloConstants & );
127   AliHLTCaloConstants & operator = (const AliHLTCaloConstants &); 
128
129   ClassDef(AliHLTCaloConstants, 1)
130 };
131
132
133
134 #endif