Go to the documentation of this file.00001 #ifndef HCALResponse_h
00002 #define HCALResponse_h
00003
00010 #include <map>
00011
00012 #define maxHDe 15 // energy points for hadrons
00013 #define maxHDeta 51 // eta points for hadrons
00014 #define maxEMe 6 // energy points e/gamma in HF
00015 #define maxEMeta 21 // eta points e/gamma in HF
00016 #define maxMUe 4 // energy points for muons
00017 #define maxMUeta 6
00018 #define maxMUbin 40 // binning oh muon histograms
00019
00020 typedef std::pair<double,double> response;
00021 enum part{hcbarrel=0, hcendcap=1, hcforward=2};
00022 enum type{ECAL=0, HCAL=1, VFCAL=2};
00023
00024 class RandomEngine;
00025
00026 namespace edm {
00027 class ParameterSet;
00028 }
00029
00030 class HCALResponse
00031 {
00032 public:
00033 HCALResponse(const edm::ParameterSet& pset,
00034 const RandomEngine* engine);
00035 ~HCALResponse(){;}
00036
00037
00038
00039
00040 response responseHCAL(int mip, double energy, double eta, int partype);
00041
00042
00043 double getHCALEnergyResponse (double e, int hit);
00044 double getHCALEnergyResolution (double e, int hit);
00045 double getHFEnergyResolution (double EGen);
00046
00047 private:
00048
00049
00050
00051 void interHD(int mip, double e, int ie, int ieta);
00052 void interEM(double e, int ie, int ieta);
00053 void interMU(double e, int ie, int ieta);
00054
00057
00058
00059 double RespPar[3][2][3];
00060
00062 double eResponseScale[3];
00063 double eResponsePlateau[3];
00064 double eResponseExponent;
00065 double eResponseCoefficient;
00066 double eResponseCorrection;
00067 double eBias;
00068
00069
00070 double etaStep, muStep;
00071
00072 double mean, sigma;
00073
00074
00075 double eGridHD [maxHDe];
00076 double eGridEM [maxEMe];
00077 double eGridMU [maxMUe];
00078 double etaGridMU[maxMUeta];
00079
00080
00081 double meanHD [maxHDe][maxHDeta], sigmaHD [maxHDe][maxHDeta];
00082 double meanHD_mip [maxHDe][maxHDeta], sigmaHD_mip [maxHDe][maxHDeta];
00083 double meanHD_nomip[maxHDe][maxHDeta], sigmaHD_nomip[maxHDe][maxHDeta];
00084
00085
00086 double meanEM[maxEMe][maxEMeta], sigmaEM[maxEMe][maxEMeta];
00087
00088
00089 double responseMU[maxMUe][maxMUeta][maxMUbin];
00090
00091
00092 const RandomEngine* random;
00093
00094 };
00095 #endif
00096