CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes

HLTConfigProvider Class Reference

#include <HLTConfigProvider.h>

List of all members.

Public Member Functions

bool changed () const
 changed?
const std::vector< std::string > & datasetContent (unsigned int dataset) const
 names of trigger paths in dataset with index i
const std::vector< std::string > & datasetContent (const std::string &dataset) const
 names of trigger paths in dataset with name
const std::vector< std::vector
< std::string > > & 
datasetContents () const
 names of trigger paths for all datasets
unsigned int datasetIndex (const std::string &dataset) const
 index of dataset with name
const std::string & datasetName (unsigned int dataset) const
 name of dataset with index i
const std::vector< std::string > & datasetNames () const
void dump (const std::string &what) const
 Dumping config info to cout.
 HLTConfigProvider ()
 c'tor
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.
const std::vector< std::pair
< bool, std::string > > & 
hltL1GTSeeds (unsigned int trigger) const
 HLTLevel1GTSeed modules for trigger path with index i.
bool init (const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
bool inited () const
 initialised?
const std::string moduleEDMType (const std::string &module) const
 C++ base class name of module.
unsigned int moduleIndex (unsigned int trigger, const std::string &module) const
 slot position of module on trigger path (0 to size-1)
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
const std::vector< std::string > & moduleLabels (const std::string &trigger) const
const edm::ParameterSetmodulePSet (const std::string &module) const
 ParameterSet of module.
const std::string moduleType (const std::string &module) const
 C++ class name of module.
const std::vector< std::string > & prescaleLabels () const
 low-level data member access
int prescaleSet (const edm::Event &iEvent, const edm::EventSetup &iSetup) const
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.
unsigned int prescaleValue (const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger) const
 combining the two methods above
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 std::string & processName () const
 Accessors (const methods)
const edm::ParameterSetprocessPSet () const
 ParameterSet of process.
bool saveTags (const std::string &module) const
 Is module an L3 filter (ie, tracked saveTags=true)
const std::vector< std::string > & saveTagsModules (unsigned int trigger) const
const std::vector< std::string > & saveTagsModules (const std::string &trigger) const
unsigned int size (unsigned int trigger) const
 number of modules on a specific trigger path
unsigned int size (const std::string &trigger) const
unsigned int size () const
 number of trigger paths in trigger table
const std::vector< std::string > & streamContent (const std::string &stream) const
 names of datasets in 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 > > & 
streamContents () const
 names of datasets for all streams
unsigned int streamIndex (const std::string &stream) const
 index of stream with name
const std::string & streamName (unsigned int stream) const
 name of stream with index i
const std::vector< std::string > & streamNames () const
const std::string & tableName () const
 HLT ConfDB table name.
unsigned int triggerIndex (const std::string &triggerName) const
 slot position of trigger path in trigger table (0 to size-1)
const std::string & triggerName (unsigned int triggerIndex) const
const std::vector< std::string > & triggerNames () const
 names of trigger paths

Static Public Member Functions

static const std::vector
< std::string > 
matched (const std::vector< std::string > &inputs, const std::string &pattern)
 regexp processing
static const std::string removeVersion (const std::string &trigger)
static const std::vector
< std::string > 
restoreVersion (const std::vector< std::string > &inputs, const std::string &trigger)

Private Member Functions

void clear ()
void getDataFrom (const edm::ParameterSetID &iID)
void init (const std::string &processName)
void init (const edm::ProcessHistory &iHistory, const std::string &processName)

Private Attributes

bool changed_
const HLTConfigDatahltConfigData_
bool inited_
boost::shared_ptr< L1GtUtilsl1GtUtils_
std::string processName_
 data members

Detailed Description

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

Date:
2011/09/06 14:01:48
Revision:
1.43
Author:
Martin Grunewald

See header file for documentation

Date:
2011/06/01 11:55:01
Revision:
1.64
Author:
Martin Grunewald

Definition at line 34 of file HLTConfigProvider.h.


Constructor & Destructor Documentation

HLTConfigProvider::HLTConfigProvider ( )

c'tor

Definition at line 33 of file HLTConfigProvider.cc.


Member Function Documentation

bool HLTConfigProvider::changed ( ) const [inline]

changed?

Definition at line 63 of file HLTConfigProvider.h.

References changed_.

Referenced by EmDQMFeeder::beginRun().

                       {
    return changed_;
  }
void HLTConfigProvider::clear ( void  ) [private]

Definition at line 242 of file HLTConfigProvider.cc.

References changed_, hltConfigData_, inited_, l1GtUtils_, processName_, and s_dummyHLTConfigData().

Referenced by getDataFrom(), and init().

{
   // clear all data members

   processName_   = "";
   inited_        = false;
   changed_       = true;
   hltConfigData_ = s_dummyHLTConfigData();
   *l1GtUtils_    = L1GtUtils();

   return;
}
const std::vector<std::string>& HLTConfigProvider::datasetContent ( unsigned int  dataset) const [inline]
const std::vector<std::string>& HLTConfigProvider::datasetContent ( const std::string &  dataset) const [inline]

names of trigger paths in dataset with name

Definition at line 215 of file HLTConfigProvider.h.

References HLTConfigData::datasetContent(), and hltConfigData_.

const std::vector<std::vector<std::string> >& HLTConfigProvider::datasetContents ( ) const [inline]

names of trigger paths for all datasets

Definition at line 207 of file HLTConfigProvider.h.

References HLTConfigData::datasetContents(), and hltConfigData_.

Referenced by HLTrigReport::reset().

unsigned int HLTConfigProvider::datasetIndex ( const std::string &  dataset) const [inline]

index of dataset with name

Definition at line 203 of file HLTConfigProvider.h.

References HLTConfigData::datasetIndex(), and hltConfigData_.

const std::string& HLTConfigProvider::datasetName ( unsigned int  dataset) const [inline]

name of dataset with index i

Definition at line 199 of file HLTConfigProvider.h.

References HLTConfigData::datasetName(), and hltConfigData_.

const std::vector<std::string>& HLTConfigProvider::datasetNames ( ) const [inline]
void HLTConfigProvider::dump ( const std::string &  what) const [inline]
void HLTConfigProvider::getDataFrom ( const edm::ParameterSetID iID) [private]

Definition at line 131 of file HLTConfigProvider.cc.

References changed_, clear(), edm::detail::ThreadSafeRegistry< KEY, T, E >::getMapped(), hltConfigData_, edm::ParameterSet::id(), inited_, edm::detail::ThreadSafeRegistry< KEY, T, E >::insertMapped(), edm::detail::ThreadSafeRegistry< KEY, T, E >::instance(), edm::Hash< I >::isValid(), processPSet(), and s_dummyHLTConfigData().

Referenced by init().

{
  //is it in our registry?
  HLTConfigDataRegistry* reg = HLTConfigDataRegistry::instance();
  const HLTConfigData* d = reg->getMapped(iID);
  if(0 != d) {
    changed_ = true;
    inited_  = true;
    hltConfigData_ = d;
  } else {
    const edm::ParameterSet* processPSet = 0;
    if ( 0 != (processPSet = edm::pset::Registry::instance()->getMapped(iID))) {
       if (not processPSet->id().isValid()) {
         clear();
         edm::LogError("HLTConfigProvider") << "ProcessPSet found is empty!";
         changed_ = true; 
         inited_  = false; 
         hltConfigData_ = s_dummyHLTConfigData();
         return; 
       } else { 
         clear(); 
         reg->insertMapped( HLTConfigData(processPSet));
         changed_ = true; 
         inited_  = true; 
         hltConfigData_ = reg->getMapped(processPSet->id());
         return;
       }
     } else {
       clear();
       edm::LogError("HLTConfigProvider") << "ProcessPSet not found in regsistry!";
       changed_ = true;
       inited_  = false;
       hltConfigData_ = s_dummyHLTConfigData();       
       return;
     }
  }
  return;
}
const std::vector<std::pair<bool,std::string> >& HLTConfigProvider::hltL1GTSeeds ( const std::string &  trigger) const [inline]

HLTLevel1GTSeed modules for trigger path with name.

Definition at line 157 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::hltL1GTSeeds().

                                                                                          {
    return hltConfigData_->hltL1GTSeeds(trigger);
  }
const std::vector<std::vector<std::pair<bool,std::string> > >& HLTConfigProvider::hltL1GTSeeds ( ) const [inline]
const std::vector<std::pair<bool,std::string> >& HLTConfigProvider::hltL1GTSeeds ( unsigned int  trigger) const [inline]

HLTLevel1GTSeed modules for trigger path with index i.

Definition at line 161 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::hltL1GTSeeds().

                                                                                      {
    return hltConfigData_->hltL1GTSeeds(trigger);
  }
bool HLTConfigProvider::init ( const edm::Run iRun,
const edm::EventSetup iSetup,
const std::string &  processName,
bool &  changed 
)

Run-dependent initialisation (non-const method) "init" return value indicates whether intitialisation has succeeded "changed" parameter indicates whether the config has actually changed

defer iSetup access to when actually needed: l1GtUtils_->retrieveL1EventSetup(iSetup);

Definition at line 42 of file HLTConfigProvider.cc.

References changed_, edm::RunBase::id(), inited_, edm::Run::processHistory(), processName(), and processName_.

Referenced by EgHLTOfflineSummaryClient::beginRun(), LumiCalculator::beginRun(), HLTMuonOfflineAnalyzer::beginRun(), pat::PATTriggerEventProducer::beginRun(), FourVectorHLTriggerOffline::beginRun(), HLTOfflineReproducibility::beginRun(), HLTMonBTagIPSource::beginRun(), TrackerDpgAnalysis::beginRun(), pat::PATTriggerProducer::beginRun(), HeavyFlavorValidation::beginRun(), HLTMonBitSummary::beginRun(), HLTJetMETDQMSource::beginRun(), HLTMuonValidator::beginRun(), EmDQMFeeder::beginRun(), HLTOfflineReproducibilityDQM::beginRun(), EwkMuLumiMonitorDQM::beginRun(), HLTInfo::beginRun(), TopElectronHLTOfflineSource::beginRun(), QcdLowPtDQM::beginRun(), EmDQMReco::beginRun(), HLTEventAnalyzerAOD::beginRun(), TrigResRateMon::beginRun(), HLTrigReport::beginRun(), EgHLTOfflineClient::beginRun(), FourVectorHLTOffline::beginRun(), CandidateTriggerObjectProducer::beginRun(), EwkMuDQM::beginRun(), TriggerValidator::beginRun(), JetMETHLTOfflineSource::beginRun(), BTagHLTOfflineSource::beginRun(), EgHLTOfflineSource::beginRun(), HLTScalers::beginRun(), FourVectorHLTOnline::beginRun(), HLTMonBTagMuSource::beginRun(), PixelVTXMonitor::beginRun(), HLTEventAnalyzerRAW::beginRun(), QcdUeDQM::beginRun(), HLTOniaSource::checkHLTConfiguration(), MuScleFit::duringLoop(), init(), TriggerHelper::initRun(), PrescaleWeightProvider::initRun(), GenericTriggerEventFlag::initRun(), and DQMProvInfo::makeHLTKeyInfo().

                                            {

   using namespace std;
   using namespace edm;

   LogInfo("HLTConfigData") << "Called (R) with processName '"
                            << processName
                            << "' for " << iRun.id() << endl;

   init(iRun.processHistory(),processName);


   processName_=processName;
   changed=changed_;
   return inited_;

}
void HLTConfigProvider::init ( const std::string &  processName) [private]

Definition at line 170 of file HLTConfigProvider.cc.

References edm::detail::ThreadSafeRegistry< KEY, T, E >::begin(), clear(), edm::detail::ThreadSafeRegistry< KEY, T, E >::end(), getDataFrom(), edm::detail::ThreadSafeRegistry< KEY, T, E >::getMapped(), edm::ParameterSet::getParameter(), hltConfigData_, i, HLTConfigData::id(), s_dummyHLTConfigData(), and tableName().

{
   using namespace std;
   using namespace edm;

   // Obtain ParameterSetID for requested process (with name
   // processName) from pset registry
   string pNames("");
   string hNames("");
   const ParameterSet*   pset = 0;
   ParameterSetID psetID;
   unsigned int   nPSets(0);
   const edm::pset::Registry * registry_(pset::Registry::instance());
   const edm::pset::Registry::const_iterator rb(registry_->begin());
   const edm::pset::Registry::const_iterator re(registry_->end());
   for (edm::pset::Registry::const_iterator i = rb; i != re; ++i) {
     if (i->second.exists("@process_name")) {
       const std::string pName(i->second.getParameter<string>("@process_name"));
       pNames += pName+" ";
       if ( pName == processName ) {
         psetID = i->first;
         nPSets++;
         if ((hltConfigData_ != s_dummyHLTConfigData()) && (hltConfigData_->id()==psetID)) {
           hNames += tableName();
         } else if ( 0 != (pset = registry_->getMapped(psetID))) {
           if (pset->exists("HLTConfigVersion")) {
             const ParameterSet& HLTPSet(pset->getParameterSet("HLTConfigVersion"));
             if (HLTPSet.exists("tableName")) {
               hNames += HLTPSet.getParameter<string>("tableName")+" ";
             }
           }
         }
       }
     }
   }

   LogVerbatim("HLTConfigProvider") << "Unordered list of all process names found: "
                                    << pNames << "." << endl;

   LogVerbatim("HLTConfigProvider") << "HLT TableName of each selected process: "
                                    << hNames << "." << endl;

   if (nPSets==0) {
     clear();
     LogError("HLTConfigProvider") << " Process name '"
                                   << processName
                                   << "' not found in registry!" << endl;
     return;
   }
   if (psetID==ParameterSetID()) {
     clear();
     LogError("HLTConfigProvider") << " Process name '"
                                   << processName
                                   << "' found but ParameterSetID invalid!"
                                   << endl;
     return;
   }
   if (nPSets>1) {
     clear();
     LogError("HLTConfigProvider") << " Process name '"
                                   << processName
                                   << " found " << nPSets
                                   << " times in registry!" << endl;
     return;
   }

   getDataFrom(psetID);

   return;

}
void HLTConfigProvider::init ( const edm::ProcessHistory iHistory,
const std::string &  processName 
) [private]

Check uniqueness (uniqueness should [soon] be enforced by Fw)

Definition at line 65 of file HLTConfigProvider.cc.

References edm::ProcessHistory::begin(), changed_, clear(), edm::ProcessHistory::end(), edm::ParameterSet::exists(), edm::ProcessHistory::getConfigurationForProcess(), getDataFrom(), hltConfigData_, HLTConfigData::id(), init(), inited_, edm::detail::ThreadSafeRegistry< KEY, T, E >::instance(), n, processName(), processName_, processPSet(), and s_dummyHLTConfigData().

                                                                                            {

   using namespace std;
   using namespace edm;

   const ProcessHistory::const_iterator hb(iHistory.begin());
   const ProcessHistory::const_iterator he(iHistory.end());

   ProcessConfiguration processConfiguration;
   const edm::ParameterSet* processPSet(0);

   processName_=processName;
   if (processName_=="*") {
     // auto-discovery of process name
     for (ProcessHistory::const_iterator hi=hb; hi!=he; ++hi) {
       if (iHistory.getConfigurationForProcess(hi->processName(),processConfiguration)) {
         processPSet = edm::pset::Registry::instance()->getMapped(processConfiguration.parameterSetID());
         if ((processPSet!=0) && (processPSet->exists("hltTriggerSummaryAOD"))) {
           processName_=hi->processName();
         }       
       }
     }
     LogInfo("HLTConfigData") << "Auto-discovered processName: '"
                              << processName_ << "'"
                              << endl;
   }
   if (processName_=="*") {
     clear();
     LogError("HLTConfigData") << "Auto-discovery of processName failed!"
                               << endl;
     return;
   }

   unsigned int n(0);
   for (ProcessHistory::const_iterator hi=hb; hi!=he; ++hi) {
     if (hi->processName()==processName_) {n++;}
   }
   if (n>1) {
     clear();
     LogError("HLTConfigProvider") << " ProcessName '"<< processName_
                                   << " found " << n
                                   << " times in history!" << endl;
     return;
   }

   if (iHistory.getConfigurationForProcess(processName_,processConfiguration)) {
     if ((hltConfigData_ !=s_dummyHLTConfigData()) && (processConfiguration.parameterSetID() == hltConfigData_->id())) {
       changed_ = false;
       inited_  = true;
       return;
     } else {
       getDataFrom(processConfiguration.parameterSetID());
     }
   } else {
     LogError("HLTConfigProvider") << "Falling back to processName-only init!";
     clear();
     init(processName_);
     if (!inited_) {
       LogError("HLTConfigProvider") << "ProcessName not found in history!";
     }
     return;
   }
}
bool HLTConfigProvider::inited ( ) const [inline]

initialised?

Definition at line 59 of file HLTConfigProvider.h.

References inited_.

Referenced by EmDQMFeeder::beginRun().

                      {
    return inited_;
  }
const std::vector< std::string > HLTConfigProvider::matched ( const std::vector< std::string > &  inputs,
const std::string &  pattern 
) [static]

regexp processing

Definition at line 335 of file HLTConfigProvider.cc.

References edm::glob2reg(), i, collect_tpl::input, and n.

Referenced by restoreVersion().

                                                                                                                  {
  std::vector<std::string> matched;
  const boost::regex regexp(edm::glob2reg(pattern));
  const unsigned int n(inputs.size());
  for (unsigned int i=0; i<n; ++i) {
    const std::string& input(inputs[i]);
    if (boost::regex_match(input,regexp)) matched.push_back(input);
  }
  return matched;
}
const std::string HLTConfigProvider::moduleEDMType ( const std::string &  module) const [inline]
unsigned int HLTConfigProvider::moduleIndex ( unsigned int  trigger,
const std::string &  module 
) const [inline]
unsigned int HLTConfigProvider::moduleIndex ( const std::string &  trigger,
const std::string &  module 
) const [inline]

Definition at line 121 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::moduleIndex().

                                                                                    {
    return hltConfigData_->moduleIndex(trigger,module);
  }
const std::string& HLTConfigProvider::moduleLabel ( unsigned int  trigger,
unsigned int  module 
) const [inline]
const std::string& HLTConfigProvider::moduleLabel ( const std::string &  trigger,
unsigned int  module 
) const [inline]

Definition at line 113 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::moduleLabel().

                                                                                    {
    return hltConfigData_->moduleLabel(trigger,module);
  }
const std::vector<std::string>& HLTConfigProvider::moduleLabels ( unsigned int  trigger) const [inline]
vector< string > HLTMuonOfflineAnalyzer::moduleLabels ( const std::string &  trigger) const [inline]

Definition at line 101 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::moduleLabels().

                                                                           {
    return hltConfigData_->moduleLabels(trigger);
  }
const edm::ParameterSet& HLTConfigProvider::modulePSet ( const std::string &  module) const [inline]
const std::string HLTConfigProvider::moduleType ( const std::string &  module) const [inline]
const std::vector<std::string>& HLTConfigProvider::prescaleLabels ( ) const [inline]

low-level data member access

Definition at line 244 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::prescaleLabels().

Referenced by pat::PATTriggerProducer::produce().

int HLTConfigProvider::prescaleSet ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) const

HLT prescale values via (L1) EventSetup current (default) prescale set index - to be taken from L1GtUtil via Event

error - notify user!

Definition at line 256 of file HLTConfigProvider.cc.

References L1GtUtils::AlgorithmTrigger, l1GtUtils_, and L1GtUtils::TechnicalTrigger.

Referenced by prescaleValue(), prescaleValues(), and pat::PATTriggerProducer::produce().

                                                                                            {
  // return hltPrescaleTable_.set();
  l1GtUtils_->retrieveL1EventSetup(iSetup);
  int errorTech(0);
  const int psfsiTech(l1GtUtils_->prescaleFactorSetIndex(iEvent,L1GtUtils::TechnicalTrigger,errorTech));
  int errorPhys(0);
  const int psfsiPhys(l1GtUtils_->prescaleFactorSetIndex(iEvent,L1GtUtils::AlgorithmTrigger,errorPhys));
  assert(psfsiTech==psfsiPhys);
  if ( (errorTech==0) && (errorPhys==0) &&
       (psfsiTech>=0) && (psfsiPhys>=0) && (psfsiTech==psfsiPhys) ) {
    return psfsiPhys;
  } else {
    edm::LogError("HLTConfigData")
      << " Error in determining HLT prescale set index from L1 data using L1GtUtils: "
      << " Tech/Phys error = " << errorTech << "/" << errorPhys
      << " Tech/Phys psfsi = " << psfsiTech << "/" << psfsiPhys;
    return -1;
  }
}
unsigned int HLTConfigProvider::prescaleSize ( ) const [inline]

HLT prescale info Number of HLT prescale sets

Definition at line 222 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::prescaleSize().

Referenced by EwkMuLumiMonitorDQM::analyze(), EwkMuDQM::analyze(), and pat::PATTriggerProducer::produce().

                                    {
    return hltConfigData_->prescaleSize();
  }
const std::map<std::string,std::vector<unsigned int> >& HLTConfigProvider::prescaleTable ( ) const [inline]
unsigned int HLTConfigProvider::prescaleValue ( unsigned int  set,
const std::string &  trigger 
) const [inline]

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

Definition at line 226 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::prescaleValue().

Referenced by EwkMuLumiMonitorDQM::analyze(), EwkMuDQM::analyze(), HLTInfo::analyze(), prescaleValue(), prescaleValues(), PrescaleWeightProvider::prescaleWeight(), and pat::PATTriggerProducer::produce().

                                                                               {
    return hltConfigData_->prescaleValue(set,trigger);
  }
unsigned int HLTConfigProvider::prescaleValue ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const std::string &  trigger 
) const

combining the two methods above

Definition at line 277 of file HLTConfigProvider.cc.

References prescaleSet(), and prescaleValue().

                                                                                                                                 {
  const int set(prescaleSet(iEvent,iSetup));
  if (set<0) {
    return 1;
  } else {
    return prescaleValue(static_cast<unsigned int>(set),trigger);
  }
}
std::pair< int, int > HLTConfigProvider::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.

error - can't handle properly multiple L1GTSeed modules

Definition at line 286 of file HLTConfigProvider.cc.

References asciidump::at, dump(), hltL1GTSeeds(), i, l1GtUtils_, prescaleSet(), prescaleValue(), query::result, edm::second(), and size().

Referenced by HLTEventAnalyzerAOD::analyzeTrigger(), and CandidateTriggerObjectProducer::produce().

                                                                                                                                       {

  // start with setting both L1T and HLT prescale values to 0
  std::pair<int,int> result(std::pair<int,int>(0,0));

  // get HLT prescale (possible if HLT prescale set index is correctly found)
  const int set(prescaleSet(iEvent,iSetup));
  if (set<0) {
    result.second = -1;
  } else {
    result.second = static_cast<int>(prescaleValue(static_cast<unsigned int>(set),trigger));
  }

  // get L1T prescale - works only for those hlt trigger paths with
  // exactly one L1GT seed module which has exactly one L1T name as seed
  const unsigned int nL1GTSeedModules(hltL1GTSeeds(trigger).size());
  if (nL1GTSeedModules==0) {
    // no L1 seed module on path hence no L1 seed hence formally no L1 prescale
    result.first=1;
  } else if (nL1GTSeedModules==1) {
    l1GtUtils_->retrieveL1EventSetup(iSetup);
    const std::string l1tname(hltL1GTSeeds(trigger).at(0).second);
    int               l1error(0);
    result.first = l1GtUtils_->prescaleFactor(iEvent,l1tname,l1error);
    if (l1error!=0) {
      edm::LogError("HLTConfigData")
        << " Error in determining L1T prescale for HLT path: '" << trigger
        << "' with L1T seed: '" << l1tname
        << "' using L1GtUtils: error code: " << l1error
        << ". (Note: only a single L1T name, not a bit number, is allowed as seed for a proper determination of the L1T prescale!)";
      result.first = -1;
    }
  } else {
    std::string dump("'"+hltL1GTSeeds(trigger).at(0).second+"'");
    for (unsigned int i=1; i!=nL1GTSeedModules; ++i) {
      dump += " * '"+hltL1GTSeeds(trigger).at(i).second+"'";
    }
    edm::LogError("HLTConfigData")
      << " Error in determining L1T prescale for HLT path: '" << trigger
      << "' has multiple L1GTSeed modules, " << nL1GTSeedModules
      << ", with L1 seeds: " << dump
      << ". (Note: at most one L1GTSeed module is allowed for a proper determination of the L1T prescale!)";
    result.first = -1;
  }

  return result;
}
const std::string& HLTConfigProvider::processName ( ) const [inline]

Accessors (const methods)

process name

Definition at line 55 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::processName().

Referenced by EmDQMFeeder::beginRun(), and init().

                                       {
    return hltConfigData_->processName();
  }
const edm::ParameterSet& HLTConfigProvider::processPSet ( ) const [inline]

ParameterSet of process.

Definition at line 136 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::processPSet().

Referenced by getDataFrom(), and init().

                                             {
    return hltConfigData_->processPSet();
  }
const std::string HLTConfigProvider::removeVersion ( const std::string &  trigger) [static]

Definition at line 346 of file HLTConfigProvider.cc.

Referenced by EmDQMFeeder::beginRun().

                                                                         {
  const boost::regex regexp("_v[0-9]+$");
  return boost::regex_replace(trigger,regexp,"");
}
const std::vector< std::string > HLTConfigProvider::restoreVersion ( const std::vector< std::string > &  inputs,
const std::string &  trigger 
) [static]

Definition at line 351 of file HLTConfigProvider.cc.

References matched().

                                                                                                                         {
  return matched(inputs,trigger+"_v[0-9]+$");
}
bool HLTConfigProvider::saveTags ( const std::string &  module) const [inline]
const std::vector<std::string>& HLTConfigProvider::saveTagsModules ( const std::string &  trigger) const [inline]

Definition at line 107 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::saveTagsModules().

                                                                              {
    return hltConfigData_->saveTagsModules(trigger);
  }
const std::vector<std::string>& HLTConfigProvider::saveTagsModules ( unsigned int  trigger) const [inline]
unsigned int HLTConfigProvider::size ( const std::string &  trigger) const [inline]

Definition at line 75 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::size().

                                                    {
    return hltConfigData_->size(trigger);
  }
unsigned int HLTConfigProvider::size ( void  ) const [inline]

number of trigger paths in trigger table

Definition at line 68 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::size().

Referenced by TriggerHelper::acceptHltLogicalExpression(), GenericTriggerEventFlag::acceptHltLogicalExpression(), HLTEventAnalyzerRAW::analyze(), HLTEventAnalyzerAOD::analyze(), HLTEventAnalyzerAOD::analyzeTrigger(), HLTEventAnalyzerRAW::analyzeTrigger(), LumiCalculator::beginRun(), pat::PATTriggerEventProducer::beginRun(), FourVectorHLTriggerOffline::beginRun(), HLTOfflineReproducibility::beginRun(), HLTMonBTagIPSource::beginRun(), pat::PATTriggerProducer::beginRun(), HLTJetMETDQMSource::beginRun(), EmDQMFeeder::beginRun(), HLTOfflineReproducibilityDQM::beginRun(), QcdLowPtDQM::beginRun(), HLTEventAnalyzerAOD::beginRun(), TrigResRateMon::beginRun(), FourVectorHLTOffline::beginRun(), TriggerValidator::beginRun(), BTagHLTOfflineSource::beginRun(), JetMETHLTOfflineSource::beginRun(), FourVectorHLTOnline::beginRun(), HLTMonBTagMuSource::beginRun(), HLTEventAnalyzerRAW::beginRun(), QcdUeDQM::beginRun(), EmDQMFeeder::findEgammaPaths(), egHLT::trigTools::getActiveFilters(), EmDQMFeeder::getFilterModules(), TriggerHelper::initRun(), PrescaleWeightProvider::initRun(), GenericTriggerEventFlag::initRun(), DQMProvInfo::makeHLTKeyInfo(), prescaleValues(), PrescaleWeightProvider::prescaleWeight(), CandidateTriggerObjectProducer::produce(), pat::PATTriggerProducer::produce(), egHLT::trigTools::translateFiltersToPathNames(), BTagHLTOfflineSource::validPathHLT(), and JetMETHLTOfflineSource::validPathHLT().

                            {
    return hltConfigData_->size();
  }
unsigned int HLTConfigProvider::size ( unsigned int  trigger) const [inline]

number of modules on a specific trigger path

Definition at line 72 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::size().

                                                {
    return hltConfigData_->size(trigger);
  }
const std::vector<std::string>& HLTConfigProvider::streamContent ( const std::string &  stream) const [inline]

names of datasets in stream with name

Definition at line 188 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::streamContent().

                                                                           {
    return hltConfigData_->streamContent(stream);
  }
const std::vector<std::string>& HLTConfigProvider::streamContent ( unsigned int  stream) const [inline]

names of datasets in stream with index i

Definition at line 184 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::streamContent().

Referenced by TrigResRateMon::beginRun(), HLTScalers::beginRun(), TrigResRateMon::fillHltMatrix(), and TrigResRateMon::normalizeHLTMatrix().

                                                                       {
    return hltConfigData_->streamContent(stream);
  }
const std::vector<std::vector<std::string> >& HLTConfigProvider::streamContents ( ) const [inline]

names of datasets for all streams

Definition at line 180 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::streamContents().

Referenced by HLTrigReport::reset().

unsigned int HLTConfigProvider::streamIndex ( const std::string &  stream) const [inline]

index of stream with name

Definition at line 176 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::streamIndex().

Referenced by HLTScalers::beginRun().

                                                          {
    return hltConfigData_->streamIndex(stream);
  }
const std::string& HLTConfigProvider::streamName ( unsigned int  stream) const [inline]

name of stream with index i

Definition at line 172 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::streamName().

                                                         {
    return hltConfigData_->streamName(stream);
  }
const std::vector<std::string>& HLTConfigProvider::streamNames ( ) const [inline]

Streams list of names of all streams

Definition at line 168 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::streamNames().

Referenced by HLTScalers::beginRun(), and HLTrigReport::reset().

                                                  {
    return hltConfigData_->streamNames();
  }
const std::string& HLTConfigProvider::tableName ( ) const [inline]
unsigned int HLTConfigProvider::triggerIndex ( const std::string &  triggerName) const [inline]
const std::string& HLTConfigProvider::triggerName ( unsigned int  triggerIndex) const [inline]
const std::vector<std::string>& HLTConfigProvider::triggerNames ( ) const [inline]

Member Data Documentation

Definition at line 266 of file HLTConfigProvider.h.

Referenced by changed(), clear(), getDataFrom(), and init().

Definition at line 265 of file HLTConfigProvider.h.

Referenced by clear(), getDataFrom(), init(), and inited().

boost::shared_ptr<L1GtUtils> HLTConfigProvider::l1GtUtils_ [private]

Definition at line 268 of file HLTConfigProvider.h.

Referenced by clear(), prescaleSet(), and prescaleValues().

std::string HLTConfigProvider::processName_ [private]

data members

Definition at line 264 of file HLTConfigProvider.h.

Referenced by clear(), and init().