1 #ifndef JetMETCorrections_JetCorrector_JetCorrector_h
2 #define JetMETCorrections_JetCorrector_JetCorrector_h
25 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
40 #if !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__)
48 return impl_->correction(fJet);
53 return impl_->correction(fJet);
59 return impl_->correction(fJet,fJetRef);
66 return impl_->correction(fJet,fJetRef,corrected);
71 return impl_->refRequired();
76 return impl_->vectorialCorrection();
93 std::unique_ptr<JetCorrectorImpl const>
impl_;
double correction(const reco::Jet &fJet, const edm::RefToBase< reco::Jet > &fJetRef, LorentzVector &corrected) const
Apply vectorial correction.
Base class for all types of Jets.
bool refRequired() const
if correction needs the jet reference
double correction(const LorentzVector &fJet) const
get correction using Jet information only
double correction(const reco::Jet &fJet, const edm::RefToBase< reco::Jet > &fJetRef) const
apply correction using Ref
JetCorrector & operator=(const JetCorrector &)=delete
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
double correction(const reco::Jet &fJet) const
apply correction using Jet information only
void swap(JetCorrector &iOther)
reco::Particle::LorentzVector LorentzVector
bool vectorialCorrection() const
if vectorial correction is provided
std::unique_ptr< JetCorrectorImpl const > impl_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
JetCorrector(std::unique_ptr< JetCorrectorImpl const > fImpl)