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