CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/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 #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