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  if (moduleType(label) == "HLTLevel1GTSeed") {
145  const ParameterSet& pset(modulePSet(label));
146  if (pset!=ParameterSet()) {
147  const bool l1Tech(pset.getParameter<bool>("L1TechTriggerSeeding"));
148  const string l1Seed(pset.getParameter<string>("L1SeedsLogicalExpression"));
149  hltL1GTSeeds_[i].push_back(pair<bool,string>(l1Tech,l1Seed));
150  }
151  }
152  }
153  }
154 
155  // Extract and fill streams information
156  if (processPSet_->existsAs<ParameterSet>("streams",true)) {
157  const ParameterSet& streams(processPSet_->getParameterSet("streams"));
158  streamNames_=streams.getParameterNamesForType<vector<string> >();
159  sort(streamNames_.begin(),streamNames_.end());
160  const unsigned int n(streamNames_.size());
161  streamContents_.resize(n);
162  for (unsigned int i=0; i!=n; ++i) {
163  streamIndex_[streamNames_[i]]=i;
164  streamContents_[i]=streams.getParameter<vector<string> >(streamNames_[i]);
166  }
167 
168  }
169 
170  // Extract and fill datasets information
171  if (processPSet_->existsAs<ParameterSet>("datasets",true)) {
172  const ParameterSet& datasets(processPSet_->getParameterSet("datasets"));
173  datasetNames_=datasets.getParameterNamesForType<vector<string> >();
174  sort(datasetNames_.begin(),datasetNames_.end());
175  const unsigned int n(datasetNames_.size());
176  datasetContents_.resize(n);
177  for (unsigned int i=0; i!=n; ++i) {
178  datasetIndex_[datasetNames_[i]]=i;
179  datasetContents_[i]=datasets.getParameter< vector<string> >(datasetNames_[i]);
181  }
182  }
183 
184  // Extract and fill Prescale information
185 
186  // Check various possibilities to get the HLT prescale sets:
187  string prescaleName("");
188  const string preS("PrescaleService");
189  const string preT("PrescaleTable");
190  if (processPSet_->existsAs<ParameterSet>(preS,true)) {
191  prescaleName=preS;
192  } else if ( processPSet_->existsAs<ParameterSet>(preT,true)) {
193  prescaleName=preT;
194  }
195  if (prescaleName=="") {
197  } else {
198  const ParameterSet& iPS(processPSet_->getParameterSet(prescaleName));
199  string defaultLabel("default");
200  if (iPS.existsAs<string>("lvl1DefaultLabel",true)) {
201  defaultLabel = iPS.getParameter<string>("lvl1DefaultLabel");
202  }
203  vector<string> labels;
204  if (iPS.existsAs<vector<string> >("lvl1Labels",true)) {
205  labels = iPS.getParameter<vector<string> >("lvl1Labels");
206  }
207  unsigned int set(0);
208  const unsigned int n(labels.size());
209  for (unsigned int i=0; i!=n; ++i) {
210  if (labels[i]==defaultLabel) set=i;
211  }
212  map<string,vector<unsigned int> > table;
213  if (iPS.existsAs< vector<ParameterSet> >("prescaleTable",true)) {
214  const vector<ParameterSet>& vpTable(iPS.getParameterSetVector("prescaleTable"));
215  const unsigned int m (vpTable.size());
216  for (unsigned int i=0; i!=m; ++i) {
217  table[vpTable[i].getParameter<std::string>("pathName")] =
218  vpTable[i].getParameter<std::vector<unsigned int> >("prescales");
219  }
220  }
221  if (n>0) {
222  hltPrescaleTable_=HLTPrescaleTable(set,labels,table);
223  } else {
225  }
226 
227  }
228 
229  return;
230 }
231 
232 void HLTConfigData::dump(const std::string& what) const {
233  using namespace std;
234  using namespace edm;
235 
236  if (what=="ProcessPSet") {
237  cout << "HLTConfigData::dump: ProcessPSet = " << endl << *processPSet_ << endl;
238  } else if (what=="ProcessName") {
239  cout << "HLTConfigData::dump: ProcessName = " << processName_ << endl;
240  } else if (what=="GlobalTag") {
241  cout << "HLTConfigData::dump: GlobalTag = " << globalTag_ << endl;
242  } else if (what=="TableName") {
243  cout << "HLTConfigData::dump: TableName = " << tableName_ << endl;
244  } else if (what=="Triggers") {
245  const unsigned int n(size());
246  cout << "HLTConfigData::dump: Triggers: " << n << endl;
247  for (unsigned int i=0; i!=n; ++i) {
248  cout << " " << i << " " << triggerNames_[i] << endl;
249  }
250  } else if (what=="TriggerSeeds") {
251  const unsigned int n(size());
252  cout << "HLTConfigData::dump: TriggerSeeds: " << n << endl;
253  for (unsigned int i=0; i!=n; ++i) {
254  const unsigned int m(hltL1GTSeeds_[i].size());
255  cout << " " << i << " " << triggerNames_[i] << " " << m << endl;
256  for (unsigned int j=0; j!=m; ++j) {
257  cout << " " << j
258  << " " << hltL1GTSeeds_[i][j].first
259  << "/" << hltL1GTSeeds_[i][j].second << endl;
260  }
261  }
262  } else if (what=="Modules") {
263  const unsigned int n(size());
264  cout << "HLTConfigData::dump Triggers and Modules: " << n << endl;
265  for (unsigned int i=0; i!=n; ++i) {
266  const unsigned int m(size(i));
267  cout << i << " " << triggerNames_[i] << " " << m << endl;
268  cout << " - Modules: ";
269  unsigned int nHLTPrescalers(0);
270  unsigned int nHLTLevel1GTSeed(0);
271  for (unsigned int j=0; j!=m; ++j) {
272  const string& label(moduleLabels_[i][j]);
273  const string type(moduleType(label));
274  const string edmtype(moduleEDMType(label));
275  const bool tags(saveTags(label));
276  cout << " " << j << ":" << label << "/" << type << "/" << edmtype << "/" << tags;
277  if (type=="HLTPrescaler") nHLTPrescalers++;
278  if (type=="HLTLevel1GTSeed") nHLTLevel1GTSeed++;
279  }
280  cout << endl;
281  cout << " - Number of HLTPrescaler/HLTLevel1GTSeed modules: "
282  << nHLTPrescalers << "/" << nHLTLevel1GTSeed << endl;
283  }
284  } else if (what=="StreamNames") {
285  const unsigned int n(streamNames_.size());
286  cout << "HLTConfigData::dump: StreamNames: " << n << endl;
287  for (unsigned int i=0; i!=n; ++i) {
288  cout << " " << i << " " << streamNames_[i] << endl;
289  }
290  } else if (what=="Streams") {
291  const unsigned int n(streamNames_.size());
292  cout << "HLTConfigData::dump: Streams: " << n << endl;
293  for (unsigned int i=0; i!=n; ++i) {
294  const unsigned int m(streamContents_[i].size());
295  cout << " " << i << " " << streamNames_[i] << " " << m << endl;
296  for (unsigned int j=0; j!=m; ++j) {
297  cout << " " << j << " " << streamContents_[i][j] << endl;
298  }
299  }
300  } else if (what=="DatasetNames") {
301  const unsigned int n(datasetNames_.size());
302  cout << "HLTConfigData::dump: DatasetNames: " << n << endl;
303  for (unsigned int i=0; i!=n; ++i) {
304  cout << " " << i << " " << datasetNames_[i] << endl;
305  }
306  } else if (what=="Datasets") {
307  const unsigned int n(datasetNames_.size());
308  cout << "HLTConfigData::dump: Datasets: " << n << endl;
309  for (unsigned int i=0; i!=n; ++i) {
310  const unsigned int m(datasetContents_[i].size());
311  cout << " " << i << " " << datasetNames_[i] << " " << m << endl;
312  for (unsigned int j=0; j!=m; ++j) {
313  cout << " " << j << " " << datasetContents_[i][j] << endl;
314  }
315  }
316  } else if (what=="PrescaleTable") {
317  const unsigned int n (hltPrescaleTable_.size());
318  cout << "HLTConfigData::dump: PrescaleTable: # of sets : " << n << endl;
319  const vector<string>& labels(hltPrescaleTable_.labels());
320  for (unsigned int i=0; i!=n; ++i) {
321  cout << " " << i << "/'" << labels.at(i) << "'";
322  }
323  if (n>0) cout << endl;
324  const map<string,vector<unsigned int> >& table(hltPrescaleTable_.table());
325  cout << "HLTConfigData::dump: PrescaleTable: # of paths: " << table.size() << endl;
326  const map<string,vector<unsigned int> >::const_iterator tb(table.begin());
327  const map<string,vector<unsigned int> >::const_iterator te(table.end());
328  for (map<string,vector<unsigned int> >::const_iterator ti=tb; ti!=te; ++ti) {
329  for (unsigned int i=0; i!=n; ++i) {
330  cout << " " << ti->second.at(i);
331  }
332  cout << " " << ti->first << endl;
333  }
334  } else {
335  cout << "HLTConfigData::dump: Unkown dump request: " << what << endl;
336  }
337  return;
338 }
339 
341  return processName_;
342 }
343 
344 unsigned int HLTConfigData::size() const {
345  return triggerNames_.size();
346 }
347 unsigned int HLTConfigData::size(unsigned int trigger) const {
348  return moduleLabels_.at(trigger).size();
349 }
350 unsigned int HLTConfigData::size(const std::string& trigger) const {
351  return size(triggerIndex(trigger));
352 }
353 
355  return tableName_;
356 }
357 const std::vector<std::string>& HLTConfigData::triggerNames() const {
358  return triggerNames_;
359 }
360 const std::string& HLTConfigData::triggerName(unsigned int trigger) const {
361  return triggerNames_.at(trigger);
362 }
363 unsigned int HLTConfigData::triggerIndex(const std::string& trigger) const {
364  const std::map<std::string,unsigned int>::const_iterator index(triggerIndex_.find(trigger));
365  if (index==triggerIndex_.end()) {
366  return size();
367  } else {
368  return index->second;
369  }
370 }
371 
372 const std::vector<std::string>& HLTConfigData::moduleLabels(unsigned int trigger) const {
373  return moduleLabels_.at(trigger);
374 }
375 const std::vector<std::string>& HLTConfigData::moduleLabels(const std::string& trigger) const {
376  return moduleLabels_.at(triggerIndex(trigger));
377 }
378 
379 const std::vector<std::string>& HLTConfigData::saveTagsModules(unsigned int trigger) const {
380  return saveTagsModules_.at(trigger);
381 }
382 const std::vector<std::string>& HLTConfigData::saveTagsModules(const std::string& trigger) const {
383  return saveTagsModules_.at(triggerIndex(trigger));
384 }
385 
386 const std::string& HLTConfigData::moduleLabel(unsigned int trigger, unsigned int module) const {
387  return moduleLabels_.at(trigger).at(module);
388 }
389 const std::string& HLTConfigData::moduleLabel(const std::string& trigger, unsigned int module) const {
390  return moduleLabels_.at(triggerIndex(trigger)).at(module);
391 }
392 
393 unsigned int HLTConfigData::moduleIndex(unsigned int trigger, const std::string& module) const {
394  const std::map<std::string,unsigned int>::const_iterator index(moduleIndex_.at(trigger).find(module));
395  if (index==moduleIndex_.at(trigger).end()) {
396  return size(trigger);
397  } else {
398  return index->second;
399  }
400 }
401 unsigned int HLTConfigData::moduleIndex(const std::string& trigger, const std::string& module) const {
402  return moduleIndex(triggerIndex(trigger),module);
403 }
404 
406  const edm::ParameterSet& pset(modulePSet(module));
407  if (pset.existsAs<std::string>("@module_type",true)) {
408  return pset.getParameter<std::string>("@module_type");
409  } else {
410  return "";
411  }
412 }
413 
415  const edm::ParameterSet& pset(modulePSet(module));
416  if (pset.existsAs<std::string>("@module_edm_type",true)) {
417  return pset.getParameter<std::string>("@module_edm_type");
418  } else {
419  return "";
420  }
421 }
422 
424  return *processPSet_;
425 }
426 
428  if (processPSet_->exists(module)) {
429  return processPSet_->getParameterSet(module);
430  } else {
431  return *s_dummyPSet();
432  }
433 }
434 
436  const edm::ParameterSet& pset(modulePSet(module));
437  if (pset.existsAs<bool>("saveTags",true)) {
438  return pset.getParameter<bool>("saveTags");
439  } else {
440  return false;
441  }
442 }
443 
444 const std::vector<std::vector<std::pair<bool,std::string> > >& HLTConfigData::hltL1GTSeeds() const {
445  return hltL1GTSeeds_;
446 }
447 
448 const std::vector<std::pair<bool,std::string> >& HLTConfigData::hltL1GTSeeds(const std::string& trigger) const {
449  return hltL1GTSeeds(triggerIndex(trigger));
450 }
451 
452 const std::vector<std::pair<bool,std::string> >& HLTConfigData::hltL1GTSeeds(unsigned int trigger) const {
453  return hltL1GTSeeds_.at(trigger);
454 }
455 
457 const std::vector<std::string>& HLTConfigData::streamNames() const {
458  return streamNames_;
459 }
460 
461 const std::string& HLTConfigData::streamName(unsigned int stream) const {
462  return streamNames_.at(stream);
463 }
464 
465 unsigned int HLTConfigData::streamIndex(const std::string& stream) const {
466  const std::map<std::string,unsigned int>::const_iterator index(streamIndex_.find(stream));
467  if (index==streamIndex_.end()) {
468  return streamNames_.size();
469  } else {
470  return index->second;
471  }
472 }
473 
474 const std::vector<std::vector<std::string> >& HLTConfigData::streamContents() const {
475  return streamContents_;
476 }
477 
478 const std::vector<std::string>& HLTConfigData::streamContent(unsigned int stream) const {
479  return streamContents_.at(stream);
480 }
481 
482 const std::vector<std::string>& HLTConfigData::streamContent(const std::string& stream) const {
483  return streamContent(streamIndex(stream));
484 }
485 
487 const std::vector<std::string>& HLTConfigData::datasetNames() const {
488  return datasetNames_;
489 }
490 
491 const std::string& HLTConfigData::datasetName(unsigned int dataset) const {
492  return datasetNames_.at(dataset);
493 }
494 
495 unsigned int HLTConfigData::datasetIndex(const std::string& dataset) const {
496  const std::map<std::string,unsigned int>::const_iterator index(datasetIndex_.find(dataset));
497  if (index==datasetIndex_.end()) {
498  return datasetNames_.size();
499  } else {
500  return index->second;
501  }
502 }
503 
504 const std::vector<std::vector<std::string> >& HLTConfigData::datasetContents() const {
505  return datasetContents_;
506 }
507 
508 const std::vector<std::string>& HLTConfigData::datasetContent(unsigned int dataset) const {
509  return datasetContents_.at(dataset);
510 }
511 
512 const std::vector<std::string>& HLTConfigData::datasetContent(const std::string& dataset) const {
513  return datasetContent(datasetIndex(dataset));
514 }
515 
516 
517 unsigned int HLTConfigData::prescaleSize() const {
518  return hltPrescaleTable_.size();
519 }
520 unsigned int HLTConfigData::prescaleValue(unsigned int set, const std::string& trigger) const {
521  return hltPrescaleTable_.prescale(set,trigger);
522 }
523 
524 const std::vector<std::string>& HLTConfigData::prescaleLabels() const {
525  return hltPrescaleTable_.labels();
526 }
527 const std::map<std::string,std::vector<unsigned int> >& HLTConfigData::prescaleTable() const {
528  return hltPrescaleTable_.table();
529 }
530 
532  return processPSet_->id();
533 }
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
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
#define table(NAME)
Definition: DbCore.h:49
const edm::ParameterSet * processPSet_
const edm::ParameterSet & processPSet() const
ParameterSet of process.
ParameterSet const & getParameterSet(std::string const &) const
tuple dataset
Definition: dataset.py:840
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:121
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.