32 processName_(
""), globalTag_(
""),
33 tableName_(), triggerNames_(), moduleLabels_(), saveTagsModules_(),
34 triggerIndex_(), moduleIndex_(),
35 l1tType_(0), hltL1GTSeeds_(), hltL1TSeeds_(),
36 streamNames_(), streamIndex_(), streamContents_(),
37 datasetNames_(), datasetIndex_(), datasetContents_(),
86 if (HLTPSet.existsAs<
string>(
"tableName",
true)) {
87 tableName_=HLTPSet.getParameter<
string>(
"tableName");
94 if (HLTPSet.existsAs<vector<string> >(
"@trigger_paths",
true)) {
95 triggerNames_= HLTPSet.getParameter<vector<string> >(
"@trigger_paths");
100 const unsigned int n(
size());
102 for (
unsigned int i=0;
i!=
n; ++
i) {
109 for (
unsigned int i=0;
i!=
n; ++
i) {
112 const unsigned int m(modules.size());
114 for (
unsigned int j=0;j!=
m; ++j) {
115 const string&
label(modules[j]);
116 if (
saveTags(label)) labels.push_back(label);
123 for (
unsigned int i=0;
i!=
n; ++
i) {
126 const unsigned int m(
size(
i));
127 for (
unsigned int j=0; j!=
m; ++j) {
134 for (
unsigned int i=0;
i!=
n; ++
i) {
136 const unsigned int m(
size(
i));
137 for (
unsigned int j=0; j!=
m; ++j) {
143 if (label.front()!=
'-' &&
moduleType(label) ==
"HLTLevel1GTSeed") {
146 const bool l1Tech(pset.
getParameter<
bool>(
"L1TechTriggerSeeding"));
147 const string l1Seed(pset.
getParameter<
string>(
"L1SeedsLogicalExpression"));
156 for (
unsigned int i=0;
i!=
n; ++
i) {
158 const unsigned int m(
size(
i));
159 for (
unsigned int j=0; j!=
m; ++j) {
165 if (label.front()!=
'-' &&
moduleType(label) ==
"HLTL1TSeed") {
170 if (l1Gtag!=
"hltGtStage2ObjectMap") {
171 const string l1Seed(pset.
getParameter<
string>(
"L1SeedsLogicalExpression"));
182 streamNames_=streams.getParameterNamesForType<vector<string> >();
183 sort(streamNames_.begin(),streamNames_.end());
184 const unsigned int n(streamNames_.size());
186 for (
unsigned int i=0;
i!=
n; ++
i) {
198 sort(datasetNames_.begin(),datasetNames_.end());
199 const unsigned int n(datasetNames_.size());
201 for (
unsigned int i=0;
i!=
n; ++
i) {
211 string prescaleName(
"");
212 const string preS(
"PrescaleService");
213 const string preT(
"PrescaleTable");
219 if (prescaleName.empty()) {
223 string defaultLabel(
"default");
224 if (iPS.existsAs<
string>(
"lvl1DefaultLabel",
true)) {
225 defaultLabel = iPS.getParameter<
string>(
"lvl1DefaultLabel");
228 if (iPS.existsAs<vector<string> >(
"lvl1Labels",
true)) {
229 labels = iPS.getParameter<vector<string> >(
"lvl1Labels");
232 const unsigned int n(labels.size());
233 for (
unsigned int i=0;
i!=
n; ++
i) {
234 if (labels[
i]==defaultLabel)
set=
i;
236 map<string,vector<unsigned int> > table;
237 if (iPS.existsAs< vector<ParameterSet> >(
"prescaleTable",
true)) {
238 const vector<ParameterSet>& vpTable(iPS.getParameterSetVector(
"prescaleTable"));
239 const unsigned int m (vpTable.size());
240 for (
unsigned int i=0;
i!=
m; ++
i) {
241 table[vpTable[
i].getParameter<
std::string>(
"pathName")] =
242 vpTable[
i].getParameter<std::vector<unsigned int> >(
"prescales");
255 unsigned int stage1(0),stage2(0);
258 for (
auto const & allModule : allModules) {
266 if ( (stage1+stage2)==0 ) {
269 }
else if ( (stage1*stage2)!=0 ) {
272 }
else if (stage1>0) {
280 LogVerbatim(
"HLTConfigData") <<
"HLTConfigData: ProcessPSet with name/GT/table/l1tType: '" 282 << globalTag_ <<
"' '" 293 if (what==
"ProcessPSet") {
294 cout <<
"HLTConfigData::dump: ProcessPSet = " << endl << *
processPSet_ << endl;
295 }
else if (what==
"ProcessName") {
297 }
else if (what==
"GlobalTag") {
298 cout <<
"HLTConfigData::dump: GlobalTag = " <<
globalTag_ << endl;
299 }
else if (what==
"TableName") {
300 cout <<
"HLTConfigData::dump: TableName = " <<
tableName_ << endl;
301 }
else if (what==
"Triggers") {
302 const unsigned int n(
size());
303 cout <<
"HLTConfigData::dump: Triggers: " << n << endl;
304 for (
unsigned int i=0;
i!=
n; ++
i) {
307 }
else if (what==
"TriggerSeeds") {
308 const unsigned int n(
size());
309 cout <<
"HLTConfigData::dump: TriggerSeeds: " << n << endl;
310 for (
unsigned int i=0;
i!=
n; ++
i) {
315 for (
unsigned int j1=0; j1!=m1; ++j1) {
316 cout <<
" HLTLevel1GTSeed: " << j1
323 for (
unsigned int j2=0; j2!=m2; ++j2) {
324 cout <<
" HLTL1TSeed: " << j2
330 }
else if (what==
"Modules") {
331 const unsigned int n(
size());
332 cout <<
"HLTConfigData::dump Triggers and Modules: " << n << endl;
333 for (
unsigned int i=0;
i!=
n; ++
i) {
334 const unsigned int m(
size(
i));
336 cout <<
" - Modules: ";
337 unsigned int nHLTPrescalers(0);
338 unsigned int nHLTLevel1GTSeed(0);
339 unsigned int nHLTL1TSeed(0);
340 for (
unsigned int j=0; j!=
m; ++j) {
345 cout <<
" " << j <<
":" << label <<
"/" << type <<
"/" << edmtype <<
"/" << tags;
346 if (type==
"HLTPrescaler") nHLTPrescalers++;
347 if (type==
"HLTLevel1GTSeed") nHLTLevel1GTSeed++;
348 if (type==
"HLTL1TSeed") nHLTL1TSeed++;
351 cout <<
" - Number of HLTPrescaler/HLTLevel1GTSeed/HLTL1TSeed modules: " 352 << nHLTPrescalers <<
"/" << nHLTLevel1GTSeed <<
"/" << nHLTL1TSeed << endl;
354 }
else if (what==
"StreamNames") {
356 cout <<
"HLTConfigData::dump: StreamNames: " <<
n << endl;
357 for (
unsigned int i=0;
i!=
n; ++
i) {
360 }
else if (what==
"Streams") {
362 cout <<
"HLTConfigData::dump: Streams: " <<
n << endl;
363 for (
unsigned int i=0;
i!=
n; ++
i) {
366 for (
unsigned int j=0; j!=
m; ++j) {
370 }
else if (what==
"DatasetNames") {
372 cout <<
"HLTConfigData::dump: DatasetNames: " <<
n << endl;
373 for (
unsigned int i=0;
i!=
n; ++
i) {
376 }
else if (what==
"Datasets") {
378 cout <<
"HLTConfigData::dump: Datasets: " <<
n << endl;
379 for (
unsigned int i=0;
i!=
n; ++
i) {
382 for (
unsigned int j=0; j!=
m; ++j) {
386 }
else if (what==
"PrescaleTable") {
388 cout <<
"HLTConfigData::dump: PrescaleTable: # of sets : " <<
n << endl;
390 for (
unsigned int i=0;
i!=
n; ++
i) {
393 if (
n>0)
cout << endl;
395 cout <<
"HLTConfigData::dump: PrescaleTable: # of paths: " << table.size() << endl;
396 const map<string,vector<unsigned int> >::const_iterator tb(table.begin());
397 const map<string,vector<unsigned int> >::const_iterator te(table.end());
398 for (
map<
string,vector<unsigned int> >::const_iterator ti=tb; ti!=te; ++ti) {
399 for (
unsigned int i=0;
i!=
n; ++
i) {
400 cout <<
" " << ti->second.at(
i);
402 cout <<
" " << ti->first << endl;
405 cout <<
"HLTConfigData::dump: Unkown dump request: " << what << endl;
438 const std::map<std::string,unsigned int>::const_iterator
index(
triggerIndex_.find(trigger));
442 return index->second;
468 const std::map<std::string,unsigned int>::const_iterator
index(
moduleIndex_.at(trigger).find(module));
470 return size(trigger);
472 return index->second;
515 if (pset.
existsAs<
bool>(
"saveTags",
true)) {
560 const std::map<std::string,unsigned int>::const_iterator
index(
streamIndex_.find(stream));
564 return index->second;
590 const std::map<std::string,unsigned int>::const_iterator
index(
datasetIndex_.find(dataset));
594 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
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
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_
static const edm::ParameterSet initializeDummyPSet()
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)
std::vector< std::vector< std::string > > hltL1TSeeds_
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.
const std::vector< std::vector< std::string > > & hltL1TSeeds() const
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
unsigned int l1tType() const
L1T type (0=unknown, 1=legacy/stage-1 or 2=stage-2)
ParameterSet const & registerIt()
static const edm::ParameterSet * s_dummyPSet()
void dump(const std::string &what) const
Dumping config info to cout.
const std::string & globalTag() const
GlobalTag.globaltag.