CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/JetMETCorrections/Objects/interface/JetCorrector.h

Go to the documentation of this file.
00001 //
00002 // Original Author:  Fedor Ratnikov Dec 27, 2006
00003 // $Id: JetCorrector.h,v 1.7 2009/11/24 13:25:29 bainbrid Exp $
00004 //
00005 // Generic interface for JetCorrection services
00006 //
00007 #ifndef JetCorrector_h
00008 #define JetCorrector_h
00009 
00010 #include <string>
00011 #include "DataFormats/Common/interface/RefToBase.h"
00012 #include "DataFormats/JetReco/interface/Jet.h"
00013 
00015 namespace edm {
00016   class Event;
00017   class EventSetup;
00018 }
00019 
00020 class JetCorrector
00021 {
00022  public:
00023 
00024   typedef reco::Particle::LorentzVector LorentzVector;
00025  
00026   JetCorrector (){};
00027   virtual ~JetCorrector (){};
00028 
00030   virtual double correction (const LorentzVector& fJet) const = 0;
00031 
00033   virtual double correction (const reco::Jet& fJet) const = 0;
00034 
00036   virtual double correction (const reco::Jet& fJet,
00037                              const edm::RefToBase<reco::Jet>& fJetRef,
00038                              const edm::Event& fEvent, 
00039                              const edm::EventSetup& fSetup) const;
00040 
00042   virtual double correction ( const reco::Jet& fJet, 
00043                               const edm::RefToBase<reco::Jet>& fJetRef,
00044                               const edm::Event& fEvent, 
00045                               const edm::EventSetup& fSetup, 
00046                               LorentzVector& corrected ) const;
00047   
00049   virtual bool eventRequired () const = 0;
00050   
00052   inline virtual bool vectorialCorrection () const;
00053 
00055   static const JetCorrector* getJetCorrector (const std::string& fName, const edm::EventSetup& fSetup); 
00056 };
00057 
00058 // inline method
00059 inline bool JetCorrector::vectorialCorrection () const { return false; }
00060 
00061 #endif