File indexing completed on 2024-04-16 23:01:11
0001 #include "RecoBTag/FeatureTools/interface/LostTracksConverter.h"
0002
0003 namespace btagbtvdeep {
0004
0005 void packedCandidateToFeatures(const pat::PackedCandidate* c_pf,
0006 const pat::Jet& jet,
0007 const TrackInfoBuilder& track_info,
0008 const bool isWeightedJet,
0009 const float drminpfcandsv,
0010 const float jetR,
0011 const float puppiw,
0012 LostTracksFeatures& lt_features,
0013 const bool flip,
0014 const float distminpfcandsv) {
0015 commonCandidateToFeatures(
0016 c_pf, jet, track_info, isWeightedJet, drminpfcandsv, jetR, puppiw, lt_features, flip, distminpfcandsv);
0017
0018 lt_features.puppiw = puppiw;
0019 lt_features.charge = c_pf->charge();
0020
0021 lt_features.lostInnerHits = catch_infs(c_pf->lostInnerHits(), 2);
0022 lt_features.numberOfPixelHits = catch_infs(c_pf->numberOfPixelHits(), -1);
0023 lt_features.numberOfStripHits = catch_infs(c_pf->stripLayersWithMeasurement(), -1);
0024
0025
0026
0027 if (c_pf->hasTrackDetails()) {
0028 const auto& pseudo_track = c_pf->pseudoTrack();
0029 lt_features.chi2 = catch_infs_and_bound(pseudo_track.normalizedChi2(), 300, -1, 300);
0030
0031 lt_features.quality = pseudo_track.qualityMask();
0032 } else {
0033
0034 lt_features.chi2 = catch_infs_and_bound(-1, 300, -1, 300);
0035 lt_features.quality = (1 << reco::TrackBase::loose);
0036 }
0037 }
0038 void recoCandidateToFeatures(const reco::PFCandidate* c_pf,
0039 const reco::Jet& jet,
0040 const TrackInfoBuilder& track_info,
0041 const bool isWeightedJet,
0042 const float drminpfcandsv,
0043 const float jetR,
0044 const float puppiw,
0045 const int pv_ass_quality,
0046 const reco::VertexRef& pv,
0047 LostTracksFeatures& lt_features,
0048 const bool flip,
0049 const float distminpfcandsv) {
0050 commonCandidateToFeatures(
0051 c_pf, jet, track_info, isWeightedJet, drminpfcandsv, jetR, puppiw, lt_features, flip, distminpfcandsv);
0052
0053 lt_features.puppiw = puppiw;
0054
0055 const auto& pseudo_track = (c_pf->bestTrack()) ? *c_pf->bestTrack() : reco::Track();
0056 lt_features.chi2 = catch_infs_and_bound(std::floor(pseudo_track.normalizedChi2()), 300, -1, 300);
0057 lt_features.quality = quality_from_pfcand(*c_pf);
0058 }
0059
0060 }