CMS 3D CMS Logo

Public Member Functions | Private Attributes

ChainedJetCorrector Class Reference

#include <ChainedJetCorrector.h>

Inheritance diagram for ChainedJetCorrector:
JetCorrector

List of all members.

Public Member Functions

 ChainedJetCorrector ()
void clear ()
virtual double correction (const reco::Jet &fJet, const edm::Event &fEvent, const edm::EventSetup &fSetup) const
 apply correction using all event information
virtual double correction (const reco::Jet &fJet) const
 apply correction using Jet information only
virtual double correction (const JetCorrector::LorentzVector &fJet) const
 get correction using Jet information only
virtual double correction (const reco::Jet &fJet, const edm::RefToBase< reco::Jet > &fJetRef, const edm::Event &fEvent, const edm::EventSetup &fSetup) const
 apply correction using all event information and reference to the raw jet
virtual bool eventRequired () const
 if correction needs event information
void push_back (const JetCorrector *fCorrector)
virtual bool refRequired () const
 if correction needs jet reference
virtual ~ChainedJetCorrector ()

Private Attributes

std::vector< const JetCorrector * > mCorrectors

Detailed Description

Definition at line 16 of file ChainedJetCorrector.h.


Constructor & Destructor Documentation

ChainedJetCorrector::ChainedJetCorrector ( ) [inline]

Definition at line 19 of file ChainedJetCorrector.h.

{}
virtual ChainedJetCorrector::~ChainedJetCorrector ( ) [inline, virtual]

Definition at line 20 of file ChainedJetCorrector.h.

{}

Member Function Documentation

void ChainedJetCorrector::clear ( void  ) [inline]

Definition at line 36 of file ChainedJetCorrector.h.

References mCorrectors.

Referenced by JetCorrectionESChain::produce().

{mCorrectors.clear ();}
double ChainedJetCorrector::correction ( const reco::Jet fJet,
const edm::RefToBase< reco::Jet > &  fJetRef,
const edm::Event fEvent,
const edm::EventSetup fSetup 
) const [virtual]

apply correction using all event information and reference to the raw jet

Reimplemented from JetCorrector.

Definition at line 51 of file ChainedJetCorrector.cc.

References reco::CompositePtrCandidate::clone(), i, metsig::jet, mCorrectors, query::result, and pileupReCalc_HLTpaths::scale.

{
  std::auto_ptr<reco::Jet> jet (dynamic_cast<reco::Jet*> (fJet.clone ()));
  double result = 1;
  for (size_t i = 0; i < mCorrectors.size (); ++i) {
    double scale = mCorrectors[i]->correction (*jet, fJetRef, fEvent, fSetup);
    jet->scaleEnergy (scale);
    result *= scale;
  }
  return result;
}
double ChainedJetCorrector::correction ( const JetCorrector::LorentzVector fJet) const [virtual]

get correction using Jet information only

Implements JetCorrector.

Definition at line 11 of file ChainedJetCorrector.cc.

References i, metsig::jet, mCorrectors, query::result, and pileupReCalc_HLTpaths::scale.

{
  LorentzVector jet = fJet;
  double result = 1;
  for (size_t i = 0; i < mCorrectors.size (); ++i) {
    double scale = mCorrectors[i]->correction (jet);
    jet *= scale;
    result *= scale;
  }
  return result;
}
double ChainedJetCorrector::correction ( const reco::Jet fJet) const [virtual]

apply correction using Jet information only

Implements JetCorrector.

Definition at line 24 of file ChainedJetCorrector.cc.

References reco::CompositePtrCandidate::clone(), i, metsig::jet, mCorrectors, query::result, and pileupReCalc_HLTpaths::scale.

{
  std::auto_ptr<reco::Jet> jet (dynamic_cast<reco::Jet*> (fJet.clone ()));
  double result = 1;
  for (size_t i = 0; i < mCorrectors.size (); ++i) {
    double scale = mCorrectors[i]->correction (*jet);
    jet->scaleEnergy (scale);
    result *= scale;
  }
  return result;
}
double ChainedJetCorrector::correction ( const reco::Jet fJet,
const edm::Event fEvent,
const edm::EventSetup fSetup 
) const [virtual]

apply correction using all event information

Reimplemented from JetCorrector.

Definition at line 37 of file ChainedJetCorrector.cc.

References reco::CompositePtrCandidate::clone(), i, metsig::jet, mCorrectors, query::result, and pileupReCalc_HLTpaths::scale.

{
  std::auto_ptr<reco::Jet> jet (dynamic_cast<reco::Jet*> (fJet.clone ()));
  double result = 1;
  for (size_t i = 0; i < mCorrectors.size (); ++i) {
    double scale = mCorrectors[i]->correction (*jet, fEvent, fSetup);
    jet->scaleEnergy (scale);
    result *= scale;
  }
  return result;
}
bool ChainedJetCorrector::eventRequired ( ) const [virtual]

if correction needs event information

Implements JetCorrector.

Definition at line 67 of file ChainedJetCorrector.cc.

References i, and mCorrectors.

{
  for (size_t i = 0; i < mCorrectors.size (); ++i) {
    if (mCorrectors[i]->eventRequired ()) return true;
  }
  return false;
}
void ChainedJetCorrector::push_back ( const JetCorrector fCorrector) [inline]

Definition at line 35 of file ChainedJetCorrector.h.

References mCorrectors.

Referenced by JetCorrectionESChain::produce().

{mCorrectors.push_back (fCorrector);}
bool ChainedJetCorrector::refRequired ( ) const [virtual]

if correction needs jet reference

Implements JetCorrector.

Definition at line 76 of file ChainedJetCorrector.cc.

References i, and mCorrectors.

{
  for (size_t i = 0; i < mCorrectors.size (); ++i) {
    if (mCorrectors[i]->refRequired ()) return true;
  }
  return false;
}

Member Data Documentation

std::vector<const JetCorrector*> ChainedJetCorrector::mCorrectors [private]

Definition at line 39 of file ChainedJetCorrector.h.

Referenced by clear(), correction(), eventRequired(), push_back(), and refRequired().