File indexing completed on 2024-04-06 12:19:23
0001 #ifndef JetMETCorrections_JetCorrector_JetCorrectorImpl_h
0002 #define JetMETCorrections_JetCorrector_JetCorrectorImpl_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #include "DataFormats/Common/interface/RefToBase.h"
0025 #include "DataFormats/JetReco/interface/Jet.h"
0026
0027
0028
0029 namespace reco {
0030
0031 class JetCorrectorImpl {
0032 public:
0033 JetCorrectorImpl();
0034 JetCorrectorImpl(const JetCorrectorImpl&) = delete;
0035 const JetCorrectorImpl& operator=(const JetCorrectorImpl&) = delete;
0036
0037 virtual ~JetCorrectorImpl();
0038
0039 typedef reco::Particle::LorentzVector LorentzVector;
0040
0041
0042
0043 virtual double correction(const LorentzVector& fJet) const = 0;
0044
0045
0046 virtual double correction(const reco::Jet& fJet) const = 0;
0047
0048
0049 virtual double correction(const reco::Jet& fJet, const edm::RefToBase<reco::Jet>& fJetRef) const;
0050
0051
0052 virtual double correction(const reco::Jet& fJet,
0053 const edm::RefToBase<reco::Jet>& fJetRef,
0054 LorentzVector& corrected) const;
0055
0056
0057 virtual bool refRequired() const = 0;
0058
0059
0060 virtual bool vectorialCorrection() const;
0061
0062
0063
0064
0065
0066 private:
0067
0068 };
0069 }
0070
0071 #endif