File indexing completed on 2024-04-06 12:26:48
0001 #ifndef RecoMET_METPUSubtraction_NoPileUpPFMEtProducer_h
0002 #define RecoMET_METPUSubtraction_NoPileUpPFMEtProducer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "FWCore/Framework/interface/Frameworkfwd.h"
0014 #include "FWCore/Framework/interface/stream/EDProducer.h"
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017
0018 #include "RecoMET/METPUSubtraction/interface/PFMEtSignInterfaceBase.h"
0019 #include "RecoMET/METPUSubtraction/interface/NoPileUpMEtUtilities.h"
0020
0021 #include "DataFormats/METReco/interface/PFMET.h"
0022 #include "DataFormats/METReco/interface/PFMETFwd.h"
0023 #include "DataFormats/VertexReco/interface/Vertex.h"
0024 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0025 #include "DataFormats/Candidate/interface/Candidate.h"
0026 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0027
0028 #include <vector>
0029
0030 class NoPileUpPFMEtProducer : public edm::stream::EDProducer<> {
0031 public:
0032 NoPileUpPFMEtProducer(const edm::ParameterSet&);
0033 ~NoPileUpPFMEtProducer() override;
0034
0035 private:
0036 void produce(edm::Event&, const edm::EventSetup&) override;
0037
0038 std::string moduleLabel_;
0039
0040 edm::EDGetTokenT<reco::PFMETCollection> srcMEt_;
0041 edm::InputTag srcMEtCov_;
0042 edm::EDGetTokenT<reco::PUSubMETCandInfoCollection> srcJetInfo_;
0043 edm::EDGetTokenT<reco::PUSubMETCandInfoCollection> srcJetInfoLeptonMatch_;
0044 edm::EDGetTokenT<reco::PUSubMETCandInfoCollection> srcPFCandInfo_;
0045 edm::EDGetTokenT<reco::PUSubMETCandInfoCollection> srcPFCandInfoLeptonMatch_;
0046 typedef std::vector<edm::InputTag> vInputTag;
0047 std::vector<edm::EDGetTokenT<reco::CandidateView> > srcLeptons_;
0048
0049 edm::EDGetTokenT<CorrMETData> srcType0Correction_;
0050
0051 double sfNoPUjets_;
0052 double sfNoPUjetOffsetEnCorr_;
0053 double sfPUjets_;
0054 double sfNoPUunclChargedCands_;
0055 double sfPUunclChargedCands_;
0056 double sfUnclNeutralCands_;
0057 double sfType0Correction_;
0058 double sfLeptonIsoCones_;
0059
0060 std::string sfLeptonsName_;
0061 std::string sfNoPUjetsName_;
0062 std::string sfNoPUjetOffsetEnCorrName_;
0063 std::string sfPUjetsName_;
0064 std::string sfNoPUunclChargedCandsName_;
0065 std::string sfPUunclChargedCandsName_;
0066 std::string sfUnclNeutralCandsName_;
0067 std::string sfType0CorrectionName_;
0068 std::string sfLeptonIsoConesName_;
0069
0070 PFMEtSignInterfaceBase* pfMEtSignInterface_;
0071 double sfMEtCovMin_;
0072 double sfMEtCovMax_;
0073
0074 bool saveInputs_;
0075
0076 int verbosity_;
0077
0078 NoPileUpMEtUtilities utils_;
0079 };
0080
0081 #endif