CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/FastSimulation/ShowerDevelopment/interface/HDShowerParametrization.h

Go to the documentation of this file.
00001 #ifndef HDShowerParametrization_H
00002 #define HDShowerParametrization_H
00003 
00004 #include "FastSimulation/CalorimeterProperties/interface/ECALProperties.h"
00005 #include "FastSimulation/CalorimeterProperties/interface/HCALProperties.h"
00006 #include "FastSimulation/ShowerDevelopment/interface/HSParameters.h"
00015 class HDShowerParametrization
00016 {
00017  public:
00018 
00019   HDShowerParametrization(const ECALProperties* ecal,
00020                           const HCALProperties* hcal,
00021                           const HSParameters * hadronshower):
00022     theECAL(ecal),  
00023     theHCAL(hcal),
00024     theHSParameters(hadronshower){}
00025 
00026   virtual ~HDShowerParametrization() { }
00027 
00028   const ECALProperties* ecalProperties() const { 
00029     return theECAL; 
00030   }
00031 
00032   const HCALProperties* hcalProperties() const { 
00033     return theHCAL; 
00034   }
00035 
00036   const HSParameters * hsParameters() const{
00037     return theHSParameters;
00038   }
00039 
00040   // to distinguish between low- and high-energy case
00041   void setCase(int choice) {
00042     if(choice < 1 || choice > 2) theCase = 2;
00043     else theCase = choice; 
00044   } 
00045 
00046   // Minimal energy for the parameters calculation ( e < emin)  
00047   double emin() const { return 2.;}                 
00048   // First  range for the parameters calculation   ( emin < e < mid) 
00049   double emid() const { return 10.; }
00050   // Second range for the parameters calculation   ( emid < e < emax) 
00051   double emax() const { return 500.; }
00052 
00053   double e1() const { return 0.35; }
00054   double e2() const { return 0.09; }
00055   double alpe1() const { if(theCase==1) return 1.08;  else return 1.30; }
00056   double alpe2() const { if(theCase==1) return 0.24;  else return 0.255; }
00057   double bete1() const { if(theCase==1) return 0.478; else return 0.289; }
00058   double bete2() const { if(theCase==1) return 0.135; else return 0.010; }
00059   double alph1() const { if(theCase==1) return 1.17;  else return 0.38; }
00060   double alph2() const { if(theCase==1) return 0.21;  else return 0.23; }
00061   double beth1() const { if(theCase==1) return 2.10;  else return 0.83; }
00062   double beth2() const { if(theCase==1) return 0.72;  else return 0.049; }
00063   double part1() const { if(theCase==1) return 0.751; else return 0.509; }
00064   double part2() const { if(theCase==1) return 0.177; else return 0.021; }
00065   double r1() const { return 0.0124; } 
00066   double r2() const { return 0.359; } 
00067   double r3() const { return 0.0511; } 
00068   
00069  private:
00070   
00071   const ECALProperties* theECAL;
00072   const HCALProperties* theHCAL;
00073   const HSParameters * theHSParameters;
00074 
00075   int theCase;
00076 };
00077 
00078 #endif