CMS 3D CMS Logo

HLTConfigData.cc
Go to the documentation of this file.
1 
13 
14 #include <unordered_set>
15 #include <iostream>
16 
17 //Using this function with the 'const static within s_dummyPSet'
18 // guarantees that even if multiple threads call s_dummyPSet at the
19 // same time, only the 'first' one registers the dummy PSet.
22  dummy.registerIt();
23  return dummy;
24 }
25 
26 static const edm::ParameterSet* s_dummyPSet() {
27  static const edm::ParameterSet dummyPSet{initializeDummyPSet()};
28  return &dummyPSet;
29 }
30 
32  : processPSet_(s_dummyPSet()),
33  processName_(""),
34  globalTag_(""),
35  tableName_(),
36  triggerNames_(),
37  moduleLabels_(),
38  saveTagsModules_(),
39  triggerIndex_(),
40  moduleIndex_(),
41  l1tType_(0),
42  hltL1GTSeeds_(),
43  hltL1TSeeds_(),
44  streamNames_(),
45  streamIndex_(),
46  streamContents_(),
47  datasetNames_(),
48  datasetIndex_(),
49  datasetContents_(),
50  hltPrescaleTable_() {
51  if (processPSet_->id().isValid()) {
52  extract();
53  }
54 }
55 
57  : processPSet_(iPSet),
58  processName_(""),
59  globalTag_(""),
60  tableName_(),
61  triggerNames_(),
62  moduleLabels_(),
63  saveTagsModules_(),
64  triggerIndex_(),
65  moduleIndex_(),
66  l1tType_(0),
67  hltL1GTSeeds_(),
68  hltL1TSeeds_(),
69  streamNames_(),
70  streamIndex_(),
71  streamContents_(),
72  datasetNames_(),
73  datasetIndex_(),
74  datasetContents_(),
75  hltPrescaleTable_() {
76  if (processPSet_->id().isValid()) {
77  extract();
78  }
79 }
80 
82  using namespace std;
83  using namespace edm;
84  using namespace trigger;
85 
86  // Extract process name
87  if (processPSet_->existsAs<string>("@process_name", true)) {
88  processName_ = processPSet_->getParameter<string>("@process_name");
89  }
90 
91  // Extract globaltag
92  globalTag_ = "";
93  const ParameterSet* GlobalTagPSet(nullptr);
94  if (processPSet_->exists("GlobalTag")) {
95  GlobalTagPSet = &(processPSet_->getParameterSet("GlobalTag"));
96  } else if (processPSet_->exists("PoolDBESSource@GlobalTag")) {
97  GlobalTagPSet = &(processPSet_->getParameterSet("PoolDBESSource@GlobalTag"));
98  }
99  if (GlobalTagPSet && GlobalTagPSet->existsAs<std::string>("globaltag", true)) {
100  globalTag_ = GlobalTagPSet->getParameter<std::string>("globaltag");
101  }
102 
103  // Obtain PSet containing table name (available only in 2_1_10++ files)
104  if (processPSet_->existsAs<ParameterSet>("HLTConfigVersion", true)) {
105  const ParameterSet& HLTPSet(processPSet_->getParameterSet("HLTConfigVersion"));
106  if (HLTPSet.existsAs<string>("tableName", true)) {
107  tableName_ = HLTPSet.getParameter<string>("tableName");
108  }
109  }
110 
111  // Extract trigger paths (= paths - end_paths)
112  if (processPSet_->existsAs<ParameterSet>("@trigger_paths", true)) {
113  const ParameterSet& HLTPSet(processPSet_->getParameterSet("@trigger_paths"));
114  if (HLTPSet.existsAs<vector<string>>("@trigger_paths", true)) {
115  triggerNames_ = HLTPSet.getParameter<vector<string>>("@trigger_paths");
116  }
117  }
118 
119  // Obtain module labels of all modules on all trigger paths
120  const unsigned int n(size());
121  moduleLabels_.reserve(n);
122  for (unsigned int i = 0; i != n; ++i) {
123  if (processPSet_->existsAs<vector<string>>(triggerNames_[i], true)) {
125  processPSet_->getParameter<vector<string>>(triggerNames_[i])));
126  }
127  }
128  saveTagsModules_.reserve(n);
129  vector<string> labels;
130  for (unsigned int i = 0; i != n; ++i) {
131  labels.clear();
132  const vector<string>& modules(moduleLabels(i));
133  const unsigned int m(modules.size());
134  labels.reserve(m);
135  for (unsigned int j = 0; j != m; ++j) {
136  const string& label(modules[j]);
137  if (saveTags(label))
138  labels.push_back(label);
139  }
140  saveTagsModules_.push_back(labels);
141  }
142 
143  // Fill index maps for fast lookup
144  moduleIndex_.resize(n);
145  for (unsigned int i = 0; i != n; ++i) {
147  moduleIndex_[i].clear();
148  const unsigned int m(size(i));
149  for (unsigned int j = 0; j != m; ++j) {
151  }
152  }
153 
154  // Extract and fill HLTLevel1GTSeed information for each trigger path
155  hltL1GTSeeds_.resize(n);
156  for (unsigned int i = 0; i != n; ++i) {
157  hltL1GTSeeds_[i].clear();
158  const unsigned int m(size(i));
159  for (unsigned int j = 0; j != m; ++j) {
160  const string& label(moduleLabels_[i][j]);
161  //HLTConfigProvider sees ignored modules as "-modname"
162  //if the HLTLevel1GTSeed is ignored in the config, it shouldnt
163  //count to the number of active HLTLevel1GTSeeds so we now check
164  //for the module being ignored
165  if (label.front() != '-' && moduleType(label) == "HLTLevel1GTSeed") {
167  if (pset != ParameterSet()) {
168  const bool l1Tech(pset.getParameter<bool>("L1TechTriggerSeeding"));
169  const string l1Seed(pset.getParameter<string>("L1SeedsLogicalExpression"));
170  hltL1GTSeeds_[i].push_back(pair<bool, string>(l1Tech, l1Seed));
171  }
172  }
173  }
174  }
175 
176  // Extract and fill HLTL1TSeed information for each trigger path
177  hltL1TSeeds_.resize(n);
178  for (unsigned int i = 0; i != n; ++i) {
179  hltL1TSeeds_[i].clear();
180  const unsigned int m(size(i));
181  for (unsigned int j = 0; j != m; ++j) {
182  const string& label(moduleLabels_[i][j]);
183  //HLTConfigProvider sees ignored modules as "-modname"
184  //if the HLTL1TSeed is ignored in the config, it shouldnt
185  //count to the number of active HLTL1TSeeds so we now check
186  //for the module being ignored
187  if (label.front() != '-' && moduleType(label) == "HLTL1TSeed") {
189  if (pset != ParameterSet()) {
190  const string l1Gtag(pset.getParameter<edm::InputTag>("L1GlobalInputTag").label());
191  // Emulator output is used to ignore L1T prescales
192  if (l1Gtag != "hltGtStage2ObjectMap") {
193  const string l1Seed(pset.getParameter<string>("L1SeedsLogicalExpression"));
194  hltL1TSeeds_[i].push_back(l1Seed);
195  }
196  }
197  }
198  }
199  }
200 
201  // Extract and fill streams information
202  if (processPSet_->existsAs<ParameterSet>("streams", true)) {
203  const ParameterSet& streams(processPSet_->getParameterSet("streams"));
204  streamNames_ = streams.getParameterNamesForType<vector<string>>();
205  sort(streamNames_.begin(), streamNames_.end());
206  const unsigned int n(streamNames_.size());
207  streamContents_.resize(n);
208  for (unsigned int i = 0; i != n; ++i) {
210  streamContents_[i] = streams.getParameter<vector<string>>(streamNames_[i]);
211  sort(streamContents_[i].begin(), streamContents_[i].end());
212  }
213  }
214 
215  // Extract and fill datasets information
216  if (processPSet_->existsAs<ParameterSet>("datasets", true)) {
217  const ParameterSet& datasets(processPSet_->getParameterSet("datasets"));
218  datasetNames_ = datasets.getParameterNamesForType<vector<string>>();
219  sort(datasetNames_.begin(), datasetNames_.end());
220  const unsigned int n(datasetNames_.size());
221  datasetContents_.resize(n);
222  for (unsigned int i = 0; i != n; ++i) {
224  datasetContents_[i] = datasets.getParameter<vector<string>>(datasetNames_[i]);
226  }
227  }
228 
229  // Extract and fill Prescale information
230 
231  // Check various possibilities to get the HLT prescale sets:
232  string prescaleName("");
233  const string preS("PrescaleService");
234  const string preT("PrescaleTable");
235  if (processPSet_->existsAs<ParameterSet>(preS, true)) {
236  prescaleName = preS;
237  } else if (processPSet_->existsAs<ParameterSet>(preT, true)) {
238  prescaleName = preT;
239  }
240  if (prescaleName.empty()) {
242  } else {
243  const ParameterSet& iPS(processPSet_->getParameterSet(prescaleName));
244  string defaultLabel("default");
245  if (iPS.existsAs<string>("lvl1DefaultLabel", true)) {
246  defaultLabel = iPS.getParameter<string>("lvl1DefaultLabel");
247  }
248  vector<string> labels;
249  if (iPS.existsAs<vector<string>>("lvl1Labels", true)) {
250  labels = iPS.getParameter<vector<string>>("lvl1Labels");
251  }
252  unsigned int set(0);
253  const unsigned int n(labels.size());
254  for (unsigned int i = 0; i != n; ++i) {
255  if (labels[i] == defaultLabel)
256  set = i;
257  }
258  map<string, vector<unsigned int>> table;
259  if (iPS.existsAs<vector<ParameterSet>>("prescaleTable", true)) {
260  const vector<ParameterSet>& vpTable(iPS.getParameterSetVector("prescaleTable"));
261  const unsigned int m(vpTable.size());
262  for (unsigned int i = 0; i != m; ++i) {
263  table[vpTable[i].getParameter<std::string>("pathName")] =
264  vpTable[i].getParameter<std::vector<unsigned int>>("prescales");
265  }
266  }
267  if (n > 0) {
269  } else {
271  }
272  }
273 
274  // Determine L1T Type (0=unknown, 1=legacy/stage-1 or 2=stage-2)
275  l1tType_ = 0;
276  unsigned int stage1(0), stage2(0);
277  if (processPSet_->existsAs<std::vector<std::string>>("@all_modules")) {
278  const std::vector<std::string>& allModules(processPSet_->getParameter<std::vector<std::string>>("@all_modules"));
279  for (auto const& allModule : allModules) {
280  if ((moduleType(allModule) == "HLTLevel1GTSeed") or (moduleType(allModule) == "L1GlobalTrigger")) {
281  stage1 += 1;
282  } else if ((moduleType(allModule) == "HLTL1TSeed") or (moduleType(allModule) == "L1TGlobalProducer")) {
283  stage2 += 1;
284  }
285  }
286  }
287  if ((stage1 + stage2) == 0) {
288  l1tType_ = 0;
289  // edm::LogError("HLTConfigData") << " Can't identify l1tType: Process '" << processName_ << "' does not contain any identifying instances!";
290  } else if ((stage1 * stage2) != 0) {
291  l1tType_ = 0;
292  // edm::LogError("HLTConfigData") << " Can't identify l1tType: Process '" << processName_ << "' contains both legacy/stage-1/stage-2 instances!";
293  } else if (stage1 > 0) {
294  l1tType_ = 1;
295  // edm::LogError("HLTConfigData") << " Identified Process '" << processName_ << "' as legacy/stage-1 L1T!";
296  } else {
297  l1tType_ = 2;
298  // edm::LogError("HLTConfigData") << " Identified Process '" << processName_ << "' as stage-2 L1T!";
299  }
300 
301  LogVerbatim("HLTConfigData") << "HLTConfigData: ProcessPSet with name/GT/table/l1tType: '" << processName_ << "' '"
302  << globalTag_ << "' '" << tableName_ << "' " << l1tType_;
303 
304  return;
305 }
306 
307 void HLTConfigData::dump(const std::string& what) const {
308  using namespace std;
309  using namespace edm;
310 
311  if (what == "ProcessPSet") {
312  cout << "HLTConfigData::dump: ProcessPSet = " << endl << *processPSet_ << endl;
313  } else if (what == "ProcessName") {
314  cout << "HLTConfigData::dump: ProcessName = " << processName_ << endl;
315  } else if (what == "GlobalTag") {
316  cout << "HLTConfigData::dump: GlobalTag = " << globalTag_ << endl;
317  } else if (what == "TableName") {
318  cout << "HLTConfigData::dump: TableName = " << tableName_ << endl;
319  } else if (what == "Triggers") {
320  const unsigned int n(size());
321  cout << "HLTConfigData::dump: Triggers: " << n << endl;
322  for (unsigned int i = 0; i != n; ++i) {
323  cout << " " << i << " " << triggerNames_[i] << endl;
324  }
325  } else if (what == "TriggerSeeds") {
326  const unsigned int n(size());
327  cout << "HLTConfigData::dump: TriggerSeeds: " << n << endl;
328  for (unsigned int i = 0; i != n; ++i) {
329  const unsigned int m1(hltL1GTSeeds_[i].size());
330  const unsigned int m2(hltL1TSeeds_[i].size());
331  cout << " " << i << " " << triggerNames_[i] << " " << m1 << "/" << m2 << endl;
332  if (m1 > 0) {
333  for (unsigned int j1 = 0; j1 != m1; ++j1) {
334  cout << " HLTLevel1GTSeed: " << j1 << " " << hltL1GTSeeds_[i][j1].first << "/"
335  << hltL1GTSeeds_[i][j1].second;
336  }
337  cout << endl;
338  }
339  if (m2 > 0) {
340  for (unsigned int j2 = 0; j2 != m2; ++j2) {
341  cout << " HLTL1TSeed: " << j2 << " " << hltL1TSeeds_[i][j2];
342  }
343  cout << endl;
344  }
345  }
346  } else if (what == "Modules") {
347  const unsigned int n(size());
348  cout << "HLTConfigData::dump Triggers and Modules: " << n << endl;
349  for (unsigned int i = 0; i != n; ++i) {
350  const unsigned int m(size(i));
351  cout << i << " " << triggerNames_[i] << " " << m << endl;
352  cout << " - Modules: ";
353  unsigned int nHLTPrescalers(0);
354  unsigned int nHLTLevel1GTSeed(0);
355  unsigned int nHLTL1TSeed(0);
356  for (unsigned int j = 0; j != m; ++j) {
357  const string& label(moduleLabels_[i][j]);
358  const string type(moduleType(label));
359  const string edmtype(moduleEDMType(label));
360  const bool tags(saveTags(label));
361  cout << " " << j << ":" << label << "/" << type << "/" << edmtype << "/" << tags;
362  if (type == "HLTPrescaler")
363  nHLTPrescalers++;
364  if (type == "HLTLevel1GTSeed")
365  nHLTLevel1GTSeed++;
366  if (type == "HLTL1TSeed")
367  nHLTL1TSeed++;
368  }
369  cout << endl;
370  cout << " - Number of HLTPrescaler/HLTLevel1GTSeed/HLTL1TSeed modules: " << nHLTPrescalers << "/"
371  << nHLTLevel1GTSeed << "/" << nHLTL1TSeed << endl;
372  }
373  } else if (what == "StreamNames") {
374  const unsigned int n(streamNames_.size());
375  cout << "HLTConfigData::dump: StreamNames: " << n << endl;
376  for (unsigned int i = 0; i != n; ++i) {
377  cout << " " << i << " " << streamNames_[i] << endl;
378  }
379  } else if (what == "Streams") {
380  const unsigned int n(streamNames_.size());
381  cout << "HLTConfigData::dump: Streams: " << n << endl;
382  for (unsigned int i = 0; i != n; ++i) {
383  const unsigned int m(streamContents_[i].size());
384  cout << " " << i << " " << streamNames_[i] << " " << m << endl;
385  for (unsigned int j = 0; j != m; ++j) {
386  cout << " " << j << " " << streamContents_[i][j] << endl;
387  }
388  }
389  } else if (what == "DatasetNames") {
390  const unsigned int n(datasetNames_.size());
391  cout << "HLTConfigData::dump: DatasetNames: " << n << endl;
392  for (unsigned int i = 0; i != n; ++i) {
393  cout << " " << i << " " << datasetNames_[i] << endl;
394  }
395  } else if (what == "Datasets") {
396  const unsigned int n(datasetNames_.size());
397  cout << "HLTConfigData::dump: Datasets: " << n << endl;
398  for (unsigned int i = 0; i != n; ++i) {
399  const unsigned int m(datasetContents_[i].size());
400  cout << " " << i << " " << datasetNames_[i] << " " << m << endl;
401  for (unsigned int j = 0; j != m; ++j) {
402  cout << " " << j << " " << datasetContents_[i][j] << endl;
403  }
404  }
405  } else if (what == "PrescaleTable") {
406  const unsigned int n(hltPrescaleTable_.size());
407  cout << "HLTConfigData::dump: PrescaleTable: # of sets : " << n << endl;
408  const vector<string>& labels(hltPrescaleTable_.labels());
409  for (unsigned int i = 0; i != n; ++i) {
410  cout << " " << i << "/'" << labels.at(i) << "'";
411  }
412  if (n > 0)
413  cout << endl;
414  const map<string, vector<unsigned int>>& table(hltPrescaleTable_.table());
415  cout << "HLTConfigData::dump: PrescaleTable: # of paths: " << table.size() << endl;
416  const map<string, vector<unsigned int>>::const_iterator tb(table.begin());
417  const map<string, vector<unsigned int>>::const_iterator te(table.end());
418  for (map<string, vector<unsigned int>>::const_iterator ti = tb; ti != te; ++ti) {
419  for (unsigned int i = 0; i != n; ++i) {
420  cout << " " << ti->second.at(i);
421  }
422  cout << " " << ti->first << endl;
423  }
424  } else {
425  cout << "HLTConfigData::dump: Unkown dump request: " << what << endl;
426  }
427  return;
428 }
429 
431 
433 
434 unsigned int HLTConfigData::size() const { return triggerNames_.size(); }
435 unsigned int HLTConfigData::size(unsigned int trigger) const { return moduleLabels_.at(trigger).size(); }
436 unsigned int HLTConfigData::size(const std::string& trigger) const { return size(triggerIndex(trigger)); }
437 
439 const std::vector<std::string>& HLTConfigData::triggerNames() const { return triggerNames_; }
440 const std::string& HLTConfigData::triggerName(unsigned int trigger) const { return triggerNames_.at(trigger); }
441 unsigned int HLTConfigData::triggerIndex(const std::string& trigger) const {
442  const std::map<std::string, unsigned int>::const_iterator index(triggerIndex_.find(trigger));
443  if (index == triggerIndex_.end()) {
444  return size();
445  } else {
446  return index->second;
447  }
448 }
449 
450 const std::vector<std::string>& HLTConfigData::moduleLabels(unsigned int trigger) const {
451  return moduleLabels_.at(trigger);
452 }
453 const std::vector<std::string>& HLTConfigData::moduleLabels(const std::string& trigger) const {
454  return moduleLabels_.at(triggerIndex(trigger));
455 }
456 
457 const std::vector<std::string>& HLTConfigData::saveTagsModules(unsigned int trigger) const {
458  return saveTagsModules_.at(trigger);
459 }
460 const std::vector<std::string>& HLTConfigData::saveTagsModules(const std::string& trigger) const {
462 }
463 
464 const std::string& HLTConfigData::moduleLabel(unsigned int trigger, unsigned int module) const {
465  return moduleLabels_.at(trigger).at(module);
466 }
468  return moduleLabels_.at(triggerIndex(trigger)).at(module);
469 }
470 
471 unsigned int HLTConfigData::moduleIndex(unsigned int trigger, const std::string& module) const {
472  const std::map<std::string, unsigned int>::const_iterator index(moduleIndex_.at(trigger).find(module));
473  if (index == moduleIndex_.at(trigger).end()) {
474  return size(trigger);
475  } else {
476  return index->second;
477  }
478 }
481 }
482 
485  if (pset.existsAs<std::string>("@module_type", true)) {
486  return pset.getParameter<std::string>("@module_type");
487  } else {
488  return "";
489  }
490 }
491 
494  if (pset.existsAs<std::string>("@module_edm_type", true)) {
495  return pset.getParameter<std::string>("@module_edm_type");
496  } else {
497  return "";
498  }
499 }
500 
502 
504  //HLTConfigProvider sees ignored modules as "-modname"
505  //but in the PSet, the module is named "modname"
506  //so if it starts with "-", you need to remove the "-" from the
507  //module name to be able to retreive it from the PSet
508  if (processPSet_->exists(module.front() != '-' ? module : module.substr(1))) {
509  return processPSet_->getParameterSet(module.front() != '-' ? module : module.substr(1));
510  } else {
511  return *s_dummyPSet();
512  }
513 }
514 
517  if (pset.existsAs<bool>("saveTags", true)) {
518  return pset.getParameter<bool>("saveTags");
519  } else {
520  return false;
521  }
522 }
523 
524 unsigned int HLTConfigData::l1tType() const { return l1tType_; }
525 
526 const std::vector<std::vector<std::pair<bool, std::string>>>& HLTConfigData::hltL1GTSeeds() const {
527  return hltL1GTSeeds_;
528 }
529 
530 const std::vector<std::pair<bool, std::string>>& HLTConfigData::hltL1GTSeeds(const std::string& trigger) const {
532 }
533 
534 const std::vector<std::pair<bool, std::string>>& HLTConfigData::hltL1GTSeeds(unsigned int trigger) const {
535  return hltL1GTSeeds_.at(trigger);
536 }
537 
538 const std::vector<std::vector<std::string>>& HLTConfigData::hltL1TSeeds() const { return hltL1TSeeds_; }
539 
540 const std::vector<std::string>& HLTConfigData::hltL1TSeeds(const std::string& trigger) const {
542 }
543 
544 const std::vector<std::string>& HLTConfigData::hltL1TSeeds(unsigned int trigger) const {
545  return hltL1TSeeds_.at(trigger);
546 }
547 
549 const std::vector<std::string>& HLTConfigData::streamNames() const { return streamNames_; }
550 
551 const std::string& HLTConfigData::streamName(unsigned int stream) const { return streamNames_.at(stream); }
552 
553 unsigned int HLTConfigData::streamIndex(const std::string& stream) const {
554  const std::map<std::string, unsigned int>::const_iterator index(streamIndex_.find(stream));
555  if (index == streamIndex_.end()) {
556  return streamNames_.size();
557  } else {
558  return index->second;
559  }
560 }
561 
562 const std::vector<std::vector<std::string>>& HLTConfigData::streamContents() const { return streamContents_; }
563 
564 const std::vector<std::string>& HLTConfigData::streamContent(unsigned int stream) const {
565  return streamContents_.at(stream);
566 }
567 
568 const std::vector<std::string>& HLTConfigData::streamContent(const std::string& stream) const {
570 }
571 
573 const std::vector<std::string>& HLTConfigData::datasetNames() const { return datasetNames_; }
574 
575 const std::string& HLTConfigData::datasetName(unsigned int dataset) const { return datasetNames_.at(dataset); }
576 
577 unsigned int HLTConfigData::datasetIndex(const std::string& dataset) const {
578  const std::map<std::string, unsigned int>::const_iterator index(datasetIndex_.find(dataset));
579  if (index == datasetIndex_.end()) {
580  return datasetNames_.size();
581  } else {
582  return index->second;
583  }
584 }
585 
586 const std::vector<std::vector<std::string>>& HLTConfigData::datasetContents() const { return datasetContents_; }
587 
588 const std::vector<std::string>& HLTConfigData::datasetContent(unsigned int dataset) const {
589  return datasetContents_.at(dataset);
590 }
591 
592 const std::vector<std::string>& HLTConfigData::datasetContent(const std::string& dataset) const {
594 }
595 
596 unsigned int HLTConfigData::prescaleSize() const { return hltPrescaleTable_.size(); }
597 unsigned int HLTConfigData::prescaleValue(unsigned int set, const std::string& trigger) const {
598  return hltPrescaleTable_.prescale(set, trigger);
599 }
600 
601 const std::vector<std::string>& HLTConfigData::prescaleLabels() const { return hltPrescaleTable_.labels(); }
602 const std::map<std::string, std::vector<unsigned int>>& HLTConfigData::prescaleTable() const {
603  return hltPrescaleTable_.table();
604 }
605 
Log< level::Info, true > LogVerbatim
const std::string & datasetName(unsigned int dataset) const
name of dataset with index i
const std::vector< std::string > & datasetContent(unsigned int dataset) const
names of trigger paths in dataset with index i
const std::vector< std::string > & labels() const
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const std::string & streamName(unsigned int stream) const
name of stream with index i
std::map< std::string, unsigned int > triggerIndex_
void dump(const std::string &what) const
Dumping config info to cout.
const std::string & processName() const
Accessors (const methods)
const std::vector< std::string > & streamNames() const
Streams.
edm::ParameterSetID id() const
technical: id() function needed for use with ThreadSafeRegistry
bool exists(std::string const &parameterName) const
checks if a parameter exists
The single EDProduct containing the HLT Prescale Table.
ParameterSet const & getParameterSet(std::string const &) const
std::vector< std::string > datasetNames_
const std::vector< std::string > & streamContent(unsigned int stream) const
names of datasets in stream with index i
const std::vector< std::vector< std::string > > & streamContents() const
names of datasets for all streams
const std::map< std::string, std::vector< unsigned int > > & prescaleTable() const
std::string const & label() const
Definition: InputTag.h:36
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
unsigned int moduleIndex(unsigned int trigger, const std::string &module) const
slot position of module on trigger path (0 - size-1)
unsigned int prescaleValue(unsigned int set, const std::string &trigger) const
HLT prescale value in specific prescale set for a specific trigger path.
const std::vector< std::string > & saveTagsModules(unsigned int trigger) const
bool isValid() const
Definition: Hash.h:141
std::vector< std::vector< std::string > > saveTagsModules_
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
const std::string & tableName() const
HLT ConfDB table name.
char const * label
std::vector< std::map< std::string, unsigned int > > moduleIndex_
std::string globalTag_
ParameterSetID id() const
std::vector< std::string > configurationToModuleBitPosition(std::vector< std::string >)
unsigned int prescale(const std::string &trigger) const
high-level user access method: prescale for given trigger path
std::vector< std::vector< std::string > > streamContents_
std::vector< std::string > triggerNames_
const std::map< std::string, std::vector< unsigned int > > & table() const
std::vector< std::vector< std::string > > datasetContents_
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 std::vector< std::vector< std::string > > & datasetContents() const
names of trigger paths for all datasets
std::string tableName_
trigger::HLTPrescaleTable hltPrescaleTable_
std::vector< std::vector< std::string > > moduleLabels_
static const edm::ParameterSet initializeDummyPSet()
std::map< std::string, unsigned int > streamIndex_
unsigned int streamIndex(const std::string &stream) const
index of stream with name
const std::vector< std::string > & prescaleLabels() const
low-level data member access
void extract()
extract information into data members - called by init() methods
const std::vector< std::string > & datasetNames() const
Datasets.
std::vector< std::vector< std::string > > hltL1TSeeds_
std::map< std::string, unsigned int > datasetIndex_
const std::vector< std::string > & triggerNames() const
names of trigger paths
unsigned int size() const
consistency condition: all vectors must have the same length
const edm::ParameterSet * processPSet_
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
unsigned int l1tType() const
L1T type (0=unknown, 1=legacy/stage-1 or 2=stage-2)
const std::string & globalTag() const
GlobalTag.globaltag.
const std::string moduleType(const std::string &module) const
C++ class name of module.
bool saveTags(const std::string &module) const
Is module an L3 filter (ie, tracked saveTags=true)
unsigned int size() const
number of trigger paths in trigger table
unsigned int prescaleSize() const
HLT enums.
const std::vector< std::vector< std::string > > & hltL1TSeeds() const
std::vector< std::string > streamNames_
const std::vector< std::vector< std::pair< bool, std::string > > > & hltL1GTSeeds() const
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
const std::string moduleEDMType(const std::string &module) const
C++ base class name of module.
const edm::ParameterSet & processPSet() const
ParameterSet of process.
static const edm::ParameterSet * s_dummyPSet()
unsigned int datasetIndex(const std::string &dataset) const
index of dataset with name
const std::string & moduleLabel(unsigned int trigger, unsigned int module) const
std::string processName_
unsigned int l1tType_
const std::string & triggerName(unsigned int triggerIndex) const