CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQMOffline/RecoB/interface/CorrectJet.h

Go to the documentation of this file.
00001 #ifndef CorrectJet_H
00002 #define CorrectJet_H
00003 
00004 #include <string>
00005 
00006 #include "FWCore/Framework/interface/EventSetup.h"
00007 #include "DataFormats/JetReco/interface/Jet.h"
00008 #include "JetMETCorrections/Objects/interface/JetCorrector.h"
00009 
00016 class CorrectJet {
00017 
00018  public:
00019   CorrectJet() {}
00020   CorrectJet(const std::string &corrector) :
00021                         m_corrector(0), m_correctorName(corrector) {}
00022 
00023   void setEventSetup(const edm::EventSetup & es)
00024   {
00025     if (!m_correctorName.empty())
00026       m_corrector = JetCorrector::getJetCorrector(m_correctorName, es);
00027     else
00028       m_corrector = 0;
00029   }
00030 
00032   reco::Jet operator() (const reco::Jet & jet) const
00033   {
00034     reco::Jet correctedJet(jet.p4(), jet.vertex());
00035     if (m_corrector)
00036       correctedJet.scaleEnergy(m_corrector->correction(jet));
00037     return correctedJet;
00038   }
00039 
00040  private:
00041   const JetCorrector *m_corrector;
00042   std::string m_correctorName;
00043 };
00044 
00045 #endif