File indexing completed on 2024-04-06 12:27:04
0001 #ifndef RecoMuon_MuonIsolation_MuPFIsoHelper_H
0002 #define RecoMuon_MuonIsolation_MuPFIsoHelper_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <memory>
0013
0014
0015 #include "FWCore/Framework/interface/Frameworkfwd.h"
0016 #include "FWCore/Framework/interface/Event.h"
0017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0018 #include "DataFormats/MuonReco/interface/Muon.h"
0019 #include "DataFormats/Common/interface/Handle.h"
0020
0021 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0022 #include "DataFormats/Common/interface/ValueMap.h"
0023 #include "FWCore/Framework/interface/ConsumesCollector.h"
0024
0025 class MuPFIsoHelper {
0026 public:
0027 typedef edm::ValueMap<double> CandDoubleMap;
0028
0029 MuPFIsoHelper(const std::map<std::string, edm::ParameterSet>&, edm::ConsumesCollector&&);
0030
0031 void beginEvent(const edm::Event& iEvent);
0032
0033 int embedPFIsolation(reco::Muon&, reco::MuonRef&);
0034 reco::MuonPFIsolation makeIsoDeposit(reco::MuonRef&,
0035 const edm::Handle<CandDoubleMap>&,
0036 const edm::Handle<CandDoubleMap>&,
0037 const edm::Handle<CandDoubleMap>&,
0038 const edm::Handle<CandDoubleMap>&,
0039 const edm::Handle<CandDoubleMap>&,
0040 const edm::Handle<CandDoubleMap>&,
0041 const edm::Handle<CandDoubleMap>&);
0042
0043 ~MuPFIsoHelper();
0044
0045 private:
0046 std::map<std::string, edm::ParameterSet> labelMap_;
0047
0048 std::vector<edm::Handle<CandDoubleMap> > chargedParticle_;
0049 std::vector<edm::Handle<CandDoubleMap> > chargedHadron_;
0050 std::vector<edm::Handle<CandDoubleMap> > neutralHadron_;
0051 std::vector<edm::Handle<CandDoubleMap> > neutralHadronHighThreshold_;
0052 std::vector<edm::Handle<CandDoubleMap> > photon_;
0053 std::vector<edm::Handle<CandDoubleMap> > photonHighThreshold_;
0054 std::vector<edm::Handle<CandDoubleMap> > pu_;
0055
0056 std::vector<edm::EDGetTokenT<CandDoubleMap> > chargedParticleToken_;
0057 std::vector<edm::EDGetTokenT<CandDoubleMap> > chargedHadronToken_;
0058 std::vector<edm::EDGetTokenT<CandDoubleMap> > neutralHadronToken_;
0059 std::vector<edm::EDGetTokenT<CandDoubleMap> > neutralHadronHighThresholdToken_;
0060 std::vector<edm::EDGetTokenT<CandDoubleMap> > photonToken_;
0061 std::vector<edm::EDGetTokenT<CandDoubleMap> > photonHighThresholdToken_;
0062 std::vector<edm::EDGetTokenT<CandDoubleMap> > puToken_;
0063 };
0064 #endif