CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

TriggerResultsFilter Class Reference

#include <TriggerResultsFilter.h>

Inheritance diagram for TriggerResultsFilter:
HLTFilter edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

List of all members.

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::Evaluatorm_expression
 evaluator for the trigger condition

Detailed Description

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.

Date:
2010/07/12 12:25:34
Revision:
1.10

Authors: Martin Grunewald, Andrea Bocci

See header file for documentation

Date:
2010/07/12 12:25:34
Revision:
1.14

Authors: Martin Grunewald, Andrea Bocci

Definition at line 35 of file TriggerResultsFilter.h.


Constructor & Destructor Documentation

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;
}

Member Function Documentation

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.

References i, and parse().

                                                                         {
  // 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 << "\"";
}

Member Data Documentation

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().