CMS 3D CMS Logo

Classes | Enumerations | Functions | Variables
btagbtvdeep Namespace Reference

Classes

class  BoostedDoubleSVTagInfoFeatures
 
class  ChargedCandidateFeatures
 
class  DeepBoostedJetFeatures
 
class  DeepDoubleXFeatures
 
class  DeepFlavourFeatures
 
class  JetConverter
 
class  JetFeatures
 
class  NeutralCandidateFeatures
 
struct  PreprocessParams
 
class  SecondaryVertexFeatures
 
class  SeedingTrackFeatures
 
class  SeedingTrackInfoBuilder
 
class  ShallowTagInfoFeatures
 
class  SortingClass
 
class  TrackInfoBuilder
 
class  TrackPairFeatures
 
class  TrackPairInfoBuilder
 

Enumerations

enum  qualityFlagsShiftsAndMasks {
  assignmentQualityMask = 0x7, assignmentQualityShift = 0, trackHighPurityMask = 0x8, trackHighPurityShift =3,
  lostInnerHitsMask = 0x30, lostInnerHitsShift =4, muonFlagsMask = 0x0600, muonFlagsShift =9
}
 

Functions

void bTagToFeatures (const reco::TaggingVariableList &tag_info_vars, ShallowTagInfoFeatures &tag_info_features)
 
const float catch_infs (const float in, const float replace_value=0.)
 
const float catch_infs_and_bound (const float in, const float replace_value, const float lowerbound, const float upperbound, const float offset=0., const bool use_offsets=true)
 
template<typename CandidateType >
void commonCandidateToFeatures (const CandidateType *c_pf, const reco::Jet &jet, const TrackInfoBuilder &track_info, const float &drminpfcandsv, const float &jetR, ChargedCandidateFeatures &c_pf_features, const bool flip=false)
 
template<typename CandidateType >
static void commonCandidateToFeatures (const CandidateType *n_pf, const reco::Jet &jet, const float &drminpfcandsv, const float &jetR, NeutralCandidateFeatures &n_pf_features)
 
void cpf_tensor_filler (float *&ptr, const btagbtvdeep::ChargedCandidateFeatures &c_pf_features)
 
void doubleBTagToFeatures (const reco::TaggingVariableList &tag_info_vars, BoostedDoubleSVTagInfoFeatures &tag_info_features)
 
template<typename T >
int dump_vector (reco::TaggingVariableList &from, T *to, reco::btau::TaggingVariableName name, const size_t max)
 
std::vector< std::size_t > invertSortingVector (const std::vector< SortingClass< std::size_t > > &in)
 
void jet4vec_tensor_filler (float *&ptr, const btagbtvdeep::JetFeatures &jet_features)
 
void jet_tensor_filler (float *&ptr, const btagbtvdeep::DeepFlavourFeatures &features)
 
float logWithOffset (float v, float logOffset=0)
 
float lost_inner_hits_from_pfcand (const reco::PFCandidate &pfcand)
 
float mindrsvpfcand (const std::vector< reco::VertexCompositePtrCandidate > &svs, const reco::Candidate *cand, float mindr=0.4)
 
void neighbourTrack_tensor_filler (float *&ptr, const btagbtvdeep::TrackPairFeatures &neighbourTrack_features)
 
void npf_tensor_filler (float *&ptr, const btagbtvdeep::NeutralCandidateFeatures &n_pf_features)
 
void packedCandidateToFeatures (const pat::PackedCandidate *n_pf, const pat::Jet &jet, const float drminpfcandsv, const float jetR, NeutralCandidateFeatures &n_pf_features)
 
void packedCandidateToFeatures (const pat::PackedCandidate *c_pf, const pat::Jet &jet, const TrackInfoBuilder &track_info, const float drminpfcandsv, const float jetR, ChargedCandidateFeatures &c_pf_features, const bool flip=false)
 
float quality_from_pfcand (const reco::PFCandidate &pfcand)
 
void recoCandidateToFeatures (const reco::PFCandidate *n_pf, const reco::Jet &jet, const float drminpfcandsv, const float jetR, const float puppiw, NeutralCandidateFeatures &n_pf_features)
 
void recoCandidateToFeatures (const reco::PFCandidate *c_pf, const reco::Jet &jet, const TrackInfoBuilder &track_info, const float drminpfcandsv, const float jetR, const float puppiw, const int pv_ass_quality, const reco::VertexRef &pv, ChargedCandidateFeatures &c_pf_features, const bool flip=false)
 
void seedingTracksToFeatures (const std::vector< reco::TransientTrack > &selectedTracks, const std::vector< float > &masses, const reco::Jet &jet, const reco::Vertex &pv, HistogramProbabilityEstimator *probabilityEstimator, bool computeProbabilities, std::vector< btagbtvdeep::SeedingTrackFeatures > &seedingT_features_vector)
 
void seedTrack_tensor_filler (float *&ptr, const btagbtvdeep::SeedingTrackFeatures &seed_features)
 
void sv_tensor_filler (float *&ptr, const btagbtvdeep::SecondaryVertexFeatures &sv_features)
 
template<typename SVType , typename PVType >
bool sv_vertex_comparator (const SVType &sva, const SVType &svb, const PVType &pv)
 
template bool sv_vertex_comparator< reco::VertexCompositePtrCandidate, reco::Vertex > (const reco::VertexCompositePtrCandidate &, const reco::VertexCompositePtrCandidate &, const reco::Vertex &)
 
void svToFeatures (const reco::VertexCompositePtrCandidate &sv, const reco::Vertex &pv, const reco::Jet &jet, SecondaryVertexFeatures &sv_features, const bool flip=false)
 
Measurement1D vertexD3d (const reco::VertexCompositePtrCandidate &svcand, const reco::Vertex &pv)
 
float vertexDdotP (const reco::VertexCompositePtrCandidate &sv, const reco::Vertex &pv)
 
Measurement1D vertexDxy (const reco::VertexCompositePtrCandidate &svcand, const reco::Vertex &pv)
 
float vtx_ass_from_pfcand (const reco::PFCandidate &pfcand, int pv_ass_quality, const reco::VertexRef &pv)
 

Variables

static std::size_t max_jetNSelectedTracks =100
 
static int qualityMap [8] = {1,0,1,1,4,4,5,6}
 

Enumeration Type Documentation

Enumerator
assignmentQualityMask 
assignmentQualityShift 
trackHighPurityMask 
trackHighPurityShift 
lostInnerHitsMask 
lostInnerHitsShift 
muonFlagsMask 
muonFlagsShift 

Definition at line 8 of file deep_helpers.cc.

Function Documentation

void btagbtvdeep::bTagToFeatures ( const reco::TaggingVariableList tag_info_vars,
ShallowTagInfoFeatures tag_info_features 
)

Definition at line 14 of file ShallowTagInfoConverter.cc.

References reco::TaggingVariableList::get(), reco::TaggingVariableList::getList(), btagbtvdeep::ShallowTagInfoFeatures::jetNSelectedTracks, btagbtvdeep::ShallowTagInfoFeatures::jetNTracksEtaRel, reco::btau::jetNTracksEtaRel, max_jetNSelectedTracks, min(), reco::btau::trackMomentum, btagbtvdeep::ShallowTagInfoFeatures::trackSip2dSigAboveCharm, reco::btau::trackSip2dSigAboveCharm, btagbtvdeep::ShallowTagInfoFeatures::trackSip2dValAboveCharm, reco::btau::trackSip2dValAboveCharm, btagbtvdeep::ShallowTagInfoFeatures::trackSip3dSigAboveCharm, reco::btau::trackSip3dSigAboveCharm, btagbtvdeep::ShallowTagInfoFeatures::trackSip3dValAboveCharm, reco::btau::trackSip3dValAboveCharm, btagbtvdeep::ShallowTagInfoFeatures::trackSumJetDeltaR, reco::btau::trackSumJetDeltaR, btagbtvdeep::ShallowTagInfoFeatures::trackSumJetEtRatio, reco::btau::trackSumJetEtRatio, btagbtvdeep::ShallowTagInfoFeatures::vertexCategory, and reco::btau::vertexCategory.

Referenced by DeepFlavourTagInfoProducer::produce().

15  {
16 
17  tag_info_features.trackSumJetEtRatio = tag_info_vars.get(reco::btau::trackSumJetEtRatio, -999);
18  tag_info_features.trackSumJetDeltaR = tag_info_vars.get(reco::btau::trackSumJetDeltaR, -999);
19  tag_info_features.vertexCategory = tag_info_vars.get(reco::btau::vertexCategory, -999);
20  tag_info_features.trackSip2dValAboveCharm = tag_info_vars.get(reco::btau::trackSip2dValAboveCharm, -999);
21  tag_info_features.trackSip2dSigAboveCharm = tag_info_vars.get(reco::btau::trackSip2dSigAboveCharm, -999);
22  tag_info_features.trackSip3dValAboveCharm = tag_info_vars.get(reco::btau::trackSip3dValAboveCharm, -999);
23  tag_info_features.trackSip3dSigAboveCharm = tag_info_vars.get(reco::btau::trackSip3dSigAboveCharm, -999);
24  tag_info_features.jetNTracksEtaRel = tag_info_vars.get(reco::btau::jetNTracksEtaRel, -1);
25  tag_info_features.jetNSelectedTracks = std::min(tag_info_vars.getList(reco::btau::trackMomentum, false).size(),
27 
28  }
std::vector< TaggingValue > getList(TaggingVariableName tag, bool throwOnEmptyList=true) const
TaggingValue get(TaggingVariableName tag) const
T min(T a, T b)
Definition: MathUtil.h:58
static std::size_t max_jetNSelectedTracks
const float btagbtvdeep::catch_infs ( const float  in,
const float  replace_value = 0. 
)

Definition at line 21 of file deep_helpers.cc.

References recoMuon::in.

Referenced by catch_infs_and_bound(), BoostedJetONNXJetTagsProducer::center_norm_pad(), dump_vector(), packedCandidateToFeatures(), and sv_vertex_comparator().

22  {
23  if(in==in){ // check if NaN
24  if(std::isinf(in))
25  return replace_value;
26  else if(in < -1e32 || in > 1e32)
27  return replace_value;
28  return in;
29  }
30  return replace_value;
31  }
const float btagbtvdeep::catch_infs_and_bound ( const float  in,
const float  replace_value,
const float  lowerbound,
const float  upperbound,
const float  offset = 0.,
const bool  use_offsets = true 
)

Definition at line 34 of file deep_helpers.cc.

References catch_infs(), and PFRecoTauDiscriminationByIsolation_cfi::offset.

Referenced by commonCandidateToFeatures(), packedCandidateToFeatures(), recoCandidateToFeatures(), and svToFeatures().

39  {
40  float withoutinfs=catch_infs(in,replace_value);
41  if(withoutinfs+offset<lowerbound) return lowerbound;
42  if(withoutinfs+offset>upperbound) return upperbound;
43  if(use_offsets)
44  withoutinfs+=offset;
45  return withoutinfs;
46  }
const float catch_infs(const float in, const float replace_value=0.)
Definition: deep_helpers.cc:21
template<typename CandidateType >
void btagbtvdeep::commonCandidateToFeatures ( const CandidateType *  c_pf,
const reco::Jet jet,
const TrackInfoBuilder track_info,
const float &  drminpfcandsv,
const float &  jetR,
ChargedCandidateFeatures c_pf_features,
const bool  flip = false 
)

Definition at line 15 of file ChargedCandidateConverter.h.

References btagbtvdeep::ChargedCandidateFeatures::btagPf_trackDeltaR, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackEtaRel, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackJetDistVal, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackPPar, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackPParRatio, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackPtRatio, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackPtRel, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip2dSig, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip2dVal, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip3dSig, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip3dVal, catch_infs_and_bound(), reco::deltaR(), btagbtvdeep::ChargedCandidateFeatures::deltaR, btagbtvdeep::ChargedCandidateFeatures::drminsv, btagbtvdeep::ChargedCandidateFeatures::drsubjet1, btagbtvdeep::ChargedCandidateFeatures::drsubjet2, vertexPlots::e4, reco::LeafCandidate::energy(), btagbtvdeep::ChargedCandidateFeatures::erel, reco::LeafCandidate::eta(), btagbtvdeep::ChargedCandidateFeatures::etarel, Exception, pfNegativeDeepFlavourTagInfos_cfi::flip, btagbtvdeep::TrackInfoBuilder::getTrackDeltaR(), btagbtvdeep::TrackInfoBuilder::getTrackEtaRel(), btagbtvdeep::TrackInfoBuilder::getTrackJetDistVal(), btagbtvdeep::TrackInfoBuilder::getTrackPPar(), btagbtvdeep::TrackInfoBuilder::getTrackPParRatio(), btagbtvdeep::TrackInfoBuilder::getTrackPtRatio(), btagbtvdeep::TrackInfoBuilder::getTrackPtRel(), btagbtvdeep::TrackInfoBuilder::getTrackSip2dSig(), btagbtvdeep::TrackInfoBuilder::getTrackSip2dVal(), btagbtvdeep::TrackInfoBuilder::getTrackSip3dSig(), btagbtvdeep::TrackInfoBuilder::getTrackSip3dVal(), edm::errors::InvalidReference, metsig::jet, p1, p2, packedCandidateToFeatures(), reco::LeafCandidate::pt(), btagbtvdeep::ChargedCandidateFeatures::ptrel, btagbtvdeep::ChargedCandidateFeatures::ptrel_noclip, MetAnalyzer::pv(), recoCandidateToFeatures(), jetUpdater_cfi::sort, reco::btau::trackSip2dSig, reco::btau::trackSip2dVal, reco::btau::trackSip3dSig, and reco::btau::trackSip3dVal.

Referenced by packedCandidateToFeatures(), and recoCandidateToFeatures().

20  {
21 
22 
23  float trackSip2dVal = track_info.getTrackSip2dVal();
24  float trackSip2dSig = track_info.getTrackSip2dSig();
25  float trackSip3dVal = track_info.getTrackSip3dVal();
26  float trackSip3dSig = track_info.getTrackSip3dSig();
27  if(flip == true){
28  trackSip2dVal = -trackSip2dVal;
29  trackSip2dSig = -trackSip2dSig;
30  trackSip3dSig = -trackSip3dSig;
31  trackSip3dVal = -trackSip3dVal;
32  }
33 
34  c_pf_features.deltaR = reco::deltaR(*c_pf, jet);
35  c_pf_features.ptrel = catch_infs_and_bound(c_pf->pt() / jet.pt(), 0, -1, 0, -1);
36  c_pf_features.ptrel_noclip = c_pf->pt() / jet.pt();
37  c_pf_features.erel = c_pf->energy() / jet.energy();
38  const float etasign = jet.eta() > 0 ? 1 : -1;
39  c_pf_features.etarel = etasign * (c_pf->eta() - jet.eta());
40 
41  c_pf_features.btagPf_trackEtaRel = catch_infs_and_bound(track_info.getTrackEtaRel(), 0, -5, 15);
42  c_pf_features.btagPf_trackPtRel = catch_infs_and_bound(track_info.getTrackPtRel(), 0, -1, 4);
43  c_pf_features.btagPf_trackPPar = catch_infs_and_bound(track_info.getTrackPPar(), 0, -1e5, 1e5);
44  c_pf_features.btagPf_trackDeltaR = catch_infs_and_bound(track_info.getTrackDeltaR(), 0, -5, 5);
45  c_pf_features.btagPf_trackPtRatio = catch_infs_and_bound(track_info.getTrackPtRatio(), 0, -1, 10);
46  c_pf_features.btagPf_trackPParRatio = catch_infs_and_bound(track_info.getTrackPParRatio(), 0, -10, 100);
47  c_pf_features.btagPf_trackSip3dVal = catch_infs_and_bound(trackSip3dVal, 0, -1, 1e5);
48  c_pf_features.btagPf_trackSip3dSig = catch_infs_and_bound(trackSip3dSig, 0, -1, 4e4);
49  c_pf_features.btagPf_trackSip2dVal = catch_infs_and_bound(trackSip2dVal, 0, -1, 70);
50  c_pf_features.btagPf_trackSip2dSig = catch_infs_and_bound(trackSip2dSig, 0, -1, 4e4);
51  c_pf_features.btagPf_trackJetDistVal = catch_infs_and_bound(track_info.getTrackJetDistVal(), 0, -20, 1);
52 
53  c_pf_features.drminsv = catch_infs_and_bound(drminpfcandsv, 0, -1. * jetR, 0, -1. * jetR);
54 
55  // subjet related
56  const auto* patJet = dynamic_cast<const pat::Jet*>(&jet);
57  if (!patJet) {
58  throw edm::Exception(edm::errors::InvalidReference) << "Input is not a pat::Jet.";
59  }
60 
61  if (patJet->nSubjetCollections() > 0) {
62  auto subjets = patJet->subjets();
63  // sort by pt
64  std::sort(subjets.begin(), subjets.end(), [](const edm::Ptr<pat::Jet>& p1, const edm::Ptr<pat::Jet>& p2) {
65  return p1->pt() > p2->pt();
66  });
67  c_pf_features.drsubjet1 = !subjets.empty() ? reco::deltaR(*c_pf, *subjets.at(0)) : -1;
68  c_pf_features.drsubjet2 = subjets.size() > 1 ? reco::deltaR(*c_pf, *subjets.at(1)) : -1;
69  } else {
70  // AK4 jets don't have subjets
71  c_pf_features.drsubjet1 = -1;
72  c_pf_features.drsubjet2 = -1;
73  }
74  }
double eta() const final
momentum pseudorapidity
double pt() const final
transverse momentum
const float catch_infs_and_bound(const float in, const float replace_value, const float lowerbound, const float upperbound, const float offset=0., const bool use_offsets=true)
Definition: deep_helpers.cc:34
double energy() const final
energy
double p2[4]
Definition: TauolaWrapper.h:90
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
Analysis-level calorimeter jet class.
Definition: Jet.h:80
double p1[4]
Definition: TauolaWrapper.h:89
template<typename CandidateType >
static void btagbtvdeep::commonCandidateToFeatures ( const CandidateType *  n_pf,
const reco::Jet jet,
const float &  drminpfcandsv,
const float &  jetR,
NeutralCandidateFeatures n_pf_features 
)
static

Definition at line 30 of file NeutralCandidateConverter.h.

References funct::abs(), catch_infs_and_bound(), btagbtvdeep::NeutralCandidateFeatures::deltaR, reco::deltaR(), btagbtvdeep::NeutralCandidateFeatures::deltaR_noclip, btagbtvdeep::NeutralCandidateFeatures::drminsv, btagbtvdeep::NeutralCandidateFeatures::drsubjet1, btagbtvdeep::NeutralCandidateFeatures::drsubjet2, reco::LeafCandidate::energy(), btagbtvdeep::NeutralCandidateFeatures::erel, Exception, edm::errors::InvalidReference, btagbtvdeep::NeutralCandidateFeatures::isGamma, metsig::jet, p1, p2, reco::LeafCandidate::pt(), btagbtvdeep::NeutralCandidateFeatures::ptrel, btagbtvdeep::NeutralCandidateFeatures::ptrel_noclip, and jetUpdater_cfi::sort.

34  {
35  const auto* patJet = dynamic_cast<const pat::Jet*>(&jet);
36 
37  if (!patJet) {
38  throw edm::Exception(edm::errors::InvalidReference) << "Input is not a pat::Jet.";
39  }
40  // Do Subjets
41  if (patJet->nSubjetCollections() > 0) {
42  auto subjets = patJet->subjets();
43  // sort by pt
44  std::sort(subjets.begin(), subjets.end(), [](const edm::Ptr<pat::Jet>& p1, const edm::Ptr<pat::Jet>& p2) {
45  return p1->pt() > p2->pt();
46  });
47  n_pf_features.drsubjet1 = !subjets.empty() ? reco::deltaR(*n_pf, *subjets.at(0)) : -1;
48  n_pf_features.drsubjet2 = subjets.size() > 1 ? reco::deltaR(*n_pf, *subjets.at(1)) : -1;
49  } else {
50  n_pf_features.drsubjet1 = -1;
51  n_pf_features.drsubjet2 = -1;
52  }
53 
54  // Jet relative vars
55  n_pf_features.ptrel = catch_infs_and_bound(n_pf->pt() / jet.pt(), 0, -1, 0, -1);
56  n_pf_features.ptrel_noclip = n_pf->pt() / jet.pt();
57  n_pf_features.deltaR = catch_infs_and_bound(reco::deltaR(*n_pf, jet), 0, -0.6, 0, -0.6);
58  n_pf_features.deltaR_noclip = reco::deltaR(*n_pf, jet);
59  n_pf_features.erel = n_pf->energy() / jet.energy();
60  n_pf_features.isGamma = 0;
61  if(std::abs(n_pf->pdgId())==22) n_pf_features.isGamma = 1;
62 
63 
64  n_pf_features.drminsv = catch_infs_and_bound(drminpfcandsv,
65  0,-1.*jetR,0,-1.*jetR);
66 
67  }
double pt() const final
transverse momentum
const float catch_infs_and_bound(const float in, const float replace_value, const float lowerbound, const float upperbound, const float offset=0., const bool use_offsets=true)
Definition: deep_helpers.cc:34
double energy() const final
energy
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double p2[4]
Definition: TauolaWrapper.h:90
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
Analysis-level calorimeter jet class.
Definition: Jet.h:80
double p1[4]
Definition: TauolaWrapper.h:89
void btagbtvdeep::cpf_tensor_filler ( float *&  ptr,
const btagbtvdeep::ChargedCandidateFeatures c_pf_features 
)

Definition at line 28 of file tensor_fillers.cc.

References btagbtvdeep::ChargedCandidateFeatures::btagPf_trackDeltaR, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackEtaRel, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackJetDistVal, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackPPar, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackPParRatio, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackPtRel, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip2dSig, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip2dVal, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip3dSig, btagbtvdeep::ChargedCandidateFeatures::btagPf_trackSip3dVal, btagbtvdeep::ChargedCandidateFeatures::chi2, btagbtvdeep::ChargedCandidateFeatures::drminsv, btagbtvdeep::ChargedCandidateFeatures::ptrel, btagbtvdeep::ChargedCandidateFeatures::puppiw, btagbtvdeep::ChargedCandidateFeatures::quality, and btagbtvdeep::ChargedCandidateFeatures::vtx_ass.

Referenced by DeepCombinedONNXJetTagsProducer::make_inputs().

28  {
29  *ptr = c_pf_features.btagPf_trackEtaRel;
30  *(++ptr) = c_pf_features.btagPf_trackPtRel;
31  *(++ptr) = c_pf_features.btagPf_trackPPar;
32  *(++ptr) = c_pf_features.btagPf_trackDeltaR;
33  *(++ptr) = c_pf_features.btagPf_trackPParRatio;
34  *(++ptr) = c_pf_features.btagPf_trackSip2dVal;
35  *(++ptr) = c_pf_features.btagPf_trackSip2dSig;
36  *(++ptr) = c_pf_features.btagPf_trackSip3dVal;
37  *(++ptr) = c_pf_features.btagPf_trackSip3dSig;
38  *(++ptr) = c_pf_features.btagPf_trackJetDistVal;
39  *(++ptr) = c_pf_features.ptrel;
40  *(++ptr) = c_pf_features.drminsv;
41  *(++ptr) = c_pf_features.vtx_ass;
42  *(++ptr) = c_pf_features.puppiw;
43  *(++ptr) = c_pf_features.chi2;
44  *(++ptr) = c_pf_features.quality;
45  }
void btagbtvdeep::doubleBTagToFeatures ( const reco::TaggingVariableList tag_info_vars,
BoostedDoubleSVTagInfoFeatures tag_info_features 
)

Definition at line 10 of file BoostedDoubleSVTagInfoConverter.cc.

References reco::TaggingVariableList::get(), btagbtvdeep::BoostedDoubleSVTagInfoFeatures::jetNSecondaryVertices, reco::btau::jetNSecondaryVertices, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::jetNTracks, reco::btau::jetNTracks, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_flightDistance2dSig, reco::btau::tau1_flightDistance2dSig, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_trackEtaRel_0, reco::btau::tau1_trackEtaRel_0, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_trackEtaRel_1, reco::btau::tau1_trackEtaRel_1, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_trackEtaRel_2, reco::btau::tau1_trackEtaRel_2, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_trackSip3dSig_0, reco::btau::tau1_trackSip3dSig_0, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_trackSip3dSig_1, reco::btau::tau1_trackSip3dSig_1, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_vertexDeltaR, reco::btau::tau1_vertexDeltaR, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_vertexEnergyRatio, reco::btau::tau1_vertexEnergyRatio, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau1_vertexMass, reco::btau::tau1_vertexMass, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_flightDistance2dSig, reco::btau::tau2_flightDistance2dSig, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_trackEtaRel_0, reco::btau::tau2_trackEtaRel_0, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_trackEtaRel_1, reco::btau::tau2_trackEtaRel_1, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_trackEtaRel_2, reco::btau::tau2_trackEtaRel_2, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_trackSip3dSig_0, reco::btau::tau2_trackSip3dSig_0, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_trackSip3dSig_1, reco::btau::tau2_trackSip3dSig_1, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_vertexDeltaR, reco::btau::tau2_vertexDeltaR, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_vertexEnergyRatio, reco::btau::tau2_vertexEnergyRatio, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::tau2_vertexMass, reco::btau::tau2_vertexMass, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::trackSip2dSigAboveBottom_0, reco::btau::trackSip2dSigAboveBottom_0, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::trackSip2dSigAboveBottom_1, reco::btau::trackSip2dSigAboveBottom_1, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::trackSip2dSigAboveCharm, reco::btau::trackSip2dSigAboveCharm, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::trackSip3dSig_0, reco::btau::trackSip3dSig_0, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::trackSip3dSig_1, reco::btau::trackSip3dSig_1, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::trackSip3dSig_2, reco::btau::trackSip3dSig_2, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::trackSip3dSig_3, reco::btau::trackSip3dSig_3, btagbtvdeep::BoostedDoubleSVTagInfoFeatures::z_ratio, and reco::btau::z_ratio.

Referenced by DeepDoubleXTagInfoProducer::produce().

11  {
12 
13  tag_info_features.jetNTracks = tag_info_vars.get(reco::btau::jetNTracks, -999);
14  tag_info_features.jetNSecondaryVertices = tag_info_vars.get(reco::btau::jetNSecondaryVertices, -999);
15  tag_info_features.trackSip3dSig_0 = tag_info_vars.get(reco::btau::trackSip3dSig_0, -999);
16  tag_info_features.trackSip3dSig_1 = tag_info_vars.get(reco::btau::trackSip3dSig_1, -999);
17  tag_info_features.trackSip3dSig_2 = tag_info_vars.get(reco::btau::trackSip3dSig_2, -999);
18  tag_info_features.trackSip3dSig_3 = tag_info_vars.get(reco::btau::trackSip3dSig_3, -999);
19  tag_info_features.tau1_trackSip3dSig_0 = tag_info_vars.get(reco::btau::tau1_trackSip3dSig_0, -999);
20  tag_info_features.tau1_trackSip3dSig_1 = tag_info_vars.get(reco::btau::tau1_trackSip3dSig_1, -999);
21  tag_info_features.tau2_trackSip3dSig_0 = tag_info_vars.get(reco::btau::tau2_trackSip3dSig_0, -999);
22  tag_info_features.tau2_trackSip3dSig_1 = tag_info_vars.get(reco::btau::tau2_trackSip3dSig_1, -999);
23  tag_info_features.trackSip2dSigAboveBottom_0 = tag_info_vars.get(reco::btau::trackSip2dSigAboveBottom_0, -999);
24  tag_info_features.trackSip2dSigAboveBottom_1 = tag_info_vars.get(reco::btau::trackSip2dSigAboveBottom_1, -999);
25  tag_info_features.trackSip2dSigAboveCharm = tag_info_vars.get(reco::btau::trackSip2dSigAboveCharm, -999);
26  tag_info_features.tau1_trackEtaRel_0 = tag_info_vars.get(reco::btau::tau1_trackEtaRel_0, -999);
27  tag_info_features.tau1_trackEtaRel_1 = tag_info_vars.get(reco::btau::tau1_trackEtaRel_1, -999);
28  tag_info_features.tau1_trackEtaRel_2 = tag_info_vars.get(reco::btau::tau1_trackEtaRel_2, -999);
29  tag_info_features.tau2_trackEtaRel_0 = tag_info_vars.get(reco::btau::tau2_trackEtaRel_0, -999);
30  tag_info_features.tau2_trackEtaRel_1 = tag_info_vars.get(reco::btau::tau2_trackEtaRel_1, -999);
31  tag_info_features.tau2_trackEtaRel_2 = tag_info_vars.get(reco::btau::tau2_trackEtaRel_2, -999);
32  tag_info_features.tau1_vertexMass = tag_info_vars.get(reco::btau::tau1_vertexMass, -999);
33  tag_info_features.tau1_vertexEnergyRatio = tag_info_vars.get(reco::btau::tau1_vertexEnergyRatio, -999);
34  tag_info_features.tau1_flightDistance2dSig = tag_info_vars.get(reco::btau::tau1_flightDistance2dSig, -999);
35  tag_info_features.tau1_vertexDeltaR = tag_info_vars.get(reco::btau::tau1_vertexDeltaR, -999);
36  tag_info_features.tau2_vertexMass = tag_info_vars.get(reco::btau::tau2_vertexMass, -999);
37  tag_info_features.tau2_vertexEnergyRatio = tag_info_vars.get(reco::btau::tau2_vertexEnergyRatio, -999);
38  tag_info_features.tau2_flightDistance2dSig = tag_info_vars.get(reco::btau::tau2_flightDistance2dSig, -999);
39  tag_info_features.tau2_vertexDeltaR = tag_info_vars.get(reco::btau::tau2_vertexDeltaR, -999); // not used
40  tag_info_features.z_ratio = tag_info_vars.get(reco::btau::z_ratio, -999);
41 
42  }
TaggingValue get(TaggingVariableName tag) const
template<typename T >
int btagbtvdeep::dump_vector ( reco::TaggingVariableList from,
T to,
reco::btau::TaggingVariableName  name,
const size_t  max 
)

Definition at line 58 of file deep_helpers.h.

References catch_infs(), reco::TaggingVariableList::getList(), mps_fire::i, lost_inner_hits_from_pfcand(), SiStripPI::max, min(), MTVHistoProducerAlgoForTrackerBlock_cfi::mindr, mindrsvpfcand(), pfDeepBoostedJetPreprocessParams_cfi::pfcand, MetAnalyzer::pv(), quality_from_pfcand(), findQualityFiles::size, create_public_pileup_plots::vals, and vtx_ass_from_pfcand().

59  {
60  std::vector<T> vals = from.getList(name ,false);
61  size_t size=std::min(vals.size(),max);
62  if(size > 0){
63  for(size_t i=0;i<vals.size();i++){
64  to[i]=catch_infs(vals[i],-0.1);
65  }
66  }
67  return size;
68  }
size
Write out results.
const float catch_infs(const float in, const float replace_value=0.)
Definition: deep_helpers.cc:21
std::vector< TaggingValue > getList(TaggingVariableName tag, bool throwOnEmptyList=true) const
T min(T a, T b)
Definition: MathUtil.h:58
std::vector< std::size_t > btagbtvdeep::invertSortingVector ( const std::vector< SortingClass< std::size_t > > &  in)

Definition at line 8 of file sorting_modules.cc.

References mps_fire::i, recoMuon::in, SiStripPI::max, MillePedeFileConverter_cfg::out, and alignCSCRings::s.

Referenced by DeepDoubleXTagInfoProducer::produce(), and DeepFlavourTagInfoProducer::produce().

8  {
9  std::size_t max=0;
10  for(const auto& s:in){
11  if(s.get()>max)max=s.get();
12  }
13 
14  std::vector<std::size_t> out(max+1,0);
15  for(std::size_t i=0;i<in.size();i++){
16  out.at(in[i].get())=i;
17  }
18 
19  return out;
20 }
void btagbtvdeep::jet4vec_tensor_filler ( float *&  ptr,
const btagbtvdeep::JetFeatures jet_features 
)

Definition at line 71 of file tensor_fillers.cc.

References btagbtvdeep::JetFeatures::eta, btagbtvdeep::JetFeatures::mass, btagbtvdeep::JetFeatures::phi, and btagbtvdeep::JetFeatures::pt.

Referenced by DeepCombinedONNXJetTagsProducer::make_inputs(), and DeepVertexONNXJetTagsProducer::make_inputs().

71  {
72  *ptr = jet_features.pt;
73  *(++ptr) = jet_features.eta;
74  *(++ptr) = jet_features.phi;
75  *(++ptr) = jet_features.mass;
76  }
void btagbtvdeep::jet_tensor_filler ( float *&  ptr,
const btagbtvdeep::DeepFlavourFeatures features 
)

Definition at line 5 of file tensor_fillers.cc.

References btagbtvdeep::DeepFlavourFeatures::c_pf_features, btagbtvdeep::DeepFlavourFeatures::jet_features, btagbtvdeep::DeepFlavourFeatures::n_pf_features, btagbtvdeep::DeepFlavourFeatures::npv, btagbtvdeep::JetFeatures::pt, btagbtvdeep::DeepFlavourFeatures::sv_features, btagbtvdeep::DeepFlavourFeatures::tag_info_features, and btagbtvdeep::ShallowTagInfoFeatures::trackSumJetEtRatio.

Referenced by DeepCombinedONNXJetTagsProducer::make_inputs().

5  {
6  // jet variables
7  const auto& jet_features = features.jet_features;
8  *ptr = jet_features.pt;
9  *(++ptr) = jet_features.eta;
10  // number of elements in different collections
11  *(++ptr) = features.c_pf_features.size();
12  *(++ptr) = features.n_pf_features.size();
13  *(++ptr) = features.sv_features.size();
14  *(++ptr) = features.npv;
15  // variables from ShallowTagInfo
16  const auto& tag_info_features = features.tag_info_features;
17  *(++ptr) = tag_info_features.trackSumJetEtRatio;
18  *(++ptr) = tag_info_features.trackSumJetDeltaR;
19  *(++ptr) = tag_info_features.vertexCategory;
20  *(++ptr) = tag_info_features.trackSip2dValAboveCharm;
21  *(++ptr) = tag_info_features.trackSip2dSigAboveCharm;
22  *(++ptr) = tag_info_features.trackSip3dValAboveCharm;
23  *(++ptr) = tag_info_features.trackSip3dSigAboveCharm;
24  *(++ptr) = tag_info_features.jetNSelectedTracks;
25  *(++ptr) = tag_info_features.jetNTracksEtaRel;
26  }
ShallowTagInfoFeatures tag_info_features
std::vector< NeutralCandidateFeatures > n_pf_features
std::vector< SecondaryVertexFeatures > sv_features
std::vector< ChargedCandidateFeatures > c_pf_features
float btagbtvdeep::logWithOffset ( float  v,
float  logOffset = 0 
)

Definition at line 33 of file SeedingTracksConverter.h.

References f, and cmsBatch::log.

Referenced by seedingTracksToFeatures().

33 {if (v==0.) return 0.; return logOffset + log(std::fabs(v))*std::copysign(1.f, v);};
double f[11][100]
float btagbtvdeep::lost_inner_hits_from_pfcand ( const reco::PFCandidate pfcand)

Definition at line 116 of file deep_helpers.cc.

References reco::PFCandidate::bestTrack(), muons_cff::highPurity, reco::TrackBase::highPurity, edm::Ref< C, T, F >::isNonnull(), lostInnerHitsMask, lostInnerHitsShift, trackHighPurityMask, trackHighPurityShift, and reco::PFCandidate::trackRef().

Referenced by dump_vector(), and DeepBoostedJetTagInfoProducer::fillParticleFeatures().

116  {
117  const auto & pseudo_track = (pfcand.bestTrack()) ? *pfcand.bestTrack() : reco::Track();
118  // conditions from PackedCandidate producer
119  bool highPurity = pfcand.trackRef().isNonnull() && pseudo_track.quality(reco::Track::highPurity);
120  // do same bit operations than in PackedCandidate
121  uint16_t qualityFlags = 0;
122  qualityFlags = (qualityFlags & ~trackHighPurityMask) | ((highPurity << trackHighPurityShift) & trackHighPurityMask);
123  return int16_t((qualityFlags & lostInnerHitsMask)>>lostInnerHitsShift)-1;
124  }
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:251
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:442
const reco::Track * bestTrack() const override
Definition: PFCandidate.h:162
float btagbtvdeep::mindrsvpfcand ( const std::vector< reco::VertexCompositePtrCandidate > &  svs,
const reco::Candidate cand,
float  mindr = 0.4 
)

Definition at line 73 of file deep_helpers.cc.

References reco::deltaR(), and MTVHistoProducerAlgoForTrackerBlock_cfi::mindr.

Referenced by dump_vector(), DeepBoostedJetTagInfoProducer::fillParticleFeatures(), DeepDoubleXTagInfoProducer::produce(), and DeepFlavourTagInfoProducer::produce().

74  {
75 
76  for (unsigned int i0=0; i0<svs.size(); ++i0) {
77 
78  float tempdr = reco::deltaR(svs[i0],*cand);
79  if (tempdr<mindr) { mindr = tempdr; }
80 
81  }
82  return mindr;
83  }
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
void btagbtvdeep::neighbourTrack_tensor_filler ( float *&  ptr,
const btagbtvdeep::TrackPairFeatures neighbourTrack_features 
)

Definition at line 102 of file tensor_fillers.cc.

References btagbtvdeep::TrackPairFeatures::deta_PCAjetDirs, btagbtvdeep::TrackPairFeatures::dist_PCAjetAxis, btagbtvdeep::TrackPairFeatures::distPCA, btagbtvdeep::TrackPairFeatures::dotprod_PCAjetMomenta, btagbtvdeep::TrackPairFeatures::dotprodSeed, btagbtvdeep::TrackPairFeatures::dotprodTrack, btagbtvdeep::TrackPairFeatures::dotprodTrackSeed2D, btagbtvdeep::TrackPairFeatures::dotprodTrackSeed3D, btagbtvdeep::TrackPairFeatures::dotprodTrackSeedVectors2D, btagbtvdeep::TrackPairFeatures::dotprodTrackSeedVectors3D, btagbtvdeep::TrackPairFeatures::dphi_PCAjetDirs, btagbtvdeep::TrackPairFeatures::dsigPCA, btagbtvdeep::TrackPairFeatures::dxy, btagbtvdeep::TrackPairFeatures::dz, btagbtvdeep::TrackPairFeatures::eta, btagbtvdeep::TrackPairFeatures::ip2D, btagbtvdeep::TrackPairFeatures::ip3D, btagbtvdeep::TrackPairFeatures::mass, btagbtvdeep::TrackPairFeatures::phi, btagbtvdeep::TrackPairFeatures::pt, btagbtvdeep::TrackPairFeatures::pvd_PCAonSeed, btagbtvdeep::TrackPairFeatures::pvd_PCAonTrack, btagbtvdeep::TrackPairFeatures::sip2D, btagbtvdeep::TrackPairFeatures::sip3D, btagbtvdeep::TrackPairFeatures::x_PCAonSeed, btagbtvdeep::TrackPairFeatures::x_PCAonTrack, btagbtvdeep::TrackPairFeatures::xerr_PCAonSeed, btagbtvdeep::TrackPairFeatures::xerr_PCAonTrack, btagbtvdeep::TrackPairFeatures::y_PCAonSeed, btagbtvdeep::TrackPairFeatures::y_PCAonTrack, btagbtvdeep::TrackPairFeatures::yerr_PCAonSeed, btagbtvdeep::TrackPairFeatures::yerr_PCAonTrack, btagbtvdeep::TrackPairFeatures::z_PCAonSeed, btagbtvdeep::TrackPairFeatures::z_PCAonTrack, btagbtvdeep::TrackPairFeatures::zerr_PCAonSeed, and btagbtvdeep::TrackPairFeatures::zerr_PCAonTrack.

Referenced by DeepCombinedONNXJetTagsProducer::make_inputs(), and DeepVertexONNXJetTagsProducer::make_inputs().

102  {
103  *ptr = neighbourTrack_features.pt;
104  *(++ptr) = neighbourTrack_features.eta;
105  *(++ptr) = neighbourTrack_features.phi;
106  *(++ptr) = neighbourTrack_features.dz;
107  *(++ptr) = neighbourTrack_features.dxy;
108  *(++ptr) = neighbourTrack_features.mass;
109  *(++ptr) = neighbourTrack_features.ip3D;
110  *(++ptr) = neighbourTrack_features.sip3D;
111  *(++ptr) = neighbourTrack_features.ip2D;
112  *(++ptr) = neighbourTrack_features.sip2D;
113  *(++ptr) = neighbourTrack_features.distPCA;
114  *(++ptr) = neighbourTrack_features.dsigPCA;
115  *(++ptr) = neighbourTrack_features.x_PCAonSeed;
116  *(++ptr) = neighbourTrack_features.y_PCAonSeed;
117  *(++ptr) = neighbourTrack_features.z_PCAonSeed;
118  *(++ptr) = neighbourTrack_features.xerr_PCAonSeed;
119  *(++ptr) = neighbourTrack_features.yerr_PCAonSeed;
120  *(++ptr) = neighbourTrack_features.zerr_PCAonSeed;
121  *(++ptr) = neighbourTrack_features.x_PCAonTrack;
122  *(++ptr) = neighbourTrack_features.y_PCAonTrack;
123  *(++ptr) = neighbourTrack_features.z_PCAonTrack;
124  *(++ptr) = neighbourTrack_features.xerr_PCAonTrack;
125  *(++ptr) = neighbourTrack_features.yerr_PCAonTrack;
126  *(++ptr) = neighbourTrack_features.zerr_PCAonTrack;
127  *(++ptr) = neighbourTrack_features.dotprodTrack;
128  *(++ptr) = neighbourTrack_features.dotprodSeed;
129  *(++ptr) = neighbourTrack_features.dotprodTrackSeed2D;
130  *(++ptr) = neighbourTrack_features.dotprodTrackSeed3D;
131  *(++ptr) = neighbourTrack_features.dotprodTrackSeedVectors2D;
132  *(++ptr) = neighbourTrack_features.dotprodTrackSeedVectors3D;
133  *(++ptr) = neighbourTrack_features.pvd_PCAonSeed;
134  *(++ptr) = neighbourTrack_features.pvd_PCAonTrack;
135  *(++ptr) = neighbourTrack_features.dist_PCAjetAxis;
136  *(++ptr) = neighbourTrack_features.dotprod_PCAjetMomenta;
137  *(++ptr) = neighbourTrack_features.deta_PCAjetDirs;
138  *(++ptr) = neighbourTrack_features.dphi_PCAjetDirs;
139  }
void btagbtvdeep::npf_tensor_filler ( float *&  ptr,
const btagbtvdeep::NeutralCandidateFeatures n_pf_features 
)
void btagbtvdeep::packedCandidateToFeatures ( const pat::PackedCandidate n_pf,
const pat::Jet jet,
const float  drminpfcandsv,
const float  jetR,
NeutralCandidateFeatures n_pf_features 
)

Definition at line 7 of file NeutralCandidateConverter.cc.

References commonCandidateToFeatures(), btagbtvdeep::NeutralCandidateFeatures::hadFrac, pat::PackedCandidate::hcalFraction(), btagbtvdeep::NeutralCandidateFeatures::puppiw, and pat::PackedCandidate::puppiWeight().

10  {
11 
12  commonCandidateToFeatures(n_pf, jet, drminpfcandsv, jetR, n_pf_features);
13 
14  n_pf_features.hadFrac = n_pf->hcalFraction();
15  n_pf_features.puppiw = n_pf->puppiWeight();
16 
17  }
float puppiWeight() const
float hcalFraction() const
void commonCandidateToFeatures(const CandidateType *c_pf, const reco::Jet &jet, const TrackInfoBuilder &track_info, const float &drminpfcandsv, const float &jetR, ChargedCandidateFeatures &c_pf_features, const bool flip=false)
void btagbtvdeep::packedCandidateToFeatures ( const pat::PackedCandidate c_pf,
const pat::Jet jet,
const TrackInfoBuilder track_info,
const float  drminpfcandsv,
const float  jetR,
ChargedCandidateFeatures c_pf_features,
const bool  flip = false 
)

Definition at line 6 of file ChargedCandidateConverter.cc.

References pat::PackedCandidate::bestTrack(), catch_infs(), catch_infs_and_bound(), btagbtvdeep::ChargedCandidateFeatures::chi2, commonCandidateToFeatures(), btagbtvdeep::ChargedCandidateFeatures::dxy, pat::PackedCandidate::dxy(), pat::PackedCandidate::dxyError(), btagbtvdeep::ChargedCandidateFeatures::dxysig, btagbtvdeep::ChargedCandidateFeatures::dz, pat::PackedCandidate::dz(), pat::PackedCandidate::dzError(), btagbtvdeep::ChargedCandidateFeatures::dzsig, pat::PackedCandidate::hasTrackDetails(), reco::TrackBase::loose, pat::PackedCandidate::pseudoTrack(), btagbtvdeep::ChargedCandidateFeatures::puppiw, pat::PackedCandidate::puppiWeight(), pat::PackedCandidate::pvAssociationQuality(), btagbtvdeep::ChargedCandidateFeatures::quality, and btagbtvdeep::ChargedCandidateFeatures::vtx_ass.

Referenced by commonCandidateToFeatures(), DeepDoubleXTagInfoProducer::produce(), and DeepFlavourTagInfoProducer::produce().

11  {
12 
13  commonCandidateToFeatures(c_pf, jet, track_info, drminpfcandsv, jetR, c_pf_features, flip);
14 
15  c_pf_features.vtx_ass = c_pf->pvAssociationQuality();
16 
17  c_pf_features.puppiw = c_pf->puppiWeight();
18 
19  // if PackedCandidate does not have TrackDetails this gives an Exception
20  // because unpackCovariance might be called for pseudoTrack/bestTrack
21  if (c_pf->hasTrackDetails()) {
22  const auto & pseudo_track = c_pf->pseudoTrack();
23  c_pf_features.chi2 = catch_infs_and_bound(pseudo_track.normalizedChi2(),300,-1,300);
24  // this returns the quality enum not a mask.
25  c_pf_features.quality = pseudo_track.qualityMask();
26  } else {
27  // default negative chi2 and loose track if notTrackDetails
28  c_pf_features.chi2 = catch_infs_and_bound(-1,300,-1,300);
29  c_pf_features.quality =(1 << reco::TrackBase::loose);
30  }
31 
32  c_pf_features.dxy = catch_infs(c_pf->dxy());
33  c_pf_features.dz = catch_infs(c_pf->dz());
34  c_pf_features.dxysig = c_pf->bestTrack() ? catch_infs(c_pf->dxy() / c_pf->dxyError()) : 0;
35  c_pf_features.dzsig = c_pf->bestTrack() ? catch_infs(c_pf->dz() / c_pf->dzError()) : 0;
36  }
float puppiWeight() const
virtual float dz(size_t ipv=0) const
dz with respect to the PV[ipv]
float dxyError() const override
uncertainty on dxy
const float catch_infs(const float in, const float replace_value=0.)
Definition: deep_helpers.cc:21
float dzError() const override
uncertainty on dz
const reco::Track * bestTrack() const override
return a pointer to the track if present. otherwise, return a null pointer
const float catch_infs_and_bound(const float in, const float replace_value, const float lowerbound, const float upperbound, const float offset=0., const bool use_offsets=true)
Definition: deep_helpers.cc:34
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:588
const PVAssociationQuality pvAssociationQuality() const
virtual const reco::Track & pseudoTrack() const
bool hasTrackDetails() const
Return true if a bestTrack can be extracted from this Candidate.
virtual float dxy() const
dxy with respect to the PV ref
void commonCandidateToFeatures(const CandidateType *c_pf, const reco::Jet &jet, const TrackInfoBuilder &track_info, const float &drminpfcandsv, const float &jetR, ChargedCandidateFeatures &c_pf_features, const bool flip=false)
float btagbtvdeep::quality_from_pfcand ( const reco::PFCandidate pfcand)

Definition at line 100 of file deep_helpers.cc.

References reco::PFCandidate::bestTrack(), muons_cff::highPurity, reco::TrackBase::highPurity, edm::Ref< C, T, F >::isNonnull(), reco::TrackBase::loose, jets_cff::quality, trackHighPurityMask, trackHighPurityShift, and reco::PFCandidate::trackRef().

Referenced by dump_vector(), DeepBoostedJetTagInfoProducer::fillParticleFeatures(), and recoCandidateToFeatures().

100  {
101  const auto & pseudo_track = (pfcand.bestTrack()) ? *pfcand.bestTrack() : reco::Track();
102  // conditions from PackedCandidate producer
103  bool highPurity = pfcand.trackRef().isNonnull() && pseudo_track.quality(reco::Track::highPurity);
104  // do same bit operations than in PackedCandidate
105  uint16_t qualityFlags = 0;
106  qualityFlags = (qualityFlags & ~trackHighPurityMask) | ((highPurity << trackHighPurityShift) & trackHighPurityMask);
107  bool isHighPurity = (qualityFlags & trackHighPurityMask)>>trackHighPurityShift;
108  // to do as in TrackBase
109  uint8_t quality = (1 << reco::TrackBase::loose);
110  if (isHighPurity) {
111  quality |= (1 << reco::TrackBase::highPurity);
112  }
113  return quality;
114  }
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:251
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:442
const reco::Track * bestTrack() const override
Definition: PFCandidate.h:162
void btagbtvdeep::recoCandidateToFeatures ( const reco::PFCandidate n_pf,
const reco::Jet jet,
const float  drminpfcandsv,
const float  jetR,
const float  puppiw,
NeutralCandidateFeatures n_pf_features 
)

Definition at line 19 of file NeutralCandidateConverter.cc.

References funct::abs(), commonCandidateToFeatures(), reco::PFCandidate::ecalEnergy(), btagbtvdeep::NeutralCandidateFeatures::hadFrac, reco::PFCandidate::hcalEnergy(), reco::LeafCandidate::pdgId(), and btagbtvdeep::NeutralCandidateFeatures::puppiw.

22  {
23 
24  commonCandidateToFeatures(n_pf, jet, drminpfcandsv, jetR, n_pf_features);
25  n_pf_features.puppiw = puppiw;
26 
27  // need to get a value map and more stuff to do properly
28  // otherwise will be different than for PackedCandidates
29  // https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/PatAlgos/python/slimming/packedPFCandidates_cfi.py
30  if(abs(n_pf->pdgId()) == 1 || abs(n_pf->pdgId()) == 130) {
31  n_pf_features.hadFrac = n_pf->hcalEnergy()/(n_pf->ecalEnergy()+n_pf->hcalEnergy());
32  } else {
33  n_pf_features.hadFrac = 0;
34  }
35 
36  }
double ecalEnergy() const
return corrected Ecal energy
Definition: PFCandidate.h:222
int pdgId() const final
PDG identifier.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double hcalEnergy() const
return corrected Hcal energy
Definition: PFCandidate.h:232
void commonCandidateToFeatures(const CandidateType *c_pf, const reco::Jet &jet, const TrackInfoBuilder &track_info, const float &drminpfcandsv, const float &jetR, ChargedCandidateFeatures &c_pf_features, const bool flip=false)
void btagbtvdeep::recoCandidateToFeatures ( const reco::PFCandidate c_pf,
const reco::Jet jet,
const TrackInfoBuilder track_info,
const float  drminpfcandsv,
const float  jetR,
const float  puppiw,
const int  pv_ass_quality,
const reco::VertexRef pv,
ChargedCandidateFeatures c_pf_features,
const bool  flip = false 
)

Definition at line 38 of file ChargedCandidateConverter.cc.

References reco::PFCandidate::bestTrack(), catch_infs_and_bound(), btagbtvdeep::ChargedCandidateFeatures::chi2, commonCandidateToFeatures(), btagbtvdeep::ChargedCandidateFeatures::puppiw, btagbtvdeep::ChargedCandidateFeatures::quality, quality_from_pfcand(), btagbtvdeep::ChargedCandidateFeatures::vtx_ass, and vtx_ass_from_pfcand().

Referenced by commonCandidateToFeatures(), DeepDoubleXTagInfoProducer::produce(), and DeepFlavourTagInfoProducer::produce().

45  {
46 
47  commonCandidateToFeatures(c_pf, jet, track_info, drminpfcandsv, jetR, c_pf_features, flip);
48 
49  c_pf_features.vtx_ass = vtx_ass_from_pfcand(*c_pf, pv_ass_quality, pv);
50  c_pf_features.puppiw = puppiw;
51 
52  const auto & pseudo_track = (c_pf->bestTrack()) ? *c_pf->bestTrack() : reco::Track();
53  c_pf_features.chi2 = catch_infs_and_bound(std::floor(pseudo_track.normalizedChi2()),300,-1,300);
54  c_pf_features.quality = quality_from_pfcand(*c_pf);
55 
56  // To be implemented if FatJet tag becomes RECO compatible
57  // const auto *trk =
58  // float dz =
59  // float dxy =
60 
61  // c_pf_features.dxy =
62  // c_pf_features.dz =
63  // c_pf_features.dxysig =
64  // c_pf_features.dzsig =
65  }
float quality_from_pfcand(const reco::PFCandidate &pfcand)
const float catch_infs_and_bound(const float in, const float replace_value, const float lowerbound, const float upperbound, const float offset=0., const bool use_offsets=true)
Definition: deep_helpers.cc:34
float vtx_ass_from_pfcand(const reco::PFCandidate &pfcand, int pv_ass_quality, const reco::VertexRef &pv)
Definition: deep_helpers.cc:90
void commonCandidateToFeatures(const CandidateType *c_pf, const reco::Jet &jet, const TrackInfoBuilder &track_info, const float &drminpfcandsv, const float &jetR, ChargedCandidateFeatures &c_pf_features, const bool flip=false)
const reco::Track * bestTrack() const override
Definition: PFCandidate.h:162
void btagbtvdeep::seedingTracksToFeatures ( const std::vector< reco::TransientTrack > &  selectedTracks,
const std::vector< float > &  masses,
const reco::Jet jet,
const reco::Vertex pv,
HistogramProbabilityEstimator probabilityEstimator,
bool  computeProbabilities,
std::vector< btagbtvdeep::SeedingTrackFeatures > &  seedingT_features_vector 
)

Definition at line 23 of file SeedingTracksConverter.cc.

References IPTools::absoluteImpactParameter3D(), IPTools::absoluteTransverseImpactParameter(), btagbtvdeep::SeedingTrackInfoBuilder::buildSeedingTrackInfo(), btagbtvdeep::TrackPairInfoBuilder::buildTrackPairInfo(), btagbtvdeep::SeedingTrackFeatures::chi2reduced, IPTools::closestApproachToJet(), impactParameterTagInfos_cfi::computeProbabilities, reco::deltaR(), btagbtvdeep::TrackPairFeatures::deta_PCAjetDirs, btagbtvdeep::TrackPairFeatures::dist_PCAjetAxis, btagbtvdeep::TrackPairFeatures::distPCA, btagbtvdeep::TrackPairFeatures::dotprod_PCAjetMomenta, btagbtvdeep::TrackPairFeatures::dotprodSeed, btagbtvdeep::TrackPairFeatures::dotprodTrack, btagbtvdeep::TrackPairFeatures::dotprodTrackSeed2D, btagbtvdeep::TrackPairFeatures::dotprodTrackSeed3D, btagbtvdeep::TrackPairFeatures::dotprodTrackSeedVectors2D, btagbtvdeep::TrackPairFeatures::dotprodTrackSeedVectors3D, btagbtvdeep::TrackPairFeatures::dphi_PCAjetDirs, btagbtvdeep::TrackPairFeatures::dsigPCA, btagbtvdeep::TrackPairFeatures::dxy, btagbtvdeep::SeedingTrackFeatures::dxy, btagbtvdeep::TrackPairFeatures::dz, btagbtvdeep::SeedingTrackFeatures::dz, btagbtvdeep::TrackPairFeatures::eta, btagbtvdeep::SeedingTrackFeatures::eta, TrajectoryStateOnSurface::globalPosition(), mps_fire::i, btagbtvdeep::TrackPairFeatures::ip2D, btagbtvdeep::SeedingTrackFeatures::ip2D, btagbtvdeep::TrackPairFeatures::ip3D, btagbtvdeep::SeedingTrackFeatures::ip3D, TrajectoryStateOnSurface::isValid(), metsig::jet, btagbtvdeep::SeedingTrackFeatures::jetAxisDistance, btagbtvdeep::SeedingTrackFeatures::jetAxisDlength, IPTools::jetTrackDistance(), cmsBatch::log, logWithOffset(), mag(), btagbtvdeep::TrackPairFeatures::mass, btagbtvdeep::SeedingTrackFeatures::mass, btagbtvdeep::SeedingTrackFeatures::nearTracks, btagbtvdeep::SeedingTrackFeatures::nHits, btagbtvdeep::SeedingTrackFeatures::nPixelHits, btagbtvdeep::TrackPairInfoBuilder::pca_distance(), btagbtvdeep::TrackPairFeatures::phi, btagbtvdeep::SeedingTrackFeatures::phi, reco::Vertex::position(), btagbtvdeep::TrackPairFeatures::pt, btagbtvdeep::SeedingTrackFeatures::pt, MetAnalyzer::pv(), btagbtvdeep::TrackPairFeatures::pvd_PCAonSeed, btagbtvdeep::TrackPairFeatures::pvd_PCAonTrack, reco::LeafCandidate::px(), reco::LeafCandidate::py(), reco::LeafCandidate::pz(), SurveyInfoScenario_cff::seed, btagbtvdeep::SeedingTrackFeatures::signedIp2D, btagbtvdeep::SeedingTrackFeatures::signedIp3D, btagbtvdeep::SeedingTrackFeatures::signedSip2D, btagbtvdeep::SeedingTrackFeatures::signedSip3D, btagbtvdeep::TrackPairFeatures::sip2D, btagbtvdeep::SeedingTrackFeatures::sip2D, btagbtvdeep::TrackPairFeatures::sip3D, btagbtvdeep::SeedingTrackFeatures::sip3D, btagbtvdeep::SeedingTrackInfoBuilder::sip3d_Signed(), btagbtvdeep::SeedingTrackFeatures::trackProbability2D, btagbtvdeep::SeedingTrackFeatures::trackProbability3D, groupFilesInBlocks::tt, reco::Vertex::x(), btagbtvdeep::TrackPairFeatures::x_PCAonSeed, btagbtvdeep::TrackPairFeatures::x_PCAonTrack, btagbtvdeep::TrackPairFeatures::xerr_PCAonSeed, btagbtvdeep::TrackPairFeatures::xerr_PCAonTrack, reco::Vertex::y(), btagbtvdeep::TrackPairFeatures::y_PCAonSeed, btagbtvdeep::TrackPairFeatures::y_PCAonTrack, btagbtvdeep::TrackPairFeatures::yerr_PCAonSeed, btagbtvdeep::TrackPairFeatures::yerr_PCAonTrack, reco::Vertex::z(), btagbtvdeep::TrackPairFeatures::z_PCAonSeed, btagbtvdeep::TrackPairFeatures::z_PCAonTrack, btagbtvdeep::TrackPairFeatures::zerr_PCAonSeed, and btagbtvdeep::TrackPairFeatures::zerr_PCAonTrack.

Referenced by DeepFlavourTagInfoProducer::produce().

32  {
33 
34  GlobalVector jetdirection(jet.px(),jet.py(),jet.pz());
35  GlobalPoint pvp(pv.x(),pv.y(),pv.z());
36 
37  std::multimap<double,std::pair<btagbtvdeep::SeedingTrackInfoBuilder,std::vector<btagbtvdeep::TrackPairFeatures>>> sortedSeedsMap;
38  std::multimap<double,btagbtvdeep::TrackPairInfoBuilder> sortedNeighboursMap;
39 
40  std::vector<btagbtvdeep::TrackPairFeatures> tp_features_vector;
41 
42  sortedSeedsMap.clear();
43  seedingT_features_vector.clear();
44 
45  std::vector<std::pair<bool,Measurement1D>> absIP3D(selectedTracks.size());
46  std::vector<std::pair<bool,Measurement1D>> absIP2D(selectedTracks.size());
47  std::vector<bool> absIP3D_filled(selectedTracks.size(), false);
48  std::vector<bool> absIP2D_filled(selectedTracks.size(), false);
49 
50  unsigned int selTrackCount=0;
51 
52  for(auto const& it : selectedTracks){
53 
54  selTrackCount+=1;
55  sortedNeighboursMap.clear();
56  tp_features_vector.clear();
57 
58  if (reco::deltaR(it.track(), jet) > 0.4) continue;
59 
60  std::pair<bool,Measurement1D> ip = IPTools::absoluteImpactParameter3D(it, pv);
61 
62  absIP3D[selTrackCount-1]=ip;
63  absIP3D_filled[selTrackCount-1]=true;
64 
65  std::pair<double, Measurement1D> jet_dist =IPTools::jetTrackDistance(it, jetdirection, pv);
66  TrajectoryStateOnSurface closest = IPTools::closestApproachToJet(it.impactPointState(),pv, jetdirection,it.field());
67  float length=999;
68  if (closest.isValid()) length=(closest.globalPosition() - pvp).mag();
69 
70 
71  if (!(ip.first && ip.second.value() >= 0.0 &&
72  ip.second.significance() >= 1.0 &&
73  ip.second.value() <= 9999. &&
74  ip.second.significance() <= 9999. &&
75  it.track().normalizedChi2()<5. &&
76  std::fabs(it.track().dxy(pv.position())) < 2 &&
77  std::fabs(it.track().dz(pv.position())) < 17 &&
78  jet_dist.second.value()<0.07 &&
79  length<5. ))
80  continue;
81 
82  std::pair<bool,Measurement1D> ip2d = IPTools::absoluteTransverseImpactParameter(it, pv);
83 
84  absIP2D[selTrackCount-1]=ip2d;
85  absIP2D_filled[selTrackCount-1]=true;
86 
88  seedInfo.buildSeedingTrackInfo(&(it), pv, jet, masses[selTrackCount-1], ip, ip2d, jet_dist.second.value(), length, probabilityEstimator, computeProbabilities);
89 
90  unsigned int neighbourTrackCount=0;
91 
92  for(auto const& tt : selectedTracks){
93 
94  neighbourTrackCount+=1;
95 
96  if(neighbourTrackCount==selTrackCount) continue;
97  if(std::fabs(pv.z()-tt.track().vz())>0.1) continue;
98 
99  //avoid calling IPs twice
100  if(!absIP2D_filled[neighbourTrackCount-1])
101  {
102  absIP2D[neighbourTrackCount-1]=IPTools::absoluteTransverseImpactParameter(tt,pv);
103  absIP2D_filled[neighbourTrackCount-1]=true;
104  }
105 
106  if(!absIP3D_filled[neighbourTrackCount-1])
107  {
108  absIP3D[neighbourTrackCount-1]= IPTools::absoluteImpactParameter3D(tt,pv);
109  absIP3D_filled[neighbourTrackCount-1]=true;
110  }
111 
112  std::pair<bool,Measurement1D> t_ip = absIP3D[neighbourTrackCount-1];
113  std::pair<bool,Measurement1D> t_ip2d = absIP2D[neighbourTrackCount-1];
114 
115  btagbtvdeep::TrackPairInfoBuilder trackPairInfo;
116  trackPairInfo.buildTrackPairInfo(&(it),&(tt),pv,masses[neighbourTrackCount-1],jetdirection, t_ip, t_ip2d);
117  sortedNeighboursMap.insert(std::make_pair(trackPairInfo.pca_distance(), trackPairInfo));
118 
119  }
120 
121  int max_counter=0;
122 
123  for(auto const& im: sortedNeighboursMap){
124 
125  if(max_counter>=20) break;
126  btagbtvdeep::TrackPairFeatures tp_features;
127 
128  auto const& tp = im.second;
129 
130  tp_features.pt=(tp.track_pt()==0) ? 0: 1.0/tp.track_pt();
131  tp_features.eta=tp.track_eta();
132  tp_features.phi=tp.track_phi();
133  tp_features.mass=tp.track_candMass();
134  tp_features.dz=logWithOffset(tp.track_dz());
135  tp_features.dxy=logWithOffset(tp.track_dxy());
136  tp_features.ip3D=log(tp.track_ip3d());
137  tp_features.sip3D=log(tp.track_ip3dSig());
138  tp_features.ip2D=log(tp.track_ip2d());
139  tp_features.sip2D=log(tp.track_ip2dSig());
140  tp_features.distPCA=log(tp.pca_distance());
141  tp_features.dsigPCA=log(tp.pca_significance());
142  tp_features.x_PCAonSeed=tp.pcaSeed_x();
143  tp_features.y_PCAonSeed=tp.pcaSeed_y();
144  tp_features.z_PCAonSeed=tp.pcaSeed_z();
145  tp_features.xerr_PCAonSeed=tp.pcaSeed_xerr();
146  tp_features.yerr_PCAonSeed=tp.pcaSeed_yerr();
147  tp_features.zerr_PCAonSeed=tp.pcaSeed_zerr();
148  tp_features.x_PCAonTrack=tp.pcaTrack_x();
149  tp_features.y_PCAonTrack=tp.pcaTrack_y();
150  tp_features.z_PCAonTrack=tp.pcaTrack_z();
151  tp_features.xerr_PCAonTrack=tp.pcaTrack_xerr();
152  tp_features.yerr_PCAonTrack=tp.pcaTrack_yerr();
153  tp_features.zerr_PCAonTrack=tp.pcaTrack_zerr();
154  tp_features.dotprodTrack=tp.dotprodTrack();
155  tp_features.dotprodSeed=tp.dotprodSeed();
156  tp_features.dotprodTrackSeed2D=tp.dotprodTrackSeed2D();
157  tp_features.dotprodTrackSeed3D=tp.dotprodTrackSeed3D();
158  tp_features.dotprodTrackSeedVectors2D=tp.dotprodTrackSeed2DV();
159  tp_features.dotprodTrackSeedVectors3D=tp.dotprodTrackSeed3DV();
160  tp_features.pvd_PCAonSeed=log(tp.pcaSeed_dist());
161  tp_features.pvd_PCAonTrack=log(tp.pcaTrack_dist());
162  tp_features.dist_PCAjetAxis=log(tp.pca_jetAxis_dist());
163  tp_features.dotprod_PCAjetMomenta=tp.pca_jetAxis_dotprod();
164  tp_features.deta_PCAjetDirs=log(tp.pca_jetAxis_dEta());
165  tp_features.dphi_PCAjetDirs=tp.pca_jetAxis_dPhi();
166 
167 
168  max_counter=max_counter+1;
169  tp_features_vector.push_back(tp_features);
170 
171 
172  }
173 
174  sortedSeedsMap.insert(std::make_pair(-seedInfo.sip3d_Signed(), std::make_pair(seedInfo,tp_features_vector)));
175 
176  }
177 
178 
179  int max_counter_seed=0;
180 
181  for(auto const& im: sortedSeedsMap){
182 
183  if(max_counter_seed>=10) break;
184 
185  btagbtvdeep::SeedingTrackFeatures seed_features;
186 
187  auto const& seed = im.second.first;
188 
189  seed_features.nearTracks=im.second.second;
190  seed_features.pt=(seed.pt()==0) ? 0: 1.0/seed.pt();
191  seed_features.eta=seed.eta();
192  seed_features.phi=seed.phi();
193  seed_features.mass=seed.mass();
194  seed_features.dz=logWithOffset(seed.dz());
195  seed_features.dxy=logWithOffset(seed.dxy());
196  seed_features.ip3D=log(seed.ip3d());
197  seed_features.sip3D=log(seed.sip3d());
198  seed_features.ip2D=log(seed.ip2d());
199  seed_features.sip2D=log(seed.sip2d());
200  seed_features.signedIp3D=logWithOffset(seed.ip3d_Signed());
201  seed_features.signedSip3D=logWithOffset(seed.sip3d_Signed());
202  seed_features.signedIp2D=logWithOffset(seed.ip2d_Signed());
203  seed_features.signedSip2D=logWithOffset(seed.sip2d_Signed());
204  seed_features.trackProbability3D=seed.trackProbability3D();
205  seed_features.trackProbability2D=seed.trackProbability2D();
206  seed_features.chi2reduced=seed.chi2reduced();
207  seed_features.nPixelHits=seed.nPixelHits();
208  seed_features.nHits=seed.nHits();
209  seed_features.jetAxisDistance=log(seed.jetAxisDistance());
210  seed_features.jetAxisDlength=log(seed.jetAxisDlength());
211 
212 
213  max_counter_seed=max_counter_seed+1;
214  seedingT_features_vector.push_back(seed_features);
215 
216 
217  }
218 
219 
220  if (sortedSeedsMap.size()<10){
221 
222  for (unsigned int i=sortedSeedsMap.size(); i<10; i++){
223 
224 
225  std::vector<btagbtvdeep::TrackPairFeatures> tp_features_zeropad(20);
226  btagbtvdeep::SeedingTrackFeatures seed_features_zeropad;
227  seed_features_zeropad.nearTracks=tp_features_zeropad;
228  seedingT_features_vector.push_back(seed_features_zeropad);
229 
230  }
231 
232  }
233 
234  }
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
double y() const
y coordinate
Definition: Vertex.h:113
double px() const final
x coordinate of momentum vector
std::pair< bool, Measurement1D > absoluteImpactParameter3D(const reco::TransientTrack &transientTrack, const reco::Vertex &vertex)
Definition: IPTools.cc:37
GlobalPoint globalPosition() const
TrajectoryStateOnSurface closestApproachToJet(const TrajectoryStateOnSurface &state, const reco::Vertex &vertex, const GlobalVector &aJetDirection, const MagneticField *field)
Definition: IPTools.cc:177
const Point & position() const
position
Definition: Vertex.h:109
std::pair< double, Measurement1D > jetTrackDistance(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:200
double pz() const final
z coordinate of momentum vector
def pv(vc)
Definition: MetAnalyzer.py:7
double z() const
z coordinate
Definition: Vertex.h:115
std::vector< btagbtvdeep::TrackPairFeatures > nearTracks
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
void buildTrackPairInfo(const reco::TransientTrack *it, const reco::TransientTrack *tt, const reco::Vertex &pv, float mass, GlobalVector jetdirection, const std::pair< bool, Measurement1D > &t_ip, const std::pair< bool, Measurement1D > &t_ip2d)
void buildSeedingTrackInfo(const reco::TransientTrack *it, const reco::Vertex &pv, const reco::Jet &jet, float mass, const std::pair< bool, Measurement1D > &ip, const std::pair< bool, Measurement1D > &ip2d, float jet_distance, float jaxis_dlength, HistogramProbabilityEstimator *m_probabilityEstimator, bool m_computeProbabilities)
double x() const
x coordinate
Definition: Vertex.h:111
double py() const final
y coordinate of momentum vector
std::pair< bool, Measurement1D > absoluteTransverseImpactParameter(const reco::TransientTrack &transientTrack, const reco::Vertex &vertex)
Definition: IPTools.cc:43
float logWithOffset(float v, float logOffset=0)
void btagbtvdeep::seedTrack_tensor_filler ( float *&  ptr,
const btagbtvdeep::SeedingTrackFeatures seed_features 
)

Definition at line 78 of file tensor_fillers.cc.

References btagbtvdeep::SeedingTrackFeatures::chi2reduced, btagbtvdeep::SeedingTrackFeatures::dxy, btagbtvdeep::SeedingTrackFeatures::dz, btagbtvdeep::SeedingTrackFeatures::eta, btagbtvdeep::SeedingTrackFeatures::ip2D, btagbtvdeep::SeedingTrackFeatures::ip3D, btagbtvdeep::SeedingTrackFeatures::jetAxisDistance, btagbtvdeep::SeedingTrackFeatures::jetAxisDlength, btagbtvdeep::SeedingTrackFeatures::mass, btagbtvdeep::SeedingTrackFeatures::nHits, btagbtvdeep::SeedingTrackFeatures::nPixelHits, btagbtvdeep::SeedingTrackFeatures::phi, btagbtvdeep::SeedingTrackFeatures::pt, btagbtvdeep::SeedingTrackFeatures::signedIp2D, btagbtvdeep::SeedingTrackFeatures::signedIp3D, btagbtvdeep::SeedingTrackFeatures::signedSip2D, btagbtvdeep::SeedingTrackFeatures::signedSip3D, btagbtvdeep::SeedingTrackFeatures::sip2D, btagbtvdeep::SeedingTrackFeatures::sip3D, btagbtvdeep::SeedingTrackFeatures::trackProbability2D, and btagbtvdeep::SeedingTrackFeatures::trackProbability3D.

Referenced by DeepCombinedONNXJetTagsProducer::make_inputs(), and DeepVertexONNXJetTagsProducer::make_inputs().

78  {
79  *ptr = seed_features.pt;
80  *(++ptr) = seed_features.eta;
81  *(++ptr) = seed_features.phi;
82  *(++ptr) = seed_features.mass;
83  *(++ptr) = seed_features.dz;
84  *(++ptr) = seed_features.dxy;
85  *(++ptr) = seed_features.ip3D;
86  *(++ptr) = seed_features.sip3D;
87  *(++ptr) = seed_features.ip2D;
88  *(++ptr) = seed_features.sip2D;
89  *(++ptr) = seed_features.signedIp3D;
90  *(++ptr) = seed_features.signedSip3D;
91  *(++ptr) = seed_features.signedIp2D;
92  *(++ptr) = seed_features.signedSip2D;
93  *(++ptr) = seed_features.trackProbability3D;
94  *(++ptr) = seed_features.trackProbability2D;
95  *(++ptr) = seed_features.chi2reduced;
96  *(++ptr) = seed_features.nPixelHits;
97  *(++ptr) = seed_features.nHits;
98  *(++ptr) = seed_features.jetAxisDistance;
99  *(++ptr) = seed_features.jetAxisDlength;
100  }
void btagbtvdeep::sv_tensor_filler ( float *&  ptr,
const btagbtvdeep::SecondaryVertexFeatures sv_features 
)

Definition at line 56 of file tensor_fillers.cc.

References btagbtvdeep::SecondaryVertexFeatures::chi2, btagbtvdeep::SecondaryVertexFeatures::costhetasvpv, btagbtvdeep::SecondaryVertexFeatures::d3d, btagbtvdeep::SecondaryVertexFeatures::d3dsig, btagbtvdeep::SecondaryVertexFeatures::deltaR, btagbtvdeep::SecondaryVertexFeatures::dxy, btagbtvdeep::SecondaryVertexFeatures::dxysig, btagbtvdeep::SecondaryVertexFeatures::enratio, btagbtvdeep::SecondaryVertexFeatures::mass, btagbtvdeep::SecondaryVertexFeatures::normchi2, btagbtvdeep::SecondaryVertexFeatures::ntracks, and btagbtvdeep::SecondaryVertexFeatures::pt.

Referenced by DeepCombinedONNXJetTagsProducer::make_inputs().

56  {
57  *ptr = sv_features.pt;
58  *(++ptr) = sv_features.deltaR;
59  *(++ptr) = sv_features.mass;
60  *(++ptr) = sv_features.ntracks;
61  *(++ptr) = sv_features.chi2;
62  *(++ptr) = sv_features.normchi2;
63  *(++ptr) = sv_features.dxy;
64  *(++ptr) = sv_features.dxysig;
65  *(++ptr) = sv_features.d3d;
66  *(++ptr) = sv_features.d3dsig;
67  *(++ptr) = sv_features.costhetasvpv;
68  *(++ptr) = sv_features.enratio;
69  }
template<typename SVType , typename PVType >
bool btagbtvdeep::sv_vertex_comparator ( const SVType &  sva,
const SVType &  svb,
const PVType &  pv 
)

Definition at line 43 of file deep_helpers.h.

References catch_infs(), and vertexDxy().

Referenced by DeepBoostedJetTagInfoProducer::fillSVFeatures(), DeepDoubleXTagInfoProducer::produce(), and DeepFlavourTagInfoProducer::produce().

43  {
44  auto adxy = vertexDxy(sva,pv);
45  auto bdxy = vertexDxy(svb,pv);
46  float aval= adxy.value();
47  float bval= bdxy.value();
48  float aerr= adxy.error();
49  float berr= bdxy.error();
50 
51  float asig= catch_infs(aval/aerr,0.);
52  float bsig= catch_infs(bval/berr,0.);
53  return bsig<asig;
54  }
const float catch_infs(const float in, const float replace_value=0.)
Definition: deep_helpers.cc:21
Measurement1D vertexDxy(const reco::VertexCompositePtrCandidate &svcand, const reco::Vertex &pv)
Definition: deep_helpers.cc:50
def pv(vc)
Definition: MetAnalyzer.py:7
void btagbtvdeep::svToFeatures ( const reco::VertexCompositePtrCandidate sv,
const reco::Vertex pv,
const reco::Jet jet,
SecondaryVertexFeatures sv_features,
const bool  flip = false 
)

Definition at line 13 of file SecondaryVertexConverter.cc.

References catch_infs_and_bound(), btagbtvdeep::SecondaryVertexFeatures::chi2, btagbtvdeep::SecondaryVertexFeatures::costhetasvpv, btagbtvdeep::SecondaryVertexFeatures::d3d, btagbtvdeep::SecondaryVertexFeatures::d3dsig, btagbtvdeep::SecondaryVertexFeatures::deltaR, reco::deltaR(), btagbtvdeep::SecondaryVertexFeatures::dxy, btagbtvdeep::SecondaryVertexFeatures::dxysig, reco::LeafCandidate::energy(), btagbtvdeep::SecondaryVertexFeatures::enratio, btagbtvdeep::SecondaryVertexFeatures::mass, reco::LeafCandidate::mass(), reco::LeafCandidate::momentum(), btagbtvdeep::SecondaryVertexFeatures::normchi2, btagbtvdeep::SecondaryVertexFeatures::ntracks, reco::CompositePtrCandidate::numberOfDaughters(), btagbtvdeep::SecondaryVertexFeatures::pt, reco::LeafCandidate::pt(), btagbtvdeep::SecondaryVertexFeatures::ptrel, reco::VertexCompositePtrCandidate::vertexChi2(), vertexD3d(), vertexDdotP(), vertexDxy(), and reco::VertexCompositePtrCandidate::vertexNdof().

Referenced by DeepDoubleXTagInfoProducer::produce(), and DeepFlavourTagInfoProducer::produce().

16  {
17 
18  math::XYZVector jet_dir = jet.momentum().Unit();
19  sv_features.pt = sv.pt();
20  sv_features.ptrel = sv.pt() / jet.pt();
21  sv_features.deltaR = catch_infs_and_bound(std::fabs(reco::deltaR(sv, jet_dir)) - 0.5, 0, -2, 0);
22  sv_features.mass = sv.mass();
23  sv_features.ntracks = sv.numberOfDaughters();
24  sv_features.chi2 = sv.vertexChi2();
25  sv_features.normchi2 = catch_infs_and_bound(sv_features.chi2/sv.vertexNdof(),
26  1000, -1000, 1000);
27  const auto & dxy_meas = vertexDxy(sv,pv);
28  sv_features.dxy = dxy_meas.value();
29  sv_features.dxysig = catch_infs_and_bound(dxy_meas.value()/dxy_meas.error(),
30  0,-1,800);
31  const auto & d3d_meas = vertexD3d(sv,pv);
32  sv_features.d3d = d3d_meas.value();
33  sv_features.d3dsig = catch_infs_and_bound(d3d_meas.value()/d3d_meas.error(),
34  0,-1,800);
35  sv_features.costhetasvpv = (flip ? -1.f : 1.f)* vertexDdotP(sv,pv);
36  sv_features.enratio = sv.energy()/jet.energy();
37 
38  }
float vertexDdotP(const reco::VertexCompositePtrCandidate &sv, const reco::Vertex &pv)
Definition: deep_helpers.cc:66
Measurement1D vertexD3d(const reco::VertexCompositePtrCandidate &svcand, const reco::Vertex &pv)
Definition: deep_helpers.cc:58
double pt() const final
transverse momentum
size_t numberOfDaughters() const override
number of daughters
const float catch_infs_and_bound(const float in, const float replace_value, const float lowerbound, const float upperbound, const float offset=0., const bool use_offsets=true)
Definition: deep_helpers.cc:34
Vector momentum() const final
spatial momentum vector
Measurement1D vertexDxy(const reco::VertexCompositePtrCandidate &svcand, const reco::Vertex &pv)
Definition: deep_helpers.cc:50
double energy() const final
energy
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
double vertexChi2() const override
chi-squares
double mass() const final
mass
Measurement1D btagbtvdeep::vertexD3d ( const reco::VertexCompositePtrCandidate svcand,
const reco::Vertex pv 
)

Definition at line 58 of file deep_helpers.cc.

References VertexDistance3D::distance(), reco::VertexCompositePtrCandidate::fillVertexCovariance(), and reco::LeafCandidate::vertex().

Referenced by DeepBoostedJetTagInfoProducer::fillSVFeatures(), and svToFeatures().

58  {
59  VertexDistance3D dist;
61  reco::Vertex svtx(svcand.vertex(), csv);
62  return dist.distance(svtx, pv);
63  }
void fillVertexCovariance(CovarianceMatrix &v) const override
fill SMatrix
math::Error< dimension >::type CovarianceMatrix
covariance error matrix (3x3)
Definition: Vertex.h:45
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
const Point & vertex() const override
vertex position (overwritten by PF...)
float btagbtvdeep::vertexDdotP ( const reco::VertexCompositePtrCandidate sv,
const reco::Vertex pv 
)

Definition at line 66 of file deep_helpers.cc.

References edmIntegrityCheck::d, reco::LeafCandidate::momentum(), AlCaHLTBitMon_ParallelJobs::p, reco::LeafCandidate::vx(), reco::LeafCandidate::vy(), reco::LeafCandidate::vz(), reco::Vertex::x(), reco::Vertex::y(), and reco::Vertex::z().

Referenced by DeepBoostedJetTagInfoProducer::fillSVFeatures(), and svToFeatures().

66  {
68  reco::Candidate::Vector d(sv.vx() - pv.x(), sv.vy() - pv.y(), sv.vz() - pv.z());
69  return p.Unit().Dot(d.Unit());
70  }
math::XYZVector Vector
point in the space
Definition: Candidate.h:43
double vy() const override
y coordinate of vertex position
double y() const
y coordinate
Definition: Vertex.h:113
Vector momentum() const final
spatial momentum vector
double z() const
z coordinate
Definition: Vertex.h:115
double vz() const override
z coordinate of vertex position
double x() const
x coordinate
Definition: Vertex.h:111
double vx() const override
x coordinate of vertex position
Measurement1D btagbtvdeep::vertexDxy ( const reco::VertexCompositePtrCandidate svcand,
const reco::Vertex pv 
)

Definition at line 50 of file deep_helpers.cc.

References VertexDistanceXY::distance(), reco::VertexCompositePtrCandidate::fillVertexCovariance(), and reco::LeafCandidate::vertex().

Referenced by DeepBoostedJetTagInfoProducer::fillSVFeatures(), sv_vertex_comparator(), and svToFeatures().

50  {
51  VertexDistanceXY dist;
53  reco::Vertex svtx(svcand.vertex(), csv);
54  return dist.distance(svtx, pv);
55  }
void fillVertexCovariance(CovarianceMatrix &v) const override
fill SMatrix
math::Error< dimension >::type CovarianceMatrix
covariance error matrix (3x3)
Definition: Vertex.h:45
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
const Point & vertex() const override
vertex position (overwritten by PF...)
float btagbtvdeep::vtx_ass_from_pfcand ( const reco::PFCandidate pfcand,
int  pv_ass_quality,
const reco::VertexRef pv 
)

Definition at line 90 of file deep_helpers.cc.

References edm::Ref< C, T, F >::isNonnull(), reco::PFCandidate::trackRef(), and pat::PackedCandidate::UsedInFitTight.

Referenced by dump_vector(), DeepBoostedJetTagInfoProducer::fillParticleFeatures(), and recoCandidateToFeatures().

90  {
91  float vtx_ass = pat::PackedCandidate::PVAssociationQuality(qualityMap[pv_ass_quality]);
92  if (pfcand.trackRef().isNonnull() &&
93  pv->trackWeight(pfcand.trackRef()) > 0.5 &&
94  pv_ass_quality == 7) {
96  }
97  return vtx_ass;
98  }
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:251
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:442
static int qualityMap[8]
Definition: deep_helpers.cc:6

Variable Documentation

std::size_t btagbtvdeep::max_jetNSelectedTracks =100
static

Definition at line 11 of file ShallowTagInfoConverter.cc.

Referenced by bTagToFeatures().

int btagbtvdeep::qualityMap[8] = {1,0,1,1,4,4,5,6}
static

Definition at line 6 of file deep_helpers.cc.