CMS 3D CMS Logo

PFEnergyResolution.cc
Go to the documentation of this file.
2 #include <TMath.h>
3 #include <cmath>
4 /*
5 PFEnergyResolution::PFEnergyResolution(const edm::ParameterSet& parameters)
6 {
7 //--- nothing to be done yet
8 }
9 */
11 {
12 //--- nothing to be done yet
13 }
14 
16 {
17 //--- nothing to be done yet
18 }
19 
20 
21 double PFEnergyResolution::getEnergyResolutionEm(double CorrectedEnergy, double eta) const{
22 
23  //The parameters S,N,C has been determined with the Full Sim on CMSSW_2_1_0_pre4.
24  //The resolution must be a function of the corrected energy available in PFEnergyCalibration
25  //Jonathan Biteau July 2008
26 
27  double C;
28  double S;
29  double N;
30  if(TMath::Abs(eta)<1.48){C=0.35/100; S=5.51/100; N=98./1000.;}
31  else{C=0; S=12.8/100; N=440./1000.;}
32  double result = TMath::Sqrt(C*C*CorrectedEnergy*CorrectedEnergy + S*S*CorrectedEnergy + N*N);
33  return result;
34 }
35 
36 
37 double PFEnergyResolution::getEnergyResolutionHad(double energyHCAL, double eta, double phi) const
38 {
39 //--- estimate **relative** resolution of energy measurement (sigmaE/E)
40 // for hadrons in depositing energy in HCAL
41 // (eta and phi dependence not implemented yet)
42 
43  return 1.49356/sqrt(energyHCAL) + 6.62527e-03*sqrt(energyHCAL) - 6.33966e-02;
44 }
45 /*
46 double PFEnergyResolution::getEnergyResolutionHad(double energyECAL, double energyHCAL, double eta, double phi) const
47 {
48 //--- estimate **relative** resolution of energy measurement (sigmaE/E)
49 // for hadrons depositing energy in ECAL and HCAL
50 // (currently, the resolution function for hadrons
51 // is assumed to be the same in ECAL and HCAL)
52 
53  return getEnergyResolutionHad(energyECAL + energyHCAL, theta, phi);
54 }
55 */
double getEnergyResolutionHad(double energyHCAL, double eta, double phi) const
double getEnergyResolutionEm(double CorrectedEnergy, double eta) const
T sqrt(T t)
Definition: SSEVec.h:18
T Abs(T a)
Definition: MathUtil.h:49
#define N
Definition: blowfish.cc:9
double energyHCAL(std::vector< DetId > &vdets, edm::Handle< T > &hits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
double S(const TLorentzVector &, const TLorentzVector &)
Definition: Particle.cc:99