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
 
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)
 
virtual ~ProducerBase () noexcept(false)
 
- 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
 
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)
 
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::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

Definition at line 129 of file L1TGlobalPrescaler.cc.

Member Enumeration Documentation

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

Definition at line 138 of file L1TGlobalPrescaler.cc.

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

Constructor & Destructor Documentation

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

Definition at line 173 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.

173  :
174  m_mode( get_enum_value(s_modes, config.getParameter<std::string>("mode").c_str(), Mode::Invalid) ),
175  m_l1tResultsToken( consumes<GlobalAlgBlkBxCollection>(config.getParameter<edm::InputTag>("l1tResults")) ),
177  getParameterArray<double, GlobalAlgBlk::maxPhysicsTriggers>(config, "l1tPrescales") :
178  std::array<double, GlobalAlgBlk::maxPhysicsTriggers>() ),
180  config.getParameter<uint32_t>("l1tPrescaleColumn") : 0 ),
181  m_oldIndex(-1)
182 {
183  switch (m_mode) {
184  // if the mode is "applyPrescaleValues", use the given values
188  break;
189 
190  // otherwise we need to read the prescale values from the EventSetup
195  break;
196 
197  // this should never happen
198  case Mode::Invalid:
199  throw edm::Exception(edm::errors::Configuration) << "invalid mode \"" << config.getParameter<std::string>("mode") << "\"";
200  }
201 
202  m_counters.fill(0);
203  produces<GlobalAlgBlkBxCollection>();
204 }
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 350 of file L1TGlobalPrescaler.cc.

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

350  {
351  // collection with the original uGT results
352  edm::ParameterDescription<edm::InputTag> l1tResults("l1tResults", edm::InputTag("gtStage2Digis"), true);
353  l1tResults.setComment("Collection with the original uGT results");
354 
355  // define how to apply the prescale values
356  edm::ParameterDescription<std::string> mode("mode", "applyPrescaleValues", true);
357  mode.setComment(build_comment_from_entries("Define how to apply the prescale values:", s_modes));
358 
359  // target prescale values (for modes "applyPrescaleValues" or "applyPrescaleRatios")
360  edm::ParameterDescription<std::vector<double>> l1tPrescales("l1tPrescales", std::vector<double>(GlobalAlgBlk::maxPhysicsTriggers, 1.), true);
361  l1tPrescales.setComment("Target prescale values (for modes \"applyPrescaleValues\", \"applyPrescaleRatios\" or \"forcePrescaleValues\")");
362 
363  // target prescale column (for modes "applyColumnValues" or "applyColumnRatios")
364  edm::ParameterDescription<uint32_t> l1tPrescaleColumn("l1tPrescaleColumn", 0, true);
365  l1tPrescaleColumn.setComment("Target prescale column (for modes \"applyColumnValues\", \"applyColumnRatios\" or \"forceColumnValues\")");
366 
367  // validaton of all possible configurations and applyPrescaleValues example
368  {
370  desc.addNode(l1tResults);
371  desc.ifValue(mode,
372  // if mode is "applyPrescaleValues", "applyPrescaleRatios" or "forcePrescaleValues", read the target prescales
373  "applyPrescaleValues" >> l1tPrescales or
374  "applyPrescaleRatios" >> l1tPrescales or
375  "forcePrescaleValues" >> l1tPrescales or
376  // if mode is "applyColumnValues", "applyColumnRatios" or "forceColumnValues", read the target column
377  "applyColumnValues" >> l1tPrescaleColumn or
378  "applyColumnRatios" >> l1tPrescaleColumn or
379  "forceColumnValues" >> l1tPrescaleColumn );
380  descriptions.add("l1tGlobalPrescaler", desc);
381  }
382 
383  // applyColumnRatios example
384  {
386  desc.addNode(l1tResults);
387  desc.add<std::string>("mode", "applyColumnRatios")->setComment("apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read from the EventSetup");
388  desc.addNode(l1tPrescaleColumn);
389  descriptions.add("l1tGlobalPrescalerTargetColumn", desc);
390  }
391 }
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
ParameterDescriptionNode * ifValue(ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T > > cases)
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 206 of file L1TGlobalPrescaler.cc.

References ApplyColumnRatios, ApplyColumnValues, ApplyPrescaleRatios, BXVector< T >::at(), edm::errors::Configuration, ForceColumnValues, ForcePrescaleValues, cmsPerfStripChart::format, edm::EventSetup::get(), GlobalAlgBlk::getAlgoDecisionFinal(), GlobalAlgBlk::getAlgoDecisionInitial(), GlobalAlgBlk::getFinalORVeto(), GlobalAlgBlk::getPreScColumn(), h, cmsBatch::handle, mps_fire::i, diffTreeTool::index, 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_, mps_fire::result, GlobalAlgBlk::setAlgoDecisionFinal(), GlobalAlgBlk::setFinalOR(), GlobalAlgBlk::setFinalORPreVeto(), and GlobalAlgBlk::setPreScColumn().

206  {
208  event.getByToken(m_l1tResultsToken, handle);
209 
210  // if the input collection does not have any information for bx 0,
211  // produce an empty collection, and fail
212  if (handle->isEmpty(0)) {
213  std::unique_ptr<GlobalAlgBlkBxCollection> result(new GlobalAlgBlkBxCollection());
214  event.put(std::move(result));
215  return false;
216  }
217 
218  // read the prescale index
219  int index = handle->at(0,0).getPreScColumn();
220  assert(index >= 0);
221 
222  // Mode::ApplyPrescaleRatios
223  // apply prescales equal to ratio between the given values and the ones read from the EventSetup
224  if (m_mode == Mode::ApplyPrescaleRatios and m_oldIndex != index) {
226  setup.get<L1TGlobalPrescalesVetosRcd>().get(h);
227  auto const & prescaleTable = h->prescale_table_;
228  if (index >= (int) prescaleTable.size())
229  throw edm::Exception(edm::errors::LogicError) << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") % index % prescaleTable.size();
230  auto const & prescales = prescaleTable[index];
231  unsigned long i = 0;
232  for (; i < std::min(prescales.size(), (unsigned long) GlobalAlgBlk::maxPhysicsTriggers); ++i)
233  if (m_l1tPrescales[i] == 0) {
234  // if the trigger is requested to be disabled, just do it
235  m_prescales[i] = 0.;
236  } else if (prescales[i] == 0) {
237  // othersie, if the trigger was originally disabled, warn the user and keep it that way
238  m_prescales[i] = 0.;
239  edm::LogWarning("L1TGlobalPrescaler") << "Request to enable the trigger " << i << " which was originally disabled\nIt will be kept disabled.";
240  } else if (m_l1tPrescales[i] < prescales[i]) {
241  // if the target prescale is lower than the original prescale, keep the trigger unprescaled
242  m_prescales[i] = 1.;
243  edm::LogWarning("L1TGlobalPrescaler") << "Request to prescale the trigger " << i << " less than it was originally prescaled\nNo further prescale will be applied.";
244  } else {
245  // apply the ratio of the new and old prescales
246  m_prescales[i] = (double) m_l1tPrescales[i] / prescales[i];
247  }
248  for (; i < (unsigned long) GlobalAlgBlk::maxPhysicsTriggers; ++i)
249  // disable the triggers not included in the prescale table
250  m_prescales[i] = 0.;
251  // reset the prescales
252  m_counters.fill(0);
253  m_oldIndex = index;
254  }
255 
256  // Mode::ApplyColumnValues and Mode::ForceColumnValues
257  // apply the prescale values from the EventSetup corresponding to the given column index
260  setup.get<L1TGlobalPrescalesVetosRcd>().get(h);
261  auto const & prescaleTable = h->prescale_table_;
262  if (m_l1tPrescaleColumn >= (int) prescaleTable.size())
263  throw edm::Exception(edm::errors::Configuration) << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") % m_l1tPrescaleColumn % prescaleTable.size();
264  auto const & targets = prescaleTable[m_l1tPrescaleColumn];
265  unsigned long i = 0;
266  for (; i < std::min(targets.size(), (unsigned long) GlobalAlgBlk::maxPhysicsTriggers); ++i)
267  // read the prescales from the EventSetup
268  m_prescales[i] = targets[i];
269  for (; i < (unsigned long) GlobalAlgBlk::maxPhysicsTriggers; ++i)
270  // disable the triggers not included in the prescale table
271  m_prescales[i] = 0.;
272  // reset the prescales
273  m_counters.fill(0);
275  }
276 
277  // Mode::ApplyColumnRatios
278  // apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read from the EventSetup
279  if (m_mode == Mode::ApplyColumnRatios and m_oldIndex != index) {
281  setup.get<L1TGlobalPrescalesVetosRcd>().get(h);
282  auto const & prescaleTable = h->prescale_table_;
283  if (index >= (int) prescaleTable.size())
284  throw edm::Exception(edm::errors::LogicError) << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") % index % prescaleTable.size();
285  if (m_l1tPrescaleColumn >= (int) prescaleTable.size())
286  throw edm::Exception(edm::errors::Configuration) << boost::format("The prescale index %d is invalid, it should be smaller than the prescale table size %d.") % m_l1tPrescaleColumn % prescaleTable.size();
287  auto const & prescales = prescaleTable[index];
288  auto const & targets = prescaleTable[m_l1tPrescaleColumn];
289  unsigned long i = 0;
290  for (; i < std::min({prescales.size(), targets.size(), (unsigned long) GlobalAlgBlk::maxPhysicsTriggers}); ++i)
291  if (prescales[i] == 0)
292  // if the trigger was disabled, keep it disabled
293  m_prescales[i] = 0.;
294  else
295  // if the target prescale is lower than the original prescale, keep the trigger unprescaled
296  m_prescales[i] = targets[i] < prescales[i] ? 1. : (double) targets[i] / prescales[i];
297  for (; i < (unsigned long) GlobalAlgBlk::maxPhysicsTriggers; ++i)
298  // disable the triggers not included in the prescale table
299  m_prescales[i] = 0.;
300  // reset the prescales
301  m_counters.fill(0);
302  m_oldIndex = index;
303  }
304 
305  // make a copy of the GlobalAlgBlk for bx 0
306  GlobalAlgBlk algoBlock = handle->at(0,0);
307 
308  bool finalOr = false;
309  std::vector<bool> const& decision = (m_mode == Mode::ForceColumnValues or m_mode == Mode::ForcePrescaleValues) ?
310  algoBlock.getAlgoDecisionInitial() :
311  algoBlock.getAlgoDecisionFinal();
312 
313  for (unsigned int i = 0; i < GlobalAlgBlk::maxPhysicsTriggers; ++i) {
314  if (m_prescales[i] == 0) {
315  // mask this trigger: reset the bit
316  algoBlock.setAlgoDecisionFinal(i, false);
317  } else if (decision[i]) {
318  // prescale this trigger
319  ++m_counters[i];
320  if (std::fmod(m_counters[i], m_prescales[i]) < 1) {
321  // the prescale is successful, set the bit
322  algoBlock.setAlgoDecisionFinal(i, true);
323  finalOr = true;
324  } else {
325  // the prescale failed, reset the bit
326  algoBlock.setAlgoDecisionFinal(i, false);
327  }
328  }
329  }
330 
331  // set the final OR
332  algoBlock.setFinalORPreVeto(finalOr);
333  if (algoBlock.getFinalORVeto())
334  finalOr = false;
335  algoBlock.setFinalOR(finalOr);
336 
337  // set the new prescale column
340 
341  // create a new GlobalAlgBlkBxCollection, and set the new prescaled decisions for bx 0
342  std::unique_ptr<GlobalAlgBlkBxCollection> result(new GlobalAlgBlkBxCollection());
343  result->push_back(0, algoBlock);
344  event.put(std::move(result));
345 
346  return finalOr;
347 }
std::vector< bool > const & getAlgoDecisionInitial() const
Get decision bits.
Definition: GlobalAlgBlk.h:82
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
void setFinalORPreVeto(bool fOR)
Definition: GlobalAlgBlk.h:59
std::vector< bool > const & getAlgoDecisionFinal() const
Definition: GlobalAlgBlk.h:88
const std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_l1tPrescales
std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_prescales
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
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
const int getPreScColumn() const
Definition: GlobalAlgBlk.h:70
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
format
Some error handling for the usage.
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:510
void setAlgoDecisionFinal(unsigned int bit, bool val)
const T & at(int bx, unsigned i) const

Member Data Documentation

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

Definition at line 163 of file L1TGlobalPrescaler.cc.

Referenced by filter(), and L1TGlobalPrescaler().

const int L1TGlobalPrescaler::m_l1tPrescaleColumn
private

Definition at line 164 of file L1TGlobalPrescaler.cc.

Referenced by filter().

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

Definition at line 161 of file L1TGlobalPrescaler.cc.

Referenced by filter(), and L1TGlobalPrescaler().

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

Definition at line 160 of file L1TGlobalPrescaler.cc.

Referenced by filter().

const Mode L1TGlobalPrescaler::m_mode
private

Definition at line 159 of file L1TGlobalPrescaler.cc.

Referenced by filter(), and L1TGlobalPrescaler().

int L1TGlobalPrescaler::m_oldIndex
private

Definition at line 165 of file L1TGlobalPrescaler.cc.

Referenced by filter().

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

Definition at line 162 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" },
{ Mode::ApplyPrescaleRatios, "applyPrescaleRatios", "apply prescales equal to ratio between the given values and the ones read from the EventSetup" },
{ Mode::ApplyColumnValues, "applyColumnValues", "apply the prescale values from the EventSetup corresponding to the given column index" },
{ Mode::ApplyColumnRatios, "applyColumnRatios", "apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read from the EventSetup" },
{ Mode::ForcePrescaleValues, "forcePrescaleValues", "apply the given prescale values, ignoring the prescales and masks already applied" },
{ Mode::ForceColumnValues, "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 149 of file L1TGlobalPrescaler.cc.

Referenced by fillDescriptions().