CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ECALProperties.h
Go to the documentation of this file.
1 #ifndef ECALProperties_H
2 #define ECALProperties_H
3 
5 
16 {
17 
18  public:
19 
20  ECALProperties() : scaleEnergy_(0.0212){ }
21 
22  virtual ~ECALProperties() {
23  }
24 
26  inline double theAeff() const { return Aeff_; }
27 
29  inline double theZeff() const { return Zeff_; }
30 
32  inline double rho() const { return rho_; }
33 
35  // inline double radLenIncm() const { return radiationLengthIncm(); }: 0.89 for Standard ECAL
36  inline double radLenIncm() const { return radLenIncm_; }
37 
39  // This is needed in Calorimetry/CrystalSegment. Patrick, if you don't like it, give
40  // me an other solution to access the ECALProperties efficiently.
41  // static inline double radiationLengthIncm() { return 0.89; }
42 
44  inline double radLenIngcm2() const { return radLenIngcm2_; }
45 
47  inline double moliereRadius() const { return moliereRadius_; }
48 
50  inline double criticalEnergy() const { return criticalEnergy_; }
51 
53  inline double interactionLength() const { return interactionLength_; }
54 
56  inline double theFs() const { return Fs_; }
57 
59  inline double ehat() const { return ehat_; }
60 
62  inline double resE() const { return resE_; }
63 
65  inline bool isHom() const { return bHom_; }
66 
68  virtual double photoStatistics() const=0;
69 
71  virtual double lightCollectionEfficiency() const=0;
72 
74  virtual double lightCollectionUniformity() const=0;
75 
76  protected:
77 
78  double lightColl_;
81  double thickness_;
83 
84  double Aeff_;
85  double Zeff_;
86  double rho_;
87  double radLenIncm_;
88  double radLenIngcm2_;
90 
92 
93  double Fs_;
94  double ehat_;
95  double resE_;
96 
97  bool bHom_;
98 
99  //Es=sqrt(4*Pi/alphaEM)*me*c^2=0.0212 GeV used for Moliere Radius calculation
100  const double scaleEnergy_;
101 
102 };
103 
104 #endif
const double scaleEnergy_
double radLenIncm() const
Radiation length in cm.
double theZeff() const
Effective Z: 68.36 for Standard ECAL.
double moliereRadius_
double criticalEnergy_
bool isHom() const
a rough estimate of ECAL resolution sigma/E = resE/sqrt(E)
double moliereRadius() const
Moliere Radius in cm : 2.190 for Standard ECAL.
virtual ~ECALProperties()
double theAeff() const
Effective A: 170.87 for Standard ECAL.
double radLenIngcm2_
double ehat() const
ehat = e/mip of the calorimeter. 0 for homogeneous one
double theFs() const
Sampling fraction Fs of the calorimeter. 0 for homogeneous one.
double radLenIngcm2() const
Radiation length in cm but static.
double criticalEnergy() const
Critical energy in GeV (2.66E-3*(x0*Z/A)^1.1): 8.74E-3 for Standard ECAL.
double lightCollUnif_
virtual double lightCollectionEfficiency() const =0
Light Collection efficiency.
double interactionLength_
double rho() const
Density in g/cm3: 8.280 for Standard ECAL.
virtual double lightCollectionUniformity() const =0
Light Collection uniformity.
double photoStatistics_
virtual double photoStatistics() const =0
Photostatistics (photons/GeV) in the homegeneous material.
double interactionLength() const
Interaction length in cm: 18.5 for Standard ECAL.
double resE() const
a rough estimate of ECAL resolution sigma/E = resE/sqrt(E)