CMS 3D CMS Logo

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.
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_(""),
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(nullptr);
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) {
128  moduleIndex_[i][moduleLabels_[i][j]]=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 l1Gtag(pset.getParameter<edm::InputTag>("L1GlobalInputTag").label());
169  // Emulator output is used to ignore L1T prescales
170  if (l1Gtag!="hltGtStage2ObjectMap") {
171  const string l1Seed(pset.getParameter<string>("L1SeedsLogicalExpression"));
172  hltL1TSeeds_[i].push_back(l1Seed);
173  }
174  }
175  }
176  }
177  }
178 
179  // Extract and fill streams information
180  if (processPSet_->existsAs<ParameterSet>("streams",true)) {
181  const ParameterSet& streams(processPSet_->getParameterSet("streams"));
182  streamNames_=streams.getParameterNamesForType<vector<string> >();
183  sort(streamNames_.begin(),streamNames_.end());
184  const unsigned int n(streamNames_.size());
185  streamContents_.resize(n);
186  for (unsigned int i=0; i!=n; ++i) {
187  streamIndex_[streamNames_[i]]=i;
188  streamContents_[i]=streams.getParameter<vector<string> >(streamNames_[i]);
190  }
191 
192  }
193 
194  // Extract and fill datasets information
195  if (processPSet_->existsAs<ParameterSet>("datasets",true)) {
196  const ParameterSet& datasets(processPSet_->getParameterSet("datasets"));
197  datasetNames_=datasets.getParameterNamesForType<vector<string> >();
198  sort(datasetNames_.begin(),datasetNames_.end());
199  const unsigned int n(datasetNames_.size());
200  datasetContents_.resize(n);
201  for (unsigned int i=0; i!=n; ++i) {
202  datasetIndex_[datasetNames_[i]]=i;
203  datasetContents_[i]=datasets.getParameter< vector<string> >(datasetNames_[i]);
205  }
206  }
207 
208  // Extract and fill Prescale information
209 
210  // Check various possibilities to get the HLT prescale sets:
211  string prescaleName("");
212  const string preS("PrescaleService");
213  const string preT("PrescaleTable");
214  if (processPSet_->existsAs<ParameterSet>(preS,true)) {
215  prescaleName=preS;
216  } else if ( processPSet_->existsAs<ParameterSet>(preT,true)) {
217  prescaleName=preT;
218  }
219  if (prescaleName=="") {
221  } else {
222  const ParameterSet& iPS(processPSet_->getParameterSet(prescaleName));
223  string defaultLabel("default");
224  if (iPS.existsAs<string>("lvl1DefaultLabel",true)) {
225  defaultLabel = iPS.getParameter<string>("lvl1DefaultLabel");
226  }
227  vector<string> labels;
228  if (iPS.existsAs<vector<string> >("lvl1Labels",true)) {
229  labels = iPS.getParameter<vector<string> >("lvl1Labels");
230  }
231  unsigned int set(0);
232  const unsigned int n(labels.size());
233  for (unsigned int i=0; i!=n; ++i) {
234  if (labels[i]==defaultLabel) set=i;
235  }
236  map<string,vector<unsigned int> > table;
237  if (iPS.existsAs< vector<ParameterSet> >("prescaleTable",true)) {
238  const vector<ParameterSet>& vpTable(iPS.getParameterSetVector("prescaleTable"));
239  const unsigned int m (vpTable.size());
240  for (unsigned int i=0; i!=m; ++i) {
241  table[vpTable[i].getParameter<std::string>("pathName")] =
242  vpTable[i].getParameter<std::vector<unsigned int> >("prescales");
243  }
244  }
245  if (n>0) {
246  hltPrescaleTable_=HLTPrescaleTable(set,labels,table);
247  } else {
249  }
250 
251  }
252 
253  // Determine L1T Type (0=unknown, 1=legacy/stage-1 or 2=stage-2)
254  l1tType_ = 0;
255  unsigned int stage1(0),stage2(0);
256  if (processPSet_->existsAs<std::vector<std::string>>("@all_modules")) {
257  const std::vector<std::string>& allModules(processPSet_->getParameter<std::vector<std::string>>("@all_modules"));
258  for (auto const & allModule : allModules) {
259  if ((moduleType(allModule) == "HLTLevel1GTSeed") or (moduleType(allModule) == "L1GlobalTrigger")){
260  stage1 += 1;
261  } else if ((moduleType(allModule) == "HLTL1TSeed") or (moduleType(allModule) == "L1TGlobalProducer")){
262  stage2 += 1;
263  }
264  }
265  }
266  if ( (stage1+stage2)==0 ) {
267  l1tType_=0;
268  // edm::LogError("HLTConfigData") << " Can't identify l1tType: Process '" << processName_ << "' does not contain any identifying instances!";
269  } else if ( (stage1*stage2)!=0 ) {
270  l1tType_=0;
271  // edm::LogError("HLTConfigData") << " Can't identify l1tType: Process '" << processName_ << "' contains both legacy/stage-1/stage-2 instances!";
272  } else if (stage1>0) {
273  l1tType_=1;
274  // edm::LogError("HLTConfigData") << " Identified Process '" << processName_ << "' as legacy/stage-1 L1T!";
275  } else {
276  l1tType_=2;
277  // edm::LogError("HLTConfigData") << " Identified Process '" << processName_ << "' as stage-2 L1T!";
278  }
279 
280  LogVerbatim("HLTConfigData") << "HLTConfigData: ProcessPSet with name/GT/table/l1tType: '"
281  << processName_ << "' '"
282  << globalTag_ << "' '"
283  << tableName_ << "' "
284  << l1tType_;
285 
286  return;
287 }
288 
289 void HLTConfigData::dump(const std::string& what) const {
290  using namespace std;
291  using namespace edm;
292 
293  if (what=="ProcessPSet") {
294  cout << "HLTConfigData::dump: ProcessPSet = " << endl << *processPSet_ << endl;
295  } else if (what=="ProcessName") {
296  cout << "HLTConfigData::dump: ProcessName = " << processName_ << endl;
297  } else if (what=="GlobalTag") {
298  cout << "HLTConfigData::dump: GlobalTag = " << globalTag_ << endl;
299  } else if (what=="TableName") {
300  cout << "HLTConfigData::dump: TableName = " << tableName_ << endl;
301  } else if (what=="Triggers") {
302  const unsigned int n(size());
303  cout << "HLTConfigData::dump: Triggers: " << n << endl;
304  for (unsigned int i=0; i!=n; ++i) {
305  cout << " " << i << " " << triggerNames_[i] << endl;
306  }
307  } else if (what=="TriggerSeeds") {
308  const unsigned int n(size());
309  cout << "HLTConfigData::dump: TriggerSeeds: " << n << endl;
310  for (unsigned int i=0; i!=n; ++i) {
311  const unsigned int m1(hltL1GTSeeds_[i].size());
312  const unsigned int m2(hltL1TSeeds_[i].size());
313  cout << " " << i << " " << triggerNames_[i] << " " << m1 << "/" << m2 << endl;
314  if (m1>0) {
315  for (unsigned int j1=0; j1!=m1; ++j1) {
316  cout << " HLTLevel1GTSeed: " << j1
317  << " " << hltL1GTSeeds_[i][j1].first
318  << "/" << hltL1GTSeeds_[i][j1].second;
319  }
320  cout << endl;
321  }
322  if (m2>0) {
323  for (unsigned int j2=0; j2!=m2; ++j2) {
324  cout << " HLTL1TSeed: " << j2
325  << " " << hltL1TSeeds_[i][j2];
326  }
327  cout << endl;
328  }
329  }
330  } else if (what=="Modules") {
331  const unsigned int n(size());
332  cout << "HLTConfigData::dump Triggers and Modules: " << n << endl;
333  for (unsigned int i=0; i!=n; ++i) {
334  const unsigned int m(size(i));
335  cout << i << " " << triggerNames_[i] << " " << m << endl;
336  cout << " - Modules: ";
337  unsigned int nHLTPrescalers(0);
338  unsigned int nHLTLevel1GTSeed(0);
339  unsigned int nHLTL1TSeed(0);
340  for (unsigned int j=0; j!=m; ++j) {
341  const string& label(moduleLabels_[i][j]);
342  const string type(moduleType(label));
343  const string edmtype(moduleEDMType(label));
344  const bool tags(saveTags(label));
345  cout << " " << j << ":" << label << "/" << type << "/" << edmtype << "/" << tags;
346  if (type=="HLTPrescaler") nHLTPrescalers++;
347  if (type=="HLTLevel1GTSeed") nHLTLevel1GTSeed++;
348  if (type=="HLTL1TSeed") nHLTL1TSeed++;
349  }
350  cout << endl;
351  cout << " - Number of HLTPrescaler/HLTLevel1GTSeed/HLTL1TSeed modules: "
352  << nHLTPrescalers << "/" << nHLTLevel1GTSeed << "/" << nHLTL1TSeed << endl;
353  }
354  } else if (what=="StreamNames") {
355  const unsigned int n(streamNames_.size());
356  cout << "HLTConfigData::dump: StreamNames: " << n << endl;
357  for (unsigned int i=0; i!=n; ++i) {
358  cout << " " << i << " " << streamNames_[i] << endl;
359  }
360  } else if (what=="Streams") {
361  const unsigned int n(streamNames_.size());
362  cout << "HLTConfigData::dump: Streams: " << n << endl;
363  for (unsigned int i=0; i!=n; ++i) {
364  const unsigned int m(streamContents_[i].size());
365  cout << " " << i << " " << streamNames_[i] << " " << m << endl;
366  for (unsigned int j=0; j!=m; ++j) {
367  cout << " " << j << " " << streamContents_[i][j] << endl;
368  }
369  }
370  } else if (what=="DatasetNames") {
371  const unsigned int n(datasetNames_.size());
372  cout << "HLTConfigData::dump: DatasetNames: " << n << endl;
373  for (unsigned int i=0; i!=n; ++i) {
374  cout << " " << i << " " << datasetNames_[i] << endl;
375  }
376  } else if (what=="Datasets") {
377  const unsigned int n(datasetNames_.size());
378  cout << "HLTConfigData::dump: Datasets: " << n << endl;
379  for (unsigned int i=0; i!=n; ++i) {
380  const unsigned int m(datasetContents_[i].size());
381  cout << " " << i << " " << datasetNames_[i] << " " << m << endl;
382  for (unsigned int j=0; j!=m; ++j) {
383  cout << " " << j << " " << datasetContents_[i][j] << endl;
384  }
385  }
386  } else if (what=="PrescaleTable") {
387  const unsigned int n (hltPrescaleTable_.size());
388  cout << "HLTConfigData::dump: PrescaleTable: # of sets : " << n << endl;
389  const vector<string>& labels(hltPrescaleTable_.labels());
390  for (unsigned int i=0; i!=n; ++i) {
391  cout << " " << i << "/'" << labels.at(i) << "'";
392  }
393  if (n>0) cout << endl;
394  const map<string,vector<unsigned int> >& table(hltPrescaleTable_.table());
395  cout << "HLTConfigData::dump: PrescaleTable: # of paths: " << table.size() << endl;
396  const map<string,vector<unsigned int> >::const_iterator tb(table.begin());
397  const map<string,vector<unsigned int> >::const_iterator te(table.end());
398  for (map<string,vector<unsigned int> >::const_iterator ti=tb; ti!=te; ++ti) {
399  for (unsigned int i=0; i!=n; ++i) {
400  cout << " " << ti->second.at(i);
401  }
402  cout << " " << ti->first << endl;
403  }
404  } else {
405  cout << "HLTConfigData::dump: Unkown dump request: " << what << endl;
406  }
407  return;
408 }
409 
411  return processName_;
412 }
413 
415  return globalTag_;
416 }
417 
418 unsigned int HLTConfigData::size() const {
419  return triggerNames_.size();
420 }
421 unsigned int HLTConfigData::size(unsigned int trigger) const {
422  return moduleLabels_.at(trigger).size();
423 }
424 unsigned int HLTConfigData::size(const std::string& trigger) const {
425  return size(triggerIndex(trigger));
426 }
427 
429  return tableName_;
430 }
431 const std::vector<std::string>& HLTConfigData::triggerNames() const {
432  return triggerNames_;
433 }
434 const std::string& HLTConfigData::triggerName(unsigned int trigger) const {
435  return triggerNames_.at(trigger);
436 }
437 unsigned int HLTConfigData::triggerIndex(const std::string& trigger) const {
438  const std::map<std::string,unsigned int>::const_iterator index(triggerIndex_.find(trigger));
439  if (index==triggerIndex_.end()) {
440  return size();
441  } else {
442  return index->second;
443  }
444 }
445 
446 const std::vector<std::string>& HLTConfigData::moduleLabels(unsigned int trigger) const {
447  return moduleLabels_.at(trigger);
448 }
449 const std::vector<std::string>& HLTConfigData::moduleLabels(const std::string& trigger) const {
450  return moduleLabels_.at(triggerIndex(trigger));
451 }
452 
453 const std::vector<std::string>& HLTConfigData::saveTagsModules(unsigned int trigger) const {
454  return saveTagsModules_.at(trigger);
455 }
456 const std::vector<std::string>& HLTConfigData::saveTagsModules(const std::string& trigger) const {
457  return saveTagsModules_.at(triggerIndex(trigger));
458 }
459 
460 const std::string& HLTConfigData::moduleLabel(unsigned int trigger, unsigned int module) const {
461  return moduleLabels_.at(trigger).at(module);
462 }
464  return moduleLabels_.at(triggerIndex(trigger)).at(module);
465 }
466 
467 unsigned int HLTConfigData::moduleIndex(unsigned int trigger, const std::string& module) const {
468  const std::map<std::string,unsigned int>::const_iterator index(moduleIndex_.at(trigger).find(module));
469  if (index==moduleIndex_.at(trigger).end()) {
470  return size(trigger);
471  } else {
472  return index->second;
473  }
474 }
476  return moduleIndex(triggerIndex(trigger),module);
477 }
478 
480  const edm::ParameterSet& pset(modulePSet(module));
481  if (pset.existsAs<std::string>("@module_type",true)) {
482  return pset.getParameter<std::string>("@module_type");
483  } else {
484  return "";
485  }
486 }
487 
489  const edm::ParameterSet& pset(modulePSet(module));
490  if (pset.existsAs<std::string>("@module_edm_type",true)) {
491  return pset.getParameter<std::string>("@module_edm_type");
492  } else {
493  return "";
494  }
495 }
496 
498  return *processPSet_;
499 }
500 
502  //HLTConfigProvider sees ignored modules as "-modname"
503  //but in the PSet, the module is named "modname"
504  //so if it starts with "-", you need to remove the "-" from the
505  //module name to be able to retreive it from the PSet
506  if (processPSet_->exists(module.front()!='-' ? module : module.substr(1))) {
507  return processPSet_->getParameterSet(module.front()!='-' ? module : module.substr(1));
508  } else {
509  return *s_dummyPSet();
510  }
511 }
512 
514  const edm::ParameterSet& pset(modulePSet(module));
515  if (pset.existsAs<bool>("saveTags",true)) {
516  return pset.getParameter<bool>("saveTags");
517  } else {
518  return false;
519  }
520 }
521 
522 unsigned int HLTConfigData::l1tType() const {
523  return l1tType_;
524 }
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 {
531  return hltL1GTSeeds(triggerIndex(trigger));
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 {
539  return hltL1TSeeds_;
540 }
541 
542 const std::vector<std::string >& HLTConfigData::hltL1TSeeds(const std::string& trigger) const {
543  return hltL1TSeeds(triggerIndex(trigger));
544 }
545 
546 const std::vector<std::string >& HLTConfigData::hltL1TSeeds(unsigned int trigger) const {
547  return hltL1TSeeds_.at(trigger);
548 }
549 
551 const std::vector<std::string>& HLTConfigData::streamNames() const {
552  return streamNames_;
553 }
554 
555 const std::string& HLTConfigData::streamName(unsigned int stream) const {
556  return streamNames_.at(stream);
557 }
558 
559 unsigned int HLTConfigData::streamIndex(const std::string& stream) const {
560  const std::map<std::string,unsigned int>::const_iterator index(streamIndex_.find(stream));
561  if (index==streamIndex_.end()) {
562  return streamNames_.size();
563  } else {
564  return index->second;
565  }
566 }
567 
568 const std::vector<std::vector<std::string> >& HLTConfigData::streamContents() const {
569  return streamContents_;
570 }
571 
572 const std::vector<std::string>& HLTConfigData::streamContent(unsigned int stream) const {
573  return streamContents_.at(stream);
574 }
575 
576 const std::vector<std::string>& HLTConfigData::streamContent(const std::string& stream) const {
577  return streamContent(streamIndex(stream));
578 }
579 
581 const std::vector<std::string>& HLTConfigData::datasetNames() const {
582  return datasetNames_;
583 }
584 
585 const std::string& HLTConfigData::datasetName(unsigned int dataset) const {
586  return datasetNames_.at(dataset);
587 }
588 
589 unsigned int HLTConfigData::datasetIndex(const std::string& dataset) const {
590  const std::map<std::string,unsigned int>::const_iterator index(datasetIndex_.find(dataset));
591  if (index==datasetIndex_.end()) {
592  return datasetNames_.size();
593  } else {
594  return index->second;
595  }
596 }
597 
598 const std::vector<std::vector<std::string> >& HLTConfigData::datasetContents() const {
599  return datasetContents_;
600 }
601 
602 const std::vector<std::string>& HLTConfigData::datasetContent(unsigned int dataset) const {
603  return datasetContents_.at(dataset);
604 }
605 
606 const std::vector<std::string>& HLTConfigData::datasetContent(const std::string& dataset) const {
607  return datasetContent(datasetIndex(dataset));
608 }
609 
610 
611 unsigned int HLTConfigData::prescaleSize() const {
612  return hltPrescaleTable_.size();
613 }
614 unsigned int HLTConfigData::prescaleValue(unsigned int set, const std::string& trigger) const {
615  return hltPrescaleTable_.prescale(set,trigger);
616 }
617 
618 const std::vector<std::string>& HLTConfigData::prescaleLabels() const {
619  return hltPrescaleTable_.labels();
620 }
621 const std::map<std::string,std::vector<unsigned int> >& HLTConfigData::prescaleTable() const {
622  return hltPrescaleTable_.table();
623 }
624 
626  return processPSet_->id();
627 }
type
Definition: HCALResponse.h:21
T getParameter(std::string const &) const
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_
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
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::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()
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
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
unsigned int prescaleSize() const
const std::string moduleEDMType(const std::string &module) const
C++ base class name of module.
std::string const & label() const
Definition: InputTag.h:36
const std::vector< std::vector< std::string > > & hltL1TSeeds() const
#define begin
Definition: vmac.h:30
HLT enums.
bool isValid() const
Definition: Hash.h:151
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
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()
def move(src, dest)
Definition: eostools.py:510
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_