28 return &dummyHLTConfigData;
42 const std::string& processName,
48 LogInfo(
"HLTConfigData") <<
"Called (R) with processName '"
50 <<
"' for " << iRun.
id() << endl;
77 LogError(
"HLTConfigProvider") <<
" ProcessName '"<< processName
79 <<
" times in history!" << endl;
94 LogError(
"HLTConfigProvider") <<
"Falling back to processName-only init!";
98 LogError(
"HLTConfigProvider") <<
"ProcessName not found in history!";
118 edm::LogError(
"HLTConfigProvider") <<
"ProcessPSet found is empty!";
133 edm::LogError(
"HLTConfigProvider") <<
"ProcessPSet not found in regsistry!";
154 unsigned int nPSets(0);
159 if (
i->second.exists(
"@process_name")) {
160 const std::string pName(
i->second.getParameter<
string>(
"@process_name"));
162 if ( pName == processName ) {
168 if (
pset->exists(
"HLTConfigVersion")) {
170 if (HLTPSet.exists(
"tableName")) {
171 hNames += HLTPSet.
getParameter<
string>(
"tableName")+
" ";
179 LogVerbatim(
"HLTConfigProvider") <<
"Unordered list of all process names found: "
180 << pNames <<
"." << endl;
182 LogVerbatim(
"HLTConfigProvider") <<
"HLT TableName of each selected process: "
183 << hNames <<
"." << endl;
187 LogError(
"HLTConfigProvider") <<
" Process name '"
189 <<
"' not found in registry!" << endl;
194 LogError(
"HLTConfigProvider") <<
" Process name '"
196 <<
"' found but ParameterSetID invalid!"
202 LogError(
"HLTConfigProvider") <<
" Process name '"
204 <<
" found " << nPSets
205 <<
" times in registry!" << endl;
236 assert(psfsiTech==psfsiPhys);
237 if ( (errorTech==0) && (errorPhys==0) &&
238 (psfsiTech>=0) && (psfsiPhys>=0) && (psfsiTech==psfsiPhys) ) {
243 <<
" Error in determining HLT prescale set index from L1 data using L1GtUtils: "
244 <<
" Tech/Phys error = " << errorTech <<
"/" << errorPhys
245 <<
" Tech/Phys psfsi = " << psfsiTech <<
"/" << psfsiPhys;
255 return prescaleValue(static_cast<unsigned int>(set),trigger);
262 std::pair<int,int>
result(std::pair<int,int>(0,0));
269 result.second =
static_cast<int>(
prescaleValue(static_cast<unsigned int>(set),trigger));
275 if (nL1GTSeedModules==0) {
278 }
else if (nL1GTSeedModules==1) {
282 result.first =
l1GtUtils_->prescaleFactor(iEvent,l1tname,l1error);
285 <<
" Error in determining L1T prescale for HLT path: '" << trigger
286 <<
"' with L1T seed: '" << l1tname
287 <<
"' using L1GtUtils: error code: " << l1error
288 <<
". (Note: only a single L1T name, not a bit number, is allowed as seed for a proper determination of the L1T prescale!)";
294 for (
unsigned int i=1;
i!=nL1GTSeedModules; ++
i) {
298 <<
" Error in determining L1T prescale for HLT path: '" << trigger
299 <<
"' has multiple L1GTSeed modules, " << nL1GTSeedModules
300 <<
", with L1 seeds: " << dump
301 <<
". (Note: at most one L1GTSeed module is allowed for a proper determination of the L1T prescale!)";
unsigned int size() const
number of trigger paths in trigger table
collection_type::const_iterator const_iterator
void dump(const std::string &what) const
Dumping config info to cout.
T getParameter(std::string const &) const
const_iterator begin() const
edm::detail::ThreadSafeRegistry< edm::ParameterSetID, HLTConfigData > HLTConfigDataRegistry
ParameterSetID id() const
const std::vector< std::vector< std::pair< bool, std::string > > > & hltL1GTSeeds() const
bool getMapped(key_type const &k, value_type &result) const
static const HLTConfigData * s_dummyHLTConfigData()
const std::string & tableName() const
HLT ConfDB table name.
std::string processName_
data members
bool insertMapped(value_type const &v)
const HLTConfigData * hltConfigData_
U second(std::pair< T, U > const &p)
bool getConfigurationForProcess(std::string const &name, ProcessConfiguration &config) const
boost::shared_ptr< L1GtUtils > l1GtUtils_
unsigned int prescaleValue(unsigned int set, const std::string &trigger) const
HLT prescale value in specific prescale set for a specific trigger path.
const edm::ParameterSet & processPSet() const
ParameterSet of process.
const_iterator begin() const
collection_type::const_iterator const_iterator
ProcessHistory const & processHistory() const
Hash< ParameterSetType > ParameterSetID
HLTConfigProvider()
c'tor
const std::string & processName() const
Accessors (const methods)
int prescaleSet(const edm::Event &iEvent, const edm::EventSetup &iSetup) const
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
std::pair< int, int > prescaleValues(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger) const
Combined L1T (pair.first) and HLT (pair.second) prescales per HLT path.
const_iterator end() const
const_iterator end() const
static ThreadSafeRegistry * instance()
void getDataFrom(const edm::ParameterSetID &iID, const std::string &iProcessName)
edm::ParameterSetID id() const
technical: id() function needed for use with ThreadSafeRegistry