CMS 3D CMS Logo

L1TGlobalPrescaler.cc
Go to the documentation of this file.
1 #include <array>
2 #include <cassert>
3 #include <cstring>
4 #include <memory>
5 #include <stdexcept>
6 #include <string>
7 #include <vector>
8 
9 #include <fmt/printf.h>
10 
11 template <class T, std::size_t N>
12 std::array<T, N> make_array(std::vector<T> const& values) {
13  assert(N == values.size());
14  std::array<T, N> ret;
15  std::copy(values.begin(), values.end(), ret.begin());
16  return ret;
17 }
18 
19 template <class T>
20 bool empty(T const& container) {
21  return container.empty();
22 }
23 
24 bool empty(const char* container) { return container != nullptr; }
25 
26 using namespace std::literals;
27 
28 namespace {
29 
30  template <class T>
31  struct Entry {
32  T value;
33  const char* tag;
34  const char* description;
35  };
36 
37  template <typename S, typename T, unsigned int N>
38  std::string build_comment_from_entries(S pre, const Entry<T> (&entries)[N]) {
39  std::string comment{pre};
40  size_t length = 0;
41  for (auto entry : entries)
42  if (entry.tag)
43  length = std::max(std::strlen(entry.tag), length);
44  for (auto entry : entries)
45  if (entry.tag) {
46  comment.reserve(comment.size() + length + std::strlen(entry.description) + 8);
47  comment += "\n \"";
48  comment += entry.tag;
49  comment += "\": ";
50  for (unsigned int i = 0; i < length - std::strlen(entry.tag); ++i)
51  comment += ' ';
52  comment += entry.description;
53  }
54  return comment;
55  }
56 
57  template <typename S1, typename S2, typename T, unsigned int N>
58  std::string build_comment_from_entries(S1 pre, const Entry<T> (&entries)[N], S2 post) {
59  std::string comment = build_comment_from_entries(pre, entries);
60  comment += '\n';
61  comment += post;
62  return comment;
63  }
64 
65  template <class T>
66 #if __cplusplus > 201400
67  // extended constexpr support in C++14 and later
68  constexpr
69 #endif
70  T
71  get_enum_value(Entry<T> const* entries, const char* tag) {
72  for (; entries->tag; ++entries)
73  if (std::strcmp(entries->tag, tag) == 0)
74  return entries->value;
75  throw std::logic_error("invalid tag "s + tag);
76  }
77 
78  template <class T>
79 #if __cplusplus > 201400
80  // extended constexpr support in C++14 and later
81  constexpr
82 #endif
83  T
84  get_enum_value(Entry<T> const* entries, const char* tag, T default_value) {
85  for (; entries->tag; ++entries)
86  if (std::strcmp(entries->tag, tag) == 0)
87  return entries->value;
88  return default_value;
89  }
90 
91 } // namespace
92 
93 // ############################################################################
94 
108 
109 namespace {
110 
111  template <typename T, std::size_t N, typename S>
112  std::array<T, N> getParameterArray(edm::ParameterSet const& config, S const& name) {
113  std::vector<T> values = config.getParameter<std::vector<T>>(name);
114  if (values.size() != N)
116  << "Parameter \"" << name << "\" should have " << N << " elements.\n"
117  << "The number of elements in the configuration is incorrect.";
118  std::array<T, N> ret;
119  std::copy(values.begin(), values.end(), ret.begin());
120  return ret;
121  }
122 
123 } // namespace
124 
126 public:
128 
129  bool filter(edm::Event& event, edm::EventSetup const& setup) override;
130 
131  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
132 
133 private:
134  enum class Mode {
135  ApplyPrescaleValues, // apply the given prescale values
136  ApplyPrescaleRatios, // apply prescales equal to ratio between the given values and the ones read from the EventSetup
137  ApplyColumnValues, // apply the prescale values from the EventSetup corresponding to the given column index
138  ApplyColumnRatios, // apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read from the EventSetup
139  ForcePrescaleValues, // apply the given prescale values, ignoring the prescales and masks already applied
140  ForceColumnValues, // apply the prescale values from the EventSetup corresponding to the given column index, ignoring the prescales and masks already applied
141  Invalid = -1
142  };
143 
144  static const constexpr Entry<Mode> s_modes[]{
145  {Mode::ApplyPrescaleValues, "applyPrescaleValues", "apply the given prescale values"},
146  {Mode::ApplyPrescaleRatios,
147  "applyPrescaleRatios",
148  "apply prescales equal to ratio between the given values and the ones read from the EventSetup"},
149  {Mode::ApplyColumnValues,
150  "applyColumnValues",
151  "apply the prescale values from the EventSetup corresponding to the given column index"},
152  {Mode::ApplyColumnRatios,
153  "applyColumnRatios",
154  "apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read "
155  "from the EventSetup"},
156  {Mode::ForcePrescaleValues,
157  "forcePrescaleValues",
158  "apply the given prescale values, ignoring the prescales and masks already applied"},
159  {Mode::ForceColumnValues,
160  "forceColumnValues",
161  "apply the prescale values from the EventSetup corresponding to the given column index, ignoring the prescales "
162  "and masks already applied"},
163  {Mode::Invalid, nullptr, nullptr}};
164 
165  const Mode m_mode;
167  const std::array<double, GlobalAlgBlk::maxPhysicsTriggers> m_l1tPrescales;
168  std::array<double, GlobalAlgBlk::maxPhysicsTriggers> m_prescales;
169  std::array<unsigned int, GlobalAlgBlk::maxPhysicsTriggers> m_counters;
173 };
174 
175 const constexpr Entry<L1TGlobalPrescaler::Mode> L1TGlobalPrescaler::s_modes[];
176 
178  : m_mode(get_enum_value(s_modes, config.getParameter<std::string>("mode").c_str(), Mode::Invalid)),
179  m_l1tResultsToken(consumes<GlobalAlgBlkBxCollection>(config.getParameter<edm::InputTag>("l1tResults"))),
180  m_l1tPrescales(m_mode == Mode::ApplyPrescaleValues or m_mode == Mode::ApplyPrescaleRatios or
181  m_mode == Mode::ForcePrescaleValues
182  ? getParameterArray<double, GlobalAlgBlk::maxPhysicsTriggers>(config, "l1tPrescales")
183  : std::array<double, GlobalAlgBlk::maxPhysicsTriggers>()),
184  m_l1tPrescaleColumn(m_mode == Mode::ApplyColumnValues or m_mode == Mode::ApplyColumnRatios or
185  m_mode == Mode::ForceColumnValues
186  ? config.getParameter<uint32_t>("l1tPrescaleColumn")
187  : 0),
188  m_oldIndex(-1) {
189  switch (m_mode) {
190  // if the mode is "applyPrescaleValues", use the given values
194  break;
195 
196  // otherwise we need to read the prescale values from the EventSetup
201  m_l1tGtPrescalesVetosToken = esConsumes<L1TGlobalPrescalesVetos, L1TGlobalPrescalesVetosRcd>();
202  break;
203 
204  // this should never happen
205  case Mode::Invalid:
207  << "invalid mode \"" << config.getParameter<std::string>("mode") << "\"";
208  }
209 
210  m_counters.fill(0);
211  produces<GlobalAlgBlkBxCollection>();
212 }
213 
216  event.getByToken(m_l1tResultsToken, handle);
217 
218  // if the input collection does not have any information for bx 0,
219  // produce an empty collection, and fail
220  if (handle->isEmpty(0)) {
221  std::unique_ptr<GlobalAlgBlkBxCollection> result(new GlobalAlgBlkBxCollection());
222  event.put(std::move(result));
223  return false;
224  }
225 
226  // read the prescale index
227  int index = handle->at(0, 0).getPreScColumn();
228  assert(index >= 0);
229 
230  // Mode::ApplyPrescaleRatios
231  // apply prescales equal to ratio between the given values and the ones read from the EventSetup
235  auto const& prescaleTable = h->prescale_table_;
236  if (index >= (int)prescaleTable.size())
238  << fmt::sprintf("The prescale index %d is invalid, it should be smaller than the prescale table size %d.",
239  index,
240  prescaleTable.size());
241  auto const& prescales = prescaleTable[index];
242  unsigned long i = 0;
243  for (; i < std::min(prescales.size(), (unsigned long)GlobalAlgBlk::maxPhysicsTriggers); ++i)
244  if (m_l1tPrescales[i] == 0) {
245  // if the trigger is requested to be disabled, just do it
246  m_prescales[i] = 0.;
247  } else if (prescales[i] == 0) {
248  // othersie, if the trigger was originally disabled, warn the user and keep it that way
249  m_prescales[i] = 0.;
250  edm::LogWarning("L1TGlobalPrescaler")
251  << "Request to enable the trigger " << i << " which was originally disabled\nIt will be kept disabled.";
252  } else if (m_l1tPrescales[i] < prescales[i]) {
253  // if the target prescale is lower than the original prescale, keep the trigger unprescaled
254  m_prescales[i] = 1.;
255  edm::LogWarning("L1TGlobalPrescaler")
256  << "Request to prescale the trigger " << i
257  << " less than it was originally prescaled\nNo further prescale will be applied.";
258  } else {
259  // apply the ratio of the new and old prescales
260  m_prescales[i] = (double)m_l1tPrescales[i] / prescales[i];
261  }
262  for (; i < (unsigned long)GlobalAlgBlk::maxPhysicsTriggers; ++i)
263  // disable the triggers not included in the prescale table
264  m_prescales[i] = 0.;
265  // reset the prescales
266  m_counters.fill(0);
267  m_oldIndex = index;
268  }
269 
270  // Mode::ApplyColumnValues and Mode::ForceColumnValues
271  // apply the prescale values from the EventSetup corresponding to the given column index
274  auto const& prescaleTable = h->prescale_table_;
275  if (m_l1tPrescaleColumn >= (int)prescaleTable.size())
277  << fmt::sprintf("The prescale index %d is invalid, it should be smaller than the prescale table size %d.",
279  prescaleTable.size());
281  unsigned long i = 0;
282  for (; i < std::min(targets.size(), (unsigned long)GlobalAlgBlk::maxPhysicsTriggers); ++i)
283  // read the prescales from the EventSetup
284  m_prescales[i] = targets[i];
285  for (; i < (unsigned long)GlobalAlgBlk::maxPhysicsTriggers; ++i)
286  // disable the triggers not included in the prescale table
287  m_prescales[i] = 0.;
288  // reset the prescales
289  m_counters.fill(0);
291  }
292 
293  // Mode::ApplyColumnRatios
294  // apply prescales equal to ratio between the values corresponsing to the given column index, and the ones read from the EventSetup
297  auto const& prescaleTable = h->prescale_table_;
298  if (index >= (int)prescaleTable.size())
300  << fmt::sprintf("The prescale index %d is invalid, it should be smaller than the prescale table size %d.",
301  index,
302  prescaleTable.size());
303  if (m_l1tPrescaleColumn >= (int)prescaleTable.size())
305  << fmt::sprintf("The prescale index %d is invalid, it should be smaller than the prescale table size %d.",
307  prescaleTable.size());
308  auto const& prescales = prescaleTable[index];
310  unsigned long i = 0;
311  for (; i < std::min({prescales.size(), targets.size(), (unsigned long)GlobalAlgBlk::maxPhysicsTriggers}); ++i)
312  if (prescales[i] == 0)
313  // if the trigger was disabled, keep it disabled
314  m_prescales[i] = 0.;
315  else
316  // if the target prescale is lower than the original prescale, keep the trigger unprescaled
317  m_prescales[i] = targets[i] < prescales[i] ? 1. : (double)targets[i] / prescales[i];
318  for (; i < (unsigned long)GlobalAlgBlk::maxPhysicsTriggers; ++i)
319  // disable the triggers not included in the prescale table
320  m_prescales[i] = 0.;
321  // reset the prescales
322  m_counters.fill(0);
323  m_oldIndex = index;
324  }
325 
326  // make a copy of the GlobalAlgBlk for bx 0
327  GlobalAlgBlk algoBlock = handle->at(0, 0);
328 
329  bool finalOr = false;
330  std::vector<bool> const& decision = (m_mode == Mode::ForceColumnValues or m_mode == Mode::ForcePrescaleValues)
331  ? algoBlock.getAlgoDecisionInitial()
332  : algoBlock.getAlgoDecisionFinal();
333 
334  for (unsigned int i = 0; i < GlobalAlgBlk::maxPhysicsTriggers; ++i) {
335  if (m_prescales[i] == 0) {
336  // mask this trigger: reset the bit
337  algoBlock.setAlgoDecisionFinal(i, false);
338  } else if (decision[i]) {
339  // prescale this trigger
340  ++m_counters[i];
341  if (std::fmod(m_counters[i], m_prescales[i]) < 1) {
342  // the prescale is successful, set the bit
343  algoBlock.setAlgoDecisionFinal(i, true);
344  finalOr = true;
345  } else {
346  // the prescale failed, reset the bit
347  algoBlock.setAlgoDecisionFinal(i, false);
348  }
349  }
350  }
351 
352  // set the final OR
353  algoBlock.setFinalORPreVeto(finalOr);
354  if (algoBlock.getFinalORVeto())
355  finalOr = false;
356  algoBlock.setFinalOR(finalOr);
357 
358  // set the new prescale column
361 
362  // create a new GlobalAlgBlkBxCollection, and set the new prescaled decisions for bx 0
363  std::unique_ptr<GlobalAlgBlkBxCollection> result(new GlobalAlgBlkBxCollection());
364  result->push_back(0, algoBlock);
365  event.put(std::move(result));
366 
367  return finalOr;
368 }
369 
371  // collection with the original uGT results
372  edm::ParameterDescription<edm::InputTag> l1tResults("l1tResults", edm::InputTag("gtStage2Digis"), true);
373  l1tResults.setComment("Collection with the original uGT results");
374 
375  // define how to apply the prescale values
376  edm::ParameterDescription<std::string> mode("mode", "applyPrescaleValues", true);
377  mode.setComment(build_comment_from_entries("Define how to apply the prescale values:", s_modes));
378 
379  // target prescale values (for modes "applyPrescaleValues" or "applyPrescaleRatios")
381  "l1tPrescales", std::vector<double>(GlobalAlgBlk::maxPhysicsTriggers, 1.), true);
382  l1tPrescales.setComment(
383  "Target prescale values (for modes \"applyPrescaleValues\", \"applyPrescaleRatios\" or \"forcePrescaleValues\")");
384 
385  // target prescale column (for modes "applyColumnValues" or "applyColumnRatios")
386  edm::ParameterDescription<uint32_t> l1tPrescaleColumn("l1tPrescaleColumn", 0, true);
387  l1tPrescaleColumn.setComment(
388  "Target prescale column (for modes \"applyColumnValues\", \"applyColumnRatios\" or \"forceColumnValues\")");
389 
390  // validaton of all possible configurations and applyPrescaleValues example
391  {
393  desc.addNode(l1tResults);
394  desc.ifValue(
395  mode,
396  // if mode is "applyPrescaleValues", "applyPrescaleRatios" or "forcePrescaleValues", read the target prescales
397  "applyPrescaleValues" >> l1tPrescales or "applyPrescaleRatios" >> l1tPrescales or
398  "forcePrescaleValues" >> l1tPrescales or
399  // if mode is "applyColumnValues", "applyColumnRatios" or "forceColumnValues", read the target column
400  "applyColumnValues" >> l1tPrescaleColumn or "applyColumnRatios" >> l1tPrescaleColumn or
401  "forceColumnValues" >> l1tPrescaleColumn);
402  descriptions.add("l1tGlobalPrescaler", desc);
403  }
404 
405  // applyColumnRatios example
406  {
408  desc.addNode(l1tResults);
409  desc.add<std::string>("mode", "applyColumnRatios")
410  ->setComment(
411  "apply prescales equal to ratio between the values corresponsing to the given column index, and the ones "
412  "read from the EventSetup");
413  desc.addNode(l1tPrescaleColumn);
414  descriptions.add("l1tGlobalPrescalerTargetColumn", desc);
415  }
416 }
417 
418 // register as a framework plugin
ConfigurationDescriptions.h
runTheMatrix.ret
ret
prodAgent to be discontinued
Definition: runTheMatrix.py:543
L1TGlobalPrescalesVetosRcd
Definition: L1TGlobalPrescalesVetosRcd.h:11
L1TGlobalPrescaler::m_l1tGtPrescalesVetosToken
edm::ESGetToken< L1TGlobalPrescalesVetos, L1TGlobalPrescalesVetosRcd > m_l1tGtPrescalesVetosToken
Definition: L1TGlobalPrescaler.cc:172
GlobalAlgBlk::getFinalORVeto
const bool getFinalORVeto() const
Definition: GlobalAlgBlk.h:69
mps_fire.i
i
Definition: mps_fire.py:428
L1TGlobalPrescaler::m_prescales
std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_prescales
Definition: L1TGlobalPrescaler.cc:168
MessageLogger.h
L1TGlobalPrescaler::m_l1tPrescaleColumn
const int m_l1tPrescaleColumn
Definition: L1TGlobalPrescaler.cc:170
L1TGlobalPrescaler::Mode::ApplyColumnValues
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
ESHandle.h
L1TGlobalPrescaler::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: L1TGlobalPrescaler.cc:370
edm::errors::LogicError
Definition: EDMException.h:37
L1TGlobalPrescaler::Mode::ApplyPrescaleValues
hltrates_dqm_sourceclient-live_cfg.prescaleTable
prescaleTable
Definition: hltrates_dqm_sourceclient-live_cfg.py:88
patZpeak.handle
handle
Definition: patZpeak.py:23
min
T min(T a, T b)
Definition: MathUtil.h:58
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm
HLT enums.
Definition: AlignableModifier.h:19
mps_splice.entry
entry
Definition: mps_splice.py:68
edmLumisInFiles.description
description
Definition: edmLumisInFiles.py:11
L1TGlobalPrescaler::s_modes
static const constexpr Entry< Mode > s_modes[]
Definition: L1TGlobalPrescaler.cc:144
ALCARECOPromptCalibProdSiPixelAli0T_cff.mode
mode
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:96
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
L1TGlobalPrescaler::Mode::ApplyPrescaleRatios
cms::cuda::assert
assert(be >=bs)
L1TGlobalPrescaler::Mode
Mode
Definition: L1TGlobalPrescaler.cc:134
L1TGlobalPrescaler::m_l1tResultsToken
const edm::EDGetTokenT< GlobalAlgBlkBxCollection > m_l1tResultsToken
Definition: L1TGlobalPrescaler.cc:166
mps_check.array
array
Definition: mps_check.py:216
GlobalAlgBlkBxCollection
BXVector< GlobalAlgBlk > GlobalAlgBlkBxCollection
Definition: GlobalAlgBlk.h:31
make_array
std::array< T, N > make_array(std::vector< T > const &values)
Definition: L1TGlobalPrescaler.cc:12
Entry::Entry
Entry(const ALIstring &type)
Definition: Entry.cc:22
L1TGlobalPrescaler::m_counters
std::array< unsigned int, GlobalAlgBlk::maxPhysicsTriggers > m_counters
Definition: L1TGlobalPrescaler.cc:169
edm::Handle
Definition: AssociativeIterator.h:50
ESGetToken.h
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
L1TGlobalPrescalesVetosRcd.h
edm::Exception
Definition: EDMException.h:77
EDFilter.h
EDMException.h
BXVector
Definition: BXVector.h:15
config
Definition: config.py:1
GlobalAlgBlk::setPreScColumn
void setPreScColumn(int psC)
Definition: GlobalAlgBlk.h:61
MakerMacros.h
alignCSCRings.s
s
Definition: alignCSCRings.py:92
L1TGlobalPrescaler::filter
bool filter(edm::Event &event, edm::EventSetup const &setup) override
Definition: L1TGlobalPrescaler.cc:214
h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::ESHandle
Definition: DTSurvey.h:22
N
#define N
Definition: blowfish.cc:9
empty
bool empty(T const &container)
Definition: L1TGlobalPrescaler.cc:20
GlobalAlgBlk::setFinalOR
void setFinalOR(bool fOR)
Definition: GlobalAlgBlk.h:60
ALCARECOTkAlBeamHalo_cff.filter
filter
Definition: ALCARECOTkAlBeamHalo_cff.py:27
GlobalAlgBlk::setAlgoDecisionFinal
void setAlgoDecisionFinal(unsigned int bit, bool val)
Definition: GlobalAlgBlk.cc:94
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
L1TGlobalPrescaler::m_mode
const Mode m_mode
Definition: L1TGlobalPrescaler.cc:165
edm::ParameterSet
Definition: ParameterSet.h:47
L1TGlobalPrescaler::Mode::Invalid
Event.h
L1TGlobalPrescaler
Definition: L1TGlobalPrescaler.cc:125
makeGlobalPositionRcd_cfg.tag
tag
Definition: makeGlobalPositionRcd_cfg.py:6
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
hltrates_dqm_sourceclient-live_cfg.prescales
prescales
Definition: hltrates_dqm_sourceclient-live_cfg.py:90
GlobalAlgBlk.h
edm::EventSetup
Definition: EventSetup.h:58
Invalid
Definition: hltDiff.cc:247
GlobalAlgBlk::getAlgoDecisionInitial
std::vector< bool > const & getAlgoDecisionInitial() const
Get decision bits.
Definition: GlobalAlgBlk.h:82
get
#define get
edm::ESGetToken< L1TGlobalPrescalesVetos, L1TGlobalPrescalesVetosRcd >
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
GlobalAlgBlk::setFinalORPreVeto
void setFinalORPreVeto(bool fOR)
Definition: GlobalAlgBlk.h:59
L1TGlobalPrescaler::Mode::ApplyColumnRatios
L1TGlobalPrescalesVetos.h
PDWG_DiJetAODSkim_cff.l1tResults
l1tResults
Definition: PDWG_DiJetAODSkim_cff.py:8
dqmd_manager.targets
targets
Definition: dqmd_manager.py:88
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
L1TGlobalPrescaler::L1TGlobalPrescaler
L1TGlobalPrescaler(edm::ParameterSet const &config)
Definition: L1TGlobalPrescaler.cc:177
Frameworkfwd.h
GlobalAlgBlk::getAlgoDecisionFinal
std::vector< bool > const & getAlgoDecisionFinal() const
Definition: GlobalAlgBlk.h:84
edm::one::EDFilter
Definition: EDFilter.h:30
T
long double T
Definition: Basic3DVectorLD.h:48
relativeConstraints.value
value
Definition: relativeConstraints.py:53
Exception
Definition: hltDiff.cc:245
L1TGlobalPrescaler::m_l1tPrescales
const std::array< double, GlobalAlgBlk::maxPhysicsTriggers > m_l1tPrescales
Definition: L1TGlobalPrescaler.cc:167
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
EventSetup.h
or
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
S
Definition: CSCDBL1TPParametersExtended.h:16
L1TGlobalPrescaler::Mode::ForceColumnValues
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
L1TGlobalPrescaler::m_oldIndex
int m_oldIndex
Definition: L1TGlobalPrescaler.cc:171
mps_fire.result
result
Definition: mps_fire.py:311
ParameterSet.h
edm::ParameterDescriptionNode::setComment
void setComment(std::string const &value)
Definition: ParameterDescriptionNode.cc:106
GlobalAlgBlk::maxPhysicsTriggers
static constexpr unsigned int maxPhysicsTriggers
Definition: GlobalAlgBlk.h:52
event
Definition: event.py:1
GlobalAlgBlk
Definition: GlobalAlgBlk.h:41
edm::Event
Definition: Event.h:73
edm::ParameterDescription
Definition: ParameterDescription.h:110
edm::errors::Configuration
Definition: EDMException.h:36
edm::InputTag
Definition: InputTag.h:15
L1TGlobalPrescaler::Mode::ForcePrescaleValues