Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:23

0001 #ifndef JetMETCorrections_JetCorrector_JetCorrectorImpl_h
0002 #define JetMETCorrections_JetCorrector_JetCorrectorImpl_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     JetMETCorrections/JetCorrector
0006 // Class  :     JetCorrectorImpl
0007 //
0008 /**\class reco::JetCorrectorImpl JetCorrectorImpl.h "JetMETCorrections/JetCorrector/interface/JetCorrectorImpl.h"
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Christopher Jones
0018 //         Created:  Fri, 29 Aug 2014 15:42:44 GMT
0019 //
0020 
0021 // system include files
0022 
0023 // user include files
0024 #include "DataFormats/Common/interface/RefToBase.h"
0025 #include "DataFormats/JetReco/interface/Jet.h"
0026 
0027 // forward declarations
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     // ---------- const member functions ---------------------
0042     /// get correction using Jet information only
0043     virtual double correction(const LorentzVector& fJet) const = 0;
0044 
0045     /// apply correction using Jet information only
0046     virtual double correction(const reco::Jet& fJet) const = 0;
0047 
0048     /// apply correction using Ref
0049     virtual double correction(const reco::Jet& fJet, const edm::RefToBase<reco::Jet>& fJetRef) const;
0050 
0051     /// Apply vectorial correction
0052     virtual double correction(const reco::Jet& fJet,
0053                               const edm::RefToBase<reco::Jet>& fJetRef,
0054                               LorentzVector& corrected) const;
0055 
0056     /// if correction needs the jet reference
0057     virtual bool refRequired() const = 0;
0058 
0059     /// if vectorial correction is provided
0060     virtual bool vectorialCorrection() const;
0061 
0062     // ---------- static member functions --------------------
0063 
0064     // ---------- member functions ---------------------------
0065 
0066   private:
0067     // ---------- member data --------------------------------
0068   };
0069 }  // namespace reco
0070 
0071 #endif