26 processName_(
""), globalTag_(
""),
27 tableName_(), triggerNames_(), moduleLabels_(), saveTagsModules_(),
28 triggerIndex_(), moduleIndex_(),
30 streamNames_(), streamIndex_(), streamContents_(),
31 datasetNames_(), datasetIndex_(), datasetContents_(),
41 processName_(
""), globalTag_(
""),
42 tableName_(), triggerNames_(), moduleLabels_(), saveTagsModules_(),
43 triggerIndex_(), moduleIndex_(),
45 streamNames_(), streamIndex_(), streamContents_(),
46 datasetNames_(), datasetIndex_(), datasetContents_(),
58 using namespace trigger;
73 if (GlobalTagPSet && GlobalTagPSet->
existsAs<std::string>(
"globaltag",
true)) {
80 if (HLTPSet.existsAs<
string>(
"tableName",
true)) {
81 tableName_=HLTPSet.getParameter<
string>(
"tableName");
85 LogVerbatim(
"HLTConfigData") <<
"ProcessPSet with: "
93 if (HLTPSet.existsAs<vector<string> >(
"@trigger_paths",
true)) {
94 triggerNames_= HLTPSet.getParameter<vector<string> >(
"@trigger_paths");
99 const unsigned int n(
size());
101 for (
unsigned int i=0;
i!=
n; ++
i) {
108 for (
unsigned int i=0;
i!=
n; ++
i) {
111 const unsigned int m(modules.size());
113 for (
unsigned int j=0;
j!=
m; ++
j) {
114 const string&
label(modules[
j]);
122 for (
unsigned int i=0;
i!=
n; ++
i) {
125 const unsigned int m(
size(
i));
126 for (
unsigned int j=0;
j!=
m; ++
j) {
133 for (
unsigned int i=0;
i!=
n; ++
i) {
135 const unsigned int m(
size(
i));
136 for (
unsigned int j=0;
j!=
m; ++
j) {
141 const bool l1Tech(pset.
getParameter<
bool>(
"L1TechTriggerSeeding"));
142 const string l1Seed(pset.
getParameter<
string>(
"L1SeedsLogicalExpression"));
153 sort(streamNames_.begin(),streamNames_.end());
154 const unsigned int n(streamNames_.size());
156 for (
unsigned int i=0;
i!=
n; ++
i) {
168 sort(datasetNames_.begin(),datasetNames_.end());
169 const unsigned int n(datasetNames_.size());
171 for (
unsigned int i=0;
i!=
n; ++
i) {
181 string prescaleName(
"");
182 const string preS(
"PrescaleService");
183 const string preT(
"PrescaleTable");
189 if (prescaleName==
"") {
193 string defaultLabel(
"default");
194 if (iPS.existsAs<
string>(
"lvl1DefaultLabel",
true)) {
195 defaultLabel = iPS.getParameter<
string>(
"lvl1DefaultLabel");
198 if (iPS.existsAs<vector<string> >(
"lvl1Labels",
true)) {
199 labels = iPS.getParameter<vector<string> >(
"lvl1Labels");
202 const unsigned int n(labels.size());
203 for (
unsigned int i=0;
i!=
n; ++
i) {
204 if (labels[
i]==defaultLabel) set=
i;
206 map<string,vector<unsigned int> >
table;
207 if (iPS.existsAs< vector<ParameterSet> >(
"prescaleTable",
true)) {
208 const vector<ParameterSet>& vpTable(iPS.getParameterSetVector(
"prescaleTable"));
209 const unsigned int m (vpTable.size());
210 for (
unsigned int i=0;
i!=
m; ++
i) {
211 table[vpTable[
i].getParameter<std::string>(
"pathName")] =
212 vpTable[
i].getParameter<std::vector<unsigned int> >(
"prescales");
230 if (what==
"ProcessPSet") {
231 cout <<
"HLTConfigData::dump: ProcessPSet = " << endl << *
processPSet_ << endl;
232 }
else if (what==
"ProcessName") {
234 }
else if (what==
"GlobalTag") {
235 cout <<
"HLTConfigData::dump: GlobalTag = " <<
globalTag_ << endl;
236 }
else if (what==
"TableName") {
237 cout <<
"HLTConfigData::dump: TableName = " <<
tableName_ << endl;
238 }
else if (what==
"Triggers") {
239 const unsigned int n(
size());
240 cout <<
"HLTConfigData::dump: Triggers: " << n << endl;
241 for (
unsigned int i=0;
i!=
n; ++
i) {
244 }
else if (what==
"TriggerSeeds") {
245 const unsigned int n(
size());
246 cout <<
"HLTConfigData::dump: TriggerSeeds: " << n << endl;
247 for (
unsigned int i=0;
i!=
n; ++
i) {
250 for (
unsigned int j=0;
j!=
m; ++
j) {
256 }
else if (what==
"Modules") {
257 const unsigned int n(
size());
258 cout <<
"HLTConfigData::dump Triggers and Modules: " << n << endl;
259 for (
unsigned int i=0;
i!=
n; ++
i) {
260 const unsigned int m(
size(
i));
262 cout <<
" - Modules: ";
263 unsigned int nHLTPrescalers(0);
264 unsigned int nHLTLevel1GTSeed(0);
265 for (
unsigned int j=0;
j!=
m; ++
j) {
270 cout <<
" " << j <<
":" << label <<
"/" << type <<
"/" << edmtype <<
"/" <<
tags;
271 if (type==
"HLTPrescaler") nHLTPrescalers++;
272 if (type==
"HLTLevel1GTSeed") nHLTLevel1GTSeed++;
275 cout <<
" - Number of HLTPrescaler/HLTLevel1GTSeed modules: "
276 << nHLTPrescalers <<
"/" << nHLTLevel1GTSeed << endl;
278 }
else if (what==
"StreamNames") {
280 cout <<
"HLTConfigData::dump: StreamNames: " <<
n << endl;
281 for (
unsigned int i=0;
i!=
n; ++
i) {
284 }
else if (what==
"Streams") {
286 cout <<
"HLTConfigData::dump: Streams: " <<
n << endl;
287 for (
unsigned int i=0;
i!=
n; ++
i) {
290 for (
unsigned int j=0;
j!=
m; ++
j) {
294 }
else if (what==
"DatasetNames") {
296 cout <<
"HLTConfigData::dump: DatasetNames: " <<
n << endl;
297 for (
unsigned int i=0;
i!=
n; ++
i) {
300 }
else if (what==
"Datasets") {
302 cout <<
"HLTConfigData::dump: Datasets: " <<
n << endl;
303 for (
unsigned int i=0;
i!=
n; ++
i) {
306 for (
unsigned int j=0;
j!=
m; ++
j) {
310 }
else if (what==
"PrescaleTable") {
312 cout <<
"HLTConfigData::dump: PrescaleTable: # of sets : " <<
n << endl;
314 for (
unsigned int i=0;
i!=
n; ++
i) {
317 if (
n>0)
cout << endl;
319 cout <<
"HLTConfigData::dump: PrescaleTable: # of paths: " <<
table.size() << endl;
320 const map<string,vector<unsigned int> >::const_iterator tb(
table.begin());
321 const map<string,vector<unsigned int> >::const_iterator te(
table.end());
322 for (
map<
string,vector<unsigned int> >::const_iterator ti=tb; ti!=te; ++ti) {
323 for (
unsigned int i=0;
i!=
n; ++
i) {
324 cout <<
" " << ti->second.at(
i);
326 cout <<
" " << ti->first << endl;
329 cout <<
"HLTConfigData::dump: Unkown dump request: " << what << endl;
358 const std::map<std::string,unsigned int>::const_iterator
index(
triggerIndex_.find(trigger));
362 return index->second;
388 const std::map<std::string,unsigned int>::const_iterator
index(
moduleIndex_.at(trigger).find(module));
390 return size(trigger);
392 return index->second;
401 if (pset.
existsAs<std::string>(
"@module_type",
true)) {
410 if (pset.
existsAs<std::string>(
"@module_edm_type",
true)) {
411 return pset.
getParameter<std::string>(
"@module_edm_type");
431 if (pset.
existsAs<
bool>(
"saveTags",
true)) {
460 const std::map<std::string,unsigned int>::const_iterator
index(
streamIndex_.find(stream));
464 return index->second;
490 const std::map<std::string,unsigned int>::const_iterator
index(
datasetIndex_.find(dataset));
494 return index->second;
T getParameter(std::string const &) const
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
const std::string & datasetName(unsigned int dataset) const
name of dataset with index i
std::vector< std::vector< std::pair< bool, std::string > > > hltL1GTSeeds_
std::vector< std::map< std::string, unsigned int > > moduleIndex_
const std::string & streamName(unsigned int stream) const
name of stream with index i
ParameterSetID id() const
std::map< std::string, unsigned int > datasetIndex_
The single EDProduct containing the HLT Prescale Table.
const std::vector< std::string > & triggerNames() const
names of trigger paths
const std::vector< std::vector< std::pair< bool, std::string > > > & hltL1GTSeeds() const
bool exists(std::string const ¶meterName) const
checks if a parameter exists
bool saveTags(const std::string &module) const
Is module an L3 filter (ie, tracked saveTags=true)
const edm::ParameterSet & modulePSet(const std::string &module) const
ParameterSet of module.
std::vector< std::string > datasetNames_
unsigned int size() const
number of trigger paths in trigger table
unsigned int prescaleValue(unsigned int set, const std::string &trigger) const
HLT prescale value in specific prescale set for a specific trigger path.
const std::vector< std::string > & datasetNames() const
Datasets.
const std::map< std::string, std::vector< unsigned int > > & table() const
std::vector< std::vector< std::string > > saveTagsModules_
const std::vector< std::string > & streamNames() const
Streams.
const std::vector< std::string > & datasetContent(unsigned int dataset) const
names of trigger paths in dataset with index i
std::vector< std::vector< std::string > > streamContents_
std::vector< std::string > triggerNames_
const std::vector< std::string > & labels() const
std::vector< std::vector< std::string > > datasetContents_
const std::vector< std::string > & saveTagsModules(unsigned int trigger) const
const std::vector< std::vector< std::string > > & datasetContents() const
names of trigger paths for all datasets
std::map< std::string, unsigned int > triggerIndex_
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
trigger::HLTPrescaleTable hltPrescaleTable_
std::vector< std::vector< std::string > > moduleLabels_
const std::string moduleType(const std::string &module) const
C++ class name of module.
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 - size-1)
void extract()
extract information into data members - called by init() methods
unsigned int moduleIndex(unsigned int trigger, const std::string &module) const
slot position of module on trigger path (0 - size-1)
const std::string & processName() const
Accessors (const methods)
unsigned int prescale(const std::string &trigger) const
high-level user access method: prescale for given trigger path
unsigned int streamIndex(const std::string &stream) const
index of stream with name
const std::string & tableName() const
HLT ConfDB table name.
const std::map< std::string, std::vector< unsigned int > > & prescaleTable() const
const edm::ParameterSet * processPSet_
const edm::ParameterSet & processPSet() const
ParameterSet of process.
ParameterSet const & getParameterSet(std::string const &) const
unsigned int prescaleSize() const
const std::string moduleEDMType(const std::string &module) const
C++ base class name of module.
unsigned int datasetIndex(const std::string &dataset) const
index of dataset with name
const std::vector< std::string > & prescaleLabels() const
low-level data member access
std::vector< std::string > streamNames_
const std::vector< std::vector< std::string > > & streamContents() const
names of datasets for all streams
const std::string & moduleLabel(unsigned int trigger, unsigned int module) const
std::map< std::string, unsigned int > streamIndex_
unsigned int size() const
consistency condition: all vectors must have the same length
const std::string & triggerName(unsigned int triggerIndex) const
const std::vector< std::string > & streamContent(unsigned int stream) const
names of datasets in stream with index i
edm::ParameterSetID id() const
technical: id() function needed for use with ThreadSafeRegistry
ParameterSet const & registerIt()
static const edm::ParameterSet * s_dummyPSet()
void dump(const std::string &what) const
Dumping config info to cout.
void set(const std::string &name, int value)
set the flag, with a run-time name