CMS 3D CMS Logo

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