CMS 3D CMS Logo

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

 Primary4DVertexHarvester (const edm::ParameterSet &iConfig)
 
 ~Primary4DVertexHarvester () 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 (edm::ParameterSet const &iConfig)
 
 DQMEDHarvester ()
 
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
 
 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)
 

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<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 computeEfficiency1D (MonitorElement *num, MonitorElement *den, MonitorElement *result)
 
void incrementME (MonitorElement *base, MonitorElement *toBeAdded)
 

Private Attributes

const std::string folder_
 
MonitorElementmeBarrelAsK_
 
MonitorElementmeBarrelAsP_
 
MonitorElementmeBarrelAsPi_
 
MonitorElementmeBarrelKPurity_
 
MonitorElementmeBarrelNoPID_
 
MonitorElementmeBarrelPIDKAsKEff_
 
MonitorElementmeBarrelPIDKAsPEff_
 
MonitorElementmeBarrelPIDKAsPiEff_
 
MonitorElementmeBarrelPIDKNoPIDEff_
 
MonitorElementmeBarrelPIDPAsKEff_
 
MonitorElementmeBarrelPIDPAsPEff_
 
MonitorElementmeBarrelPIDPAsPiEff_
 
MonitorElementmeBarrelPIDPiAsKEff_
 
MonitorElementmeBarrelPIDPiAsPEff_
 
MonitorElementmeBarrelPIDPiAsPiEff_
 
MonitorElementmeBarrelPIDPiNoPIDEff_
 
MonitorElementmeBarrelPIDPNoPIDEff_
 
MonitorElementmeBarrelPiPurity_
 
MonitorElementmeBarrelPPurity_
 
MonitorElementmeBarrelTrueK_
 
MonitorElementmeBarrelTrueP_
 
MonitorElementmeBarrelTruePi_
 
MonitorElementmeEndcapAsK_
 
MonitorElementmeEndcapAsP_
 
MonitorElementmeEndcapAsPi_
 
MonitorElementmeEndcapKPurity_
 
MonitorElementmeEndcapNoPID_
 
MonitorElementmeEndcapPIDKAsKEff_
 
MonitorElementmeEndcapPIDKAsPEff_
 
MonitorElementmeEndcapPIDKAsPiEff_
 
MonitorElementmeEndcapPIDKNoPIDEff_
 
MonitorElementmeEndcapPIDPAsKEff_
 
MonitorElementmeEndcapPIDPAsPEff_
 
MonitorElementmeEndcapPIDPAsPiEff_
 
MonitorElementmeEndcapPIDPiAsKEff_
 
MonitorElementmeEndcapPIDPiAsPEff_
 
MonitorElementmeEndcapPIDPiAsPiEff_
 
MonitorElementmeEndcapPIDPiNoPIDEff_
 
MonitorElementmeEndcapPIDPNoPIDEff_
 
MonitorElementmeEndcapPiPurity_
 
MonitorElementmeEndcapPPurity_
 
MonitorElementmeEndcapTrueK_
 
MonitorElementmeEndcapTrueP_
 
MonitorElementmeEndcapTruePi_
 
MonitorElementmeMVAEtaMatchEff_
 
MonitorElementmeMVAEtaSelEff_
 
MonitorElementmeMVAPtMatchEff_
 
MonitorElementmeMVAPtSelEff_
 

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

Constructor & Destructor Documentation

◆ Primary4DVertexHarvester()

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

Definition at line 94 of file Primary4DVertexHarvester.cc.

95  : folder_(iConfig.getParameter<std::string>("folder")) {}
T getParameter(std::string const &) const
Definition: ParameterSet.h:303

◆ ~Primary4DVertexHarvester()

Primary4DVertexHarvester::~Primary4DVertexHarvester ( )
override

Definition at line 97 of file Primary4DVertexHarvester.cc.

97 {}

Member Function Documentation

◆ computeEfficiency1D()

void Primary4DVertexHarvester::computeEfficiency1D ( MonitorElement num,
MonitorElement den,
MonitorElement result 
)
private

Definition at line 100 of file Primary4DVertexHarvester.cc.

References dqm::impl::MonitorElement::getBinContent(), dqm::impl::MonitorElement::getNbinsX(), EgammaValidation_cff::num, funct::pow(), mps_fire::result, and mathSSE::sqrt().

Referenced by dqmEndJob().

100  {
101  for (int ibin = 1; ibin <= den->getNbinsX(); ibin++) {
102  double eff = num->getBinContent(ibin) / den->getBinContent(ibin);
103  double bin_err = sqrt((num->getBinContent(ibin) * (den->getBinContent(ibin) - num->getBinContent(ibin))) /
104  pow(den->getBinContent(ibin), 3));
105  if (den->getBinContent(ibin) == 0) {
106  eff = 0;
107  bin_err = 0;
108  }
109  result->setBinContent(ibin, eff);
110  result->setBinError(ibin, bin_err);
111  }
112 }
T sqrt(T t)
Definition: SSEVec.h:19
virtual int getNbinsX() const
get # of bins in X-axis
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
virtual double getBinContent(int binx) const
get content of bin (1-D)

◆ dqmEndJob()

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

Implements DQMEDHarvester.

Definition at line 125 of file Primary4DVertexHarvester.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::NavigatorBase::cd(), computeEfficiency1D(), generateEDF::cont, folder_, dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getBinContent(), dqm::impl::MonitorElement::getBinError(), dqm::impl::MonitorElement::getEntries(), dqm::impl::MonitorElement::getNbinsX(), dqm::legacy::MonitorElement::getTH1(), incrementME(), meBarrelAsK_, meBarrelAsP_, meBarrelAsPi_, meBarrelKPurity_, meBarrelNoPID_, meBarrelPIDKAsKEff_, meBarrelPIDKAsPEff_, meBarrelPIDKAsPiEff_, meBarrelPIDKNoPIDEff_, meBarrelPIDPAsKEff_, meBarrelPIDPAsPEff_, meBarrelPIDPAsPiEff_, meBarrelPIDPiAsKEff_, meBarrelPIDPiAsPEff_, meBarrelPIDPiAsPiEff_, meBarrelPIDPiNoPIDEff_, meBarrelPIDPNoPIDEff_, meBarrelPiPurity_, meBarrelPPurity_, meBarrelTrueK_, meBarrelTrueP_, meBarrelTruePi_, meEndcapAsK_, meEndcapAsP_, meEndcapAsPi_, meEndcapKPurity_, meEndcapNoPID_, meEndcapPIDKAsKEff_, meEndcapPIDKAsPEff_, meEndcapPIDKAsPiEff_, meEndcapPIDKNoPIDEff_, meEndcapPIDPAsKEff_, meEndcapPIDPAsPEff_, meEndcapPIDPAsPiEff_, meEndcapPIDPiAsKEff_, meEndcapPIDPiAsPEff_, meEndcapPIDPiAsPiEff_, meEndcapPIDPiNoPIDEff_, meEndcapPIDPNoPIDEff_, meEndcapPiPurity_, meEndcapPPurity_, meEndcapTrueK_, meEndcapTrueP_, meEndcapTruePi_, meMVAEtaMatchEff_, meMVAEtaSelEff_, meMVAPtMatchEff_, meMVAPtSelEff_, dqm::impl::MonitorElement::setBinContent(), dqm::impl::MonitorElement::setBinError(), and dqm::impl::MonitorElement::setEntries().

125  {
126  // --- Get the monitoring histograms
127  MonitorElement* meMVATrackEffPtTot = igetter.get(folder_ + "MVAEffPtTot");
128  MonitorElement* meMVATrackMatchedEffPtTot = igetter.get(folder_ + "MVAMatchedEffPtTot");
129  MonitorElement* meMVATrackMatchedEffPtMtd = igetter.get(folder_ + "MVAMatchedEffPtMtd");
130  MonitorElement* meMVATrackEffEtaTot = igetter.get(folder_ + "MVAEffEtaTot");
131  MonitorElement* meMVATrackMatchedEffEtaTot = igetter.get(folder_ + "MVAMatchedEffEtaTot");
132  MonitorElement* meMVATrackMatchedEffEtaMtd = igetter.get(folder_ + "MVAMatchedEffEtaMtd");
133  MonitorElement* meRecoVtxVsLineDensity = igetter.get(folder_ + "RecoVtxVsLineDensity");
134  MonitorElement* meRecVerNumber = igetter.get(folder_ + "RecVerNumber");
135 
136  if (!meMVATrackEffEtaTot || !meMVATrackMatchedEffEtaTot || !meMVATrackMatchedEffEtaMtd || !meMVATrackEffEtaTot ||
137  !meMVATrackMatchedEffEtaTot || !meMVATrackMatchedEffEtaMtd || !meRecoVtxVsLineDensity || !meRecVerNumber) {
138  edm::LogError("Primary4DVertexHarvester") << "Monitoring histograms not found!" << std::endl;
139  return;
140  }
141 
142  // Normalize line density plot
143  double nEvt = meRecVerNumber->getEntries();
144  if (nEvt > 0.) {
145  nEvt = 1. / nEvt;
146  double nEntries = meRecoVtxVsLineDensity->getEntries();
147  for (int ibin = 1; ibin <= meRecoVtxVsLineDensity->getNbinsX(); ibin++) {
148  double cont = meRecoVtxVsLineDensity->getBinContent(ibin) * nEvt;
149  double bin_err = meRecoVtxVsLineDensity->getBinError(ibin) * nEvt;
150  meRecoVtxVsLineDensity->setBinContent(ibin, cont);
151  meRecoVtxVsLineDensity->setBinError(ibin, bin_err);
152  }
153  meRecoVtxVsLineDensity->setEntries(nEntries);
154  }
155 
156  // --- Book histograms
157  ibook.cd(folder_);
158  meMVAPtSelEff_ = ibook.book1D("MVAPtSelEff",
159  "Track selected efficiency VS Pt;Pt [GeV];Efficiency",
160  meMVATrackEffPtTot->getNbinsX(),
161  meMVATrackEffPtTot->getTH1()->GetXaxis()->GetXmin(),
162  meMVATrackEffPtTot->getTH1()->GetXaxis()->GetXmax());
163  meMVAPtSelEff_->getTH1()->SetMinimum(0.);
164  computeEfficiency1D(meMVATrackMatchedEffPtTot, meMVATrackEffPtTot, meMVAPtSelEff_);
165 
166  meMVAEtaSelEff_ = ibook.book1D("MVAEtaSelEff",
167  "Track selected efficiency VS Eta;Eta;Efficiency",
168  meMVATrackEffEtaTot->getNbinsX(),
169  meMVATrackEffEtaTot->getTH1()->GetXaxis()->GetXmin(),
170  meMVATrackEffEtaTot->getTH1()->GetXaxis()->GetXmax());
171  meMVAEtaSelEff_->getTH1()->SetMinimum(0.);
172  computeEfficiency1D(meMVATrackMatchedEffEtaTot, meMVATrackEffEtaTot, meMVAEtaSelEff_);
173 
174  meMVAPtMatchEff_ = ibook.book1D("MVAPtMatchEff",
175  "Track matched to GEN efficiency VS Pt;Pt [GeV];Efficiency",
176  meMVATrackMatchedEffPtTot->getNbinsX(),
177  meMVATrackMatchedEffPtTot->getTH1()->GetXaxis()->GetXmin(),
178  meMVATrackMatchedEffPtTot->getTH1()->GetXaxis()->GetXmax());
179  meMVAPtMatchEff_->getTH1()->SetMinimum(0.);
180  computeEfficiency1D(meMVATrackMatchedEffPtMtd, meMVATrackMatchedEffPtTot, meMVAPtMatchEff_);
181 
182  meMVAEtaMatchEff_ = ibook.book1D("MVAEtaMatchEff",
183  "Track matched to GEN efficiency VS Eta;Eta;Efficiency",
184  meMVATrackMatchedEffEtaTot->getNbinsX(),
185  meMVATrackMatchedEffEtaTot->getTH1()->GetXaxis()->GetXmin(),
186  meMVATrackMatchedEffEtaTot->getTH1()->GetXaxis()->GetXmax());
187  meMVAEtaMatchEff_->getTH1()->SetMinimum(0.);
188  computeEfficiency1D(meMVATrackMatchedEffEtaMtd, meMVATrackMatchedEffEtaTot, meMVAEtaMatchEff_);
189 
190  MonitorElement* meBarrelPIDp = igetter.get(folder_ + "BarrelPIDp");
191  MonitorElement* meEndcapPIDp = igetter.get(folder_ + "EndcapPIDp");
192 
193  MonitorElement* meBarrelTruePiNoPID = igetter.get(folder_ + "BarrelTruePiNoPID");
194  MonitorElement* meBarrelTrueKNoPID = igetter.get(folder_ + "BarrelTrueKNoPID");
195  MonitorElement* meBarrelTruePNoPID = igetter.get(folder_ + "BarrelTruePNoPID");
196  MonitorElement* meEndcapTruePiNoPID = igetter.get(folder_ + "EndcapTruePiNoPID");
197  MonitorElement* meEndcapTrueKNoPID = igetter.get(folder_ + "EndcapTrueKNoPID");
198  MonitorElement* meEndcapTruePNoPID = igetter.get(folder_ + "EndcapTruePNoPID");
199 
200  MonitorElement* meBarrelTruePiAsPi = igetter.get(folder_ + "BarrelTruePiAsPi");
201  MonitorElement* meBarrelTrueKAsPi = igetter.get(folder_ + "BarrelTrueKAsPi");
202  MonitorElement* meBarrelTruePAsPi = igetter.get(folder_ + "BarrelTruePAsPi");
203  MonitorElement* meEndcapTruePiAsPi = igetter.get(folder_ + "EndcapTruePiAsPi");
204  MonitorElement* meEndcapTrueKAsPi = igetter.get(folder_ + "EndcapTrueKAsPi");
205  MonitorElement* meEndcapTruePAsPi = igetter.get(folder_ + "EndcapTruePAsPi");
206 
207  MonitorElement* meBarrelTruePiAsK = igetter.get(folder_ + "BarrelTruePiAsK");
208  MonitorElement* meBarrelTrueKAsK = igetter.get(folder_ + "BarrelTrueKAsK");
209  MonitorElement* meBarrelTruePAsK = igetter.get(folder_ + "BarrelTruePAsK");
210  MonitorElement* meEndcapTruePiAsK = igetter.get(folder_ + "EndcapTruePiAsK");
211  MonitorElement* meEndcapTrueKAsK = igetter.get(folder_ + "EndcapTrueKAsK");
212  MonitorElement* meEndcapTruePAsK = igetter.get(folder_ + "EndcapTruePAsK");
213 
214  MonitorElement* meBarrelTruePiAsP = igetter.get(folder_ + "BarrelTruePiAsP");
215  MonitorElement* meBarrelTrueKAsP = igetter.get(folder_ + "BarrelTrueKAsP");
216  MonitorElement* meBarrelTruePAsP = igetter.get(folder_ + "BarrelTruePAsP");
217  MonitorElement* meEndcapTruePiAsP = igetter.get(folder_ + "EndcapTruePiAsP");
218  MonitorElement* meEndcapTrueKAsP = igetter.get(folder_ + "EndcapTrueKAsP");
219  MonitorElement* meEndcapTruePAsP = igetter.get(folder_ + "EndcapTruePAsP");
220 
221  if (!meBarrelPIDp || !meEndcapPIDp || !meBarrelTruePiNoPID || !meBarrelTrueKNoPID || !meBarrelTruePNoPID ||
222  !meEndcapTruePiNoPID || !meEndcapTrueKNoPID || !meEndcapTruePNoPID || !meBarrelTruePiAsPi || !meBarrelTrueKAsPi ||
223  !meBarrelTruePAsPi || !meEndcapTruePiAsPi || !meEndcapTrueKAsPi || !meEndcapTruePAsPi || !meBarrelTruePiAsK ||
224  !meBarrelTrueKAsK || !meBarrelTruePAsK || !meEndcapTruePiAsK || !meEndcapTrueKAsK || !meEndcapTruePAsK ||
225  !meBarrelTruePiAsP || !meBarrelTrueKAsP || !meBarrelTruePAsP || !meEndcapTruePiAsP || !meEndcapTrueKAsP ||
226  !meEndcapTruePAsP) {
227  edm::LogWarning("Primary4DVertexHarvester") << "PID Monitoring histograms not found!" << std::endl;
228  return;
229  }
230 
231  meBarrelTruePi_ = ibook.book1D("BarrelTruePi",
232  "Barrel True Pi P;P [GeV]",
233  meBarrelPIDp->getNbinsX(),
234  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
235  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
236  incrementME(meBarrelTruePi_, meBarrelTruePiAsPi);
237  incrementME(meBarrelTruePi_, meBarrelTruePiAsK);
238  incrementME(meBarrelTruePi_, meBarrelTruePiAsP);
239  incrementME(meBarrelTruePi_, meBarrelTruePiNoPID);
240 
241  meEndcapTruePi_ = ibook.book1D("EndcapTruePi",
242  "Endcap True Pi P;P [GeV]",
243  meBarrelPIDp->getNbinsX(),
244  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
245  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
246  incrementME(meEndcapTruePi_, meEndcapTruePiAsPi);
247  incrementME(meEndcapTruePi_, meEndcapTruePiAsK);
248  incrementME(meEndcapTruePi_, meEndcapTruePiAsP);
249  incrementME(meEndcapTruePi_, meEndcapTruePiNoPID);
250 
251  meBarrelTrueK_ = ibook.book1D("BarrelTrueK",
252  "Barrel True K P;P [GeV]",
253  meBarrelPIDp->getNbinsX(),
254  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
255  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
256  incrementME(meBarrelTrueK_, meBarrelTrueKAsPi);
257  incrementME(meBarrelTrueK_, meBarrelTrueKAsK);
258  incrementME(meBarrelTrueK_, meBarrelTrueKAsP);
259  incrementME(meBarrelTrueK_, meBarrelTrueKNoPID);
260 
261  meEndcapTrueK_ = ibook.book1D("EndcapTrueK",
262  "Endcap True K P;P [GeV]",
263  meBarrelPIDp->getNbinsX(),
264  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
265  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
266  incrementME(meEndcapTrueK_, meEndcapTrueKAsPi);
267  incrementME(meEndcapTrueK_, meEndcapTrueKAsK);
268  incrementME(meEndcapTrueK_, meEndcapTrueKAsP);
269  incrementME(meEndcapTrueK_, meEndcapTrueKNoPID);
270 
271  meBarrelTrueP_ = ibook.book1D("BarrelTrueP",
272  "Barrel True P P;P [GeV]",
273  meBarrelPIDp->getNbinsX(),
274  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
275  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
276  incrementME(meBarrelTrueP_, meBarrelTruePAsPi);
277  incrementME(meBarrelTrueP_, meBarrelTruePAsK);
278  incrementME(meBarrelTrueP_, meBarrelTruePAsP);
279  incrementME(meBarrelTrueP_, meBarrelTruePNoPID);
280 
281  meEndcapTrueP_ = ibook.book1D("EndcapTrueP",
282  "Endcap True P P;P [GeV]",
283  meBarrelPIDp->getNbinsX(),
284  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
285  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
286  incrementME(meEndcapTrueP_, meEndcapTruePAsPi);
287  incrementME(meEndcapTrueP_, meEndcapTruePAsK);
288  incrementME(meEndcapTrueP_, meEndcapTruePAsP);
289  incrementME(meEndcapTrueP_, meEndcapTruePNoPID);
290 
291  meBarrelPIDPiAsPiEff_ = ibook.book1D("BarrelPIDPiAsPiEff",
292  "Barrel True pi as pi id. fraction VS P;P [GeV]",
293  meBarrelPIDp->getNbinsX(),
294  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
295  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
296  meBarrelPIDPiAsPiEff_->getTH1()->SetMinimum(0.);
298 
299  meBarrelPIDPiAsKEff_ = ibook.book1D("BarrelPIDPiAsKEff",
300  "Barrel True pi as k id. fraction VS P;P [GeV]",
301  meBarrelPIDp->getNbinsX(),
302  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
303  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
304  meBarrelPIDPiAsKEff_->getTH1()->SetMinimum(0.);
306 
307  meBarrelPIDPiAsPEff_ = ibook.book1D("BarrelPIDPiAsPEff",
308  "Barrel True pi as p id. fraction VS P;P [GeV]",
309  meBarrelPIDp->getNbinsX(),
310  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
311  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
312  meBarrelPIDPiAsPEff_->getTH1()->SetMinimum(0.);
314 
315  meBarrelPIDPiNoPIDEff_ = ibook.book1D("BarrelPIDPiNoPIDEff",
316  "Barrel True pi no PID id. fraction VS P;P [GeV]",
317  meBarrelPIDp->getNbinsX(),
318  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
319  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
320  meBarrelPIDPiNoPIDEff_->getTH1()->SetMinimum(0.);
322 
323  meBarrelPIDKAsPiEff_ = ibook.book1D("BarrelPIDKAsPiEff",
324  "Barrel True k as pi id. fraction VS P;P [GeV]",
325  meBarrelPIDp->getNbinsX(),
326  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
327  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
328  meBarrelPIDKAsPiEff_->getTH1()->SetMinimum(0.);
330 
331  meBarrelPIDKAsKEff_ = ibook.book1D("BarrelPIDKAsKEff",
332  "Barrel True k as k id. fraction VS P;P [GeV]",
333  meBarrelPIDp->getNbinsX(),
334  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
335  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
336  meBarrelPIDKAsKEff_->getTH1()->SetMinimum(0.);
338 
339  meBarrelPIDKAsPEff_ = ibook.book1D("BarrelPIDKAsPEff",
340  "Barrel True k as p id. fraction VS P;P [GeV]",
341  meBarrelPIDp->getNbinsX(),
342  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
343  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
344  meBarrelPIDKAsPEff_->getTH1()->SetMinimum(0.);
346 
347  meBarrelPIDKNoPIDEff_ = ibook.book1D("BarrelPIDKNoPIDEff",
348  "Barrel True k no PID id. fraction VS P;P [GeV]",
349  meBarrelPIDp->getNbinsX(),
350  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
351  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
352  meBarrelPIDKNoPIDEff_->getTH1()->SetMinimum(0.);
354 
355  meBarrelPIDPAsPiEff_ = ibook.book1D("BarrelPIDPAsPiEff",
356  "Barrel True p as pi id. fraction VS P;P [GeV]",
357  meBarrelPIDp->getNbinsX(),
358  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
359  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
360  meBarrelPIDPAsPiEff_->getTH1()->SetMinimum(0.);
362 
363  meBarrelPIDPAsKEff_ = ibook.book1D("BarrelPIDPAsKEff",
364  "Barrel True p as k id. fraction VS P;P [GeV]",
365  meBarrelPIDp->getNbinsX(),
366  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
367  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
368  meBarrelPIDPAsKEff_->getTH1()->SetMinimum(0.);
370 
371  meBarrelPIDPAsPEff_ = ibook.book1D("BarrelPIDPAsPEff",
372  "Barrel True p as p id. fraction VS P;P [GeV]",
373  meBarrelPIDp->getNbinsX(),
374  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
375  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
376  meBarrelPIDPAsPEff_->getTH1()->SetMinimum(0.);
378 
379  meBarrelPIDPNoPIDEff_ = ibook.book1D("BarrelPIDPNoPIDEff",
380  "Barrel True p no PID id. fraction VS P;P [GeV]",
381  meBarrelPIDp->getNbinsX(),
382  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
383  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
384  meBarrelPIDPNoPIDEff_->getTH1()->SetMinimum(0.);
386 
387  meEndcapPIDPiAsPiEff_ = ibook.book1D("EndcapPIDPiAsPiEff",
388  "Endcap True pi as pi id. fraction VS P;P [GeV]",
389  meBarrelPIDp->getNbinsX(),
390  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
391  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
392  meEndcapPIDPiAsPiEff_->getTH1()->SetMinimum(0.);
394 
395  meEndcapPIDPiAsKEff_ = ibook.book1D("EndcapPIDPiAsKEff",
396  "Endcap True pi as k id. fraction VS P;P [GeV]",
397  meBarrelPIDp->getNbinsX(),
398  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
399  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
400  meEndcapPIDPiAsKEff_->getTH1()->SetMinimum(0.);
402 
403  meEndcapPIDPiAsPEff_ = ibook.book1D("EndcapPIDPiAsPEff",
404  "Endcap True pi as p id. fraction VS P;P [GeV]",
405  meBarrelPIDp->getNbinsX(),
406  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
407  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
408  meEndcapPIDPiAsPEff_->getTH1()->SetMinimum(0.);
410 
411  meEndcapPIDPiNoPIDEff_ = ibook.book1D("EndcapPIDPiNoPIDEff",
412  "Endcap True pi no PID id. fraction VS P;P [GeV]",
413  meBarrelPIDp->getNbinsX(),
414  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
415  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
416  meEndcapPIDPiNoPIDEff_->getTH1()->SetMinimum(0.);
418 
419  meEndcapPIDKAsPiEff_ = ibook.book1D("EndcapPIDKAsPiEff",
420  "Endcap True k as pi id. fraction VS P;P [GeV]",
421  meBarrelPIDp->getNbinsX(),
422  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
423  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
424  meEndcapPIDKAsPiEff_->getTH1()->SetMinimum(0.);
426 
427  meEndcapPIDKAsKEff_ = ibook.book1D("EndcapPIDKAsKEff",
428  "Endcap True k as k id. fraction VS P;P [GeV]",
429  meBarrelPIDp->getNbinsX(),
430  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
431  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
432  meEndcapPIDKAsKEff_->getTH1()->SetMinimum(0.);
434 
435  meEndcapPIDKAsPEff_ = ibook.book1D("EndcapPIDKAsPEff",
436  "Endcap True k as p id. fraction VS P;P [GeV]",
437  meBarrelPIDp->getNbinsX(),
438  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
439  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
440  meEndcapPIDKAsPEff_->getTH1()->SetMinimum(0.);
442 
443  meEndcapPIDKNoPIDEff_ = ibook.book1D("EndcapPIDKNoPIDEff",
444  "Endcap True k no PID id. fraction VS P;P [GeV]",
445  meBarrelPIDp->getNbinsX(),
446  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
447  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
448  meEndcapPIDKNoPIDEff_->getTH1()->SetMinimum(0.);
450 
451  meEndcapPIDPAsPiEff_ = ibook.book1D("EndcapPIDPAsPiEff",
452  "Endcap True p as pi id. fraction VS P;P [GeV]",
453  meBarrelPIDp->getNbinsX(),
454  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
455  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
456  meEndcapPIDPAsPiEff_->getTH1()->SetMinimum(0.);
458 
459  meEndcapPIDPAsKEff_ = ibook.book1D("EndcapPIDPAsKEff",
460  "Endcap True p as k id. fraction VS P;P [GeV]",
461  meBarrelPIDp->getNbinsX(),
462  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
463  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
464  meEndcapPIDPAsKEff_->getTH1()->SetMinimum(0.);
466 
467  meEndcapPIDPAsPEff_ = ibook.book1D("EndcapPIDPAsPEff",
468  "Endcap True p as p id. fraction VS P;P [GeV]",
469  meBarrelPIDp->getNbinsX(),
470  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
471  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
472  meEndcapPIDPAsPEff_->getTH1()->SetMinimum(0.);
474 
475  meEndcapPIDPNoPIDEff_ = ibook.book1D("EndcapPIDPNoPIDEff",
476  "Endcap True p no PID id. fraction VS P;P [GeV]",
477  meBarrelPIDp->getNbinsX(),
478  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
479  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
480  meEndcapPIDPNoPIDEff_->getTH1()->SetMinimum(0.);
482 
483  meBarrelAsPi_ = ibook.book1D("BarrelAsPi",
484  "Barrel Identified Pi P;P [GeV]",
485  meBarrelPIDp->getNbinsX(),
486  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
487  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
488  incrementME(meBarrelAsPi_, meBarrelTruePiAsPi);
489  incrementME(meBarrelAsPi_, meBarrelTrueKAsPi);
490  incrementME(meBarrelAsPi_, meBarrelTruePAsPi);
491 
492  meEndcapAsPi_ = ibook.book1D("EndcapAsPi",
493  "Endcap Identified Pi P;P [GeV]",
494  meBarrelPIDp->getNbinsX(),
495  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
496  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
497  incrementME(meEndcapAsPi_, meEndcapTruePiAsPi);
498  incrementME(meEndcapAsPi_, meEndcapTrueKAsPi);
499  incrementME(meEndcapAsPi_, meEndcapTruePAsPi);
500 
501  meBarrelAsK_ = ibook.book1D("BarrelAsK",
502  "Barrel Identified K P;P [GeV]",
503  meBarrelPIDp->getNbinsX(),
504  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
505  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
506  incrementME(meBarrelAsK_, meBarrelTruePiAsK);
507  incrementME(meBarrelAsK_, meBarrelTrueKAsK);
508  incrementME(meBarrelAsK_, meBarrelTruePAsK);
509 
510  meEndcapAsK_ = ibook.book1D("EndcapAsK",
511  "Endcap Identified K P;P [GeV]",
512  meBarrelPIDp->getNbinsX(),
513  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
514  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
515  incrementME(meEndcapAsK_, meEndcapTruePiAsK);
516  incrementME(meEndcapAsK_, meEndcapTrueKAsK);
517  incrementME(meEndcapAsK_, meEndcapTruePAsK);
518 
519  meBarrelAsP_ = ibook.book1D("BarrelAsP",
520  "Barrel Identified P P;P [GeV]",
521  meBarrelPIDp->getNbinsX(),
522  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
523  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
524  incrementME(meBarrelAsP_, meBarrelTruePiAsP);
525  incrementME(meBarrelAsP_, meBarrelTrueKAsP);
526  incrementME(meBarrelAsP_, meBarrelTruePAsP);
527 
528  meEndcapAsP_ = ibook.book1D("EndcapAsP",
529  "Endcap Identified P P;P [GeV]",
530  meBarrelPIDp->getNbinsX(),
531  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
532  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
533  incrementME(meEndcapAsP_, meEndcapTruePiAsP);
534  incrementME(meEndcapAsP_, meEndcapTrueKAsP);
535  incrementME(meEndcapAsP_, meEndcapTruePAsP);
536 
537  meBarrelNoPID_ = ibook.book1D("BarrelNoPID",
538  "Barrel NoPID P;P [GeV]",
539  meBarrelPIDp->getNbinsX(),
540  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
541  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
542  incrementME(meBarrelNoPID_, meBarrelTruePiNoPID);
543  incrementME(meBarrelNoPID_, meBarrelTrueKNoPID);
544  incrementME(meBarrelNoPID_, meBarrelTruePNoPID);
545 
546  meEndcapNoPID_ = ibook.book1D("EndcapNoPID",
547  "Endcap NoPID P;P [GeV]",
548  meBarrelPIDp->getNbinsX(),
549  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
550  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
551  incrementME(meEndcapNoPID_, meEndcapTruePiNoPID);
552  incrementME(meEndcapNoPID_, meEndcapTrueKNoPID);
553  incrementME(meEndcapNoPID_, meEndcapTruePNoPID);
554 
555  meBarrelPiPurity_ = ibook.book1D("BarrelPiPurity",
556  "Barrel pi id. fraction true pi VS P;P [GeV]",
557  meBarrelPIDp->getNbinsX(),
558  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
559  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
560  meBarrelPiPurity_->getTH1()->SetMinimum(0.);
562 
563  meBarrelKPurity_ = ibook.book1D("BarrelKPurity",
564  "Barrel k id. fraction true k VS P;P [GeV]",
565  meBarrelPIDp->getNbinsX(),
566  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
567  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
568  meBarrelKPurity_->getTH1()->SetMinimum(0.);
570 
571  meBarrelPPurity_ = ibook.book1D("BarrelPPurity",
572  "Barrel p id. fraction true p VS P;P [GeV]",
573  meBarrelPIDp->getNbinsX(),
574  meBarrelPIDp->getTH1()->GetXaxis()->GetXmin(),
575  meBarrelPIDp->getTH1()->GetXaxis()->GetXmax());
576  meBarrelPPurity_->getTH1()->SetMinimum(0.);
578 
579  meEndcapPiPurity_ = ibook.book1D("EndcapPiPurity",
580  "Endcap pi id. fraction true pi VS P;P [GeV]",
581  meEndcapPIDp->getNbinsX(),
582  meEndcapPIDp->getTH1()->GetXaxis()->GetXmin(),
583  meEndcapPIDp->getTH1()->GetXaxis()->GetXmax());
584  meEndcapPiPurity_->getTH1()->SetMinimum(0.);
586 
587  meEndcapKPurity_ = ibook.book1D("EndcapKPurity",
588  "Endcap k id. fraction true k VS P;P [GeV]",
589  meEndcapPIDp->getNbinsX(),
590  meEndcapPIDp->getTH1()->GetXaxis()->GetXmin(),
591  meEndcapPIDp->getTH1()->GetXaxis()->GetXmax());
592  meEndcapKPurity_->getTH1()->SetMinimum(0.);
594 
595  meEndcapPPurity_ = ibook.book1D("EndcapPPurity",
596  "Endcap p id. fraction true p VS P;P [GeV]",
597  meEndcapPIDp->getNbinsX(),
598  meEndcapPIDp->getTH1()->GetXaxis()->GetXmin(),
599  meEndcapPIDp->getTH1()->GetXaxis()->GetXmax());
600  meEndcapPPurity_->getTH1()->SetMinimum(0.);
602 }
virtual void setEntries(double nentries)
set # of entries
void computeEfficiency1D(MonitorElement *num, MonitorElement *den, MonitorElement *result)
Log< level::Error, false > LogError
virtual double getEntries() const
get # of entries
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
void incrementME(MonitorElement *base, MonitorElement *toBeAdded)
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:690
virtual TH1 * getTH1() const
virtual int getNbinsX() const
get # of bins in X-axis
virtual double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
virtual void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
Log< level::Warning, false > LogWarning
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
cont
load Luminosity info ##
Definition: generateEDF.py:628
virtual double getBinContent(int binx) const
get content of bin (1-D)

◆ fillDescriptions()

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

Definition at line 605 of file Primary4DVertexHarvester.cc.

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

605  {
607 
608  desc.add<std::string>("folder", "MTD/Vertices/");
609 
610  descriptions.add("Primary4DVertexPostProcessor", desc);
611 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ incrementME()

void Primary4DVertexHarvester::incrementME ( MonitorElement base,
MonitorElement toBeAdded 
)
private

Definition at line 115 of file Primary4DVertexHarvester.cc.

References newFWLiteAna::base, dqm::impl::MonitorElement::getBinContent(), and mathSSE::sqrt().

Referenced by dqmEndJob().

115  {
116  for (int ibin = 1; ibin <= base->getNbinsX(); ibin++) {
117  double newC = base->getBinContent(ibin) + toBeAdded->getBinContent(ibin);
118  double newE = std::sqrt(newC);
119  base->setBinContent(ibin, newC);
120  base->setBinError(ibin, newE);
121  }
122 }
base
Main Program
Definition: newFWLiteAna.py:92
T sqrt(T t)
Definition: SSEVec.h:19
virtual double getBinContent(int binx) const
get content of bin (1-D)

Member Data Documentation

◆ folder_

const std::string Primary4DVertexHarvester::folder_
private

Definition at line 28 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelAsK_

MonitorElement* Primary4DVertexHarvester::meBarrelAsK_
private

Definition at line 45 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelAsP_

MonitorElement* Primary4DVertexHarvester::meBarrelAsP_
private

Definition at line 46 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelAsPi_

MonitorElement* Primary4DVertexHarvester::meBarrelAsPi_
private

Definition at line 44 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelKPurity_

MonitorElement* Primary4DVertexHarvester::meBarrelKPurity_
private

Definition at line 85 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelNoPID_

MonitorElement* Primary4DVertexHarvester::meBarrelNoPID_
private

Definition at line 47 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDKAsKEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDKAsKEff_
private

Definition at line 60 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDKAsPEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDKAsPEff_
private

Definition at line 61 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDKAsPiEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDKAsPiEff_
private

Definition at line 59 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDKNoPIDEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDKNoPIDEff_
private

Definition at line 62 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPAsKEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPAsKEff_
private

Definition at line 65 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPAsPEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPAsPEff_
private

Definition at line 66 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPAsPiEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPAsPiEff_
private

Definition at line 64 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPiAsKEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPiAsKEff_
private

Definition at line 55 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPiAsPEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPiAsPEff_
private

Definition at line 56 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPiAsPiEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPiAsPiEff_
private

Definition at line 54 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPiNoPIDEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPiNoPIDEff_
private

Definition at line 57 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPIDPNoPIDEff_

MonitorElement* Primary4DVertexHarvester::meBarrelPIDPNoPIDEff_
private

Definition at line 67 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPiPurity_

MonitorElement* Primary4DVertexHarvester::meBarrelPiPurity_
private

Definition at line 84 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelPPurity_

MonitorElement* Primary4DVertexHarvester::meBarrelPPurity_
private

Definition at line 86 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelTrueK_

MonitorElement* Primary4DVertexHarvester::meBarrelTrueK_
private

Definition at line 37 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelTrueP_

MonitorElement* Primary4DVertexHarvester::meBarrelTrueP_
private

Definition at line 38 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meBarrelTruePi_

MonitorElement* Primary4DVertexHarvester::meBarrelTruePi_
private

Definition at line 36 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapAsK_

MonitorElement* Primary4DVertexHarvester::meEndcapAsK_
private

Definition at line 50 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapAsP_

MonitorElement* Primary4DVertexHarvester::meEndcapAsP_
private

Definition at line 51 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapAsPi_

MonitorElement* Primary4DVertexHarvester::meEndcapAsPi_
private

Definition at line 49 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapKPurity_

MonitorElement* Primary4DVertexHarvester::meEndcapKPurity_
private

Definition at line 89 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapNoPID_

MonitorElement* Primary4DVertexHarvester::meEndcapNoPID_
private

Definition at line 52 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDKAsKEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDKAsKEff_
private

Definition at line 75 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDKAsPEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDKAsPEff_
private

Definition at line 76 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDKAsPiEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDKAsPiEff_
private

Definition at line 74 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDKNoPIDEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDKNoPIDEff_
private

Definition at line 77 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPAsKEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPAsKEff_
private

Definition at line 80 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPAsPEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPAsPEff_
private

Definition at line 81 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPAsPiEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPAsPiEff_
private

Definition at line 79 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPiAsKEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPiAsKEff_
private

Definition at line 70 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPiAsPEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPiAsPEff_
private

Definition at line 71 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPiAsPiEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPiAsPiEff_
private

Definition at line 69 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPiNoPIDEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPiNoPIDEff_
private

Definition at line 72 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPIDPNoPIDEff_

MonitorElement* Primary4DVertexHarvester::meEndcapPIDPNoPIDEff_
private

Definition at line 82 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPiPurity_

MonitorElement* Primary4DVertexHarvester::meEndcapPiPurity_
private

Definition at line 88 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapPPurity_

MonitorElement* Primary4DVertexHarvester::meEndcapPPurity_
private

Definition at line 90 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapTrueK_

MonitorElement* Primary4DVertexHarvester::meEndcapTrueK_
private

Definition at line 41 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapTrueP_

MonitorElement* Primary4DVertexHarvester::meEndcapTrueP_
private

Definition at line 42 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meEndcapTruePi_

MonitorElement* Primary4DVertexHarvester::meEndcapTruePi_
private

Definition at line 40 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meMVAEtaMatchEff_

MonitorElement* Primary4DVertexHarvester::meMVAEtaMatchEff_
private

Definition at line 34 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meMVAEtaSelEff_

MonitorElement* Primary4DVertexHarvester::meMVAEtaSelEff_
private

Definition at line 32 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meMVAPtMatchEff_

MonitorElement* Primary4DVertexHarvester::meMVAPtMatchEff_
private

Definition at line 33 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().

◆ meMVAPtSelEff_

MonitorElement* Primary4DVertexHarvester::meMVAPtSelEff_
private

Definition at line 31 of file Primary4DVertexHarvester.cc.

Referenced by dqmEndJob().