4 #include "TGraphErrors.h" 6 #include "TLorentzVector.h" 93 std::cout<<
"Configured Uncertainty from CondDB"<<std::endl;
108 P4.SetPtEtaPhiE(rawPt,eta,0,0);
115 for(
unsigned ieta=0;ieta<
mVEta.size();ieta++)
123 P4.SetPtEtaPhiE(rawPt,eta,0,0);
139 std::cout<<rawPt<<
" "<<eta<<
" "<<jec<<
" "<<rawPt*jec<<
" "<<unc<<std::endl;
143 for(
unsigned ipt=0;ipt<
mVPt.size();ipt++)
154 while(e > 0.0001 && nLoop < 10)
156 P4.SetPtEtaPhiE(rawPt,eta,0,0);
160 e = fabs(tmp-corPt)/corPt;
166 P4.SetPtEtaPhiE(rawPt,eta,0,0);
181 std::cout<<rawPt<<
" "<<eta<<
" "<<jec<<
" "<<rawPt*jec<<
" "<<unc<<std::endl;
190 throw cms::Exception(
"JetCorrectorDemo",
"Too many graph points !!! Maximum is 1000 !!!");
191 if (
mVEta.size() > 100)
192 throw cms::Exception(
"JetCorrectorDemo",
"Too many eta values !!! Maximum is 100 !!!");
193 if (
mVPt.size() > 100)
194 throw cms::Exception(
"JetCorrectorDemo",
"Too many pt values !!! Maximum is 100 !!!");
204 for(
unsigned ipt=0;ipt<
mVPt.size();ipt++)
207 sprintf(name,
"JEC_vs_Eta_CorPt%1.1f",
mVPt[ipt]);
210 sprintf(name,
"UNC_vs_Eta_CorPt%1.1f",
mVPt[ipt]);
213 for(
unsigned ieta=0;ieta<
mVEta.size();ieta++)
216 sprintf(name,
"JEC_vs_RawPt_eta%1.1f",
mVEta[ieta]);
219 sprintf(name,
"JEC_vs_CorPt_eta%1.1f",
mVEta[ieta]);
222 sprintf(name,
"UNC_vs_CorPt_eta%1.1f",
mVEta[ieta]);
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< double > mVEta
edm::Service< TFileService > fs
bool getByToken(EDGetToken token, Handle< PROD > &result) const
reco::Particle::LorentzVector LorentzVector
double vjec_pt[100][1000]
~JetCorrectorDemo() override
std::string mUncertaintyTag
T * make(const Args &...args) const
make new ROOT object
double correction(const LorentzVector &fJet) const
get correction using Jet information only
double vUnc_eta[100][1000]
TGraphErrors * mVGraphPt[100]
JetCorrectorDemo(const edm::ParameterSet &)
TGraphErrors * mVGraphCorPt[100]
double vex_eta[100][1000]
#define DEFINE_FWK_MODULE(type)
std::string mUncertaintyFile
double vjecUnc_eta[100][1000]
double vjec_eta[100][1000]
void setJetEta(float fEta)
std::vector< std::vector< double > > tmp
std::vector< double > mVPt
std::string fullPath() const
float getUncertainty(bool fDirection)
double vjecUnc_pt[100][1000]
double vUnc_pt[100][1000]
math::XYZTLorentzVector LorentzVector
Lorentz vector.
edm::EDGetTokenT< reco::JetCorrector > mJetCorrector
Power< A, B >::type pow(const A &a, const B &b)
TGraphErrors * mVGraphEta[100]