CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
MtdGlobalRecoHarvester Class Reference
Inheritance diagram for MtdGlobalRecoHarvester:
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

 MtdGlobalRecoHarvester (const edm::ParameterSet &iConfig)
 
 ~MtdGlobalRecoHarvester () override
 
- 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 ()
 
 DQMEDHarvester (edm::ParameterSet const &iConfig)
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
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
 
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
 
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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
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

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- 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

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

Private Attributes

const std::string folder_
 
MonitorElementmeBtlEtaEff_
 
MonitorElementmeBtlPhiEff_
 
MonitorElementmeBtlPtEff_
 
MonitorElementmeEtlEtaEff_ [4]
 
MonitorElementmeEtlPhiEff_ [4]
 
MonitorElementmeEtlPtEff_ [4]
 

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
 
- 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 MtdGlobalRecoHarvester.cc.

Constructor & Destructor Documentation

◆ MtdGlobalRecoHarvester()

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

Definition at line 36 of file MtdGlobalRecoHarvester.cc.

37  : folder_(iConfig.getParameter<std::string>("folder")) {}

◆ ~MtdGlobalRecoHarvester()

MtdGlobalRecoHarvester::~MtdGlobalRecoHarvester ( )
override

Definition at line 39 of file MtdGlobalRecoHarvester.cc.

39 {}

Member Function Documentation

◆ dqmEndJob()

void MtdGlobalRecoHarvester::dqmEndJob ( DQMStore::IBooker ibook,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 42 of file MtdGlobalRecoHarvester.cc.

42  {
43  // --- Get the monitoring histograms
44  MonitorElement* meBTLTrackEffEtaTot = igetter.get(folder_ + "TrackBTLEffEtaTot");
45  MonitorElement* meBTLTrackEffPhiTot = igetter.get(folder_ + "TrackBTLEffPhiTot");
46  MonitorElement* meBTLTrackEffPtTot = igetter.get(folder_ + "TrackBTLEffPtTot");
47  MonitorElement* meBTLTrackEffEtaMtd = igetter.get(folder_ + "TrackBTLEffEtaMtd");
48  MonitorElement* meBTLTrackEffPhiMtd = igetter.get(folder_ + "TrackBTLEffPhiMtd");
49  MonitorElement* meBTLTrackEffPtMtd = igetter.get(folder_ + "TrackBTLEffPtMtd");
50  MonitorElement* meETLTrackEffEtaTotZneg = igetter.get(folder_ + "TrackETLEffEtaTotZneg");
51  MonitorElement* meETLTrackEffPhiTotZneg = igetter.get(folder_ + "TrackETLEffPhiTotZneg");
52  MonitorElement* meETLTrackEffPtTotZneg = igetter.get(folder_ + "TrackETLEffPtTotZneg");
53  MonitorElement* meETLTrackEffEtaMtdZnegD1 = igetter.get(folder_ + "TrackETLEffEtaMtdZnegD1");
54  MonitorElement* meETLTrackEffEtaMtdZnegD2 = igetter.get(folder_ + "TrackETLEffEtaMtdZnegD2");
55  MonitorElement* meETLTrackEffPhiMtdZnegD1 = igetter.get(folder_ + "TrackETLEffPhiMtdZnegD1");
56  MonitorElement* meETLTrackEffPhiMtdZnegD2 = igetter.get(folder_ + "TrackETLEffPhiMtdZnegD2");
57  MonitorElement* meETLTrackEffPtMtdZnegD1 = igetter.get(folder_ + "TrackETLEffPtMtdZnegD1");
58  MonitorElement* meETLTrackEffPtMtdZnegD2 = igetter.get(folder_ + "TrackETLEffPtMtdZnegD2");
59  MonitorElement* meETLTrackEffEtaTotZpos = igetter.get(folder_ + "TrackETLEffEtaTotZpos");
60  MonitorElement* meETLTrackEffPhiTotZpos = igetter.get(folder_ + "TrackETLEffPhiTotZpos");
61  MonitorElement* meETLTrackEffPtTotZpos = igetter.get(folder_ + "TrackETLEffPtTotZpos");
62  MonitorElement* meETLTrackEffEtaMtdZposD1 = igetter.get(folder_ + "TrackETLEffEtaMtdZposD1");
63  MonitorElement* meETLTrackEffEtaMtdZposD2 = igetter.get(folder_ + "TrackETLEffEtaMtdZposD2");
64  MonitorElement* meETLTrackEffPhiMtdZposD1 = igetter.get(folder_ + "TrackETLEffPhiMtdZposD1");
65  MonitorElement* meETLTrackEffPhiMtdZposD2 = igetter.get(folder_ + "TrackETLEffPhiMtdZposD2");
66  MonitorElement* meETLTrackEffPtMtdZposD1 = igetter.get(folder_ + "TrackETLEffPtMtdZposD1");
67  MonitorElement* meETLTrackEffPtMtdZposD2 = igetter.get(folder_ + "TrackETLEffPtMtdZposD2");
68 
69  if (!meBTLTrackEffEtaTot || !meBTLTrackEffPhiTot || !meBTLTrackEffPtTot || !meBTLTrackEffEtaMtd ||
70  !meBTLTrackEffPhiMtd || !meBTLTrackEffPtMtd || !meETLTrackEffEtaTotZneg || !meETLTrackEffPhiTotZneg ||
71  !meETLTrackEffPtTotZneg || !meETLTrackEffEtaMtdZnegD1 || !meETLTrackEffPhiMtdZnegD1 ||
72  !meETLTrackEffPtMtdZnegD1 || !meETLTrackEffEtaTotZpos || !meETLTrackEffPhiTotZpos || !meETLTrackEffPtTotZpos ||
73  !meETLTrackEffEtaMtdZposD1 || !meETLTrackEffPhiMtdZposD1 || !meETLTrackEffPtMtdZposD1 ||
74  !meETLTrackEffEtaMtdZnegD2 || !meETLTrackEffPhiMtdZnegD2 || !meETLTrackEffPtMtdZnegD2 ||
75  !meETLTrackEffEtaMtdZposD2 || !meETLTrackEffPhiMtdZposD2 || !meETLTrackEffPtMtdZposD2) {
76  edm::LogError("MtdGlobalRecoHarvester") << "Monitoring histograms not found!" << std::endl;
77  return;
78  }
79 
80  // --- Book histograms
81  ibook.cd(folder_);
82  meBtlEtaEff_ = ibook.book1D("BtlEtaEff",
83  " Track Efficiency VS Eta;#eta;Efficiency",
84  meBTLTrackEffEtaTot->getNbinsX(),
85  meBTLTrackEffEtaTot->getTH1()->GetXaxis()->GetXmin(),
86  meBTLTrackEffEtaTot->getTH1()->GetXaxis()->GetXmax());
87  meBtlPhiEff_ = ibook.book1D("BtlPhiEff",
88  "Track Efficiency VS Phi;#phi [rad];Efficiency",
89  meBTLTrackEffPhiTot->getNbinsX(),
90  meBTLTrackEffPhiTot->getTH1()->GetXaxis()->GetXmin(),
91  meBTLTrackEffPhiTot->getTH1()->GetXaxis()->GetXmax());
92  meBtlPtEff_ = ibook.book1D("BtlPtEff",
93  "Track Efficiency VS Pt;Pt [GeV];Efficiency",
94  meBTLTrackEffPtTot->getNbinsX(),
95  meBTLTrackEffPtTot->getTH1()->GetXaxis()->GetXmin(),
96  meBTLTrackEffPtTot->getTH1()->GetXaxis()->GetXmax());
97  meEtlEtaEff_[0] = ibook.book1D("EtlEtaEffZnegD1",
98  " Track Efficiency VS Eta (-Z, Single(topo1D)/First(topo2D) Disk);#eta;Efficiency",
99  meETLTrackEffEtaTotZneg->getNbinsX(),
100  meETLTrackEffEtaTotZneg->getTH1()->GetXaxis()->GetXmin(),
101  meETLTrackEffEtaTotZneg->getTH1()->GetXaxis()->GetXmax());
102  meEtlEtaEff_[1] = ibook.book1D("EtlEtaEffZnegD2",
103  " Track Efficiency VS Eta (-Z, Second Disk);#eta;Efficiency",
104  meETLTrackEffEtaTotZneg->getNbinsX(),
105  meETLTrackEffEtaTotZneg->getTH1()->GetXaxis()->GetXmin(),
106  meETLTrackEffEtaTotZneg->getTH1()->GetXaxis()->GetXmax());
107  meEtlPhiEff_[0] =
108  ibook.book1D("EtlPhiEffZnegD1",
109  "Track Efficiency VS Phi (-Z, Single(topo1D)/First(topo2D) Disk);#phi [rad];Efficiency",
110  meETLTrackEffPhiTotZneg->getNbinsX(),
111  meETLTrackEffPhiTotZneg->getTH1()->GetXaxis()->GetXmin(),
112  meETLTrackEffPhiTotZneg->getTH1()->GetXaxis()->GetXmax());
113  meEtlPhiEff_[1] = ibook.book1D("EtlPhiEffZnegD2",
114  "Track Efficiency VS Phi (-Z, Second Disk);#phi [rad];Efficiency",
115  meETLTrackEffPhiTotZneg->getNbinsX(),
116  meETLTrackEffPhiTotZneg->getTH1()->GetXaxis()->GetXmin(),
117  meETLTrackEffPhiTotZneg->getTH1()->GetXaxis()->GetXmax());
118  meEtlPtEff_[0] = ibook.book1D("EtlPtEffZnegD1",
119  "Track Efficiency VS Pt (-Z, Single(topo1D)/First(topo2D) Disk);Pt [GeV];Efficiency",
120  meETLTrackEffPtTotZneg->getNbinsX(),
121  meETLTrackEffPtTotZneg->getTH1()->GetXaxis()->GetXmin(),
122  meETLTrackEffPtTotZneg->getTH1()->GetXaxis()->GetXmax());
123  meEtlPtEff_[1] = ibook.book1D("EtlPtEffZnegD2",
124  "Track Efficiency VS Pt (-Z, Second Disk);Pt [GeV];Efficiency",
125  meETLTrackEffPtTotZneg->getNbinsX(),
126  meETLTrackEffPtTotZneg->getTH1()->GetXaxis()->GetXmin(),
127  meETLTrackEffPtTotZneg->getTH1()->GetXaxis()->GetXmax());
128  meEtlEtaEff_[2] = ibook.book1D("EtlEtaEffZposD1",
129  " Track Efficiency VS Eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta;Efficiency",
130  meETLTrackEffEtaTotZpos->getNbinsX(),
131  meETLTrackEffEtaTotZpos->getTH1()->GetXaxis()->GetXmin(),
132  meETLTrackEffEtaTotZpos->getTH1()->GetXaxis()->GetXmax());
133  meEtlEtaEff_[3] = ibook.book1D("EtlEtaEffZposD2",
134  " Track Efficiency VS Eta (+Z, Second Disk);#eta;Efficiency",
135  meETLTrackEffEtaTotZpos->getNbinsX(),
136  meETLTrackEffEtaTotZpos->getTH1()->GetXaxis()->GetXmin(),
137  meETLTrackEffEtaTotZpos->getTH1()->GetXaxis()->GetXmax());
138  meEtlPhiEff_[2] =
139  ibook.book1D("EtlPhiEffZposD1",
140  "Track Efficiency VS Phi (+Z, Single(topo1D)/First(topo2D) Disk);#phi [rad];Efficiency",
141  meETLTrackEffPhiTotZpos->getNbinsX(),
142  meETLTrackEffPhiTotZpos->getTH1()->GetXaxis()->GetXmin(),
143  meETLTrackEffPhiTotZpos->getTH1()->GetXaxis()->GetXmax());
144  meEtlPhiEff_[3] = ibook.book1D("EtlPhiEffZposD2",
145  "Track Efficiency VS Phi (+Z, Second Disk);#phi [rad];Efficiency",
146  meETLTrackEffPhiTotZpos->getNbinsX(),
147  meETLTrackEffPhiTotZpos->getTH1()->GetXaxis()->GetXmin(),
148  meETLTrackEffPhiTotZpos->getTH1()->GetXaxis()->GetXmax());
149  meEtlPtEff_[2] = ibook.book1D("EtlPtEffZposD1",
150  "Track Efficiency VS Pt (+Z, Single(topo1D)/First(topo2D) Disk);Pt [GeV];Efficiency",
151  meETLTrackEffPtTotZpos->getNbinsX(),
152  meETLTrackEffPtTotZpos->getTH1()->GetXaxis()->GetXmin(),
153  meETLTrackEffPtTotZpos->getTH1()->GetXaxis()->GetXmax());
154  meEtlPtEff_[3] = ibook.book1D("EtlPtEffZposD2",
155  "Track Efficiency VS Pt (+Z, Second Disk);Pt [GeV];Efficiency",
156  meETLTrackEffPtTotZpos->getNbinsX(),
157  meETLTrackEffPtTotZpos->getTH1()->GetXaxis()->GetXmin(),
158  meETLTrackEffPtTotZpos->getTH1()->GetXaxis()->GetXmax());
159  meBtlEtaEff_->getTH1()->SetMinimum(0.);
160  meBtlPhiEff_->getTH1()->SetMinimum(0.);
161  meBtlPtEff_->getTH1()->SetMinimum(0.);
162  for (int i = 0; i < 4; i++) {
163  meEtlEtaEff_[i]->getTH1()->SetMinimum(0.);
164  meEtlPhiEff_[i]->getTH1()->SetMinimum(0.);
165  meEtlPtEff_[i]->getTH1()->SetMinimum(0.);
166  }
167 
168  // --- Calculate efficiency BTL
169  for (int ibin = 1; ibin <= meBTLTrackEffEtaTot->getNbinsX(); ibin++) {
170  double eff = meBTLTrackEffEtaMtd->getBinContent(ibin) / meBTLTrackEffEtaTot->getBinContent(ibin);
171  double bin_err = sqrt((meBTLTrackEffEtaMtd->getBinContent(ibin) *
172  (meBTLTrackEffEtaTot->getBinContent(ibin) - meBTLTrackEffEtaMtd->getBinContent(ibin))) /
173  pow(meBTLTrackEffEtaTot->getBinContent(ibin), 3));
174  if (meBTLTrackEffEtaTot->getBinContent(ibin) == 0) {
175  eff = 0;
176  bin_err = 0;
177  }
178  meBtlEtaEff_->setBinContent(ibin, eff);
179  meBtlEtaEff_->setBinError(ibin, bin_err);
180  }
181  for (int ibin = 1; ibin <= meBTLTrackEffPhiTot->getNbinsX(); ibin++) {
182  double eff = meBTLTrackEffPhiMtd->getBinContent(ibin) / meBTLTrackEffPhiTot->getBinContent(ibin);
183  double bin_err = sqrt((meBTLTrackEffPhiMtd->getBinContent(ibin) *
184  (meBTLTrackEffPhiTot->getBinContent(ibin) - meBTLTrackEffPhiMtd->getBinContent(ibin))) /
185  pow(meBTLTrackEffPhiTot->getBinContent(ibin), 3));
186  if (meBTLTrackEffPhiTot->getBinContent(ibin) == 0) {
187  eff = 0;
188  bin_err = 0;
189  }
190  meBtlPhiEff_->setBinContent(ibin, eff);
191  meBtlPhiEff_->setBinError(ibin, bin_err);
192  }
193  for (int ibin = 1; ibin <= meBTLTrackEffPtTot->getNbinsX(); ibin++) {
194  double eff = meBTLTrackEffPtMtd->getBinContent(ibin) / meBTLTrackEffPtTot->getBinContent(ibin);
195  double bin_err = sqrt((meBTLTrackEffPtMtd->getBinContent(ibin) *
196  (meBTLTrackEffPtTot->getBinContent(ibin) - meBTLTrackEffPtMtd->getBinContent(ibin))) /
197  pow(meBTLTrackEffPtTot->getBinContent(ibin), 3));
198  if (meBTLTrackEffPtTot->getBinContent(ibin) == 0) {
199  eff = 0;
200  bin_err = 0;
201  }
202  meBtlPtEff_->setBinContent(ibin, eff);
203  meBtlPtEff_->setBinError(ibin, bin_err);
204  }
205  // --- Calculate efficiency ETL
206  for (int ibin = 1; ibin <= meETLTrackEffEtaTotZneg->getNbinsX(); ibin++) {
207  double eff = meETLTrackEffEtaMtdZnegD1->getBinContent(ibin) / meETLTrackEffEtaTotZneg->getBinContent(ibin);
208  double bin_err =
209  sqrt((meETLTrackEffEtaMtdZnegD1->getBinContent(ibin) *
210  (meETLTrackEffEtaTotZneg->getBinContent(ibin) - meETLTrackEffEtaMtdZnegD1->getBinContent(ibin))) /
211  pow(meETLTrackEffEtaTotZneg->getBinContent(ibin), 3));
212  if (meETLTrackEffEtaTotZneg->getBinContent(ibin) == 0) {
213  eff = 0;
214  bin_err = 0;
215  }
216  meEtlEtaEff_[0]->setBinContent(ibin, eff);
217  meEtlEtaEff_[0]->setBinError(ibin, bin_err);
218  }
219 
220  for (int ibin = 1; ibin <= meETLTrackEffEtaTotZneg->getNbinsX(); ibin++) {
221  double eff = meETLTrackEffEtaMtdZnegD2->getBinContent(ibin) / meETLTrackEffEtaTotZneg->getBinContent(ibin);
222  double bin_err =
223  sqrt((meETLTrackEffEtaMtdZnegD2->getBinContent(ibin) *
224  (meETLTrackEffEtaTotZneg->getBinContent(ibin) - meETLTrackEffEtaMtdZnegD2->getBinContent(ibin))) /
225  pow(meETLTrackEffEtaTotZneg->getBinContent(ibin), 3));
226  if (meETLTrackEffEtaTotZneg->getBinContent(ibin) == 0) {
227  eff = 0;
228  bin_err = 0;
229  }
230  meEtlEtaEff_[1]->setBinContent(ibin, eff);
231  meEtlEtaEff_[1]->setBinError(ibin, bin_err);
232  }
233 
234  for (int ibin = 1; ibin <= meETLTrackEffEtaTotZpos->getNbinsX(); ibin++) {
235  double eff = meETLTrackEffEtaMtdZposD1->getBinContent(ibin) / meETLTrackEffEtaTotZpos->getBinContent(ibin);
236  double bin_err =
237  sqrt((meETLTrackEffEtaMtdZposD1->getBinContent(ibin) *
238  (meETLTrackEffEtaTotZpos->getBinContent(ibin) - meETLTrackEffEtaMtdZposD1->getBinContent(ibin))) /
239  pow(meETLTrackEffEtaTotZpos->getBinContent(ibin), 3));
240  if (meETLTrackEffEtaTotZpos->getBinContent(ibin) == 0) {
241  eff = 0;
242  bin_err = 0;
243  }
244  meEtlEtaEff_[2]->setBinContent(ibin, eff);
245  meEtlEtaEff_[2]->setBinError(ibin, bin_err);
246  }
247 
248  for (int ibin = 1; ibin <= meETLTrackEffEtaTotZpos->getNbinsX(); ibin++) {
249  double eff = meETLTrackEffEtaMtdZposD2->getBinContent(ibin) / meETLTrackEffEtaTotZpos->getBinContent(ibin);
250  double bin_err =
251  sqrt((meETLTrackEffEtaMtdZposD2->getBinContent(ibin) *
252  (meETLTrackEffEtaTotZpos->getBinContent(ibin) - meETLTrackEffEtaMtdZposD2->getBinContent(ibin))) /
253  pow(meETLTrackEffEtaTotZpos->getBinContent(ibin), 3));
254  if (meETLTrackEffEtaTotZpos->getBinContent(ibin) == 0) {
255  eff = 0;
256  bin_err = 0;
257  }
258  meEtlEtaEff_[3]->setBinContent(ibin, eff);
259  meEtlEtaEff_[3]->setBinError(ibin, bin_err);
260  }
261 
262  for (int ibin = 1; ibin <= meETLTrackEffPhiTotZneg->getNbinsX(); ibin++) {
263  double eff = meETLTrackEffPhiMtdZnegD1->getBinContent(ibin) / meETLTrackEffPhiTotZneg->getBinContent(ibin);
264  double bin_err =
265  sqrt((meETLTrackEffPhiMtdZnegD1->getBinContent(ibin) *
266  (meETLTrackEffPhiTotZneg->getBinContent(ibin) - meETLTrackEffPhiMtdZnegD1->getBinContent(ibin))) /
267  pow(meETLTrackEffPhiTotZneg->getBinContent(ibin), 3));
268  if (meETLTrackEffPhiTotZneg->getBinContent(ibin) == 0) {
269  eff = 0;
270  bin_err = 0;
271  }
272  meEtlPhiEff_[0]->setBinContent(ibin, eff);
273  meEtlPhiEff_[0]->setBinError(ibin, bin_err);
274  }
275 
276  for (int ibin = 1; ibin <= meETLTrackEffPhiTotZneg->getNbinsX(); ibin++) {
277  double eff = meETLTrackEffPhiMtdZnegD2->getBinContent(ibin) / meETLTrackEffPhiTotZneg->getBinContent(ibin);
278  double bin_err =
279  sqrt((meETLTrackEffPhiMtdZnegD2->getBinContent(ibin) *
280  (meETLTrackEffPhiTotZneg->getBinContent(ibin) - meETLTrackEffPhiMtdZnegD2->getBinContent(ibin))) /
281  pow(meETLTrackEffPhiTotZneg->getBinContent(ibin), 3));
282  if (meETLTrackEffPhiTotZneg->getBinContent(ibin) == 0) {
283  eff = 0;
284  bin_err = 0;
285  }
286  meEtlPhiEff_[1]->setBinContent(ibin, eff);
287  meEtlPhiEff_[1]->setBinError(ibin, bin_err);
288  }
289 
290  for (int ibin = 1; ibin <= meETLTrackEffPhiTotZpos->getNbinsX(); ibin++) {
291  double eff = meETLTrackEffPhiMtdZposD1->getBinContent(ibin) / meETLTrackEffPhiTotZpos->getBinContent(ibin);
292  double bin_err =
293  sqrt((meETLTrackEffPhiMtdZposD1->getBinContent(ibin) *
294  (meETLTrackEffPhiTotZpos->getBinContent(ibin) - meETLTrackEffPhiMtdZposD1->getBinContent(ibin))) /
295  pow(meETLTrackEffPhiTotZpos->getBinContent(ibin), 3));
296  if (meETLTrackEffPhiTotZpos->getBinContent(ibin) == 0) {
297  eff = 0;
298  bin_err = 0;
299  }
300  meEtlPhiEff_[2]->setBinContent(ibin, eff);
301  meEtlPhiEff_[2]->setBinError(ibin, bin_err);
302  }
303 
304  for (int ibin = 1; ibin <= meETLTrackEffPhiTotZpos->getNbinsX(); ibin++) {
305  double eff = meETLTrackEffPhiMtdZposD2->getBinContent(ibin) / meETLTrackEffPhiTotZpos->getBinContent(ibin);
306  double bin_err =
307  sqrt((meETLTrackEffPhiMtdZposD2->getBinContent(ibin) *
308  (meETLTrackEffPhiTotZpos->getBinContent(ibin) - meETLTrackEffPhiMtdZposD2->getBinContent(ibin))) /
309  pow(meETLTrackEffPhiTotZpos->getBinContent(ibin), 3));
310  if (meETLTrackEffPhiTotZpos->getBinContent(ibin) == 0) {
311  eff = 0;
312  bin_err = 0;
313  }
314  meEtlPhiEff_[3]->setBinContent(ibin, eff);
315  meEtlPhiEff_[3]->setBinError(ibin, bin_err);
316  }
317 
318  for (int ibin = 1; ibin <= meETLTrackEffPtTotZneg->getNbinsX(); ibin++) {
319  double eff = meETLTrackEffPtMtdZnegD1->getBinContent(ibin) / meETLTrackEffPtTotZneg->getBinContent(ibin);
320  double bin_err =
321  sqrt((meETLTrackEffPtMtdZnegD1->getBinContent(ibin) *
322  (meETLTrackEffPtTotZneg->getBinContent(ibin) - meETLTrackEffPtMtdZnegD1->getBinContent(ibin))) /
323  pow(meETLTrackEffPtTotZneg->getBinContent(ibin), 3));
324  if (meETLTrackEffPtTotZneg->getBinContent(ibin) == 0) {
325  eff = 0;
326  bin_err = 0;
327  }
328  meEtlPtEff_[0]->setBinContent(ibin, eff);
329  meEtlPtEff_[0]->setBinError(ibin, bin_err);
330  }
331 
332  for (int ibin = 1; ibin <= meETLTrackEffPtTotZneg->getNbinsX(); ibin++) {
333  double eff = meETLTrackEffPtMtdZnegD2->getBinContent(ibin) / meETLTrackEffPtTotZneg->getBinContent(ibin);
334  double bin_err =
335  sqrt((meETLTrackEffPtMtdZnegD2->getBinContent(ibin) *
336  (meETLTrackEffPtTotZneg->getBinContent(ibin) - meETLTrackEffPtMtdZnegD2->getBinContent(ibin))) /
337  pow(meETLTrackEffPtTotZneg->getBinContent(ibin), 3));
338  if (meETLTrackEffPtTotZneg->getBinContent(ibin) == 0) {
339  eff = 0;
340  bin_err = 0;
341  }
342  meEtlPtEff_[1]->setBinContent(ibin, eff);
343  meEtlPtEff_[1]->setBinError(ibin, bin_err);
344  }
345 
346  for (int ibin = 1; ibin <= meETLTrackEffPtTotZpos->getNbinsX(); ibin++) {
347  double eff = meETLTrackEffPtMtdZposD1->getBinContent(ibin) / meETLTrackEffPtTotZpos->getBinContent(ibin);
348  double bin_err =
349  sqrt((meETLTrackEffPtMtdZposD1->getBinContent(ibin) *
350  (meETLTrackEffPtTotZpos->getBinContent(ibin) - meETLTrackEffPtMtdZposD1->getBinContent(ibin))) /
351  pow(meETLTrackEffPtTotZpos->getBinContent(ibin), 3));
352  if (meETLTrackEffPtTotZpos->getBinContent(ibin) == 0) {
353  eff = 0;
354  bin_err = 0;
355  }
356  meEtlPtEff_[2]->setBinContent(ibin, eff);
357  meEtlPtEff_[2]->setBinError(ibin, bin_err);
358  }
359 
360  for (int ibin = 1; ibin <= meETLTrackEffPtTotZpos->getNbinsX(); ibin++) {
361  double eff = meETLTrackEffPtMtdZposD2->getBinContent(ibin) / meETLTrackEffPtTotZpos->getBinContent(ibin);
362  double bin_err =
363  sqrt((meETLTrackEffPtMtdZposD2->getBinContent(ibin) *
364  (meETLTrackEffPtTotZpos->getBinContent(ibin) - meETLTrackEffPtMtdZposD2->getBinContent(ibin))) /
365  pow(meETLTrackEffPtTotZpos->getBinContent(ibin), 3));
366  if (meETLTrackEffPtTotZpos->getBinContent(ibin) == 0) {
367  eff = 0;
368  bin_err = 0;
369  }
370  meEtlPtEff_[3]->setBinContent(ibin, eff);
371  meEtlPtEff_[3]->setBinError(ibin, bin_err);
372  }
373 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::NavigatorBase::cd(), folder_, dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getBinContent(), dqm::impl::MonitorElement::getNbinsX(), dqm::legacy::MonitorElement::getTH1(), mps_fire::i, meBtlEtaEff_, meBtlPhiEff_, meBtlPtEff_, meEtlEtaEff_, meEtlPhiEff_, meEtlPtEff_, funct::pow(), dqm::impl::MonitorElement::setBinContent(), dqm::impl::MonitorElement::setBinError(), and mathSSE::sqrt().

◆ fillDescriptions()

void MtdGlobalRecoHarvester::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 376 of file MtdGlobalRecoHarvester.cc.

376  {
378 
379  desc.add<std::string>("folder", "MTD/GlobalReco/");
380 
381  descriptions.add("MtdGlobalRecoPostProcessor", desc);
382 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and AlCaHLTBitMon_QueryRunRegistry::string.

Member Data Documentation

◆ folder_

const std::string MtdGlobalRecoHarvester::folder_
private

Definition at line 24 of file MtdGlobalRecoHarvester.cc.

Referenced by dqmEndJob().

◆ meBtlEtaEff_

MonitorElement* MtdGlobalRecoHarvester::meBtlEtaEff_
private

Definition at line 27 of file MtdGlobalRecoHarvester.cc.

Referenced by dqmEndJob().

◆ meBtlPhiEff_

MonitorElement* MtdGlobalRecoHarvester::meBtlPhiEff_
private

Definition at line 28 of file MtdGlobalRecoHarvester.cc.

Referenced by dqmEndJob().

◆ meBtlPtEff_

MonitorElement* MtdGlobalRecoHarvester::meBtlPtEff_
private

Definition at line 29 of file MtdGlobalRecoHarvester.cc.

Referenced by dqmEndJob().

◆ meEtlEtaEff_

MonitorElement* MtdGlobalRecoHarvester::meEtlEtaEff_[4]
private

Definition at line 30 of file MtdGlobalRecoHarvester.cc.

Referenced by dqmEndJob().

◆ meEtlPhiEff_

MonitorElement* MtdGlobalRecoHarvester::meEtlPhiEff_[4]
private

Definition at line 31 of file MtdGlobalRecoHarvester.cc.

Referenced by dqmEndJob().

◆ meEtlPtEff_

MonitorElement* MtdGlobalRecoHarvester::meEtlPtEff_[4]
private

Definition at line 32 of file MtdGlobalRecoHarvester.cc.

Referenced by dqmEndJob().

MtdGlobalRecoHarvester::meBtlPtEff_
MonitorElement * meBtlPtEff_
Definition: MtdGlobalRecoHarvester.cc:29
mps_fire.i
i
Definition: mps_fire.py:428
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
dqm::legacy::MonitorElement
Definition: MonitorElement.h:461
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
MtdGlobalRecoHarvester::meEtlPtEff_
MonitorElement * meEtlPtEff_[4]
Definition: MtdGlobalRecoHarvester.cc:32
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
dqm::legacy::MonitorElement::getTH1
virtual TH1 * getTH1() const
Definition: MonitorElement.h:474
MtdGlobalRecoHarvester::folder_
const std::string folder_
Definition: MtdGlobalRecoHarvester.cc:24
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MtdGlobalRecoHarvester::meBtlEtaEff_
MonitorElement * meBtlEtaEff_
Definition: MtdGlobalRecoHarvester.cc:27
MtdGlobalRecoHarvester::meEtlEtaEff_
MonitorElement * meEtlEtaEff_[4]
Definition: MtdGlobalRecoHarvester.cc:30
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
MtdGlobalRecoHarvester::meBtlPhiEff_
MonitorElement * meBtlPhiEff_
Definition: MtdGlobalRecoHarvester.cc:28
dqm::impl::MonitorElement::setBinContent
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
Definition: MonitorElement.cc:691
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
MtdGlobalRecoHarvester::meEtlPhiEff_
MonitorElement * meEtlPhiEff_[4]
Definition: MtdGlobalRecoHarvester.cc:31
dqm::impl::MonitorElement::getNbinsX
virtual int getNbinsX() const
get # of bins in X-axis
Definition: MonitorElement.cc:574
dqm::impl::MonitorElement::setBinError
virtual void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
Definition: MonitorElement.cc:709
dqm::implementation::IGetter::get
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:651
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
dqm::impl::MonitorElement::getBinContent
virtual double getBinContent(int binx) const
get content of bin (1-D)
Definition: MonitorElement.cc:592
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98