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 private: 00069 double hOPi; 00070 double spotFrac; 00071 }; 00072 00073 #endif