Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef JetMETCorrections_Type1MET_AddCorrectionsToGenericMET_h
0002 #define JetMETCorrections_Type1MET_AddCorrectionsToGenericMET_h
0003 
0004 /** \class AddCorrectionsToGenericMET
0005 *
0006 * generic class for MET corrections 
0007 *
0008 * \authors Matthieu Marionneau, ETHZ
0009 *
0010 */
0011 
0012 #include "FWCore/Framework/interface/Frameworkfwd.h"
0013 #include "FWCore/Framework/interface/EDConsumerBase.h"
0014 #include "FWCore/Framework/interface/Event.h"
0015 #include "FWCore/Framework/interface/EventSetup.h"
0016 #include "FWCore/Framework/interface/MakerMacros.h"
0017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0018 #include "DataFormats/Candidate/interface/Candidate.h"
0019 #include "FWCore/Utilities/interface/InputTag.h"
0020 
0021 #include "DataFormats/METReco/interface/MET.h"
0022 #include "DataFormats/METReco/interface/PFMET.h"
0023 #include "DataFormats/METReco/interface/CaloMET.h"
0024 
0025 #include "DataFormats/METReco/interface/CorrMETData.h"
0026 
0027 class AddCorrectionsToGenericMET {
0028 public:
0029   AddCorrectionsToGenericMET(){};
0030   ~AddCorrectionsToGenericMET(){};
0031 
0032   void setCorTokens(std::vector<edm::EDGetTokenT<CorrMETData> > const& corrTokens);
0033 
0034   reco::MET getCorrectedMET(const reco::MET& srcMET, edm::Event& evt);
0035   reco::PFMET getCorrectedPFMET(const reco::PFMET& srcMET, edm::Event& evt);
0036   reco::CaloMET getCorrectedCaloMET(const reco::CaloMET& srcMET, edm::Event& evt);
0037 
0038 private:
0039   CorrMETData getCorrection(const reco::MET& srcMET, edm::Event& evt);
0040 
0041   std::vector<edm::EDGetTokenT<CorrMETData> > corrTokens_;
0042   reco::Candidate::LorentzVector constructP4From(const reco::MET& met, const CorrMETData& correction);
0043 };
0044 
0045 #endif