![]() |
![]() |
00001 #ifndef HCALProperties_H 00002 #define HCALProperties_H 00003 00004 #include "FastSimulation/CalorimeterProperties/interface/CalorimeterProperties.h" 00005 #include <vector> 00006 00017 namespace edm { 00018 class ParameterSet; 00019 } 00020 00021 class HCALProperties : public CalorimeterProperties 00022 { 00023 00024 public: 00025 00026 HCALProperties(const edm::ParameterSet& fastDet); 00027 00028 virtual ~HCALProperties() { 00029 } 00030 00032 inline double theAeff() const { return HCALAeff_; } 00033 00035 inline double theZeff() const { return HCALZeff_; } 00036 00038 inline double rho() const { return HCALrho_; } 00039 00041 inline double radLenIncm() const { return radiationLengthIncm(); } 00042 00044 // This is needed in Calorimetry/CrystalSegment. 00045 // Patrick, if you don't like it, give me another solution 00046 // to access the ECALProperties efficiently. 00047 inline double radiationLengthIncm() const { return HCALradiationLengthIncm_; } 00048 00050 inline double radLenIngcm2() const { return HCALradLenIngcm2_; } 00051 00053 inline double moliereRadius() const { return HCALmoliereRadius_; } 00054 //inline double moliereRadius() const { return 2.4; } 00055 00057 inline double criticalEnergy() const { return HCALcriticalEnergy_; } 00058 00060 inline double interactionLength() const { return HCALinteractionLength_; } 00061 00064 inline double hOverPi() const {return hOPi;} 00065 00067 inline double spotFraction() const {return spotFrac;} 00068 00069 double getHcalDepth(double) const; 00070 00071 int eta2ieta(double eta) const; 00072 00073 private: 00074 double hOPi; 00075 double spotFrac; 00076 00077 protected: 00078 double HCALAeff_; 00079 double HCALZeff_; 00080 double HCALrho_; 00081 double HCALradiationLengthIncm_; 00082 double HCALradLenIngcm2_; 00083 double HCALmoliereRadius_; 00084 double HCALcriticalEnergy_; 00085 double HCALinteractionLength_; 00086 std::vector <double> etatow_;// HCAL towers eta edges 00087 std::vector <double> hcalDepthLam_;// HCAL depth for each tower ieta 00088 00089 }; 00090 00091 #endif