37 ~ParticleNetFeatureEvaluator()
override;
47 const std::vector<math::XYZTLorentzVector> &tau_pfcandidates,
179 "jet_pfcand_energy_log",
185 "jet_pfcand_nlostinnerhits",
186 "jet_pfcand_track_chi2",
187 "jet_pfcand_track_qual",
193 "jet_pfcand_pperp_ratio",
194 "jet_pfcand_ppara_ratio",
195 "jet_pfcand_trackjet_d3d",
196 "jet_pfcand_trackjet_d3dsig",
197 "jet_pfcand_trackjet_dist",
199 "jet_pfcand_npixhits",
200 "jet_pfcand_nstriphits",
201 "jet_pfcand_trackjet_decayL",
203 "jet_pfcand_calofraction",
204 "jet_pfcand_hcalfraction",
206 "jet_pfcand_muon_id",
207 "jet_pfcand_muon_isglobal",
208 "jet_pfcand_muon_segcomp",
209 "jet_pfcand_muon_chi2",
210 "jet_pfcand_muon_nvalidhit",
211 "jet_pfcand_muon_nstation",
212 "jet_pfcand_electron_detaIn",
213 "jet_pfcand_electron_dphiIn",
214 "jet_pfcand_electron_sigIetaIeta",
215 "jet_pfcand_electron_sigIphiIphi",
216 "jet_pfcand_electron_r9",
217 "jet_pfcand_electron_convProb",
218 "jet_pfcand_photon_sigIetaIeta",
219 "jet_pfcand_photon_r9",
220 "jet_pfcand_photon_eVeto",
221 "jet_pfcand_tau_signal",
239 "jet_losttrack_deta",
240 "jet_losttrack_dphi",
241 "jet_losttrack_charge",
242 "jet_losttrack_frompv",
243 "jet_losttrack_track_chi2",
244 "jet_losttrack_track_qual",
247 "jet_losttrack_dzsig",
248 "jet_losttrack_dxysig",
249 "jet_losttrack_etarel",
250 "jet_losttrack_trackjet_d3d",
251 "jet_losttrack_trackjet_d3dsig",
252 "jet_losttrack_trackjet_dist",
253 "jet_losttrack_trackjet_decayL",
254 "jet_losttrack_npixhits",
255 "jet_losttrack_nstriphits",
259 : jet_radius_(iConfig.getParameter<double>(
"jet_radius")),
260 min_jet_pt_(iConfig.getParameter<double>(
"min_jet_pt")),
261 max_jet_eta_(iConfig.getParameter<double>(
"max_jet_eta")),
262 min_jet_eta_(iConfig.getParameter<double>(
"min_jet_eta")),
263 min_pt_for_track_properties_(iConfig.getParameter<double>(
"min_pt_for_track_properties")),
264 min_pt_for_pfcandidates_(iConfig.getParameter<double>(
"min_pt_for_pfcandidates")),
265 min_pt_for_losttrack_(iConfig.getParameter<double>(
"min_pt_for_losttrack")),
266 max_dr_for_losttrack_(iConfig.getParameter<double>(
"max_dr_for_losttrack")),
267 min_pt_for_taus_(iConfig.getParameter<double>(
"min_pt_for_taus")),
268 max_eta_for_taus_(iConfig.getParameter<double>(
"max_eta_for_taus")),
269 include_neutrals_(iConfig.getParameter<
bool>(
"include_neutrals")),
270 flip_ip_sign_(iConfig.getParameter<
bool>(
"flip_ip_sign")),
271 fallback_puppi_weight_(iConfig.getParameter<
bool>(
"fallback_puppi_weight")),
272 use_puppi_value_map_(
false),
273 max_sip3dsig_for_flip_(iConfig.getParameter<double>(
"max_sip3dsig_for_flip")),
282 iConfig.getParameter<
edm::
InputTag>(
"secondary_vertices"))),
284 track_builder_token_(
287 if (!puppi_value_map_tag.label().empty()) {
291 produces<std::vector<reco::DeepBoostedJetTagInfo>>();
299 desc.add<
double>(
"jet_radius", 0.8);
300 desc.add<
double>(
"min_jet_pt", 150);
301 desc.add<
double>(
"max_jet_eta", 99);
302 desc.add<
double>(
"min_jet_eta", 0.0);
303 desc.add<
double>(
"min_pt_for_track_properties", -1);
304 desc.add<
double>(
"min_pt_for_pfcandidates", -1);
305 desc.add<
double>(
"min_pt_for_losttrack", 1);
306 desc.add<
double>(
"max_dr_for_losttrack", 0.4);
307 desc.add<
double>(
"min_pt_for_taus", 20.);
308 desc.add<
double>(
"max_eta_for_taus", 2.5);
309 desc.add<
bool>(
"include_neutrals",
true);
310 desc.add<
bool>(
"flip_ip_sign",
false);
311 desc.add<
bool>(
"fallback_puppi_weight",
false);
312 desc.add<
double>(
"max_sip3dsig_for_flip", 99999);
323 descriptions.
add(
"ParticleNetFeatureEvaluator",
desc);
328 auto output_tag_infos = std::make_unique<std::vector<reco::DeepBoostedJetTagInfo>>();
340 iEvent.getByToken(losttrack_token_, losttracks_);
342 if (use_puppi_value_map_) {
343 iEvent.getByToken(puppi_value_map_token_, puppi_value_map_);
347 iEvent.getByToken(vtx_token_, vtxs_);
348 if (vtxs_->empty()) {
356 iEvent.getByToken(sv_token_, svs_);
358 iEvent.getByToken(pfcand_token_, pfcands_);
360 track_builder_ = iSetup.
getHandle(track_builder_token_);
363 std::vector<math::XYZTLorentzVector> tau_pfcandidates;
364 for (
size_t itau = 0; itau <
taus->size(); itau++) {
365 if (
taus->at(itau).pt() < min_pt_for_taus_)
367 if (fabs(
taus->at(itau).eta()) > max_eta_for_taus_)
369 for (
unsigned ipart = 0; ipart <
taus->at(itau).signalCands().size(); ipart++) {
372 tau_pfcandidates.push_back(
pfcand->p4());
377 for (std::size_t jet_n = 0; jet_n <
jets->size(); jet_n++) {
378 const auto &
jet = (*jets)[jet_n];
383 for (
const auto &
name : particle_features_)
385 for (
const auto &
name : sv_features_)
389 bool fill_vars =
true;
390 if ((
jet.pt() < min_jet_pt_ and
391 dynamic_cast<const pat::Jet *
>(&
jet)->correctedJet(
"Uncorrected").
pt() < min_jet_pt_)
or 394 if (
jet.numberOfDaughters() == 0)
402 features.check_consistency(particle_features_);
403 features.check_consistency(sv_features_);
404 features.check_consistency(losttrack_features_);
408 output_tag_infos->emplace_back(
features, jet_ref);
416 return track !=
nullptr and
track->pt() > min_pt_for_track_properties_;
421 const std::vector<math::XYZTLorentzVector> &tau_pfcandidates,
427 TVector3 jet_direction(
jet.momentum().Unit().x(),
jet.momentum().Unit().y(),
jet.momentum().Unit().z());
435 std::map<const pat::PackedCandidate *, float> map_pc2puppiweight;
438 std::vector<const pat::PackedCandidate *>
daughters;
439 for (
const auto &dau :
jet.daughterPtrVector()) {
445 if (
cand->pt() < min_pt_for_pfcandidates_)
448 if (!include_neutrals_ and (
cand->charge() == 0
or cand->pt() < min_pt_for_track_properties_))
454 if (use_puppi_value_map_) {
455 puppiw = (*puppi_value_map_)[dau];
456 }
else if (!fallback_puppi_weight_) {
458 <<
"use fallback_puppi_weight option to use " << puppiw <<
" for cand as default";
460 map_pc2puppiweight[
cand] = puppiw;
467 for (
const auto &
name : particle_features_)
472 if (!include_neutrals_ and !useTrackProperties(
cand))
476 auto candP4 =
cand->p4();
477 auto candP3 =
cand->momentum();
481 if (useTrackProperties(
cand))
488 TVector3 cand_direction(candP3.x(), candP3.y(), candP3.z());
491 if (flip_ip_sign_ &&
track) {
498 float ip_sign = flip_ip_sign_ ? -1.f : 1.f;
502 fts.
fill(
"jet_pfcand_eta", candP4.eta());
503 fts.
fill(
"jet_pfcand_deta", jet_direction.Eta() - cand_direction.Eta());
504 fts.
fill(
"jet_pfcand_dphi", jet_direction.DeltaPhi(cand_direction));
505 fts.
fill(
"jet_pfcand_charge",
cand->charge());
506 fts.
fill(
"jet_pfcand_etarel",
508 fts.
fill(
"jet_pfcand_pperp_ratio",
509 std::isnan(jet_direction.Perp(cand_direction) / cand_direction.Mag())
511 : jet_direction.Perp(cand_direction) / cand_direction.Mag());
512 fts.
fill(
"jet_pfcand_ppara_ratio",
513 std::isnan(jet_direction.Dot(cand_direction) / cand_direction.Mag())
515 : jet_direction.Dot(cand_direction) / cand_direction.Mag());
516 fts.
fill(
"jet_pfcand_frompv",
cand->fromPV());
519 fts.
fill(
"jet_pfcand_puppiw", map_pc2puppiweight[
cand]);
520 fts.
fill(
"jet_pfcand_nlostinnerhits",
cand->lostInnerHits());
521 fts.
fill(
"jet_pfcand_nhits",
cand->numberOfHits());
522 fts.
fill(
"jet_pfcand_npixhits",
cand->numberOfPixelHits());
523 fts.
fill(
"jet_pfcand_nstriphits",
cand->stripLayersWithMeasurement());
525 if (
abs(
cand->pdgId()) == 11 and
cand->charge() != 0)
526 fts.
fill(
"jet_pfcand_id", 0);
527 else if (
abs(
cand->pdgId()) == 13 and
cand->charge() != 0)
528 fts.
fill(
"jet_pfcand_id", 1);
529 else if (
abs(
cand->pdgId()) == 22 and
cand->charge() == 0)
530 fts.
fill(
"jet_pfcand_id", 2);
532 fts.
fill(
"jet_pfcand_id", 3);
533 else if (
abs(
cand->pdgId()) != 11 and
abs(
cand->pdgId()) != 13 and
cand->charge() != 0)
534 fts.
fill(
"jet_pfcand_id", 4);
535 else if (
cand->charge() == 0 and
abs(
cand->pdgId()) == 1)
536 fts.
fill(
"jet_pfcand_id", 5);
537 else if (
cand->charge() == 0 and
abs(
cand->pdgId()) == 2)
538 fts.
fill(
"jet_pfcand_id", 6);
540 fts.
fill(
"jet_pfcand_id", -1);
544 fts.
fill(
"pfcand_mask", 1);
550 fts.
fill(
"jet_pfcand_dxysig",
553 : fabs(
cand->dxy(pv_ass_pos)) /
cand->dxyError());
554 fts.
fill(
"jet_pfcand_track_chi2",
track->normalizedChi2());
555 fts.
fill(
"jet_pfcand_track_qual",
track->qualityMask());
565 fts.
fill(
"jet_pfcand_trackjet_d3dsig",
570 fts.
fill(
"jet_pfcand_dzsig", 0);
571 fts.
fill(
"jet_pfcand_dxysig", 0);
572 fts.
fill(
"jet_pfcand_track_chi2", 0);
573 fts.
fill(
"jet_pfcand_track_qual", 0);
574 fts.
fill(
"jet_pfcand_trackjet_d3d", 0);
575 fts.
fill(
"jet_pfcand_trackjet_d3dsig", 0);
576 fts.
fill(
"jet_pfcand_trackjet_dist", 0);
577 fts.
fill(
"jet_pfcand_trackjet_decayL", 0);
581 if (
abs(
cand->pdgId()) == 13) {
582 std::vector<unsigned int> muonsToSkip;
585 for (
size_t i = 0;
i <
muons.size();
i++) {
586 if (not
muons[
i].isPFMuon())
588 if (
std::find(muonsToSkip.begin(), muonsToSkip.end(),
i) != muonsToSkip.end())
594 muonsToSkip.push_back(
i);
609 fts.
fill(
"jet_pfcand_muon_id", muonId);
610 fts.
fill(
"jet_pfcand_muon_isglobal",
muons[ipos].isGlobalMuon());
611 fts.
fill(
"jet_pfcand_muon_chi2",
613 fts.
fill(
"jet_pfcand_muon_nvalidhit",
615 fts.
fill(
"jet_pfcand_muon_nstation",
muons[ipos].numberOfMatchedStations());
618 fts.
fill(
"jet_pfcand_muon_id", 0);
619 fts.
fill(
"jet_pfcand_muon_isglobal", 0);
620 fts.
fill(
"jet_pfcand_muon_chi2", 0);
621 fts.
fill(
"jet_pfcand_muon_nvalidhit", 0);
622 fts.
fill(
"jet_pfcand_muon_nstation", 0);
623 fts.
fill(
"jet_pfcand_muon_segcomp", 0);
626 fts.
fill(
"jet_pfcand_muon_id", 0);
627 fts.
fill(
"jet_pfcand_muon_isglobal", 0);
628 fts.
fill(
"jet_pfcand_muon_chi2", 0);
629 fts.
fill(
"jet_pfcand_muon_nvalidhit", 0);
630 fts.
fill(
"jet_pfcand_muon_nstation", 0);
631 fts.
fill(
"jet_pfcand_muon_segcomp", 0);
635 if (
abs(
cand->pdgId()) == 11) {
639 for (
const auto &element :
electrons[
i].associatedPackedPFCandidates()) {
640 if (
abs(element->pdgId()) == 11 and element->p4() == candP4)
646 fts.
fill(
"jet_pfcand_electron_detaIn",
649 :
electrons[ipos].deltaEtaSuperClusterTrackAtVtx());
650 fts.
fill(
"jet_pfcand_electron_dphiIn",
653 :
electrons[ipos].deltaPhiSuperClusterTrackAtVtx());
654 fts.
fill(
"jet_pfcand_electron_sigIetaIeta",
656 fts.
fill(
"jet_pfcand_electron_sigIphiIphi",
659 fts.
fill(
"jet_pfcand_electron_convProb",
662 fts.
fill(
"jet_pfcand_electron_detaIn", 0);
663 fts.
fill(
"jet_pfcand_electron_dphiIn", 0);
664 fts.
fill(
"jet_pfcand_electron_sigIetaIeta", 0);
665 fts.
fill(
"jet_pfcand_electron_sigIphiIphi", 0);
666 fts.
fill(
"jet_pfcand_electron_r9", 0);
667 fts.
fill(
"jet_pfcand_electron_convProb", 0);
670 fts.
fill(
"jet_pfcand_electron_detaIn", 0);
671 fts.
fill(
"jet_pfcand_electron_dphiIn", 0);
672 fts.
fill(
"jet_pfcand_electron_sigIetaIeta", 0);
673 fts.
fill(
"jet_pfcand_electron_sigIphiIphi", 0);
674 fts.
fill(
"jet_pfcand_electron_r9", 0);
675 fts.
fill(
"jet_pfcand_electron_convProb", 0);
679 if (
abs(
cand->pdgId()) == 22) {
682 for (
const auto &element :
photons[
i].associatedPackedPFCandidates()) {
683 if (
abs(element->pdgId()) == 22 and element->p4() == candP4)
688 fts.
fill(
"jet_pfcand_photon_sigIetaIeta",
691 fts.
fill(
"jet_pfcand_photon_eVeto",
photons[ipos].passElectronVeto());
693 fts.
fill(
"jet_pfcand_photon_sigIetaIeta", 0);
694 fts.
fill(
"jet_pfcand_photon_r9", 0);
695 fts.
fill(
"jet_pfcand_photon_eVeto", 0);
698 fts.
fill(
"jet_pfcand_photon_sigIetaIeta", 0);
699 fts.
fill(
"jet_pfcand_photon_r9", 0);
700 fts.
fill(
"jet_pfcand_photon_eVeto", 0);
704 if (
std::find(tau_pfcandidates.begin(), tau_pfcandidates.end(),
cand->p4()) != tau_pfcandidates.end())
705 fts.
fill(
"jet_pfcand_tau_signal", 1);
707 fts.
fill(
"jet_pfcand_tau_signal", 0);
713 std::vector<const reco::VertexCompositePtrCandidate *> jetSVs;
714 for (
const auto &
sv : *svs_) {
716 jetSVs.push_back(&
sv);
728 for (
const auto &
name : sv_features_)
733 float ip_sign = flip_ip_sign_ ? -1.f : 1.f;
735 for (
const auto *
sv : jetSVs) {
736 fts.
fill(
"sv_mask", 1);
738 fts.
fill(
"jet_sv_eta",
sv->eta());
739 fts.
fill(
"jet_sv_mass",
sv->mass());
740 fts.
fill(
"jet_sv_deta",
sv->eta() -
jet.eta());
741 fts.
fill(
"jet_sv_dphi",
sv->phi() -
jet.phi());
742 fts.
fill(
"jet_sv_ntrack",
sv->numberOfDaughters());
743 fts.
fill(
"jet_sv_chi2",
sv->vertexNormalizedChi2());
746 sv->fillVertexCovariance(csv);
750 auto valxy =
dxy.signedDistance(svtx, *pv_, jet_global_vec);
751 fts.
fill(
"jet_sv_dxy", ip_sign * (
std::isnan(valxy.value()) ? 0 : valxy.value()));
752 fts.
fill(
"jet_sv_dxysig",
std::isnan(fabs(valxy.significance())) ? 0 : fabs(valxy.significance()));
756 fts.
fill(
"jet_sv_d3d", ip_sign * (
std::isnan(val3d.value()) ? 0 : val3d.value()));
757 fts.
fill(
"jet_sv_d3dsig",
std::isnan(fabs(val3d.significance())) ? 0 : fabs(val3d.significance()));
763 TVector3 jet_direction(
jet.momentum().Unit().x(),
jet.momentum().Unit().y(),
jet.momentum().Unit().z());
767 std::vector<pat::PackedCandidate> jet_lost_tracks;
768 for (
size_t itrk = 0; itrk < losttracks_->size(); itrk++) {
769 if (
reco::deltaR(losttracks_->at(itrk).p4(),
jet.p4()) < max_dr_for_losttrack_ and
770 losttracks_->at(itrk).pt() > min_pt_for_losttrack_) {
771 jet_lost_tracks.push_back(losttracks_->at(itrk));
775 jet_lost_tracks.begin(), jet_lost_tracks.end(), [](
const auto &
a,
const auto &
b) {
return a.pt() >
b.pt(); });
778 for (
const auto &
name : losttrack_features_)
784 for (
auto const <rack : jet_lost_tracks) {
795 float ip_sign = flip_ip_sign_ ? -1.f : 1.f;
798 fts.
fill(
"jet_losttrack_eta", ltrack.eta());
799 fts.
fill(
"jet_losttrack_charge", ltrack.charge());
800 fts.
fill(
"jet_losttrack_frompv", ltrack.fromPV());
801 fts.
fill(
"jet_losttrack_dz", ip_sign * (
std::isnan(ltrack.dz(pv_ass_pos)) ? 0 : ltrack.dz(pv_ass_pos)));
802 fts.
fill(
"jet_losttrack_dxy", ip_sign * (
std::isnan(ltrack.dxy(pv_ass_pos)) ? 0 : ltrack.dxy(pv_ass_pos)));
803 fts.
fill(
"jet_losttrack_npixhits", ltrack.numberOfPixelHits());
804 fts.
fill(
"jet_losttrack_nstriphits", ltrack.stripLayersWithMeasurement());
806 TVector3 ltrack_momentum(ltrack.momentum().x(), ltrack.momentum().y(), ltrack.momentum().z());
807 fts.
fill(
"jet_losttrack_deta", jet_direction.Eta() - ltrack_momentum.Eta());
808 fts.
fill(
"jet_losttrack_dphi", jet_direction.DeltaPhi(ltrack_momentum));
809 fts.
fill(
"jet_losttrack_etarel",
815 fts.
fill(
"jet_losttrack_track_chi2",
track->normalizedChi2());
816 fts.
fill(
"jet_losttrack_track_qual",
track->qualityMask());
817 fts.
fill(
"jet_losttrack_dxysig",
818 std::isnan(fabs(ltrack.dxy(pv_ass_pos)) / ltrack.dxyError())
820 : fabs(ltrack.dxy(pv_ass_pos)) / ltrack.dxyError());
821 fts.
fill(
"jet_losttrack_dzsig",
822 std::isnan(fabs(ltrack.dz(pv_ass_pos)) / ltrack.dzError())
824 : fabs(ltrack.dz(pv_ass_pos)) / ltrack.dzError());
832 fts.
fill(
"jet_losttrack_trackjet_d3dsig",
837 fts.
fill(
"jet_losttrack_track_chi2", 0);
838 fts.
fill(
"jet_losttrack_track_qual", 0);
839 fts.
fill(
"jet_losttrack_dxysig", 0);
840 fts.
fill(
"jet_losttrack_dzsig", 0);
841 fts.
fill(
"jet_losttrack_trackjet_d3d", 0);
842 fts.
fill(
"jet_losttrack_trackjet_d3dsig", 0);
843 fts.
fill(
"jet_losttrack_trackjet_dist", 0);
844 fts.
fill(
"jet_losttrack_trackjet_decayL", 0);
847 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
T getParameter(std::string const &) const
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_
const bool fallback_puppi_weight_
~ParticleNetFeatureEvaluator() override
bool use_puppi_value_map_
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::Handle< edm::ValueMap< float > > puppi_value_map_
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
const double max_sip3dsig_for_flip_
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
edm::EDGetTokenT< edm::ValueMap< float > > puppi_value_map_token_
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_