CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/FastSimulation/CalorimeterProperties/interface/ECALProperties.h

Go to the documentation of this file.
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 bool isHom() const { return bHom_; }
00066 
00068   virtual double photoStatistics() const=0;
00069 
00071   virtual double lightCollectionEfficiency() const=0;
00072 
00074   virtual double lightCollectionUniformity() const=0;
00075 
00076  protected:
00077 
00078   double lightColl_;
00079   double lightCollUnif_;
00080   double photoStatistics_;
00081   double thickness_;
00082   double interactionLength_;
00083 
00084   double Aeff_;
00085   double Zeff_;
00086   double rho_;
00087   double radLenIncm_;
00088   double radLenIngcm2_;
00089   double moliereRadius_;
00090 
00091   double criticalEnergy_;
00092 
00093   double Fs_;
00094   double ehat_;
00095   double resE_;
00096 
00097   bool bHom_;
00098 
00099   //Es=sqrt(4*Pi/alphaEM)*me*c^2=0.0212 GeV used for Moliere Radius calculation
00100   const double scaleEnergy_;
00101 
00102 };
00103 
00104 #endif