Skip to content

Commit 4ed4bfd

Browse files
committed
Fix Muon Validation dR plots filling
- Now applies only in cases where exactly two signal TPs are produced - dR is calculated using information from those two TPs
1 parent a56c581 commit 4ed4bfd

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

Validation/RecoMuon/plugins/MuonTrackValidator.cc

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -160,18 +160,14 @@ void MuonTrackValidator::bookHistograms(DQMEDAnalyzer::DQMStore::IBooker& ibooke
160160
minNHit,
161161
maxNHit));
162162

163-
int bindR{200};
164-
double mindR{0.0};
165-
double maxdR{10.0};
166-
167-
h_recodR.push_back(ibooker.book1D("num_reco_dR", "N of reco track vs dR2", bindR, mindR, maxdR));
163+
h_recodR.push_back(ibooker.book1D("num_reco_dR", "N of reco track vs dR", nintdR, mindR, maxdR));
168164
h_assocdR.push_back(
169-
ibooker.book1D("num_assoSimToReco_dR", "N of associated tracks (simToReco) vs dR2", bindR, mindR, maxdR));
165+
ibooker.book1D("num_assoSimToReco_dR", "N of associated tracks (simToReco) vs dR", nintdR, mindR, maxdR));
170166
h_assoc2dR.push_back(
171-
ibooker.book1D("num_assoRecoToSim_dR", "N of associated (recoToSim) tracks vs dR2", bindR, mindR, maxdR));
172-
h_simuldR.push_back(ibooker.book1D("num_simul_dR", "N of simulated tracks vs dR2", bindR, mindR, maxdR));
167+
ibooker.book1D("num_assoRecoToSim_dR", "N of associated (recoToSim) tracks vs dR", nintdR, mindR, maxdR));
168+
h_simuldR.push_back(ibooker.book1D("num_simul_dR", "N of simulated tracks vs dR", nintdR, mindR, maxdR));
173169
h_misiddR.push_back(ibooker.book1D(
174-
"num_chargemisid_dR", "N of associated (simToReco) tracks with charge misID vs dR2", bindR, mindR, maxdR));
170+
"num_chargemisid_dR", "N of associated (simToReco) tracks with charge misID vs dR", nintdR, mindR, maxdR));
175171

176172
h_recodxy.push_back(ibooker.book1D("num_reco_dxy", "N of reco track vs dxy", nintDxy, minDxy, maxDxy));
177173
h_assocdxy.push_back(ibooker.book1D(
@@ -540,14 +536,13 @@ void MuonTrackValidator::analyze(const edm::Event& event, const edm::EventSetup&
540536
int ats = 0;
541537
int st = 0;
542538

543-
std::optional<double> dR2 = [&]() -> std::optional<double> {
544-
if (tPC.size() == 2) {
545-
TrackingParticle::Vector p1 = lhcParametersDefinerTP_->momentum(event, setup, tPC[0]);
546-
TrackingParticle::Vector p2 = lhcParametersDefinerTP_->momentum(event, setup, tPC[1]);
547-
548-
return reco::deltaR2(p1, p2);
539+
std::optional<double> dR = [&]() -> std::optional<double> {
540+
if (tpSelector.isSignalOnly() && tPC.size() == 2) {
541+
const auto& tp1 = *tPC[0];
542+
const auto& tp2 = *tPC[1];
543+
return reco::deltaR(tp1.momentum(), tp2.momentum());
549544
}
550-
return {};
545+
return std::nullopt;
551546
}();
552547

553548
for (size_t i = 0; i < tPC.size(); i++) {
@@ -664,12 +659,13 @@ void MuonTrackValidator::analyze(const edm::Event& event, const edm::EventSetup&
664659
fillPlotNoFlow(h_misidphi[w], TPphi);
665660
}
666661

667-
if (dR2.has_value()) {
668-
fillPlotNoFlow(h_simuldR[w], *dR2);
662+
// histos for efficiency vs dR
663+
if (dR) {
664+
fillPlotNoFlow(h_simuldR[w], *dR);
669665
if (TP_is_matched) {
670-
fillPlotNoFlow(h_assocdR[w], *dR2);
666+
fillPlotNoFlow(h_assocdR[w], *dR);
671667
if (!isChargeOK)
672-
fillPlotNoFlow(h_misiddR[w], *dR2);
668+
fillPlotNoFlow(h_misiddR[w], *dR);
673669
}
674670
}
675671

@@ -852,10 +848,10 @@ void MuonTrackValidator::analyze(const edm::Event& event, const edm::EventSetup&
852848
fillPlotNoFlow(h_assoc2pT[w], xptRec);
853849
}
854850

855-
if (dR2.has_value()) {
856-
fillPlotNoFlow(h_recodR[w], *dR2);
851+
if (dR) {
852+
fillPlotNoFlow(h_recodR[w], *dR);
857853
if (Track_is_matched) {
858-
fillPlotNoFlow(h_assoc2pT[w], *dR2);
854+
fillPlotNoFlow(h_assoc2dR[w], *dR);
859855
}
860856
}
861857

Validation/RecoMuon/plugins/MuonTrackValidatorBase.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ class MuonTrackValidatorBase {
6565
ignoremissingtkcollection_(pset.getUntrackedParameter<bool>("ignoremissingtrackcollection", false))
6666

6767
{
68+
mindR = muonHistoParameters.getParameter<double>("mindR");
69+
maxdR = muonHistoParameters.getParameter<double>("maxdR");
70+
nintdR = muonHistoParameters.getParameter<int>("nintdR");
6871
minEta = muonHistoParameters.getParameter<double>("minEta");
6972
maxEta = muonHistoParameters.getParameter<double>("maxEta");
7073
nintEta = muonHistoParameters.getParameter<int>("nintEta");
@@ -224,6 +227,8 @@ class MuonTrackValidatorBase {
224227

225228
int minNTracks, maxNTracks, nintNTracks;
226229
int minFTracks, maxFTracks, nintFTracks;
230+
double mindR, maxdR;
231+
int nintdR;
227232
double minEta, maxEta;
228233
int nintEta;
229234
bool useFabsEta;

Validation/RecoMuon/python/histoParameters_cff.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
maxFTracks = cms.int32(20),
1111
nintFTracks = cms.int32(20),
1212
#
13+
nintdR = cms.int32(200),
14+
mindR = cms.double(0.),
15+
maxdR = cms.double(10.),
16+
#
1317
useFabsEta = cms.bool(False),
1418
minEta = cms.double(-2.5),
1519
maxEta = cms.double(2.5),

0 commit comments

Comments
 (0)