#include <LXXXCorrector.h>
Public Member Functions | |
virtual double | correction (const LorentzVector &fJet) const |
get correction using Jet information only | |
virtual double | correction (const reco::Jet &fJet) const |
apply correction using Jet information only | |
virtual bool | eventRequired () const |
if correction needs event information | |
LXXXCorrector (const JetCorrectorParameters &fConfig, const edm::ParameterSet &fParameters) | |
virtual bool | refRequired () const |
if correction needs the jet reference | |
virtual | ~LXXXCorrector () |
Private Attributes | |
FactorizedJetCorrector * | mCorrector |
unsigned | mLevel |
Definition at line 16 of file LXXXCorrector.h.
LXXXCorrector::LXXXCorrector | ( | const JetCorrectorParameters & | fConfig, |
const edm::ParameterSet & | fParameters | ||
) |
Definition at line 20 of file LXXXCorrector.cc.
References JetCorrectorParameters::definitions(), Exception, and testEve_cfg::level.
{ string level = fParam.definitions().level(); if (level == "L2Relative") mLevel = 2; else if (level == "L3Absolute") mLevel = 3; else if (level == "L4EMF") mLevel = 4; else if (level == "L5Flavor") mLevel = 5; else if (level == "L7Parton") mLevel = 7; else throw cms::Exception("LXXXCorrector")<<" unknown correction level "<<level; vector<JetCorrectorParameters> vParam; vParam.push_back(fParam); mCorrector = new FactorizedJetCorrector(vParam); }
LXXXCorrector::~LXXXCorrector | ( | ) | [virtual] |
Definition at line 42 of file LXXXCorrector.cc.
{ delete mCorrector; }
double LXXXCorrector::correction | ( | const LorentzVector & | fJet | ) | const [virtual] |
get correction using Jet information only
Implements JetCorrector.
Definition at line 49 of file LXXXCorrector.cc.
References Exception.
{ // L4 correction requires more information than a simple 4-vector if (mLevel == 4) { throw cms::Exception("Invalid jet type") << "L4EMFCorrection is applicable to CaloJets only"; return 1; } else { mCorrector->setJetEta(fJet.eta()); mCorrector->setJetE(fJet.energy()); mCorrector->setJetPt(fJet.pt()); mCorrector->setJetPhi(fJet.phi()); } return mCorrector->getCorrection(); }
double LXXXCorrector::correction | ( | const reco::Jet & | fJet | ) | const [virtual] |
apply correction using Jet information only
Implements JetCorrector.
Definition at line 67 of file LXXXCorrector.cc.
References reco::CaloJet::emEnergyFraction(), reco::LeafCandidate::eta(), reco::LeafCandidate::p4(), reco::LeafCandidate::pt(), and query::result.
{ double result = 1.; // L4 correction applies to Calojets only if (mLevel == 4) { const reco::CaloJet& caloJet = dynamic_cast <const reco::CaloJet&> (fJet); mCorrector->setJetEta(fJet.eta()); mCorrector->setJetPt(fJet.pt()); mCorrector->setJetEMF(caloJet.emEnergyFraction()); result = mCorrector->getCorrection(); } else result = correction(fJet.p4()); return result; }
virtual bool LXXXCorrector::eventRequired | ( | ) | const [inline, virtual] |
if correction needs event information
Implements JetCorrector.
Definition at line 32 of file LXXXCorrector.h.
{return false;}
virtual bool LXXXCorrector::refRequired | ( | ) | const [inline, virtual] |
if correction needs the jet reference
Implements JetCorrector.
Definition at line 35 of file LXXXCorrector.h.
{ return false; }
FactorizedJetCorrector* LXXXCorrector::mCorrector [private] |
Definition at line 40 of file LXXXCorrector.h.
unsigned LXXXCorrector::mLevel [private] |
Definition at line 39 of file LXXXCorrector.h.