Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TRK POG Validation] Added residuals vs phi in MTV histos #28971

Merged
merged 2 commits into from Feb 24, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions Validation/RecoMuon/python/PostProcessor_cff.py
Expand Up @@ -53,9 +53,11 @@
resolution = cms.vstring(
"dxypull_vs_eta 'dxy Pull vs #eta' dxypull_vs_eta",
"dxyres_vs_eta 'dxy Residual vs #eta' dxyres_vs_eta",
"dxyres_vs_phi 'dxy Residual vs #phi' dxyres_vs_phi",
"dxyres_vs_pt 'dxy Residual vs p_{T}' dxyres_vs_pt",
"dzpull_vs_eta 'dz Pull vs #eta' dzpull_vs_eta",
"dzres_vs_eta 'dz Residual vs #eta' dzres_vs_eta",
"dzres_vs_phi 'dz Residual vs #phi' dzres_vs_phi",
"dzres_vs_pt 'dz Residual vs p_{T}' dzres_vs_pt",
"phipull_vs_eta '#phi Pull vs #eta' phipull_vs_eta",
"phipull_vs_phi '#phi Pull vs #phi' phipull_vs_phi",
Expand Down
Expand Up @@ -29,7 +29,7 @@
struct MTVHistoProducerAlgoForTrackerHistograms {
//sim
using METype = dqm::reco::MonitorElement*;
METype h_ptSIM, h_etaSIM, h_tracksSIM, h_vertposSIM, h_bunchxSIM;
METype h_ptSIM, h_etaSIM, h_phiSIM, h_tracksSIM, h_vertposSIM, h_bunchxSIM;

//1D
std::vector<METype> h_tracks, h_fakes, h_hits, h_charge, h_algo, h_seedsFitFailed, h_seedsFitFailedFraction;
Expand Down Expand Up @@ -119,7 +119,7 @@ struct MTVHistoProducerAlgoForTrackerHistograms {
//2D
std::vector<METype> chi2_vs_nhits, etares_vs_eta;
std::vector<METype> h_ptshifteta;
std::vector<METype> ptres_vs_phi, chi2_vs_phi, nhits_vs_phi, phires_vs_phi;
std::vector<METype> dxyres_vs_phi, dzres_vs_phi, ptres_vs_phi, chi2_vs_phi, nhits_vs_phi, phires_vs_phi;

//Profile2D
std::vector<METype> ptmean_vs_eta_phi, phimean_vs_eta_phi;
Expand Down
2 changes: 2 additions & 0 deletions Validation/RecoTrack/python/PostProcessorTracker_cfi.py
Expand Up @@ -174,9 +174,11 @@ def _addNoFlow(module):
"cotThetares_vs_pt '#sigma(cot(#theta)) vs p_{T}' cotThetares_vs_pt",
"h_dxypulleta 'd_{xy} Pull vs #eta' dxypull_vs_eta",
"dxyres_vs_eta '#sigma(d_{xy}) vs #eta' dxyres_vs_eta",
"dxyres_vs_phi '#sigma(d_{xy}) vs #phi' dxyres_vs_phi",
"dxyres_vs_pt '#sigma(d_{xy}) vs p_{T}' dxyres_vs_pt",
"h_dzpulleta 'd_{z} Pull vs #eta' dzpull_vs_eta",
"dzres_vs_eta '#sigma(d_{z}) vs #eta' dzres_vs_eta",
"dzres_vs_phi '#sigma(d_{z}) vs #phi' dzres_vs_phi",
"dzres_vs_pt '#sigma(d_{z}) vs p_{T}' dzres_vs_pt",
"etares_vs_eta '#sigma(#eta) vs #eta' etares_vs_eta",
"h_phipulleta '#phi Pull vs #eta' phipull_vs_eta",
Expand Down
9 changes: 9 additions & 0 deletions Validation/RecoTrack/python/plotting/trackingPlots.py
Expand Up @@ -402,6 +402,13 @@ def _makeMVAPlots(num, hp=False):
Plot("dzres_vs_pt_Sigma", ytitle="#sigma(#delta d_{z}) (cm)", **_common),
Plot("ptres_vs_pt_Sigma", ytitle="#sigma(#delta p_{T}/p_{T})", **_common),
])
_common = {"title": "", "ylog": True, "xtitle": "TP #Phi (PCA to beamline)", "ymin": _minMaxResol, "ymax": _minMaxResol}
_resolutionsPhi = PlotGroup("resolutionsPhi", [
Plot("dxyres_vs_phi_Sigma", ytitle="#sigma(#delta d_{xy}) (cm)", **_common),
Plot("dzres_vs_phi_Sigma", ytitle="#sigma(#delta d_{z}) (cm)", **_common),
Plot("phires_vs_phi_Sigma", ytitle="#sigma(#delta #phi) (rad)", **_common),
Plot("ptres_vs_phi_Sigma", ytitle="#sigma(#delta p_{T}/p_{T})", **_common),
])

## Extended set of plots
_extDistPtEtaPhi = PlotGroup("distPtEtaPhi",
Expand Down Expand Up @@ -1220,6 +1227,7 @@ def _trackingFolders(lastDirName="Track"):
_hitsAndPt,
_pulls,
_resolutionsEta,
_resolutionsPhi,
_resolutionsPt,
_tuning,
]
Expand All @@ -1242,6 +1250,7 @@ def _trackingFolders(lastDirName="Track"):
_buildingExtendedPlots = [
_pulls,
_resolutionsEta,
_resolutionsPhi,
_resolutionsPt,
_tuning,
]
Expand Down
27 changes: 27 additions & 0 deletions Validation/RecoTrack/src/MTVHistoProducerAlgoForTracker.cc
Expand Up @@ -394,6 +394,7 @@ std::unique_ptr<RecoTrackSelectorBase> MTVHistoProducerAlgoForTracker::makeRecoT
void MTVHistoProducerAlgoForTracker::bookSimHistos(DQMStore::IBooker& ibook, Histograms& histograms) {
histograms.h_ptSIM = make1DIfLogX(ibook, useLogPt, "ptSIM", "generated p_{t}", nintPt, minPt, maxPt);
histograms.h_etaSIM = ibook.book1D("etaSIM", "generated pseudorapidity", nintEta, minEta, maxEta);
histograms.h_phiSIM = ibook.book1D("phiSIM", "generated phi", nintPhi, minPhi, maxPhi);
histograms.h_tracksSIM =
ibook.book1D("tracksSIM", "number of simulated tracks", nintTracks, minTracks, maxTracks * 10);
histograms.h_vertposSIM =
Expand Down Expand Up @@ -1305,6 +1306,17 @@ void MTVHistoProducerAlgoForTracker::bookRecoHistos(DQMStore::IBooker& ibook,
dxyRes_rangeMin,
dxyRes_rangeMax);

bookResolutionPlots2D(histograms.dxyres_vs_phi,
false,
"dxyres_vs_phi",
"dxyres_vs_phi",
nintPhi,
minPhi,
maxPhi,
dxyRes_nbin,
dxyRes_rangeMin,
dxyRes_rangeMax);

bookResolutionPlots2D(histograms.dzres_vs_eta,
false,
"dzres_vs_eta",
Expand All @@ -1327,6 +1339,17 @@ void MTVHistoProducerAlgoForTracker::bookRecoHistos(DQMStore::IBooker& ibook,
dzRes_rangeMin,
dzRes_rangeMax);

bookResolutionPlots2D(histograms.dzres_vs_phi,
false,
"dzres_vs_phi",
"dzres_vs_phi",
nintPhi,
minPhi,
maxPhi,
dzRes_nbin,
dzRes_rangeMin,
dzRes_rangeMax);

bookResolutionPlotsProfile2D(histograms.ptmean_vs_eta_phi,
"ptmean_vs_eta_phi",
"mean p_{t} vs #eta and #phi",
Expand Down Expand Up @@ -1752,6 +1775,7 @@ void MTVHistoProducerAlgoForTracker::fill_generic_simTrack_histos(const Histogra
if (bx == 0) {
histograms.h_ptSIM->Fill(sqrt(momentumTP.perp2()));
histograms.h_etaSIM->Fill(momentumTP.eta());
histograms.h_phiSIM->Fill(momentumTP.phi());
histograms.h_vertposSIM->Fill(sqrt(vertexTP.perp2()));
}
histograms.h_bunchxSIM->Fill(bx);
Expand Down Expand Up @@ -2435,8 +2459,11 @@ void MTVHistoProducerAlgoForTracker::fill_ResoAndPull_recoTrack_histos(const His
histograms.ptmean_vs_eta_phi[count]->Fill(phiRec, getEta(track.eta()), ptRec);
histograms.phimean_vs_eta_phi[count]->Fill(phiRec, getEta(track.eta()), phiRec);

histograms.dxyres_vs_phi[count]->Fill(phiSim, dxyRes);
histograms.ptres_vs_phi[count]->Fill(phiSim, ptres / ptRec);
histograms.dzres_vs_phi[count]->Fill(phiSim, dzRes);
histograms.phires_vs_phi[count]->Fill(phiSim, phiRes);

histograms.ptpull_vs_phi[count]->Fill(phiSim, ptres / ptError);
histograms.phipull_vs_phi[count]->Fill(phiSim, phiPull);
histograms.thetapull_vs_phi[count]->Fill(phiSim, thetaPull);
Expand Down
17 changes: 17 additions & 0 deletions Validation/RecoTrack/test/publicPlots/plot.py
Expand Up @@ -1010,6 +1010,23 @@ def plotResol(files, prefix, pileup, hasPU70=False):
plot = Plot(files.getHistos(folder_track+"ptres_vs_eta_Sigma"), files.getLegends(), files.getStyles())
drawPlot(prefix+"_resolution_pt_eta", plot, ytitle="p_{T} resolution / p_{T}", **_common)

# vs. phi
_common["xtitle"] = "Simulated track #phi"
_common["xmin"] = -3.15
_common["xmax"] = 3.15
_common["xlog"] = False
_common_ip = copy.copy(_common)
_common_ip["ymax"] = 0.1*10000
plot = Plot(files.getHistos(folder_track+"dxyres_vs_phi_Sigma"), files.getLegends(), files.getStyles())
plot.scale(10000)
drawPlot(prefix+"_resolution_dxy_phi", plot, ytitle="d_{0} resolution (#mum)", **_common_ip)

plot = Plot(files.getHistos(folder_track+"dzres_vs_phi_Sigma"), files.getLegends(), files.getStyles())
plot.scale(10000)
drawPlot(prefix+"_resolution_dz_phi", plot, ytitle="d_{z} resolution (#mum)", **_common_ip)

plot = Plot(files.getHistos(folder_track+"ptres_vs_phi_Sigma"), files.getLegends(), files.getStyles())
drawPlot(prefix+"_resolution_pt_phi", plot, ytitle="p_{T} resolution / p_{T}", **_common)

# vertex x
vertbox.move(dx=0.15,dy=0.05)
Expand Down