Skip to content

Commit c80c719

Browse files
author
Andre Govinda Stahl Leiton
committed
Add option to sort UParT input candidates by pT
1 parent 3914bc8 commit c80c719

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

RecoBTag/FeatureTools/plugins/UnifiedParticleTransformerAK4TagInfoProducer.cc

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class UnifiedParticleTransformerAK4TagInfoProducer : public edm::stream::EDProdu
7979
const double jet_radius_;
8080
const double min_candidate_pt_;
8181
const bool flip_;
82+
const bool sort_cand_by_pt_;
8283
const bool fix_lt_sorting_;
8384

8485
const edm::EDGetTokenT<edm::View<reco::Jet>> jet_token_;
@@ -109,6 +110,7 @@ UnifiedParticleTransformerAK4TagInfoProducer::UnifiedParticleTransformerAK4TagIn
109110
: jet_radius_(iConfig.getParameter<double>("jet_radius")),
110111
min_candidate_pt_(iConfig.getParameter<double>("min_candidate_pt")),
111112
flip_(iConfig.getParameter<bool>("flip")),
113+
sort_cand_by_pt_(iConfig.getParameter<bool>("sort_cand_by_pt")),
112114
fix_lt_sorting_(iConfig.getParameter<bool>("fix_lt_sorting")),
113115
jet_token_(consumes<edm::View<reco::Jet>>(iConfig.getParameter<edm::InputTag>("jets"))),
114116
vtx_token_(consumes<VertexCollection>(iConfig.getParameter<edm::InputTag>("vertices"))),
@@ -156,6 +158,7 @@ void UnifiedParticleTransformerAK4TagInfoProducer::fillDescriptions(edm::Configu
156158
desc.add<double>("jet_radius", 0.4);
157159
desc.add<double>("min_candidate_pt", 0.10);
158160
desc.add<bool>("flip", false);
161+
desc.add<bool>("sort_cand_by_pt", false);
159162
desc.add<bool>("fix_lt_sorting", false);
160163
desc.add<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
161164
desc.add<edm::InputTag>("losttracks", edm::InputTag("lostTracks"));
@@ -278,10 +281,16 @@ void UnifiedParticleTransformerAK4TagInfoProducer::produce(edm::Event& iEvent, c
278281
auto& trackinfo = lt_trackinfos.emplace(i, track_builder).first->second;
279282
trackinfo.buildTrackInfo(PackedCandidate_, jet_dir, jet_ref_track_dir, pv);
280283

281-
lt_sorted.emplace_back(i,
282-
trackinfo.getTrackSip2dSig(),
283-
-btagbtvdeep::mindrsvpfcand(svs_unsorted, PackedCandidate_),
284-
PackedCandidate_->pt() / jet.pt());
284+
if (sort_cand_by_pt_)
285+
lt_sorted.emplace_back(i,
286+
PackedCandidate_->pt() / jet.pt(),
287+
trackinfo.getTrackSip2dSig(),
288+
-btagbtvdeep::mindrsvpfcand(svs_unsorted, PackedCandidate_));
289+
else
290+
lt_sorted.emplace_back(i,
291+
trackinfo.getTrackSip2dSig(),
292+
-btagbtvdeep::mindrsvpfcand(svs_unsorted, PackedCandidate_),
293+
PackedCandidate_->pt() / jet.pt());
285294

286295
ltPtrs.push_back(cand);
287296
}
@@ -356,12 +365,21 @@ void UnifiedParticleTransformerAK4TagInfoProducer::produce(edm::Event& iEvent, c
356365
auto& trackinfo = trackinfos.emplace(i, track_builder).first->second;
357366
trackinfo.buildTrackInfo(cand, jet_dir, jet_ref_track_dir, pv);
358367

359-
c_sorted.emplace_back(i,
360-
trackinfo.getTrackSip2dSig(),
361-
-btagbtvdeep::mindrsvpfcand(svs_unsorted, cand),
362-
cand->pt() / jet.pt());
368+
if (sort_cand_by_pt_)
369+
c_sorted.emplace_back(i,
370+
cand->pt() / jet.pt(),
371+
trackinfo.getTrackSip2dSig(),
372+
-btagbtvdeep::mindrsvpfcand(svs_unsorted, cand));
373+
else
374+
c_sorted.emplace_back(i,
375+
trackinfo.getTrackSip2dSig(),
376+
-btagbtvdeep::mindrsvpfcand(svs_unsorted, cand),
377+
cand->pt() / jet.pt());
363378
} else {
364-
n_sorted.emplace_back(i, -1, -btagbtvdeep::mindrsvpfcand(svs_unsorted, cand), cand->pt() / jet.pt());
379+
if (sort_cand_by_pt_)
380+
n_sorted.emplace_back(i, cand->pt() / jet.pt(), -btagbtvdeep::mindrsvpfcand(svs_unsorted, cand), -1);
381+
else
382+
n_sorted.emplace_back(i, -1, -btagbtvdeep::mindrsvpfcand(svs_unsorted, cand), cand->pt() / jet.pt());
365383
}
366384
}
367385
}

0 commit comments

Comments
 (0)