CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes | Static Private Attributes
L1TGlobalPrescaler Class Reference
Inheritance diagram for L1TGlobalPrescaler:
edm::one::EDFilter<> edm::one::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

bool filter (edm::Event &event, edm::EventSetup const &setup) override
 
 L1TGlobalPrescaler (edm::ParameterSet const &config)
 
- Public Member Functions inherited from edm::one::EDFilter<>
 EDFilter ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

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

Private Types

enum  Mode {
  Mode::ApplyPrescaleValues, Mode::ApplyPrescaleRatios, Mode::ApplyColumnValues, Mode::ApplyColumnRatios,
  Mode::ForcePrescaleValues, Mode::ForceColumnValues, Mode::Invalid = -1
}
 

Private Attributes

std::array< unsigned int, GlobalAlgBlk::maxPhysicsTriggersm_counters
 
const int m_l1tPrescaleColumn
 
const std::array< double, GlobalAlgBlk::maxPhysicsTriggersm_l1tPrescales
 
const edm::EDGetTokenT< GlobalAlgBlkBxCollectionm_l1tResultsToken
 
const Mode m_mode
 
int m_oldIndex
 
std::array< double, GlobalAlgBlk::maxPhysicsTriggersm_prescales
 

Static Private Attributes

static const Entry< Modes_modes []
 

Additional Inherited Members

- Public Types inherited from edm::one::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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

Definition at line 124 of file L1TGlobalPrescaler.cc.

Member Enumeration Documentation

enum L1TGlobalPrescaler::Mode
strongprivate
Enumerator
ApplyPrescaleValues 
ApplyPrescaleRatios 
ApplyColumnValues 
ApplyColumnRatios 
ForcePrescaleValues 
ForceColumnValues 
Invalid 

Definition at line 133 of file L1TGlobalPrescaler.cc.

133  {
134  ApplyPrescaleValues, // apply the given prescale values
135  ApplyPrescaleRatios, // apply prescales equal to ratio between the given values and the ones read from the EventSetup
136  ApplyColumnValues, // apply the prescale values from the EventSetup corresponding to the given column index
137  ApplyColumnRatios, // apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read from the EventSetup
138  ForcePrescaleValues, // apply the given prescale values, ignoring the prescales and masks already applied
139  ForceColumnValues, // apply the prescale values from the EventSetup corresponding to the given column index, ignoring the prescales and masks already applied
140  Invalid = -1
141  };

Constructor & Destructor Documentation

L1TGlobalPrescaler::L1TGlobalPrescaler ( edm::ParameterSet const &  config)

Definition at line 175 of file L1TGlobalPrescaler.cc.

References ApplyColumnRatios, ApplyColumnValues, ApplyPrescaleRatios, ApplyPrescaleValues, edm::errors::Configuration, Exception, ForceColumnValues, ForcePrescaleValues, edm::ParameterSet::getParameter(), Invalid, m_counters, m_l1tPrescales, m_mode, m_prescales, and AlCaHLTBitMon_QueryRunRegistry::string.

176  : m_mode(get_enum_value(s_modes, config.getParameter<std::string>("mode").c_str(), Mode::Invalid)),
177  m_l1tResultsToken(consumes<GlobalAlgBlkBxCollection>(config.getParameter<edm::InputTag>("l1tResults"))),
180  ? getParameterArray<double, GlobalAlgBlk::maxPhysicsTriggers>(config, "l1tPrescales")
181  : std::array<double, GlobalAlgBlk::maxPhysicsTriggers>()),
184  ? config.getParameter<uint32_t>("l1tPrescaleColumn")
185  : 0),
186  m_oldIndex(-1) {
187  switch (m_mode) {
188  // if the mode is "applyPrescaleValues", use the given values
192  break;
193 
194  // otherwise we need to read the prescale values from the EventSetup
199  break;
200 
201  // this should never happen
202  case Mode::Invalid:
204  << "invalid mode \"" << config.getParameter<std::string>("mode") << "\"";
205  }
206 
207  m_counters.fill(0);
208  produces<GlobalAlgBlkBxCollection>();
209 }
const std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_l1tPrescales
std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_prescales
std::array< unsigned int, GlobalAlgBlk::maxPhysicsTriggers > m_counters
Definition: config.py:1
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
const edm::EDGetTokenT< GlobalAlgBlkBxCollection > m_l1tResultsToken
static const Entry< Mode > s_modes[]

Member Function Documentation

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

Definition at line 365 of file L1TGlobalPrescaler.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addNode(), DEFINE_FWK_MODULE, edm::ParameterSetDescription::ifValue(), PDWG_DiJetAODSkim_cff::l1tResults, GlobalAlgBlk::maxPhysicsTriggers, ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, or, s_modes, edm::ParameterDescriptionNode::setComment(), and AlCaHLTBitMon_QueryRunRegistry::string.

365  {
366  // collection with the original uGT results
367  edm::ParameterDescription<edm::InputTag> l1tResults("l1tResults", edm::InputTag("gtStage2Digis"), true);
368  l1tResults.setComment("Collection with the original uGT results");
369 
370  // define how to apply the prescale values
371  edm::ParameterDescription<std::string> mode("mode", "applyPrescaleValues", true);
372  mode.setComment(build_comment_from_entries("Define how to apply the prescale values:", s_modes));
373 
374  // target prescale values (for modes "applyPrescaleValues" or "applyPrescaleRatios")
376  "l1tPrescales", std::vector<double>(GlobalAlgBlk::maxPhysicsTriggers, 1.), true);
377  l1tPrescales.setComment(
378  "Target prescale values (for modes \"applyPrescaleValues\", \"applyPrescaleRatios\" or \"forcePrescaleValues\")");
379 
380  // target prescale column (for modes "applyColumnValues" or "applyColumnRatios")
381  edm::ParameterDescription<uint32_t> l1tPrescaleColumn("l1tPrescaleColumn", 0, true);
382  l1tPrescaleColumn.setComment(
383  "Target prescale column (for modes \"applyColumnValues\", \"applyColumnRatios\" or \"forceColumnValues\")");
384 
385  // validaton of all possible configurations and applyPrescaleValues example
386  {
388  desc.addNode(l1tResults);
389  desc.ifValue(
390  mode,
391  // if mode is "applyPrescaleValues", "applyPrescaleRatios" or "forcePrescaleValues", read the target prescales
392  "applyPrescaleValues" >> l1tPrescales or "applyPrescaleRatios" >> l1tPrescales or
393  "forcePrescaleValues" >> l1tPrescales or
394  // if mode is "applyColumnValues", "applyColumnRatios" or "forceColumnValues", read the target column
395  "applyColumnValues" >> l1tPrescaleColumn or "applyColumnRatios" >> l1tPrescaleColumn or
396  "forceColumnValues" >> l1tPrescaleColumn);
397  descriptions.add("l1tGlobalPrescaler", desc);
398  }
399 
400  // applyColumnRatios example
401  {
403  desc.addNode(l1tResults);
404  desc.add<std::string>("mode", "applyColumnRatios")
405  ->setComment(
406  "apply prescales equal to ratio between the values corresponsing to the given column index, and the ones "
407  "read from the EventSetup");
408  desc.addNode(l1tPrescaleColumn);
409  descriptions.add("l1tGlobalPrescalerTargetColumn", desc);
410  }
411 }
ParameterDescriptionNode * ifValue(ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T >> cases)
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static unsigned int maxPhysicsTriggers
Definition: GlobalAlgBlk.h:52
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static const Entry< Mode > s_modes[]
bool L1TGlobalPrescaler::filter ( edm::Event event,
edm::EventSetup const &  setup 
)
overridevirtual

Implements edm::one::EDFilterBase.

Definition at line 211 of file L1TGlobalPrescaler.cc.

References ApplyColumnRatios, ApplyColumnValues, ApplyPrescaleRatios, BXVector< T >::at(), edm::errors::Configuration, ForceColumnValues, ForcePrescaleValues, dqm-mbProfile::format, edm::EventSetup::get(), GlobalAlgBlk::getAlgoDecisionFinal(), GlobalAlgBlk::getAlgoDecisionInitial(), GlobalAlgBlk::getFinalORVeto(), h, patZpeak::handle, mps_fire::i, BXVector< T >::isEmpty(), edm::errors::LogicError, m_counters, m_l1tPrescaleColumn, m_l1tPrescales, m_l1tResultsToken, m_mode, m_oldIndex, m_prescales, GlobalAlgBlk::maxPhysicsTriggers, min(), eostools::move(), or, L1TGlobalPrescalesVetos::prescale_table_, hltrates_dqm_sourceclient-live_cfg::prescales, hltrates_dqm_sourceclient-live_cfg::prescaleTable, mps_fire::result, GlobalAlgBlk::setAlgoDecisionFinal(), GlobalAlgBlk::setFinalOR(), GlobalAlgBlk::setFinalORPreVeto(), GlobalAlgBlk::setPreScColumn(), and dqmd_manager::targets.

211  {
213  event.getByToken(m_l1tResultsToken, handle);
214 
215  // if the input collection does not have any information for bx 0,
216  // produce an empty collection, and fail
217  if (handle->isEmpty(0)) {
218  std::unique_ptr<GlobalAlgBlkBxCollection> result(new GlobalAlgBlkBxCollection());
219  event.put(std::move(result));
220  return false;
221  }
222 
223  // read the prescale index
224  int index = handle->at(0, 0).getPreScColumn();
225  assert(index >= 0);
226 
227  // Mode::ApplyPrescaleRatios
228  // apply prescales equal to ratio between the given values and the ones read from the EventSetup
229  if (m_mode == Mode::ApplyPrescaleRatios and m_oldIndex != index) {
231  setup.get<L1TGlobalPrescalesVetosRcd>().get(h);
232  auto const& prescaleTable = h->prescale_table_;
233  if (index >= (int)prescaleTable.size())
235  << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") %
236  index % prescaleTable.size();
237  auto const& prescales = prescaleTable[index];
238  unsigned long i = 0;
239  for (; i < std::min(prescales.size(), (unsigned long)GlobalAlgBlk::maxPhysicsTriggers); ++i)
240  if (m_l1tPrescales[i] == 0) {
241  // if the trigger is requested to be disabled, just do it
242  m_prescales[i] = 0.;
243  } else if (prescales[i] == 0) {
244  // othersie, if the trigger was originally disabled, warn the user and keep it that way
245  m_prescales[i] = 0.;
246  edm::LogWarning("L1TGlobalPrescaler")
247  << "Request to enable the trigger " << i << " which was originally disabled\nIt will be kept disabled.";
248  } else if (m_l1tPrescales[i] < prescales[i]) {
249  // if the target prescale is lower than the original prescale, keep the trigger unprescaled
250  m_prescales[i] = 1.;
251  edm::LogWarning("L1TGlobalPrescaler")
252  << "Request to prescale the trigger " << i
253  << " less than it was originally prescaled\nNo further prescale will be applied.";
254  } else {
255  // apply the ratio of the new and old prescales
256  m_prescales[i] = (double)m_l1tPrescales[i] / prescales[i];
257  }
258  for (; i < (unsigned long)GlobalAlgBlk::maxPhysicsTriggers; ++i)
259  // disable the triggers not included in the prescale table
260  m_prescales[i] = 0.;
261  // reset the prescales
262  m_counters.fill(0);
263  m_oldIndex = index;
264  }
265 
266  // Mode::ApplyColumnValues and Mode::ForceColumnValues
267  // apply the prescale values from the EventSetup corresponding to the given column index
270  setup.get<L1TGlobalPrescalesVetosRcd>().get(h);
271  auto const& prescaleTable = h->prescale_table_;
272  if (m_l1tPrescaleColumn >= (int)prescaleTable.size())
274  << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") %
277  unsigned long i = 0;
278  for (; i < std::min(targets.size(), (unsigned long)GlobalAlgBlk::maxPhysicsTriggers); ++i)
279  // read the prescales from the EventSetup
280  m_prescales[i] = targets[i];
281  for (; i < (unsigned long)GlobalAlgBlk::maxPhysicsTriggers; ++i)
282  // disable the triggers not included in the prescale table
283  m_prescales[i] = 0.;
284  // reset the prescales
285  m_counters.fill(0);
287  }
288 
289  // Mode::ApplyColumnRatios
290  // apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read from the EventSetup
291  if (m_mode == Mode::ApplyColumnRatios and m_oldIndex != index) {
293  setup.get<L1TGlobalPrescalesVetosRcd>().get(h);
294  auto const& prescaleTable = h->prescale_table_;
295  if (index >= (int)prescaleTable.size())
297  << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") %
298  index % prescaleTable.size();
299  if (m_l1tPrescaleColumn >= (int)prescaleTable.size())
301  << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") %
303  auto const& prescales = prescaleTable[index];
305  unsigned long i = 0;
306  for (; i < std::min({prescales.size(), targets.size(), (unsigned long)GlobalAlgBlk::maxPhysicsTriggers}); ++i)
307  if (prescales[i] == 0)
308  // if the trigger was disabled, keep it disabled
309  m_prescales[i] = 0.;
310  else
311  // if the target prescale is lower than the original prescale, keep the trigger unprescaled
312  m_prescales[i] = targets[i] < prescales[i] ? 1. : (double)targets[i] / prescales[i];
313  for (; i < (unsigned long)GlobalAlgBlk::maxPhysicsTriggers; ++i)
314  // disable the triggers not included in the prescale table
315  m_prescales[i] = 0.;
316  // reset the prescales
317  m_counters.fill(0);
318  m_oldIndex = index;
319  }
320 
321  // make a copy of the GlobalAlgBlk for bx 0
322  GlobalAlgBlk algoBlock = handle->at(0, 0);
323 
324  bool finalOr = false;
325  std::vector<bool> const& decision = (m_mode == Mode::ForceColumnValues or m_mode == Mode::ForcePrescaleValues)
326  ? algoBlock.getAlgoDecisionInitial()
327  : algoBlock.getAlgoDecisionFinal();
328 
329  for (unsigned int i = 0; i < GlobalAlgBlk::maxPhysicsTriggers; ++i) {
330  if (m_prescales[i] == 0) {
331  // mask this trigger: reset the bit
332  algoBlock.setAlgoDecisionFinal(i, false);
333  } else if (decision[i]) {
334  // prescale this trigger
335  ++m_counters[i];
336  if (std::fmod(m_counters[i], m_prescales[i]) < 1) {
337  // the prescale is successful, set the bit
338  algoBlock.setAlgoDecisionFinal(i, true);
339  finalOr = true;
340  } else {
341  // the prescale failed, reset the bit
342  algoBlock.setAlgoDecisionFinal(i, false);
343  }
344  }
345  }
346 
347  // set the final OR
348  algoBlock.setFinalORPreVeto(finalOr);
349  if (algoBlock.getFinalORVeto())
350  finalOr = false;
351  algoBlock.setFinalOR(finalOr);
352 
353  // set the new prescale column
356 
357  // create a new GlobalAlgBlkBxCollection, and set the new prescaled decisions for bx 0
358  std::unique_ptr<GlobalAlgBlkBxCollection> result(new GlobalAlgBlkBxCollection());
359  result->push_back(0, algoBlock);
360  event.put(std::move(result));
361 
362  return finalOr;
363 }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
std::vector< bool > const & getAlgoDecisionInitial() const
Get decision bits.
Definition: GlobalAlgBlk.h:82
void setFinalORPreVeto(bool fOR)
Definition: GlobalAlgBlk.h:59
std::vector< bool > const & getAlgoDecisionFinal() const
Definition: GlobalAlgBlk.h:84
const std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_l1tPrescales
std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_prescales
std::array< unsigned int, GlobalAlgBlk::maxPhysicsTriggers > m_counters
bool isEmpty(int bx) const
BXVector< GlobalAlgBlk > GlobalAlgBlkBxCollection
Definition: GlobalAlgBlk.h:31
const bool getFinalORVeto() const
Definition: GlobalAlgBlk.h:69
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
T min(T a, T b)
Definition: MathUtil.h:58
void setFinalOR(bool fOR)
Definition: GlobalAlgBlk.h:60
const edm::EDGetTokenT< GlobalAlgBlkBxCollection > m_l1tResultsToken
static unsigned int maxPhysicsTriggers
Definition: GlobalAlgBlk.h:52
std::vector< std::vector< int > > prescale_table_
void setPreScColumn(int psC)
Definition: GlobalAlgBlk.h:61
def move(src, dest)
Definition: eostools.py:511
void setAlgoDecisionFinal(unsigned int bit, bool val)
Definition: GlobalAlgBlk.cc:94
const T & at(int bx, unsigned i) const

Member Data Documentation

std::array<unsigned int, GlobalAlgBlk::maxPhysicsTriggers> L1TGlobalPrescaler::m_counters
private

Definition at line 168 of file L1TGlobalPrescaler.cc.

Referenced by filter(), and L1TGlobalPrescaler().

const int L1TGlobalPrescaler::m_l1tPrescaleColumn
private

Definition at line 169 of file L1TGlobalPrescaler.cc.

Referenced by filter().

const std::array<double, GlobalAlgBlk::maxPhysicsTriggers> L1TGlobalPrescaler::m_l1tPrescales
private

Definition at line 166 of file L1TGlobalPrescaler.cc.

Referenced by filter(), and L1TGlobalPrescaler().

const edm::EDGetTokenT<GlobalAlgBlkBxCollection> L1TGlobalPrescaler::m_l1tResultsToken
private

Definition at line 165 of file L1TGlobalPrescaler.cc.

Referenced by filter().

const Mode L1TGlobalPrescaler::m_mode
private

Definition at line 164 of file L1TGlobalPrescaler.cc.

Referenced by filter(), and L1TGlobalPrescaler().

int L1TGlobalPrescaler::m_oldIndex
private

Definition at line 170 of file L1TGlobalPrescaler.cc.

Referenced by filter().

std::array<double, GlobalAlgBlk::maxPhysicsTriggers> L1TGlobalPrescaler::m_prescales
private

Definition at line 167 of file L1TGlobalPrescaler.cc.

Referenced by filter(), and L1TGlobalPrescaler().

const Entry< L1TGlobalPrescaler::Mode > L1TGlobalPrescaler::s_modes
staticprivate
Initial value:
{
{Mode::ApplyPrescaleValues, "applyPrescaleValues", "apply the given prescale values"},
"applyPrescaleRatios",
"apply prescales equal to ratio between the given values and the ones read from the EventSetup"},
"applyColumnValues",
"apply the prescale values from the EventSetup corresponding to the given column index"},
"applyColumnRatios",
"apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read "
"from the EventSetup"},
"forcePrescaleValues",
"apply the given prescale values, ignoring the prescales and masks already applied"},
"forceColumnValues",
"apply the prescale values from the EventSetup corresponding to the given column index, ignoring the prescales "
"and masks already applied"},
{Mode::Invalid, 0 , 0 }}

Definition at line 143 of file L1TGlobalPrescaler.cc.

Referenced by fillDescriptions().