![]() |
![]() |
#include <TriggerResultsFilter.h>
Public Member Functions | |
virtual bool | filter (edm::Event &, const edm::EventSetup &) |
TriggerResultsFilter (const edm::ParameterSet &) | |
~TriggerResultsFilter () | |
Private Member Functions | |
void | parse (const std::string &expression) |
parse the logical expression into functionals | |
void | parse (const std::vector< std::string > &expressions) |
Private Attributes | |
triggerExpression::Data | m_eventCache |
cache some data from the Event for faster access by the m_expression | |
triggerExpression::Evaluator * | m_expression |
evaluator for the trigger condition |
This class is an HLTFilter (-> EDFilter) implementing filtering on arbitrary logical combinations of L1 and HLT results.
It has been written as an extension of the HLTHighLevel and HLTHighLevelDev filters.
Authors: Martin Grunewald, Andrea Bocci
See header file for documentation
Authors: Martin Grunewald, Andrea Bocci
Definition at line 35 of file TriggerResultsFilter.h.
TriggerResultsFilter::TriggerResultsFilter | ( | const edm::ParameterSet & | config | ) | [explicit] |
Definition at line 32 of file TriggerResultsFilter.cc.
References edm::ParameterSet::getParameter(), and parse().
: m_expression(0), m_eventCache(config) { const std::vector<std::string> & expressions = config.getParameter<std::vector<std::string> >("triggerConditions"); parse( expressions ); }
TriggerResultsFilter::~TriggerResultsFilter | ( | ) |
Definition at line 40 of file TriggerResultsFilter.cc.
References m_expression.
{ delete m_expression; }
bool TriggerResultsFilter::filter | ( | edm::Event & | event, |
const edm::EventSetup & | setup | ||
) | [virtual] |
Implements HLTFilter.
Definition at line 69 of file TriggerResultsFilter.cc.
References triggerExpression::Data::configurationUpdated(), m_eventCache, m_expression, and triggerExpression::Data::setEvent().
{ if (not m_expression) // no valid expression has been parsed return false; if (not m_eventCache.setEvent(event, setup)) // couldn't properly access all information from the Event return false; // if the L1 or HLT configurations have changed, (re)initialize the filters (including during the first event) if (m_eventCache.configurationUpdated()) { m_expression->init(m_eventCache); // log the expanded configuration edm::LogInfo("Configuration") << "TriggerResultsFilter configuration updated: " << *m_expression; } // run the trigger results filter return (*m_expression)(m_eventCache); }
void TriggerResultsFilter::parse | ( | const std::vector< std::string > & | expressions | ) | [private] |
Definition at line 45 of file TriggerResultsFilter.cc.
{ // parse the logical expressions into functionals if (expressions.size() == 0) { edm::LogWarning("Configuration") << "Empty trigger results expression"; } else if (expressions.size() == 1) { parse( expressions[0] ); } else { std::stringstream expression; expression << "(" << expressions[0] << ")"; for (unsigned int i = 1; i < expressions.size(); ++i) expression << " OR (" << expressions[i] << ")"; parse( expression.str() ); } }
void TriggerResultsFilter::parse | ( | const std::string & | expression | ) | [private] |
parse the logical expression into functionals
Definition at line 60 of file TriggerResultsFilter.cc.
References m_expression.
Referenced by parse(), and TriggerResultsFilter().
{ // parse the logical expressions into functionals m_expression = triggerExpression::parse( expression ); // check if the expressions were parsed correctly if (not m_expression) edm::LogWarning("Configuration") << "Couldn't parse trigger results expression \"" << expression << "\""; }
cache some data from the Event for faster access by the m_expression
Definition at line 50 of file TriggerResultsFilter.h.
Referenced by filter().
evaluator for the trigger condition
Definition at line 47 of file TriggerResultsFilter.h.
Referenced by filter(), parse(), and ~TriggerResultsFilter().