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
void init(const Data &data) override
bool operator()(const Data &data) const override
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
void init(const Data &data) override