Skip to content

Commit ab28ccf

Browse files
committed
add plot to monitor candidate with no track / tracskter
1 parent 617fdcd commit ab28ccf

File tree

3 files changed

+144
-7
lines changed

3 files changed

+144
-7
lines changed

Validation/HGCalValidation/interface/TICLCandidateValidator.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,23 @@ struct TICLCandidateValidatorHistograms {
115115
std::vector<dqm::reco::MonitorElement*> h_neut_candidate_charge;
116116
std::vector<dqm::reco::MonitorElement*> h_neut_candidate_pdgId;
117117
std::vector<dqm::reco::MonitorElement*> h_neut_candidate_partType;
118+
119+
std::vector<dqm::reco::MonitorElement*> h_neut_energy_noTrackster;
120+
std::vector<dqm::reco::MonitorElement*> h_neut_pt_noTrackster;
121+
std::vector<dqm::reco::MonitorElement*> h_neut_eta_noTrackster;
122+
std::vector<dqm::reco::MonitorElement*> h_neut_phi_noTrackster;
123+
std::vector<dqm::reco::MonitorElement*> h_chg_energy_noTrack;
124+
std::vector<dqm::reco::MonitorElement*> h_chg_pt_noTrack;
125+
std::vector<dqm::reco::MonitorElement*> h_chg_eta_noTrack;
126+
std::vector<dqm::reco::MonitorElement*> h_chg_phi_noTrack;
127+
std::vector<dqm::reco::MonitorElement*> h_chg_energy_noGoodTrack;
128+
std::vector<dqm::reco::MonitorElement*> h_chg_pt_noGoodTrack;
129+
std::vector<dqm::reco::MonitorElement*> h_chg_eta_noGoodTrack;
130+
std::vector<dqm::reco::MonitorElement*> h_chg_phi_noGoodTrack;
131+
std::vector<dqm::reco::MonitorElement*> h_chg_energy_noTrackster;
132+
std::vector<dqm::reco::MonitorElement*> h_chg_pt_noTrackster;
133+
std::vector<dqm::reco::MonitorElement*> h_chg_eta_noTrackster;
134+
std::vector<dqm::reco::MonitorElement*> h_chg_phi_noTrackster;
118135
};
119136

120137
class TICLCandidateValidator {

Validation/HGCalValidation/python/hgcalPlots.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1836,7 +1836,6 @@
18361836
for var in ["pt", "energy", "eta", "phi"]:
18371837
for cut in ["track", "pid", "energy"]:
18381838
if cut=="track" and ct in ["neutral_hadrons", "neutral_pions", "photons"]: continue
1839-
#options = (_common_eff_fake | _xminmaxEn) if var=="energy" else ( (_common_eff_fake | _xminmaxPt) if var=="pt" else _common_eff_fake)
18401839
cand_eff_plots.extend([Plot("eff_"+ct+"_"+cut+"_"+var, title=cut + " - efficiency for "+ct.replace("_", " ")+" vs "+var, ytitle="Efficiency", **_common_eff_fake)])
18411840
_all_cand_eff_plots.append(cand_eff_plots)
18421841

@@ -1855,7 +1854,6 @@
18551854
for var in ["pt", "energy", "eta", "phi"]:
18561855
for cut in ["track", "pid", "energy", "total"]:
18571856
if cut=="track" and ct in ["neutral_hadrons", "neutral_pions", "photons"]: continue
1858-
#options = (_common_eff_fake | _xminmaxEn) if var=="energy" else ( (_common_eff_fake | _xminmaxPt) if var=="pt" else _common_eff_fake)
18591857
cand_fake_plots.extend([Plot("fake_"+ct+"_"+cut+"_"+var, title=cut + " - fake rate for "+ct.replace("_", " ")+" vs "+var, ytitle="Fake rate", **_common_eff_fake)])
18601858
_all_cand_fake_plots.append(cand_fake_plots)
18611859

@@ -1868,11 +1866,21 @@
18681866
cand_fake_plots.extend([Plot("num_fake_"+cut+"_cand_vs_"+var+"_"+ct, title=cut + " - number of fakes for "+ct.replace("_", " ")+" vs "+var, ytitle="Fake number", **_common)])
18691867
_all_cand_fakeNum_plots.append(cand_fake_plots)
18701868

1869+
#association with track/tracksters
1870+
_all_cand_TkTsAss_plots = []
1871+
for ct in cand_type:
1872+
cand_ass_plots = []
1873+
for var in ["pt", "energy", "eta", "phi"]:
1874+
for cut in ["noTrack", "noGoodTrack", "noTrackster"]:
1875+
if cut in ["noTrack", "noGoodTrack"] and ct in ["neutral_hadrons", "neutral_pions", "photons"]: continue
1876+
cand_ass_plots.extend([Plot(cut+"_cand_vs_"+var+"_"+ct, title="number of "+ct.replace("_", " ")+" with "+cut+" vs "+var, ytitle="Number of candidates", **_common)])
1877+
_all_cand_TkTsAss_plots.append(cand_ass_plots)
1878+
18711879
_allCandidatesPlots = [[],[],[],[],[],[]]
18721880
for i in range(3):
1873-
_allCandidatesPlots[i].extend([PlotGroup(cand_type[i]+"_type", _all_cand_type_plots[i], ncols=2), PlotGroup(cand_type[i]+"_kin", _all_cand_ene_plots[i], ncols=3), PlotGroup(cand_type[i]+"_eff", _all_cand_eff_plots[i], ncols=3), PlotGroup(cand_type[i]+"_effMultiplicity", _all_cand_effNum_plots[i], ncols=3), PlotGroup(cand_type[i]+"_fake", _all_cand_fake_plots[i], ncols=4), PlotGroup(cand_type[i]+"_fakeMultiplicity", _all_cand_fakeNum_plots[i], ncols=4)])
1881+
_allCandidatesPlots[i].extend([PlotGroup(cand_type[i]+"_type", _all_cand_type_plots[i], ncols=2), PlotGroup(cand_type[i]+"_kin", _all_cand_ene_plots[i], ncols=3), PlotGroup(cand_type[i]+"_eff", _all_cand_eff_plots[i], ncols=3), PlotGroup(cand_type[i]+"_effMultiplicity", _all_cand_effNum_plots[i], ncols=3), PlotGroup(cand_type[i]+"_fake", _all_cand_fake_plots[i], ncols=4), PlotGroup(cand_type[i]+"_fakeMultiplicity", _all_cand_fakeNum_plots[i], ncols=4), PlotGroup(cand_type[i]+"_NoTrackTracksterAssoc", _all_cand_TkTsAss_plots[i], ncols=3)])
18741882
for i in range(3,6):
1875-
_allCandidatesPlots[i].extend([PlotGroup(cand_type[i]+"_type", _all_cand_type_plots[i], ncols=2), PlotGroup(cand_type[i]+"_kin", _all_cand_ene_plots[i], ncols=3), PlotGroup(cand_type[i]+"_eff", _all_cand_eff_plots[i], ncols=2), PlotGroup(cand_type[i]+"_effMultiplicity", _all_cand_effNum_plots[i], ncols=2), PlotGroup(cand_type[i]+"_fake", _all_cand_fake_plots[i], ncols=3), PlotGroup(cand_type[i]+"_fakeMultiplicity", _all_cand_fakeNum_plots[i], ncols=3)])
1883+
_allCandidatesPlots[i].extend([PlotGroup(cand_type[i]+"_type", _all_cand_type_plots[i], ncols=2), PlotGroup(cand_type[i]+"_kin", _all_cand_ene_plots[i], ncols=3), PlotGroup(cand_type[i]+"_eff", _all_cand_eff_plots[i], ncols=2), PlotGroup(cand_type[i]+"_effMultiplicity", _all_cand_effNum_plots[i], ncols=2), PlotGroup(cand_type[i]+"_fake", _all_cand_fake_plots[i], ncols=3), PlotGroup(cand_type[i]+"_fakeMultiplicity", _all_cand_fakeNum_plots[i], ncols=3), PlotGroup(cand_type[i]+"_NoTrackTracksterAssoc", _all_cand_TkTsAss_plots[i], ncols=1)])
18761884

18771885
#--------------------------------------------------------------------------------------------
18781886
# SIMHITS, DIGIS, RECHITS

Validation/HGCalValidation/src/TICLCandidateValidator.cc

Lines changed: 115 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,31 @@ void TICLCandidateValidator::bookCandidatesHistos(DQMStore::IBooker& ibook,
161161
50,
162162
-3.14159,
163163
3.14159));
164+
165+
histograms.h_neut_energy_noTrackster.push_back(
166+
ibook.book1D("noTrackster_cand_vs_energy_" + neutrals[i],
167+
neutrals[i] + " simCandidates without trackster energy;E (GeV)",
168+
50,
169+
0,
170+
500));
171+
histograms.h_neut_pt_noTrackster.push_back(
172+
ibook.book1D("noTrackster_cand_vs_pt_" + neutrals[i],
173+
neutrals[i] + " simCandidates without trackster pT;p_{T} (GeV)",
174+
50,
175+
0,
176+
200));
177+
histograms.h_neut_eta_noTrackster.push_back(
178+
ibook.book1D("noTrackster_cand_vs_eta_" + neutrals[i],
179+
neutrals[i] + " simCandidates without trackster eta;#eta (GeV)",
180+
50,
181+
-3,
182+
3));
183+
histograms.h_neut_phi_noTrackster.push_back(
184+
ibook.book1D("noTrackster_cand_vs_phi_" + neutrals[i],
185+
neutrals[i] + " simCandidates without trackster phi;#phi (GeV)",
186+
50,
187+
-3.14159,
188+
3.14159));
164189
}
165190
// charged: electron, muon, hadron
166191
const std::vector<std::string> charged{"electrons", "muons", "charged_hadrons"};
@@ -313,6 +338,68 @@ void TICLCandidateValidator::bookCandidatesHistos(DQMStore::IBooker& ibook,
313338
50,
314339
-3.14159,
315340
3.14159));
341+
342+
histograms.h_chg_energy_noTrack.push_back(ibook.book1D(
343+
"noTrack_cand_vs_energy_" + charged[i], charged[i] + " simCandidates without track energy;E (GeV)", 50, 0, 500));
344+
histograms.h_chg_pt_noTrack.push_back(ibook.book1D(
345+
"noTrack_cand_vs_pt_" + charged[i], charged[i] + " simCandidates without track pT;p_{T} (GeV)", 50, 0, 200));
346+
histograms.h_chg_eta_noTrack.push_back(ibook.book1D(
347+
"noTrack_cand_vs_eta_" + charged[i], charged[i] + " simCandidates without track eta;#eta (GeV)", 50, -3, 3));
348+
histograms.h_chg_phi_noTrack.push_back(ibook.book1D("noTrack_cand_vs_phi_" + charged[i],
349+
charged[i] + " simCandidates without track phi;#phi (GeV)",
350+
50,
351+
-3.14159,
352+
3.14159));
353+
354+
histograms.h_chg_energy_noGoodTrack.push_back(
355+
ibook.book1D("noGoodTrack_cand_vs_energy_" + charged[i],
356+
charged[i] + " simCandidates without good track energy;E (GeV)",
357+
50,
358+
0,
359+
500));
360+
histograms.h_chg_pt_noGoodTrack.push_back(
361+
ibook.book1D("noGoodTrack_cand_vs_pt_" + charged[i],
362+
charged[i] + " simCandidates without good track pT;p_{T} (GeV)",
363+
50,
364+
0,
365+
200));
366+
histograms.h_chg_eta_noGoodTrack.push_back(
367+
ibook.book1D("noGoodTrack_cand_vs_eta_" + charged[i],
368+
charged[i] + " simCandidates without good track eta;#eta (GeV)",
369+
50,
370+
-3,
371+
3));
372+
histograms.h_chg_phi_noGoodTrack.push_back(
373+
ibook.book1D("noGoodTrack_cand_vs_phi_" + charged[i],
374+
charged[i] + " simCandidates without good track phi;#phi (GeV)",
375+
50,
376+
-3.14159,
377+
3.14159));
378+
379+
histograms.h_chg_energy_noTrackster.push_back(
380+
ibook.book1D("noTrackster_cand_vs_energy_" + charged[i],
381+
charged[i] + " simCandidates without trackster energy;E (GeV)",
382+
50,
383+
0,
384+
500));
385+
histograms.h_chg_pt_noTrackster.push_back(
386+
ibook.book1D("noTrackster_cand_vs_pt_" + charged[i],
387+
charged[i] + " simCandidates without trackster pT;p_{T} (GeV)",
388+
50,
389+
0,
390+
200));
391+
histograms.h_chg_eta_noTrackster.push_back(
392+
ibook.book1D("noTrackster_cand_vs_eta_" + charged[i],
393+
charged[i] + " simCandidates without trackster eta;#eta (GeV)",
394+
50,
395+
-3,
396+
3));
397+
histograms.h_chg_phi_noTrackster.push_back(
398+
ibook.book1D("noTrackster_cand_vs_phi_" + charged[i],
399+
charged[i] + " simCandidates without trackster phi;#phi (GeV)",
400+
50,
401+
-3.14159,
402+
3.14159));
316403
}
317404
}
318405

@@ -392,13 +479,28 @@ void TICLCandidateValidator::fillCandidateHistos(const edm::Event& event,
392479
* 211 (type 4) becomes 2
393480
*/
394481

482+
// no track
483+
if (simCand.trackPtrs().empty()) {
484+
histograms.h_chg_energy_noTrack[index]->Fill(simCand.rawEnergy());
485+
histograms.h_chg_pt_noTrack[index]->Fill(simCand.pt());
486+
histograms.h_chg_eta_noTrack[index]->Fill(simCand.eta());
487+
histograms.h_chg_phi_noTrack[index]->Fill(simCand.phi());
488+
continue;
489+
}
490+
395491
std::vector<int32_t> simCandTrackIdx;
396492
for (const auto& track : simCand.trackPtrs()) {
397493
if (cutTk(*(simCand.trackPtr().get())))
398494
simCandTrackIdx.push_back(track.get() - firstTrack);
399495
}
400-
if (simCandTrackIdx.empty())
496+
if (simCandTrackIdx.empty()) {
497+
// no track passing cuts
498+
histograms.h_chg_energy_noGoodTrack[index]->Fill(simCand.rawEnergy());
499+
histograms.h_chg_pt_noGoodTrack[index]->Fill(simCand.pt());
500+
histograms.h_chg_eta_noGoodTrack[index]->Fill(simCand.eta());
501+
histograms.h_chg_phi_noGoodTrack[index]->Fill(simCand.phi());
401502
continue;
503+
}
402504

403505
// +1 to all denominators
404506
histograms.h_den_chg_energy_candidate[index]->Fill(simCand.rawEnergy());
@@ -418,8 +520,13 @@ void TICLCandidateValidator::fillCandidateHistos(const edm::Event& event,
418520
cand_idx = min_elem->index();
419521
}
420522
// no reco associated to sim
421-
if (cand_idx == -1)
523+
if (cand_idx == -1) {
524+
histograms.h_chg_energy_noTrackster[index]->Fill(simCand.rawEnergy());
525+
histograms.h_chg_pt_noTrackster[index]->Fill(simCand.pt());
526+
histograms.h_chg_eta_noTrackster[index]->Fill(simCand.eta());
527+
histograms.h_chg_phi_noTrackster[index]->Fill(simCand.phi());
422528
continue;
529+
}
423530

424531
auto& recoCand = TICLCandidates[cand_idx];
425532
if (isTICLv5_) {
@@ -498,8 +605,13 @@ void TICLCandidateValidator::fillCandidateHistos(const edm::Event& event,
498605
}
499606

500607
// no reco associated to sim
501-
if (cand_idx == -1)
608+
if (cand_idx == -1) {
609+
histograms.h_neut_energy_noTrackster[index]->Fill(simCand.rawEnergy());
610+
histograms.h_neut_pt_noTrackster[index]->Fill(simCand.pt());
611+
histograms.h_neut_eta_noTrackster[index]->Fill(simCand.eta());
612+
histograms.h_neut_phi_noTrackster[index]->Fill(simCand.phi());
502613
continue;
614+
}
503615

504616
auto& recoCand = TICLCandidates[cand_idx];
505617
if (isTICLv5_) {

0 commit comments

Comments
 (0)