37 ~ParticleNetFeatureEvaluator()
override;
47 const std::vector<math::XYZTLorentzVector> &tau_pfcandidates,
173 "jet_pfcand_energy_log",
179 "jet_pfcand_nlostinnerhits",
180 "jet_pfcand_track_chi2",
181 "jet_pfcand_track_qual",
187 "jet_pfcand_pperp_ratio",
188 "jet_pfcand_ppara_ratio",
189 "jet_pfcand_trackjet_d3d",
190 "jet_pfcand_trackjet_d3dsig",
191 "jet_pfcand_trackjet_dist",
193 "jet_pfcand_npixhits",
194 "jet_pfcand_nstriphits",
195 "jet_pfcand_trackjet_decayL",
197 "jet_pfcand_calofraction",
198 "jet_pfcand_hcalfraction",
200 "jet_pfcand_muon_id",
201 "jet_pfcand_muon_isglobal",
202 "jet_pfcand_muon_segcomp",
203 "jet_pfcand_muon_chi2",
204 "jet_pfcand_muon_nvalidhit",
205 "jet_pfcand_muon_nstation",
206 "jet_pfcand_electron_detaIn",
207 "jet_pfcand_electron_dphiIn",
208 "jet_pfcand_electron_sigIetaIeta",
209 "jet_pfcand_electron_sigIphiIphi",
210 "jet_pfcand_electron_r9",
211 "jet_pfcand_electron_convProb",
212 "jet_pfcand_photon_sigIetaIeta",
213 "jet_pfcand_photon_r9",
214 "jet_pfcand_photon_eVeto",
215 "jet_pfcand_tau_signal",
233 "jet_losttrack_deta",
234 "jet_losttrack_dphi",
235 "jet_losttrack_charge",
236 "jet_losttrack_frompv",
237 "jet_losttrack_track_chi2",
238 "jet_losttrack_track_qual",
241 "jet_losttrack_dzsig",
242 "jet_losttrack_dxysig",
243 "jet_losttrack_etarel",
244 "jet_losttrack_trackjet_d3d",
245 "jet_losttrack_trackjet_d3dsig",
246 "jet_losttrack_trackjet_dist",
247 "jet_losttrack_trackjet_decayL",
248 "jet_losttrack_npixhits",
249 "jet_losttrack_nstriphits",
253 : jet_radius_(iConfig.getParameter<double>(
"jet_radius")),
254 min_jet_pt_(iConfig.getParameter<double>(
"min_jet_pt")),
255 max_jet_eta_(iConfig.getParameter<double>(
"max_jet_eta")),
256 min_jet_eta_(iConfig.getParameter<double>(
"min_jet_eta")),
257 min_pt_for_track_properties_(iConfig.getParameter<double>(
"min_pt_for_track_properties")),
258 min_pt_for_pfcandidates_(iConfig.getParameter<double>(
"min_pt_for_pfcandidates")),
259 min_pt_for_losttrack_(iConfig.getParameter<double>(
"min_pt_for_losttrack")),
260 max_dr_for_losttrack_(iConfig.getParameter<double>(
"max_dr_for_losttrack")),
261 min_pt_for_taus_(iConfig.getParameter<double>(
"min_pt_for_taus")),
262 max_eta_for_taus_(iConfig.getParameter<double>(
"max_eta_for_taus")),
263 include_neutrals_(iConfig.getParameter<
bool>(
"include_neutrals")),
272 iConfig.getParameter<
edm::
InputTag>(
"secondary_vertices"))),
274 track_builder_token_(
276 produces<std::vector<reco::DeepBoostedJetTagInfo>>();
284 desc.add<
double>(
"jet_radius", 0.8);
285 desc.add<
double>(
"min_jet_pt", 150);
286 desc.add<
double>(
"max_jet_eta", 99);
287 desc.add<
double>(
"min_jet_eta", 0.0);
288 desc.add<
double>(
"min_pt_for_track_properties", -1);
289 desc.add<
double>(
"min_pt_for_pfcandidates", -1);
290 desc.add<
double>(
"min_pt_for_losttrack", 1);
291 desc.add<
double>(
"max_dr_for_losttrack", 0.4);
292 desc.add<
double>(
"min_pt_for_taus", 20.);
293 desc.add<
double>(
"max_eta_for_taus", 2.5);
294 desc.add<
bool>(
"include_neutrals",
true);
304 descriptions.
add(
"ParticleNetFeatureEvaluator",
desc);
309 auto output_tag_infos = std::make_unique<std::vector<reco::DeepBoostedJetTagInfo>>();
321 iEvent.getByToken(losttrack_token_, losttracks_);
323 iEvent.getByToken(vtx_token_, vtxs_);
324 if (vtxs_->empty()) {
332 iEvent.getByToken(sv_token_, svs_);
334 iEvent.getByToken(pfcand_token_, pfcands_);
336 track_builder_ = iSetup.
getHandle(track_builder_token_);
339 std::vector<math::XYZTLorentzVector> tau_pfcandidates;
340 for (
size_t itau = 0; itau <
taus->size(); itau++) {
341 if (
taus->at(itau).pt() < min_pt_for_taus_)
343 if (fabs(
taus->at(itau).eta()) > max_eta_for_taus_)
345 for (
unsigned ipart = 0; ipart <
taus->at(itau).signalCands().size(); ipart++) {
348 tau_pfcandidates.push_back(
pfcand->p4());
353 for (std::size_t jet_n = 0; jet_n <
jets->size(); jet_n++) {
354 const auto &
jet = (*jets)[jet_n];
359 for (
const auto &
name : particle_features_)
361 for (
const auto &
name : sv_features_)
365 bool fill_vars =
true;
366 if ((
jet.pt() < min_jet_pt_ and
367 dynamic_cast<const pat::Jet *
>(&
jet)->correctedJet(
"Uncorrected").
pt() < min_jet_pt_)
or 370 if (
jet.numberOfDaughters() == 0)
378 features.check_consistency(particle_features_);
379 features.check_consistency(sv_features_);
380 features.check_consistency(losttrack_features_);
384 output_tag_infos->emplace_back(
features, jet_ref);
392 return track !=
nullptr and
track->pt() > min_pt_for_track_properties_;
397 const std::vector<math::XYZTLorentzVector> &tau_pfcandidates,
403 TVector3 jet_direction(
jet.momentum().Unit().x(),
jet.momentum().Unit().y(),
jet.momentum().Unit().z());
411 std::vector<const pat::PackedCandidate *>
daughters;
412 for (
const auto &dau :
jet.daughterPtrVector()) {
418 if (
cand->pt() < min_pt_for_pfcandidates_)
421 if (!include_neutrals_ and (
cand->charge() == 0
or cand->pt() < min_pt_for_track_properties_))
431 for (
const auto &
name : particle_features_)
436 if (!include_neutrals_ and !useTrackProperties(
cand))
440 auto candP4 =
cand->p4();
441 auto candP3 =
cand->momentum();
445 if (useTrackProperties(
cand))
452 TVector3 cand_direction(candP3.x(), candP3.y(), candP3.z());
456 fts.
fill(
"jet_pfcand_eta", candP4.eta());
457 fts.
fill(
"jet_pfcand_deta", jet_direction.Eta() - cand_direction.Eta());
458 fts.
fill(
"jet_pfcand_dphi", jet_direction.DeltaPhi(cand_direction));
459 fts.
fill(
"jet_pfcand_charge",
cand->charge());
460 fts.
fill(
"jet_pfcand_etarel",
462 fts.
fill(
"jet_pfcand_pperp_ratio",
463 std::isnan(jet_direction.Perp(cand_direction) / cand_direction.Mag())
465 : jet_direction.Perp(cand_direction) / cand_direction.Mag());
466 fts.
fill(
"jet_pfcand_ppara_ratio",
467 std::isnan(jet_direction.Dot(cand_direction) / cand_direction.Mag())
469 : jet_direction.Dot(cand_direction) / cand_direction.Mag());
470 fts.
fill(
"jet_pfcand_frompv",
cand->fromPV());
473 fts.
fill(
"jet_pfcand_puppiw",
cand->puppiWeight());
474 fts.
fill(
"jet_pfcand_nlostinnerhits",
cand->lostInnerHits());
475 fts.
fill(
"jet_pfcand_nhits",
cand->numberOfHits());
476 fts.
fill(
"jet_pfcand_npixhits",
cand->numberOfPixelHits());
477 fts.
fill(
"jet_pfcand_nstriphits",
cand->stripLayersWithMeasurement());
479 if (
abs(
cand->pdgId()) == 11 and
cand->charge() != 0)
480 fts.
fill(
"jet_pfcand_id", 0);
481 else if (
abs(
cand->pdgId()) == 13 and
cand->charge() != 0)
482 fts.
fill(
"jet_pfcand_id", 1);
483 else if (
abs(
cand->pdgId()) == 22 and
cand->charge() == 0)
484 fts.
fill(
"jet_pfcand_id", 2);
486 fts.
fill(
"jet_pfcand_id", 3);
487 else if (
abs(
cand->pdgId()) != 11 and
abs(
cand->pdgId()) != 13 and
cand->charge() != 0)
488 fts.
fill(
"jet_pfcand_id", 4);
489 else if (
cand->charge() == 0 and
abs(
cand->pdgId()) == 1)
490 fts.
fill(
"jet_pfcand_id", 5);
491 else if (
cand->charge() == 0 and
abs(
cand->pdgId()) == 2)
492 fts.
fill(
"jet_pfcand_id", 6);
494 fts.
fill(
"jet_pfcand_id", -1);
498 fts.
fill(
"pfcand_mask", 1);
504 fts.
fill(
"jet_pfcand_dxysig",
507 : fabs(
cand->dxy(pv_ass_pos)) /
cand->dxyError());
508 fts.
fill(
"jet_pfcand_track_chi2",
track->normalizedChi2());
509 fts.
fill(
"jet_pfcand_track_qual",
track->qualityMask());
519 fts.
fill(
"jet_pfcand_trackjet_d3dsig",
524 fts.
fill(
"jet_pfcand_dzsig", 0);
525 fts.
fill(
"jet_pfcand_dxysig", 0);
526 fts.
fill(
"jet_pfcand_track_chi2", 0);
527 fts.
fill(
"jet_pfcand_track_qual", 0);
528 fts.
fill(
"jet_pfcand_trackjet_d3d", 0);
529 fts.
fill(
"jet_pfcand_trackjet_d3dsig", 0);
530 fts.
fill(
"jet_pfcand_trackjet_dist", 0);
531 fts.
fill(
"jet_pfcand_trackjet_decayL", 0);
535 if (
abs(
cand->pdgId()) == 13) {
536 std::vector<unsigned int> muonsToSkip;
539 for (
size_t i = 0;
i <
muons.size();
i++) {
540 if (not
muons[
i].isPFMuon())
542 if (
std::find(muonsToSkip.begin(), muonsToSkip.end(),
i) != muonsToSkip.end())
548 muonsToSkip.push_back(
i);
563 fts.
fill(
"jet_pfcand_muon_id", muonId);
564 fts.
fill(
"jet_pfcand_muon_isglobal",
muons[ipos].isGlobalMuon());
565 fts.
fill(
"jet_pfcand_muon_chi2",
567 fts.
fill(
"jet_pfcand_muon_nvalidhit",
569 fts.
fill(
"jet_pfcand_muon_nstation",
muons[ipos].numberOfMatchedStations());
572 fts.
fill(
"jet_pfcand_muon_id", 0);
573 fts.
fill(
"jet_pfcand_muon_isglobal", 0);
574 fts.
fill(
"jet_pfcand_muon_chi2", 0);
575 fts.
fill(
"jet_pfcand_muon_nvalidhit", 0);
576 fts.
fill(
"jet_pfcand_muon_nstation", 0);
577 fts.
fill(
"jet_pfcand_muon_segcomp", 0);
580 fts.
fill(
"jet_pfcand_muon_id", 0);
581 fts.
fill(
"jet_pfcand_muon_isglobal", 0);
582 fts.
fill(
"jet_pfcand_muon_chi2", 0);
583 fts.
fill(
"jet_pfcand_muon_nvalidhit", 0);
584 fts.
fill(
"jet_pfcand_muon_nstation", 0);
585 fts.
fill(
"jet_pfcand_muon_segcomp", 0);
589 if (
abs(
cand->pdgId()) == 11) {
593 for (
const auto &element :
electrons[
i].associatedPackedPFCandidates()) {
594 if (
abs(element->pdgId()) == 11 and element->p4() == candP4)
600 fts.
fill(
"jet_pfcand_electron_detaIn",
603 :
electrons[ipos].deltaEtaSuperClusterTrackAtVtx());
604 fts.
fill(
"jet_pfcand_electron_dphiIn",
607 :
electrons[ipos].deltaPhiSuperClusterTrackAtVtx());
608 fts.
fill(
"jet_pfcand_electron_sigIetaIeta",
610 fts.
fill(
"jet_pfcand_electron_sigIphiIphi",
613 fts.
fill(
"jet_pfcand_electron_convProb",
616 fts.
fill(
"jet_pfcand_electron_detaIn", 0);
617 fts.
fill(
"jet_pfcand_electron_dphiIn", 0);
618 fts.
fill(
"jet_pfcand_electron_sigIetaIeta", 0);
619 fts.
fill(
"jet_pfcand_electron_sigIphiIphi", 0);
620 fts.
fill(
"jet_pfcand_electron_r9", 0);
621 fts.
fill(
"jet_pfcand_electron_convProb", 0);
624 fts.
fill(
"jet_pfcand_electron_detaIn", 0);
625 fts.
fill(
"jet_pfcand_electron_dphiIn", 0);
626 fts.
fill(
"jet_pfcand_electron_sigIetaIeta", 0);
627 fts.
fill(
"jet_pfcand_electron_sigIphiIphi", 0);
628 fts.
fill(
"jet_pfcand_electron_r9", 0);
629 fts.
fill(
"jet_pfcand_electron_convProb", 0);
633 if (
abs(
cand->pdgId()) == 22) {
636 for (
const auto &element :
photons[
i].associatedPackedPFCandidates()) {
637 if (
abs(element->pdgId()) == 22 and element->p4() == candP4)
642 fts.
fill(
"jet_pfcand_photon_sigIetaIeta",
645 fts.
fill(
"jet_pfcand_photon_eVeto",
photons[ipos].passElectronVeto());
647 fts.
fill(
"jet_pfcand_photon_sigIetaIeta", 0);
648 fts.
fill(
"jet_pfcand_photon_r9", 0);
649 fts.
fill(
"jet_pfcand_photon_eVeto", 0);
652 fts.
fill(
"jet_pfcand_photon_sigIetaIeta", 0);
653 fts.
fill(
"jet_pfcand_photon_r9", 0);
654 fts.
fill(
"jet_pfcand_photon_eVeto", 0);
658 if (
std::find(tau_pfcandidates.begin(), tau_pfcandidates.end(),
cand->p4()) != tau_pfcandidates.end())
659 fts.
fill(
"jet_pfcand_tau_signal", 1);
661 fts.
fill(
"jet_pfcand_tau_signal", 0);
667 std::vector<const reco::VertexCompositePtrCandidate *> jetSVs;
668 for (
const auto &
sv : *svs_) {
670 jetSVs.push_back(&
sv);
682 for (
const auto &
name : sv_features_)
687 for (
const auto *
sv : jetSVs) {
688 fts.
fill(
"sv_mask", 1);
690 fts.
fill(
"jet_sv_eta",
sv->eta());
691 fts.
fill(
"jet_sv_mass",
sv->mass());
692 fts.
fill(
"jet_sv_deta",
sv->eta() -
jet.eta());
693 fts.
fill(
"jet_sv_dphi",
sv->phi() -
jet.phi());
694 fts.
fill(
"jet_sv_ntrack",
sv->numberOfDaughters());
695 fts.
fill(
"jet_sv_chi2",
sv->vertexNormalizedChi2());
698 sv->fillVertexCovariance(csv);
702 auto valxy =
dxy.signedDistance(svtx, *pv_, jet_global_vec);
703 fts.
fill(
"jet_sv_dxy",
std::isnan(valxy.value()) ? 0 : valxy.value());
704 fts.
fill(
"jet_sv_dxysig",
std::isnan(fabs(valxy.significance())) ? 0 : fabs(valxy.significance()));
708 fts.
fill(
"jet_sv_d3d",
std::isnan(val3d.value()) ? 0 : val3d.value());
709 fts.
fill(
"jet_sv_d3dsig",
std::isnan(fabs(val3d.significance())) ? 0 : fabs(val3d.significance()));
715 TVector3 jet_direction(
jet.momentum().Unit().x(),
jet.momentum().Unit().y(),
jet.momentum().Unit().z());
719 std::vector<pat::PackedCandidate> jet_lost_tracks;
720 for (
size_t itrk = 0; itrk < losttracks_->size(); itrk++) {
721 if (
reco::deltaR(losttracks_->at(itrk).p4(),
jet.p4()) < max_dr_for_losttrack_ and
722 losttracks_->at(itrk).pt() > min_pt_for_losttrack_) {
723 jet_lost_tracks.push_back(losttracks_->at(itrk));
727 jet_lost_tracks.begin(), jet_lost_tracks.end(), [](
const auto &
a,
const auto &
b) {
return a.pt() >
b.pt(); });
730 for (
const auto &
name : losttrack_features_)
736 for (
auto const <rack : jet_lost_tracks) {
738 fts.
fill(
"jet_losttrack_eta", ltrack.eta());
739 fts.
fill(
"jet_losttrack_charge", ltrack.charge());
740 fts.
fill(
"jet_losttrack_frompv", ltrack.fromPV());
741 fts.
fill(
"jet_losttrack_dz",
std::isnan(ltrack.dz(pv_ass_pos)) ? 0 : ltrack.dz(pv_ass_pos));
742 fts.
fill(
"jet_losttrack_dxy",
std::isnan(ltrack.dxy(pv_ass_pos)) ? 0 : ltrack.dxy(pv_ass_pos));
743 fts.
fill(
"jet_losttrack_npixhits", ltrack.numberOfPixelHits());
744 fts.
fill(
"jet_losttrack_nstriphits", ltrack.stripLayersWithMeasurement());
746 TVector3 ltrack_momentum(ltrack.momentum().x(), ltrack.momentum().y(), ltrack.momentum().z());
747 fts.
fill(
"jet_losttrack_deta", jet_direction.Eta() - ltrack_momentum.Eta());
748 fts.
fill(
"jet_losttrack_dphi", jet_direction.DeltaPhi(ltrack_momentum));
749 fts.
fill(
"jet_losttrack_etarel",
756 fts.
fill(
"jet_losttrack_track_chi2",
track->normalizedChi2());
757 fts.
fill(
"jet_losttrack_track_qual",
track->qualityMask());
758 fts.
fill(
"jet_losttrack_dxysig",
759 std::isnan(fabs(ltrack.dxy(pv_ass_pos)) / ltrack.dxyError())
761 : fabs(ltrack.dxy(pv_ass_pos)) / ltrack.dxyError());
762 fts.
fill(
"jet_losttrack_dzsig",
763 std::isnan(fabs(ltrack.dz(pv_ass_pos)) / ltrack.dzError())
765 : fabs(ltrack.dz(pv_ass_pos)) / ltrack.dzError());
773 fts.
fill(
"jet_losttrack_trackjet_d3dsig",
778 fts.
fill(
"jet_losttrack_track_chi2", 0);
779 fts.
fill(
"jet_losttrack_track_qual", 0);
780 fts.
fill(
"jet_losttrack_dxysig", 0);
781 fts.
fill(
"jet_losttrack_dzsig", 0);
782 fts.
fill(
"jet_losttrack_trackjet_d3d", 0);
783 fts.
fill(
"jet_losttrack_trackjet_d3dsig", 0);
784 fts.
fill(
"jet_losttrack_trackjet_dist", 0);
785 fts.
fill(
"jet_losttrack_trackjet_decayL", 0);
788 fts.
fill(
"lt_mask", 1);
edm::Handle< reco::VertexCompositePtrCandidateCollection > svs_
std::vector< float > jet_sv_eta
std::vector< float > jet_sv_pt_log
std::vector< float > jet_pfcand_track_chi2
std::vector< float > jet_losttrack_dxy
std::vector< float > jet_pfcand_electron_r9
std::vector< float > jet_losttrack_trackjet_dist
std::vector< float > jet_sv_dxy
std::vector< float > jet_pfcand_pperp_ratio
double pt() const final
transverse momentum
const double min_pt_for_losttrack_
std::vector< float > jet_losttrack_pt_log
std::vector< float > jet_pfcand_dphi
edm::Handle< reco::VertexCollection > vtxs_
Base class for all types of Jets.
double etaRel(const math::XYZVector &dir, const math::XYZVector &track)
void beginStream(edm::StreamID) override
std::vector< float > jet_pfcand_hcalfraction
edm::EDGetTokenT< pat::ElectronCollection > electron_token_
std::vector< float > jet_pfcand_electron_sigIetaIeta
std::vector< pat::PackedCandidate > PackedCandidateCollection
std::vector< float > jet_sv_d3d
std::vector< float > jet_losttrack_etarel
edm::Handle< edm::View< reco::Candidate > > pfcands_
std::vector< float > jet_losttrack_npixhits
std::vector< Tau > TauCollection
std::vector< float > jet_pfcand_nstriphits
std::vector< float > jet_losttrack_trackjet_d3dsig
edm::ESHandle< TransientTrackBuilder > track_builder_
~ParticleNetFeatureEvaluator() override
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
std::vector< float > jet_pfcand_electron_detaIn
std::vector< Vertex > VertexCollection
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
std::vector< float > jet_losttrack_track_chi2
edm::EDGetTokenT< pat::TauCollection > tau_token_
std::vector< float > jet_pfcand_dxy
math::Error< dimension >::type CovarianceMatrix
covariance error matrix (3x3)
std::vector< VertexCompositePtrCandidate > VertexCompositePtrCandidateCollection
collection of Candidate objects
std::vector< float > jet_sv_mass
std::vector< float > jet_pfcand_id
std::vector< Muon > MuonCollection
collection of Muon objects
const double min_pt_for_taus_
std::vector< float > jet_pfcand_trackjet_dist
edm::EDGetTokenT< pat::MuonCollection > muon_token_
static const std::vector< std::string > particle_features_
edm::EDGetTokenT< pat::PackedCandidateCollection > losttrack_token_
std::vector< Electron > ElectronCollection
std::vector< float > jet_pfcand_muon_nvalidhit
std::vector< float > jet_losttrack_dz
void reserve(const std::string &name, unsigned capacity)
edm::Handle< pat::PackedCandidateCollection > losttracks_
std::vector< float > jet_sv_dphi
std::vector< float > jet_pfcand_etarel
std::vector< float > features(const reco::PreId &ecal, const reco::PreId &hcal, double rho, const reco::BeamSpot &spot, noZS::EcalClusterLazyTools &ecalTools)
std::vector< float > jet_losttrack_trackjet_decayL
std::vector< float > jet_losttrack_charge
std::vector< float > jet_pfcand_photon_sigIetaIeta
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
edm::EDGetTokenT< edm::View< reco::Jet > > jet_token_
static const std::vector< std::string > losttrack_features_
const double min_pt_for_pfcandidates_
Abs< T >::type abs(const T &t)
std::vector< float > jet_pfcand_ppara_ratio
std::vector< float > jet_pfcand_electron_sigIphiIphi
void produce(edm::Event &, const edm::EventSetup &) override
ParticleNetFeatureEvaluator(const edm::ParameterSet &)
std::vector< float > jet_sv_d3dsig
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
void fillLostTrackFeatures(DeepBoostedJetFeatures &fts, const reco::Jet &jet)
#define DEFINE_FWK_MODULE(type)
std::vector< float > jet_pfcand_photon_r9
Measurement1D signedDistance(const reco::Vertex &primVtx, const reco::Vertex &secVtx, const GlobalVector &momentum) const override
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_
std::vector< float > jet_sv_chi2
std::vector< float > jet_pfcand_charge
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > track_builder_token_
std::vector< float > jet_pfcand_dz
std::vector< Electron > ElectronCollection
collectin of Electron objects
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
std::vector< float > jet_pfcand_deta
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< float > jet_pfcand_trackjet_d3d
const double min_pt_for_track_properties_
std::vector< float > jet_losttrack_frompv
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
std::vector< float > jet_losttrack_nstriphits
std::vector< float > jet_pfcand_electron_dphiIn
std::vector< float > jet_losttrack_eta
std::vector< float > jet_losttrack_track_qual
std::vector< float > jet_pfcand_npixhits
std::vector< float > jet_pfcand_puppiw
std::vector< float > jet_pfcand_electron_convProb
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
std::vector< float > jet_sv_ntrack
edm::EDGetTokenT< pat::PhotonCollection > photon_token_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void endStream() override
bool sv_vertex_comparator(const SVType &sva, const SVType &svb, const PVType &pv)
std::vector< float > jet_pfcand_nlostinnerhits
XYZVectorD XYZVector
spatial vector with cartesian internal representation
std::vector< float > jet_losttrack_deta
XYZPointD XYZPoint
point in space with cartesian internal representation
std::vector< Photon > PhotonCollection
collectin of Photon objects
Analysis-level calorimeter jet class.
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool useTrackProperties(const pat::PackedCandidate *cand)
std::vector< float > jet_pfcand_dxysig
void fill(const std::string &name, float value)
std::vector< Muon > MuonCollection
std::vector< float > jet_pfcand_trackjet_decayL
double significance() const
std::vector< float > jet_pfcand_dzsig
std::vector< float > jet_losttrack_dxysig
std::vector< float > jet_pfcand_muon_segcomp
std::vector< float > jet_pfcand_muon_isglobal
std::vector< float > jet_sv_dxysig
std::vector< float > jet_pfcand_photon_eVeto
std::vector< float > jet_pfcand_track_qual
const double max_eta_for_taus_
std::vector< float > jet_pfcand_frompv
std::vector< float > jet_losttrack_dzsig
std::vector< float > jet_pfcand_muon_chi2
static const std::vector< std::string > sv_features_
std::vector< float > jet_sv_deta
std::vector< float > jet_pfcand_trackjet_d3dsig
std::vector< float > jet_losttrack_trackjet_d3d
edm::EDGetTokenT< reco::VertexCollection > vtx_token_
std::vector< float > jet_pfcand_energy_log
const bool include_neutrals_
const double min_jet_eta_
std::vector< float > jet_pfcand_calofraction
std::vector< float > jet_pfcand_tau_signal
std::vector< float > jet_pfcand_pt_log
std::vector< float > jet_pfcand_muon_id
std::vector< Photon > PhotonCollection
std::vector< float > jet_losttrack_dphi
const double max_dr_for_losttrack_
const double max_jet_eta_
void fillSVFeatures(DeepBoostedJetFeatures &fts, const reco::Jet &jet)
std::vector< float > jet_pfcand_eta
std::vector< float > jet_pfcand_muon_nstation
edm::EDGetTokenT< edm::View< reco::Candidate > > pfcand_token_