@@ -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