CMS 3D CMS Logo

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

#include <EgHLTOfflineSource.h>

Inheritance diagram for EgHLTOfflineSource:
DQMEDAnalyzer edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

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 &)
 
void filterTriggers (const HLTConfigProvider &hltConfig)
 
void getHLTFilterNamesUsed (std::vector< std::string > &filterNames) const
 
 ~EgHLTOfflineSource () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

 EgHLTOfflineSource (const EgHLTOfflineSource &rhs)=delete
 
EgHLTOfflineSourceoperator= (const EgHLTOfflineSource &rhs)=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 edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 58 of file EgHLTOfflineSource.h.

Constructor & Destructor Documentation

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

Definition at line 23 of file EgHLTOfflineSource.cc.

References binData_, edm::EDConsumerBase::consumesCollector(), 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  :
25 {
26  binData_.setup(iConfig.getParameter<edm::ParameterSet>("binData"));
27  cutMasks_.setup(iConfig.getParameter<edm::ParameterSet>("cutMasks"));
28  eleHLTFilterNames_ = iConfig.getParameter<std::vector<std::string> >("eleHLTFilterNames");
29  eleHLTFilterNames2Leg_ = iConfig.getParameter<std::vector<std::string> >("eleHLTFilterNames2Leg");
30  phoHLTFilterNames_ = iConfig.getParameter<std::vector<std::string> >("phoHLTFilterNames");
31  eleTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("eleTightLooseTrigNames");
32  diEleTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("diEleTightLooseTrigNames");
33  phoTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("phoTightLooseTrigNames");
34  diPhoTightLooseTrigNames_ = iConfig.getParameter<std::vector<std::string> >("diPhoTightLooseTrigNames");
35 
36  filterInactiveTriggers_ =iConfig.getParameter<bool>("filterInactiveTriggers");
37  hltTag_ = iConfig.getParameter<std::string>("hltTag");
38  dohep_ = iConfig.getParameter<bool>("doHEP");
39 
40  dirName_=iConfig.getParameter<std::string>("DQMDirName");//"HLT/EgHLTOfflineSource_" + iConfig.getParameter<std::string>("@module_label");
41 
42  subdirName_=iConfig.getParameter<std::string>("subDQMDirName");
43 
45 }
std::vector< std::string > diPhoTightLooseTrigNames_
T getParameter(std::string const &) const
egHLT::OffHelper offEvtHelper_
std::vector< std::string > phoTightLooseTrigNames_
std::vector< std::string > eleHLTFilterNames2Leg_
void setup(const edm::ParameterSet &conf)
Definition: EgHLTBinData.cc:6
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
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:23
EgHLTOfflineSource::~EgHLTOfflineSource ( )
override

Definition at line 48 of file EgHLTOfflineSource.cc.

References eleFilterMonHists_, eleMonElems_, phoFilterMonHists_, and phoMonElems_.

49 {
50  // LogDebug("EgHLTOfflineSource") << "destructor called";
51  for(auto & eleFilterMonHist : eleFilterMonHists_){
52  delete eleFilterMonHist;
53  }
54  for(auto & phoFilterMonHist : phoFilterMonHists_){
55  delete phoFilterMonHist;
56  }
57  for(auto & eleMonElem : eleMonElems_){
58  delete eleMonElem;
59  }
60  for(auto & phoMonElem : phoMonElems_){
61  delete phoMonElem;
62  }
63 }
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

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

Definition at line 175 of file EgHLTOfflineSource.cc.

References binData_, cutMasks_, dohep_, eleFilterMonHists_, and trigCodes.

Referenced by bookHistograms().

176 {
177  auto* filterMon = new EleHLTFilterMon(monElemFuncs,name,trigCodes->getCode(name.c_str()),binData_,cutMasks_,dohep_);
178  eleFilterMonHists_.push_back(filterMon);
179  std::sort(eleFilterMonHists_.begin(),eleFilterMonHists_.end(),EleHLTFilterMon::ptrLess<EleHLTFilterMon>()); //takes a minor efficiency hit at initalisation to ensure that the vector is always sorted
180 }
std::vector< egHLT::EleHLTFilterMon * > eleFilterMonHists_
std::unique_ptr< egHLT::TrigCodes > trigCodes
egHLT::BinData binData_
egHLT::CutMasks cutMasks_
void EgHLTOfflineSource::addPhoTrigPath ( egHLT::MonElemFuncs monElemFuncs,
const std::string &  name 
)

Definition at line 182 of file EgHLTOfflineSource.cc.

References binData_, cutMasks_, dohep_, phoFilterMonHists_, and trigCodes.

Referenced by bookHistograms().

183 {
184  PhoHLTFilterMon* filterMon = new PhoHLTFilterMon(monElemFuncs,name,trigCodes->getCode(name.c_str()),binData_,cutMasks_,dohep_);
185  phoFilterMonHists_.push_back(filterMon);
186  std::sort(phoFilterMonHists_.begin(),phoFilterMonHists_.end(),PhoHLTFilterMon::ptrLess<PhoHLTFilterMon>()); //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_
void EgHLTOfflineSource::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 140 of file EgHLTOfflineSource.cc.

References dqmErrsMonElem_, eleFilterMonHists_, eleMonElems_, egHLT::OffEvt::eles(), MonitorElement::Fill(), 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 
152  for(auto & eleFilterMonHist : eleFilterMonHists_){
153  eleFilterMonHist->fill(offEvt_,weight);
154  }
155  for(auto & phoFilterMonHist : phoFilterMonHists_){
156  phoFilterMonHist->fill(offEvt_,weight);
157  }
158 
159  for(auto & eleMonElem : eleMonElems_){
160  const std::vector<OffEle>& eles = offEvt_.eles();
161  for(auto const & ele : eles){
162  eleMonElem->fill(ele,offEvt_,weight);
163  }
164  }
165 
166  for(auto & phoMonElem : phoMonElems_){
167  const std::vector<OffPho>& phos = offEvt_.phos();
168  for(auto const & pho : phos){
169  phoMonElem->fill(pho,offEvt_,weight);
170  }
171  }
172 }
egHLT::OffHelper offEvtHelper_
MonitorElement * dqmErrsMonElem_
std::vector< egHLT::EleHLTFilterMon * > eleFilterMonHists_
Definition: weight.py:1
std::vector< egHLT::MonElemContainer< egHLT::OffEle > * > eleMonElems_
void Fill(long long x)
std::vector< egHLT::PhoHLTFilterMon * > phoFilterMonHists_
std::vector< egHLT::MonElemContainer< egHLT::OffPho > * > phoMonElems_
const std::vector< OffPho > & phos() const
Definition: EgHLTOffEvt.h:50
MonitorElement * nrEventsProcessedMonElem_
int makeOffEvt(const edm::Event &edmEvent, const edm::EventSetup &setup, egHLT::OffEvt &offEvent, const TrigCodes &trigCodes)
const std::vector< OffEle > & eles() const
Definition: EgHLTOffEvt.h:48
std::unique_ptr< egHLT::TrigCodes > trigCodes
void EgHLTOfflineSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  run,
edm::EventSetup const &  c 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 65 of file EgHLTOfflineSource.cc.

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

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

Definition at line 236 of file EgHLTOfflineSource.cc.

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

Referenced by bookHistograms().

237 {
238 
239  std::vector<std::string> activeFilters;
240  std::vector<std::string> activeEleFilters;
241  std::vector<std::string> activeEle2LegFilters;
242  std::vector<std::string> activePhoFilters;
243  std::vector<std::string> activePho2LegFilters;
244 
245  trigTools::getActiveFilters(hltConfig,activeFilters,activeEleFilters,activeEle2LegFilters,activePhoFilters,activePho2LegFilters);
246 
254 }
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 filterInactiveTriggers(std::vector< std::string > &namesToFilter, std::vector< std::string > &activeFilters)
void filterInactiveTightLooseTriggers(std::vector< std::string > &namesToFilter, const std::vector< std::string > &activeFilters)
void EgHLTOfflineSource::getHLTFilterNamesUsed ( std::vector< std::string > &  filterNames) const

Definition at line 196 of file EgHLTOfflineSource.cc.

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

Referenced by bookHistograms().

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

Member Data Documentation

egHLT::BinData EgHLTOfflineSource::binData_
private
egHLT::CutMasks EgHLTOfflineSource::cutMasks_
private
std::vector<std::string> EgHLTOfflineSource::diEleTightLooseTrigNames_
private
std::vector<std::string> EgHLTOfflineSource::diPhoTightLooseTrigNames_
private
std::string EgHLTOfflineSource::dirName_
private

Definition at line 70 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

bool EgHLTOfflineSource::dohep_
private
MonitorElement* EgHLTOfflineSource::dqmErrsMonElem_
private

Definition at line 61 of file EgHLTOfflineSource.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 65 of file EgHLTOfflineSource.h.

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

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

Definition at line 81 of file EgHLTOfflineSource.h.

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

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

Definition at line 67 of file EgHLTOfflineSource.h.

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

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

Definition at line 90 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

std::string EgHLTOfflineSource::hltTag_
private

Definition at line 91 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

int EgHLTOfflineSource::nrEventsProcessed_
private

Definition at line 63 of file EgHLTOfflineSource.h.

Referenced by analyze().

MonitorElement* EgHLTOfflineSource::nrEventsProcessedMonElem_
private

Definition at line 62 of file EgHLTOfflineSource.h.

Referenced by analyze(), and bookHistograms().

egHLT::OffEvt EgHLTOfflineSource::offEvt_
private

Definition at line 73 of file EgHLTOfflineSource.h.

Referenced by analyze().

egHLT::OffHelper EgHLTOfflineSource::offEvtHelper_
private

Definition at line 74 of file EgHLTOfflineSource.h.

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

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

Definition at line 66 of file EgHLTOfflineSource.h.

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

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

Definition at line 68 of file EgHLTOfflineSource.h.

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

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

Definition at line 71 of file EgHLTOfflineSource.h.

Referenced by bookHistograms(), and EgHLTOfflineSource().

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

Definition at line 75 of file EgHLTOfflineSource.h.

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