CMS 3D CMS Logo

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 public:
23  HCALProperties(const edm::ParameterSet& fastDet);
24 
25  ~HCALProperties() override {}
26 
28  inline double theAeff() const override { return HCALAeff_; }
29 
31  inline double theZeff() const override { return HCALZeff_; }
32 
34  inline double rho() const override { return HCALrho_; }
35 
37  inline double radLenIncm() const override { return radiationLengthIncm(); }
38 
40  // This is needed in Calorimetry/CrystalSegment.
41  // Patrick, if you don't like it, give me another solution
42  // to access the ECALProperties efficiently.
43  inline double radiationLengthIncm() const { return HCALradiationLengthIncm_; }
44 
46  inline double radLenIngcm2() const override { return HCALradLenIngcm2_; }
47 
49  inline double moliereRadius() const override { return HCALmoliereRadius_; }
50  //inline double moliereRadius() const { return 2.4; }
51 
53  inline double criticalEnergy() const override { return HCALcriticalEnergy_; }
54 
56  inline double interactionLength() const override { return HCALinteractionLength_; }
57 
60  inline double hOverPi() const { return hOPi; }
61 
63  inline double spotFraction() const { return spotFrac; }
64 
65  double getHcalDepth(double) const;
66 
67  int eta2ieta(double eta) const;
68 
69 private:
70  double hOPi;
71  double spotFrac;
72 
73 protected:
74  double HCALAeff_;
75  double HCALZeff_;
76  double HCALrho_;
82  std::vector<double> etatow_; // HCAL towers eta edges
83  std::vector<double> hcalDepthLam_; // HCAL depth for each tower ieta
84 };
85 
86 #endif
std::vector< double > etatow_
double moliereRadius() const override
Moliere Radius in cm (=7 A/Z in g/cm^2)
double HCALradiationLengthIncm_
double criticalEnergy() const override
Critical energy in GeV (2.66E-3*(x0*Z/A)^1.1)
double radLenIncm() const override
Radiation length in cm.
int eta2ieta(double eta) const
double interactionLength() const override
Interaction length in cm.
HCALProperties(const edm::ParameterSet &fastDet)
double hOverPi() const
double theZeff() const override
Effective Z.
double radLenIngcm2() const override
Radiation length in g/cm^2.
double HCALradLenIngcm2_
double HCALcriticalEnergy_
double spotFraction() const
Spot fraction wrt ECAL.
~HCALProperties() override
double HCALinteractionLength_
double getHcalDepth(double) const
HLT enums.
double rho() const override
Density in g/cm3.
double radiationLengthIncm() const
Radiation length in cm but static.
double HCALmoliereRadius_
std::vector< double > hcalDepthLam_
double theAeff() const override
Effective A.