CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HLTConfigData Class Reference

#include <HLTConfigData.h>

Public Member Functions

const std::vector< std::string > & datasetContent (unsigned int dataset) const
 names of trigger paths in dataset with index i More...
 
const std::vector< std::string > & datasetContent (const std::string &dataset) const
 names of trigger paths in dataset with name More...
 
const std::vector< std::vector
< std::string > > & 
datasetContents () const
 names of trigger paths for all datasets More...
 
unsigned int datasetIndex (const std::string &dataset) const
 index of dataset with name More...
 
const std::string & datasetName (unsigned int dataset) const
 name of dataset with index i More...
 
const std::vector< std::string > & datasetNames () const
 Datasets. More...
 
void dump (const std::string &what) const
 Dumping config info to cout. More...
 
const std::string & globalTag () const
 GlobalTag.globaltag. More...
 
 HLTConfigData ()
 
 HLTConfigData (const edm::ParameterSet *iID)
 
const std::vector< std::vector
< std::pair< bool, std::string > > > & 
hltL1GTSeeds () const
 
const std::vector< std::pair
< bool, std::string > > & 
hltL1GTSeeds (const std::string &trigger) const
 HLTLevel1GTSeed modules for trigger path with name. More...
 
const std::vector< std::pair
< bool, std::string > > & 
hltL1GTSeeds (unsigned int trigger) const
 HLTLevel1GTSeed modules for trigger path with index i. More...
 
edm::ParameterSetID id () const
 technical: id() function needed for use with ThreadSafeRegistry More...
 
const std::string moduleEDMType (const std::string &module) const
 C++ base class name of module. More...
 
unsigned int moduleIndex (unsigned int trigger, const std::string &module) const
 slot position of module on trigger path (0 - size-1) More...
 
unsigned int moduleIndex (const std::string &trigger, const std::string &module) const
 
const std::string & moduleLabel (unsigned int trigger, unsigned int module) const
 
const std::string & moduleLabel (const std::string &trigger, unsigned int module) const
 
const std::vector< std::string > & moduleLabels (unsigned int trigger) const
 label(s) of module(s) on a trigger path More...
 
const std::vector< std::string > & moduleLabels (const std::string &trigger) const
 
const edm::ParameterSetmodulePSet (const std::string &module) const
 ParameterSet of module. More...
 
const std::string moduleType (const std::string &module) const
 C++ class name of module. More...
 
const std::vector< std::string > & prescaleLabels () const
 low-level data member access More...
 
unsigned int prescaleSize () const
 
const std::map< std::string,
std::vector< unsigned int > > & 
prescaleTable () const
 
unsigned int prescaleValue (unsigned int set, const std::string &trigger) const
 HLT prescale value in specific prescale set for a specific trigger path. More...
 
const std::string & processName () const
 Accessors (const methods) More...
 
const edm::ParameterSetprocessPSet () const
 ParameterSet of process. More...
 
bool saveTags (const std::string &module) const
 Is module an L3 filter (ie, tracked saveTags=true) More...
 
const std::vector< std::string > & saveTagsModules (unsigned int trigger) const
 
const std::vector< std::string > & saveTagsModules (const std::string &trigger) const
 
unsigned int size () const
 number of trigger paths in trigger table More...
 
unsigned int size (unsigned int trigger) const
 number of modules on a specific trigger path More...
 
unsigned int size (const std::string &trigger) const
 
const std::vector< std::string > & streamContent (unsigned int stream) const
 names of datasets in stream with index i More...
 
const std::vector< std::string > & streamContent (const std::string &stream) const
 names of datasets in stream with name More...
 
const std::vector< std::vector
< std::string > > & 
streamContents () const
 names of datasets for all streams More...
 
unsigned int streamIndex (const std::string &stream) const
 index of stream with name More...
 
const std::string & streamName (unsigned int stream) const
 name of stream with index i More...
 
const std::vector< std::string > & streamNames () const
 Streams. More...
 
const std::string & tableName () const
 HLT ConfDB table name. More...
 
unsigned int triggerIndex (const std::string &triggerName) const
 slot position of trigger path in trigger table (0 - size-1) More...
 
const std::string & triggerName (unsigned int triggerIndex) const
 
const std::vector< std::string > & triggerNames () const
 names of trigger paths More...
 

Private Member Functions

void extract ()
 extract information into data members - called by init() methods More...
 

Private Attributes

std::vector< std::vector
< std::string > > 
datasetContents_
 
std::map< std::string,
unsigned int > 
datasetIndex_
 
std::vector< std::string > datasetNames_
 
std::string globalTag_
 
std::vector< std::vector
< std::pair< bool, std::string > > > 
hltL1GTSeeds_
 
trigger::HLTPrescaleTable hltPrescaleTable_
 
std::vector< std::map
< std::string, unsigned int > > 
moduleIndex_
 
std::vector< std::vector
< std::string > > 
moduleLabels_
 
std::string processName_
 
const edm::ParameterSetprocessPSet_
 
std::vector< std::vector
< std::string > > 
saveTagsModules_
 
std::vector< std::vector
< std::string > > 
streamContents_
 
std::map< std::string,
unsigned int > 
streamIndex_
 
std::vector< std::string > streamNames_
 
std::string tableName_
 
std::map< std::string,
unsigned int > 
triggerIndex_
 
std::vector< std::string > triggerNames_
 

Detailed Description

This class provides access routines to get hold of the HLT Configuration

Author
Martin Grunewald

See header file for documentation

Author
Martin Grunewald

Definition at line 25 of file HLTConfigData.h.

Constructor & Destructor Documentation

HLTConfigData::HLTConfigData ( )

Definition at line 30 of file HLTConfigData.cc.

References extract(), edm::ParameterSet::id(), edm::Hash< I >::isValid(), and processPSet_.

30  :
32  processName_(""), globalTag_(""),
35  hltL1GTSeeds_(),
39 {
40  if (processPSet_->id().isValid()) {
41  extract();
42  }
43 }
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
std::vector< std::map< std::string, unsigned int > > moduleIndex_
ParameterSetID id() const
std::map< std::string, unsigned int > datasetIndex_
std::vector< std::string > datasetNames_
std::vector< std::vector< std::string > > saveTagsModules_
std::string globalTag_
std::vector< std::vector< std::string > > streamContents_
std::vector< std::string > triggerNames_
std::vector< std::vector< std::string > > datasetContents_
std::map< std::string, unsigned int > triggerIndex_
std::string tableName_
trigger::HLTPrescaleTable hltPrescaleTable_
std::vector< std::vector< std::string > > moduleLabels_
void extract()
extract information into data members - called by init() methods
const edm::ParameterSet * processPSet_
bool isValid() const
Definition: Hash.h:150
std::vector< std::string > streamNames_
std::map< std::string, unsigned int > streamIndex_
static const edm::ParameterSet * s_dummyPSet()
std::string processName_
HLTConfigData::HLTConfigData ( const edm::ParameterSet iID)

Definition at line 45 of file HLTConfigData.cc.

References extract(), edm::ParameterSet::id(), edm::Hash< I >::isValid(), and processPSet_.

45  :
46  processPSet_(iPSet),
47  processName_(""), globalTag_(""),
50  hltL1GTSeeds_(),
54 {
55  if (processPSet_->id().isValid()) {
56  extract();
57  }
58 }
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
std::vector< std::map< std::string, unsigned int > > moduleIndex_
ParameterSetID id() const
std::map< std::string, unsigned int > datasetIndex_
std::vector< std::string > datasetNames_
std::vector< std::vector< std::string > > saveTagsModules_
std::string globalTag_
std::vector< std::vector< std::string > > streamContents_
std::vector< std::string > triggerNames_
std::vector< std::vector< std::string > > datasetContents_
std::map< std::string, unsigned int > triggerIndex_
std::string tableName_
trigger::HLTPrescaleTable hltPrescaleTable_
std::vector< std::vector< std::string > > moduleLabels_
void extract()
extract information into data members - called by init() methods
const edm::ParameterSet * processPSet_
bool isValid() const
Definition: Hash.h:150
std::vector< std::string > streamNames_
std::map< std::string, unsigned int > streamIndex_
std::string processName_

Member Function Documentation

const std::vector< std::string > & HLTConfigData::datasetContent ( unsigned int  dataset) const

names of trigger paths in dataset with index i

Definition at line 520 of file HLTConfigData.cc.

References datasetContents_.

Referenced by datasetContent(), and HLTConfigProvider::datasetContent().

520  {
521  return datasetContents_.at(dataset);
522 }
std::vector< std::vector< std::string > > datasetContents_
tuple dataset
Definition: dataset.py:859
const std::vector< std::string > & HLTConfigData::datasetContent ( const std::string &  dataset) const

names of trigger paths in dataset with name

Definition at line 524 of file HLTConfigData.cc.

References datasetContent(), and datasetIndex().

524  {
526 }
const std::vector< std::string > & datasetContent(unsigned int dataset) const
names of trigger paths in dataset with index i
tuple dataset
Definition: dataset.py:859
unsigned int datasetIndex(const std::string &dataset) const
index of dataset with name
const std::vector< std::vector< std::string > > & HLTConfigData::datasetContents ( ) const

names of trigger paths for all datasets

Definition at line 516 of file HLTConfigData.cc.

References datasetContents_.

Referenced by HLTConfigProvider::datasetContents().

516  {
517  return datasetContents_;
518 }
std::vector< std::vector< std::string > > datasetContents_
unsigned int HLTConfigData::datasetIndex ( const std::string &  dataset) const

index of dataset with name

Definition at line 507 of file HLTConfigData.cc.

References datasetIndex_, datasetNames_, and cmsHarvester::index.

Referenced by datasetContent(), and HLTConfigProvider::datasetIndex().

507  {
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 }
std::map< std::string, unsigned int > datasetIndex_
std::vector< std::string > datasetNames_
tuple dataset
Definition: dataset.py:859
const std::string & HLTConfigData::datasetName ( unsigned int  dataset) const

name of dataset with index i

Definition at line 503 of file HLTConfigData.cc.

References datasetNames_.

Referenced by HLTConfigProvider::datasetName().

503  {
504  return datasetNames_.at(dataset);
505 }
std::vector< std::string > datasetNames_
tuple dataset
Definition: dataset.py:859
const std::vector< std::string > & HLTConfigData::datasetNames ( ) const

Datasets.

Datasets list of names of all datasets

Definition at line 499 of file HLTConfigData.cc.

References datasetNames_.

Referenced by HLTConfigProvider::datasetNames().

499  {
500  return datasetNames_;
501 }
std::vector< std::string > datasetNames_
void HLTConfigData::dump ( const std::string &  what) const

Dumping config info to cout.

Definition at line 236 of file HLTConfigData.cc.

References gather_cfg::cout, datasetContents_, datasetNames_, globalTag_, hltL1GTSeeds_, hltPrescaleTable_, i, j, diffTwoXMLs::label, trigger::HLTPrescaleTable::labels(), HLT_FULL_cff::labels, visualization-live-secondInstance_cfg::m, moduleEDMType(), moduleLabels_, moduleType(), gen::n, processName_, processPSet_, saveTags(), trigger::HLTPrescaleTable::size(), size(), streamContents_, streamNames_, trigger::HLTPrescaleTable::table(), TableParser::table, tableName_, o2o::tags, and triggerNames_.

Referenced by HLTConfigProvider::dump().

236  {
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 }
type
Definition: HCALResponse.h:21
int i
Definition: DBlmapReader.cc:9
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
bool saveTags(const std::string &module) const
Is module an L3 filter (ie, tracked saveTags=true)
std::vector< std::string > datasetNames_
unsigned int size() const
number of trigger paths in trigger table
const std::map< std::string, std::vector< unsigned int > > & table() const
std::string globalTag_
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_
std::string tableName_
trigger::HLTPrescaleTable hltPrescaleTable_
std::vector< std::vector< std::string > > moduleLabels_
int j
Definition: DBlmapReader.cc:9
const std::string moduleType(const std::string &module) const
C++ class name of module.
tuple tags
Definition: o2o.py:248
const edm::ParameterSet * processPSet_
const std::string moduleEDMType(const std::string &module) const
C++ base class name of module.
std::vector< std::string > streamNames_
tuple cout
Definition: gather_cfg.py:145
unsigned int size() const
consistency condition: all vectors must have the same length
std::string processName_
void HLTConfigData::extract ( )
private

extract information into data members - called by init() methods

Definition at line 60 of file HLTConfigData.cc.

References begin, datasetContents_, datasetIndex_, datasetNames_, contentValuesFiles::datasets, end, edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), globalTag_, hltL1GTSeeds_, hltPrescaleTable_, i, j, diffTwoXMLs::label, HLT_FULL_cff::labels, visualization-live-secondInstance_cfg::m, moduleIndex_, moduleLabels(), moduleLabels_, modulePSet(), edmConvertToStreamModule::modules, moduleType(), gen::n, processName_, processPSet_, TrackValidation_cff::pset, saveTags(), saveTagsModules_, size(), streamContents_, streamIndex_, streamNames_, hcal_dqm_sourceclient-file_cfg::streams, AlCaHLTBitMon_QueryRunRegistry::string, TableParser::table, tableName_, triggerIndex_, and triggerNames_.

Referenced by BeautifulSoup.PageElement::_invert(), BeautifulSoup.Tag::decompose(), and HLTConfigData().

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") {
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]);
169  sort(streamContents_[i].begin(),streamContents_[i].end());
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]);
184  sort(datasetContents_[i].begin(),datasetContents_[i].end());
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 }
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
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
std::vector< std::map< std::string, unsigned int > > moduleIndex_
std::map< std::string, unsigned int > datasetIndex_
The single EDProduct containing the HLT Prescale Table.
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
std::vector< std::vector< std::string > > saveTagsModules_
std::string globalTag_
std::vector< std::vector< std::string > > streamContents_
std::vector< std::string > triggerNames_
std::vector< std::vector< std::string > > datasetContents_
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_
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
const edm::ParameterSet * processPSet_
ParameterSet const & getParameterSet(std::string const &) const
#define begin
Definition: vmac.h:30
std::vector< std::string > streamNames_
std::map< std::string, unsigned int > streamIndex_
std::string processName_
const std::string & HLTConfigData::globalTag ( ) const

GlobalTag.globaltag.

Definition at line 348 of file HLTConfigData.cc.

References globalTag_.

Referenced by HLTConfigProvider::globalTag().

348  {
349  return globalTag_;
350 }
std::string globalTag_
const std::vector< std::vector< std::pair< bool, std::string > > > & HLTConfigData::hltL1GTSeeds ( ) const

HLTLevel1GTSeed module HLTLevel1GTSeed modules for all trigger paths

Definition at line 456 of file HLTConfigData.cc.

References hltL1GTSeeds_.

Referenced by hltL1GTSeeds(), and HLTConfigProvider::hltL1GTSeeds().

456  {
457  return hltL1GTSeeds_;
458 }
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
const std::vector< std::pair< bool, std::string > > & HLTConfigData::hltL1GTSeeds ( const std::string &  trigger) const

HLTLevel1GTSeed modules for trigger path with name.

Definition at line 460 of file HLTConfigData.cc.

References hltL1GTSeeds(), and triggerIndex().

460  {
461  return hltL1GTSeeds(triggerIndex(trigger));
462 }
const std::vector< std::vector< std::pair< bool, std::string > > > & hltL1GTSeeds() const
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
const std::vector< std::pair< bool, std::string > > & HLTConfigData::hltL1GTSeeds ( unsigned int  trigger) const

HLTLevel1GTSeed modules for trigger path with index i.

Definition at line 464 of file HLTConfigData.cc.

References hltL1GTSeeds_.

464  {
465  return hltL1GTSeeds_.at(trigger);
466 }
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
edm::ParameterSetID HLTConfigData::id ( void  ) const

technical: id() function needed for use with ThreadSafeRegistry

Definition at line 543 of file HLTConfigData.cc.

References edm::ParameterSet::id(), and processPSet_.

Referenced by HLTConfigProvider::init().

543  {
544  return processPSet_->id();
545 }
ParameterSetID id() const
const edm::ParameterSet * processPSet_
const std::string HLTConfigData::moduleEDMType ( const std::string &  module) const

C++ base class name of module.

Definition at line 422 of file HLTConfigData.cc.

References edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), modulePSet(), TrackValidation_cff::pset, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by dump(), and HLTConfigProvider::moduleEDMType().

422  {
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 }
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
Definition: vlib.h:208
unsigned int HLTConfigData::moduleIndex ( unsigned int  trigger,
const std::string &  module 
) const

slot position of module on trigger path (0 - size-1)

Definition at line 401 of file HLTConfigData.cc.

References cmsHarvester::index, moduleIndex_, and size().

Referenced by moduleIndex(), and HLTConfigProvider::moduleIndex().

401  {
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 }
std::vector< std::map< std::string, unsigned int > > moduleIndex_
unsigned int size() const
number of trigger paths in trigger table
Definition: vlib.h:208
unsigned int HLTConfigData::moduleIndex ( const std::string &  trigger,
const std::string &  module 
) const

Definition at line 409 of file HLTConfigData.cc.

References moduleIndex(), and triggerIndex().

409  {
410  return moduleIndex(triggerIndex(trigger),module);
411 }
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
unsigned int moduleIndex(unsigned int trigger, const std::string &module) const
slot position of module on trigger path (0 - size-1)
Definition: vlib.h:208
const std::string & HLTConfigData::moduleLabel ( unsigned int  trigger,
unsigned int  module 
) const

Definition at line 394 of file HLTConfigData.cc.

References moduleLabels_.

Referenced by HLTConfigProvider::moduleLabel(), and HLTConfigDataEx::moduleLabel().

394  {
395  return moduleLabels_.at(trigger).at(module);
396 }
std::vector< std::vector< std::string > > moduleLabels_
Definition: vlib.h:208
const std::string & HLTConfigData::moduleLabel ( const std::string &  trigger,
unsigned int  module 
) const

Definition at line 397 of file HLTConfigData.cc.

References moduleLabels_, and triggerIndex().

397  {
398  return moduleLabels_.at(triggerIndex(trigger)).at(module);
399 }
std::vector< std::vector< std::string > > moduleLabels_
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
Definition: vlib.h:208
const std::vector< std::string > & HLTConfigData::moduleLabels ( unsigned int  trigger) const

label(s) of module(s) on a trigger path

Definition at line 380 of file HLTConfigData.cc.

References moduleLabels_.

Referenced by extract(), and HLTConfigProvider::moduleLabels().

380  {
381  return moduleLabels_.at(trigger);
382 }
std::vector< std::vector< std::string > > moduleLabels_
const std::vector< std::string > & HLTConfigData::moduleLabels ( const std::string &  trigger) const

Definition at line 383 of file HLTConfigData.cc.

References moduleLabels_, and triggerIndex().

383  {
384  return moduleLabels_.at(triggerIndex(trigger));
385 }
std::vector< std::vector< std::string > > moduleLabels_
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
const edm::ParameterSet & HLTConfigData::modulePSet ( const std::string &  module) const

ParameterSet of module.

Definition at line 435 of file HLTConfigData.cc.

References edm::ParameterSet::exists(), edm::ParameterSet::getParameterSet(), processPSet_, and s_dummyPSet().

Referenced by extract(), moduleEDMType(), HLTConfigProvider::modulePSet(), moduleType(), and saveTags().

435  {
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 }
bool exists(std::string const &parameterName) const
checks if a parameter exists
const edm::ParameterSet * processPSet_
ParameterSet const & getParameterSet(std::string const &) const
Definition: vlib.h:208
static const edm::ParameterSet * s_dummyPSet()
const std::string HLTConfigData::moduleType ( const std::string &  module) const

C++ class name of module.

Definition at line 413 of file HLTConfigData.cc.

References edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), modulePSet(), TrackValidation_cff::pset, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by dump(), extract(), HLTConfigDataEx::HLTConfigDataEx(), and HLTConfigProvider::moduleType().

413  {
415  if (pset.existsAs<std::string>("@module_type",true)) {
416  return pset.getParameter<std::string>("@module_type");
417  } else {
418  return "";
419  }
420 }
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
Definition: vlib.h:208
const std::vector< std::string > & HLTConfigData::prescaleLabels ( ) const

low-level data member access

Definition at line 536 of file HLTConfigData.cc.

References hltPrescaleTable_, and trigger::HLTPrescaleTable::labels().

Referenced by HLTConfigProvider::prescaleLabels().

536  {
537  return hltPrescaleTable_.labels();
538 }
const std::vector< std::string > & labels() const
trigger::HLTPrescaleTable hltPrescaleTable_
unsigned int HLTConfigData::prescaleSize ( ) const

HLT prescale info Number of HLT prescale sets

Definition at line 529 of file HLTConfigData.cc.

References hltPrescaleTable_, and trigger::HLTPrescaleTable::size().

Referenced by HLTConfigProvider::prescaleSize().

529  {
530  return hltPrescaleTable_.size();
531 }
trigger::HLTPrescaleTable hltPrescaleTable_
unsigned int size() const
consistency condition: all vectors must have the same length
const std::map< std::string, std::vector< unsigned int > > & HLTConfigData::prescaleTable ( ) const

Definition at line 539 of file HLTConfigData.cc.

References hltPrescaleTable_, and trigger::HLTPrescaleTable::table().

Referenced by HLTConfigProvider::prescaleTable().

539  {
540  return hltPrescaleTable_.table();
541 }
const std::map< std::string, std::vector< unsigned int > > & table() const
trigger::HLTPrescaleTable hltPrescaleTable_
unsigned int HLTConfigData::prescaleValue ( unsigned int  set,
const std::string &  trigger 
) const

HLT prescale value in specific prescale set for a specific trigger path.

Definition at line 532 of file HLTConfigData.cc.

References hltPrescaleTable_, and trigger::HLTPrescaleTable::prescale().

Referenced by HLTConfigProvider::prescaleValue().

532  {
533  return hltPrescaleTable_.prescale(set,trigger);
534 }
trigger::HLTPrescaleTable hltPrescaleTable_
unsigned int prescale(const std::string &trigger) const
high-level user access method: prescale for given trigger path
const std::string & HLTConfigData::processName ( ) const

Accessors (const methods)

process name

Definition at line 344 of file HLTConfigData.cc.

References processName_.

Referenced by HLTConfigProvider::processName(), and HLTConfigDataEx::processName().

344  {
345  return processName_;
346 }
std::string processName_
const edm::ParameterSet & HLTConfigData::processPSet ( ) const

ParameterSet of process.

Definition at line 431 of file HLTConfigData.cc.

References processPSet_.

Referenced by HLTConfigProvider::processPSet().

431  {
432  return *processPSet_;
433 }
const edm::ParameterSet * processPSet_
bool HLTConfigData::saveTags ( const std::string &  module) const

Is module an L3 filter (ie, tracked saveTags=true)

Definition at line 447 of file HLTConfigData.cc.

References edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), modulePSet(), and TrackValidation_cff::pset.

Referenced by dump(), extract(), and HLTConfigProvider::saveTags().

447  {
449  if (pset.existsAs<bool>("saveTags",true)) {
450  return pset.getParameter<bool>("saveTags");
451  } else {
452  return false;
453  }
454 }
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
Definition: vlib.h:208
const std::vector< std::string > & HLTConfigData::saveTagsModules ( unsigned int  trigger) const

Definition at line 387 of file HLTConfigData.cc.

References saveTagsModules_.

Referenced by HLTConfigProvider::saveTagsModules().

387  {
388  return saveTagsModules_.at(trigger);
389 }
std::vector< std::vector< std::string > > saveTagsModules_
const std::vector< std::string > & HLTConfigData::saveTagsModules ( const std::string &  trigger) const

Definition at line 390 of file HLTConfigData.cc.

References saveTagsModules_, and triggerIndex().

390  {
391  return saveTagsModules_.at(triggerIndex(trigger));
392 }
std::vector< std::vector< std::string > > saveTagsModules_
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
unsigned int HLTConfigData::size ( void  ) const

number of trigger paths in trigger table

Definition at line 352 of file HLTConfigData.cc.

References triggerNames_.

Referenced by dump(), extract(), HLTConfigDataEx::HLTConfigDataEx(), moduleIndex(), size(), HLTConfigProvider::size(), HLTConfigDataEx::size(), and triggerIndex().

352  {
353  return triggerNames_.size();
354 }
std::vector< std::string > triggerNames_
unsigned int HLTConfigData::size ( unsigned int  trigger) const

number of modules on a specific trigger path

Definition at line 355 of file HLTConfigData.cc.

References moduleLabels_.

355  {
356  return moduleLabels_.at(trigger).size();
357 }
std::vector< std::vector< std::string > > moduleLabels_
unsigned int HLTConfigData::size ( const std::string &  trigger) const

Definition at line 358 of file HLTConfigData.cc.

References size(), and triggerIndex().

358  {
359  return size(triggerIndex(trigger));
360 }
unsigned int size() const
number of trigger paths in trigger table
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
const std::vector< std::string > & HLTConfigData::streamContent ( unsigned int  stream) const

names of datasets in stream with index i

Definition at line 490 of file HLTConfigData.cc.

References streamContents_.

Referenced by streamContent(), and HLTConfigProvider::streamContent().

490  {
491  return streamContents_.at(stream);
492 }
std::vector< std::vector< std::string > > streamContents_
const std::vector< std::string > & HLTConfigData::streamContent ( const std::string &  stream) const

names of datasets in stream with name

Definition at line 494 of file HLTConfigData.cc.

References streamContent(), and streamIndex().

494  {
495  return streamContent(streamIndex(stream));
496 }
unsigned int streamIndex(const std::string &stream) const
index of stream with name
const std::vector< std::string > & streamContent(unsigned int stream) const
names of datasets in stream with index i
const std::vector< std::vector< std::string > > & HLTConfigData::streamContents ( ) const

names of datasets for all streams

Definition at line 486 of file HLTConfigData.cc.

References streamContents_.

Referenced by HLTConfigProvider::streamContents().

486  {
487  return streamContents_;
488 }
std::vector< std::vector< std::string > > streamContents_
unsigned int HLTConfigData::streamIndex ( const std::string &  stream) const

index of stream with name

Definition at line 477 of file HLTConfigData.cc.

References cmsHarvester::index, streamIndex_, and streamNames_.

Referenced by streamContent(), and HLTConfigProvider::streamIndex().

477  {
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 }
std::vector< std::string > streamNames_
std::map< std::string, unsigned int > streamIndex_
const std::string & HLTConfigData::streamName ( unsigned int  stream) const

name of stream with index i

Definition at line 473 of file HLTConfigData.cc.

References streamNames_.

Referenced by HLTConfigProvider::streamName().

473  {
474  return streamNames_.at(stream);
475 }
std::vector< std::string > streamNames_
const std::vector< std::string > & HLTConfigData::streamNames ( ) const

Streams.

Streams list of names of all streams

Definition at line 469 of file HLTConfigData.cc.

References streamNames_.

Referenced by HLTConfigProvider::streamNames().

469  {
470  return streamNames_;
471 }
std::vector< std::string > streamNames_
const std::string & HLTConfigData::tableName ( ) const

HLT ConfDB table name.

Definition at line 362 of file HLTConfigData.cc.

References tableName_.

Referenced by HLTConfigProvider::tableName().

362  {
363  return tableName_;
364 }
std::string tableName_
unsigned int HLTConfigData::triggerIndex ( const std::string &  triggerName) const

slot position of trigger path in trigger table (0 - size-1)

Definition at line 371 of file HLTConfigData.cc.

References cmsHarvester::index, size(), and triggerIndex_.

Referenced by hltL1GTSeeds(), moduleIndex(), moduleLabel(), moduleLabels(), saveTagsModules(), size(), and HLTConfigProvider::triggerIndex().

371  {
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 }
unsigned int size() const
number of trigger paths in trigger table
std::map< std::string, unsigned int > triggerIndex_
const std::string & HLTConfigData::triggerName ( unsigned int  triggerIndex) const

Definition at line 368 of file HLTConfigData.cc.

References triggerNames_.

Referenced by HLTConfigProvider::triggerName(), and HLTConfigDataEx::triggerName().

368  {
369  return triggerNames_.at(trigger);
370 }
std::vector< std::string > triggerNames_
const std::vector< std::string > & HLTConfigData::triggerNames ( ) const

names of trigger paths

Definition at line 365 of file HLTConfigData.cc.

References triggerNames_.

Referenced by HLTConfigProvider::triggerNames(), and HLTConfigDataEx::triggerNames().

365  {
366  return triggerNames_;
367 }
std::vector< std::string > triggerNames_

Member Data Documentation

std::vector<std::vector<std::string> > HLTConfigData::datasetContents_
private

Definition at line 164 of file HLTConfigData.h.

Referenced by datasetContent(), datasetContents(), dump(), and extract().

std::map<std::string,unsigned int> HLTConfigData::datasetIndex_
private

Definition at line 163 of file HLTConfigData.h.

Referenced by datasetIndex(), and extract().

std::vector<std::string> HLTConfigData::datasetNames_
private

Definition at line 162 of file HLTConfigData.h.

Referenced by datasetIndex(), datasetName(), datasetNames(), dump(), and extract().

std::string HLTConfigData::globalTag_
private

Definition at line 147 of file HLTConfigData.h.

Referenced by dump(), extract(), and globalTag().

std::vector<std::vector<std::pair<bool,std::string> > > HLTConfigData::hltL1GTSeeds_
private

Definition at line 156 of file HLTConfigData.h.

Referenced by dump(), extract(), and hltL1GTSeeds().

trigger::HLTPrescaleTable HLTConfigData::hltPrescaleTable_
private
std::vector<std::map<std::string,unsigned int> > HLTConfigData::moduleIndex_
private

Definition at line 154 of file HLTConfigData.h.

Referenced by extract(), and moduleIndex().

std::vector<std::vector<std::string> > HLTConfigData::moduleLabels_
private

Definition at line 150 of file HLTConfigData.h.

Referenced by dump(), extract(), moduleLabel(), moduleLabels(), and size().

std::string HLTConfigData::processName_
private

Definition at line 146 of file HLTConfigData.h.

Referenced by dump(), extract(), and processName().

const edm::ParameterSet* HLTConfigData::processPSet_
private

Definition at line 144 of file HLTConfigData.h.

Referenced by dump(), extract(), HLTConfigData(), id(), modulePSet(), and processPSet().

std::vector<std::vector<std::string> > HLTConfigData::saveTagsModules_
private

Definition at line 151 of file HLTConfigData.h.

Referenced by extract(), and saveTagsModules().

std::vector<std::vector<std::string> > HLTConfigData::streamContents_
private

Definition at line 160 of file HLTConfigData.h.

Referenced by dump(), extract(), streamContent(), and streamContents().

std::map<std::string,unsigned int> HLTConfigData::streamIndex_
private

Definition at line 159 of file HLTConfigData.h.

Referenced by extract(), and streamIndex().

std::vector<std::string> HLTConfigData::streamNames_
private

Definition at line 158 of file HLTConfigData.h.

Referenced by dump(), extract(), streamIndex(), streamName(), and streamNames().

std::string HLTConfigData::tableName_
private

Definition at line 148 of file HLTConfigData.h.

Referenced by dump(), extract(), and tableName().

std::map<std::string,unsigned int> HLTConfigData::triggerIndex_
private

Definition at line 153 of file HLTConfigData.h.

Referenced by extract(), and triggerIndex().

std::vector<std::string> HLTConfigData::triggerNames_
private

Definition at line 149 of file HLTConfigData.h.

Referenced by dump(), extract(), size(), triggerName(), and triggerNames().