![]() |
![]() |
#include <HLTSummaryFilter.h>
Public Member Functions | |
virtual bool | filter (edm::Event &, const edm::EventSetup &) |
HLTSummaryFilter (const edm::ParameterSet &) | |
~HLTSummaryFilter () | |
Private Attributes | |
std::string | cut_ |
edm::InputTag | memberTag_ |
int | min_N_ |
StringCutObjectSelector < trigger::TriggerObject > | select_ |
edm::InputTag | summaryTag_ |
This class is an HLTFilter (-> EDFilter) implementing a smart HLT trigger cut, specified as a string such as "pt>15 && -3<eta<3", for objects in the TriggerSummaryAOD product, allowing to cut on variables relating to their 4-momentum representation
See header file for documentation
Definition at line 30 of file HLTSummaryFilter.h.
HLTSummaryFilter::HLTSummaryFilter | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 22 of file HLTSummaryFilter.cc.
References cut_, edm::InputTag::encode(), memberTag_, min_N_, and summaryTag_.
: summaryTag_ (iConfig.getParameter<edm::InputTag>("summary")), memberTag_ (iConfig.getParameter<edm::InputTag>("member" )), cut_ (iConfig.getParameter<std::string> ("cut" )), min_N_ (iConfig.getParameter<int> ("minN" )), select_ (cut_ ) { edm::LogInfo("HLTSummaryFilter") << "Summary/member/cut/ncut : " << summaryTag_.encode() << " " << memberTag_.encode() << " " << cut_<< " " << min_N_ ; //register your products //produces<trigger::TriggerFilterObjectWithRefs>(); }
HLTSummaryFilter::~HLTSummaryFilter | ( | ) |
Definition at line 39 of file HLTSummaryFilter.cc.
{ }
bool HLTSummaryFilter::filter | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [virtual] |
Implements HLTFilter.
Definition at line 49 of file HLTSummaryFilter.cc.
References accept(), edm::InputTag::encode(), edm::Event::getByLabel(), i, getHLTprescales::index, memberTag_, min_N_, n, n0, dt_dqm_sourceclient_common_cff::reco, select_, summarizeEdmComparisonLogfiles::summary, and summaryTag_.
{ using namespace std; using namespace edm; using namespace reco; using namespace trigger; Handle<TriggerEvent> summary; iEvent.getByLabel(summaryTag_,summary); if (!summary.isValid()) { LogError("HLTSummaryFilter") << "Trigger summary product " << summaryTag_.encode() << " not found! Filter returns false always"; return false; } size_type n(0); size_type index(0); // check if we want to look at a filter and its passing physics objects index=summary->filterIndex(memberTag_); if (index<summary->sizeFilters()) { const Keys& KEYS (summary->filterKeys(index)); const size_type n1(KEYS.size()); for (size_type i=0; i!=n1; ++i) { const TriggerObject& TO( summary->getObjects().at(KEYS[i]) ); if (select_(TO)) n++; } const bool accept(n>=min_N_); LogInfo("HLTSummaryFilter") << " Filter objects: " << n << "/" << n1; return accept; } // check if we want to cut on all physics objects of a full "L3" collection index=summary->collectionIndex(memberTag_); if (index<summary->sizeCollections()) { const Keys& KEYS (summary->collectionKeys()); const size_type n0 (index == 0? 0 : KEYS.at(index-1)); const size_type n1 (KEYS.at(index)); for (size_type i=n0; i!=n1; ++i) { const TriggerObject& TO( summary->getObjects().at(i) ); if (select_(TO)) n++; } const bool accept(n>=min_N_); LogInfo("HLTSummaryFilter") << " Collection objects: " << n << "/" <<n1-n0; return accept; } // can't help you, bailing out! const bool accept (false); LogInfo("HLTSummaryFilter") << " Default decision: " << accept; return accept; }
std::string HLTSummaryFilter::cut_ [private] |
Definition at line 41 of file HLTSummaryFilter.h.
Referenced by HLTSummaryFilter().
edm::InputTag HLTSummaryFilter::memberTag_ [private] |
Definition at line 40 of file HLTSummaryFilter.h.
Referenced by filter(), and HLTSummaryFilter().
int HLTSummaryFilter::min_N_ [private] |
Definition at line 42 of file HLTSummaryFilter.h.
Referenced by filter(), and HLTSummaryFilter().
Definition at line 44 of file HLTSummaryFilter.h.
Referenced by filter().
edm::InputTag HLTSummaryFilter::summaryTag_ [private] |
Definition at line 39 of file HLTSummaryFilter.h.
Referenced by filter(), and HLTSummaryFilter().