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.
const std::string & globalTag () const
 global tag
 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
 Accessors (const methods)
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 (const std::string &trigger) const
const std::vector< std::string > & moduleLabels (unsigned int trigger) const
 label(s) of module(s) on a trigger path
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
 process name
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 (const std::string &trigger) const
unsigned int size () const
 number of trigger paths in trigger table
unsigned int size (unsigned int trigger) const
 number of modules on a specific trigger path
const std::vector< std::string > & streamContent (unsigned int stream) const
 names of datasets in stream with index i
const std::vector< std::string > & streamContent (const std::string &stream) const
 names of datasets in stream with name
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:
2012/03/21 12:08:38
Revision:
1.44
Author:
Martin Grunewald

See header file for documentation

Date:
2011/11/01 13:02:44
Revision:
1.65
Author:
Martin Grunewald

Definition at line 34 of file HLTConfigProvider.h.


Constructor & Destructor Documentation

HLTConfigProvider::HLTConfigProvider ( )

c'tor

Definition at line 36 of file HLTConfigProvider.cc.


Member Function Documentation

bool HLTConfigProvider::changed ( ) const [inline]

changed?

Definition at line 59 of file HLTConfigProvider.h.

References changed_.

Referenced by EmDQMFeeder::beginRun().

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

Definition at line 245 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 220 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 212 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 208 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 204 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 134 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(), instance, 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::string& HLTConfigProvider::globalTag ( ) const [inline]

global tag

Definition at line 69 of file HLTConfigProvider.h.

References HLTConfigData::globalTag(), and hltConfigData_.

                                     {
    return hltConfigData_->globalTag();
  }
const std::vector<std::vector<std::pair<bool,std::string> > >& HLTConfigProvider::hltL1GTSeeds ( ) const [inline]
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 162 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::hltL1GTSeeds().

                                                                                          {
    return hltConfigData_->hltL1GTSeeds(trigger);
  }
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 166 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

L1 GTA V3: https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideL1TriggerL1GtUtils#Version_3

Definition at line 45 of file HLTConfigProvider.cc.

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

Referenced by LumiCalculator::beginRun(), EgHLTOfflineSummaryClient::beginRun(), pat::PATTriggerEventProducer::beginRun(), HLTMuonOfflineAnalyzer::beginRun(), HLTOfflineReproducibility::beginRun(), FourVectorHLTriggerOffline::beginRun(), pat::PATTriggerProducer::beginRun(), HLTMonBTagIPSource::beginRun(), TrackerDpgAnalysis::beginRun(), HLTMonBitSummary::beginRun(), HLTJetMETDQMSource::beginRun(), HeavyFlavorValidation::beginRun(), EwkMuLumiMonitorDQM::beginRun(), HLTOfflineReproducibilityDQM::beginRun(), EmDQMFeeder::beginRun(), HLTMuonValidator::beginRun(), TopElectronHLTOfflineSource::beginRun(), QcdLowPtDQM::beginRun(), HLTInfo::beginRun(), TrigResRateMon::beginRun(), HLTEventAnalyzerAOD::beginRun(), EmDQMReco::beginRun(), HLTHiggsSubAnalysis::beginRun(), EgHLTOfflineClient::beginRun(), HLTrigReport::beginRun(), FourVectorHLTOffline::beginRun(), CandidateTriggerObjectProducer::beginRun(), HLTInclusiveVBFSource::beginRun(), EwkMuDQM::beginRun(), JetMETHLTOfflineSource::beginRun(), BTagHLTOfflineSource::beginRun(), EwkElecDQM::beginRun(), TriggerValidator::beginRun(), EgHLTOfflineSource::beginRun(), HLTScalers::beginRun(), FourVectorHLTOnline::beginRun(), HLTJetMETValidation::beginRun(), HLTMonBTagMuSource::beginRun(), PixelVTXMonitor::beginRun(), QcdUeDQM::beginRun(), HLTEventAnalyzerRAW::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);

   l1GtUtils_->getL1GtRunCache(iRun,iSetup,useL1EventSetup,useL1GtTriggerMenuLite);

   processName_=processName;
   changed=changed_;
   return inited_;

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

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

Definition at line 68 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_, 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;
   }
}
void HLTConfigProvider::init ( const std::string &  processName) [private]

Definition at line 173 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(), instance, 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;

}
bool HLTConfigProvider::inited ( ) const [inline]

Accessors (const methods)

initialised?

Definition at line 55 of file HLTConfigProvider.h.

References inited_.

Referenced by HLTTauDQMAutomation::AutoCompleteConfig(), HLTTauDQMAutomation::AutoCompleteMatching(), EmDQMFeeder::beginRun(), and HLTTauDQMFilter::interestingModules().

                      {
    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 338 of file HLTConfigProvider.cc.

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

Referenced by GenericTriggerEventFlag::expandLogicalExpression(), and 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 ( const std::string &  trigger,
const std::string &  module 
) const [inline]

Definition at line 127 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::moduleIndex().

                                                                                    {
    return hltConfigData_->moduleIndex(trigger,module);
  }
unsigned int HLTConfigProvider::moduleIndex ( unsigned int  trigger,
const std::string &  module 
) const [inline]
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 119 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]
const std::vector<std::string>& HLTConfigProvider::moduleLabels ( const std::string &  trigger) const [inline]

Definition at line 107 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 249 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 259 of file HLTConfigProvider.cc.

References L1GtUtils::AlgorithmTrigger, l1GtUtils_, L1GtUtils::TechnicalTrigger, useL1EventSetup(), and useL1GtTriggerMenuLite().

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

                                                                                            {
  // return hltPrescaleTable_.set();
  l1GtUtils_->getL1GtRunCache(iEvent,iSetup,useL1EventSetup,useL1GtTriggerMenuLite);
  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 227 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::prescaleSize().

Referenced by EwkMuLumiMonitorDQM::analyze(), EwkMuDQM::analyze(), EwkElecDQM::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]
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 280 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 289 of file HLTConfigProvider.cc.

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

Referenced by HLTEventAnalyzerAOD::analyzeTrigger(), TrigResRateMon::fillCountsPerPath(), TrigResRateMon::fillHltMatrix(), 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_->getL1GtRunCache(iEvent,iSetup,useL1EventSetup,useL1GtTriggerMenuLite);
    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]

process name

Definition at line 64 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 142 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 349 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 354 of file HLTConfigProvider.cc.

References matched().

Referenced by GenericTriggerEventFlag::expandLogicalExpression().

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

Definition at line 113 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::saveTagsModules().

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

number of trigger paths in trigger table

Definition at line 79 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(), FourVectorHLTOffline::beginRun(), HLTInclusiveVBFSource::beginRun(), TriggerValidator::beginRun(), BTagHLTOfflineSource::beginRun(), JetMETHLTOfflineSource::beginRun(), FourVectorHLTOnline::beginRun(), HLTMonBTagMuSource::beginRun(), HLTEventAnalyzerRAW::beginRun(), QcdUeDQM::beginRun(), TrigResRateMon::bookCountsPerPath(), TrigResRateMon::fillCountsPerPath(), TrigResRateMon::filltestHisto(), EmDQMFeeder::findEgammaPaths(), TrigResRateMon::findReferenceTriggerIndex(), egHLT::trigTools::getActiveFilters(), EmDQMFeeder::getFilterModules(), TriggerHelper::initRun(), PrescaleWeightProvider::initRun(), GenericTriggerEventFlag::initRun(), DQMProvInfo::makeHLTKeyInfo(), prescaleValues(), PrescaleWeightProvider::prescaleWeight(), TrigResRateMon::printCountsPerPathThisLumi(), CandidateTriggerObjectProducer::produce(), pat::PATTriggerProducer::produce(), egHLT::trigTools::translateFiltersToPathNames(), HLTInclusiveVBFSource::validPathHLT(), BTagHLTOfflineSource::validPathHLT(), and JetMETHLTOfflineSource::validPathHLT().

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

Definition at line 86 of file HLTConfigProvider.h.

References hltConfigData_, and HLTConfigData::size().

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

number of modules on a specific trigger path

Definition at line 83 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 193 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 189 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 185 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 181 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 177 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 173 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 271 of file HLTConfigProvider.h.

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

Definition at line 270 of file HLTConfigProvider.h.

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

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

Definition at line 273 of file HLTConfigProvider.h.

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

std::string HLTConfigProvider::processName_ [private]

data members

Definition at line 269 of file HLTConfigProvider.h.

Referenced by clear(), and init().