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 double da() const { return da_; }
66 
68  inline double dp() const { return dp_; }
69 
70 
72  inline bool isHom() const { return bHom_; }
73 
75  virtual double photoStatistics() const=0;
76 
78  virtual double lightCollectionEfficiency() const=0;
79 
81  virtual double lightCollectionUniformity() const=0;
82 
83  protected:
84 
85  double lightColl_;
88  double thickness_;
90 
91  double Aeff_;
92  double Zeff_;
93  double rho_;
94  double radLenIncm_;
95  double radLenIngcm2_;
97 
99 
100  double Fs_;
101  double ehat_;
102  double resE_;
103 
104  double da_;
105  double dp_;
106 
107  bool bHom_;
108 
109  //Es=sqrt(4*Pi/alphaEM)*me*c^2=0.0212 GeV used for Moliere Radius calculation
110  const double scaleEnergy_;
111 
112 };
113 
114 #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 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
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)