CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
LXXXCorrectorImpl Class Reference

#include <LXXXCorrectorImpl.h>

Inheritance diagram for LXXXCorrectorImpl:
reco::JetCorrectorImpl

Public Types

typedef LXXXCorrectorImplMaker Maker
 
- Public Types inherited from reco::JetCorrectorImpl
typedef
reco::Particle::LorentzVector 
LorentzVector
 

Public Member Functions

virtual double correction (const LorentzVector &fJet) const override
 get correction using Jet information only More...
 
virtual double correction (const reco::Jet &fJet) const override
 apply correction using Jet information only More...
 
 LXXXCorrectorImpl (std::shared_ptr< FactorizedJetCorrectorCalculator const > calculator, unsigned int level)
 
virtual bool refRequired () const override
 if correction needs the jet reference More...
 
- Public Member Functions inherited from reco::JetCorrectorImpl
virtual double correction (const reco::Jet &fJet, const edm::RefToBase< reco::Jet > &fJetRef) const
 apply correction using Ref More...
 
virtual double correction (const reco::Jet &fJet, const edm::RefToBase< reco::Jet > &fJetRef, LorentzVector &corrected) const
 Apply vectorial correction. More...
 
 JetCorrectorImpl ()
 
virtual bool vectorialCorrection () const
 if vectorial correction is provided More...
 
virtual ~JetCorrectorImpl ()
 

Private Attributes

std::shared_ptr
< FactorizedJetCorrectorCalculator
const > 
mCorrector
 
unsigned int mLevel
 

Detailed Description

Definition at line 30 of file LXXXCorrectorImpl.h.

Member Typedef Documentation

Definition at line 33 of file LXXXCorrectorImpl.h.

Constructor & Destructor Documentation

LXXXCorrectorImpl::LXXXCorrectorImpl ( std::shared_ptr< FactorizedJetCorrectorCalculator const >  calculator,
unsigned int  level 
)

Definition at line 59 of file LXXXCorrectorImpl.cc.

59  :
60  mLevel(level),
61  mCorrector(calculator)
62 {
63 }
tuple level
Definition: testEve_cfg.py:34
std::shared_ptr< FactorizedJetCorrectorCalculator const > mCorrector

Member Function Documentation

double LXXXCorrectorImpl::correction ( const LorentzVector fJet) const
overridevirtual

get correction using Jet information only

Implements reco::JetCorrectorImpl.

Definition at line 67 of file LXXXCorrectorImpl.cc.

References Exception, mCorrector, mLevel, FactorizedJetCorrectorCalculator::VariableValues::setJetE(), FactorizedJetCorrectorCalculator::VariableValues::setJetEta(), FactorizedJetCorrectorCalculator::VariableValues::setJetPhi(), FactorizedJetCorrectorCalculator::VariableValues::setJetPt(), and makeHLTPrescaleTable::values.

Referenced by correction().

68 {
69  // L4 correction requires more information than a simple 4-vector
70  if (mLevel == 4) {
71  throw cms::Exception("Invalid jet type") << "L4EMFCorrection is applicable to CaloJets only";
72  return 1;
73  }
74 
76  values.setJetEta(fJet.eta());
77  values.setJetE(fJet.energy());
78  values.setJetPt(fJet.pt());
79  values.setJetPhi(fJet.phi());
80 
81  return mCorrector->getCorrection(values);
82 }
std::shared_ptr< FactorizedJetCorrectorCalculator const > mCorrector
double LXXXCorrectorImpl::correction ( const reco::Jet fJet) const
overridevirtual

apply correction using Jet information only

Implements reco::JetCorrectorImpl.

Definition at line 86 of file LXXXCorrectorImpl.cc.

References correction(), reco::CaloJet::emEnergyFraction(), reco::LeafCandidate::eta(), mCorrector, mLevel, reco::LeafCandidate::p4(), reco::LeafCandidate::pt(), query::result, and makeHLTPrescaleTable::values.

87 {
88  double result = 1.;
89  // L4 correction applies to Calojets only
90  if (mLevel == 4) {
91  const reco::CaloJet& caloJet = dynamic_cast <const reco::CaloJet&> (fJet);
93  values.setJetEta(fJet.eta());
94  values.setJetPt(fJet.pt());
95  values.setJetEMF(caloJet.emEnergyFraction());
96  result = mCorrector->getCorrection(values);
97  }
98  else
99  result = correction(fJet.p4());
100  return result;
101 }
Jets made from CaloTowers.
Definition: CaloJet.h:29
virtual double eta() const
momentum pseudorapidity
virtual double pt() const
transverse momentum
tuple result
Definition: query.py:137
virtual double correction(const LorentzVector &fJet) const override
get correction using Jet information only
std::shared_ptr< FactorizedJetCorrectorCalculator const > mCorrector
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
float emEnergyFraction() const
Definition: CaloJet.h:102
virtual bool LXXXCorrectorImpl::refRequired ( ) const
inlineoverridevirtual

if correction needs the jet reference

Implements reco::JetCorrectorImpl.

Definition at line 45 of file LXXXCorrectorImpl.h.

45 { return false; }

Member Data Documentation

std::shared_ptr<FactorizedJetCorrectorCalculator const> LXXXCorrectorImpl::mCorrector
private

Definition at line 50 of file LXXXCorrectorImpl.h.

Referenced by correction().

unsigned int LXXXCorrectorImpl::mLevel
private

Definition at line 49 of file LXXXCorrectorImpl.h.

Referenced by correction().