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 criticalEnergy() const override
Critical energy in GeV (2.66E-3*(x0*Z/A)^1.1)
double radiationLengthIncm() const
Radiation length in cm but static.
double HCALradiationLengthIncm_
double theAeff() const override
Effective A.
double radLenIncm() const override
Radiation length in cm.
double interactionLength() const override
Interaction length in cm.
double spotFraction() const
Spot fraction wrt ECAL.
double hOverPi() const
double HCALradLenIngcm2_
double HCALcriticalEnergy_
double theZeff() const override
Effective Z.
~HCALProperties() override
double moliereRadius() const override
Moliere Radius in cm (=7 A/Z in g/cm^2)
double rho() const override
Density in g/cm3.
double HCALinteractionLength_
double radLenIngcm2() const override
Radiation length in g/cm^2.
HLT enums.
double HCALmoliereRadius_
std::vector< double > hcalDepthLam_