CMS 3D CMS Logo

List of all members | Protected Member Functions | Private Member Functions | Private Attributes
ElectronDqmHarvesterBase Class Reference

#include <ElectronDqmHarvesterBase.h>

Inheritance diagram for ElectronDqmHarvesterBase:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper ElectronMcFakePostValidator ElectronMcSignalPostValidator ElectronMcSignalPostValidatorMiniAOD ElectronOfflineClient

Protected Member Functions

void beginJob () override
 
MonitorElementbookH1 (DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, const std::string &titleX="", const std::string &titleY="Events", Option_t *option="E1 P")
 
MonitorElementbookH1andDivide (DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, MonitorElement *num, MonitorElement *denom, const std::string &titleX, const std::string &titleY, const std::string &title="")
 
MonitorElementbookH1andDivide (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, const std::string &name, const std::string &num, const std::string &denom, const std::string &titleX, const std::string &titleY, const std::string &title="")
 
MonitorElementbookH1withSumw2 (DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, const std::string &titleX="", const std::string &titleY="Events", Option_t *option="E1 P")
 
MonitorElementbookH2 (DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="COLZ")
 
MonitorElementbookH2andDivide (DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, MonitorElement *num, MonitorElement *denom, const std::string &titleX, const std::string &titleY, const std::string &title="")
 
MonitorElementbookH2andDivide (DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, const std::string &num, const std::string &denom, const std::string &titleX, const std::string &titleY, const std::string &title="")
 
MonitorElementbookH2withSumw2 (DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="COLZ")
 
MonitorElementbookP1 (DQMStore::IBooker &, const std::string &name, const std::string &title, int nchX, double lowX, double highX, double lowY, double highY, const std::string &titleX="", const std::string &titleY="", Option_t *option="E1 P")
 
MonitorElementcloneH1 (DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, MonitorElement *original, const std::string &title="")
 
MonitorElementcloneH1 (DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, const std::string &original, const std::string &title="")
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
 
 ElectronDqmHarvesterBase (const edm::ParameterSet &conf)
 
virtual void finalize (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
 
bool finalStepDone ()
 
MonitorElementget (DQMStore::IGetter &iGetter, const std::string &name)
 
MonitorElementprofileX (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, MonitorElement *me2d, const std::string &title="", const std::string &titleX="", const std::string &titleY="", Double_t minimum=-1111, Double_t maximum=-1111)
 
MonitorElementprofileX (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, const std::string &me2d, const std::string &title="", const std::string &titleX="", const std::string &titleY="", Double_t minimum=-1111, Double_t maximum=-1111)
 
MonitorElementprofileY (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, MonitorElement *me2d, const std::string &title="", const std::string &titleX="", const std::string &titleY="", Double_t minimum=-1111, Double_t maximum=-1111)
 
MonitorElementprofileY (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, const std::string &me2d, const std::string &title="", const std::string &titleX="", const std::string &titleY="", Double_t minimum=-1111, Double_t maximum=-1111)
 
void remove (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, const std::string &name)
 
void setBookEfficiencyFlag (const bool &)
 
void setBookIndex (short)
 
void setBookPrefix (const std::string &)
 
void setBookStatOverflowFlag (const bool &)
 
int verbosity ()
 
 ~ElectronDqmHarvesterBase () override
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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)
 

Private Member Functions

const std::string * find (DQMStore::IGetter &iGetter, const std::string &name)
 
std::string newName (const std::string &name)
 

Private Attributes

bool bookEfficiencyFlag_ = false
 
short bookIndex_
 
std::string bookPrefix_
 
bool bookStatOverflowFlag_ = false
 
bool finalDone_
 
std::string finalStep_
 
std::vector< std::string > histoNames_
 
bool histoNamesReady
 
std::string inputFile_
 
std::string inputInternalPath_
 
std::string outputFile_
 
std::string outputInternalPath_
 
int verbosity_
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::MonitorElement MonitorElement
 
- 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
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () 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 () noexcept(false) 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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
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)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 
- 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 Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 16 of file ElectronDqmHarvesterBase.h.

Constructor & Destructor Documentation

ElectronDqmHarvesterBase::ElectronDqmHarvesterBase ( const edm::ParameterSet conf)
explicitprotected

Definition at line 18 of file ElectronDqmHarvesterBase.cc.

References finalStep_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputFile_, inputInternalPath_, outputFile_, outputInternalPath_, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity_.

19  : bookPrefix_("ele"), bookIndex_(0), histoNamesReady(false), finalDone_(false) {
20  verbosity_ = conf.getUntrackedParameter<int>("Verbosity");
21  finalStep_ = conf.getParameter<std::string>("FinalStep");
22  inputFile_ = conf.getParameter<std::string>("InputFile");
23  outputFile_ = conf.getParameter<std::string>("OutputFile");
24  inputInternalPath_ = conf.getParameter<std::string>("InputFolderName");
25  outputInternalPath_ = conf.getParameter<std::string>("OutputFolderName");
26 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
ElectronDqmHarvesterBase::~ElectronDqmHarvesterBase ( )
overrideprotected

Definition at line 28 of file ElectronDqmHarvesterBase.cc.

28 {}

Member Function Documentation

void ElectronDqmHarvesterBase::beginJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 97 of file ElectronDqmHarvesterBase.cc.

97 {}
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH1 ( DQMStore::IBooker iBooker,
const std::string &  name,
const std::string &  title,
int  nchX,
double  lowX,
double  highX,
const std::string &  titleX = "",
const std::string &  titleY = "Events",
Option_t *  option = "E1 P" 
)
protected

Definition at line 190 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), bookStatOverflowFlag_, dqm::legacy::MonitorElement::getTH1F(), hlt_dqm_clientPB-live_cfg::me, newName(), outputInternalPath_, dqm::impl::MonitorElement::setAxisTitle(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and dqm::impl::MonitorElement::setOption().

Referenced by verbosity().

198  {
199  iBooker.setCurrentFolder(outputInternalPath_);
200  MonitorElement *me = iBooker.book1D(newName(name), title, nchX, lowX, highX);
201  if (!titleX.empty()) {
202  me->setAxisTitle(titleX);
203  }
204  if (!titleY.empty()) {
205  me->getTH1F()->GetYaxis()->SetTitle(titleY.c_str());
206  }
207  if (TString(option) != "") {
208  me->setOption(option);
209  }
210  if (bookStatOverflowFlag_) {
211  me->getTH1F()->StatOverflows(kTRUE);
212  }
213  return me;
214 }
virtual void setOption(const char *option)
virtual TH1F * getTH1F() const
std::string newName(const std::string &name)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH1andDivide ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  name,
MonitorElement num,
MonitorElement denom,
const std::string &  titleX,
const std::string &  titleY,
const std::string &  title = "" 
)
protected

Definition at line 330 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), bookEfficiencyFlag_, dqm::legacy::MonitorElement::getTH1(), dqm::legacy::MonitorElement::getTH1F(), hlt_dqm_clientPB-live_cfg::me, hfnoseParametersInitialization_cfi::name2, newName(), outputInternalPath_, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), dqm::impl::MonitorElement::setEfficiencyFlag(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity_.

Referenced by bookH1andDivide(), ElectronOfflineClient::finalize(), ElectronMcFakePostValidator::finalize(), ElectronMcSignalPostValidator::finalize(), and verbosity().

337  {
338  if ((!num) || (!denom))
339  return nullptr;
340  iBooker.setCurrentFolder(outputInternalPath_);
342  TH1F *h_temp = (TH1F *)num->getTH1F()->Clone(name2.c_str());
343  h_temp->Reset();
344  h_temp->Divide(num->getTH1(), denom->getTH1(), 1, 1, "b");
345  h_temp->GetXaxis()->SetTitle(titleX.c_str());
346  h_temp->GetYaxis()->SetTitle(titleY.c_str());
347  if (!title.empty()) {
348  h_temp->SetTitle(title.c_str());
349  }
350  if (verbosity_ > 0) {
351  h_temp->Print();
352  }
353  MonitorElement *me = iBooker.book1D(name2, h_temp);
354  if (bookEfficiencyFlag_) {
355  me->setEfficiencyFlag();
356  }
357  delete h_temp;
358  return me;
359 }
virtual TH1F * getTH1F() const
std::string newName(const std::string &name)
virtual TH1 * getTH1() const
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH1andDivide ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  name,
const std::string &  num,
const std::string &  denom,
const std::string &  titleX,
const std::string &  titleY,
const std::string &  title = "" 
)
protected

Definition at line 138 of file ElectronDqmHarvesterBase.cc.

References bookH1andDivide().

145  {
146  return bookH1andDivide(iBooker, iGetter, name, get(iGetter, num), get(iGetter, denom), titleX, titleY, title);
147 }
MonitorElement * bookH1andDivide(DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, MonitorElement *num, MonitorElement *denom, const std::string &titleX, const std::string &titleY, const std::string &title="")
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH1withSumw2 ( DQMStore::IBooker iBooker,
const std::string &  name,
const std::string &  title,
int  nchX,
double  lowX,
double  highX,
const std::string &  titleX = "",
const std::string &  titleY = "Events",
Option_t *  option = "E1 P" 
)
protected

Definition at line 216 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), bookStatOverflowFlag_, dqm::impl::MonitorElement::enableSumw2(), dqm::legacy::MonitorElement::getTH1F(), hlt_dqm_clientPB-live_cfg::me, newName(), outputInternalPath_, dqm::impl::MonitorElement::setAxisTitle(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and dqm::impl::MonitorElement::setOption().

Referenced by ElectronMcFakePostValidator::finalize(), ElectronMcSignalPostValidator::finalize(), and verbosity().

224  {
225  iBooker.setCurrentFolder(outputInternalPath_);
226  MonitorElement *me = iBooker.book1D(newName(name), title, nchX, lowX, highX);
227  me->enableSumw2();
228  if (!titleX.empty()) {
229  me->setAxisTitle(titleX);
230  }
231  if (!titleY.empty()) {
232  me->getTH1F()->GetYaxis()->SetTitle(titleY.c_str());
233  }
234  if (TString(option) != "") {
235  me->setOption(option);
236  }
237  if (bookStatOverflowFlag_) {
238  me->getTH1F()->StatOverflows(kTRUE);
239  }
240  return me;
241 }
virtual void setOption(const char *option)
virtual TH1F * getTH1F() const
std::string newName(const std::string &name)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH2 ( DQMStore::IBooker iBooker,
const std::string &  name,
const std::string &  title,
int  nchX,
double  lowX,
double  highX,
int  nchY,
double  lowY,
double  highY,
const std::string &  titleX = "",
const std::string &  titleY = "",
Option_t *  option = "COLZ" 
)
protected

Definition at line 243 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), bookStatOverflowFlag_, dqm::legacy::MonitorElement::getTH1F(), dqm::legacy::MonitorElement::getTH2F(), hlt_dqm_clientPB-live_cfg::me, newName(), outputInternalPath_, dqm::impl::MonitorElement::setAxisTitle(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and dqm::impl::MonitorElement::setOption().

Referenced by verbosity().

254  {
255  iBooker.setCurrentFolder(outputInternalPath_);
256  MonitorElement *me = iBooker.book2D(newName(name), title, nchX, lowX, highX, nchY, lowY, highY);
257  if (!titleX.empty()) {
258  me->setAxisTitle(titleX);
259  }
260  if (!titleY.empty()) {
261  me->getTH2F()->GetYaxis()->SetTitle(titleY.c_str());
262  }
263  if (TString(option) != "") {
264  me->setOption(option);
265  }
266  if (bookStatOverflowFlag_) {
267  me->getTH1F()->StatOverflows(kTRUE);
268  }
269  return me;
270 }
virtual TH2F * getTH2F() const
virtual void setOption(const char *option)
virtual TH1F * getTH1F() const
std::string newName(const std::string &name)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH2andDivide ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  name,
MonitorElement num,
MonitorElement denom,
const std::string &  titleX,
const std::string &  titleY,
const std::string &  title = "" 
)
protected

Definition at line 361 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), bookEfficiencyFlag_, dqm::legacy::MonitorElement::getTH1(), dqm::legacy::MonitorElement::getTH2F(), hlt_dqm_clientPB-live_cfg::me, hfnoseParametersInitialization_cfi::name2, newName(), outputInternalPath_, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), dqm::impl::MonitorElement::setEfficiencyFlag(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity_.

Referenced by bookH2andDivide(), ElectronMcSignalPostValidator::finalize(), and verbosity().

368  {
369  if ((!num) || (!denom))
370  return nullptr;
371  iBooker.setCurrentFolder(outputInternalPath_);
373  TH2F *h_temp = (TH2F *)num->getTH2F()->Clone(name2.c_str());
374  h_temp->Reset();
375  h_temp->Divide(num->getTH1(), denom->getTH1(), 1, 1, "b");
376  h_temp->GetXaxis()->SetTitle(titleX.c_str());
377  h_temp->GetYaxis()->SetTitle(titleY.c_str());
378  if (!title.empty()) {
379  h_temp->SetTitle(title.c_str());
380  }
381  if (verbosity_ > 0) {
382  h_temp->Print();
383  }
384  MonitorElement *me = iBooker.book2D(name2, h_temp);
385  if (bookEfficiencyFlag_) {
386  me->setEfficiencyFlag();
387  }
388  delete h_temp;
389  return me;
390 }
virtual TH2F * getTH2F() const
std::string newName(const std::string &name)
virtual TH1 * getTH1() const
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH2andDivide ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  name,
const std::string &  num,
const std::string &  denom,
const std::string &  titleX,
const std::string &  titleY,
const std::string &  title = "" 
)
protected

Definition at line 149 of file ElectronDqmHarvesterBase.cc.

References bookH2andDivide().

156  {
157  return bookH2andDivide(iBooker, iGetter, name, get(iGetter, num), get(iGetter, denom), titleX, titleY, title);
158 }
MonitorElement * bookH2andDivide(DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, MonitorElement *num, MonitorElement *denom, const std::string &titleX, const std::string &titleY, const std::string &title="")
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookH2withSumw2 ( DQMStore::IBooker iBooker,
const std::string &  name,
const std::string &  title,
int  nchX,
double  lowX,
double  highX,
int  nchY,
double  lowY,
double  highY,
const std::string &  titleX = "",
const std::string &  titleY = "",
Option_t *  option = "COLZ" 
)
protected

Definition at line 272 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), bookStatOverflowFlag_, dqm::impl::MonitorElement::enableSumw2(), dqm::legacy::MonitorElement::getTH1F(), dqm::legacy::MonitorElement::getTH2F(), hlt_dqm_clientPB-live_cfg::me, newName(), outputInternalPath_, dqm::impl::MonitorElement::setAxisTitle(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and dqm::impl::MonitorElement::setOption().

Referenced by verbosity().

283  {
284  iBooker.setCurrentFolder(outputInternalPath_);
285  MonitorElement *me = iBooker.book2D(newName(name), title, nchX, lowX, highX, nchY, lowY, highY);
286  me->enableSumw2();
287  if (!titleX.empty()) {
288  me->setAxisTitle(titleX);
289  }
290  if (!titleY.empty()) {
291  me->getTH2F()->GetYaxis()->SetTitle(titleY.c_str());
292  }
293  if (TString(option) != "") {
294  me->setOption(option);
295  }
296  if (bookStatOverflowFlag_) {
297  me->getTH1F()->StatOverflows(kTRUE);
298  }
299  return me;
300 }
virtual TH2F * getTH2F() const
virtual void setOption(const char *option)
virtual TH1F * getTH1F() const
std::string newName(const std::string &name)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::bookP1 ( DQMStore::IBooker iBooker,
const std::string &  name,
const std::string &  title,
int  nchX,
double  lowX,
double  highX,
double  lowY,
double  highY,
const std::string &  titleX = "",
const std::string &  titleY = "",
Option_t *  option = "E1 P" 
)
protected

Definition at line 302 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), bookStatOverflowFlag_, dqm::legacy::MonitorElement::getTH1F(), dqm::legacy::MonitorElement::getTProfile(), hlt_dqm_clientPB-live_cfg::me, newName(), outputInternalPath_, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

Referenced by verbosity().

312  {
313  iBooker.setCurrentFolder(outputInternalPath_);
314  MonitorElement *me = iBooker.bookProfile(newName(name), title, nchX, lowX, highX, lowY, highY, " ");
315  if (!titleX.empty()) {
316  me->getTProfile()->GetXaxis()->SetTitle(titleX.c_str());
317  }
318  if (!titleY.empty()) {
319  me->getTProfile()->GetYaxis()->SetTitle(titleY.c_str());
320  }
321  if (TString(option) != "") {
322  me->getTProfile()->SetOption(option);
323  }
324  if (bookStatOverflowFlag_) {
325  me->getTH1F()->StatOverflows(kTRUE);
326  }
327  return me;
328 }
virtual TH1F * getTH1F() const
virtual TProfile * getTProfile() const
std::string newName(const std::string &name)
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::cloneH1 ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  name,
MonitorElement original,
const std::string &  title = "" 
)
protected

Definition at line 392 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::legacy::MonitorElement::getTH1F(), hlt_dqm_clientPB-live_cfg::me, hfnoseParametersInitialization_cfi::name2, newName(), outputInternalPath_, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by cloneH1(), and verbosity().

396  {
397  if (!original)
398  return nullptr;
399  iBooker.setCurrentFolder(outputInternalPath_);
401  TH1F *h_temp = (TH1F *)original->getTH1F()->Clone(name2.c_str());
402  h_temp->Reset();
403  if (!title.empty()) {
404  h_temp->SetTitle(title.c_str());
405  }
406  MonitorElement *me = iBooker.book1D(name2, h_temp);
407  delete h_temp;
408  return me;
409 }
virtual TH1F * getTH1F() const
std::string newName(const std::string &name)
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::cloneH1 ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  name,
const std::string &  original,
const std::string &  title = "" 
)
protected

Definition at line 160 of file ElectronDqmHarvesterBase.cc.

References cloneH1().

164  {
165  return cloneH1(iBooker, iGetter, clone, get(iGetter, original), title);
166 }
MonitorElement * cloneH1(DQMStore::IBooker &iBooker, DQMStore::IGetter &, const std::string &name, MonitorElement *original, const std::string &title="")
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
void ElectronDqmHarvesterBase::dqmEndJob ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 112 of file ElectronDqmHarvesterBase.cc.

References finalDone_, finalize(), finalStep_, outputInternalPath_, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

112  {
113  if (finalStep_ == "AtJobEnd") {
114  if (finalDone_) {
115  edm::LogWarning("ElectronDqmHarvesterBase::dqmEndJob") << "finalize() already called";
116  }
117  iBooker.setCurrentFolder(outputInternalPath_);
118  finalDone_ = true;
119  }
120  iBooker.setCurrentFolder(outputInternalPath_);
121  finalize(iBooker, iGetter);
122 }
virtual void finalize(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
void ElectronDqmHarvesterBase::dqmEndLuminosityBlock ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Reimplemented from DQMEDHarvester.

Definition at line 99 of file ElectronDqmHarvesterBase.cc.

References finalDone_, finalStep_, outputInternalPath_, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

102  {
103  if (finalStep_ == "AtLumiEnd") {
104  if (finalDone_) {
105  edm::LogWarning("ElectronDqmHarvesterBase::endLuminosityBlock") << "finalize() already called";
106  }
107  iBooker.setCurrentFolder(outputInternalPath_);
108  finalDone_ = true;
109  }
110 }
virtual void ElectronDqmHarvesterBase::finalize ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter 
)
inlineprotectedvirtual

Reimplemented in ElectronMcFakePostValidator, ElectronMcSignalPostValidator, ElectronOfflineClient, and ElectronMcSignalPostValidatorMiniAOD.

Definition at line 30 of file ElectronDqmHarvesterBase.h.

Referenced by dqmEndJob().

31  {}; // override ;, const edm::Event& e, const edm::EventSetup & c
bool ElectronDqmHarvesterBase::finalStepDone ( )
inlineprotected

Definition at line 34 of file ElectronDqmHarvesterBase.h.

References finalDone_.

const std::string * ElectronDqmHarvesterBase::find ( DQMStore::IGetter iGetter,
const std::string &  name 
)
private

Definition at line 53 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IGetter::getMEs(), HltBtagPostValidation_cff::histoName, histoNames_, histoNamesReady, and outputInternalPath_.

Referenced by get().

53  {
54  typedef std::vector<std::string> HistoNames;
55  typedef HistoNames::iterator HistoNamesItr;
56  if (!histoNamesReady) {
57  histoNamesReady = true;
58  histoNames_ = iGetter.getMEs();
59  }
60  HistoNamesItr histoName;
61  std::vector<HistoNamesItr> res;
62 
63  for (histoName = histoNames_.begin(); histoName != histoNames_.end(); ++histoName) {
64  std::size_t nsize = name.size(), lsize = histoName->size();
65  if ((lsize >= nsize) && (histoName->find(name) == (lsize - nsize))) {
66  res.push_back(histoName);
67  }
68  }
69  if (res.empty()) {
70  std::ostringstream oss;
71  oss << "Histogram " << name << " not found in " << outputInternalPath_;
72  char sep = ':';
73  for (histoName = histoNames_.begin(); histoName != histoNames_.end(); ++histoName) {
74  oss << sep << ' ' << *histoName;
75  sep = ',';
76  }
77  oss << '.';
78  edm::LogWarning("ElectronDqmHarvesterBase::find") << oss.str();
79  return nullptr;
80  } else if (res.size() > 1) {
81  std::ostringstream oss;
82  oss << "Ambiguous histograms for " << name << " in " << outputInternalPath_;
83  char sep = ':';
84  std::vector<HistoNamesItr>::iterator resItr;
85  for (resItr = res.begin(); resItr != res.end(); ++resItr) {
86  oss << sep << ' ' << (**resItr);
87  sep = ',';
88  }
89  oss << '.';
90  edm::LogWarning("ElectronDqmHarvesterBase::find") << oss.str();
91  return nullptr;
92  } else {
93  return &*res[0];
94  }
95 }
Definition: Electron.h:6
std::vector< std::string > histoNames_
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::get ( DQMStore::IGetter iGetter,
const std::string &  name 
)
protected

Definition at line 124 of file ElectronDqmHarvesterBase.cc.

References find(), newFWLiteAna::fullName, dqm::dqmstoreimpl::DQMStore::IGetter::get(), inputInternalPath_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), util.rrapi.RRApi::columns(), rrapi.RRApi::columns(), util.rrapi.RRApi::count(), rrapi.RRApi::count(), rrapi.RRApi::data(), util.rrapi.RRApi::data(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), rrapi.RRApi::report(), util.rrapi.RRApi::report(), rrapi.RRApi::reports(), util.rrapi.RRApi::reports(), util.rrapi.RRApi::tables(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), util.rrapi.RRApi::tags(), rrapi.RRApi::templates(), util.rrapi.RRApi::templates(), util.rrapi.RRApi::workspaces(), and rrapi.RRApi::workspaces().

125  {
126  const std::string *fullName = find(iGetter, name);
127  if (fullName) {
128  return iGetter.get(inputInternalPath_ + "/" + *fullName);
129  } else {
130  return nullptr;
131  }
132 }
const std::string * find(DQMStore::IGetter &iGetter, const std::string &name)
std::string ElectronDqmHarvesterBase::newName ( const std::string &  name)
private

Definition at line 40 of file ElectronDqmHarvesterBase.cc.

References bookIndex_, bookPrefix_, and Skims_PA_cff::name.

Referenced by bookH1(), bookH1andDivide(), bookH1withSumw2(), bookH2(), bookH2andDivide(), bookH2withSumw2(), bookP1(), and cloneH1().

40  {
41  if (bookPrefix_.empty()) {
42  return name;
43  }
44  std::ostringstream oss;
45  oss << bookPrefix_;
46  if (bookIndex_ >= 0) {
47  oss << bookIndex_++;
48  }
49  oss << "_" << name;
50  return oss.str();
51 }
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::profileX ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
MonitorElement me2d,
const std::string &  title = "",
const std::string &  titleX = "",
const std::string &  titleY = "",
Double_t  minimum = -1111,
Double_t  maximum = -1111 
)
protected

Definition at line 411 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), dqm::impl::MonitorElement::getName(), dqm::legacy::MonitorElement::getTH2F(), hlt_dqm_clientPB-live_cfg::me, hfnoseParametersInitialization_cfi::name2, outputInternalPath_, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by ElectronMcSignalPostValidatorMiniAOD::finalize(), ElectronMcSignalPostValidator::finalize(), ElectronMcFakePostValidator::finalize(), profileX(), and verbosity().

418  {
419  iBooker.setCurrentFolder(outputInternalPath_);
420  std::string name2 = me2d->getName() + "_pfx";
421  TProfile *p1_temp = me2d->getTH2F()->ProfileX();
422  if (!title.empty()) {
423  p1_temp->SetTitle(title.c_str());
424  }
425  if (!titleX.empty()) {
426  p1_temp->GetXaxis()->SetTitle(titleX.c_str());
427  }
428  if (!titleY.empty()) {
429  p1_temp->GetYaxis()->SetTitle(titleY.c_str());
430  }
431  if (minimum != -1111) {
432  p1_temp->SetMinimum(minimum);
433  }
434  if (maximum != -1111) {
435  p1_temp->SetMaximum(maximum);
436  }
437  MonitorElement *me = iBooker.bookProfile(name2, p1_temp);
438  delete p1_temp;
439  return me;
440 }
virtual TH2F * getTH2F() const
const std::string & getName() const
get name of ME
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::profileX ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  me2d,
const std::string &  title = "",
const std::string &  titleX = "",
const std::string &  titleY = "",
Double_t  minimum = -1111,
Double_t  maximum = -1111 
)
protected

Definition at line 168 of file ElectronDqmHarvesterBase.cc.

References profileX().

175  {
176  return profileX(iBooker, iGetter, get(iGetter, me2d), title, titleX, titleY, minimum, maximum);
177 }
MonitorElement * profileX(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, MonitorElement *me2d, const std::string &title="", const std::string &titleX="", const std::string &titleY="", Double_t minimum=-1111, Double_t maximum=-1111)
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::profileY ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
MonitorElement me2d,
const std::string &  title = "",
const std::string &  titleX = "",
const std::string &  titleY = "",
Double_t  minimum = -1111,
Double_t  maximum = -1111 
)
protected

Definition at line 442 of file ElectronDqmHarvesterBase.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), dqm::impl::MonitorElement::getName(), dqm::legacy::MonitorElement::getTH2F(), hlt_dqm_clientPB-live_cfg::me, hfnoseParametersInitialization_cfi::name2, outputInternalPath_, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by ElectronMcSignalPostValidator::finalize(), profileY(), and verbosity().

449  {
450  iBooker.setCurrentFolder(outputInternalPath_);
451  std::string name2 = me2d->getName() + "_pfy";
452  TProfile *p1_temp = me2d->getTH2F()->ProfileY();
453  if (!title.empty()) {
454  p1_temp->SetTitle(title.c_str());
455  }
456  if (!titleX.empty()) {
457  p1_temp->GetXaxis()->SetTitle(titleX.c_str());
458  }
459  if (!titleY.empty()) {
460  p1_temp->GetYaxis()->SetTitle(titleY.c_str());
461  }
462  if (minimum != -1111) {
463  p1_temp->SetMinimum(minimum);
464  }
465  if (maximum != -1111) {
466  p1_temp->SetMaximum(maximum);
467  }
468  MonitorElement *me = iBooker.bookProfile(name2, p1_temp);
469  delete p1_temp;
470  return me;
471 }
virtual TH2F * getTH2F() const
const std::string & getName() const
get name of ME
ElectronDqmHarvesterBase::MonitorElement * ElectronDqmHarvesterBase::profileY ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  me2d,
const std::string &  title = "",
const std::string &  titleX = "",
const std::string &  titleY = "",
Double_t  minimum = -1111,
Double_t  maximum = -1111 
)
protected

Definition at line 179 of file ElectronDqmHarvesterBase.cc.

References profileY().

186  {
187  return profileY(iBooker, iGetter, get(iGetter, me2d), title, titleX, titleY, minimum, maximum);
188 }
MonitorElement * profileY(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, MonitorElement *me2d, const std::string &title="", const std::string &titleX="", const std::string &titleY="", Double_t minimum=-1111, Double_t maximum=-1111)
void ElectronDqmHarvesterBase::remove ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter,
const std::string &  name 
)
protected

Definition at line 134 of file ElectronDqmHarvesterBase.cc.

134  {
135  // TODO: remove no longer supported in DQMStore.
136 }
void ElectronDqmHarvesterBase::setBookEfficiencyFlag ( const bool &  eff_flag)
protected
void ElectronDqmHarvesterBase::setBookIndex ( short  index)
protected
void ElectronDqmHarvesterBase::setBookPrefix ( const std::string &  prefix)
protected
void ElectronDqmHarvesterBase::setBookStatOverflowFlag ( const bool &  statOverflow_flag)
protected
int ElectronDqmHarvesterBase::verbosity ( )
inlineprotected

Member Data Documentation

bool ElectronDqmHarvesterBase::bookEfficiencyFlag_ = false
private
short ElectronDqmHarvesterBase::bookIndex_
private

Definition at line 189 of file ElectronDqmHarvesterBase.h.

Referenced by newName(), and setBookIndex().

std::string ElectronDqmHarvesterBase::bookPrefix_
private

Definition at line 188 of file ElectronDqmHarvesterBase.h.

Referenced by newName(), and setBookPrefix().

bool ElectronDqmHarvesterBase::bookStatOverflowFlag_ = false
private
bool ElectronDqmHarvesterBase::finalDone_
private

Definition at line 199 of file ElectronDqmHarvesterBase.h.

Referenced by dqmEndJob(), dqmEndLuminosityBlock(), and finalStepDone().

std::string ElectronDqmHarvesterBase::finalStep_
private
std::vector<std::string> ElectronDqmHarvesterBase::histoNames_
private

Definition at line 193 of file ElectronDqmHarvesterBase.h.

Referenced by find().

bool ElectronDqmHarvesterBase::histoNamesReady
private

Definition at line 192 of file ElectronDqmHarvesterBase.h.

Referenced by find().

std::string ElectronDqmHarvesterBase::inputFile_
private

Definition at line 195 of file ElectronDqmHarvesterBase.h.

Referenced by ElectronDqmHarvesterBase().

std::string ElectronDqmHarvesterBase::inputInternalPath_
private

Definition at line 197 of file ElectronDqmHarvesterBase.h.

Referenced by ElectronDqmHarvesterBase(), and get().

std::string ElectronDqmHarvesterBase::outputFile_
private

Definition at line 196 of file ElectronDqmHarvesterBase.h.

Referenced by ElectronDqmHarvesterBase().

std::string ElectronDqmHarvesterBase::outputInternalPath_
private
int ElectronDqmHarvesterBase::verbosity_
private