CMS 3D CMS Logo

TriggerExpressionPrescaler.cc
Go to the documentation of this file.
2 
3 namespace triggerExpression {
4 
5  bool Prescaler::operator()(const Data& data) const {
6  // if the prescale factor is 0, we never need to run any dependent module,
7  // so we can safely skip the rest of the processing
8  if (m_prescale == 0)
9  return false;
10 
11  bool result = ((*m_arg)(data));
12  if (not result)
13  return false;
14 
15  // if the prescale factor is 1, we do not need to keep track of the event counter
16  if (m_prescale == 1)
17  return true;
18 
19  return (++m_counter % m_prescale) == 0;
20  }
21 
22  void Prescaler::init(const Data& data) {
23  // initialize the depending modules
25 
26  // initialize the counter to the first event number seen,
27  // in order to avoid all prescalers on different FUs to be syncronous
28  m_counter = data.eventNumber();
29  }
30 
31 } // namespace triggerExpression
TriggerExpressionPrescaler.h
triggerExpression::Prescaler::m_prescale
unsigned int m_prescale
Definition: TriggerExpressionPrescaler.h:20
triggerExpression::Prescaler::operator()
bool operator()(const Data &data) const override
Definition: TriggerExpressionPrescaler.cc:5
triggerExpression::UnaryOperator::init
void init(const Data &data) override
Definition: TriggerExpressionOperators.h:15
triggerExpression::Prescaler::m_counter
unsigned int m_counter
Definition: TriggerExpressionPrescaler.h:21
triggerExpression::Data
Definition: TriggerExpressionData.h:22
triggerExpression
Definition: TriggerExpressionConstant.h:6
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
triggerExpression::Prescaler::init
void init(const Data &data) override
Definition: TriggerExpressionPrescaler.cc:22
mps_fire.result
result
Definition: mps_fire.py:311