00001 #ifndef ECALProperties_H 00002 #define ECALProperties_H 00003 00004 #include "FastSimulation/CalorimeterProperties/interface/CalorimeterProperties.h" 00005 00015 class ECALProperties : public CalorimeterProperties 00016 { 00017 00018 public: 00019 00020 ECALProperties() : scaleEnergy_(0.0212){ } 00021 00022 virtual ~ECALProperties() { 00023 } 00024 00026 inline double theAeff() const { return Aeff_; } 00027 00029 inline double theZeff() const { return Zeff_; } 00030 00032 inline double rho() const { return rho_; } 00033 00035 // inline double radLenIncm() const { return radiationLengthIncm(); }: 0.89 for Standard ECAL 00036 inline double radLenIncm() const { return radLenIncm_; } 00037 00039 // This is needed in Calorimetry/CrystalSegment. Patrick, if you don't like it, give 00040 // me an other solution to access the ECALProperties efficiently. 00041 // static inline double radiationLengthIncm() { return 0.89; } 00042 00044 inline double radLenIngcm2() const { return radLenIngcm2_; } 00045 00047 inline double moliereRadius() const { return moliereRadius_; } 00048 00050 inline double criticalEnergy() const { return criticalEnergy_; } 00051 00053 inline double interactionLength() const { return interactionLength_; } 00054 00056 inline double theFs() const { return Fs_; } 00057 00059 inline double ehat() const { return ehat_; } 00060 00062 inline double resE() const { return resE_; } 00063 00065 inline double da() const { return da_; } 00066 00068 inline double dp() const { return dp_; } 00069 00070 00072 inline bool isHom() const { return bHom_; } 00073 00075 virtual double photoStatistics() const=0; 00076 00078 virtual double lightCollectionEfficiency() const=0; 00079 00081 virtual double lightCollectionUniformity() const=0; 00082 00083 protected: 00084 00085 double lightColl_; 00086 double lightCollUnif_; 00087 double photoStatistics_; 00088 double thickness_; 00089 double interactionLength_; 00090 00091 double Aeff_; 00092 double Zeff_; 00093 double rho_; 00094 double radLenIncm_; 00095 double radLenIngcm2_; 00096 double moliereRadius_; 00097 00098 double criticalEnergy_; 00099 00100 double Fs_; 00101 double ehat_; 00102 double resE_; 00103 00104 double da_; 00105 double dp_; 00106 00107 bool bHom_; 00108 00109 //Es=sqrt(4*Pi/alphaEM)*me*c^2=0.0212 GeV used for Moliere Radius calculation 00110 const double scaleEnergy_; 00111 00112 }; 00113 00114 #endif