|
ATLAS Offline Software
|
Go to the documentation of this file.
22 }
catch (
const std::out_of_range &
e) {
28 return func(tau,
out);
32 const std::vector<const xAOD::TauTrack *> &tracks,
33 std::vector<double> &
out)
const {
35 out.reserve(tracks.size());
41 }
catch (
const std::out_of_range &
e) {
49 for (
const auto *
const trk : tracks) {
50 success = success && func(tau, *trk,
value);
58 const std::vector<xAOD::CaloVertexedTopoCluster> &
clusters,
59 std::vector<double> &
out)
const {
67 }
catch (
const std::out_of_range &
e) {
76 success = success && func(tau, cluster,
value);
84 if (
std::find(scalar_vars.begin(), scalar_vars.end(),
name) == scalar_vars.end()) {
88 throw std::invalid_argument(
"Nullptr passed to GNNVarCalc::insert");
94 if (
std::find(track_vars.begin(), track_vars.end(),
name) == track_vars.end()) {
98 throw std::invalid_argument(
"Nullptr passed to GNNVarCalc::insert");
104 if (
std::find(cluster_vars.begin(), cluster_vars.end(),
name) == cluster_vars.end()) {
108 throw std::invalid_argument(
"Nullptr passed to GNNVarCalc::insert");
113 std::unique_ptr<GNNVarCalc>
get_calculator(
const std::vector<std::string>& scalar_vars,
114 const std::vector<std::string>& track_vars,
115 const std::vector<std::string>& cluster_vars) {
116 auto calc = std::make_unique<GNNVarCalc>();
235 out = std::abs(tau.
eta());
360 float absEtaLeadTrack = acc_absEtaLeadTrack(tau);
367 float absDeltaEta = acc_absDeltaEta(tau);
374 float absDeltaPhi = acc_absDeltaPhi(tau);
383 if (!tracks.empty()) {
385 return lhs->
pt() > rhs->pt();
387 std::sort(tracks.begin(), tracks.end(), cmp_pt);
404 float emFracFixed = acc_emFracFixed(tau);
498 out = std::log10(std::abs(
track.d0TJVA()) + 1
e-6);
503 out = std::log10(std::abs(
track.z0sinthetaTJVA()) + 1
e-6);
534 out = std::abs(tlvSeedJet.Eta() -
track.eta());
545 out = tlvSeedJet.DeltaPhi(
track.p4());
552 out = inner_pixel_hits;
572 uint8_t inner_pixel_hits, inner_pixel_exp;
575 out = inner_pixel_exp ? inner_pixel_hits : 1.;
576 return success1 && success2;
580 uint8_t pixel_hits, pixel_dead;
583 out = pixel_hits + pixel_dead;
584 return success1 && success2;
591 out = sct_hits + sct_dead;
592 return success1 && success2;
609 auto atrack =
track.track();
631 out = acc_conversionScoreRNN(
track);
711 out = pix_hit + pix_dead + sct_hit + sct_dead;
712 return success1 && success2 && success3 && success4;
806 out = std::log10(cluster.
p4().Et());
826 out = cluster.
p4().DeltaPhi(tau.
p4());
848 double secondLambda(0);
857 double centerLambda(0);
875 double clusterFirstEngDens = 0.0;
877 if (clusterFirstEngDens < 1
e-6) clusterFirstEngDens = 1
e-6;
880 float clusterTotalEnergy = acc_ClusterTotalEnergy(tau);
881 if (clusterTotalEnergy < 1
e-6) clusterTotalEnergy = 1
e-6;
884 float clustersMeanFirstEngDens = acc_ClustersMeanFirstEngDens(tau);
886 out = std::log10(clusterFirstEngDens/clusterTotalEnergy) - clustersMeanFirstEngDens;
893 out = cluster.
p4().E();
898 out = cluster.
p4().Et();
903 double clusterFirstEngDens = 0.0;
905 out = clusterFirstEngDens;
910 double clusterEMprob = 0.0;
917 double clusterCenterMag = 0.0;
919 out = clusterCenterMag;
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool numberOfPixelHoles(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool(*)(const xAOD::TauJet &, double &) ScalarCalc
bool log_sumpt2_TV(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
bool CENTER_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool numberOfPixelDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
virtual FourMom_t p4() const final
The full 4-momentum of the particle.
bool centFrac(const xAOD::TauJet &tau, double &out)
bool ClustersMeanFirstEngDens(const xAOD::TauJet &tau, double &out)
bool et_log(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
std::unique_ptr< GNNVarCalc > get_calculator(const std::vector< std::string > &scalar_vars, const std::vector< std::string > &track_vars, const std::vector< std::string > &cluster_vars)
bool ptRatioEflowApprox(const xAOD::TauJet &tau, double &out)
bool log_sumpt_PV0(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
std::string find(const std::string &s)
return a remapped string
bool EM_PROBABILITY(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool absipSigLeadTrk(const xAOD::TauJet &tau, double &out)
virtual double eta() const
The pseudorapidity ( ) of the particle.
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool dEtaJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
bool EMFracFixed(const xAOD::TauJet &tau, double &out)
bool dz0_TV_PV0(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
bool chargedScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool numberOfSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool expectNextToInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool eProbabilityNNorHT(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool FirstEngDensOverClustersMeanFirstEngDens(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool innerTrkAvgDist(const xAOD::TauJet &tau, double &out)
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
virtual double eta() const final
The pseudorapidity ( ) of the particle.
bool absleadTrackEta(const xAOD::TauJet &tau, double &out)
@ numberOfTRTHits
number of TRT hits [unit8_t].
bool CENTER_LAMBDAOverClustersMeanCenterLambda(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool isolFrac(const xAOD::TauJet &tau, double &out)
bool et(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out)
bool massTrkSys(const xAOD::TauJet &tau, double &out)
bool hadLeakFracFixed(const xAOD::TauJet &tau, double &out)
bool d0_old(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
const CaloCluster & clust() const
Return the cluster being proxied,.
bool d0_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
double ptDetectorAxis() const
bool trFlightPathSig(const xAOD::TauJet &tau, double &out)
bool etHotShotWinOverPtLeadTrk(const xAOD::TauJet &tau, double &out)
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
bool(*)(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &, double &) ClusterCalc
bool ClustersMeanEMProbability(const xAOD::TauJet &tau, double &out)
MomentType
Enums to identify different moments.
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
virtual double pt() const
The transverse momentum ( ) of the particle.
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
bool(*)(const xAOD::TauJet &, const xAOD::TauTrack &, double &) TrackCalc
bool PSFrac(const xAOD::TauJet &tau, double &out)
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
bool nSiHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool eProbabilityHT(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
bool isolationScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool pt_tau_log(const xAOD::TauJet &tau, double &out)
bool leadTrackDeltaPhi(const xAOD::TauJet &tau, double &out)
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool charge(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool expectInnermostPixelLayerHit(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Class describing a tau jet.
const TauTrack * track(size_t i, TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged, int *container_index=0) const
Get the pointer to a given tauTrack associated with this tau /*container index needed by trackNonCons...
bool nInnermostPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool compute(const std::string &name, const xAOD::TauJet &tau, double &out) const
bool log_sumpt_TV(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
bool numberOfSCTDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
bool ptJetSeed_log(const xAOD::TauJet &tau, double &out)
float z() const
Returns the z position.
bool SECOND_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool ClustersMeanSecondLambda(const xAOD::TauJet &tau, double &out)
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &, double &out)
std::unordered_map< std::string, TrackCalc > m_track_map
bool leadTrackDeltaEta(const xAOD::TauJet &tau, double &out)
bool numberOfSCTSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool mEflowApprox(const xAOD::TauJet &tau, double &out)
bool trackPt(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool ClustersMeanPresamplerFrac(const xAOD::TauJet &tau, double &out)
bool detail(TauJetParameters::Detail detail, int &value) const
Set veto flag.
bool dPhiJetSeedAxis(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
virtual double pt() const
The transverse momentum ( ) of the particle.
bool SumPtTrkFrac(const xAOD::TauJet &tau, double &out)
std::unordered_map< std::string, ClusterCalc > m_cluster_map
bool numberOfPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool SECOND_R(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool e(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool qOverP(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool sumEMCellEtOverLeadTrkPt(const xAOD::TauJet &tau, double &out)
bool nPixelHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool numberOfPixelSharedHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool dRmax(const xAOD::TauJet &tau, double &out)
bool EMPOverTrkSysP(const xAOD::TauJet &tau, double &out)
bool theta(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
void insert(const std::string &name, ScalarCalc func, const std::vector< std::string > &scalar_vars)
bool numberOfContribPixelLayers(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool CENTER_MAG(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool etOverPtLeadTrk(const xAOD::TauJet &tau, double &out)
bool fakeScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool pt_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool leadTrackProbNNorHT(const xAOD::TauJet &tau, double &out)
bool ClustersMeanCenterLambda(const xAOD::TauJet &tau, double &out)
bool nSCTHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool numberOfTRTHighThresholdHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
const Vertex * vertex() const
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
bool eProbabilityNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
virtual FourMom_t p4() const
The full 4-momentum of the particle.
bool conversionScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool FIRST_ENG_DENS(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool absEta(const xAOD::TauJet &tau, double &out)
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
bool SECOND_LAMBDAOverClustersMeanSecondLambda(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
bool pt(const xAOD::TauJet &tau, double &out)
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
bool z0TJVA(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
bool numberOfTRTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
const TrackParticle * track() const
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Class describing a TrackParticle.
bool z0sinThetaTJVA_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Evaluate cluster kinematics with a different vertex / signal state.
double ptIntermediateAxis() const
bool ptDetectorAxis(const xAOD::TauJet &tau, double &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
bool numberOfInnermostPixelLayerHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &, double &out)
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool nIBLHitsAndExp(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
const_reference_type withDefault(const ELT &e, const T &deflt) const
Fetch the variable for one element, as a const reference, with a default.
bool log_sumpt2_PV0(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
std::unordered_map< std::string, ScalarCalc > m_scalar_map