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 #include <vector>
6 
17 namespace edm {
18  class ParameterSet;
19 }
20 
22 {
23 
24  public:
25 
26  HCALProperties(const edm::ParameterSet& fastDet);
27 
28  virtual ~HCALProperties() {
29  }
30 
32  inline double theAeff() const { return HCALAeff_; }
33 
35  inline double theZeff() const { return HCALZeff_; }
36 
38  inline double rho() const { return HCALrho_; }
39 
41  inline double radLenIncm() const { return radiationLengthIncm(); }
42 
44  // This is needed in Calorimetry/CrystalSegment.
45  // Patrick, if you don't like it, give me another solution
46  // to access the ECALProperties efficiently.
47  inline double radiationLengthIncm() const { return HCALradiationLengthIncm_; }
48 
50  inline double radLenIngcm2() const { return HCALradLenIngcm2_; }
51 
53  inline double moliereRadius() const { return HCALmoliereRadius_; }
54  //inline double moliereRadius() const { return 2.4; }
55 
57  inline double criticalEnergy() const { return HCALcriticalEnergy_; }
58 
60  inline double interactionLength() const { return HCALinteractionLength_; }
61 
64  inline double hOverPi() const {return hOPi;}
65 
67  inline double spotFraction() const {return spotFrac;}
68 
69  double getHcalDepth(double) const;
70 
71  int eta2ieta(double eta) const;
72 
73  private:
74  double hOPi;
75  double spotFrac;
76 
77  protected:
78  double HCALAeff_;
79  double HCALZeff_;
80  double HCALrho_;
86  std::vector <double> etatow_;// HCAL towers eta edges
87  std::vector <double> hcalDepthLam_;// HCAL depth for each tower ieta
88 
89 };
90 
91 #endif
std::vector< double > etatow_
double radLenIngcm2() const
Radiation length in g/cm^2.
double radiationLengthIncm() const
Radiation length in cm but static.
int eta2ieta(double eta) const
double HCALradiationLengthIncm_
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 HCALradLenIngcm2_
double HCALcriticalEnergy_
double HCALinteractionLength_
double radLenIncm() const
Radiation length in cm.
double getHcalDepth(double) const
double rho() const
Density in g/cm3.
virtual ~HCALProperties()
double HCALmoliereRadius_
std::vector< double > hcalDepthLam_