CMS 3D CMS Logo

ECALProperties.h
Go to the documentation of this file.
1 #ifndef ECALProperties_H
2 #define ECALProperties_H
3 
5 
16 public:
18 
19  ~ECALProperties() override {}
20 
22  inline double theAeff() const override { return Aeff_; }
23 
25  inline double theZeff() const override { return Zeff_; }
26 
28  inline double rho() const override { return rho_; }
29 
31  // inline double radLenIncm() const { return radiationLengthIncm(); }: 0.89 for Standard ECAL
32  inline double radLenIncm() const override { return radLenIncm_; }
33 
35  // This is needed in Calorimetry/CrystalSegment. Patrick, if you don't like it, give
36  // me an other solution to access the ECALProperties efficiently.
37  // static inline double radiationLengthIncm() { return 0.89; }
38 
40  inline double radLenIngcm2() const override { return radLenIngcm2_; }
41 
43  inline double moliereRadius() const override { return moliereRadius_; }
44 
46  inline double criticalEnergy() const override { return criticalEnergy_; }
47 
49  inline double interactionLength() const override { return interactionLength_; }
50 
52  inline double theFs() const { return Fs_; }
53 
55  inline double ehat() const { return ehat_; }
56 
58  inline double resE() const { return resE_; }
59 
61  inline double da() const { return da_; }
62 
64  inline double dp() const { return dp_; }
65 
67  inline bool isHom() const { return bHom_; }
68 
70  virtual double photoStatistics() const = 0;
71 
73  virtual double lightCollectionEfficiency() const = 0;
74 
76  virtual double lightCollectionUniformity() const = 0;
77 
78 protected:
79  double lightColl_;
82  double thickness_;
84 
85  double Aeff_;
86  double Zeff_;
87  double rho_;
88  double radLenIncm_;
89  double radLenIngcm2_;
91 
93 
94  double Fs_;
95  double ehat_;
96  double resE_;
97 
98  double da_;
99  double dp_;
100 
101  bool bHom_;
102 
103  //Es=sqrt(4*Pi/alphaEM)*me*c^2=0.0212 GeV used for Moliere Radius calculation
104  const double scaleEnergy_;
105 };
106 
107 #endif
~ECALProperties() override
const double scaleEnergy_
double theAeff() const override
Effective A: 170.87 for Standard ECAL.
double moliereRadius_
virtual double lightCollectionEfficiency() const =0
Light Collection efficiency.
double criticalEnergy_
bool isHom() const
a rough estimate of ECAL resolution sigma/E = resE/sqrt(E)
double moliereRadius() const override
Moliere Radius in cm : 2.190 for Standard ECAL.
double radLenIncm() const override
Radiation length in cm.
double radLenIngcm2_
double interactionLength() const override
Interaction length in cm: 18.5 for Standard ECAL.
double dp() const
the width of the passive layer in the case of the homogeneous detector
double da() const
the width of the active layer in the case of the homogeneous detector
double ehat() const
ehat = e/mip of the calorimeter. 0 for homogeneous one
virtual double photoStatistics() const =0
Photostatistics (photons/GeV) in the homegeneous material.
double theZeff() const override
Effective Z: 68.36 for Standard ECAL.
double theFs() const
Sampling fraction Fs of the calorimeter. 0 for homogeneous one.
double lightCollUnif_
double radLenIngcm2() const override
Radiation length in cm but static.
double interactionLength_
double photoStatistics_
double rho() const override
Density in g/cm3: 8.280 for Standard ECAL.
virtual double lightCollectionUniformity() const =0
Light Collection uniformity.
double criticalEnergy() const override
Critical energy in GeV (2.66E-3*(x0*Z/A)^1.1): 8.74E-3 for Standard ECAL.
double resE() const
a rough estimate of ECAL resolution sigma/E = resE/sqrt(E)