User will overwrite this function. Histogram booking is no longer done in C++. This function is called in execute once the filters are all passed.
72 {
73
75
76 if (!
taus.isValid()) {
77 ATH_MSG_ERROR(
"evtStore() does not contain tau Collection with name "
78 << m_TauContainerKey);
79 return StatusCode::FAILURE;
80 }
81
83
84 const int lowerEtThreshold = 15;
85 const int higherEtThreshold = 75;
86 auto tool = getGroup(m_kinGroupName);
87
89
92
93 std::string tauid = "";
94 if(m_TauContainerKey.key().find("TauMonTauJets") != std::string::npos)
95 {
96 tauid = "GNTau";
97 } else {
98 tauid = "RNN";
99 }
100
101 auto tauEtEt15Loose = Monitored::Scalar<float>("tauEtEt15"+tauid+"Loose", 0.0);
102 auto panModeEt15Loose =
103 Monitored::Scalar<float>("panModeEt15"+tauid+"Loose", 0.0);
104 auto panModeSubstructure =
105 Monitored::Scalar<float>("panModeSubstructure", 0.0);
106
107 auto tauPhiEt15 = Monitored::Scalar<float>("tauPhiEt15", 0.0);
108 auto tauEtaEt15 = Monitored::Scalar<float>("tauEtaEt15", 0.0);
109
110 auto tauPhiEt15Loose = Monitored::Scalar<float>("tauPhiEt15"+tauid+"Loose", 0.0);
111 auto tauEtaEt15Loose = Monitored::Scalar<float>("tauEtaEt15"+tauid+"Loose", 0.0);
112
113 auto tauCharge = Monitored::Scalar<int>("tauCharge", 0.0);
114 auto JetScore = Monitored::Scalar<float>(tauid+"JetScore", 0.0);
115 auto JetScoreSigTrans =
116 Monitored::Scalar<float>(tauid+"JetScoreSigTrans", 0.0);
117
118 auto RNNEleScore = Monitored::Scalar<float>(
"RNNEleScore", 0.0);
120 Monitored::Scalar<float>("RNNEleScoreSigTrans", 0.0);
121
122 auto NumTracks = Monitored::Scalar<int>("NumTracks", 0.0);
123 auto NumTracksEt15Loose =
124 Monitored::Scalar<int>("NumTracksEt15"+tauid+"Loose", 0.0);
125
126 auto nTauCandidates = Monitored::Scalar<int>("nTauCandidates", 0.0);
127 auto nHighPtTauCandidates =
128 Monitored::Scalar<int>("nHighPtTauCandidates", 0.0);
129 auto nClusters = Monitored::Scalar<int>("nClusters", 0.0);
130 auto nClustersEt15Loose =
131 Monitored::Scalar<int>("nClustersEt15"+tauid+"Loose", 0.0);
132
133 auto tauEtLoose = Monitored::Scalar<float>("tauEt"+tauid+"Loose", 0.0);
134 auto tauEtaLoose = Monitored::Scalar<float>("tauEta"+tauid+"Loose", 0.0);
135 auto tauPhiLoose = Monitored::Scalar<float>("tauPhi"+tauid+"Loose", 0.0);
136 auto NumTracksLoose = Monitored::Scalar<float>("NumTracks"+tauid+"Loose", 0.0);
137
138 auto tauEtMedium = Monitored::Scalar<float>("tauEt"+tauid+"Medium", 0.0);
139 auto tauEtaMedium = Monitored::Scalar<float>("tauEta"+tauid+"Medium", 0.0);
140 auto tauPhiMedium = Monitored::Scalar<float>("tauPhi"+tauid+"Medium", 0.0);
141 auto NumTracksMedium = Monitored::Scalar<float>("NumTracks"+tauid+"Medium", 0.0);
142
143 auto tauEtTight = Monitored::Scalar<float>("tauEt"+tauid+"Tight", 0.0);
144 auto tauEtaTight = Monitored::Scalar<float>("tauEta"+tauid+"Tight", 0.0);
145 auto tauPhiTight = Monitored::Scalar<float>("tauPhi"+tauid+"Tight", 0.0);
146 auto NumTracksTight = Monitored::Scalar<float>("NumTracks"+tauid+"Tight", 0.0);
147
148 auto LB = Monitored::Scalar<int>(
"LB", 0.0);
149
150 auto isolFrac = Monitored::Scalar<float>(
"isolFrac", 0.0);
151 auto etEMAtEMScale = Monitored::Scalar<float>(
"etEMAtEMScale", 0.0);
152
153 auto etHadAtEMScale = Monitored::Scalar<float>(
"etHadAtEMScale", 0.0);
154 auto centFrac = Monitored::Scalar<float>(
"centFrac", 0.0);
155 auto jetSeedEta = Monitored::Scalar<float>("jetSeedEta", 0.0);
156 auto jetSeedPhi = Monitored::Scalar<float>("jetSeedPhi", 0.0);
157 auto jetSeedPt = Monitored::Scalar<float>("jetSeedPt", 0.0);
158
159 auto muonVeto = Monitored::Scalar<float>("muonVeto", 0.0);
160
161 auto tauLoose = Monitored::Scalar<float>("tau"+tauid+"Loose", 0.0);
162 auto tauMedium = Monitored::Scalar<float>("tau"+tauid+"Medium", 0.0);
163 auto tauTight = Monitored::Scalar<float>("tau"+tauid+"Tight", 0.0);
164
165 auto PSSFrac = Monitored::Scalar<float>("PSSFrac", 0.0);
166 auto EMFrac = Monitored::Scalar<float>("EMFrac", 0.0);
167
168 auto EMFracTrk = Monitored::Scalar<float>("EMFracTrk", 0.0);
169 auto nNeutPFO = Monitored::Scalar<float>("nNeutPFO", 0.0);
170 auto nShot = Monitored::Scalar<float>("nShot", 0.0);
171
172 auto BDTScoreAsP0 = Monitored::Scalar<float>("BDTScoreAsP0", 0.0);
173 auto dRmax = Monitored::Scalar<float>(
"dRmax", 0.0);
174
175 auto ipSigLeadTrk = Monitored::Scalar<float>(
"ipSigLeadTrk", 0.0);
176 auto massTrkSys = Monitored::Scalar<float>(
"massTrkSys", 0.0);
177 auto etOverPtLeadTrack = Monitored::Scalar<float>("etOverPtLeadTrack", 0.0);
179 auto trFlightPathSig = Monitored::Scalar<float>(
"trFlightPathSig", 0.0);
180 auto trkAvgDist = Monitored::Scalar<float>(
"trkAvgDist", 0.0);
181
182 auto panEta = Monitored::Scalar<float>("panEta", 0.0);
183 auto panPhi = Monitored::Scalar<float>("panPhi", 0.0);
184 auto panPt = Monitored::Scalar<float>("panPt", 0.0);
185 auto d0 = Monitored::Scalar<float>(
"d0", 0.0);
186 auto dRJetSeedAxis = Monitored::Scalar<float>("dRJetSeedAxis", 0.0);
187 auto z0 = Monitored::Scalar<float>(
"z0", 0.0);
188
189 auto etaTrack = Monitored::Scalar<float>("etaTrack", 0.0);
190 auto ptTrack = Monitored::Scalar<float>("ptTrack", 0.0);
191 auto phiTrack = Monitored::Scalar<float>("phiTrack", 0.0);
192 auto leadTrkPt = Monitored::Scalar<float>(
"leadTrkPt", 0.0);
193 auto nHighPtTaus = Monitored::Scalar<float>("nHighPtTaus", 0.0);
195 Monitored::Scalar<float>("numberOfTRTHighThresholdHits", 0.0);
197 Monitored::Scalar<float>("numberOfTRTHighThresholdOutliers", 0.0);
198 auto numberOfTRTHits = Monitored::Scalar<float>(
"numberOfTRTHits", 0.0);
200 Monitored::Scalar<float>("numberOfTRTOutliers", 0.0);
202 Monitored::Scalar<float>("ipZ0SinThetaSigLeadTrk", 0.0);
205 Monitored::Scalar<float>("numberOfPixelSharedHits", 0.0);
206 auto numberOfSCTHits = Monitored::Scalar<float>(
"numberOfSCTHits", 0.0);
208 Monitored::Scalar<float>("numberOfSCTSharedHits", 0.0);
209 auto rConv = Monitored::Scalar<float>("rConv", 0.0);
210 auto rConvII = Monitored::Scalar<float>("rConvII", 0.0);
211
212
213 auto trackLogSeedJetPt = Monitored::Scalar<float>("trackLogSeedJetPt", 0.0);
214 auto trackLogPt = Monitored::Scalar<float>("trackLogPt", 0.0);
215 auto trackEta = Monitored::Scalar<float>(
"trackEta", 0.0);
216 auto trackd0TJVA = Monitored::Scalar<float>("trackd0TJVA", 0.0);
217 auto trackZ0SinthetaTJVA =
218 Monitored::Scalar<float>("trackZ0SinthetaTJVA", 0.0);
219 auto trackD0SigTJVA = Monitored::Scalar<float>("trackD0SigTJVA", 0.0);
220 auto trackZ0sinthetaSigTJVA =
221 Monitored::Scalar<float>("trackZ0sinthetaSigTJVA", 0.0);
222 auto trackCharge = Monitored::Scalar<float>("trackCharge", 0.0);
223 auto trackqOverP = Monitored::Scalar<float>("trackqOverP", 0.0);
224 auto trackLogRConv = Monitored::Scalar<float>("trackLogRConv", 0.0);
225 auto trackTanhRConvII = Monitored::Scalar<float>("trackTanhRConvII", 0.0);
226 auto trackPtRatioSeedJet =
227 Monitored::Scalar<float>("trackPtRatioSeedJet", 0.0);
228 auto trackdRJetSeedAxis = Monitored::Scalar<float>("trackdRJetSeedAxis", 0.0);
229 auto trackNInnermostPixHits =
230 Monitored::Scalar<float>("trackNInnermostPixHits", 0.0);
231 auto trackNPixHits = Monitored::Scalar<float>("trackNPixHits", 0.0);
232 auto trackNSiHits = Monitored::Scalar<float>("trackNSiHits", 0.0);
233 auto trackeProbabilityHT =
234 Monitored::Scalar<float>("trackeProbabilityHT", 0.0);
235 auto trackeProbabilityNN =
236 Monitored::Scalar<float>("trackeProbabilityNN", 0.0);
237 auto trackeProbabilityHTorNN =
238 Monitored::Scalar<float>("trackeProbabilityHTorNN", 0.0);
239 auto trackIdScoreCharged = Monitored::Scalar<float>("track", 0.0);
240 auto trackIdScoreIso = Monitored::Scalar<float>("track", 0.0);
241 auto trackIdScoreConv = Monitored::Scalar<float>("track", 0.0);
242 auto trackIdScoreFake = Monitored::Scalar<float>("track", 0.0);
243
244 auto clusterLogEt = Monitored::Scalar<float>("clusterLogEt", 0.0);
245 auto clusterEta = Monitored::Scalar<float>("clusterEta", 0.0);
246 auto clusterPhi = Monitored::Scalar<float>("clusterPhi", 0.0);
247 auto clusterSecondR = Monitored::Scalar<float>("clusterSecondR", 0.0);
248 auto clusterSecondLambda =
249 Monitored::Scalar<float>("clusterSecondLambda", 0.0);
250 auto clusterCenterLambda =
251 Monitored::Scalar<float>("clusterCenterLambda", 0.0);
252 auto clusterFirstEngDens =
253 Monitored::Scalar<float>("clusterFirstEngDens", 0.0);
254 auto clusterEMproba = Monitored::Scalar<float>("clusterEMproba", 0.0);
255 auto clustersMeanCenterLambda =
256 Monitored::Scalar<float>("clustersMeanCenterLambda", 0.0);
257 auto clustersMeanFirstEngDens =
258 Monitored::Scalar<float>("clustersMeanFirstEngDens", 0.0);
259 auto clustersMeanEMProbability =
260 Monitored::Scalar<float>("clustersMeanEMProbability", 0.0);
261 auto clustersMeanSecondLambda =
262 Monitored::Scalar<float>("clustersMeanSecondLambda", 0.0);
263 auto clustersMeanPresamplerFrac =
264 Monitored::Scalar<float>("clustersMeanPresamplerFrac", 0.0);
265 auto clustersPFOEngRelDiff =
266 Monitored::Scalar<float>("clustersPFOEngRelDiff", 0.0);
267
268 nTauCandidates = 0;
269
270
285
286 for (const auto tau : *shallowTaus) {
287
288 if (!passThinning.
withDefault(*tau,
true))
continue;
289
290 tauEta = tau->eta();
291 tauPhi = tau->phi();
292 tauEt = tau->pt() /
GeV;
293 tauCharge = tau->charge();
294 NumTracks = tau->nTracks();
297
298
302
304 jetSeedEta = tau->etaJetSeed();
305 jetSeedPhi = tau->phiJetSeed();
306 jetSeedPt = tau->ptJetSeed() /
GeV;
307
311
313
314
316
317
318 JetScore =
score.isAvailable() ?
score(*tau) : -1234;
319
320 JetScoreSigTrans = trans_score(*tau);
321
322 tauLoose = tauid_loose.
isAvailable() ? tauid_loose(*tau) : -1234;
323
324 tauMedium = tauid_medium.
isAvailable() ? tauid_medium(*tau) : -1234;
325
326 tauTight = tauid_tight.
isAvailable() ? tauid_tight(*tau) : -1234;
327
328 } else{
329
331 JetScoreSigTrans =
333
337 }
338
343
344 panEta = tau->etaPanTauCellBased();
345 panPhi = tau->phiPanTauCellBased();
346 panPt = tau->ptPanTauCellBased() /
GeV;
347
348
351
352
354 nNeutPFO = tau->nProtoNeutralPFOs();
355 nShot = tau->nShotPFOs();
356
357 int panModeDummy = -1;
358 int panModeSubstructureDummy = -1;
359
360 if (m_etaMin < std::abs(tauEta) && std::abs(tauEta) < m_etaMax) {
361
362 if( tauEt > lowerEtThreshold) {
363 nTauCandidates += 1;
364 }
365
366 if (tauEt > higherEtThreshold) {
367 nHighPtTauCandidates += 1;
368 nHighPtTaus += 1;
369 }
370
371 if (m_kinGroupName != "tauMonKinGroupGlobal" &&
372 tauEt > lowerEtThreshold && tauLoose) {
373
374 tauPhiEt15Loose = tau->phi();
375 tauEtaEt15Loose = tau->eta();
376 tauEtEt15Loose = tau->pt() /
GeV;
377 nClustersEt15Loose =
379 NumTracksEt15Loose = tau->nTracks();
380
382 panModeDummy);
383 panModeEt15Loose = panModeDummy;
384 fill(tool, tauPhiEt15Loose, tauEtaEt15Loose,
385 nClustersEt15Loose, NumTracksEt15Loose, tauEtEt15Loose,
386 panModeEt15Loose);
387 }
388
389 if (m_kinGroupName != "tauMonKinGroupGlobal" && tauLoose) {
390 tauPhiLoose = tau->phi();
391 tauEtaLoose = tau->eta();
392 tauEtLoose = tau->pt() /
GeV;
393 NumTracksLoose = tau->nTracks();
394
395 fill(tool, tauPhiLoose, tauEtaLoose, NumTracksLoose,
396 tauEtLoose);
397 }
398
399 if (m_kinGroupName != "tauMonKinGroupGlobal" && tauMedium) {
400 tauPhiMedium = tau->phi();
401 tauEtaMedium = tau->eta();
402 tauEtMedium = tau->pt() /
GeV;
403 NumTracksMedium = tau->nTracks();
404
405 fill(tool, tauPhiMedium, tauEtaMedium, NumTracksMedium,
406 tauEtMedium);
407 }
408
409 if (m_kinGroupName != "tauMonKinGroupGlobal" && tauTight) {
410 tauPhiTight = tau->phi();
411 tauEtaTight = tau->eta();
412 tauEtTight = tau->pt() /
GeV;
413 NumTracksTight = tau->nTracks();
414
415 fill(tool, tauPhiTight, tauEtaTight, NumTracksTight,
416 tauEtTight);
417 }
418
419
420
421 if (tau->nTracks() != 0) {
422
427
430 }
431 else {
433 }
434
437 }
438 else {
440 }
441
442 etOverPtLeadTrack =
445
446 fill(tool, massTrkSys, etOverPtLeadTrack, trFlightPathSig,
447 ipSigLeadTrk, ipZ0SinThetaSigLeadTrk, leadTrkPt);
448
452
454
457 fill(tool, numberOfSCTSharedHits);
458 }
459
462 fill(tool, numberOfSCTHits);
463 }
464
467 fill(tool, numberOfPixelSharedHits);
468 }
469
472 fill(tool, numberOfPixelHits);
473 }
476 fill(tool, numberOfTRTHighThresholdHits);
477 }
478 if (
track->summaryValue(dummy,
481 fill(tool, numberOfTRTHighThresholdOutliers);
482 }
485 fill(tool, numberOfTRTHits);
486 }
489 fill(tool, numberOfTRTOutliers);
490 }
491
494
495 phiTrack = perigee.parameters()[
Trk::phi];
496 etaTrack = perigee.
eta();
497 ptTrack = perigee.
pT() /
GeV;
498
499 fill(tool, d0, z0, phiTrack, etaTrack, ptTrack);
500 }
501 }
502
503
504
505 else {
507 fill(tool, leadTrkPt);
508 }
509
510
511
512
513 double tauSeedPt = tau->ptJetSeed();
514 double logTauSeedPt = std::log(tauSeedPt);
515 trackLogSeedJetPt = logTauSeedPt;
516
517 fill(tool, trackLogSeedJetPt);
518
520
523 trackAcc("trackLinks");
524 if (!trackAcc(*track)[0]) {
525 continue;
526 }
527
529
531 trackZ0SinthetaTJVA =
track->z0sinThetaTJVA(*tau);
532 trackD0SigTJVA = 999.;
533 trackZ0sinthetaSigTJVA = 999.;
534 float rConv = 999.;
535 float rConvII = 999.;
538 trackZ0SinthetaTJVA =
track->z0sinthetaTJVA();
539 trackD0SigTJVA =
track->d0SigTJVA();
540 trackZ0sinthetaSigTJVA =
track->z0sinthetaSigTJVA();
541 rConv =
track->rConv();
542 rConvII =
track->rConvII();
543 }
544 trackdRJetSeedAxis =
548 uint8_t nInnermostPixelLayerHits = 0;
571
573
574
575 trackeProbabilityHTorNN =
577
580 trackLogPt = std::log(trackPt);
582 trackd0TJVA = std::tanh(d0TJVA / 10.);
583 trackCharge = trackParticle->
charge();
584 trackqOverP =
qOverP * 1000.;
585 trackLogRConv = std::log(rConv);
586 trackTanhRConvII = std::tanh(rConvII / 500.0);
587 trackPtRatioSeedJet =
trackPt / tauSeedPt;
588 trackNInnermostPixHits = nInnermostPixelLayerHits;
590 trackNSiHits =
592
593 fill(tool, trackLogPt, trackEta, trackd0TJVA, trackZ0SinthetaTJVA,
594 trackD0SigTJVA, trackZ0sinthetaSigTJVA, trackCharge, trackqOverP,
595 trackLogRConv, trackTanhRConvII, trackPtRatioSeedJet,
596 trackdRJetSeedAxis, trackNInnermostPixHits,
597 trackNPixHits,
598 trackNSiHits,
599 trackeProbabilityHT, trackeProbabilityNN, trackeProbabilityHTorNN);
600
602 float chargedScore = rnn_chargedScore(*track);
603 float isolationScore = rnn_isolationScore(*track);
604 float conversionScore = rnn_conversionScore(*track);
605 float fakeScore = 1. - chargedScore - isolationScore - conversionScore;
606
607 fakeScore = std::max(0.f, fakeScore);
608 fakeScore = std::min(1.f, fakeScore);
609
610 trackIdScoreCharged = chargedScore;
611 trackIdScoreIso = isolationScore;
612 trackIdScoreConv = conversionScore;
613 trackIdScoreFake = fakeScore;
614
615 fill(tool, trackIdScoreCharged, trackIdScoreIso, trackIdScoreConv,
616 trackIdScoreFake);
617 }
618 }
619
620
621 std::vector<const xAOD::IParticle *> particleList = tau->clusters();
622 std::vector<xAOD::CaloVertexedTopoCluster>
clusters;
624 if (tau->vertexLink().isValid())
626
627 for (const xAOD::IParticle *particle : particleList) {
630 if (vertex) {
633 } else {
635 }
636 }
637
638
639 auto et_cmp = [](const xAOD::CaloVertexedTopoCluster &lhs,
640 const xAOD::CaloVertexedTopoCluster &rhs) {
641 return lhs.
p4().Et() > rhs.p4().Et();
642 };
644
645
648 }
649
650 double moment;
651 for (const auto& vertexedCluster : clusters) {
653
654 clusterLogEt = std::log10(vertexedCluster.p4().Et());
655 clusterEta = vertexedCluster.eta();
656 clusterPhi = vertexedCluster.phi();
657
659 clusterSecondR = std::log10(moment + 0.1);
660
662 moment);
663 clusterSecondLambda = std::log10(moment + 0.1);
664
666 moment);
667 clusterCenterLambda = std::log10(moment + 1e-6);
668
670 moment);
671 if (moment != 0.)
672 moment = std::log10(std::abs(moment));
673 clusterFirstEngDens = moment;
674
676 moment);
677 clusterEMproba = moment;
678
679 fill(tool, clusterLogEt, clusterEta, clusterPhi, clusterSecondR,
680 clusterSecondLambda, clusterCenterLambda, clusterFirstEngDens,
681 clusterEMproba);
682 }
683
684
685 float avariable = 0.;
687 avariable);
688 if (test)
689 clustersMeanCenterLambda = avariable;
690
692 avariable);
693 if (test)
694 clustersMeanFirstEngDens = avariable;
695
697 avariable);
698 if (test)
699 clustersMeanEMProbability = avariable;
700
702 avariable);
703 if (test)
704 clustersMeanSecondLambda = avariable;
705
707 avariable);
708 if (test)
709 clustersMeanPresamplerFrac = avariable;
710
712 if (test)
713 clustersPFOEngRelDiff = avariable;
714
715 fill(tool, clustersMeanCenterLambda, clustersMeanFirstEngDens,
716 clustersMeanEMProbability, clustersMeanSecondLambda,
717 clustersMeanPresamplerFrac, clustersPFOEngRelDiff);
718
719 for (
unsigned int np = 0;
np < nNeutPFO;
np++) {
720 const xAOD::PFO *npfo = tau->protoNeutralPFO(np);
722 fill(tool, BDTScoreAsP0);
723 }
724
725 if (tauEt > lowerEtThreshold) {
726 tauPhiEt15 = tau->phi();
727 tauEtaEt15 = tau->eta();
728 fill(tool, tauPhiEt15, tauEtaEt15);
729 }
730
731 fill(tool, tauPhi, tauEta, LB, tauEt, centFrac, isolFrac,etEMAtEMScale, etHadAtEMScale,
732 tauCharge, JetScore, JetScoreSigTrans, RNNEleScore, RNNEleScoreSigTrans,
733 muonVeto, tauLoose, tauMedium, tauTight, PSSFrac, EMFrac, EMFracTrk, nNeutPFO,
734 nShot, NumTracks, nClusters, jetSeedEta, jetSeedPhi, jetSeedPt,
735 dRmax, ptRatioEflowApprox, trkAvgDist);
736
738 panModeSubstructureDummy);
739 panModeSubstructure = panModeSubstructureDummy;
740
741 fill(tool, panModeSubstructure);
742 if (panPhi > -100) {
743 fill(tool, panEta, panPhi, panPt);
744 }
745 }
746 }
747
748 fill(tool, nHighPtTauCandidates, nTauCandidates, nHighPtTaus);
749
750 return StatusCode::SUCCESS;
751}
Environment_t environment() const
Accessor functions for the environment.
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.).
Declare a monitored scalar variable.
const_reference_type withDefault(size_t index, const D &deflt)
Fetch the variable for one element, as a const reference.
bool isAvailable()
Test to see if this variable exists in the store, for the referenced object.
double eta() const
Access method for pseudorapidity - from momentum.
double pT() const
Access method for transverse momentum.
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_EMFracFixedDecorKey
SG::ReadDecorHandleKey< xAOD::TauTrackContainer > m_eProbabilityNNDecorKey
SG::ReadDecorHandleKey< xAOD::TauTrackContainer > m_z0sinthetaSigTJVADecorKey
SG::ReadDecorHandleKey< xAOD::TauTrackContainer > m_z0sinthetaTJVADecorKey
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_offlineGNTauScoreDecorKey
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_offlineGNTauMediumWPDecorKey
SG::ReadDecorHandleKey< xAOD::TauTrackContainer > m_rnn_chargedScoreDecorKey
SG::ReadDecorHandleKey< xAOD::TauTrackContainer > m_rnn_isolationScoreDecorKey
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_offlineGNTauLooseWPDecorKey
SG::ReadDecorHandleKey< xAOD::TauTrackContainer > m_d0SigTJVADecorKey
SG::ReadDecorHandleKey< xAOD::TauTrackContainer > m_rnn_conversionScoreDecorKey
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_offlineGNTauTransScoreDecorKey
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_passThinningDecorKey
SG::ReadDecorHandleKey< xAOD::TauJetContainer > m_offlineGNTauTightWPDecorKey
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
@ SECOND_LAMBDA
Second Moment in .
@ EM_PROBABILITY
Classification probability to be em-like.
@ SECOND_R
Second Moment in .
@ FIRST_ENG_DENS
First Moment in E/V.
@ CENTER_LAMBDA
Shower depth at Cluster Centroid.
virtual FourMom_t p4() const final
The full 4-momentum of the particle.
float bdtPi0Score() const
get BDT Score used to classify clusters as Pi0 like or not
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
float qOverP() const
Returns the parameter.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
float charge() const
Returns the charge.
float nTRTHighThresholdHits(const U &p)
float nPixelDeadSensors(const U &p)
float nSCTHits(const U &p)
float nSCTDeadSensors(const U &p)
float nPixelHits(const U &p)
void fill(const ToolHandle< GenericMonitoringTool > &tool, T &&... variables)
SG::Accessor< T, ALLOC > Accessor
bool EMFracFixed(const xAOD::TauJet &tau, float &out)
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ eProbabilityNN
Electron probability from NN.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
@ etHadAtEMScale
Get Hadronic energy at EM scale.
@ isolFrac
Get isolation fraction.
@ ClustersMeanEMProbability
@ ClustersMeanSecondLambda
@ ClustersMeanFirstEngDens
@ trkAvgDist
Get calibrated EM transverse energy (DEPRECATED since r19).
@ ClustersMeanPresamplerFrac
@ etEMAtEMScale
Get EM energy at EM scale.
@ centFrac
Get centrality fraction.
@ ClustersMeanCenterLambda
@ numTopoClusters
get number of topocluster constituents of jet associated to tau candidate
@ dRmax
Get maximal dR of tracks associated to calo-seeded tau.
@ RNNEleScore
RNN score for Ele rejection (not transformed).
@ RNNEleScoreSigTrans
RNN score which is signal transformed/flattened.
@ RNNJetScore
RNN score for Jet rejection (not transformed).
@ RNNJetScoreSigTrans
RNN score which is signal transformed/flattened.
PFO_v1 PFO
Definition of the current "pfo version".
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
TauTrack_v1 TauTrack
Definition of the current version.
ShallowCopyResult_t< T > shallowCopy(const T &cont, const EventContext &ctx)
Create a shallow copy of an existing container.
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfTRTHighThresholdOutliers
number of TRT high threshold outliers (only xenon counted) [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
@ numberOfSCTHoles
number of SCT holes [unit8_t].