CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HCALProperties.h
Go to the documentation of this file.
1 #ifndef HCALProperties_H
2 #define HCALProperties_H
3 
5 
16 namespace edm {
17  class ParameterSet;
18 }
19 
21 {
22 
23  public:
24 
25  HCALProperties(const edm::ParameterSet& fastDet);
26 
27  virtual ~HCALProperties() {
28  }
29 
31  inline double theAeff() const { return 63.546; }
32 
34  inline double theZeff() const { return 29.; }
35 
37  inline double rho() const { return 8.960; }
38 
40  inline double radLenIncm() const { return radiationLengthIncm(); }
41 
43  // This is needed in Calorimetry/CrystalSegment.
44  // Patrick, if you don't like it, give me another solution
45  // to access the ECALProperties efficiently.
46  static inline double radiationLengthIncm() { return 1.43; }
47 
49  inline double radLenIngcm2() const { return 12.86; }
50 
52  inline double moliereRadius() const { return 1.712; }
53  //inline double moliereRadius() const { return 2.4; }
54 
56  inline double criticalEnergy() const { return 18.63E-3; }
57 
59  inline double interactionLength() const { return 15.05; }
60 
63  inline double hOverPi() const {return hOPi;}
64 
66  inline double spotFraction() const {return spotFrac;}
67 
68  double getHcalDepth(double) const;
69 
70  int eta2ieta(double eta) const;
71 
72  private:
73  double hOPi;
74  double spotFrac;
75 
76 
77  double etatow[42]; // HCAL towers eta edges
78  double hcalDepthLam[41]; // HCAL depth for each tower ieta
79 };
80 
81 #endif
double radLenIngcm2() const
Radiation length in g/cm^2.
int eta2ieta(double eta) const
double hcalDepthLam[41]
double theAeff() const
Effective A.
double criticalEnergy() const
Critical energy in GeV (2.66E-3*(x0*Z/A)^1.1)
T eta() const
HCALProperties(const edm::ParameterSet &fastDet)
double interactionLength() const
Interaction length in cm.
double spotFraction() const
Spot fraction wrt ECAL.
double hOverPi() const
double theZeff() const
Effective Z.
double moliereRadius() const
Moliere Radius in cm (=7 A/Z in g/cm^2)
double etatow[42]
double radLenIncm() const
Radiation length in cm.
double getHcalDepth(double) const
static double radiationLengthIncm()
Radiation length in cm but static.
double rho() const
Density in g/cm3.
virtual ~HCALProperties()