diff --git a/DataFormats/HLTReco/interface/TriggerEventWithRefs.h b/DataFormats/HLTReco/interface/TriggerEventWithRefs.h index 64a386e5dbe8b..1d82c2ea8d03d 100644 --- a/DataFormats/HLTReco/interface/TriggerEventWithRefs.h +++ b/DataFormats/HLTReco/interface/TriggerEventWithRefs.h @@ -52,17 +52,18 @@ namespace trigger size_type l1hfrings_; size_type pfjets_; size_type pftaus_; + size_type pfmets_; /// constructor TriggerFilterObject() : filterTag_(), - photons_(0), electrons_(0), muons_(0), jets_(0), composites_(0), basemets_(0), calomets_(0), pixtracks_(0), l1em_(0), l1muon_(0), l1jet_(0), l1etmiss_(0), l1hfrings_(0), pfjets_(0), pftaus_(0) { + photons_(0), electrons_(0), muons_(0), jets_(0), composites_(0), basemets_(0), calomets_(0), pixtracks_(0), l1em_(0), l1muon_(0), l1jet_(0), l1etmiss_(0), l1hfrings_(0), pfjets_(0), pftaus_(0), pfmets_(0) { filterTag_=edm::InputTag().encode(); } TriggerFilterObject(const edm::InputTag& filterTag, - size_type np, size_type ne, size_type nm, size_type nj, size_type nc, size_type nB, size_type nC, size_type nt, size_type l1em, size_type l1muon, size_type l1jet, size_type l1etmiss, size_type l1hfrings, size_type pfjets, size_type pftaus) : + size_type np, size_type ne, size_type nm, size_type nj, size_type nc, size_type nB, size_type nC, size_type nt, size_type l1em, size_type l1muon, size_type l1jet, size_type l1etmiss, size_type l1hfrings, size_type pfjets, size_type pftaus, size_type pfmets) : filterTag_(filterTag.encode()), - photons_(np), electrons_(ne), muons_(nm), jets_(nj), composites_(nc), basemets_(nB), calomets_(nC), pixtracks_(nt), l1em_(l1em), l1muon_(l1muon), l1jet_(l1jet), l1etmiss_(l1etmiss), l1hfrings_(l1hfrings), pfjets_(pfjets), pftaus_(pftaus) { } + photons_(np), electrons_(ne), muons_(nm), jets_(nj), composites_(nc), basemets_(nB), calomets_(nC), pixtracks_(nt), l1em_(l1em), l1muon_(l1muon), l1jet_(l1jet), l1etmiss_(l1etmiss), l1hfrings_(l1hfrings), pfjets_(pfjets), pftaus_(pftaus), pfmets_(pfmets) { } }; /// data members @@ -102,7 +103,8 @@ namespace trigger addObjects(tfowr.l1etmissIds(),tfowr.l1etmissRefs()), addObjects(tfowr.l1hfringsIds(),tfowr.l1hfringsRefs()), addObjects(tfowr.pfjetIds(),tfowr.pfjetRefs()), - addObjects(tfowr.pftauIds(),tfowr.pftauRefs()) + addObjects(tfowr.pftauIds(),tfowr.pftauRefs()), + addObjects(tfowr.pfmetIds(),tfowr.pfmetRefs()) ) ); } @@ -220,6 +222,12 @@ namespace trigger return std::pair(begin,end); } + std::pair pfmetSlice(size_type filter) const { + const size_type begin(filter==0? 0 : filterObjects_.at(filter-1).pfmets_); + const size_type end(filterObjects_.at(filter).pfmets_); + return std::pair(begin,end); + } + /// extract Refs for a specific filter and of specific physics type @@ -388,6 +396,17 @@ namespace trigger TriggerRefsCollections::getObjects(id,pftaus,begin,end); } + void getObjects(size_type filter, Vids& ids, VRpfmet& pfmets) const { + const size_type begin(pfmetSlice(filter).first); + const size_type end(pfmetSlice(filter).second); + TriggerRefsCollections::getObjects(ids,pfmets,begin,end); + } + void getObjects(size_type filter, int id, VRpfmet& pfmets) const { + const size_type begin(pfmetSlice(filter).first); + const size_type end(pfmetSlice(filter).second); + TriggerRefsCollections::getObjects(id,pfmets,begin,end); + } + }; } diff --git a/DataFormats/HLTReco/interface/TriggerRefsCollections.h b/DataFormats/HLTReco/interface/TriggerRefsCollections.h index f88f50ec772c6..02b0bffc3917b 100644 --- a/DataFormats/HLTReco/interface/TriggerRefsCollections.h +++ b/DataFormats/HLTReco/interface/TriggerRefsCollections.h @@ -29,6 +29,7 @@ #include "DataFormats/Candidate/interface/CompositeCandidateFwd.h" #include "DataFormats/METReco/interface/METFwd.h" #include "DataFormats/METReco/interface/CaloMETFwd.h" +#include "DataFormats/METReco/interface/PFMETFwd.h" #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidateFwd.h" #include "DataFormats/L1Trigger/interface/L1HFRingsFwd.h" @@ -65,6 +66,7 @@ namespace trigger typedef std::vector VRpfjet; typedef std::vector VRpftau; + typedef std::vector VRpfmet; class TriggerRefsCollections { @@ -103,6 +105,8 @@ namespace trigger VRpfjet pfjetRefs_; Vids pftauIds_; VRpftau pftauRefs_; + Vids pfmetIds_; + VRpfmet pfmetRefs_; /// methods public: @@ -124,7 +128,8 @@ namespace trigger l1hfringsIds_(), l1hfringsRefs_(), pfjetIds_(), pfjetRefs_(), - pftauIds_(), pftauRefs_() + pftauIds_(), pftauRefs_(), + pfmetIds_(), pfmetRefs_() { } /// utility @@ -161,6 +166,8 @@ namespace trigger std::swap(pfjetRefs_, other.pfjetRefs_); std::swap(pftauIds_, other.pftauIds_); std::swap(pftauRefs_, other.pftauRefs_); + std::swap(pfmetIds_, other.pfmetIds_); + std::swap(pfmetRefs_, other.pfmetRefs_); } /// setters for L3 collections: (id=physics type, and Ref) @@ -226,6 +233,10 @@ namespace trigger pftauIds_.push_back(id); pftauRefs_.push_back(ref); } + void addObject(int id, const reco::PFMETRef& ref) { + pfmetIds_.push_back(id); + pfmetRefs_.push_back(ref); + } /// size_type addObjects (const Vids& ids, const VRphoton& refs) { @@ -320,6 +331,12 @@ namespace trigger pftauRefs_.insert(pftauRefs_.end(),refs.begin(),refs.end()); return pftauIds_.size(); } + size_type addObjects (const Vids& ids, const VRpfmet& refs) { + assert(ids.size()==refs.size()); + pfmetIds_.insert(pfmetIds_.end(),ids.begin(),ids.end()); + pfmetRefs_.insert(pfmetRefs_.end(),refs.begin(),refs.end()); + return pfmetIds_.size(); + } /// various physics-level getters: void getObjects(Vids& ids, VRphoton& refs) const { @@ -802,6 +819,38 @@ namespace trigger return; } + void getObjects(Vids& ids, VRpfmet& refs) const { + getObjects(ids,refs,0,pfmetIds_.size()); + } + void getObjects(Vids& ids, VRpfmet& refs, size_type begin, size_type end) const { + assert (begin<=end); + assert (end<=pfmetIds_.size()); + const size_type n(end-begin); + ids.resize(n); + refs.resize(n); + size_type j(0); + for (size_type i=begin; i!=end; ++i) { + ids[j]=pfmetIds_[i]; + refs[j]=pfmetRefs_[i]; + ++j; + } + } + void getObjects(int id, VRpfmet& refs) const { + getObjects(id,refs,0,pfmetIds_.size()); + } + void getObjects(int id, VRpfmet& refs, size_type begin, size_type end) const { + assert (begin<=end); + assert (end<=pfmetIds_.size()); + size_type n(0); + for (size_type i=begin; i!=end; ++i) {if (id==pfmetIds_[i]) {++n;}} + refs.resize(n); + size_type j(0); + for (size_type i=begin; i!=end; ++i) { + if (id==pfmetIds_[i]) {refs[j]=pfmetRefs_[i]; ++j;} + } + return; + } + /// low-level getters for data members size_type photonSize() const {return photonIds_.size();} const Vids& photonIds() const {return photonIds_;} @@ -863,6 +912,10 @@ namespace trigger const Vids& pftauIds() const {return pftauIds_;} const VRpftau& pftauRefs() const {return pftauRefs_;} + size_type pfmetSize() const {return pfmetIds_.size();} + const Vids& pfmetIds() const {return pfmetIds_;} + const VRpfmet& pfmetRefs() const {return pfmetRefs_;} + }; // picked up via argument dependent lookup, e-g- by boost::swap() diff --git a/DataFormats/HLTReco/src/classes_def.xml b/DataFormats/HLTReco/src/classes_def.xml index 9bb31edbac4a4..c8e8a43132b6f 100755 --- a/DataFormats/HLTReco/src/classes_def.xml +++ b/DataFormats/HLTReco/src/classes_def.xml @@ -42,10 +42,12 @@ - + + - + + @@ -58,11 +60,13 @@ - + + - + + diff --git a/HLTrigger/HLTcore/interface/HLTEventAnalyzerRAW.h b/HLTrigger/HLTcore/interface/HLTEventAnalyzerRAW.h index 0aa4995cef45b..020056c81203b 100644 --- a/HLTrigger/HLTcore/interface/HLTEventAnalyzerRAW.h +++ b/HLTrigger/HLTcore/interface/HLTEventAnalyzerRAW.h @@ -85,6 +85,8 @@ class HLTEventAnalyzerRAW : public edm::stream::EDAnalyzer< > { trigger::VRpfjet pfjetRefs_; trigger::Vids pftauIds_; trigger::VRpftau pftauRefs_; + trigger::Vids pfmetIds_; + trigger::VRpfmet pfmetRefs_; }; #endif diff --git a/HLTrigger/HLTcore/interface/TriggerSummaryProducerAOD.h b/HLTrigger/HLTcore/interface/TriggerSummaryProducerAOD.h index 93c0fb3d1e8bd..580940062dc3b 100644 --- a/HLTrigger/HLTcore/interface/TriggerSummaryProducerAOD.h +++ b/HLTrigger/HLTcore/interface/TriggerSummaryProducerAOD.h @@ -27,6 +27,7 @@ #include "DataFormats/L1Trigger/interface/L1EtMissParticleFwd.h" #include "DataFormats/METReco/interface/METFwd.h" #include "DataFormats/METReco/interface/CaloMETFwd.h" +#include "DataFormats/METReco/interface/PFMETFwd.h" #include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h" #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" @@ -35,6 +36,7 @@ #include "DataFormats/Candidate/interface/CompositeCandidateFwd.h" #include "DataFormats/METReco/interface/METCollection.h" #include "DataFormats/METReco/interface/CaloMETCollection.h" +#include "DataFormats/METReco/interface/PFMETCollection.h" #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidateFwd.h" #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h" #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h" @@ -100,6 +102,7 @@ class TriggerSummaryProducerAOD : public edm::stream::EDProducer&); void fillFilterObjectMember(const int&, const int&, const edm::Ref&); void fillFilterObjectMember(const int&, const int&, const edm::Ref&); + void fillFilterObjectMember(const int&, const int&, const edm::Ref&); void fillFilterObjectMember(const int&, const int&, const edm::Ref&); void fillFilterObjectMember(const int&, const int&, const edm::Ref&); @@ -167,6 +171,7 @@ class TriggerSummaryProducerAOD : public edm::stream::EDProducer getCompositeCandidateCollection_; edm::GetterOfProducts getMETCollection_; edm::GetterOfProducts getCaloMETCollection_; + edm::GetterOfProducts getPFMETCollection_; edm::GetterOfProducts getIsolatedPixelTrackCandidateCollection_; edm::GetterOfProducts getL1EmParticleCollection_; edm::GetterOfProducts getL1MuonParticleCollection_; diff --git a/HLTrigger/HLTcore/plugins/HLTEventAnalyzerRAW.cc b/HLTrigger/HLTcore/plugins/HLTEventAnalyzerRAW.cc index f3f7670d73219..64a57f606f97e 100644 --- a/HLTrigger/HLTcore/plugins/HLTEventAnalyzerRAW.cc +++ b/HLTrigger/HLTcore/plugins/HLTEventAnalyzerRAW.cc @@ -21,6 +21,7 @@ #include "DataFormats/Candidate/interface/CompositeCandidate.h" #include "DataFormats/METReco/interface/MET.h" #include "DataFormats/METReco/interface/CaloMET.h" +#include "DataFormats/METReco/interface/PFMET.h" #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidate.h" #include "DataFormats/L1Trigger/interface/L1HFRings.h" #include "DataFormats/L1Trigger/interface/L1EmParticle.h" @@ -211,6 +212,8 @@ void HLTEventAnalyzerRAW::analyzeTrigger(const edm::Event& iEvent, const edm::Ev pfjetRefs_.clear(); pftauIds_.clear(); pftauRefs_.clear(); + pfmetIds_.clear(); + pfmetRefs_.clear(); // Attention: must look only for modules actually run in this path // for this event! @@ -396,6 +399,17 @@ void HLTEventAnalyzerRAW::analyzeTrigger(const edm::Event& iEvent, const edm::Ev } } + triggerEventWithRefsHandle_->getObjects(filterIndex,pfmetIds_,pfmetRefs_); + const unsigned int nPfMETs(pfmetIds_.size()); + if (nPfMETs>0) { + LogVerbatim("HLTEventAnalyzerRAW") << " PfMETs: " << nPfMETs << " - the objects: # id pt" << endl; + for (unsigned int i=0; i!=nPfMETs; ++i) { + LogVerbatim("HLTEventAnalyzerRAW") << " " << i << " " << pfmetIds_[i] + << " " << pfmetRefs_[i]->pt() + << endl; + } + } + } } diff --git a/HLTrigger/HLTcore/plugins/TriggerSummaryAnalyzerRAW.cc b/HLTrigger/HLTcore/plugins/TriggerSummaryAnalyzerRAW.cc index f1368612e51be..e7f0a4836284f 100644 --- a/HLTrigger/HLTcore/plugins/TriggerSummaryAnalyzerRAW.cc +++ b/HLTrigger/HLTcore/plugins/TriggerSummaryAnalyzerRAW.cc @@ -117,6 +117,10 @@ TriggerSummaryAnalyzerRAW::analyze(const edm::Event& iEvent, const edm::EventSet handle->pftauSlice(iFO).first); if (nPFTaus>0) LogVerbatim("TriggerSummaryAnalyzerRAW") << " PFTaus: " << nPFTaus; + const unsigned int nPFMETs(handle->pfmetSlice(iFO).second- + handle->pfmetSlice(iFO).first); + if (nPFMETs>0) LogVerbatim("TriggerSummaryAnalyzerRAW") << " PFMETs: " << nPFMETs; + LogVerbatim("TriggerSummaryAnalyzerRAW") << endl; } LogVerbatim("TriggerSummaryAnalyzerRAW") << "Elements in linearised collections of Refs: " << endl; @@ -135,6 +139,7 @@ TriggerSummaryAnalyzerRAW::analyze(const edm::Event& iEvent, const edm::EventSet LogVerbatim("TriggerSummaryAnalyzerRAW") << " L1HfRings: " << handle->l1hfringsSize() << endl; LogVerbatim("TriggerSummaryAnalyzerRAW") << " PFJets: " << handle->pfjetSize() << endl; LogVerbatim("TriggerSummaryAnalyzerRAW") << " PFTaus: " << handle->pftauSize() << endl; + LogVerbatim("TriggerSummaryAnalyzerRAW") << " PFMETs: " << handle->pfmetSize() << endl; } else { LogVerbatim("TriggerSummaryAnalyzerRAW") << "Handle invalid! Check InputTag provided." << endl; } diff --git a/HLTrigger/HLTcore/plugins/TriggerSummaryProducerAOD.cc b/HLTrigger/HLTcore/plugins/TriggerSummaryProducerAOD.cc index a88c6354599f8..9d73b80dba782 100644 --- a/HLTrigger/HLTcore/plugins/TriggerSummaryProducerAOD.cc +++ b/HLTrigger/HLTcore/plugins/TriggerSummaryProducerAOD.cc @@ -30,6 +30,8 @@ #include "DataFormats/METReco/interface/METFwd.h" #include "DataFormats/METReco/interface/CaloMET.h" #include "DataFormats/METReco/interface/CaloMETFwd.h" +#include "DataFormats/METReco/interface/PFMET.h" +#include "DataFormats/METReco/interface/PFMETFwd.h" #include "DataFormats/HcalIsolatedTrack/interface/IsolatedPixelTrackCandidate.h" #include "DataFormats/L1Trigger/interface/L1HFRings.h" @@ -97,6 +99,7 @@ TriggerSummaryProducerAOD::TriggerSummaryProducerAOD(const edm::ParameterSet& ps getL1HFRingsCollection_ = edm::GetterOfProducts(edm::ProcessMatch(pn_), this); getPFJetCollection_ = edm::GetterOfProducts(edm::ProcessMatch(pn_), this); getPFTauCollection_ = edm::GetterOfProducts(edm::ProcessMatch(pn_), this); + getPFMETCollection_ = edm::GetterOfProducts(edm::ProcessMatch(pn_), this); callWhenNewProductsRegistered([this](edm::BranchDescription const& bd){ getTriggerFilterObjectWithRefs_(bd); @@ -115,6 +118,7 @@ TriggerSummaryProducerAOD::TriggerSummaryProducerAOD(const edm::ParameterSet& ps getL1HFRingsCollection_(bd); getPFJetCollection_(bd); getPFTauCollection_(bd); + getPFMETCollection_(bd); }); } @@ -264,6 +268,7 @@ TriggerSummaryProducerAOD::produce(edm::Event& iEvent, const edm::EventSetup& iS /// fillTriggerObjectCollections< PFJetCollection>(iEvent, getPFJetCollection_); fillTriggerObjectCollections< PFTauCollection>(iEvent, getPFTauCollection_); + fillTriggerObjectCollections< PFMETCollection>(iEvent, getPFMETCollection_); /// const unsigned int nk(tags_.size()); LogDebug("TriggerSummaryProducerAOD") << "Number of collections found: " << nk; @@ -302,6 +307,7 @@ TriggerSummaryProducerAOD::produce(edm::Event& iEvent, const edm::EventSetup& iS fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->l1hfringsIds(),fobs[ifob]->l1hfringsRefs()); fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pfjetIds() ,fobs[ifob]->pfjetRefs()); fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pftauIds() ,fobs[ifob]->pftauRefs()); + fillFilterObjectMembers(iEvent,filterTag,fobs[ifob]->pfmetIds() ,fobs[ifob]->pfmetRefs()); product->addFilter(filterTag,ids_,keys_); } } @@ -398,6 +404,19 @@ void TriggerSummaryProducerAOD::fillTriggerObject(const l1extra::L1EtMissParticl return; } +void TriggerSummaryProducerAOD::fillTriggerObject(const reco::PFMET& object) { + + using namespace reco; + using namespace trigger; + + toc_.push_back( TriggerObject(object) ); + toc_.push_back(TriggerObject(TriggerTET ,object.sumEt() ,0.0,0.0,0.0)); + toc_.push_back(TriggerObject(TriggerMETSig ,object.mEtSig() ,0.0,0.0,0.0)); + toc_.push_back(TriggerObject(TriggerELongit,object.e_longitudinal(),0.0,0.0,0.0)); + + return; +} + void TriggerSummaryProducerAOD::fillTriggerObject(const reco::CaloMET& object) { using namespace reco; @@ -511,6 +530,24 @@ void TriggerSummaryProducerAOD::fillFilterObjectMember(const int& offset, const return; } +void TriggerSummaryProducerAOD::fillFilterObjectMember(const int& offset, const int& id, const edm::Ref & ref) { + + using namespace trigger; + + if ( (id==TriggerTHT) || (id==TriggerTET) ) { + keys_.push_back(offset+4*ref.key()+1); + } else if ( (id==TriggerMETSig) || (id==TriggerMHTSig) ) { + keys_.push_back(offset+4*ref.key()+2); + } else if ( (id==TriggerELongit) || (id==TriggerHLongit) ) { + keys_.push_back(offset+4*ref.key()+3); + } else { + keys_.push_back(offset+4*ref.key()+0); + } + ids_.push_back(id); + + return; +} + void TriggerSummaryProducerAOD::fillFilterObjectMember(const int& offset, const int& id, const edm::Ref & ref) { using namespace trigger; diff --git a/HLTrigger/HLTcore/plugins/TriggerSummaryProducerRAW.cc b/HLTrigger/HLTcore/plugins/TriggerSummaryProducerRAW.cc index 46c017c242dfd..786d16bb6c09b 100644 --- a/HLTrigger/HLTcore/plugins/TriggerSummaryProducerRAW.cc +++ b/HLTrigger/HLTcore/plugins/TriggerSummaryProducerRAW.cc @@ -104,6 +104,7 @@ TriggerSummaryProducerRAW::produce(edm::Event& iEvent, const edm::EventSetup&) << " D/" << fobs[ifob]->l1hfringsSize() << " E/" << fobs[ifob]->pfjetSize() << " F/" << fobs[ifob]->pftauSize() + << " G/" << fobs[ifob]->pfmetSize() << endl; product->addFilterObject(tag,*fobs[ifob]); } diff --git a/HLTrigger/HLTfilters/src/SealModule.cc b/HLTrigger/HLTfilters/src/SealModule.cc index 372660e5e1347..7c7845054114b 100644 --- a/HLTrigger/HLTfilters/src/SealModule.cc +++ b/HLTrigger/HLTfilters/src/SealModule.cc @@ -18,6 +18,8 @@ #include "DataFormats/JetReco/interface/CaloJetCollection.h" #include "DataFormats/Candidate/interface/CompositeCandidate.h" #include "DataFormats/Candidate/interface/CompositeCandidateFwd.h" +#include "DataFormats/METReco/interface/PFMET.h" +#include "DataFormats/METReco/interface/PFMETFwd.h" #include "DataFormats/METReco/interface/CaloMET.h" #include "DataFormats/METReco/interface/CaloMETFwd.h" #include "DataFormats/METReco/interface/MET.h" @@ -52,6 +54,7 @@ typedef HLTSinglet HLT1MET ; //typedef HLTSinglet HLT1Cluster ; typedef HLTSinglet HLT1PFTau ; typedef HLTSinglet HLT1PFJet ; +typedef HLTSinglet HLT1PFMET ; // filters for L1 candidates typedef HLTSinglet HLTLevel1EG; // the actual type is ovrridden object-by-object (TriggerL1IsoEG or TriggerL1NoIsoEG) @@ -71,11 +74,13 @@ typedef HLTSmartSinglet HLT1SmartCaloMET ; typedef HLTSmartSinglet HLT1SmartMET ; typedef HLTSmartSinglet HLT1SmartPFTau ; typedef HLTSmartSinglet HLT1SmartPFJet ; +typedef HLTSmartSinglet HLT1SmartPFMET ; #include "HLTrigger/HLTfilters/interface/HLTGlobalSums.h" #include "HLTrigger/HLTfilters/src/HLTGlobalSums.cc" +typedef HLTGlobalSums HLTGlobalSumsPFMET; typedef HLTGlobalSums HLTGlobalSumsCaloMET; typedef HLTGlobalSums HLTGlobalSumsMET ; @@ -88,6 +93,7 @@ typedef HLTDoublet HLT2CaloJetMET; typedef HLTDoublet< PFJet, PFJet> HLT2PFJetPFJet; typedef HLTDoublet< PFJet,CaloMET> HLT2PFJetCaloMET; typedef HLTDoublet< PFJet, MET> HLT2PFJetMET; +typedef HLTDoublet< PFJet, PFMET> HLT2PFJetPFMET; typedef HLTDoublet HLT2ElectronTau; typedef HLTDoublet HLT2PhotonTau; @@ -106,7 +112,10 @@ typedef HLTDoublet HLT2ElectronCaloMET; typedef HLTDoublet HLT2MuonCaloMET; typedef HLTDoublet HLT2ElectronMET; typedef HLTDoublet HLT2MuonMET; -typedef HLTDoublet HLT2PhotonMET; +typedef HLTDoublet HLT2ElectronPFMET; +typedef HLTDoublet HLT2MuonPFMET; +typedef HLTDoublet HLT2PhotonMET; +typedef HLTDoublet HLT2PhotonPFMET; DEFINE_FWK_MODULE(HLTBool); DEFINE_FWK_MODULE(HLTFiltCand); @@ -118,6 +127,7 @@ DEFINE_FWK_MODULE(HLT2CaloJetMET); DEFINE_FWK_MODULE(HLT2PFJetPFJet); DEFINE_FWK_MODULE(HLT2PFJetCaloMET); DEFINE_FWK_MODULE(HLT2PFJetMET); +DEFINE_FWK_MODULE(HLT2PFJetPFMET); DEFINE_FWK_MODULE(HLT2ElectronTau); DEFINE_FWK_MODULE(HLT2PhotonTau); DEFINE_FWK_MODULE(HLT2MuonTau); @@ -130,7 +140,10 @@ DEFINE_FWK_MODULE(HLT2ElectronCaloMET); DEFINE_FWK_MODULE(HLT2MuonCaloMET); DEFINE_FWK_MODULE(HLT2ElectronMET); DEFINE_FWK_MODULE(HLT2MuonMET); +DEFINE_FWK_MODULE(HLT2ElectronPFMET); +DEFINE_FWK_MODULE(HLT2MuonPFMET); DEFINE_FWK_MODULE(HLT2PhotonMET); +DEFINE_FWK_MODULE(HLT2PhotonPFMET); DEFINE_FWK_MODULE(HLT1Electron); @@ -142,12 +155,14 @@ DEFINE_FWK_MODULE(HLT1CaloMET); DEFINE_FWK_MODULE(HLT1MET); DEFINE_FWK_MODULE(HLT1PFTau); DEFINE_FWK_MODULE(HLT1PFJet); +DEFINE_FWK_MODULE(HLT1PFMET); DEFINE_FWK_MODULE(HLTLevel1EG); DEFINE_FWK_MODULE(HLTLevel1MET); DEFINE_FWK_MODULE(HLTLevel1Jet); DEFINE_FWK_MODULE(HLTLevel1Muon); +DEFINE_FWK_MODULE(HLTGlobalSumsPFMET); DEFINE_FWK_MODULE(HLTGlobalSumsCaloMET); DEFINE_FWK_MODULE(HLTGlobalSumsMET);