Skip to content

Commit e9d98fd

Browse files
committed
add a fillIPMonitor member to IPMonitoring struct
1 parent 12e5a7e commit e9d98fd

File tree

1 file changed

+50
-48
lines changed

1 file changed

+50
-48
lines changed

Alignment/OfflineValidation/plugins/GeneralPurposeVertexAnalyzer.cc

Lines changed: 50 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,18 @@
3232
#include "CommonTools/UtilAlgos/interface/TFileService.h"
3333
#include "DataFormats/BeamSpot/interface/BeamSpot.h"
3434
#include "DataFormats/Common/interface/Association.h"
35+
#include "DataFormats/Common/interface/RefToBase.h"
3536
#include "DataFormats/Common/interface/ValueMap.h"
3637
#include "DataFormats/TrackReco/interface/Track.h"
3738
#include "DataFormats/TrackReco/interface/TrackFwd.h"
3839
#include "DataFormats/VertexReco/interface/Vertex.h"
3940
#include "DataFormats/VertexReco/interface/VertexFwd.h"
40-
#include "FWCore/ServiceRegistry/interface/Service.h"
4141
#include "FWCore/Framework/interface/Event.h"
4242
#include "FWCore/Framework/interface/Frameworkfwd.h"
4343
#include "FWCore/Framework/interface/MakerMacros.h"
4444
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
4545
#include "FWCore/ParameterSet/interface/ParameterSet.h"
46+
#include "FWCore/ServiceRegistry/interface/Service.h"
4647
#include "FWCore/Utilities/interface/InputTag.h"
4748
#include "FWCore/Utilities/interface/isFinite.h"
4849

@@ -123,6 +124,8 @@ class GeneralPurposeVertexAnalyzer : public edm::one::EDAnalyzer<edm::one::Share
123124
TProfile2D *IPVsEtaVsPhi_, *IPErrVsEtaVsPhi_;
124125

125126
void bookIPMonitor(const edm::ParameterSet &, const edm::Service<TFileService> fs);
127+
void fillIPMonitor(const edm::RefToBase<reco::Track> &tk, const math::XYZPoint &pv);
128+
void print();
126129
};
127130

128131
const edm::ParameterSet conf_;
@@ -336,6 +339,48 @@ void GeneralPurposeVertexAnalyzer::IPMonitoring::bookIPMonitor(const edm::Parame
336339
fmt::format("PV tracks (p_{{T}} > {} GeV) d_{{{}}} error (#mum)", pTcut_, varname_).c_str());
337340
}
338341

342+
void GeneralPurposeVertexAnalyzer::IPMonitoring::fillIPMonitor(const edm::RefToBase<reco::Track> &tk,
343+
const math::XYZPoint &pv) {
344+
const float eta = tk->eta();
345+
const float phi = tk->phi();
346+
const float pt = tk->pt();
347+
348+
const float Dxy = tk->dxy(pv) * cmToUm;
349+
const float DxyErr = tk->dxyError() * cmToUm;
350+
351+
const float Dz = tk->dz(pv) * cmToUm;
352+
const float DzErr = tk->dzError() * cmToUm;
353+
354+
if (varname_ == "xy") {
355+
IP_->Fill(Dxy);
356+
IPVsPhi_->Fill(phi, Dxy);
357+
IPVsEta_->Fill(eta, Dxy);
358+
IPVsPt_->Fill(pt, Dxy);
359+
IPVsEtaVsPhi_->Fill(eta, phi, Dxy);
360+
361+
IPErr_->Fill(DxyErr);
362+
IPPull_->Fill(Dxy / DxyErr);
363+
IPErrVsPhi_->Fill(phi, DxyErr);
364+
IPErrVsEta_->Fill(eta, DxyErr);
365+
IPErrVsPt_->Fill(pt, DxyErr);
366+
IPErrVsEtaVsPhi_->Fill(eta, phi, DxyErr);
367+
} else if (varname_ == "z") {
368+
IP_->Fill(Dz);
369+
IPVsPhi_->Fill(phi, Dz);
370+
IPVsEta_->Fill(eta, Dz);
371+
IPVsPt_->Fill(pt, Dz);
372+
IPVsEtaVsPhi_->Fill(eta, phi, Dz);
373+
374+
IPErr_->Fill(DzErr);
375+
IPPull_->Fill(Dz / DzErr);
376+
IPErrVsPhi_->Fill(phi, DzErr);
377+
IPErrVsEta_->Fill(eta, DzErr);
378+
IPErrVsPt_->Fill(pt, DzErr);
379+
IPErrVsEtaVsPhi_->Fill(eta, phi, DzErr);
380+
}
381+
return;
382+
}
383+
339384
//
340385
// constructors and destructor
341386
//
@@ -510,9 +555,6 @@ void GeneralPurposeVertexAnalyzer::pvTracksPlots(const reco::Vertex &v) {
510555
const float chi2NDF = t->normalizedChi2();
511556
const float chi2Prob = TMath::Prob(t->chi2(), static_cast<int>(t->ndof()));
512557
const float Dxy = t->dxy(myVertex) * cmToUm;
513-
const float Dz = t->dz(myVertex) * cmToUm;
514-
const float DxyErr = t->dxyError() * cmToUm;
515-
const float DzErr = t->dzError() * cmToUm;
516558

517559
sumPT += pt2;
518560

@@ -524,60 +566,20 @@ void GeneralPurposeVertexAnalyzer::pvTracksPlots(const reco::Vertex &v) {
524566
eta_pt1->Fill(eta);
525567

526568
// dxy pT>1
527-
528-
dxy_pt1.IP_->Fill(Dxy);
529-
dxy_pt1.IPVsPhi_->Fill(phi, Dxy);
530-
dxy_pt1.IPVsEta_->Fill(eta, Dxy);
531-
dxy_pt1.IPVsEtaVsPhi_->Fill(eta, phi, Dxy);
532-
533-
dxy_pt1.IPErr_->Fill(DxyErr);
534-
dxy_pt1.IPPull_->Fill(Dxy / DxyErr);
535-
dxy_pt1.IPErrVsPhi_->Fill(phi, DxyErr);
536-
dxy_pt1.IPErrVsEta_->Fill(eta, DxyErr);
537-
dxy_pt1.IPErrVsEtaVsPhi_->Fill(eta, phi, DxyErr);
569+
dxy_pt1.fillIPMonitor(t, myVertex);
538570

539571
// dz pT>1
540-
541-
dz_pt1.IP_->Fill(Dz);
542-
dz_pt1.IPVsPhi_->Fill(phi, Dz);
543-
dz_pt1.IPVsEta_->Fill(eta, Dz);
544-
dz_pt1.IPVsEtaVsPhi_->Fill(eta, phi, Dz);
545-
546-
dz_pt1.IPErr_->Fill(DzErr);
547-
dz_pt1.IPPull_->Fill(Dz / DzErr);
548-
dz_pt1.IPErrVsPhi_->Fill(phi, DzErr);
549-
dz_pt1.IPErrVsEta_->Fill(eta, DzErr);
550-
dz_pt1.IPErrVsEtaVsPhi_->Fill(eta, phi, DzErr);
572+
dz_pt1.fillIPMonitor(t, myVertex);
551573

552574
if (pt >= 10.f) {
553575
phi_pt10->Fill(phi);
554576
eta_pt10->Fill(eta);
555577

556578
// dxy pT>10
557-
558-
dxy_pt10.IP_->Fill(Dxy);
559-
dxy_pt10.IPVsPhi_->Fill(phi, Dxy);
560-
dxy_pt10.IPVsEta_->Fill(eta, Dxy);
561-
dxy_pt10.IPVsEtaVsPhi_->Fill(eta, phi, Dxy);
562-
563-
dxy_pt10.IPErr_->Fill(DxyErr);
564-
dxy_pt10.IPPull_->Fill(Dxy / DxyErr);
565-
dxy_pt10.IPErrVsPhi_->Fill(phi, DxyErr);
566-
dxy_pt10.IPErrVsEta_->Fill(eta, DxyErr);
567-
dxy_pt10.IPErrVsEtaVsPhi_->Fill(eta, phi, DxyErr);
579+
dxy_pt10.fillIPMonitor(t, myVertex);
568580

569581
// dz pT>10
570-
571-
dz_pt10.IP_->Fill(Dz);
572-
dz_pt10.IPVsPhi_->Fill(phi, Dz);
573-
dz_pt10.IPVsEta_->Fill(eta, Dz);
574-
dz_pt10.IPVsEtaVsPhi_->Fill(eta, phi, Dz);
575-
576-
dz_pt10.IPErr_->Fill(DzErr);
577-
dz_pt10.IPPull_->Fill(Dz / DzErr);
578-
dz_pt10.IPErrVsPhi_->Fill(phi, DzErr);
579-
dz_pt10.IPErrVsEta_->Fill(eta, DzErr);
580-
dz_pt10.IPErrVsEtaVsPhi_->Fill(eta, phi, DzErr);
582+
dz_pt10.fillIPMonitor(t, myVertex);
581583
}
582584
}
583585

0 commit comments

Comments
 (0)