CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
TriggerResultsFilter Class Reference

#include <TriggerResultsFilter.h>

Inheritance diagram for TriggerResultsFilter:
edm::stream::EDFilter<> edm::stream::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

bool filter (edm::Event &, const edm::EventSetup &) override
 
 TriggerResultsFilter (const edm::ParameterSet &)
 
 ~TriggerResultsFilter ()
 
- Public Member Functions inherited from edm::stream::EDFilter<>
 EDFilter ()=default
 
- Public Member Functions inherited from edm::stream::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDFilterBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::stream::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void parse (const std::string &expression)
 parse the logical expression into functionals More...
 
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 More...
 
triggerExpression::Evaluatorm_expression
 evaluator for the trigger condition More...
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDFilter<>
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDFilterBase
typedef EDFilterAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

This class is an 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 39 of file TriggerResultsFilter.h.

Constructor & Destructor Documentation

TriggerResultsFilter::TriggerResultsFilter ( const edm::ParameterSet config)
explicit

Definition at line 31 of file TriggerResultsFilter.cc.

References edm::ParameterSet::getParameter(), and parse().

31  :
32  m_expression(0),
34 {
35  const std::vector<std::string> & expressions = config.getParameter<std::vector<std::string> >("triggerConditions");
36  parse( expressions );
37 }
T getParameter(std::string const &) const
void parse(const std::string &expression)
parse the logical expression into functionals
triggerExpression::Data m_eventCache
cache some data from the Event for faster access by the m_expression
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
triggerExpression::Evaluator * m_expression
evaluator for the trigger condition
TriggerResultsFilter::~TriggerResultsFilter ( )

Definition at line 39 of file TriggerResultsFilter.cc.

References m_expression.

40 {
41  delete m_expression;
42 }
triggerExpression::Evaluator * m_expression
evaluator for the trigger condition

Member Function Documentation

void TriggerResultsFilter::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 45 of file TriggerResultsFilter.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), HLT_25ns14e33_v1_cff::InputTag, and JetPDSkim_cfg::triggerConditions.

45  {
47  // # HLT results - set to empty to ignore HLT
48  desc.add<edm::InputTag>("hltResults",edm::InputTag("TriggerResults"));
49  // # L1 GT results - set to empty to ignore L1T
50  desc.add<edm::InputTag>("l1tResults",edm::InputTag("hltGtDigis"));
51  // # use L1 mask
52  desc.add<bool>("l1tIgnoreMask",false);
53  // # read L1 technical bits from PSB#9, bypassing the prescales
54  desc.add<bool>("l1techIgnorePrescales",false);
55  // # used by the definition of the L1 mask
56  desc.add<unsigned int>("daqPartitions",0x01);
57  // # throw exception on unknown trigger names
58  desc.add<bool>("throw",true);
59  // # trigger conditions
60  std::vector<std::string> triggerConditions(1,"HLT_*");
61  desc.add<std::vector<std::string> >("triggerConditions",triggerConditions);
62  descriptions.add("triggerResultsFilter", desc);
63 }
tuple triggerConditions
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool TriggerResultsFilter::filter ( edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

Implements edm::stream::EDFilterBase.

Definition at line 89 of file TriggerResultsFilter.cc.

References triggerExpression::Data::configurationUpdated(), m_eventCache, m_expression, and triggerExpression::Data::setEvent().

90 {
91  if (not m_expression)
92  // no valid expression has been parsed
93  return false;
94 
95  if (not m_eventCache.setEvent(event, setup))
96  // couldn't properly access all information from the Event
97  return false;
98 
99  // if the L1 or HLT configurations have changed, (re)initialize the filters (including during the first event)
101  m_expression->init(m_eventCache);
102 
103  // log the expanded configuration
104  edm::LogInfo("Configuration") << "TriggerResultsFilter configuration updated: " << *m_expression;
105  }
106 
107  // run the trigger results filter
108  return (*m_expression)(m_eventCache);
109 }
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
bool setEvent(const edm::Event &event, const edm::EventSetup &setup)
void TriggerResultsFilter::parse ( const std::string &  expression)
private

parse the logical expression into functionals

Definition at line 80 of file TriggerResultsFilter.cc.

References m_expression, and triggerExpression::parse().

Referenced by parse(), and TriggerResultsFilter().

80  {
81  // parse the logical expressions into functionals
82  m_expression = triggerExpression::parse( expression );
83 
84  // check if the expressions were parsed correctly
85  if (not m_expression)
86  edm::LogWarning("Configuration") << "Couldn't parse trigger results expression \"" << expression << "\"";
87 }
Evaluator * parse(const T &text)
triggerExpression::Evaluator * m_expression
evaluator for the trigger condition
void TriggerResultsFilter::parse ( const std::vector< std::string > &  expressions)
private

Definition at line 65 of file TriggerResultsFilter.cc.

References i, and parse().

65  {
66  // parse the logical expressions into functionals
67  if (expressions.size() == 0) {
68  edm::LogWarning("Configuration") << "Empty trigger results expression";
69  } else if (expressions.size() == 1) {
70  parse( expressions[0] );
71  } else {
72  std::stringstream expression;
73  expression << "(" << expressions[0] << ")";
74  for (unsigned int i = 1; i < expressions.size(); ++i)
75  expression << " OR (" << expressions[i] << ")";
76  parse( expression.str() );
77  }
78 }
int i
Definition: DBlmapReader.cc:9
void parse(const std::string &expression)
parse the logical expression into functionals

Member Data Documentation

triggerExpression::Data TriggerResultsFilter::m_eventCache
private

cache some data from the Event for faster access by the m_expression

Definition at line 56 of file TriggerResultsFilter.h.

Referenced by filter().

triggerExpression::Evaluator* TriggerResultsFilter::m_expression
private

evaluator for the trigger condition

Definition at line 53 of file TriggerResultsFilter.h.

Referenced by filter(), parse(), and ~TriggerResultsFilter().