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  hltL1GTSeeds_(),
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  hltL1GTSeeds_(),
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  LogVerbatim("HLTConfigData") << "ProcessPSet with: "
92  << processName_ << " "
93  << globalTag_ << " "
94  << tableName_;
95 
96  // Extract trigger paths (= paths - end_paths)
97  if (processPSet_->existsAs<ParameterSet>("@trigger_paths",true)) {
98  const ParameterSet& HLTPSet(processPSet_->getParameterSet("@trigger_paths"));
99  if (HLTPSet.existsAs<vector<string> >("@trigger_paths",true)) {
100  triggerNames_= HLTPSet.getParameter<vector<string> >("@trigger_paths");
101  }
102  }
103 
104  // Obtain module labels of all modules on all trigger paths
105  const unsigned int n(size());
106  moduleLabels_.reserve(n);
107  for (unsigned int i=0;i!=n; ++i) {
108  if (processPSet_->existsAs<vector<string> >(triggerNames_[i],true)) {
109  moduleLabels_.push_back(processPSet_->getParameter<vector<string> >(triggerNames_[i]));
110  }
111  }
112  saveTagsModules_.reserve(n);
113  vector<string> labels;
114  for (unsigned int i=0;i!=n; ++i) {
115  labels.clear();
116  const vector<string>& modules(moduleLabels(i));
117  const unsigned int m(modules.size());
118  labels.reserve(m);
119  for (unsigned int j=0;j!=m; ++j) {
120  const string& label(modules[j]);
121  if (saveTags(label)) labels.push_back(label);
122  }
123  saveTagsModules_.push_back(labels);
124  }
125 
126  // Fill index maps for fast lookup
127  moduleIndex_.resize(n);
128  for (unsigned int i=0; i!=n; ++i) {
130  moduleIndex_[i].clear();
131  const unsigned int m(size(i));
132  for (unsigned int j=0; j!=m; ++j) {
134  }
135  }
136 
137  // Extract and fill HLTLevel1GTSeed information for each trigger path
138  hltL1GTSeeds_.resize(n);
139  for (unsigned int i=0; i!=n; ++i) {
140  hltL1GTSeeds_[i].clear();
141  const unsigned int m(size(i));
142  for (unsigned int j=0; j!=m; ++j) {
143  const string& label(moduleLabels_[i][j]);
144  //HLTConfigProvider sees ignored modules as "-modname"
145  //if the HLTLevel1GTSeed is ignored in the config, it shouldnt
146  //count to the number of active HLTLevel1GTSeeds so we now check
147  //for the module being ignored
148  if (label.front()!='-' && moduleType(label) == "HLTLevel1GTSeed") {
149  const ParameterSet& pset(modulePSet(label));
150  if (pset!=ParameterSet()) {
151  const bool l1Tech(pset.getParameter<bool>("L1TechTriggerSeeding"));
152  const string l1Seed(pset.getParameter<string>("L1SeedsLogicalExpression"));
153  hltL1GTSeeds_[i].push_back(pair<bool,string>(l1Tech,l1Seed));
154  }
155  }
156  }
157  }
158 
159  // Extract and fill streams information
160  if (processPSet_->existsAs<ParameterSet>("streams",true)) {
161  const ParameterSet& streams(processPSet_->getParameterSet("streams"));
162  streamNames_=streams.getParameterNamesForType<vector<string> >();
163  sort(streamNames_.begin(),streamNames_.end());
164  const unsigned int n(streamNames_.size());
165  streamContents_.resize(n);
166  for (unsigned int i=0; i!=n; ++i) {
167  streamIndex_[streamNames_[i]]=i;
168  streamContents_[i]=streams.getParameter<vector<string> >(streamNames_[i]);
170  }
171 
172  }
173 
174  // Extract and fill datasets information
175  if (processPSet_->existsAs<ParameterSet>("datasets",true)) {
176  const ParameterSet& datasets(processPSet_->getParameterSet("datasets"));
177  datasetNames_=datasets.getParameterNamesForType<vector<string> >();
178  sort(datasetNames_.begin(),datasetNames_.end());
179  const unsigned int n(datasetNames_.size());
180  datasetContents_.resize(n);
181  for (unsigned int i=0; i!=n; ++i) {
182  datasetIndex_[datasetNames_[i]]=i;
183  datasetContents_[i]=datasets.getParameter< vector<string> >(datasetNames_[i]);
185  }
186  }
187 
188  // Extract and fill Prescale information
189 
190  // Check various possibilities to get the HLT prescale sets:
191  string prescaleName("");
192  const string preS("PrescaleService");
193  const string preT("PrescaleTable");
194  if (processPSet_->existsAs<ParameterSet>(preS,true)) {
195  prescaleName=preS;
196  } else if ( processPSet_->existsAs<ParameterSet>(preT,true)) {
197  prescaleName=preT;
198  }
199  if (prescaleName=="") {
201  } else {
202  const ParameterSet& iPS(processPSet_->getParameterSet(prescaleName));
203  string defaultLabel("default");
204  if (iPS.existsAs<string>("lvl1DefaultLabel",true)) {
205  defaultLabel = iPS.getParameter<string>("lvl1DefaultLabel");
206  }
207  vector<string> labels;
208  if (iPS.existsAs<vector<string> >("lvl1Labels",true)) {
209  labels = iPS.getParameter<vector<string> >("lvl1Labels");
210  }
211  unsigned int set(0);
212  const unsigned int n(labels.size());
213  for (unsigned int i=0; i!=n; ++i) {
214  if (labels[i]==defaultLabel) set=i;
215  }
216  map<string,vector<unsigned int> > table;
217  if (iPS.existsAs< vector<ParameterSet> >("prescaleTable",true)) {
218  const vector<ParameterSet>& vpTable(iPS.getParameterSetVector("prescaleTable"));
219  const unsigned int m (vpTable.size());
220  for (unsigned int i=0; i!=m; ++i) {
221  table[vpTable[i].getParameter<std::string>("pathName")] =
222  vpTable[i].getParameter<std::vector<unsigned int> >("prescales");
223  }
224  }
225  if (n>0) {
226  hltPrescaleTable_=HLTPrescaleTable(set,labels,table);
227  } else {
229  }
230 
231  }
232 
233  return;
234 }
235 
236 void HLTConfigData::dump(const std::string& what) const {
237  using namespace std;
238  using namespace edm;
239 
240  if (what=="ProcessPSet") {
241  cout << "HLTConfigData::dump: ProcessPSet = " << endl << *processPSet_ << endl;
242  } else if (what=="ProcessName") {
243  cout << "HLTConfigData::dump: ProcessName = " << processName_ << endl;
244  } else if (what=="GlobalTag") {
245  cout << "HLTConfigData::dump: GlobalTag = " << globalTag_ << endl;
246  } else if (what=="TableName") {
247  cout << "HLTConfigData::dump: TableName = " << tableName_ << endl;
248  } else if (what=="Triggers") {
249  const unsigned int n(size());
250  cout << "HLTConfigData::dump: Triggers: " << n << endl;
251  for (unsigned int i=0; i!=n; ++i) {
252  cout << " " << i << " " << triggerNames_[i] << endl;
253  }
254  } else if (what=="TriggerSeeds") {
255  const unsigned int n(size());
256  cout << "HLTConfigData::dump: TriggerSeeds: " << n << endl;
257  for (unsigned int i=0; i!=n; ++i) {
258  const unsigned int m(hltL1GTSeeds_[i].size());
259  cout << " " << i << " " << triggerNames_[i] << " " << m << endl;
260  for (unsigned int j=0; j!=m; ++j) {
261  cout << " " << j
262  << " " << hltL1GTSeeds_[i][j].first
263  << "/" << hltL1GTSeeds_[i][j].second << endl;
264  }
265  }
266  } else if (what=="Modules") {
267  const unsigned int n(size());
268  cout << "HLTConfigData::dump Triggers and Modules: " << n << endl;
269  for (unsigned int i=0; i!=n; ++i) {
270  const unsigned int m(size(i));
271  cout << i << " " << triggerNames_[i] << " " << m << endl;
272  cout << " - Modules: ";
273  unsigned int nHLTPrescalers(0);
274  unsigned int nHLTLevel1GTSeed(0);
275  for (unsigned int j=0; j!=m; ++j) {
276  const string& label(moduleLabels_[i][j]);
277  const string type(moduleType(label));
278  const string edmtype(moduleEDMType(label));
279  const bool tags(saveTags(label));
280  cout << " " << j << ":" << label << "/" << type << "/" << edmtype << "/" << tags;
281  if (type=="HLTPrescaler") nHLTPrescalers++;
282  if (type=="HLTLevel1GTSeed") nHLTLevel1GTSeed++;
283  }
284  cout << endl;
285  cout << " - Number of HLTPrescaler/HLTLevel1GTSeed modules: "
286  << nHLTPrescalers << "/" << nHLTLevel1GTSeed << endl;
287  }
288  } else if (what=="StreamNames") {
289  const unsigned int n(streamNames_.size());
290  cout << "HLTConfigData::dump: StreamNames: " << n << endl;
291  for (unsigned int i=0; i!=n; ++i) {
292  cout << " " << i << " " << streamNames_[i] << endl;
293  }
294  } else if (what=="Streams") {
295  const unsigned int n(streamNames_.size());
296  cout << "HLTConfigData::dump: Streams: " << n << endl;
297  for (unsigned int i=0; i!=n; ++i) {
298  const unsigned int m(streamContents_[i].size());
299  cout << " " << i << " " << streamNames_[i] << " " << m << endl;
300  for (unsigned int j=0; j!=m; ++j) {
301  cout << " " << j << " " << streamContents_[i][j] << endl;
302  }
303  }
304  } else if (what=="DatasetNames") {
305  const unsigned int n(datasetNames_.size());
306  cout << "HLTConfigData::dump: DatasetNames: " << n << endl;
307  for (unsigned int i=0; i!=n; ++i) {
308  cout << " " << i << " " << datasetNames_[i] << endl;
309  }
310  } else if (what=="Datasets") {
311  const unsigned int n(datasetNames_.size());
312  cout << "HLTConfigData::dump: Datasets: " << n << endl;
313  for (unsigned int i=0; i!=n; ++i) {
314  const unsigned int m(datasetContents_[i].size());
315  cout << " " << i << " " << datasetNames_[i] << " " << m << endl;
316  for (unsigned int j=0; j!=m; ++j) {
317  cout << " " << j << " " << datasetContents_[i][j] << endl;
318  }
319  }
320  } else if (what=="PrescaleTable") {
321  const unsigned int n (hltPrescaleTable_.size());
322  cout << "HLTConfigData::dump: PrescaleTable: # of sets : " << n << endl;
323  const vector<string>& labels(hltPrescaleTable_.labels());
324  for (unsigned int i=0; i!=n; ++i) {
325  cout << " " << i << "/'" << labels.at(i) << "'";
326  }
327  if (n>0) cout << endl;
328  const map<string,vector<unsigned int> >& table(hltPrescaleTable_.table());
329  cout << "HLTConfigData::dump: PrescaleTable: # of paths: " << table.size() << endl;
330  const map<string,vector<unsigned int> >::const_iterator tb(table.begin());
331  const map<string,vector<unsigned int> >::const_iterator te(table.end());
332  for (map<string,vector<unsigned int> >::const_iterator ti=tb; ti!=te; ++ti) {
333  for (unsigned int i=0; i!=n; ++i) {
334  cout << " " << ti->second.at(i);
335  }
336  cout << " " << ti->first << endl;
337  }
338  } else {
339  cout << "HLTConfigData::dump: Unkown dump request: " << what << endl;
340  }
341  return;
342 }
343 
345  return processName_;
346 }
347 
349  return globalTag_;
350 }
351 
352 unsigned int HLTConfigData::size() const {
353  return triggerNames_.size();
354 }
355 unsigned int HLTConfigData::size(unsigned int trigger) const {
356  return moduleLabels_.at(trigger).size();
357 }
358 unsigned int HLTConfigData::size(const std::string& trigger) const {
359  return size(triggerIndex(trigger));
360 }
361 
363  return tableName_;
364 }
365 const std::vector<std::string>& HLTConfigData::triggerNames() const {
366  return triggerNames_;
367 }
368 const std::string& HLTConfigData::triggerName(unsigned int trigger) const {
369  return triggerNames_.at(trigger);
370 }
371 unsigned int HLTConfigData::triggerIndex(const std::string& trigger) const {
372  const std::map<std::string,unsigned int>::const_iterator index(triggerIndex_.find(trigger));
373  if (index==triggerIndex_.end()) {
374  return size();
375  } else {
376  return index->second;
377  }
378 }
379 
380 const std::vector<std::string>& HLTConfigData::moduleLabels(unsigned int trigger) const {
381  return moduleLabels_.at(trigger);
382 }
383 const std::vector<std::string>& HLTConfigData::moduleLabels(const std::string& trigger) const {
384  return moduleLabels_.at(triggerIndex(trigger));
385 }
386 
387 const std::vector<std::string>& HLTConfigData::saveTagsModules(unsigned int trigger) const {
388  return saveTagsModules_.at(trigger);
389 }
390 const std::vector<std::string>& HLTConfigData::saveTagsModules(const std::string& trigger) const {
391  return saveTagsModules_.at(triggerIndex(trigger));
392 }
393 
394 const std::string& HLTConfigData::moduleLabel(unsigned int trigger, unsigned int module) const {
395  return moduleLabels_.at(trigger).at(module);
396 }
397 const std::string& HLTConfigData::moduleLabel(const std::string& trigger, unsigned int module) const {
398  return moduleLabels_.at(triggerIndex(trigger)).at(module);
399 }
400 
401 unsigned int HLTConfigData::moduleIndex(unsigned int trigger, const std::string& module) const {
402  const std::map<std::string,unsigned int>::const_iterator index(moduleIndex_.at(trigger).find(module));
403  if (index==moduleIndex_.at(trigger).end()) {
404  return size(trigger);
405  } else {
406  return index->second;
407  }
408 }
409 unsigned int HLTConfigData::moduleIndex(const std::string& trigger, const std::string& module) const {
410  return moduleIndex(triggerIndex(trigger),module);
411 }
412 
414  const edm::ParameterSet& pset(modulePSet(module));
415  if (pset.existsAs<std::string>("@module_type",true)) {
416  return pset.getParameter<std::string>("@module_type");
417  } else {
418  return "";
419  }
420 }
421 
423  const edm::ParameterSet& pset(modulePSet(module));
424  if (pset.existsAs<std::string>("@module_edm_type",true)) {
425  return pset.getParameter<std::string>("@module_edm_type");
426  } else {
427  return "";
428  }
429 }
430 
432  return *processPSet_;
433 }
434 
436  //HLTConfigProvider sees ignored modules as "-modname"
437  //but in the PSet, the module is named "modname"
438  //so if it starts with "-", you need to remove the "-" from the
439  //module name to be able to retreive it from the PSet
440  if (processPSet_->exists(module.front()!='-' ? module : module.substr(1))) {
441  return processPSet_->getParameterSet(module.front()!='-' ? module : module.substr(1));
442  } else {
443  return *s_dummyPSet();
444  }
445 }
446 
448  const edm::ParameterSet& pset(modulePSet(module));
449  if (pset.existsAs<bool>("saveTags",true)) {
450  return pset.getParameter<bool>("saveTags");
451  } else {
452  return false;
453  }
454 }
455 
456 const std::vector<std::vector<std::pair<bool,std::string> > >& HLTConfigData::hltL1GTSeeds() const {
457  return hltL1GTSeeds_;
458 }
459 
460 const std::vector<std::pair<bool,std::string> >& HLTConfigData::hltL1GTSeeds(const std::string& trigger) const {
461  return hltL1GTSeeds(triggerIndex(trigger));
462 }
463 
464 const std::vector<std::pair<bool,std::string> >& HLTConfigData::hltL1GTSeeds(unsigned int trigger) const {
465  return hltL1GTSeeds_.at(trigger);
466 }
467 
469 const std::vector<std::string>& HLTConfigData::streamNames() const {
470  return streamNames_;
471 }
472 
473 const std::string& HLTConfigData::streamName(unsigned int stream) const {
474  return streamNames_.at(stream);
475 }
476 
477 unsigned int HLTConfigData::streamIndex(const std::string& stream) const {
478  const std::map<std::string,unsigned int>::const_iterator index(streamIndex_.find(stream));
479  if (index==streamIndex_.end()) {
480  return streamNames_.size();
481  } else {
482  return index->second;
483  }
484 }
485 
486 const std::vector<std::vector<std::string> >& HLTConfigData::streamContents() const {
487  return streamContents_;
488 }
489 
490 const std::vector<std::string>& HLTConfigData::streamContent(unsigned int stream) const {
491  return streamContents_.at(stream);
492 }
493 
494 const std::vector<std::string>& HLTConfigData::streamContent(const std::string& stream) const {
495  return streamContent(streamIndex(stream));
496 }
497 
499 const std::vector<std::string>& HLTConfigData::datasetNames() const {
500  return datasetNames_;
501 }
502 
503 const std::string& HLTConfigData::datasetName(unsigned int dataset) const {
504  return datasetNames_.at(dataset);
505 }
506 
507 unsigned int HLTConfigData::datasetIndex(const std::string& dataset) const {
508  const std::map<std::string,unsigned int>::const_iterator index(datasetIndex_.find(dataset));
509  if (index==datasetIndex_.end()) {
510  return datasetNames_.size();
511  } else {
512  return index->second;
513  }
514 }
515 
516 const std::vector<std::vector<std::string> >& HLTConfigData::datasetContents() const {
517  return datasetContents_;
518 }
519 
520 const std::vector<std::string>& HLTConfigData::datasetContent(unsigned int dataset) const {
521  return datasetContents_.at(dataset);
522 }
523 
524 const std::vector<std::string>& HLTConfigData::datasetContent(const std::string& dataset) const {
525  return datasetContent(datasetIndex(dataset));
526 }
527 
528 
529 unsigned int HLTConfigData::prescaleSize() const {
530  return hltPrescaleTable_.size();
531 }
532 unsigned int HLTConfigData::prescaleValue(unsigned int set, const std::string& trigger) const {
533  return hltPrescaleTable_.prescale(set,trigger);
534 }
535 
536 const std::vector<std::string>& HLTConfigData::prescaleLabels() const {
537  return hltPrescaleTable_.labels();
538 }
539 const std::map<std::string,std::vector<unsigned int> >& HLTConfigData::prescaleTable() const {
540  return hltPrescaleTable_.table();
541 }
542 
544  return processPSet_->id();
545 }
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_
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)
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.
#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
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.