CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
ParticleNetFeatureEvaluator Class Reference
Inheritance diagram for ParticleNetFeatureEvaluator:
edm::stream::EDProducer<>

Public Member Functions

 ParticleNetFeatureEvaluator (const edm::ParameterSet &)
 
 ~ParticleNetFeatureEvaluator () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

void beginStream (edm::StreamID) override
 
void endStream () override
 
void fillLostTrackFeatures (DeepBoostedJetFeatures &fts, const reco::Jet &jet)
 
void fillParticleFeatures (DeepBoostedJetFeatures &fts, const reco::Jet &jet, const std::vector< math::XYZTLorentzVector > &tau_pfcandidates, const pat::MuonCollection &muons, const pat::ElectronCollection &electrons, const pat::PhotonCollection &photons)
 
void fillSVFeatures (DeepBoostedJetFeatures &fts, const reco::Jet &jet)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
bool useTrackProperties (const pat::PackedCandidate *cand)
 

Private Attributes

edm::EDGetTokenT< pat::ElectronCollectionelectron_token_
 
unsigned int event
 
const bool flip_ip_sign_
 
unsigned int ijet
 
const bool include_neutrals_
 
float jet_eta
 
std::vector< float > jet_losttrack_charge
 
std::vector< float > jet_losttrack_deta
 
std::vector< float > jet_losttrack_dphi
 
std::vector< float > jet_losttrack_dxy
 
std::vector< float > jet_losttrack_dxysig
 
std::vector< float > jet_losttrack_dz
 
std::vector< float > jet_losttrack_dzsig
 
std::vector< float > jet_losttrack_eta
 
std::vector< float > jet_losttrack_etarel
 
std::vector< float > jet_losttrack_frompv
 
std::vector< float > jet_losttrack_npixhits
 
std::vector< float > jet_losttrack_nstriphits
 
std::vector< float > jet_losttrack_pt_log
 
std::vector< float > jet_losttrack_track_chi2
 
std::vector< float > jet_losttrack_track_qual
 
std::vector< float > jet_losttrack_trackjet_d3d
 
std::vector< float > jet_losttrack_trackjet_d3dsig
 
std::vector< float > jet_losttrack_trackjet_decayL
 
std::vector< float > jet_losttrack_trackjet_dist
 
float jet_mass
 
std::vector< float > jet_pfcand_calofraction
 
std::vector< float > jet_pfcand_charge
 
std::vector< float > jet_pfcand_deta
 
std::vector< float > jet_pfcand_dphi
 
std::vector< float > jet_pfcand_dxy
 
std::vector< float > jet_pfcand_dxysig
 
std::vector< float > jet_pfcand_dz
 
std::vector< float > jet_pfcand_dzsig
 
std::vector< float > jet_pfcand_electron_convProb
 
std::vector< float > jet_pfcand_electron_detaIn
 
std::vector< float > jet_pfcand_electron_dphiIn
 
std::vector< float > jet_pfcand_electron_r9
 
std::vector< float > jet_pfcand_electron_sigIetaIeta
 
std::vector< float > jet_pfcand_electron_sigIphiIphi
 
std::vector< float > jet_pfcand_energy_log
 
std::vector< float > jet_pfcand_eta
 
std::vector< float > jet_pfcand_etarel
 
std::vector< float > jet_pfcand_frompv
 
std::vector< float > jet_pfcand_hcalfraction
 
std::vector< float > jet_pfcand_id
 
std::vector< float > jet_pfcand_muon_chi2
 
std::vector< float > jet_pfcand_muon_id
 
std::vector< float > jet_pfcand_muon_isglobal
 
std::vector< float > jet_pfcand_muon_nstation
 
std::vector< float > jet_pfcand_muon_nvalidhit
 
std::vector< float > jet_pfcand_muon_segcomp
 
std::vector< float > jet_pfcand_nlostinnerhits
 
std::vector< float > jet_pfcand_npixhits
 
std::vector< float > jet_pfcand_nstriphits
 
std::vector< float > jet_pfcand_photon_eVeto
 
std::vector< float > jet_pfcand_photon_r9
 
std::vector< float > jet_pfcand_photon_sigIetaIeta
 
std::vector< float > jet_pfcand_ppara_ratio
 
std::vector< float > jet_pfcand_pperp_ratio
 
std::vector< float > jet_pfcand_pt_log
 
std::vector< float > jet_pfcand_puppiw
 
std::vector< float > jet_pfcand_tau_signal
 
std::vector< float > jet_pfcand_track_chi2
 
std::vector< float > jet_pfcand_track_qual
 
std::vector< float > jet_pfcand_trackjet_d3d
 
std::vector< float > jet_pfcand_trackjet_d3dsig
 
std::vector< float > jet_pfcand_trackjet_decayL
 
std::vector< float > jet_pfcand_trackjet_dist
 
float jet_phi
 
float jet_pt
 
float jet_pt_raw
 
const double jet_radius_
 
std::vector< float > jet_sv_chi2
 
std::vector< float > jet_sv_d3d
 
std::vector< float > jet_sv_d3dsig
 
std::vector< float > jet_sv_deta
 
std::vector< float > jet_sv_dphi
 
std::vector< float > jet_sv_dxy
 
std::vector< float > jet_sv_dxysig
 
std::vector< float > jet_sv_eta
 
std::vector< float > jet_sv_mass
 
std::vector< float > jet_sv_ntrack
 
std::vector< float > jet_sv_pt_log
 
edm::EDGetTokenT< edm::View< reco::Jet > > jet_token_
 
edm::EDGetTokenT< pat::PackedCandidateCollectionlosttrack_token_
 
edm::Handle< pat::PackedCandidateCollectionlosttracks_
 
const double max_dr_for_losttrack_
 
const double max_eta_for_taus_
 
const double max_jet_eta_
 
const double max_sip3dsig_for_flip_
 
const double min_jet_eta_
 
const double min_jet_pt_
 
const double min_pt_for_losttrack_
 
const double min_pt_for_pfcandidates_
 
const double min_pt_for_taus_
 
const double min_pt_for_track_properties_
 
edm::EDGetTokenT< pat::MuonCollectionmuon_token_
 
edm::EDGetTokenT< edm::View< reco::Candidate > > pfcand_token_
 
edm::Handle< edm::View< reco::Candidate > > pfcands_
 
edm::EDGetTokenT< pat::PhotonCollectionphoton_token_
 
const reco::Vertexpv_ = nullptr
 
edm::EDGetTokenT< reco::VertexCompositePtrCandidateCollectionsv_token_
 
edm::Handle< reco::VertexCompositePtrCandidateCollectionsvs_
 
edm::EDGetTokenT< pat::TauCollectiontau_token_
 
edm::ESHandle< TransientTrackBuildertrack_builder_
 
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordtrack_builder_token_
 
TTree * tree
 
edm::EDGetTokenT< reco::VertexCollectionvtx_token_
 
edm::Handle< reco::VertexCollectionvtxs_
 

Static Private Attributes

static const std::vector< std::string > losttrack_features_
 
static const std::vector< std::string > particle_features_
 
static const std::vector< std::string > sv_features_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 34 of file ParticleNetFeatureEvaluator.cc.

Constructor & Destructor Documentation

◆ ParticleNetFeatureEvaluator()

ParticleNetFeatureEvaluator::ParticleNetFeatureEvaluator ( const edm::ParameterSet iConfig)
explicit

Definition at line 254 of file ParticleNetFeatureEvaluator.cc.

255  : jet_radius_(iConfig.getParameter<double>("jet_radius")),
256  min_jet_pt_(iConfig.getParameter<double>("min_jet_pt")),
257  max_jet_eta_(iConfig.getParameter<double>("max_jet_eta")),
258  min_jet_eta_(iConfig.getParameter<double>("min_jet_eta")),
259  min_pt_for_track_properties_(iConfig.getParameter<double>("min_pt_for_track_properties")),
260  min_pt_for_pfcandidates_(iConfig.getParameter<double>("min_pt_for_pfcandidates")),
261  min_pt_for_losttrack_(iConfig.getParameter<double>("min_pt_for_losttrack")),
262  max_dr_for_losttrack_(iConfig.getParameter<double>("max_dr_for_losttrack")),
263  min_pt_for_taus_(iConfig.getParameter<double>("min_pt_for_taus")),
264  max_eta_for_taus_(iConfig.getParameter<double>("max_eta_for_taus")),
265  include_neutrals_(iConfig.getParameter<bool>("include_neutrals")),
266  flip_ip_sign_(iConfig.getParameter<bool>("flip_ip_sign")),
267  max_sip3dsig_for_flip_(iConfig.getParameter<double>("max_sip3dsig_for_flip")),
268  muon_token_(consumes<pat::MuonCollection>(iConfig.getParameter<edm::InputTag>("muons"))),
269  electron_token_(consumes<pat::ElectronCollection>(iConfig.getParameter<edm::InputTag>("electrons"))),
270  photon_token_(consumes<pat::PhotonCollection>(iConfig.getParameter<edm::InputTag>("photons"))),
271  tau_token_(consumes<pat::TauCollection>(iConfig.getParameter<edm::InputTag>("taus"))),
272  jet_token_(consumes<edm::View<reco::Jet>>(iConfig.getParameter<edm::InputTag>("jets"))),
273  losttrack_token_(consumes<pat::PackedCandidateCollection>(iConfig.getParameter<edm::InputTag>("losttracks"))),
274  vtx_token_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertices"))),
275  sv_token_(consumes<reco::VertexCompositePtrCandidateCollection>(
276  iConfig.getParameter<edm::InputTag>("secondary_vertices"))),
277  pfcand_token_(consumes<edm::View<reco::Candidate>>(iConfig.getParameter<edm::InputTag>("pf_candidates"))),
279  esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", "TransientTrackBuilder"))) {
280  produces<std::vector<reco::DeepBoostedJetTagInfo>>();
281 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< pat::ElectronCollection > electron_token_
edm::EDGetTokenT< pat::TauCollection > tau_token_
edm::EDGetTokenT< pat::MuonCollection > muon_token_
edm::EDGetTokenT< pat::PackedCandidateCollection > losttrack_token_
edm::EDGetTokenT< edm::View< reco::Jet > > jet_token_
edm::EDGetTokenT< reco::VertexCompositePtrCandidateCollection > sv_token_
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > track_builder_token_
edm::EDGetTokenT< pat::PhotonCollection > photon_token_
edm::EDGetTokenT< reco::VertexCollection > vtx_token_
edm::EDGetTokenT< edm::View< reco::Candidate > > pfcand_token_

◆ ~ParticleNetFeatureEvaluator()

ParticleNetFeatureEvaluator::~ParticleNetFeatureEvaluator ( )
override

Definition at line 283 of file ParticleNetFeatureEvaluator.cc.

283 {}

Member Function Documentation

◆ beginStream()

void ParticleNetFeatureEvaluator::beginStream ( edm::StreamID  )
inlineoverrideprivate

Definition at line 42 of file ParticleNetFeatureEvaluator.cc.

42 {}

◆ endStream()

void ParticleNetFeatureEvaluator::endStream ( )
inlineoverrideprivate

Definition at line 44 of file ParticleNetFeatureEvaluator.cc.

44 {}

◆ fillDescriptions()

void ParticleNetFeatureEvaluator::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 285 of file ParticleNetFeatureEvaluator.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

285  {
286  // pfDeepBoostedJetTagInfos
288  desc.add<double>("jet_radius", 0.8);
289  desc.add<double>("min_jet_pt", 150);
290  desc.add<double>("max_jet_eta", 99);
291  desc.add<double>("min_jet_eta", 0.0);
292  desc.add<double>("min_pt_for_track_properties", -1);
293  desc.add<double>("min_pt_for_pfcandidates", -1);
294  desc.add<double>("min_pt_for_losttrack", 1);
295  desc.add<double>("max_dr_for_losttrack", 0.4);
296  desc.add<double>("min_pt_for_taus", 20.);
297  desc.add<double>("max_eta_for_taus", 2.5);
298  desc.add<bool>("include_neutrals", true);
299  desc.add<bool>("flip_ip_sign", false);
300  desc.add<double>("max_sip3dsig_for_flip", 99999);
301  desc.add<edm::InputTag>("vertices", edm::InputTag("offlineSlimmedPrimaryVertices"));
302  desc.add<edm::InputTag>("secondary_vertices", edm::InputTag("slimmedSecondaryVertices"));
303  desc.add<edm::InputTag>("pf_candidates", edm::InputTag("packedPFCandidates"));
304  desc.add<edm::InputTag>("losttracks", edm::InputTag("lostTracks"));
305  desc.add<edm::InputTag>("jets", edm::InputTag("slimmedJetsAK8"));
306  desc.add<edm::InputTag>("muons", edm::InputTag("slimmedMuons"));
307  desc.add<edm::InputTag>("taus", edm::InputTag("slimmedTaus"));
308  desc.add<edm::InputTag>("electrons", edm::InputTag("slimmedElectrons"));
309  desc.add<edm::InputTag>("photons", edm::InputTag("slimmedPhotons"));
310  descriptions.add("ParticleNetFeatureEvaluator", desc);
311 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillLostTrackFeatures()

void ParticleNetFeatureEvaluator::fillLostTrackFeatures ( DeepBoostedJetFeatures fts,
const reco::Jet jet 
)
private

Definition at line 731 of file ParticleNetFeatureEvaluator.cc.

References a, b, reco::deltaR(), reco::btau::etaRel(), btagbtvdeep::DeepBoostedJetFeatures::fill(), CommonMethods::isnan(), metsig::jet, IPTools::jetTrackDistance(), dqm-mbProfile::log, Skims_PA_cff::name, btagbtvdeep::DeepBoostedJetFeatures::reserve(), IPTools::signedDecayLength3D(), IPTools::signedImpactParameter3D(), Measurement1D::significance(), jetUpdater_cfi::sort, HLT_2024v14_cff::track, and Measurement1D::value().

731  {
732  // some jet properties
733  TVector3 jet_direction(jet.momentum().Unit().x(), jet.momentum().Unit().y(), jet.momentum().Unit().z());
734  GlobalVector jet_ref_track_dir(jet.px(), jet.py(), jet.pz());
735  math::XYZVector jet_dir = jet.momentum().Unit();
736 
737  std::vector<pat::PackedCandidate> jet_lost_tracks;
738  for (size_t itrk = 0; itrk < losttracks_->size(); itrk++) {
739  if (reco::deltaR(losttracks_->at(itrk).p4(), jet.p4()) < max_dr_for_losttrack_ and
740  losttracks_->at(itrk).pt() > min_pt_for_losttrack_) {
741  jet_lost_tracks.push_back(losttracks_->at(itrk));
742  }
743  }
744  std::sort(
745  jet_lost_tracks.begin(), jet_lost_tracks.end(), [](const auto &a, const auto &b) { return a.pt() > b.pt(); });
746 
747  // reserve space
748  for (const auto &name : losttrack_features_)
749  fts.reserve(name, jet_lost_tracks.size());
750 
752  math::XYZPoint pv_ass_pos = pv_ass->position();
753 
754  for (auto const &ltrack : jet_lost_tracks) {
755  const reco::Track *track = ltrack.bestTrack();
756 
757  // only when computing the nagative tagger: remove charged candidates with high sip3d
758  if (flip_ip_sign_) {
759  reco::TransientTrack transientTrack = track_builder_->build(*track);
760  Measurement1D meas_ip3d = IPTools::signedImpactParameter3D(transientTrack, jet_ref_track_dir, *pv_).second;
761  if (!std::isnan(meas_ip3d.significance()) && meas_ip3d.significance() > max_sip3dsig_for_flip_) {
762  continue;
763  }
764  }
765  float ip_sign = flip_ip_sign_ ? -1.f : 1.f;
766 
767  fts.fill("jet_losttrack_pt_log", std::isnan(std::log(ltrack.pt())) ? 0 : std::log(ltrack.pt()));
768  fts.fill("jet_losttrack_eta", ltrack.eta());
769  fts.fill("jet_losttrack_charge", ltrack.charge());
770  fts.fill("jet_losttrack_frompv", ltrack.fromPV());
771  fts.fill("jet_losttrack_dz", ip_sign * (std::isnan(ltrack.dz(pv_ass_pos)) ? 0 : ltrack.dz(pv_ass_pos)));
772  fts.fill("jet_losttrack_dxy", ip_sign * (std::isnan(ltrack.dxy(pv_ass_pos)) ? 0 : ltrack.dxy(pv_ass_pos)));
773  fts.fill("jet_losttrack_npixhits", ltrack.numberOfPixelHits());
774  fts.fill("jet_losttrack_nstriphits", ltrack.stripLayersWithMeasurement());
775 
776  TVector3 ltrack_momentum(ltrack.momentum().x(), ltrack.momentum().y(), ltrack.momentum().z());
777  fts.fill("jet_losttrack_deta", jet_direction.Eta() - ltrack_momentum.Eta());
778  fts.fill("jet_losttrack_dphi", jet_direction.DeltaPhi(ltrack_momentum));
779  fts.fill("jet_losttrack_etarel",
780  std::isnan(reco::btau::etaRel(jet_dir, ltrack.momentum()))
781  ? 0
782  : reco::btau::etaRel(jet_dir, ltrack.momentum()));
783 
784  if (track) {
785  fts.fill("jet_losttrack_track_chi2", track->normalizedChi2());
786  fts.fill("jet_losttrack_track_qual", track->qualityMask());
787  fts.fill("jet_losttrack_dxysig",
788  std::isnan(fabs(ltrack.dxy(pv_ass_pos)) / ltrack.dxyError())
789  ? 0
790  : fabs(ltrack.dxy(pv_ass_pos)) / ltrack.dxyError());
791  fts.fill("jet_losttrack_dzsig",
792  std::isnan(fabs(ltrack.dz(pv_ass_pos)) / ltrack.dzError())
793  ? 0
794  : fabs(ltrack.dz(pv_ass_pos)) / ltrack.dzError());
795 
796  reco::TransientTrack transientTrack = track_builder_->build(*track);
797  Measurement1D meas_ip3d = IPTools::signedImpactParameter3D(transientTrack, jet_ref_track_dir, *pv_).second;
798  Measurement1D meas_jetdist = IPTools::jetTrackDistance(transientTrack, jet_ref_track_dir, *pv_).second;
799  Measurement1D meas_decayl = IPTools::signedDecayLength3D(transientTrack, jet_ref_track_dir, *pv_).second;
800 
801  fts.fill("jet_losttrack_trackjet_d3d", ip_sign * (std::isnan(meas_ip3d.value()) ? 0 : meas_ip3d.value()));
802  fts.fill("jet_losttrack_trackjet_d3dsig",
803  std::isnan(fabs(meas_ip3d.significance())) ? 0 : fabs(meas_ip3d.significance()));
804  fts.fill("jet_losttrack_trackjet_dist", std::isnan(-meas_jetdist.value()) ? 0 : -meas_jetdist.value());
805  fts.fill("jet_losttrack_trackjet_decayL", std::isnan(meas_decayl.value()) ? 0 : meas_decayl.value());
806  } else {
807  fts.fill("jet_losttrack_track_chi2", 0);
808  fts.fill("jet_losttrack_track_qual", 0);
809  fts.fill("jet_losttrack_dxysig", 0);
810  fts.fill("jet_losttrack_dzsig", 0);
811  fts.fill("jet_losttrack_trackjet_d3d", 0);
812  fts.fill("jet_losttrack_trackjet_d3dsig", 0);
813  fts.fill("jet_losttrack_trackjet_dist", 0);
814  fts.fill("jet_losttrack_trackjet_decayL", 0);
815  }
816 
817  fts.fill("lt_mask", 1);
818  }
819 }
def isnan(num)
edm::Handle< reco::VertexCollection > vtxs_
double etaRel(const math::XYZVector &dir, const math::XYZVector &track)
std::pair< bool, Measurement1D > signedDecayLength3D(const TrajectoryStateOnSurface &state, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:105
std::pair< bool, Measurement1D > signedImpactParameter3D(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:81
edm::ESHandle< TransientTrackBuilder > track_builder_
std::pair< double, Measurement1D > jetTrackDistance(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:206
reco::TransientTrack build(const reco::Track *p) const
void reserve(const std::string &name, unsigned capacity)
edm::Handle< pat::PackedCandidateCollection > losttracks_
static const std::vector< std::string > losttrack_features_
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
Definition: VertexFwd.h:13
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
double b
Definition: hdecay.h:120
void fill(const std::string &name, float value)
double value() const
Definition: Measurement1D.h:25
double significance() const
Definition: Measurement1D.h:29
double a
Definition: hdecay.h:121

◆ fillParticleFeatures()

void ParticleNetFeatureEvaluator::fillParticleFeatures ( DeepBoostedJetFeatures fts,
const reco::Jet jet,
const std::vector< math::XYZTLorentzVector > &  tau_pfcandidates,
const pat::MuonCollection muons,
const pat::ElectronCollection electrons,
const pat::PhotonCollection photons 
)
private

Definition at line 401 of file ParticleNetFeatureEvaluator.cc.

References a, funct::abs(), b, electrons_cff::convVtxFitProb, reco::Muon::CutBasedIdGlobalHighPt, reco::Muon::CutBasedIdLoose, reco::Muon::CutBasedIdMedium, reco::Muon::CutBasedIdTight, reco::Muon::CutBasedIdTrkHighPt, BPhysicsValidation_cfi::daughters, reco::deltaR(), HGC3DClusterGenMatchSelector_cfi::dR, pwdgSkimBPark_cfi::electrons, reco::btau::etaRel(), Exception, btagbtvdeep::DeepBoostedJetFeatures::fill(), spr::find(), HLT_2024v14_cff::full5x5_sigmaIetaIeta, cutBasedMuonId_MuonPOG_V0_cff::globalTrack, mps_fire::i, edm::errors::InvalidReference, CommonMethods::isnan(), metsig::jet, IPTools::jetTrackDistance(), dqm-mbProfile::log, HLT_2024v14_cff::minDR, DiMuonV_cfg::muons, Skims_PA_cff::name, TrackCollections2monitor_cff::normalizedChi2, or, TriggerAnalyzer::passed, BPHMonitor_cfi::photons, btagbtvdeep::DeepBoostedJetFeatures::reserve(), muon::segmentCompatibility(), IPTools::signedDecayLength3D(), IPTools::signedImpactParameter3D(), IPTools::signedTransverseImpactParameter(), Measurement1D::significance(), jetUpdater_cfi::sort, HLT_2024v14_cff::track, TrackInfoProducer_cfi::trackinfo, and Measurement1D::value().

406  {
407  // some jet properties
408  math::XYZVector jet_dir = jet.momentum().Unit();
409  TVector3 jet_direction(jet.momentum().Unit().x(), jet.momentum().Unit().y(), jet.momentum().Unit().z());
410  GlobalVector jet_ref_track_dir(jet.px(), jet.py(), jet.pz());
411  // vertexes
412  reco::VertexRefProd PVRefProd(vtxs_);
413  // track builder
415 
416  // make list of pf-candidates to be considered
417  std::vector<const pat::PackedCandidate *> daughters;
418  for (const auto &dau : jet.daughterPtrVector()) {
419  // remove particles w/ extremely low puppi weights
420  const pat::PackedCandidate *cand = dynamic_cast<const pat::PackedCandidate *>(&(*dau));
421  if (not cand)
422  throw edm::Exception(edm::errors::InvalidReference) << "Cannot convert to either pat::PackedCandidate";
423  // base requirements on PF candidates
424  if (cand->pt() < min_pt_for_pfcandidates_)
425  continue;
426  // charged candidate selection (for Higgs Interaction Net)
427  if (!include_neutrals_ and (cand->charge() == 0 or cand->pt() < min_pt_for_track_properties_))
428  continue;
429  // filling daughters
430  daughters.push_back(cand);
431  }
432 
433  // sort by original pt (not Puppi-weighted)
434  std::sort(daughters.begin(), daughters.end(), [](const auto &a, const auto &b) { return a->pt() > b->pt(); });
435 
436  // reserve space
437  for (const auto &name : particle_features_)
438  fts.reserve(name, daughters.size());
439 
440  // Build observables
441  for (const auto &cand : daughters) {
443  continue;
444 
445  // input particle is a packed PF candidate
446  auto candP4 = cand->p4();
447  auto candP3 = cand->momentum();
448 
449  // candidate track
450  const reco::Track *track = nullptr;
452  track = cand->bestTrack();
453 
454  // reco-vertex association
456  math::XYZPoint pv_ass_pos = pv_ass->position();
457 
458  TVector3 cand_direction(candP3.x(), candP3.y(), candP3.z());
459 
460  // only when computing the nagative tagger: remove charged candidates with high sip3d
461  if (flip_ip_sign_ && track) {
462  reco::TransientTrack transientTrack = track_builder_->build(*track);
463  Measurement1D meas_ip3d = IPTools::signedImpactParameter3D(transientTrack, jet_ref_track_dir, *pv_).second;
464  if (!std::isnan(meas_ip3d.significance()) && meas_ip3d.significance() > max_sip3dsig_for_flip_) {
465  continue;
466  }
467  }
468  float ip_sign = flip_ip_sign_ ? -1.f : 1.f;
469 
470  fts.fill("jet_pfcand_pt_log", std::isnan(std::log(candP4.pt())) ? 0 : std::log(candP4.pt()));
471  fts.fill("jet_pfcand_energy_log", std::isnan(std::log(candP4.energy())) ? 0 : std::log(candP4.energy()));
472  fts.fill("jet_pfcand_eta", candP4.eta());
473  fts.fill("jet_pfcand_deta", jet_direction.Eta() - cand_direction.Eta());
474  fts.fill("jet_pfcand_dphi", jet_direction.DeltaPhi(cand_direction));
475  fts.fill("jet_pfcand_charge", cand->charge());
476  fts.fill("jet_pfcand_etarel",
477  std::isnan(reco::btau::etaRel(jet_dir, candP3)) ? 0 : reco::btau::etaRel(jet_dir, candP3));
478  fts.fill("jet_pfcand_pperp_ratio",
479  std::isnan(jet_direction.Perp(cand_direction) / cand_direction.Mag())
480  ? 0
481  : jet_direction.Perp(cand_direction) / cand_direction.Mag());
482  fts.fill("jet_pfcand_ppara_ratio",
483  std::isnan(jet_direction.Dot(cand_direction) / cand_direction.Mag())
484  ? 0
485  : jet_direction.Dot(cand_direction) / cand_direction.Mag());
486  fts.fill("jet_pfcand_frompv", cand->fromPV());
487  fts.fill("jet_pfcand_dz", ip_sign * (std::isnan(cand->dz(pv_ass_pos)) ? 0 : cand->dz(pv_ass_pos)));
488  fts.fill("jet_pfcand_dxy", ip_sign * (std::isnan(cand->dxy(pv_ass_pos)) ? 0 : cand->dxy(pv_ass_pos)));
489  fts.fill("jet_pfcand_puppiw", cand->puppiWeight());
490  fts.fill("jet_pfcand_nlostinnerhits", cand->lostInnerHits());
491  fts.fill("jet_pfcand_nhits", cand->numberOfHits());
492  fts.fill("jet_pfcand_npixhits", cand->numberOfPixelHits());
493  fts.fill("jet_pfcand_nstriphits", cand->stripLayersWithMeasurement());
494 
495  if (abs(cand->pdgId()) == 11 and cand->charge() != 0)
496  fts.fill("jet_pfcand_id", 0);
497  else if (abs(cand->pdgId()) == 13 and cand->charge() != 0)
498  fts.fill("jet_pfcand_id", 1);
499  else if (abs(cand->pdgId()) == 22 and cand->charge() == 0)
500  fts.fill("jet_pfcand_id", 2);
501  else if (abs(cand->pdgId()) != 22 and cand->charge() == 0 and abs(cand->pdgId()) != 1 and abs(cand->pdgId()) != 2)
502  fts.fill("jet_pfcand_id", 3);
503  else if (abs(cand->pdgId()) != 11 and abs(cand->pdgId()) != 13 and cand->charge() != 0)
504  fts.fill("jet_pfcand_id", 4);
505  else if (cand->charge() == 0 and abs(cand->pdgId()) == 1)
506  fts.fill("jet_pfcand_id", 5);
507  else if (cand->charge() == 0 and abs(cand->pdgId()) == 2)
508  fts.fill("jet_pfcand_id", 6);
509  else
510  fts.fill("jet_pfcand_id", -1);
511 
512  fts.fill("jet_pfcand_hcalfraction", std::isnan(cand->hcalFraction()) ? 0 : cand->hcalFraction());
513  fts.fill("jet_pfcand_calofraction", std::isnan(cand->caloFraction()) ? 0 : cand->caloFraction());
514  fts.fill("pfcand_mask", 1);
515 
516  if (track) {
517  fts.fill(
518  "jet_pfcand_dzsig",
519  std::isnan(fabs(cand->dz(pv_ass_pos)) / cand->dzError()) ? 0 : fabs(cand->dz(pv_ass_pos)) / cand->dzError());
520  fts.fill("jet_pfcand_dxysig",
521  std::isnan(fabs(cand->dxy(pv_ass_pos)) / cand->dxyError())
522  ? 0
523  : fabs(cand->dxy(pv_ass_pos)) / cand->dxyError());
524  fts.fill("jet_pfcand_track_chi2", track->normalizedChi2());
525  fts.fill("jet_pfcand_track_qual", track->qualityMask());
526 
527  reco::TransientTrack transientTrack = track_builder_->build(*track);
528  Measurement1D meas_ip2d =
529  IPTools::signedTransverseImpactParameter(transientTrack, jet_ref_track_dir, *pv_).second;
530  Measurement1D meas_ip3d = IPTools::signedImpactParameter3D(transientTrack, jet_ref_track_dir, *pv_).second;
531  Measurement1D meas_jetdist = IPTools::jetTrackDistance(transientTrack, jet_ref_track_dir, *pv_).second;
532  Measurement1D meas_decayl = IPTools::signedDecayLength3D(transientTrack, jet_ref_track_dir, *pv_).second;
533 
534  fts.fill("jet_pfcand_trackjet_d3d", ip_sign * (std::isnan(meas_ip3d.value()) ? 0 : meas_ip3d.value()));
535  fts.fill("jet_pfcand_trackjet_d3dsig",
536  std::isnan(fabs(meas_ip3d.significance())) ? 0 : fabs(meas_ip3d.significance()));
537  fts.fill("jet_pfcand_trackjet_dist", std::isnan(-meas_jetdist.value()) ? 0 : -meas_jetdist.value());
538  fts.fill("jet_pfcand_trackjet_decayL", std::isnan(meas_decayl.value()) ? 0 : meas_decayl.value());
539  } else {
540  fts.fill("jet_pfcand_dzsig", 0);
541  fts.fill("jet_pfcand_dxysig", 0);
542  fts.fill("jet_pfcand_track_chi2", 0);
543  fts.fill("jet_pfcand_track_qual", 0);
544  fts.fill("jet_pfcand_trackjet_d3d", 0);
545  fts.fill("jet_pfcand_trackjet_d3dsig", 0);
546  fts.fill("jet_pfcand_trackjet_dist", 0);
547  fts.fill("jet_pfcand_trackjet_decayL", 0);
548  }
549 
550  // muons specific
551  if (abs(cand->pdgId()) == 13) {
552  std::vector<unsigned int> muonsToSkip;
553  int ipos = -1;
554  float minDR = 1000;
555  for (size_t i = 0; i < muons.size(); i++) {
556  if (not muons[i].isPFMuon())
557  continue;
558  if (std::find(muonsToSkip.begin(), muonsToSkip.end(), i) != muonsToSkip.end())
559  continue;
560  float dR = reco::deltaR(muons[i].p4(), candP4);
561  if (dR < jet_radius_ and dR < minDR) {
562  minDR = dR;
563  ipos = i;
564  muonsToSkip.push_back(i);
565  }
566  }
567  if (ipos >= 0) {
568  int muonId = 0;
570  muonId++;
572  muonId++;
574  muonId++;
576  muonId++;
578  muonId++;
579  fts.fill("jet_pfcand_muon_id", muonId);
580  fts.fill("jet_pfcand_muon_isglobal", muons[ipos].isGlobalMuon());
581  fts.fill("jet_pfcand_muon_chi2",
582  (muons[ipos].isGlobalMuon()) ? muons[ipos].globalTrack()->normalizedChi2() : 0);
583  fts.fill("jet_pfcand_muon_nvalidhit",
584  (muons[ipos].isGlobalMuon()) ? muons[ipos].globalTrack()->hitPattern().numberOfValidMuonHits() : 0);
585  fts.fill("jet_pfcand_muon_nstation", muons[ipos].numberOfMatchedStations());
586  fts.fill("jet_pfcand_muon_segcomp", muon::segmentCompatibility(muons[ipos]));
587  } else {
588  fts.fill("jet_pfcand_muon_id", 0);
589  fts.fill("jet_pfcand_muon_isglobal", 0);
590  fts.fill("jet_pfcand_muon_chi2", 0);
591  fts.fill("jet_pfcand_muon_nvalidhit", 0);
592  fts.fill("jet_pfcand_muon_nstation", 0);
593  fts.fill("jet_pfcand_muon_segcomp", 0);
594  }
595  } else {
596  fts.fill("jet_pfcand_muon_id", 0);
597  fts.fill("jet_pfcand_muon_isglobal", 0);
598  fts.fill("jet_pfcand_muon_chi2", 0);
599  fts.fill("jet_pfcand_muon_nvalidhit", 0);
600  fts.fill("jet_pfcand_muon_nstation", 0);
601  fts.fill("jet_pfcand_muon_segcomp", 0);
602  }
603 
604  // electrons specific
605  if (abs(cand->pdgId()) == 11) {
606  int ipos = -1;
607  for (size_t i = 0; i < electrons.size(); i++) {
608  if (electrons[i].isPF()) {
609  for (const auto &element : electrons[i].associatedPackedPFCandidates()) {
610  if (abs(element->pdgId()) == 11 and element->p4() == candP4)
611  ipos = i;
612  }
613  }
614  }
615  if (ipos >= 0) {
616  fts.fill("jet_pfcand_electron_detaIn",
617  std::isnan(electrons[ipos].deltaEtaSuperClusterTrackAtVtx())
618  ? 0
619  : electrons[ipos].deltaEtaSuperClusterTrackAtVtx());
620  fts.fill("jet_pfcand_electron_dphiIn",
621  std::isnan(electrons[ipos].deltaPhiSuperClusterTrackAtVtx())
622  ? 0
623  : electrons[ipos].deltaPhiSuperClusterTrackAtVtx());
624  fts.fill("jet_pfcand_electron_sigIetaIeta",
626  fts.fill("jet_pfcand_electron_sigIphiIphi",
627  std::isnan(electrons[ipos].full5x5_sigmaIphiIphi()) ? 0 : electrons[ipos].full5x5_sigmaIphiIphi());
628  fts.fill("jet_pfcand_electron_r9", std::isnan(electrons[ipos].full5x5_r9()) ? 0 : electrons[ipos].full5x5_r9());
629  fts.fill("jet_pfcand_electron_convProb",
631  } else {
632  fts.fill("jet_pfcand_electron_detaIn", 0);
633  fts.fill("jet_pfcand_electron_dphiIn", 0);
634  fts.fill("jet_pfcand_electron_sigIetaIeta", 0);
635  fts.fill("jet_pfcand_electron_sigIphiIphi", 0);
636  fts.fill("jet_pfcand_electron_r9", 0);
637  fts.fill("jet_pfcand_electron_convProb", 0);
638  }
639  } else {
640  fts.fill("jet_pfcand_electron_detaIn", 0);
641  fts.fill("jet_pfcand_electron_dphiIn", 0);
642  fts.fill("jet_pfcand_electron_sigIetaIeta", 0);
643  fts.fill("jet_pfcand_electron_sigIphiIphi", 0);
644  fts.fill("jet_pfcand_electron_r9", 0);
645  fts.fill("jet_pfcand_electron_convProb", 0);
646  }
647 
648  // photons specific
649  if (abs(cand->pdgId()) == 22) {
650  int ipos = -1;
651  for (size_t i = 0; i < photons.size(); i++) {
652  for (const auto &element : photons[i].associatedPackedPFCandidates()) {
653  if (abs(element->pdgId()) == 22 and element->p4() == candP4)
654  ipos = i;
655  }
656  }
657  if (ipos >= 0) {
658  fts.fill("jet_pfcand_photon_sigIetaIeta",
660  fts.fill("jet_pfcand_photon_r9", std::isnan(photons[ipos].full5x5_r9()) ? 0 : photons[ipos].full5x5_r9());
661  fts.fill("jet_pfcand_photon_eVeto", photons[ipos].passElectronVeto());
662  } else {
663  fts.fill("jet_pfcand_photon_sigIetaIeta", 0);
664  fts.fill("jet_pfcand_photon_r9", 0);
665  fts.fill("jet_pfcand_photon_eVeto", 0);
666  }
667  } else {
668  fts.fill("jet_pfcand_photon_sigIetaIeta", 0);
669  fts.fill("jet_pfcand_photon_r9", 0);
670  fts.fill("jet_pfcand_photon_eVeto", 0);
671  }
672 
673  // tau specific prior to any puppi weight application
674  if (std::find(tau_pfcandidates.begin(), tau_pfcandidates.end(), cand->p4()) != tau_pfcandidates.end())
675  fts.fill("jet_pfcand_tau_signal", 1);
676  else
677  fts.fill("jet_pfcand_tau_signal", 0);
678  }
679 }
def isnan(num)
edm::Handle< reco::VertexCollection > vtxs_
double etaRel(const math::XYZVector &dir, const math::XYZVector &track)
std::pair< bool, Measurement1D > signedTransverseImpactParameter(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:57
std::pair< bool, Measurement1D > signedDecayLength3D(const TrajectoryStateOnSurface &state, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:105
std::pair< bool, Measurement1D > signedImpactParameter3D(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:81
edm::ESHandle< TransientTrackBuilder > track_builder_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
Definition: DiMuonV_cfg.py:214
std::pair< double, Measurement1D > jetTrackDistance(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:206
reco::TransientTrack build(const reco::Track *p) const
static const std::vector< std::string > particle_features_
void reserve(const std::string &name, unsigned capacity)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
Definition: VertexFwd.h:13
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
double b
Definition: hdecay.h:120
bool useTrackProperties(const pat::PackedCandidate *cand)
void fill(const std::string &name, float value)
double value() const
Definition: Measurement1D.h:25
double significance() const
Definition: Measurement1D.h:29
double a
Definition: hdecay.h:121

◆ fillSVFeatures()

void ParticleNetFeatureEvaluator::fillSVFeatures ( DeepBoostedJetFeatures fts,
const reco::Jet jet 
)
private

Definition at line 681 of file ParticleNetFeatureEvaluator.cc.

References reco::deltaR2(), PVValHelper::dxy, btagbtvdeep::DeepBoostedJetFeatures::fill(), CommonMethods::isnan(), metsig::jet, dqm-mbProfile::log, Skims_PA_cff::name, btagbtvdeep::DeepBoostedJetFeatures::reserve(), VertexDistance3D::signedDistance(), jetUpdater_cfi::sort, pfDeepBoostedJetPreprocessParams_cfi::sv, and btagbtvdeep::sv_vertex_comparator().

681  {
682  // secondary vertexes matching jet
683  std::vector<const reco::VertexCompositePtrCandidate *> jetSVs;
684  for (const auto &sv : *svs_) {
686  jetSVs.push_back(&sv);
687  }
688  }
689 
690  // sort by dxy significance
691  std::sort(jetSVs.begin(),
692  jetSVs.end(),
694  return sv_vertex_comparator(*sva, *svb, *pv_);
695  });
696 
697  // reserve space
698  for (const auto &name : sv_features_)
699  fts.reserve(name, jetSVs.size());
700 
701  GlobalVector jet_global_vec(jet.px(), jet.py(), jet.pz());
702 
703  float ip_sign = flip_ip_sign_ ? -1.f : 1.f;
704 
705  for (const auto *sv : jetSVs) {
706  fts.fill("sv_mask", 1);
707  fts.fill("jet_sv_pt_log", std::isnan(std::log(sv->pt())) ? 0 : std::log(sv->pt()));
708  fts.fill("jet_sv_eta", sv->eta());
709  fts.fill("jet_sv_mass", sv->mass());
710  fts.fill("jet_sv_deta", sv->eta() - jet.eta());
711  fts.fill("jet_sv_dphi", sv->phi() - jet.phi());
712  fts.fill("jet_sv_ntrack", sv->numberOfDaughters());
713  fts.fill("jet_sv_chi2", sv->vertexNormalizedChi2());
714 
716  sv->fillVertexCovariance(csv);
717  reco::Vertex svtx(sv->vertex(), csv);
718 
720  auto valxy = dxy.signedDistance(svtx, *pv_, jet_global_vec);
721  fts.fill("jet_sv_dxy", ip_sign * (std::isnan(valxy.value()) ? 0 : valxy.value()));
722  fts.fill("jet_sv_dxysig", std::isnan(fabs(valxy.significance())) ? 0 : fabs(valxy.significance()));
723 
724  VertexDistance3D d3d;
725  auto val3d = d3d.signedDistance(svtx, *pv_, jet_global_vec);
726  fts.fill("jet_sv_d3d", ip_sign * (std::isnan(val3d.value()) ? 0 : val3d.value()));
727  fts.fill("jet_sv_d3dsig", std::isnan(fabs(val3d.significance())) ? 0 : fabs(val3d.significance()));
728  }
729 }
edm::Handle< reco::VertexCompositePtrCandidateCollection > svs_
def isnan(num)
math::Error< dimension >::type CovarianceMatrix
covariance error matrix (3x3)
Definition: Vertex.h:47
void reserve(const std::string &name, unsigned capacity)
Measurement1D signedDistance(const reco::Vertex &primVtx, const reco::Vertex &secVtx, const GlobalVector &momentum) const override
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
bool sv_vertex_comparator(const SVType &sva, const SVType &svb, const PVType &pv)
Definition: deep_helpers.h:54
void fill(const std::string &name, float value)
static const std::vector< std::string > sv_features_

◆ produce()

void ParticleNetFeatureEvaluator::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 313 of file ParticleNetFeatureEvaluator.cc.

References funct::abs(), pwdgSkimBPark_cfi::electrons, lowptgsfeleseed::features(), edm::EventSetup::getHandle(), iEvent, metsig::jet, PDWG_EXODelayedJetMET_cff::jets, eostools::move(), DiMuonV_cfg::muons, Skims_PA_cff::name, or, pfDeepBoostedJetPreprocessParams_cfi::pfcand, BPHMonitor_cfi::photons, reco::LeafCandidate::pt(), and Tau3MuMonitor_cff::taus.

313  {
314  // output collection
315  auto output_tag_infos = std::make_unique<std::vector<reco::DeepBoostedJetTagInfo>>();
316  // Input jets
317  auto jets = iEvent.getHandle(jet_token_);
318  // Input muons
319  auto muons = iEvent.getHandle(muon_token_);
320  // Input taus
321  auto taus = iEvent.getHandle(tau_token_);
322  // Input electrons
323  auto electrons = iEvent.getHandle(electron_token_);
324  // Input photons
325  auto photons = iEvent.getHandle(photon_token_);
326  // Input lost tracks
327  iEvent.getByToken(losttrack_token_, losttracks_);
328  // Primary vertexes
329  iEvent.getByToken(vtx_token_, vtxs_);
330  if (vtxs_->empty()) {
331  // produce empty TagInfos in case no primary vertex
332  iEvent.put(std::move(output_tag_infos));
333  return; // exit event
334  }
335  // Leading vertex
336  pv_ = &vtxs_->at(0);
337  // Secondary vertexs
338  iEvent.getByToken(sv_token_, svs_);
339  // PF candidates
340  iEvent.getByToken(pfcand_token_, pfcands_);
341  // Track builder
343 
344  // tau signal candidates
345  std::vector<math::XYZTLorentzVector> tau_pfcandidates;
346  for (size_t itau = 0; itau < taus->size(); itau++) {
347  if (taus->at(itau).pt() < min_pt_for_taus_)
348  continue;
349  if (fabs(taus->at(itau).eta()) > max_eta_for_taus_)
350  continue;
351  for (unsigned ipart = 0; ipart < taus->at(itau).signalCands().size(); ipart++) {
353  dynamic_cast<const pat::PackedCandidate *>(taus->at(itau).signalCands()[ipart].get());
354  tau_pfcandidates.push_back(pfcand->p4());
355  }
356  }
357 
358  // Loop over jet
359  for (std::size_t jet_n = 0; jet_n < jets->size(); jet_n++) {
360  const auto &jet = (*jets)[jet_n];
361  edm::RefToBase<reco::Jet> jet_ref(jets, jet_n);
362 
363  // create jet features
365  for (const auto &name : particle_features_)
366  features.add(name);
367  for (const auto &name : sv_features_)
368  features.add(name);
369 
370  // fill values only if above pt threshold and has daughters, otherwise left
371  bool fill_vars = true;
372  if ((jet.pt() < min_jet_pt_ and
373  dynamic_cast<const pat::Jet *>(&jet)->correctedJet("Uncorrected").pt() < min_jet_pt_) or
374  std::abs(jet.eta()) >= max_jet_eta_ or std::abs(jet.eta()) < min_jet_eta_)
375  fill_vars = false;
376  if (jet.numberOfDaughters() == 0)
377  fill_vars = false;
378 
379  // fill features
380  if (fill_vars) {
381  fillParticleFeatures(features, jet, tau_pfcandidates, *muons, *electrons, *photons);
384  features.check_consistency(particle_features_);
385  features.check_consistency(sv_features_);
386  features.check_consistency(losttrack_features_);
387  }
388 
389  // this should always be done even if features are not filled
390  output_tag_infos->emplace_back(features, jet_ref);
391  }
392  // move output collection
393  iEvent.put(std::move(output_tag_infos));
394 }
edm::Handle< reco::VertexCompositePtrCandidateCollection > svs_
double pt() const final
transverse momentum
edm::Handle< reco::VertexCollection > vtxs_
edm::EDGetTokenT< pat::ElectronCollection > electron_token_
edm::Handle< edm::View< reco::Candidate > > pfcands_
edm::ESHandle< TransientTrackBuilder > track_builder_
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
Definition: DiMuonV_cfg.py:214
edm::EDGetTokenT< pat::TauCollection > tau_token_
edm::EDGetTokenT< pat::MuonCollection > muon_token_
static const std::vector< std::string > particle_features_
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< pat::PackedCandidateCollection > losttrack_token_
edm::Handle< pat::PackedCandidateCollection > losttracks_
std::vector< float > features(const reco::PreId &ecal, const reco::PreId &hcal, double rho, const reco::BeamSpot &spot, noZS::EcalClusterLazyTools &ecalTools)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
edm::EDGetTokenT< edm::View< reco::Jet > > jet_token_
static const std::vector< std::string > losttrack_features_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void fillLostTrackFeatures(DeepBoostedJetFeatures &fts, const reco::Jet &jet)
void fillParticleFeatures(DeepBoostedJetFeatures &fts, const reco::Jet &jet, const std::vector< math::XYZTLorentzVector > &tau_pfcandidates, const pat::MuonCollection &muons, const pat::ElectronCollection &electrons, const pat::PhotonCollection &photons)
edm::EDGetTokenT< reco::VertexCompositePtrCandidateCollection > sv_token_
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > track_builder_token_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
edm::EDGetTokenT< pat::PhotonCollection > photon_token_
Analysis-level calorimeter jet class.
Definition: Jet.h:77
static const std::vector< std::string > sv_features_
edm::EDGetTokenT< reco::VertexCollection > vtx_token_
def move(src, dest)
Definition: eostools.py:511
void fillSVFeatures(DeepBoostedJetFeatures &fts, const reco::Jet &jet)
edm::EDGetTokenT< edm::View< reco::Candidate > > pfcand_token_

◆ useTrackProperties()

bool ParticleNetFeatureEvaluator::useTrackProperties ( const pat::PackedCandidate cand)
private

Definition at line 396 of file ParticleNetFeatureEvaluator.cc.

References HLT_2024v14_cff::track.

396  {
397  const auto *track = cand->bestTrack();
398  return track != nullptr and track->pt() > min_pt_for_track_properties_;
399 };

Member Data Documentation

◆ electron_token_

edm::EDGetTokenT<pat::ElectronCollection> ParticleNetFeatureEvaluator::electron_token_
private

Definition at line 70 of file ParticleNetFeatureEvaluator.cc.

◆ event

unsigned int ParticleNetFeatureEvaluator::event
private

Definition at line 92 of file ParticleNetFeatureEvaluator.cc.

Referenced by Types.EventID::cppID().

◆ flip_ip_sign_

const bool ParticleNetFeatureEvaluator::flip_ip_sign_
private

Definition at line 66 of file ParticleNetFeatureEvaluator.cc.

◆ ijet

unsigned int ParticleNetFeatureEvaluator::ijet
private

Definition at line 98 of file ParticleNetFeatureEvaluator.cc.

◆ include_neutrals_

const bool ParticleNetFeatureEvaluator::include_neutrals_
private

Definition at line 65 of file ParticleNetFeatureEvaluator.cc.

◆ jet_eta

float ParticleNetFeatureEvaluator::jet_eta
private

Definition at line 95 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_charge

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_charge
private

Definition at line 157 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_deta

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_deta
private

Definition at line 155 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_dphi

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_dphi
private

Definition at line 156 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_dxy

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_dxy
private

Definition at line 162 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_dxysig

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_dxysig
private

Definition at line 164 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_dz

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_dz
private

Definition at line 161 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_dzsig

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_dzsig
private

Definition at line 163 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_eta

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_eta
private

Definition at line 154 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_etarel

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_etarel
private

Definition at line 165 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_frompv

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_frompv
private

Definition at line 158 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_npixhits

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_npixhits
private

Definition at line 170 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_nstriphits

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_nstriphits
private

Definition at line 171 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_pt_log

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_pt_log
private

Definition at line 153 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_track_chi2

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_track_chi2
private

Definition at line 159 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_track_qual

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_track_qual
private

Definition at line 160 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_trackjet_d3d

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_trackjet_d3d
private

Definition at line 166 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_trackjet_d3dsig

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_trackjet_d3dsig
private

Definition at line 167 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_trackjet_decayL

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_trackjet_decayL
private

Definition at line 169 of file ParticleNetFeatureEvaluator.cc.

◆ jet_losttrack_trackjet_dist

std::vector<float> ParticleNetFeatureEvaluator::jet_losttrack_trackjet_dist
private

Definition at line 168 of file ParticleNetFeatureEvaluator.cc.

◆ jet_mass

float ParticleNetFeatureEvaluator::jet_mass
private

Definition at line 97 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_calofraction

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_calofraction
private

Definition at line 123 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_charge

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_charge
private

Definition at line 104 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_deta

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_deta
private

Definition at line 101 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_dphi

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_dphi
private

Definition at line 102 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_dxy

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_dxy
private

Definition at line 111 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_dxysig

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_dxysig
private

Definition at line 112 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_dz

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_dz
private

Definition at line 109 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_dzsig

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_dzsig
private

Definition at line 110 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_electron_convProb

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_electron_convProb
private

Definition at line 137 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_electron_detaIn

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_electron_detaIn
private

Definition at line 132 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_electron_dphiIn

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_electron_dphiIn
private

Definition at line 133 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_electron_r9

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_electron_r9
private

Definition at line 136 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_electron_sigIetaIeta

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_electron_sigIetaIeta
private

Definition at line 134 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_electron_sigIphiIphi

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_electron_sigIphiIphi
private

Definition at line 135 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_energy_log

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_energy_log
private

Definition at line 100 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_eta

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_eta
private

Definition at line 103 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_etarel

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_etarel
private

Definition at line 113 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_frompv

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_frompv
private

Definition at line 105 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_hcalfraction

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_hcalfraction
private

Definition at line 124 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_id

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_id
private

Definition at line 122 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_muon_chi2

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_muon_chi2
private

Definition at line 128 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_muon_id

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_muon_id
private

Definition at line 126 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_muon_isglobal

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_muon_isglobal
private

Definition at line 127 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_muon_nstation

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_muon_nstation
private

Definition at line 131 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_muon_nvalidhit

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_muon_nvalidhit
private

Definition at line 130 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_muon_segcomp

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_muon_segcomp
private

Definition at line 129 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_nlostinnerhits

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_nlostinnerhits
private

Definition at line 106 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_npixhits

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_npixhits
private

Definition at line 119 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_nstriphits

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_nstriphits
private

Definition at line 120 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_photon_eVeto

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_photon_eVeto
private

Definition at line 140 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_photon_r9

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_photon_r9
private

Definition at line 139 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_photon_sigIetaIeta

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_photon_sigIetaIeta
private

Definition at line 138 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_ppara_ratio

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_ppara_ratio
private

Definition at line 115 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_pperp_ratio

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_pperp_ratio
private

Definition at line 114 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_pt_log

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_pt_log
private

Definition at line 99 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_puppiw

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_puppiw
private

Definition at line 125 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_tau_signal

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_tau_signal
private

Definition at line 141 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_track_chi2

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_track_chi2
private

Definition at line 107 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_track_qual

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_track_qual
private

Definition at line 108 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_trackjet_d3d

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_trackjet_d3d
private

Definition at line 116 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_trackjet_d3dsig

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_trackjet_d3dsig
private

Definition at line 117 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_trackjet_decayL

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_trackjet_decayL
private

Definition at line 121 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pfcand_trackjet_dist

std::vector<float> ParticleNetFeatureEvaluator::jet_pfcand_trackjet_dist
private

Definition at line 118 of file ParticleNetFeatureEvaluator.cc.

◆ jet_phi

float ParticleNetFeatureEvaluator::jet_phi
private

Definition at line 96 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pt

float ParticleNetFeatureEvaluator::jet_pt
private

Definition at line 93 of file ParticleNetFeatureEvaluator.cc.

◆ jet_pt_raw

float ParticleNetFeatureEvaluator::jet_pt_raw
private

Definition at line 94 of file ParticleNetFeatureEvaluator.cc.

◆ jet_radius_

const double ParticleNetFeatureEvaluator::jet_radius_
private

Definition at line 55 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_chi2

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_chi2
private

Definition at line 148 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_d3d

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_d3d
private

Definition at line 151 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_d3dsig

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_d3dsig
private

Definition at line 152 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_deta

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_deta
private

Definition at line 144 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_dphi

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_dphi
private

Definition at line 145 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_dxy

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_dxy
private

Definition at line 149 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_dxysig

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_dxysig
private

Definition at line 150 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_eta

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_eta
private

Definition at line 146 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_mass

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_mass
private

Definition at line 143 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_ntrack

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_ntrack
private

Definition at line 147 of file ParticleNetFeatureEvaluator.cc.

◆ jet_sv_pt_log

std::vector<float> ParticleNetFeatureEvaluator::jet_sv_pt_log
private

Definition at line 142 of file ParticleNetFeatureEvaluator.cc.

◆ jet_token_

edm::EDGetTokenT<edm::View<reco::Jet> > ParticleNetFeatureEvaluator::jet_token_
private

Definition at line 73 of file ParticleNetFeatureEvaluator.cc.

◆ losttrack_features_

const std::vector< std::string > ParticleNetFeatureEvaluator::losttrack_features_
staticprivate
Initial value:
{"jet_losttrack_pt_log",
"jet_losttrack_eta",
"jet_losttrack_deta",
"jet_losttrack_dphi",
"jet_losttrack_charge",
"jet_losttrack_frompv",
"jet_losttrack_track_chi2",
"jet_losttrack_track_qual",
"jet_losttrack_dz",
"jet_losttrack_dxy",
"jet_losttrack_dzsig",
"jet_losttrack_dxysig",
"jet_losttrack_etarel",
"jet_losttrack_trackjet_d3d",
"jet_losttrack_trackjet_d3dsig",
"jet_losttrack_trackjet_dist",
"jet_losttrack_trackjet_decayL",
"jet_losttrack_npixhits",
"jet_losttrack_nstriphits",
"lt_mask"}

Definition at line 88 of file ParticleNetFeatureEvaluator.cc.

◆ losttrack_token_

edm::EDGetTokenT<pat::PackedCandidateCollection> ParticleNetFeatureEvaluator::losttrack_token_
private

Definition at line 74 of file ParticleNetFeatureEvaluator.cc.

◆ losttracks_

edm::Handle<pat::PackedCandidateCollection> ParticleNetFeatureEvaluator::losttracks_
private

Definition at line 83 of file ParticleNetFeatureEvaluator.cc.

◆ max_dr_for_losttrack_

const double ParticleNetFeatureEvaluator::max_dr_for_losttrack_
private

Definition at line 62 of file ParticleNetFeatureEvaluator.cc.

◆ max_eta_for_taus_

const double ParticleNetFeatureEvaluator::max_eta_for_taus_
private

Definition at line 64 of file ParticleNetFeatureEvaluator.cc.

◆ max_jet_eta_

const double ParticleNetFeatureEvaluator::max_jet_eta_
private

Definition at line 57 of file ParticleNetFeatureEvaluator.cc.

◆ max_sip3dsig_for_flip_

const double ParticleNetFeatureEvaluator::max_sip3dsig_for_flip_
private

Definition at line 67 of file ParticleNetFeatureEvaluator.cc.

◆ min_jet_eta_

const double ParticleNetFeatureEvaluator::min_jet_eta_
private

Definition at line 58 of file ParticleNetFeatureEvaluator.cc.

◆ min_jet_pt_

const double ParticleNetFeatureEvaluator::min_jet_pt_
private

Definition at line 56 of file ParticleNetFeatureEvaluator.cc.

◆ min_pt_for_losttrack_

const double ParticleNetFeatureEvaluator::min_pt_for_losttrack_
private

Definition at line 61 of file ParticleNetFeatureEvaluator.cc.

◆ min_pt_for_pfcandidates_

const double ParticleNetFeatureEvaluator::min_pt_for_pfcandidates_
private

Definition at line 60 of file ParticleNetFeatureEvaluator.cc.

◆ min_pt_for_taus_

const double ParticleNetFeatureEvaluator::min_pt_for_taus_
private

Definition at line 63 of file ParticleNetFeatureEvaluator.cc.

◆ min_pt_for_track_properties_

const double ParticleNetFeatureEvaluator::min_pt_for_track_properties_
private

Definition at line 59 of file ParticleNetFeatureEvaluator.cc.

◆ muon_token_

edm::EDGetTokenT<pat::MuonCollection> ParticleNetFeatureEvaluator::muon_token_
private

Definition at line 69 of file ParticleNetFeatureEvaluator.cc.

◆ particle_features_

const std::vector< std::string > ParticleNetFeatureEvaluator::particle_features_
staticprivate

Definition at line 86 of file ParticleNetFeatureEvaluator.cc.

◆ pfcand_token_

edm::EDGetTokenT<edm::View<reco::Candidate> > ParticleNetFeatureEvaluator::pfcand_token_
private

Definition at line 77 of file ParticleNetFeatureEvaluator.cc.

◆ pfcands_

edm::Handle<edm::View<reco::Candidate> > ParticleNetFeatureEvaluator::pfcands_
private

Definition at line 82 of file ParticleNetFeatureEvaluator.cc.

◆ photon_token_

edm::EDGetTokenT<pat::PhotonCollection> ParticleNetFeatureEvaluator::photon_token_
private

Definition at line 71 of file ParticleNetFeatureEvaluator.cc.

◆ pv_

const reco::Vertex* ParticleNetFeatureEvaluator::pv_ = nullptr
private

Definition at line 89 of file ParticleNetFeatureEvaluator.cc.

◆ sv_features_

const std::vector< std::string > ParticleNetFeatureEvaluator::sv_features_
staticprivate
Initial value:
{"jet_sv_pt_log",
"jet_sv_mass",
"jet_sv_deta",
"jet_sv_dphi",
"jet_sv_eta",
"jet_sv_ntrack",
"jet_sv_chi2",
"jet_sv_dxy",
"jet_sv_dxysig",
"jet_sv_d3d",
"jet_sv_d3dsig",
"sv_mask"}

Definition at line 87 of file ParticleNetFeatureEvaluator.cc.

◆ sv_token_

edm::EDGetTokenT<reco::VertexCompositePtrCandidateCollection> ParticleNetFeatureEvaluator::sv_token_
private

Definition at line 76 of file ParticleNetFeatureEvaluator.cc.

◆ svs_

edm::Handle<reco::VertexCompositePtrCandidateCollection> ParticleNetFeatureEvaluator::svs_
private

Definition at line 81 of file ParticleNetFeatureEvaluator.cc.

◆ tau_token_

edm::EDGetTokenT<pat::TauCollection> ParticleNetFeatureEvaluator::tau_token_
private

Definition at line 72 of file ParticleNetFeatureEvaluator.cc.

◆ track_builder_

edm::ESHandle<TransientTrackBuilder> ParticleNetFeatureEvaluator::track_builder_
private

Definition at line 84 of file ParticleNetFeatureEvaluator.cc.

◆ track_builder_token_

edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> ParticleNetFeatureEvaluator::track_builder_token_
private

Definition at line 78 of file ParticleNetFeatureEvaluator.cc.

◆ tree

TTree* ParticleNetFeatureEvaluator::tree
private

◆ vtx_token_

edm::EDGetTokenT<reco::VertexCollection> ParticleNetFeatureEvaluator::vtx_token_
private

Definition at line 75 of file ParticleNetFeatureEvaluator.cc.

◆ vtxs_

edm::Handle<reco::VertexCollection> ParticleNetFeatureEvaluator::vtxs_
private

Definition at line 80 of file ParticleNetFeatureEvaluator.cc.