101 for (
int ibin = 1; ibin <= den->
getNbinsX(); ibin++) {
109 result->setBinContent(ibin, eff);
110 result->setBinError(ibin, bin_err);
116 for (
int ibin = 1; ibin <=
base->getNbinsX(); ibin++) {
119 base->setBinContent(ibin, newC);
120 base->setBinError(ibin, newE);
136 if (!meTrackEffPtTot || !meTrackMatchedTPEffPtTot || !meTrackMatchedTPEffPtMtd || !meTrackEffEtaTot ||
137 !meTrackMatchedTPEffEtaTot || !meTrackMatchedTPEffEtaMtd || !meRecoVtxVsLineDensity || !meRecVerNumber) {
138 edm::LogError(
"Primary4DVertexHarvester") <<
"Monitoring histograms not found!" << std::endl;
146 double nEntries = meRecoVtxVsLineDensity->
getEntries();
147 for (
int ibin = 1; ibin <= meRecoVtxVsLineDensity->
getNbinsX(); ibin++) {
149 double bin_err = meRecoVtxVsLineDensity->
getBinError(ibin) * nEvt;
151 meRecoVtxVsLineDensity->
setBinError(ibin, bin_err);
159 "Track associated to LV selected efficiency TP VS Pt;Pt [GeV];Efficiency",
161 meTrackEffPtTot->
getTH1()->GetXaxis()->GetXmin(),
162 meTrackEffPtTot->
getTH1()->GetXaxis()->GetXmax());
167 "Track associated to LV selected efficiency TP VS Eta;Eta;Efficiency",
169 meTrackEffEtaTot->
getTH1()->GetXaxis()->GetXmin(),
170 meTrackEffEtaTot->
getTH1()->GetXaxis()->GetXmax());
175 "Track associated to LV matched to TP efficiency VS Pt;Pt [GeV];Efficiency",
177 meTrackMatchedTPEffPtTot->
getTH1()->GetXaxis()->GetXmin(),
178 meTrackMatchedTPEffPtTot->
getTH1()->GetXaxis()->GetXmax());
183 "Track associated to LV matched to TP efficiency VS Eta;Eta;Efficiency",
185 meTrackMatchedTPEffEtaTot->
getTH1()->GetXaxis()->GetXmin(),
186 meTrackMatchedTPEffEtaTot->
getTH1()->GetXaxis()->GetXmax());
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 ||
227 edm::LogWarning(
"Primary4DVertexHarvester") <<
"PID Monitoring histograms not found!" << std::endl;
232 "Barrel True Pi P;P [GeV]",
234 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
235 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
242 "Endcap True Pi P;P [GeV]",
244 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
245 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
252 "Barrel True K P;P [GeV]",
254 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
255 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
262 "Endcap True K P;P [GeV]",
264 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
265 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
272 "Barrel True P P;P [GeV]",
274 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
275 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
282 "Endcap True P P;P [GeV]",
284 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
285 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
292 "Barrel True pi as pi id. fraction VS P;P [GeV]",
294 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
295 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
300 "Barrel True pi as k id. fraction VS P;P [GeV]",
302 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
303 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
308 "Barrel True pi as p id. fraction VS P;P [GeV]",
310 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
311 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
316 "Barrel True pi no PID id. fraction VS P;P [GeV]",
318 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
319 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
324 "Barrel True k as pi id. fraction VS P;P [GeV]",
326 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
327 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
332 "Barrel True k as k id. fraction VS P;P [GeV]",
334 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
335 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
340 "Barrel True k as p id. fraction VS P;P [GeV]",
342 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
343 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
348 "Barrel True k no PID id. fraction VS P;P [GeV]",
350 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
351 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
356 "Barrel True p as pi id. fraction VS P;P [GeV]",
358 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
359 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
364 "Barrel True p as k id. fraction VS P;P [GeV]",
366 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
367 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
372 "Barrel True p as p id. fraction VS P;P [GeV]",
374 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
375 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
380 "Barrel True p no PID id. fraction VS P;P [GeV]",
382 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
383 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
388 "Endcap True pi as pi id. fraction VS P;P [GeV]",
390 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
391 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
396 "Endcap True pi as k id. fraction VS P;P [GeV]",
398 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
399 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
404 "Endcap True pi as p id. fraction VS P;P [GeV]",
406 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
407 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
412 "Endcap True pi no PID id. fraction VS P;P [GeV]",
414 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
415 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
420 "Endcap True k as pi id. fraction VS P;P [GeV]",
422 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
423 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
428 "Endcap True k as k id. fraction VS P;P [GeV]",
430 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
431 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
436 "Endcap True k as p id. fraction VS P;P [GeV]",
438 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
439 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
444 "Endcap True k no PID id. fraction VS P;P [GeV]",
446 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
447 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
452 "Endcap True p as pi id. fraction VS P;P [GeV]",
454 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
455 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
460 "Endcap True p as k id. fraction VS P;P [GeV]",
462 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
463 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
468 "Endcap True p as p id. fraction VS P;P [GeV]",
470 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
471 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
476 "Endcap True p no PID id. fraction VS P;P [GeV]",
478 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
479 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
484 "Barrel Identified Pi P;P [GeV]",
486 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
487 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
493 "Endcap Identified Pi P;P [GeV]",
495 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
496 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
502 "Barrel Identified K P;P [GeV]",
504 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
505 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
511 "Endcap Identified K P;P [GeV]",
513 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
514 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
520 "Barrel Identified P P;P [GeV]",
522 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
523 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
529 "Endcap Identified P P;P [GeV]",
531 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
532 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
538 "Barrel NoPID P;P [GeV]",
540 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
541 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
547 "Endcap NoPID P;P [GeV]",
549 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
550 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
556 "Barrel pi id. fraction true pi VS P;P [GeV]",
558 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
559 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
564 "Barrel k id. fraction true k VS P;P [GeV]",
566 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
567 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
572 "Barrel p id. fraction true p VS P;P [GeV]",
574 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmin(),
575 meBarrelPIDp->
getTH1()->GetXaxis()->GetXmax());
580 "Endcap pi id. fraction true pi VS P;P [GeV]",
582 meEndcapPIDp->
getTH1()->GetXaxis()->GetXmin(),
583 meEndcapPIDp->
getTH1()->GetXaxis()->GetXmax());
588 "Endcap k id. fraction true k VS P;P [GeV]",
590 meEndcapPIDp->
getTH1()->GetXaxis()->GetXmin(),
591 meEndcapPIDp->
getTH1()->GetXaxis()->GetXmax());
596 "Endcap p id. fraction true p VS P;P [GeV]",
598 meEndcapPIDp->
getTH1()->GetXaxis()->GetXmin(),
599 meEndcapPIDp->
getTH1()->GetXaxis()->GetXmax());
610 descriptions.
add(
"Primary4DVertexPostProcessor",
desc);
MonitorElement * meBarrelPIDPAsKEff_
MonitorElement * meEndcapPIDKAsPiEff_
~Primary4DVertexHarvester() override
MonitorElement * meBarrelPIDPiNoPIDEff_
MonitorElement * meBarrelPPurity_
MonitorElement * meEndcapPIDKNoPIDEff_
MonitorElement * meBarrelAsP_
MonitorElement * meBarrelTruePi_
MonitorElement * meBarrelPIDKAsPEff_
virtual void setEntries(double nentries)
set # of entries
MonitorElement * meEndcapPPurity_
Primary4DVertexHarvester(const edm::ParameterSet &iConfig)
void computeEfficiency1D(MonitorElement *num, MonitorElement *den, MonitorElement *result)
MonitorElement * meTPEtaMatchEff_
MonitorElement * meEndcapPIDPiAsKEff_
MonitorElement * meBarrelPIDKAsKEff_
MonitorElement * meBarrelPIDPAsPiEff_
Log< level::Error, false > LogError
MonitorElement * meTPPtSelEff_
MonitorElement * meEndcapPIDPAsPiEff_
MonitorElement * meBarrelPIDKNoPIDEff_
MonitorElement * meBarrelPIDPiAsKEff_
MonitorElement * meEndcapPIDPiAsPiEff_
MonitorElement * meBarrelPIDPiAsPiEff_
MonitorElement * meEndcapPiPurity_
MonitorElement * meBarrelNoPID_
MonitorElement * meEndcapNoPID_
#define DEFINE_FWK_MODULE(type)
const std::string folder_
virtual double getEntries() const
get # of entries
MonitorElement * meEndcapAsK_
MonitorElement * meEndcapPIDPAsPEff_
MonitorElement * meBarrelPiPurity_
MonitorElement * meEndcapAsPi_
MonitorElement * meEndcapTruePi_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
MonitorElement * meEndcapPIDKAsPEff_
MonitorElement * meBarrelKPurity_
MonitorElement * meEndcapPIDPiNoPIDEff_
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * meBarrelAsPi_
void incrementME(MonitorElement *base, MonitorElement *toBeAdded)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
MonitorElement * meEndcapPIDKAsKEff_
MonitorElement * meBarrelTrueK_
virtual MonitorElement * get(std::string const &fullpath) const
virtual TH1 * getTH1() const
MonitorElement * meTPEtaSelEff_
MonitorElement * meEndcapPIDPiAsPEff_
MonitorElement * meBarrelPIDPNoPIDEff_
MonitorElement * meEndcapTrueP_
MonitorElement * meEndcapAsP_
MonitorElement * meEndcapTrueK_
MonitorElement * meEndcapPIDPNoPIDEff_
MonitorElement * meEndcapPIDPAsKEff_
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
MonitorElement * meBarrelPIDPiAsPEff_
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
MonitorElement * meBarrelTrueP_
virtual void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
MonitorElement * meBarrelAsK_
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())
MonitorElement * meBarrelPIDPAsPEff_
MonitorElement * meTPPtMatchEff_
Power< A, B >::type pow(const A &a, const B &b)
MonitorElement * meBarrelPIDKAsPiEff_
cont
load Luminosity info ##
MonitorElement * meEndcapKPurity_
virtual double getBinContent(int binx) const
get content of bin (1-D)