CMS 3D CMS Logo

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

#include <L1TdeCSCTPGClient.h>

Inheritance diagram for L1TdeCSCTPGClient:
DQMEDHarvester edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::EndProcessBlockProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1TdeCSCTPGClient (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~L1TdeCSCTPGClient () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginJob () override
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &) override
 
virtual void dqmAnalyze (DQMStore::IBooker &, DQMStore::IGetter &, edm::Event const &, edm::EventSetup const &)
 
 DQMEDHarvester (edm::ParameterSet const &iConfig)
 
 DQMEDHarvester ()
 
virtual void dqmEndRun (DQMStore::IBooker &, DQMStore::IGetter &, edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &es) final
 
void endProcessBlockProduce (edm::ProcessBlock &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &es) final
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::EndProcessBlockProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
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
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () 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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Private Member Functions

void book (DQMStore::IBooker &ibooker)
 
void processHistograms (DQMStore::IGetter &)
 

Private Attributes

MonitorElementalctDataSummary_eff_
 
MonitorElementalctEmulSummary_eff_
 
std::vector< double > alctMaxBin_
 
std::vector< double > alctMinBin_
 
std::vector< unsigned > alctNBin_
 
std::vector< std::string > alctVars_
 
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos_
 
std::vector< std::string > chambers_
 
MonitorElementclctDataSummary_eff_
 
MonitorElementclctEmulSummary_eff_
 
std::vector< double > clctMaxBin_
 
std::vector< double > clctMinBin_
 
std::vector< unsigned > clctNBin_
 
std::vector< std::string > clctVars_
 
bool isRun3_
 
MonitorElementlctDataSummary_eff_
 
MonitorElementlctEmulSummary_eff_
 
std::vector< double > lctMaxBin_
 
std::vector< double > lctMinBin_
 
std::vector< unsigned > lctNBin_
 
std::vector< std::string > lctVars_
 
bool make1DPlots_
 
std::string monitorDir_
 
bool useB904_
 
bool useB904ME11_
 
bool useB904ME21_
 
bool useB904ME234s2_
 

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
 
- 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
DQMStoredqmstore_
 
edm::GetterOfProducts< DQMTokenjobmegetter_
 
edm::EDPutTokenT< DQMTokenjobToken_
 
edm::GetterOfProducts< DQMTokenlumimegetter_
 
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::GetterOfProducts< DQMTokenrunmegetter_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 13 of file L1TdeCSCTPGClient.h.

Constructor & Destructor Documentation

◆ L1TdeCSCTPGClient()

L1TdeCSCTPGClient::L1TdeCSCTPGClient ( const edm::ParameterSet ps)

Constructor.

Definition at line 13 of file L1TdeCSCTPGClient.cc.

References or, useB904_, useB904ME11_, useB904ME21_, and useB904ME234s2_.

14  : monitorDir_(ps.getParameter<string>("monitorDir")),
15  chambers_(ps.getParameter<std::vector<std::string>>("chambers")),
16  // variables
17  alctVars_(ps.getParameter<std::vector<std::string>>("alctVars")),
18  clctVars_(ps.getParameter<std::vector<std::string>>("clctVars")),
19  lctVars_(ps.getParameter<std::vector<std::string>>("lctVars")),
20  // binning
21  alctNBin_(ps.getParameter<std::vector<unsigned>>("alctNBin")),
22  clctNBin_(ps.getParameter<std::vector<unsigned>>("clctNBin")),
23  lctNBin_(ps.getParameter<std::vector<unsigned>>("lctNBin")),
24  alctMinBin_(ps.getParameter<std::vector<double>>("alctMinBin")),
25  clctMinBin_(ps.getParameter<std::vector<double>>("clctMinBin")),
26  lctMinBin_(ps.getParameter<std::vector<double>>("lctMinBin")),
27  alctMaxBin_(ps.getParameter<std::vector<double>>("alctMaxBin")),
28  clctMaxBin_(ps.getParameter<std::vector<double>>("clctMaxBin")),
29  lctMaxBin_(ps.getParameter<std::vector<double>>("lctMaxBin")),
30  useB904ME11_(ps.getParameter<bool>("useB904ME11")),
31  useB904ME21_(ps.getParameter<bool>("useB904ME21")),
32  useB904ME234s2_(ps.getParameter<bool>("useB904ME234s2")),
33  isRun3_(ps.getParameter<bool>("isRun3")),
34  // by default the DQM will make 2D summary plots. Do you also want
35  // the very large number of 1D plots? Typically only for testing at B904 or
36  // on select P5 data
37  make1DPlots_(ps.getParameter<bool>("make1DPlots")) {
39 }
std::vector< double > alctMaxBin_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::vector< double > clctMaxBin_
std::vector< std::string > lctVars_
std::vector< double > lctMinBin_
std::vector< std::string > alctVars_
std::string monitorDir_
std::vector< unsigned > alctNBin_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< double > alctMinBin_
std::vector< unsigned > lctNBin_
std::vector< double > clctMinBin_
std::vector< double > lctMaxBin_
std::vector< std::string > chambers_
std::vector< std::string > clctVars_
std::vector< unsigned > clctNBin_

◆ ~L1TdeCSCTPGClient()

L1TdeCSCTPGClient::~L1TdeCSCTPGClient ( )
override

Destructor.

Definition at line 41 of file L1TdeCSCTPGClient.cc.

41 {}

Member Function Documentation

◆ book()

void L1TdeCSCTPGClient::book ( DQMStore::IBooker ibooker)
private

Definition at line 57 of file L1TdeCSCTPGClient.cc.

References alctDataSummary_eff_, alctEmulSummary_eff_, alctMaxBin_, alctMinBin_, alctNBin_, alctVars_, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), chamberHistos_, chambers_, clctDataSummary_eff_, clctEmulSummary_eff_, clctMaxBin_, clctMinBin_, clctNBin_, clctVars_, B2GTnPMonitor_cfi::histTitle, isRun3_, crabWrapper::key, lctDataSummary_eff_, lctEmulSummary_eff_, lctMaxBin_, lctMinBin_, lctNBin_, lctVars_, make1DPlots_, monitorDir_, or, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), dqm::impl::MonitorElement::setOption(), AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, useB904ME11_, useB904ME21_, and useB904ME234s2_.

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

57  {
58  iBooker.setCurrentFolder(monitorDir_);
59 
60  // remove the non-ME1/1 chambers from the list when useB904ME11 is set to true
61  if (useB904ME11_) {
62  chambers_.resize(1);
63  }
64  // similar for ME2/1
65  else if (useB904ME21_) {
66  auto temp = chambers_[3];
67  chambers_.resize(1);
68  chambers_[0] = temp;
69  }
70  // similar for ME4/2
71  else if (useB904ME234s2_) {
72  auto temp = chambers_.back();
73  chambers_.resize(1);
74  chambers_[0] = temp;
75  }
76  // collision data in Run-3
77  else if (isRun3_) {
78  clctVars_.resize(9);
79  lctVars_.resize(9);
80  }
81  // do not analyze Run-3 properties in Run-1 and Run-2 eras
82  else {
83  clctVars_.resize(4);
84  lctVars_.resize(5);
85  }
86 
87  // 1D plots for experts
89  // chamber type
90  for (unsigned iType = 0; iType < chambers_.size(); iType++) {
91  // alct variable
92  for (unsigned iVar = 0; iVar < alctVars_.size(); iVar++) {
93  const std::string key("alct_" + alctVars_[iVar] + "_diff");
94  const std::string histName(key + "_" + chambers_[iType]);
95  const std::string histTitle(chambers_[iType] + " ALCT " + alctVars_[iVar] + " (Emul - Data)");
96  if (chamberHistos_[iType][key] == nullptr)
97  chamberHistos_[iType][key] =
98  iBooker.book1D(histName, histTitle, alctNBin_[iVar], alctMinBin_[iVar], alctMaxBin_[iVar]);
99  else
100  chamberHistos_[iType][key]->Reset();
101  }
102 
103  // clct variable
104  for (unsigned iVar = 0; iVar < clctVars_.size(); iVar++) {
105  const std::string key("clct_" + clctVars_[iVar] + "_diff");
106  const std::string histName(key + "_" + chambers_[iType]);
107  const std::string histTitle(chambers_[iType] + " CLCT " + clctVars_[iVar] + " (Emul - Data)");
108  if (chamberHistos_[iType][key] == nullptr)
109  chamberHistos_[iType][key] =
110  iBooker.book1D(histName, histTitle, clctNBin_[iVar], clctMinBin_[iVar], clctMaxBin_[iVar]);
111  else
112  chamberHistos_[iType][key]->Reset();
113  }
114 
115  // lct variable
116  for (unsigned iVar = 0; iVar < lctVars_.size(); iVar++) {
117  const std::string key("lct_" + lctVars_[iVar] + "_diff");
118  const std::string histName(key + "_" + chambers_[iType]);
119  const std::string histTitle(chambers_[iType] + " LCT " + lctVars_[iVar] + " (Emul - Data)");
120  if (chamberHistos_[iType][key] == nullptr)
121  chamberHistos_[iType][key] =
122  iBooker.book1D(histName, histTitle, lctNBin_[iVar], lctMinBin_[iVar], lctMaxBin_[iVar]);
123  else
124  chamberHistos_[iType][key]->Reset();
125  }
126  }
127  }
128 
129  // 2D summary plots
130  lctDataSummary_eff_ = iBooker.book2D(
131  "lct_csctp_data_summary_eff", "Efficiency of data LCT being correctly emulated", 36, 1, 37, 18, 0, 18);
132  alctDataSummary_eff_ = iBooker.book2D(
133  "alct_csctp_data_summary_eff", "Efficiency of data ALCT being correctly emulated", 36, 1, 37, 18, 0, 18);
134  clctDataSummary_eff_ = iBooker.book2D(
135  "clct_csctp_data_summary_eff", "Efficiency of data CLCT being correctly emulated", 36, 1, 37, 18, 0, 18);
136 
137  lctEmulSummary_eff_ = iBooker.book2D(
138  "lct_csctp_emul_summary_eff", "Fraction of emulated LCT without matching data LCT", 36, 1, 37, 18, 0, 18);
139  alctEmulSummary_eff_ = iBooker.book2D(
140  "alct_csctp_emul_summary_eff", "Fraction of emulated ALCT without matching data ALCT", 36, 1, 37, 18, 0, 18);
141  clctEmulSummary_eff_ = iBooker.book2D(
142  "clct_csctp_emul_summary_eff", "Fraction of emulated CLCT without matching data CLCT", 36, 1, 37, 18, 0, 18);
143 
144  // x labels
145  lctDataSummary_eff_->setAxisTitle("Chamber", 1);
146  alctDataSummary_eff_->setAxisTitle("Chamber", 1);
147  clctDataSummary_eff_->setAxisTitle("Chamber", 1);
148 
149  lctEmulSummary_eff_->setAxisTitle("Chamber", 1);
150  alctEmulSummary_eff_->setAxisTitle("Chamber", 1);
151  clctEmulSummary_eff_->setAxisTitle("Chamber", 1);
152 
153  // plotting option
157 
161 
162  // summary plots
163  const std::array<std::string, 9> suffix_label{{"4/2", "4/1", "3/2", "3/1", " 2/2", "2/1", "1/3", "1/2", "1/1"}};
164 
165  // y labels
166  for (int ybin = 1; ybin <= 9; ++ybin) {
167  lctDataSummary_eff_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
168  alctDataSummary_eff_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
169  clctDataSummary_eff_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
170 
171  lctEmulSummary_eff_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
172  alctEmulSummary_eff_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
173  clctEmulSummary_eff_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
174 
175  lctDataSummary_eff_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
176  alctDataSummary_eff_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
177  clctDataSummary_eff_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
178 
179  lctEmulSummary_eff_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
180  alctEmulSummary_eff_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
181  clctEmulSummary_eff_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
182  }
183 }
std::vector< double > alctMaxBin_
MonitorElement * clctDataSummary_eff_
std::vector< double > clctMaxBin_
MonitorElement * lctDataSummary_eff_
std::vector< std::string > lctVars_
std::vector< double > lctMinBin_
std::vector< std::string > alctVars_
virtual void setOption(const char *option)
std::string monitorDir_
MonitorElement * alctEmulSummary_eff_
std::vector< unsigned > alctNBin_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< double > alctMinBin_
MonitorElement * clctEmulSummary_eff_
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
std::vector< unsigned > lctNBin_
std::vector< double > clctMinBin_
MonitorElement * lctEmulSummary_eff_
std::vector< double > lctMaxBin_
std::vector< std::string > chambers_
MonitorElement * alctDataSummary_eff_
std::vector< std::string > clctVars_
std::vector< unsigned > clctNBin_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos_

◆ dqmEndJob()

void L1TdeCSCTPGClient::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 52 of file L1TdeCSCTPGClient.cc.

References book(), and processHistograms().

52  {
53  book(ibooker);
54  processHistograms(igetter);
55 }
void book(DQMStore::IBooker &ibooker)
void processHistograms(DQMStore::IGetter &)

◆ dqmEndLuminosityBlock()

void L1TdeCSCTPGClient::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter,
edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  c 
)
overrideprotectedvirtual

Reimplemented from DQMEDHarvester.

Definition at line 43 of file L1TdeCSCTPGClient.cc.

References book(), and processHistograms().

46  {
47  book(ibooker);
48  processHistograms(igetter);
49 }
void book(DQMStore::IBooker &ibooker)
void processHistograms(DQMStore::IGetter &)

◆ processHistograms()

void L1TdeCSCTPGClient::processHistograms ( DQMStore::IGetter igetter)
private

Definition at line 185 of file L1TdeCSCTPGClient.cc.

References alctDataSummary_eff_, alctEmulSummary_eff_, alctVars_, chamberHistos_, chambers_, clctDataSummary_eff_, clctEmulSummary_eff_, clctVars_, dqm::implementation::IGetter::get(), dqm::legacy::MonitorElement::getTH1F(), dqm::legacy::MonitorElement::getTH2F(), crabWrapper::key, lctDataSummary_eff_, lctEmulSummary_eff_, lctVars_, make1DPlots_, monitorDir_, or, AlCaHLTBitMon_QueryRunRegistry::string, useB904ME11_, useB904ME21_, and useB904ME234s2_.

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

185  {
186  MonitorElement *dataMon;
187  MonitorElement *emulMon;
188 
189  // 1D plots for experts
191  // chamber type
192  for (unsigned iType = 0; iType < chambers_.size(); iType++) {
193  // alct variable
194  for (unsigned iVar = 0; iVar < alctVars_.size(); iVar++) {
195  const std::string key("alct_" + alctVars_[iVar]);
196  const std::string histData(key + "_data_" + chambers_[iType]);
197  const std::string histEmul(key + "_emul_" + chambers_[iType]);
198 
199  dataMon = igetter.get(monitorDir_ + "/" + histData);
200  emulMon = igetter.get(monitorDir_ + "/" + histEmul);
201 
202  if (dataMon == nullptr or emulMon == nullptr) {
203  edm::LogWarning("L1TdeCSCTPGClient")
204  << __PRETTY_FUNCTION__ << " could not load the necessary histograms for harvesting " << histData << " / "
205  << histEmul;
206  continue;
207  }
208 
209  TH1F *hDiff = chamberHistos_[iType][key + "_diff"]->getTH1F();
210 
211  if (dataMon && emulMon) {
212  TH1F *hData = dataMon->getTH1F();
213  TH1F *hEmul = emulMon->getTH1F();
214  hDiff->Add(hEmul, hData, 1, -1);
215  }
216  }
217 
218  // clct variable
219  for (unsigned iVar = 0; iVar < clctVars_.size(); iVar++) {
220  const std::string key("clct_" + clctVars_[iVar]);
221  const std::string histData(key + "_data_" + chambers_[iType]);
222  const std::string histEmul(key + "_emul_" + chambers_[iType]);
223 
224  dataMon = igetter.get(monitorDir_ + "/" + histData);
225  emulMon = igetter.get(monitorDir_ + "/" + histEmul);
226 
227  if (dataMon == nullptr or emulMon == nullptr) {
228  edm::LogWarning("L1TdeCSCTPGClient")
229  << __PRETTY_FUNCTION__ << " could not load the necessary histograms for harvesting " << histData << " / "
230  << histEmul;
231  continue;
232  }
233 
234  TH1F *hDiff = chamberHistos_[iType][key + "_diff"]->getTH1F();
235 
236  if (dataMon && emulMon) {
237  TH1F *hData = dataMon->getTH1F();
238  TH1F *hEmul = emulMon->getTH1F();
239  hDiff->Add(hEmul, hData, 1, -1);
240  }
241  }
242 
243  // lct variable
244  for (unsigned iVar = 0; iVar < lctVars_.size(); iVar++) {
245  const std::string key("lct_" + lctVars_[iVar]);
246  const std::string histData(key + "_data_" + chambers_[iType]);
247  const std::string histEmul(key + "_emul_" + chambers_[iType]);
248 
249  dataMon = igetter.get(monitorDir_ + "/" + histData);
250  emulMon = igetter.get(monitorDir_ + "/" + histEmul);
251 
252  if (dataMon == nullptr or emulMon == nullptr) {
253  edm::LogWarning("L1TdeCSCTPGClient")
254  << __PRETTY_FUNCTION__ << " could not load the necessary histograms for harvesting " << histData << " / "
255  << histEmul;
256  continue;
257  }
258 
259  TH1F *hDiff = chamberHistos_[iType][key + "_diff"]->getTH1F();
260 
261  if (dataMon && emulMon) {
262  TH1F *hData = dataMon->getTH1F();
263  TH1F *hEmul = emulMon->getTH1F();
264  hDiff->Add(hEmul, hData, 1, -1);
265  }
266  }
267  }
268  }
269 
270  // 2D summary plot
271  MonitorElement *lctDataSummary_denom_ = igetter.get(monitorDir_ + "/lct_csctp_data_summary_denom");
272  MonitorElement *lctDataSummary_num_ = igetter.get(monitorDir_ + "/lct_csctp_data_summary_num");
273  MonitorElement *alctDataSummary_denom_ = igetter.get(monitorDir_ + "/alct_csctp_data_summary_denom");
274  MonitorElement *alctDataSummary_num_ = igetter.get(monitorDir_ + "/alct_csctp_data_summary_num");
275  MonitorElement *clctDataSummary_denom_ = igetter.get(monitorDir_ + "/clct_csctp_data_summary_denom");
276  MonitorElement *clctDataSummary_num_ = igetter.get(monitorDir_ + "/clct_csctp_data_summary_num");
277 
278  if (lctDataSummary_denom_ == nullptr or lctDataSummary_num_ == nullptr or alctDataSummary_denom_ == nullptr or
279  alctDataSummary_num_ == nullptr or clctDataSummary_denom_ == nullptr or clctDataSummary_num_ == nullptr) {
280  edm::LogWarning("L1TdeCSCTPGClient") << __PRETTY_FUNCTION__
281  << " could not load the necessary data histograms for 2D summary plots";
282  return;
283  }
284 
285  MonitorElement *lctEmulSummary_denom_ = igetter.get(monitorDir_ + "/lct_csctp_emul_summary_denom");
286  MonitorElement *lctEmulSummary_num_ = igetter.get(monitorDir_ + "/lct_csctp_emul_summary_num");
287  MonitorElement *alctEmulSummary_denom_ = igetter.get(monitorDir_ + "/alct_csctp_emul_summary_denom");
288  MonitorElement *alctEmulSummary_num_ = igetter.get(monitorDir_ + "/alct_csctp_emul_summary_num");
289  MonitorElement *clctEmulSummary_denom_ = igetter.get(monitorDir_ + "/clct_csctp_emul_summary_denom");
290  MonitorElement *clctEmulSummary_num_ = igetter.get(monitorDir_ + "/clct_csctp_emul_summary_num");
291 
292  if (lctEmulSummary_denom_ == nullptr or lctEmulSummary_num_ == nullptr or alctEmulSummary_denom_ == nullptr or
293  alctEmulSummary_num_ == nullptr or clctEmulSummary_denom_ == nullptr or clctEmulSummary_num_ == nullptr) {
294  edm::LogWarning("L1TdeCSCTPGClient")
295  << __PRETTY_FUNCTION__ << " could not load the necessary emulation histograms for the 2D summary plots";
296  return;
297  }
298 
299  lctDataSummary_eff_->getTH2F()->Divide(lctDataSummary_num_->getTH2F(), lctDataSummary_denom_->getTH2F(), 1, 1, "");
300  alctDataSummary_eff_->getTH2F()->Divide(alctDataSummary_num_->getTH2F(), alctDataSummary_denom_->getTH2F(), 1, 1, "");
301  clctDataSummary_eff_->getTH2F()->Divide(clctDataSummary_num_->getTH2F(), clctDataSummary_denom_->getTH2F(), 1, 1, "");
302 
303  lctEmulSummary_eff_->getTH2F()->Divide(lctEmulSummary_num_->getTH2F(), lctEmulSummary_denom_->getTH2F(), 1, 1, "");
304  alctEmulSummary_eff_->getTH2F()->Divide(alctEmulSummary_num_->getTH2F(), alctEmulSummary_denom_->getTH2F(), 1, 1, "");
305  clctEmulSummary_eff_->getTH2F()->Divide(clctEmulSummary_num_->getTH2F(), clctEmulSummary_denom_->getTH2F(), 1, 1, "");
306 
307  // set minima to 0.95 so the contrast comes out better!
308  lctDataSummary_eff_->getTH2F()->GetZaxis()->SetRangeUser(0.95, 1);
309  alctDataSummary_eff_->getTH2F()->GetZaxis()->SetRangeUser(0.95, 1);
310  clctDataSummary_eff_->getTH2F()->GetZaxis()->SetRangeUser(0.95, 1);
311 }
MonitorElement * clctDataSummary_eff_
MonitorElement * lctDataSummary_eff_
std::vector< std::string > lctVars_
std::vector< std::string > alctVars_
std::string monitorDir_
MonitorElement * alctEmulSummary_eff_
virtual TH2F * getTH2F() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
MonitorElement * clctEmulSummary_eff_
virtual TH1F * getTH1F() const
MonitorElement * lctEmulSummary_eff_
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:673
std::vector< std::string > chambers_
Log< level::Warning, false > LogWarning
MonitorElement * alctDataSummary_eff_
std::vector< std::string > clctVars_
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos_

Member Data Documentation

◆ alctDataSummary_eff_

MonitorElement* L1TdeCSCTPGClient::alctDataSummary_eff_
private

Definition at line 69 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ alctEmulSummary_eff_

MonitorElement* L1TdeCSCTPGClient::alctEmulSummary_eff_
private

Definition at line 72 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ alctMaxBin_

std::vector<double> L1TdeCSCTPGClient::alctMaxBin_
private

Definition at line 47 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ alctMinBin_

std::vector<double> L1TdeCSCTPGClient::alctMinBin_
private

Definition at line 44 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ alctNBin_

std::vector<unsigned> L1TdeCSCTPGClient::alctNBin_
private

Definition at line 41 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ alctVars_

std::vector<std::string> L1TdeCSCTPGClient::alctVars_
private

Definition at line 37 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ chamberHistos_

std::map<uint32_t, std::map<std::string, MonitorElement *> > L1TdeCSCTPGClient::chamberHistos_
private

Definition at line 66 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ chambers_

std::vector<std::string> L1TdeCSCTPGClient::chambers_
private

Definition at line 35 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ clctDataSummary_eff_

MonitorElement* L1TdeCSCTPGClient::clctDataSummary_eff_
private

Definition at line 70 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ clctEmulSummary_eff_

MonitorElement* L1TdeCSCTPGClient::clctEmulSummary_eff_
private

Definition at line 73 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ clctMaxBin_

std::vector<double> L1TdeCSCTPGClient::clctMaxBin_
private

Definition at line 48 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ clctMinBin_

std::vector<double> L1TdeCSCTPGClient::clctMinBin_
private

Definition at line 45 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ clctNBin_

std::vector<unsigned> L1TdeCSCTPGClient::clctNBin_
private

Definition at line 42 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ clctVars_

std::vector<std::string> L1TdeCSCTPGClient::clctVars_
private

Definition at line 38 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ isRun3_

bool L1TdeCSCTPGClient::isRun3_
private

Definition at line 61 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ lctDataSummary_eff_

MonitorElement* L1TdeCSCTPGClient::lctDataSummary_eff_
private

Definition at line 68 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ lctEmulSummary_eff_

MonitorElement* L1TdeCSCTPGClient::lctEmulSummary_eff_
private

Definition at line 71 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ lctMaxBin_

std::vector<double> L1TdeCSCTPGClient::lctMaxBin_
private

Definition at line 49 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ lctMinBin_

std::vector<double> L1TdeCSCTPGClient::lctMinBin_
private

Definition at line 46 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ lctNBin_

std::vector<unsigned> L1TdeCSCTPGClient::lctNBin_
private

Definition at line 43 of file L1TdeCSCTPGClient.h.

Referenced by book().

◆ lctVars_

std::vector<std::string> L1TdeCSCTPGClient::lctVars_
private

Definition at line 39 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ make1DPlots_

bool L1TdeCSCTPGClient::make1DPlots_
private

Definition at line 62 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ monitorDir_

std::string L1TdeCSCTPGClient::monitorDir_
private

Definition at line 32 of file L1TdeCSCTPGClient.h.

Referenced by book(), and processHistograms().

◆ useB904_

bool L1TdeCSCTPGClient::useB904_
private

Definition at line 56 of file L1TdeCSCTPGClient.h.

Referenced by L1TdeCSCTPGClient().

◆ useB904ME11_

bool L1TdeCSCTPGClient::useB904ME11_
private

Definition at line 57 of file L1TdeCSCTPGClient.h.

Referenced by book(), L1TdeCSCTPGClient(), and processHistograms().

◆ useB904ME21_

bool L1TdeCSCTPGClient::useB904ME21_
private

Definition at line 58 of file L1TdeCSCTPGClient.h.

Referenced by book(), L1TdeCSCTPGClient(), and processHistograms().

◆ useB904ME234s2_

bool L1TdeCSCTPGClient::useB904ME234s2_
private

Definition at line 59 of file L1TdeCSCTPGClient.h.

Referenced by book(), L1TdeCSCTPGClient(), and processHistograms().