CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
EgHLTOfflineSource Class Reference

#include <EgHLTOfflineSource.h>

Inheritance diagram for EgHLTOfflineSource:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void addEleTrigPath (egHLT::MonElemFuncs &monElemFuncs, const std::string &name)
 
void addPhoTrigPath (egHLT::MonElemFuncs &monElemFuncs, const std::string &name)
 
void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 EgHLTOfflineSource (const edm::ParameterSet &)
 
 EgHLTOfflineSource (const EgHLTOfflineSource &rhs)=delete
 
void filterTriggers (const HLTConfigProvider &hltConfig)
 
void getHLTFilterNamesUsed (std::vector< std::string > &filterNames) const
 
EgHLTOfflineSourceoperator= (const EgHLTOfflineSource &rhs)=delete
 
 ~EgHLTOfflineSource () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

egHLT::BinData binData_
 
egHLT::CutMasks cutMasks_
 
std::vector< std::string > diEleTightLooseTrigNames_
 
std::vector< std::string > diPhoTightLooseTrigNames_
 
std::string dirName_
 
bool dohep_
 
MonitorElementdqmErrsMonElem_
 
std::vector< egHLT::EleHLTFilterMon * > eleFilterMonHists_
 
std::vector< std::string > eleHLTFilterNames2Leg_
 
std::vector< std::string > eleHLTFilterNames_
 
std::vector< egHLT::MonElemContainer< egHLT::OffEle > * > eleMonElems_
 
std::vector< std::string > eleTightLooseTrigNames_
 
bool filterInactiveTriggers_
 
std::string hltTag_
 
int nrEventsProcessed_
 
MonitorElementnrEventsProcessedMonElem_
 
egHLT::OffEvt offEvt_
 
egHLT::OffHelper offEvtHelper_
 
std::vector< egHLT::PhoHLTFilterMon * > phoFilterMonHists_
 
std::vector< std::string > phoHLTFilterNames_
 
std::vector< egHLT::MonElemContainer< egHLT::OffPho > * > phoMonElems_
 
std::vector< std::string > phoTightLooseTrigNames_
 
std::string subdirName_
 
std::unique_ptr< egHLT::TrigCodestrigCodes
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 58 of file EgHLTOfflineSource.h.

Constructor & Destructor Documentation

◆ EgHLTOfflineSource() [1/2]

EgHLTOfflineSource::EgHLTOfflineSource ( const edm::ParameterSet iConfig)
explicit

Definition at line 23 of file EgHLTOfflineSource.cc.

References binData_, cutMasks_, diEleTightLooseTrigNames_, diPhoTightLooseTrigNames_, dirName_, dohep_, eleHLTFilterNames2Leg_, eleHLTFilterNames_, eleTightLooseTrigNames_, filterInactiveTriggers_, edm::ParameterSet::getParameter(), hltTag_, offEvtHelper_, phoHLTFilterNames_, phoTightLooseTrigNames_, egHLT::CutMasks::setup(), egHLT::BinData::setup(), egHLT::OffHelper::setup(), AlCaHLTBitMon_QueryRunRegistry::string, and subdirName_.

23  : nrEventsProcessed_(0) {
24  binData_.setup(iConfig.getParameter<edm::ParameterSet>("binData"));
25  cutMasks_.setup(iConfig.getParameter<edm::ParameterSet>("cutMasks"));
26  eleHLTFilterNames_ = iConfig.getParameter<std::vector<std::string> >("eleHLTFilterNames");
27  eleHLTFilterNames2Leg_ = iConfig.getParameter<std::vector<std::string> >("eleHLTFilterNames2Leg");
28  phoHLTFilterNames_ = iConfig.getParameter<std::vector<std::string> >("phoHLTFilterNames");
29  eleTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("eleTightLooseTrigNames");
30  diEleTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("diEleTightLooseTrigNames");
31  phoTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("phoTightLooseTrigNames");
32  diPhoTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("diPhoTightLooseTrigNames");
33 
34  filterInactiveTriggers_ = iConfig.getParameter<bool>("filterInactiveTriggers");
35  hltTag_ = iConfig.getParameter<std::string>("hltTag");
36  dohep_ = iConfig.getParameter<bool>("doHEP");
37 
39  "DQMDirName"); //"HLT/EgHLTOfflineSource_" + iConfig.getParameter<std::string>("@module_label");
40 
41  subdirName_ = iConfig.getParameter<std::string>("subDQMDirName");
42 
43  offEvtHelper_.setup(iConfig, consumesCollector());
44 }
std::vector< std::string > diPhoTightLooseTrigNames_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
egHLT::OffHelper offEvtHelper_
std::vector< std::string > phoTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames2Leg_
void setup(const edm::ParameterSet &conf)
Definition: EgHLTBinData.cc:5
std::vector< std::string > eleTightLooseTrigNames_
std::vector< std::string > phoHLTFilterNames_
std::vector< std::string > diEleTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames_
void setup(const edm::ParameterSet &conf, edm::ConsumesCollector &&iC)
egHLT::BinData binData_
egHLT::CutMasks cutMasks_
void setup(const edm::ParameterSet &conf)
Definition: EgHLTCutMasks.h:21

◆ EgHLTOfflineSource() [2/2]

EgHLTOfflineSource::EgHLTOfflineSource ( const EgHLTOfflineSource rhs)
delete

◆ ~EgHLTOfflineSource()

EgHLTOfflineSource::~EgHLTOfflineSource ( )
override

Definition at line 46 of file EgHLTOfflineSource.cc.

References eleFilterMonHists_, eleMonElems_, phoFilterMonHists_, and phoMonElems_.

46  {
47  // LogDebug("EgHLTOfflineSource") << "destructor called";
48  for (auto& eleFilterMonHist : eleFilterMonHists_) {
49  delete eleFilterMonHist;
50  }
51  for (auto& phoFilterMonHist : phoFilterMonHists_) {
52  delete phoFilterMonHist;
53  }
54  for (auto& eleMonElem : eleMonElems_) {
55  delete eleMonElem;
56  }
57  for (auto& phoMonElem : phoMonElems_) {
58  delete phoMonElem;
59  }
60 }
std::vector< egHLT::EleHLTFilterMon * > eleFilterMonHists_
std::vector< egHLT::MonElemContainer< egHLT::OffEle > * > eleMonElems_
std::vector< egHLT::PhoHLTFilterMon * > phoFilterMonHists_
std::vector< egHLT::MonElemContainer< egHLT::OffPho > * > phoMonElems_

Member Function Documentation

◆ addEleTrigPath()

void EgHLTOfflineSource::addEleTrigPath ( egHLT::MonElemFuncs monElemFuncs,
const std::string &  name 
)

Definition at line 173 of file EgHLTOfflineSource.cc.

References binData_, cutMasks_, dohep_, eleFilterMonHists_, Skims_PA_cff::name, jetUpdater_cfi::sort, trigCodes, x, and y.

Referenced by bookHistograms().

173  {
174  auto* filterMon =
175  new EleHLTFilterMon(monElemFuncs, name, trigCodes->getCode(name.c_str()), binData_, cutMasks_, dohep_);
176  eleFilterMonHists_.push_back(filterMon);
177  std::sort(eleFilterMonHists_.begin(), eleFilterMonHists_.end(), [](auto const& x, auto const& y) { return *x < *y; });
178  //takes a minor efficiency hit at initalisation to ensure that the vector is always sorted
179 }
std::vector< egHLT::EleHLTFilterMon * > eleFilterMonHists_
std::unique_ptr< egHLT::TrigCodes > trigCodes
egHLT::BinData binData_
egHLT::CutMasks cutMasks_

◆ addPhoTrigPath()

void EgHLTOfflineSource::addPhoTrigPath ( egHLT::MonElemFuncs monElemFuncs,
const std::string &  name 
)

Definition at line 181 of file EgHLTOfflineSource.cc.

References binData_, cutMasks_, dohep_, Skims_PA_cff::name, phoFilterMonHists_, jetUpdater_cfi::sort, trigCodes, x, and y.

Referenced by bookHistograms().

181  {
182  PhoHLTFilterMon* filterMon =
183  new PhoHLTFilterMon(monElemFuncs, name, trigCodes->getCode(name.c_str()), binData_, cutMasks_, dohep_);
184  phoFilterMonHists_.push_back(filterMon);
185  std::sort(phoFilterMonHists_.begin(), phoFilterMonHists_.end(), [](auto const& x, auto const& y) { return *x < *y; });
186  //takes a minor efficiency hit at initalisation to ensure that the vector is always sorted
187 }
std::vector< egHLT::PhoHLTFilterMon * > phoFilterMonHists_
std::unique_ptr< egHLT::TrigCodes > trigCodes
egHLT::BinData binData_
egHLT::CutMasks cutMasks_

◆ analyze()

void EgHLTOfflineSource::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 141 of file EgHLTOfflineSource.cc.

References dqmErrsMonElem_, eleFilterMonHists_, eleMonElems_, hltEgammaEleL1TrkIsoL1Seeded_cfi::eles, egHLT::OffEvt::eles(), dqm::impl::MonitorElement::Fill(), iEvent, egHLT::OffHelper::makeOffEvt(), nrEventsProcessed_, nrEventsProcessedMonElem_, offEvt_, offEvtHelper_, phoFilterMonHists_, phoMonElems_, egHLT::OffEvt::phos(), and trigCodes.

141  {
142  const double weight = 1.; //we have the ability to weight but its disabled for now - maybe use this for prescales?
145  int errCode = offEvtHelper_.makeOffEvt(iEvent, iSetup, offEvt_, *trigCodes);
146  if (errCode != 0) {
147  dqmErrsMonElem_->Fill(errCode);
148  return;
149  }
150 
151  for (auto& eleFilterMonHist : eleFilterMonHists_) {
152  eleFilterMonHist->fill(offEvt_, weight);
153  }
154  for (auto& phoFilterMonHist : phoFilterMonHists_) {
155  phoFilterMonHist->fill(offEvt_, weight);
156  }
157 
158  for (auto& eleMonElem : eleMonElems_) {
159  const std::vector<OffEle>& eles = offEvt_.eles();
160  for (auto const& ele : eles) {
161  eleMonElem->fill(ele, offEvt_, weight);
162  }
163  }
164 
165  for (auto& phoMonElem : phoMonElems_) {
166  const std::vector<OffPho>& phos = offEvt_.phos();
167  for (auto const& pho : phos) {
168  phoMonElem->fill(pho, offEvt_, weight);
169  }
170  }
171 }
egHLT::OffHelper offEvtHelper_
MonitorElement * dqmErrsMonElem_
std::vector< egHLT::EleHLTFilterMon * > eleFilterMonHists_
const std::vector< OffEle > & eles() const
Definition: EgHLTOffEvt.h:48
Definition: weight.py:1
const std::vector< OffPho > & phos() const
Definition: EgHLTOffEvt.h:50
std::vector< egHLT::MonElemContainer< egHLT::OffEle > * > eleMonElems_
std::vector< egHLT::PhoHLTFilterMon * > phoFilterMonHists_
void Fill(long long x)
int iEvent
Definition: GenABIO.cc:224
std::vector< egHLT::MonElemContainer< egHLT::OffPho > * > phoMonElems_
MonitorElement * nrEventsProcessedMonElem_
int makeOffEvt(const edm::Event &edmEvent, const edm::EventSetup &setup, egHLT::OffEvt &offEvent, const TrigCodes &trigCodes)
std::unique_ptr< egHLT::TrigCodes > trigCodes

◆ bookHistograms()

void EgHLTOfflineSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  run,
edm::EventSetup const &  c 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 62 of file EgHLTOfflineSource.cc.

References addEleTrigPath(), addPhoTrigPath(), binData_, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookInt(), c, cutMasks_, diEleTightLooseTrigNames_, diPhoTightLooseTrigNames_, dirName_, dohep_, dqmErrsMonElem_, eleHLTFilterNames2Leg_, eleHLTFilterNames_, eleMonElems_, eleTightLooseTrigNames_, filterInactiveTriggers_, filterTriggers(), getHLTFilterNamesUsed(), HltComparatorCreateWorkflow::hltConfig, hltTag_, mps_fire::i, egHLT::MonElemFuncs::initTightLooseDiObjTrigHistsTrigCuts(), egHLT::MonElemFuncs::initTightLooseTrigHists(), egHLT::MonElemFuncs::initTrigTagProbeHist(), egHLT::MonElemFuncs::initTrigTagProbeHist_2Leg(), nrEventsProcessedMonElem_, offEvtHelper_, phoHLTFilterNames_, phoMonElems_, phoTightLooseTrigNames_, writedatasetfile::run, dqm::implementation::NavigatorBase::setCurrentFolder(), egHLT::OffHelper::setupTriggers(), subdirName_, trigCodes, egHLT::CutMasks::trigTPEle, and egHLT::CutMasks::trigTPPho.

62  {
63  iBooker.setCurrentFolder(dirName_);
64 
65  //the one monitor element the source fills directly
66  dqmErrsMonElem_ = iBooker.book1D("dqmErrors", "EgHLTOfflineSource Errors", 101, -0.5, 100.5);
67  nrEventsProcessedMonElem_ = iBooker.bookInt("nrEventsProcessed");
68 
69  //if the HLTConfig changes during the job, the results are "un predictable" but in practice should be fine
70  //the HLTConfig is used for working out which triggers are active, working out which filternames correspond to paths and L1 seeds
71  //assuming those dont change for E/g it *should* be fine
73  bool changed = false;
74  hltConfig.init(run, c, hltTag_, changed);
77 
78  std::vector<std::string> hltFiltersUsed;
79  getHLTFilterNamesUsed(hltFiltersUsed);
80  trigCodes.reset(TrigCodes::makeCodes(hltFiltersUsed));
81 
83 
84  MonElemFuncs monElemFuncs(iBooker, *trigCodes);
85 
86  //now book ME's
87  iBooker.setCurrentFolder(dirName_ + "/" + subdirName_);
88  //each trigger path with generate object distributions and efficiencies (BUT not trigger efficiencies...)
89  for (auto const& eleHLTFilterName : eleHLTFilterNames_) {
90  iBooker.setCurrentFolder(dirName_ + "/" + subdirName_ + "/" + eleHLTFilterName);
91  addEleTrigPath(monElemFuncs, eleHLTFilterName);
92  }
93  for (auto const& phoHLTFilterName : phoHLTFilterNames_) {
94  iBooker.setCurrentFolder(dirName_ + "/" + subdirName_ + "/" + phoHLTFilterName);
95  addPhoTrigPath(monElemFuncs, phoHLTFilterName);
96  }
97  //efficiencies of one trigger path relative to another
98  monElemFuncs.initTightLooseTrigHists(eleMonElems_, eleTightLooseTrigNames_, binData_, "gsfEle");
99  //new EgHLTDQMVarCut<OffEle>(cutMasks_.stdEle,&OffEle::cutCode));
100  //monElemFuncs.initTightLooseTrigHistsTrigCuts(eleMonElems_,eleTightLooseTrigNames_,binData_);
101 
102  monElemFuncs.initTightLooseTrigHists(phoMonElems_, phoTightLooseTrigNames_, binData_, "pho");
103  // new EgHLTDQMVarCut<OffPho>(cutMasks_.stdPho,&OffPho::cutCode));
104  //monElemFuncs.initTightLooseTrigHistsTrigCuts(phoMonElems_,phoTightLooseTrigNames_,binData_);
105 
106  //di-object triggers
107  monElemFuncs.initTightLooseTrigHists(eleMonElems_, diEleTightLooseTrigNames_, binData_, "gsfEle");
108  // new EgDiEleCut(cutMasks_.stdEle,&OffEle::cutCode));
109  monElemFuncs.initTightLooseTrigHists(phoMonElems_, diPhoTightLooseTrigNames_, binData_, "pho");
110  // new EgDiPhoCut(cutMasks_.stdPho,&OffPho::cutCode));
111 
112  monElemFuncs.initTightLooseDiObjTrigHistsTrigCuts(eleMonElems_, diEleTightLooseTrigNames_, binData_);
113  monElemFuncs.initTightLooseDiObjTrigHistsTrigCuts(phoMonElems_, diPhoTightLooseTrigNames_, binData_);
114 
115  //tag and probe trigger efficiencies
116  //this is to do measure the trigger efficiency with respect to a fully selected offline electron
117  //using a tag and probe technique (note: this will be different to the trigger efficiency normally calculated)
118  bool doTrigTagProbeEff = false;
119  if (doTrigTagProbeEff && (!dohep_)) {
120  for (auto const& eleHLTFilterName : eleHLTFilterNames_) {
121  iBooker.setCurrentFolder(dirName_ + "/" + subdirName_ + "/" + eleHLTFilterName);
122  monElemFuncs.initTrigTagProbeHist(eleMonElems_, eleHLTFilterName, cutMasks_.trigTPEle, binData_);
123  }
124  for (auto const& phoHLTFilterName : phoHLTFilterNames_) {
125  iBooker.setCurrentFolder(dirName_ + "/" + subdirName_ + "/" + phoHLTFilterName);
126  monElemFuncs.initTrigTagProbeHist(phoMonElems_, phoHLTFilterName, cutMasks_.trigTPPho, binData_);
127  }
128  for (auto& i : eleHLTFilterNames2Leg_) {
129  iBooker.setCurrentFolder(dirName_ + "/" + subdirName_ + "/" + i.substr(i.find("::") + 2));
130  //std::cout<<"FilterName: "<<eleHLTFilterNames2Leg_[i]<<std::endl;
131  //std::cout<<"Folder: "<<eleHLTFilterNames2Leg_[i].substr(eleHLTFilterNames2Leg_[i].find("::")+2)<<std::endl;
132  monElemFuncs.initTrigTagProbeHist_2Leg(eleMonElems_, i, cutMasks_.trigTPEle, binData_);
133  }
134  //tag and probe not yet implimented for photons (attemping to see if it makes sense first)
135  // monElemFuncs.initTrigTagProbeHists(phoMonElems,phoHLTFilterNames_);
136  }
137 
138  iBooker.setCurrentFolder(dirName_);
139 }
std::vector< std::string > diPhoTightLooseTrigNames_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
egHLT::OffHelper offEvtHelper_
MonitorElement * dqmErrsMonElem_
std::vector< std::string > phoTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames2Leg_
std::vector< egHLT::MonElemContainer< egHLT::OffEle > * > eleMonElems_
void addEleTrigPath(egHLT::MonElemFuncs &monElemFuncs, const std::string &name)
void addPhoTrigPath(egHLT::MonElemFuncs &monElemFuncs, const std::string &name)
std::vector< std::string > eleTightLooseTrigNames_
std::vector< egHLT::MonElemContainer< egHLT::OffPho > * > phoMonElems_
std::vector< std::string > phoHLTFilterNames_
MonitorElement * nrEventsProcessedMonElem_
MonitorElement * bookInt(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:73
std::vector< std::string > diEleTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames_
void filterTriggers(const HLTConfigProvider &hltConfig)
std::unique_ptr< egHLT::TrigCodes > trigCodes
egHLT::BinData binData_
void setupTriggers(const HLTConfigProvider &config, const std::vector< std::string > &hltFiltersUsed, const TrigCodes &trigCodes)
egHLT::CutMasks cutMasks_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
void getHLTFilterNamesUsed(std::vector< std::string > &filterNames) const

◆ filterTriggers()

void EgHLTOfflineSource::filterTriggers ( const HLTConfigProvider hltConfig)

Definition at line 241 of file EgHLTOfflineSource.cc.

References diEleTightLooseTrigNames_, diPhoTightLooseTrigNames_, eleHLTFilterNames2Leg_, eleHLTFilterNames_, eleTightLooseTrigNames_, egHLT::trigTools::filterInactiveTightLooseTriggers(), EgHLTOfflineClient_cfi::filterInactiveTriggers, egHLT::trigTools::getActiveFilters(), HltComparatorCreateWorkflow::hltConfig, phoHLTFilterNames_, and phoTightLooseTrigNames_.

Referenced by bookHistograms().

241  {
242  std::vector<std::string> activeFilters;
243  std::vector<std::string> activeEleFilters;
244  std::vector<std::string> activeEle2LegFilters;
245  std::vector<std::string> activePhoFilters;
246  std::vector<std::string> activePho2LegFilters;
247 
249  hltConfig, activeFilters, activeEleFilters, activeEle2LegFilters, activePhoFilters, activePho2LegFilters);
250 
258 }
std::vector< std::string > diPhoTightLooseTrigNames_
std::vector< std::string > phoTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames2Leg_
std::vector< std::string > eleTightLooseTrigNames_
std::vector< std::string > phoHLTFilterNames_
void getActiveFilters(const HLTConfigProvider &hltConfig, std::vector< std::string > &activeFilters, std::vector< std::string > &activeEleFilters, std::vector< std::string > &activeEle2LegFilters, std::vector< std::string > &activePhoFilters, std::vector< std::string > &activePho2LegFilters)
std::vector< std::string > diEleTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames_
void filterInactiveTightLooseTriggers(std::vector< std::string > &namesToFilter, const std::vector< std::string > &activeFilters)

◆ getHLTFilterNamesUsed()

void EgHLTOfflineSource::getHLTFilterNamesUsed ( std::vector< std::string > &  filterNames) const

Definition at line 196 of file EgHLTOfflineSource.cc.

References diEleTightLooseTrigNames_, diPhoTightLooseTrigNames_, eleHLTFilterNames_, eleTightLooseTrigNames_, phoHLTFilterNames_, phoTightLooseTrigNames_, submitPVValidationJobs::split(), AlCaHLTBitMon_QueryRunRegistry::string, edm::swap(), and trigNames.

Referenced by bookHistograms().

196  {
197  std::set<std::string> filterNameSet;
198  for (auto const& eleHLTFilterName : eleHLTFilterNames_)
199  filterNameSet.insert(eleHLTFilterName);
200  for (auto const& phoHLTFilterName : phoHLTFilterNames_)
201  filterNameSet.insert(phoHLTFilterName);
202  //here we are little more complicated as entries are of the form "tightTrig:looseTrig"
203  //so we need to split them first
204  for (auto const& eleTightLooseTrigName : eleTightLooseTrigNames_) {
205  std::vector<std::string> trigNames;
206  boost::split(trigNames, eleTightLooseTrigName, boost::is_any_of(std::string(":")));
207  if (trigNames.size() != 2)
208  continue; //format incorrect
209  filterNameSet.insert(trigNames[0]);
210  filterNameSet.insert(trigNames[1]);
211  }
212  for (auto const& diEleTightLooseTrigName : diEleTightLooseTrigNames_) {
213  std::vector<std::string> trigNames;
214  boost::split(trigNames, diEleTightLooseTrigName, boost::is_any_of(std::string(":")));
215  if (trigNames.size() != 2)
216  continue; //format incorrect
217  filterNameSet.insert(trigNames[0]);
218  filterNameSet.insert(trigNames[1]);
219  }
220  for (auto const& phoTightLooseTrigName : phoTightLooseTrigNames_) {
221  std::vector<std::string> trigNames;
222  boost::split(trigNames, phoTightLooseTrigName, boost::is_any_of(std::string(":")));
223  if (trigNames.size() != 2)
224  continue; //format incorrect
225  filterNameSet.insert(trigNames[0]);
226  filterNameSet.insert(trigNames[1]);
227  }
228  for (auto const& diPhoTightLooseTrigName : diPhoTightLooseTrigNames_) {
229  std::vector<std::string> trigNames;
230  boost::split(trigNames, diPhoTightLooseTrigName, boost::is_any_of(std::string(":")));
231  if (trigNames.size() != 2)
232  continue; //format incorrect
233  filterNameSet.insert(trigNames[0]);
234  filterNameSet.insert(trigNames[1]);
235  }
236  //right all the triggers are inserted once and only once in the set, convert to vector
237  //very lazy, create a new vector so can use the constructor and then use swap to transfer
238  std::vector<std::string>(filterNameSet.begin(), filterNameSet.end()).swap(filterNames);
239 }
std::vector< std::string > diPhoTightLooseTrigNames_
std::vector< std::string > phoTightLooseTrigNames_
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:117
std::vector< std::string > eleTightLooseTrigNames_
static const char *const trigNames[]
Definition: EcalDumpRaw.cc:57
std::vector< std::string > phoHLTFilterNames_
std::vector< std::string > diEleTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames_

◆ operator=()

EgHLTOfflineSource& EgHLTOfflineSource::operator= ( const EgHLTOfflineSource rhs)
delete

Member Data Documentation

◆ binData_

egHLT::BinData EgHLTOfflineSource::binData_
private

◆ cutMasks_

egHLT::CutMasks EgHLTOfflineSource::cutMasks_
private

◆ diEleTightLooseTrigNames_

std::vector<std::string> EgHLTOfflineSource::diEleTightLooseTrigNames_
private

◆ diPhoTightLooseTrigNames_

std::vector<std::string> EgHLTOfflineSource::diPhoTightLooseTrigNames_
private

◆ dirName_

std::string EgHLTOfflineSource::dirName_
private

Definition at line 71 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

◆ dohep_

bool EgHLTOfflineSource::dohep_
private

◆ dqmErrsMonElem_

MonitorElement* EgHLTOfflineSource::dqmErrsMonElem_
private

Definition at line 60 of file EgHLTOfflineSource.h.

Referenced by analyze(), and bookHistograms().

◆ eleFilterMonHists_

std::vector<egHLT::EleHLTFilterMon*> EgHLTOfflineSource::eleFilterMonHists_
private

Definition at line 65 of file EgHLTOfflineSource.h.

Referenced by addEleTrigPath(), analyze(), and ~EgHLTOfflineSource().

◆ eleHLTFilterNames2Leg_

std::vector<std::string> EgHLTOfflineSource::eleHLTFilterNames2Leg_
private

Definition at line 84 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), EgHLTOfflineSource(), and filterTriggers().

◆ eleHLTFilterNames_

std::vector<std::string> EgHLTOfflineSource::eleHLTFilterNames_
private

◆ eleMonElems_

std::vector<egHLT::MonElemContainer<egHLT::OffEle>*> EgHLTOfflineSource::eleMonElems_
private

Definition at line 68 of file EgHLTOfflineSource.h.

Referenced by analyze(), bookHistograms(), and ~EgHLTOfflineSource().

◆ eleTightLooseTrigNames_

std::vector<std::string> EgHLTOfflineSource::eleTightLooseTrigNames_
private

◆ filterInactiveTriggers_

bool EgHLTOfflineSource::filterInactiveTriggers_
private

Definition at line 93 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

◆ hltTag_

std::string EgHLTOfflineSource::hltTag_
private

Definition at line 94 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

◆ nrEventsProcessed_

int EgHLTOfflineSource::nrEventsProcessed_
private

Definition at line 62 of file EgHLTOfflineSource.h.

Referenced by analyze().

◆ nrEventsProcessedMonElem_

MonitorElement* EgHLTOfflineSource::nrEventsProcessedMonElem_
private

Definition at line 61 of file EgHLTOfflineSource.h.

Referenced by analyze(), and bookHistograms().

◆ offEvt_

egHLT::OffEvt EgHLTOfflineSource::offEvt_
private

Definition at line 74 of file EgHLTOfflineSource.h.

Referenced by analyze().

◆ offEvtHelper_

egHLT::OffHelper EgHLTOfflineSource::offEvtHelper_
private

Definition at line 76 of file EgHLTOfflineSource.h.

Referenced by analyze(), bookHistograms(), and EgHLTOfflineSource().

◆ phoFilterMonHists_

std::vector<egHLT::PhoHLTFilterMon*> EgHLTOfflineSource::phoFilterMonHists_
private

Definition at line 67 of file EgHLTOfflineSource.h.

Referenced by addPhoTrigPath(), analyze(), and ~EgHLTOfflineSource().

◆ phoHLTFilterNames_

std::vector<std::string> EgHLTOfflineSource::phoHLTFilterNames_
private

◆ phoMonElems_

std::vector<egHLT::MonElemContainer<egHLT::OffPho>*> EgHLTOfflineSource::phoMonElems_
private

Definition at line 69 of file EgHLTOfflineSource.h.

Referenced by analyze(), bookHistograms(), and ~EgHLTOfflineSource().

◆ phoTightLooseTrigNames_

std::vector<std::string> EgHLTOfflineSource::phoTightLooseTrigNames_
private

◆ subdirName_

std::string EgHLTOfflineSource::subdirName_
private

Definition at line 72 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

◆ trigCodes

std::unique_ptr<egHLT::TrigCodes> EgHLTOfflineSource::trigCodes
private

Definition at line 77 of file EgHLTOfflineSource.h.

Referenced by addEleTrigPath(), addPhoTrigPath(), analyze(), and bookHistograms().