CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/FastSimulation/CalorimeterProperties/interface/HCALProperties.h

Go to the documentation of this file.
00001 #ifndef HCALProperties_H
00002 #define HCALProperties_H
00003 
00004 #include "FastSimulation/CalorimeterProperties/interface/CalorimeterProperties.h"
00005 
00016 namespace edm { 
00017   class ParameterSet;
00018 }
00019 
00020 class HCALProperties : public CalorimeterProperties 
00021 {
00022 
00023  public:
00024 
00025   HCALProperties(const edm::ParameterSet& fastDet);
00026 
00027   virtual ~HCALProperties() {
00028   }
00029 
00031   inline double theAeff() const { return 63.546; }
00032 
00034   inline double theZeff() const { return 29.; }
00035 
00037   inline double rho() const { return 8.960; }
00038 
00040   inline double radLenIncm()  const { return radiationLengthIncm(); }
00041 
00043   // This is needed in Calorimetry/CrystalSegment. 
00044   // Patrick, if you don't like it, give me another solution
00045   // to access the ECALProperties efficiently. 
00046   static inline double radiationLengthIncm() { return 1.43; }
00047  
00049   inline double radLenIngcm2() const { return 12.86; }
00050 
00052   inline   double moliereRadius() const { return 1.712; }
00053   //inline double moliereRadius()  const { return 2.4; }
00054 
00056   inline double criticalEnergy() const { return 18.63E-3; }
00057 
00059   inline double interactionLength() const { return 15.05; }
00060 
00063   inline double hOverPi() const {return hOPi;}
00064 
00066   inline double spotFraction() const {return spotFrac;}
00067 
00068   double getHcalDepth(double) const;  
00069 
00070   int eta2ieta(double eta) const; 
00071 
00072  private:
00073   double hOPi;
00074   double spotFrac;
00075 
00076 
00077   double etatow[42];      // HCAL towers eta edges
00078   double hcalDepthLam[41]; // HCAL depth for each tower ieta
00079 };
00080 
00081 #endif