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 22 of file HLTConfigData.cc.

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

22  :
24  processName_(""), globalTag_(""),
27  hltL1GTSeeds_(),
31 {
32  if (processPSet_->id().isValid()) {
33  extract();
34  }
35 }
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 37 of file HLTConfigData.cc.

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

37  :
38  processPSet_(iPSet),
39  processName_(""), globalTag_(""),
42  hltL1GTSeeds_(),
46 {
47  if (processPSet_->id().isValid()) {
48  extract();
49  }
50 }
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 500 of file HLTConfigData.cc.

References datasetContents_.

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

500  {
501  return datasetContents_.at(dataset);
502 }
std::vector< std::vector< std::string > > datasetContents_
tuple dataset
Definition: dataset.py:393
const std::vector< std::string > & HLTConfigData::datasetContent ( const std::string &  dataset) const

names of trigger paths in dataset with name

Definition at line 504 of file HLTConfigData.cc.

References datasetContent(), and datasetIndex().

504  {
506 }
const std::vector< std::string > & datasetContent(unsigned int dataset) const
names of trigger paths in dataset with index i
tuple dataset
Definition: dataset.py:393
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 496 of file HLTConfigData.cc.

References datasetContents_.

Referenced by HLTConfigProvider::datasetContents().

496  {
497  return datasetContents_;
498 }
std::vector< std::vector< std::string > > datasetContents_
unsigned int HLTConfigData::datasetIndex ( const std::string &  dataset) const

index of dataset with name

Definition at line 487 of file HLTConfigData.cc.

References datasetIndex_, datasetNames_, and cmsHarvester::index.

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

487  {
488  const std::map<std::string,unsigned int>::const_iterator index(datasetIndex_.find(dataset));
489  if (index==datasetIndex_.end()) {
490  return datasetNames_.size();
491  } else {
492  return index->second;
493  }
494 }
std::map< std::string, unsigned int > datasetIndex_
std::vector< std::string > datasetNames_
tuple dataset
Definition: dataset.py:393
const std::string & HLTConfigData::datasetName ( unsigned int  dataset) const

name of dataset with index i

Definition at line 483 of file HLTConfigData.cc.

References datasetNames_.

Referenced by HLTConfigProvider::datasetName().

483  {
484  return datasetNames_.at(dataset);
485 }
std::vector< std::string > datasetNames_
tuple dataset
Definition: dataset.py:393
const std::vector< std::string > & HLTConfigData::datasetNames ( ) const

Datasets.

Datasets list of names of all datasets

Definition at line 479 of file HLTConfigData.cc.

References datasetNames_.

Referenced by HLTConfigProvider::datasetNames().

479  {
480  return datasetNames_;
481 }
std::vector< std::string > datasetNames_
void HLTConfigData::dump ( const std::string &  what) const

Dumping config info to cout.

Definition at line 224 of file HLTConfigData.cc.

References gather_cfg::cout, datasetContents_, datasetNames_, globalTag_, hltL1GTSeeds_, hltPrescaleTable_, i, j, diffTwoXMLs::label, tablePrinter::labels, trigger::HLTPrescaleTable::labels(), m, python.multivaluedict::map(), moduleEDMType(), moduleLabels_, moduleType(), n, processName_, processPSet_, saveTags(), trigger::HLTPrescaleTable::size(), size(), streamContents_, streamNames_, table, trigger::HLTPrescaleTable::table(), tableName_, o2o::tags, and triggerNames_.

Referenced by HLTConfigProvider::dump().

224  {
225  using namespace std;
226  using namespace edm;
227 
228  if (what=="ProcessPSet") {
229  cout << "HLTConfigData::dump: ProcessPSet = " << endl << *processPSet_ << endl;
230  } else if (what=="ProcessName") {
231  cout << "HLTConfigData::dump: ProcessName = " << processName_ << endl;
232  } else if (what=="GlobalTag") {
233  cout << "HLTConfigData::dump: GlobalTag = " << globalTag_ << endl;
234  } else if (what=="TableName") {
235  cout << "HLTConfigData::dump: TableName = " << tableName_ << endl;
236  } else if (what=="Triggers") {
237  const unsigned int n(size());
238  cout << "HLTConfigData::dump: Triggers: " << n << endl;
239  for (unsigned int i=0; i!=n; ++i) {
240  cout << " " << i << " " << triggerNames_[i] << endl;
241  }
242  } else if (what=="TriggerSeeds") {
243  const unsigned int n(size());
244  cout << "HLTConfigData::dump: TriggerSeeds: " << n << endl;
245  for (unsigned int i=0; i!=n; ++i) {
246  const unsigned int m(hltL1GTSeeds_[i].size());
247  cout << " " << i << " " << triggerNames_[i] << " " << m << endl;
248  for (unsigned int j=0; j!=m; ++j) {
249  cout << " " << j
250  << " " << hltL1GTSeeds_[i][j].first
251  << "/" << hltL1GTSeeds_[i][j].second << endl;
252  }
253  }
254  } else if (what=="Modules") {
255  const unsigned int n(size());
256  cout << "HLTConfigData::dump Triggers and Modules: " << n << endl;
257  for (unsigned int i=0; i!=n; ++i) {
258  const unsigned int m(size(i));
259  cout << i << " " << triggerNames_[i] << " " << m << endl;
260  cout << " - Modules: ";
261  unsigned int nHLTPrescalers(0);
262  unsigned int nHLTLevel1GTSeed(0);
263  for (unsigned int j=0; j!=m; ++j) {
264  const string& label(moduleLabels_[i][j]);
265  const string type(moduleType(label));
266  const string edmtype(moduleEDMType(label));
267  const bool tags(saveTags(label));
268  cout << " " << j << ":" << label << "/" << type << "/" << edmtype << "/" << tags;
269  if (type=="HLTPrescaler") nHLTPrescalers++;
270  if (type=="HLTLevel1GTSeed") nHLTLevel1GTSeed++;
271  }
272  cout << endl;
273  cout << " - Number of HLTPrescaler/HLTLevel1GTSeed modules: "
274  << nHLTPrescalers << "/" << nHLTLevel1GTSeed << endl;
275  }
276  } else if (what=="StreamNames") {
277  const unsigned int n(streamNames_.size());
278  cout << "HLTConfigData::dump: StreamNames: " << n << endl;
279  for (unsigned int i=0; i!=n; ++i) {
280  cout << " " << i << " " << streamNames_[i] << endl;
281  }
282  } else if (what=="Streams") {
283  const unsigned int n(streamNames_.size());
284  cout << "HLTConfigData::dump: Streams: " << n << endl;
285  for (unsigned int i=0; i!=n; ++i) {
286  const unsigned int m(streamContents_[i].size());
287  cout << " " << i << " " << streamNames_[i] << " " << m << endl;
288  for (unsigned int j=0; j!=m; ++j) {
289  cout << " " << j << " " << streamContents_[i][j] << endl;
290  }
291  }
292  } else if (what=="DatasetNames") {
293  const unsigned int n(datasetNames_.size());
294  cout << "HLTConfigData::dump: DatasetNames: " << n << endl;
295  for (unsigned int i=0; i!=n; ++i) {
296  cout << " " << i << " " << datasetNames_[i] << endl;
297  }
298  } else if (what=="Datasets") {
299  const unsigned int n(datasetNames_.size());
300  cout << "HLTConfigData::dump: Datasets: " << n << endl;
301  for (unsigned int i=0; i!=n; ++i) {
302  const unsigned int m(datasetContents_[i].size());
303  cout << " " << i << " " << datasetNames_[i] << " " << m << endl;
304  for (unsigned int j=0; j!=m; ++j) {
305  cout << " " << j << " " << datasetContents_[i][j] << endl;
306  }
307  }
308  } else if (what=="PrescaleTable") {
309  const unsigned int n (hltPrescaleTable_.size());
310  cout << "HLTConfigData::dump: PrescaleTable: # of sets : " << n << endl;
311  const vector<string>& labels(hltPrescaleTable_.labels());
312  for (unsigned int i=0; i!=n; ++i) {
313  cout << " " << i << "/'" << labels.at(i) << "'";
314  }
315  if (n>0) cout << endl;
316  const map<string,vector<unsigned int> >& table(hltPrescaleTable_.table());
317  cout << "HLTConfigData::dump: PrescaleTable: # of paths: " << table.size() << endl;
318  const map<string,vector<unsigned int> >::const_iterator tb(table.begin());
319  const map<string,vector<unsigned int> >::const_iterator te(table.end());
320  for (map<string,vector<unsigned int> >::const_iterator ti=tb; ti!=te; ++ti) {
321  for (unsigned int i=0; i!=n; ++i) {
322  cout << " " << ti->second.at(i);
323  }
324  cout << " " << ti->first << endl;
325  }
326  } else {
327  cout << "HLTConfigData::dump: Unkown dump request: " << what << endl;
328  }
329  return;
330 }
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
#define table(NAME)
Definition: DbCore.h:49
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:121
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 52 of file HLTConfigData.cc.

References begin, datasetContents_, datasetIndex_, datasetNames_, RecoTau_DiTaus_pt_20-420_cfg::datasets, end, edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), globalTag_, hltL1GTSeeds_, hltPrescaleTable_, i, j, diffTwoXMLs::label, tablePrinter::labels, m, moduleIndex_, moduleLabels(), moduleLabels_, modulePSet(), server-conf-devtest-v6::modules, moduleType(), n, processName_, processPSet_, saveTags(), saveTagsModules_, size(), python.multivaluedict::sort(), streamContents_, streamIndex_, streamNames_, hcal_dqm_sourceclient-file_cfg::streams, AlCaHLTBitMon_QueryRunRegistry::string, table, tableName_, triggerIndex_, and triggerNames_.

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

53 {
54  using namespace std;
55  using namespace edm;
56  using namespace trigger;
57 
58  // Extract process name
59  if (processPSet_->existsAs<string>("@process_name",true)) {
60  processName_= processPSet_->getParameter<string>("@process_name");
61  }
62 
63  // Extract globaltag
64  globalTag_="";
65  const ParameterSet* GlobalTagPSet(0);
66  if (processPSet_->exists("GlobalTag")) {
67  GlobalTagPSet = &(processPSet_->getParameterSet("GlobalTag"));
68  } else if (processPSet_->exists("PoolDBESSource@GlobalTag")) {
69  GlobalTagPSet = &(processPSet_->getParameterSet("PoolDBESSource@GlobalTag"));
70  }
71  if (GlobalTagPSet && GlobalTagPSet->existsAs<std::string>("globaltag",true)) {
72  globalTag_=GlobalTagPSet->getParameter<std::string>("globaltag");
73  }
74 
75  // Obtain PSet containing table name (available only in 2_1_10++ files)
76  if (processPSet_->existsAs<ParameterSet>("HLTConfigVersion",true)) {
77  const ParameterSet& HLTPSet(processPSet_->getParameterSet("HLTConfigVersion"));
78  if (HLTPSet.existsAs<string>("tableName",true)) {
79  tableName_=HLTPSet.getParameter<string>("tableName");
80  }
81  }
82 
83  LogVerbatim("HLTConfigData") << "ProcessPSet with: "
84  << processName_ << " "
85  << globalTag_ << " "
86  << tableName_;
87 
88  // Extract trigger paths (= paths - end_paths)
89  if (processPSet_->existsAs<ParameterSet>("@trigger_paths",true)) {
90  const ParameterSet& HLTPSet(processPSet_->getParameterSet("@trigger_paths"));
91  if (HLTPSet.existsAs<vector<string> >("@trigger_paths",true)) {
92  triggerNames_= HLTPSet.getParameter<vector<string> >("@trigger_paths");
93  }
94  }
95 
96  // Obtain module labels of all modules on all trigger paths
97  const unsigned int n(size());
98  moduleLabels_.reserve(n);
99  for (unsigned int i=0;i!=n; ++i) {
100  if (processPSet_->existsAs<vector<string> >(triggerNames_[i],true)) {
101  moduleLabels_.push_back(processPSet_->getParameter<vector<string> >(triggerNames_[i]));
102  }
103  }
104  saveTagsModules_.reserve(n);
105  vector<string> labels;
106  for (unsigned int i=0;i!=n; ++i) {
107  labels.clear();
108  const vector<string>& modules(moduleLabels(i));
109  const unsigned int m(modules.size());
110  labels.reserve(m);
111  for (unsigned int j=0;j!=m; ++j) {
112  const string& label(modules[j]);
113  if (saveTags(label)) labels.push_back(label);
114  }
115  saveTagsModules_.push_back(labels);
116  }
117 
118  // Fill index maps for fast lookup
119  moduleIndex_.resize(n);
120  for (unsigned int i=0; i!=n; ++i) {
122  moduleIndex_[i].clear();
123  const unsigned int m(size(i));
124  for (unsigned int j=0; j!=m; ++j) {
126  }
127  }
128 
129  // Extract and fill HLTLevel1GTSeed information for each trigger path
130  hltL1GTSeeds_.resize(n);
131  for (unsigned int i=0; i!=n; ++i) {
132  hltL1GTSeeds_[i].clear();
133  const unsigned int m(size(i));
134  for (unsigned int j=0; j!=m; ++j) {
135  const string& label(moduleLabels_[i][j]);
136  if (moduleType(label) == "HLTLevel1GTSeed") {
137  const ParameterSet& pset(modulePSet(label));
138  if (pset!=ParameterSet()) {
139  const bool l1Tech(pset.getParameter<bool>("L1TechTriggerSeeding"));
140  const string l1Seed(pset.getParameter<string>("L1SeedsLogicalExpression"));
141  hltL1GTSeeds_[i].push_back(pair<bool,string>(l1Tech,l1Seed));
142  }
143  }
144  }
145  }
146 
147  // Extract and fill streams information
148  if (processPSet_->existsAs<ParameterSet>("streams",true)) {
149  const ParameterSet& streams(processPSet_->getParameterSet("streams"));
150  streamNames_=streams.getParameterNamesForType<vector<string> >();
151  sort(streamNames_.begin(),streamNames_.end());
152  const unsigned int n(streamNames_.size());
153  streamContents_.resize(n);
154  for (unsigned int i=0; i!=n; ++i) {
155  streamIndex_[streamNames_[i]]=i;
156  streamContents_[i]=streams.getParameter<vector<string> >(streamNames_[i]);
158  }
159 
160  }
161 
162  // Extract and fill datasets information
163  if (processPSet_->existsAs<ParameterSet>("datasets",true)) {
164  const ParameterSet& datasets(processPSet_->getParameterSet("datasets"));
165  datasetNames_=datasets.getParameterNamesForType<vector<string> >();
166  sort(datasetNames_.begin(),datasetNames_.end());
167  const unsigned int n(datasetNames_.size());
168  datasetContents_.resize(n);
169  for (unsigned int i=0; i!=n; ++i) {
170  datasetIndex_[datasetNames_[i]]=i;
171  datasetContents_[i]=datasets.getParameter< vector<string> >(datasetNames_[i]);
173  }
174  }
175 
176  // Extract and fill Prescale information
177 
178  // Check various possibilities to get the HLT prescale sets:
179  string prescaleName("");
180  const string preS("PrescaleService");
181  const string preT("PrescaleTable");
182  if (processPSet_->existsAs<ParameterSet>(preS,true)) {
183  prescaleName=preS;
184  } else if ( processPSet_->existsAs<ParameterSet>(preT,true)) {
185  prescaleName=preT;
186  }
187  if (prescaleName=="") {
189  } else {
190  const ParameterSet& iPS(processPSet_->getParameterSet(prescaleName));
191  string defaultLabel("default");
192  if (iPS.existsAs<string>("lvl1DefaultLabel",true)) {
193  defaultLabel = iPS.getParameter<string>("lvl1DefaultLabel");
194  }
195  vector<string> labels;
196  if (iPS.existsAs<vector<string> >("lvl1Labels",true)) {
197  labels = iPS.getParameter<vector<string> >("lvl1Labels");
198  }
199  unsigned int set(0);
200  const unsigned int n(labels.size());
201  for (unsigned int i=0; i!=n; ++i) {
202  if (labels[i]==defaultLabel) set=i;
203  }
204  map<string,vector<unsigned int> > table;
205  if (iPS.existsAs< vector<ParameterSet> >("prescaleTable",true)) {
206  const vector<ParameterSet>& vpTable(iPS.getParameterSetVector("prescaleTable"));
207  const unsigned int m (vpTable.size());
208  for (unsigned int i=0; i!=m; ++i) {
209  table[vpTable[i].getParameter<std::string>("pathName")] =
210  vpTable[i].getParameter<std::vector<unsigned int> >("prescales");
211  }
212  }
213  if (n>0) {
214  hltPrescaleTable_=HLTPrescaleTable(set,labels,table);
215  } else {
217  }
218 
219  }
220 
221  return;
222 }
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:184
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
#define table(NAME)
Definition: DbCore.h:49
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.

Referenced by HLTConfigProvider::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 436 of file HLTConfigData.cc.

References hltL1GTSeeds_.

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

436  {
437  return hltL1GTSeeds_;
438 }
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 440 of file HLTConfigData.cc.

References hltL1GTSeeds(), and triggerIndex().

440  {
441  return hltL1GTSeeds(triggerIndex(trigger));
442 }
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 444 of file HLTConfigData.cc.

References hltL1GTSeeds_.

444  {
445  return hltL1GTSeeds_.at(trigger);
446 }
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 523 of file HLTConfigData.cc.

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

Referenced by HLTConfigProvider::init().

523  {
524  return processPSet_->id();
525 }
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 406 of file HLTConfigData.cc.

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

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

406  {
407  const edm::ParameterSet& pset(modulePSet(module));
408  if (pset.existsAs<std::string>("@module_edm_type",true)) {
409  return pset.getParameter<std::string>("@module_edm_type");
410  } else {
411  return "";
412  }
413 }
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 385 of file HLTConfigData.cc.

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

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

385  {
386  const std::map<std::string,unsigned int>::const_iterator index(moduleIndex_.at(trigger).find(module));
387  if (index==moduleIndex_.at(trigger).end()) {
388  return size(trigger);
389  } else {
390  return index->second;
391  }
392 }
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 393 of file HLTConfigData.cc.

References moduleIndex(), and triggerIndex().

393  {
394  return moduleIndex(triggerIndex(trigger),module);
395 }
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 378 of file HLTConfigData.cc.

References moduleLabels_.

Referenced by HLTConfigProvider::moduleLabel().

378  {
379  return moduleLabels_.at(trigger).at(module);
380 }
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 381 of file HLTConfigData.cc.

References moduleLabels_, and triggerIndex().

381  {
382  return moduleLabels_.at(triggerIndex(trigger)).at(module);
383 }
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 364 of file HLTConfigData.cc.

References moduleLabels_.

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

364  {
365  return moduleLabels_.at(trigger);
366 }
std::vector< std::vector< std::string > > moduleLabels_
const std::vector< std::string > & HLTConfigData::moduleLabels ( const std::string &  trigger) const

Definition at line 367 of file HLTConfigData.cc.

References moduleLabels_, and triggerIndex().

367  {
368  return moduleLabels_.at(triggerIndex(trigger));
369 }
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 419 of file HLTConfigData.cc.

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

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

419  {
420  if (processPSet_->exists(module)) {
422  } else {
423  return *s_dummyPSet();
424  }
425 }
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 397 of file HLTConfigData.cc.

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

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

397  {
398  const edm::ParameterSet& pset(modulePSet(module));
399  if (pset.existsAs<std::string>("@module_type",true)) {
400  return pset.getParameter<std::string>("@module_type");
401  } else {
402  return "";
403  }
404 }
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 516 of file HLTConfigData.cc.

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

Referenced by HLTConfigProvider::prescaleLabels().

516  {
517  return hltPrescaleTable_.labels();
518 }
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 509 of file HLTConfigData.cc.

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

Referenced by HLTConfigProvider::prescaleSize().

509  {
510  return hltPrescaleTable_.size();
511 }
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 519 of file HLTConfigData.cc.

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

Referenced by HLTConfigProvider::prescaleTable().

519  {
520  return hltPrescaleTable_.table();
521 }
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 512 of file HLTConfigData.cc.

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

Referenced by HLTConfigProvider::prescaleValue().

512  {
513  return hltPrescaleTable_.prescale(set,trigger);
514 }
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 332 of file HLTConfigData.cc.

References processName_.

Referenced by HLTConfigProvider::processName().

332  {
333  return processName_;
334 }
std::string processName_
const edm::ParameterSet & HLTConfigData::processPSet ( ) const

ParameterSet of process.

Definition at line 415 of file HLTConfigData.cc.

References processPSet_.

Referenced by HLTConfigProvider::processPSet().

415  {
416  return *processPSet_;
417 }
const edm::ParameterSet * processPSet_
bool HLTConfigData::saveTags ( const std::string &  module) const

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

Definition at line 427 of file HLTConfigData.cc.

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

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

427  {
428  const edm::ParameterSet& pset(modulePSet(module));
429  if (pset.existsAs<bool>("saveTags",true)) {
430  return pset.getParameter<bool>("saveTags");
431  } else {
432  return false;
433  }
434 }
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 371 of file HLTConfigData.cc.

References saveTagsModules_.

Referenced by HLTConfigProvider::saveTagsModules().

371  {
372  return saveTagsModules_.at(trigger);
373 }
std::vector< std::vector< std::string > > saveTagsModules_
const std::vector< std::string > & HLTConfigData::saveTagsModules ( const std::string &  trigger) const

Definition at line 374 of file HLTConfigData.cc.

References saveTagsModules_, and triggerIndex().

374  {
375  return saveTagsModules_.at(triggerIndex(trigger));
376 }
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 336 of file HLTConfigData.cc.

References triggerNames_.

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

336  {
337  return triggerNames_.size();
338 }
std::vector< std::string > triggerNames_
unsigned int HLTConfigData::size ( unsigned int  trigger) const

number of modules on a specific trigger path

Definition at line 339 of file HLTConfigData.cc.

References moduleLabels_.

339  {
340  return moduleLabels_.at(trigger).size();
341 }
std::vector< std::vector< std::string > > moduleLabels_
unsigned int HLTConfigData::size ( const std::string &  trigger) const

Definition at line 342 of file HLTConfigData.cc.

References size(), and triggerIndex().

342  {
343  return size(triggerIndex(trigger));
344 }
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 470 of file HLTConfigData.cc.

References streamContents_.

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

470  {
471  return streamContents_.at(stream);
472 }
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 474 of file HLTConfigData.cc.

References streamContent(), and streamIndex().

474  {
476 }
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 466 of file HLTConfigData.cc.

References streamContents_.

Referenced by HLTConfigProvider::streamContents().

466  {
467  return streamContents_;
468 }
std::vector< std::vector< std::string > > streamContents_
unsigned int HLTConfigData::streamIndex ( const std::string &  stream) const

index of stream with name

Definition at line 457 of file HLTConfigData.cc.

References cmsHarvester::index, streamIndex_, and streamNames_.

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

457  {
458  const std::map<std::string,unsigned int>::const_iterator index(streamIndex_.find(stream));
459  if (index==streamIndex_.end()) {
460  return streamNames_.size();
461  } else {
462  return index->second;
463  }
464 }
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 453 of file HLTConfigData.cc.

References streamNames_.

Referenced by HLTConfigProvider::streamName().

453  {
454  return streamNames_.at(stream);
455 }
std::vector< std::string > streamNames_
const std::vector< std::string > & HLTConfigData::streamNames ( ) const

Streams.

Streams list of names of all streams

Definition at line 449 of file HLTConfigData.cc.

References streamNames_.

Referenced by HLTConfigProvider::streamNames().

449  {
450  return streamNames_;
451 }
std::vector< std::string > streamNames_
const std::string & HLTConfigData::tableName ( ) const

HLT ConfDB table name.

Definition at line 346 of file HLTConfigData.cc.

References tableName_.

Referenced by HLTConfigProvider::tableName().

346  {
347  return tableName_;
348 }
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 355 of file HLTConfigData.cc.

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

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

355  {
356  const std::map<std::string,unsigned int>::const_iterator index(triggerIndex_.find(trigger));
357  if (index==triggerIndex_.end()) {
358  return size();
359  } else {
360  return index->second;
361  }
362 }
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 352 of file HLTConfigData.cc.

References triggerNames_.

Referenced by HLTConfigProvider::triggerName().

352  {
353  return triggerNames_.at(trigger);
354 }
std::vector< std::string > triggerNames_
const std::vector< std::string > & HLTConfigData::triggerNames ( ) const

names of trigger paths

Definition at line 349 of file HLTConfigData.cc.

References triggerNames_.

Referenced by HLTConfigProvider::triggerNames().

349  {
350  return triggerNames_;
351 }
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(), and extract().

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().