#include <EcalClusterEnergyUncertaintyObjectSpecific.h>
Public Member Functions | |
EcalClusterEnergyUncertaintyObjectSpecific (const edm::ParameterSet &) | |
virtual float | getValue (const reco::BasicCluster &, const EcalRecHitCollection &) const |
virtual float | getValue (const reco::SuperCluster &, const int mode) const |
Definition at line 17 of file EcalClusterEnergyUncertaintyObjectSpecific.h.
EcalClusterEnergyUncertaintyObjectSpecific::EcalClusterEnergyUncertaintyObjectSpecific | ( | const edm::ParameterSet & | ) | [inline] |
Definition at line 19 of file EcalClusterEnergyUncertaintyObjectSpecific.h.
{};
float EcalClusterEnergyUncertaintyObjectSpecific::getValue | ( | const reco::SuperCluster & | superCluster, |
const int | mode | ||
) | const [virtual] |
Implements EcalClusterEnergyUncertaintyObjectSpecificBaseClass.
Definition at line 4 of file EcalClusterEnergyUncertaintyObjectSpecific.cc.
References EcalClusterEnergyUncertaintyObjectSpecificBaseClass::checkInit(), reco::CaloCluster::energy(), eta(), reco::CaloCluster::eta(), reco::SuperCluster::etaWidth(), fitWZ::par0, and reco::SuperCluster::phiWidth().
{ checkInit(); // mode = 0 returns electron energy uncertainty float en = superCluster.energy(); float eta = fabs(superCluster.eta()); float et = en/cosh(eta); float brem = superCluster.phiWidth()/superCluster.etaWidth(); const int nBinsEta=6; const float EtaBins[nBinsEta+1] = {0.0, 0.7, 1.15, 1.44, 1.56, 2.0, 2.5}; const int nBinsBrem=6; const float BremBins [nBinsBrem+1]= {0.8, 1.0, 2.0, 3.0, 4.0, 5.0, 10.0}; float par0[nBinsEta][nBinsBrem]; float par1[nBinsEta][nBinsBrem]; float par2[nBinsEta][nBinsBrem]; float par3[nBinsEta][nBinsBrem]; par0[0][0]=0.00640519; par1[0][0]=0.257578; par2[0][0]=1.72437; par3[0][0]=4.04686e-06; par0[0][1]=0.00709569; par1[0][1]=0.279844; par2[0][1]=1.13789; par3[0][1]=1.16239e-05; par0[0][2]=0.0075544; par1[0][2]=0.341346; par2[0][2]=0.513396; par3[0][2]=2.90054e-06; par0[0][3]=0.00659365; par1[0][3]=0.517649; par2[0][3]=-3.1847; par3[0][3]=7.37152e-07; par0[0][4]=0.00771696; par1[0][4]=0.492897; par2[0][4]=-1.42222; par3[0][4]=0.000358677; par0[0][5]=0.00561532; par1[0][5]=0.655138; par2[0][5]=-3.29839; par3[0][5]=6.25898e-07; par0[1][0]=0.00273646; par1[1][0]=0.714568; par2[1][0]=-4.82956; par3[1][0]=4.45878e-07; par0[1][1]=0.00679797; par1[1][1]=0.472856; par2[1][1]=-0.281699; par3[1][1]=5.46479e-05; par0[1][2]=0.00845532; par1[1][2]=0.611624; par2[1][2]=-1.10104; par3[1][2]=1.16803e-05; par0[1][3]=0.00831068; par1[1][3]=0.853653; par2[1][3]=-4.23761; par3[1][3]=2.61247e-05; par0[1][4]=0.00845457; par1[1][4]=0.984985; par2[1][4]=-5.19548; par3[1][4]=2.05044e-07; par0[1][5]=0.0110227; par1[1][5]=1.00356; par2[1][5]=-4.31936; par3[1][5]=0.14384; par0[2][0]=-0.00192618; par1[2][0]=1.69986; par2[2][0]=-16.4355; par3[2][0]=1.94946e-06; par0[2][1]=0.0067622; par1[2][1]=0.792209; par2[2][1]=-1.18521; par3[2][1]=0.066577; par0[2][2]=0.00761595; par1[2][2]=1.03058; par2[2][2]=-4.17237; par3[2][2]=0.168543; par0[2][3]=0.0119179; par1[2][3]=0.910145; par2[2][3]=-2.14122; par3[2][3]=0.00342264; par0[2][4]=0.0139921; par1[2][4]=1.01488; par2[2][4]=-2.46637; par3[2][4]=0.0458434; par0[2][5]=0.013724; par1[2][5]=1.49078; par2[2][5]=-6.60661; par3[2][5]=0.297821; par0[3][0]=-0.00197909; par1[3][0]=4.40696; par2[3][0]=-4.88737; par3[3][0]=4.99999; par0[3][1]=0.0340196; par1[3][1]=3.86278; par2[3][1]=-10.899; par3[3][1]=0.130098; par0[3][2]=0.0102397; par1[3][2]=8.99643; par2[3][2]=-31.5122; par3[3][2]=0.00118335; par0[3][3]=0.0110891; par1[3][3]=8.01794; par2[3][3]=-21.9038; par3[3][3]=0.000245975; par0[3][4]=0.0328931; par1[3][4]=4.73441; par2[3][4]=-12.1148; par3[3][4]=3.01721e-05; par0[3][5]=0.0395614; par1[3][5]=3.54327; par2[3][5]=-12.6514; par3[3][5]=0.119761; par0[4][0]=0.0121809; par1[4][0]=0.965608; par2[4][0]=-4.19667; par3[4][0]=0.129896; par0[4][1]=0.0168951; par1[4][1]=1.0218; par2[4][1]=-4.03078; par3[4][1]=0.374291; par0[4][2]=0.0213549; par1[4][2]=1.29613; par2[4][2]=-4.89024; par3[4][2]=0.0297165; par0[4][3]=0.0262602; par1[4][3]=1.41674; par2[4][3]=-5.94928; par3[4][3]=0.19298; par0[4][4]=0.0334892; par1[4][4]=1.48572; par2[4][4]=-5.3175; par3[4][4]=0.0157013; par0[4][5]=0.0347093; par1[4][5]=1.63127; par2[4][5]=-7.27426; par3[4][5]=0.201164; par0[5][0]=0.0185321; par1[5][0]=0.255205; par2[5][0]=1.56798; par3[5][0]=5.07655e-11; par0[5][1]=0.0182718; par1[5][1]=0.459086; par2[5][1]=-0.48198; par3[5][1]=0.00114946; par0[5][2]=0.0175505; par1[5][2]=0.92848; par2[5][2]=-4.52737; par3[5][2]=0.154827; par0[5][3]=0.0233833; par1[5][3]=0.804105; par2[5][3]=-3.75131; par3[5][3]=2.84172; par0[5][4]=0.0334892; par1[5][4]=1.48572; par2[5][4]=-5.3175; par3[5][4]=0.0157013; par0[5][5]=0.0347093; par1[5][5]=1.63127; par2[5][5]=-7.27426; par3[5][5]=0.201164; int iEtaSl = -1; for (int iEta = 0; iEta < nBinsEta; ++iEta){ if ( EtaBins[iEta] <= TMath::Abs(eta) && TMath::Abs(eta) <EtaBins[iEta+1] ){ iEtaSl = iEta; } } int iBremSl = -1; for (int iBrem = 0; iBrem < nBinsBrem; ++iBrem){ if ( BremBins[iBrem] <= brem && brem <BremBins[iBrem+1] ){ iBremSl = iBrem; } } if (TMath::Abs(eta)>2.5) iEtaSl = nBinsEta-1; if (brem<BremBins[0]) iBremSl = 0; if (brem>BremBins[nBinsBrem-1]) iBremSl = nBinsBrem-1; float uncertainty = 0; if (et<=5) uncertainty = par0[iEtaSl][iBremSl] + par1[iEtaSl][iBremSl]/(5-par2[iEtaSl][iBremSl]) + par3[iEtaSl][iBremSl]/((5-par2[iEtaSl][iBremSl])*(5-par2[iEtaSl][iBremSl])); if (et>=200) uncertainty = par0[iEtaSl][iBremSl] + par1[iEtaSl][iBremSl]/(200-par2[iEtaSl][iBremSl]) + par3[iEtaSl][iBremSl]/((200-par2[iEtaSl][iBremSl])*(200-par2[iEtaSl][iBremSl])); if (et>5 && et<200) uncertainty = par0[iEtaSl][iBremSl] + par1[iEtaSl][iBremSl]/(et-par2[iEtaSl][iBremSl]) + par3[iEtaSl][iBremSl]/((et-par2[iEtaSl][iBremSl])*(et-par2[iEtaSl][iBremSl])); return (uncertainty*en); }
virtual float EcalClusterEnergyUncertaintyObjectSpecific::getValue | ( | const reco::BasicCluster & | , |
const EcalRecHitCollection & | |||
) | const [inline, virtual] |
Implements EcalClusterEnergyUncertaintyObjectSpecificBaseClass.
Definition at line 22 of file EcalClusterEnergyUncertaintyObjectSpecific.h.
{ return 0.;};