|
ATLAS Offline Software
|
Go to the documentation of this file.
21 }
catch (
const std::out_of_range &
e) {
27 return func(tau,
out);
31 const std::vector<const xAOD::TauTrack *> &tracks,
32 std::vector<double> &
out)
const {
39 }
catch (
const std::out_of_range &
e) {
47 for (
const auto *
const trk : tracks) {
48 success = success && func(tau, *trk,
value);
56 const std::vector<xAOD::CaloVertexedTopoCluster> &
clusters,
57 std::vector<double> &
out)
const {
64 }
catch (
const std::out_of_range &
e) {
73 success = success && func(tau, cluster,
value);
81 if (
std::find(scalar_vars.begin(), scalar_vars.end(),
name) == scalar_vars.end()) {
85 throw std::invalid_argument(
"Nullptr passed to VarCalc::insert");
91 if (
std::find(track_vars.begin(), track_vars.end(),
name) == track_vars.end()) {
95 throw std::invalid_argument(
"Nullptr passed to VarCalc::insert");
101 if (
std::find(cluster_vars.begin(), cluster_vars.end(),
name) == cluster_vars.end()) {
105 throw std::invalid_argument(
"Nullptr passed to VarCalc::insert");
110 std::unique_ptr<VarCalc>
get_calculator(
const std::vector<std::string>& scalar_vars,
111 const std::vector<std::string>& track_vars,
112 const std::vector<std::string>& cluster_vars) {
113 auto calc = std::make_unique<VarCalc>();
295 float absEtaLeadTrack = acc_absEtaLeadTrack(tau);
302 float absDeltaEta = acc_absDeltaEta(tau);
309 float absDeltaPhi = acc_absDeltaPhi(tau);
318 if (!tracks.empty()) {
320 return lhs->
pt() > rhs->pt();
322 std::sort(tracks.begin(), tracks.end(), cmp_pt);
339 float emFracFixed = acc_emFracFixed(tau);
419 out = std::log10(std::abs(
track.d0TJVA()) + 1
e-6);
424 out = std::log10(std::abs(
track.z0sinthetaTJVA()) + 1
e-6);
461 out = inner_pixel_hits;
481 uint8_t inner_pixel_hits, inner_pixel_exp;
484 out = inner_pixel_exp ? inner_pixel_hits : 1.;
485 return success1 && success2;
489 uint8_t pixel_hits, pixel_dead;
492 out = pixel_hits + pixel_dead;
493 return success1 && success2;
500 out = sct_hits + sct_dead;
501 return success1 && success2;
518 auto atrack =
track.track();
540 out = acc_conversionScoreRNN(
track);
557 out = std::log10(cluster.
p4().Et());
577 out = cluster.
p4().DeltaPhi(tau.
p4());
583 out = std::log10(
out + 0.1);
589 out = std::log10(
out + 0.1);
602 double secondLambda(0);
611 double centerLambda(0);
629 double clusterFirstEngDens = 0.0;
631 if (clusterFirstEngDens < 1
e-6) clusterFirstEngDens = 1
e-6;
634 float clusterTotalEnergy = acc_ClusterTotalEnergy(tau);
635 if (clusterTotalEnergy < 1
e-6) clusterTotalEnergy = 1
e-6;
638 float clustersMeanFirstEngDens = acc_ClustersMeanFirstEngDens(tau);
640 out = std::log10(clusterFirstEngDens/clusterTotalEnergy) - clustersMeanFirstEngDens;
bool nSCTHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool chargedScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
bool CENTER_LAMBDAOverClustersMeanCenterLambda(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
virtual FourMom_t p4() const final
The full 4-momentum of the particle.
bool dRmax(const xAOD::TauJet &tau, double &out)
bool trFlightPathSig(const xAOD::TauJet &tau, double &out)
bool fakeScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
std::string find(const std::string &s)
return a remapped string
virtual double eta() const
The pseudorapidity ( ) of the particle.
bool SumPtTrkFrac(const xAOD::TauJet &tau, double &out)
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &, double &out)
bool d0TJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
bool nIBLHitsAndExp(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool ClustersMeanCenterLambda(const xAOD::TauJet &tau, double &out)
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
bool ptJetSeed_log(const xAOD::TauJet &tau, double &out)
bool EMPOverTrkSysP(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 ptDetectorAxis(const xAOD::TauJet &tau, double &out)
Helper class to provide constant type-safe access to aux data.
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
bool eProbabilityHT(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
const CaloCluster & clust() const
Return the cluster being proxied,.
double ptDetectorAxis() const
bool massTrkSys(const xAOD::TauJet &tau, double &out)
bool eProbabilityNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool ClustersMeanEMProbability(const xAOD::TauJet &tau, double &out)
bool CENTER_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool compute(const std::string &name, const xAOD::TauJet &tau, double &out) const
MomentType
Enums to identify different moments.
bool pt(const xAOD::TauJet &tau, double &out)
virtual double pt() const
The transverse momentum ( ) of the particle.
bool pt_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
bool d0_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool absleadTrackEta(const xAOD::TauJet &tau, double &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool mEflowApprox(const xAOD::TauJet &tau, double &out)
bool(*)(const xAOD::TauJet &, const xAOD::TauTrack &, double &) TrackCalc
bool nPixelHitsPlusDeadSensors(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool SECOND_LAMBDAOverClustersMeanSecondLambda(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Class describing a tau jet.
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool conversionScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
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 ClustersMeanPresamplerFrac(const xAOD::TauJet &tau, double &out)
std::unique_ptr< VarCalc > get_calculator(const std::vector< std::string > &scalar_vars, const std::vector< std::string > &track_vars, const std::vector< std::string > &cluster_vars)
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
bool z0sinThetaTJVA_abs_log(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool eProbabilityNNorHT(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool ptRatioEflowApprox(const xAOD::TauJet &tau, double &out)
bool ClustersMeanFirstEngDens(const xAOD::TauJet &tau, double &out)
std::unordered_map< std::string, ClusterCalc > m_cluster_map
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool etOverPtLeadTrk(const xAOD::TauJet &tau, double &out)
bool nInnermostPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
std::unordered_map< std::string, TrackCalc > m_track_map
bool detail(TauJetParameters::Detail detail, int &value) const
Set veto flag.
virtual double pt() const
The transverse momentum ( ) of the particle.
std::unordered_map< std::string, ScalarCalc > m_scalar_map
void insert(const std::string &name, ScalarCalc func, const std::vector< std::string > &scalar_vars)
bool etHotShotWinOverPtLeadTrk(const xAOD::TauJet &tau, double &out)
bool SECOND_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool leadTrackDeltaPhi(const xAOD::TauJet &tau, double &out)
bool leadTrackDeltaEta(const xAOD::TauJet &tau, double &out)
bool(*)(const xAOD::TauJet &, double &) ScalarCalc
bool pt_tau_log(const xAOD::TauJet &tau, double &out)
bool SECOND_R(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool leadTrackProbNNorHT(const xAOD::TauJet &tau, double &out)
bool EMFracFixed(const xAOD::TauJet &tau, double &out)
bool et_log(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool d0SigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
bool PSFrac(const xAOD::TauJet &tau, double &out)
virtual FourMom_t p4() const
The full 4-momentum of the particle.
bool FIRST_ENG_DENS(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool pt_jetseed_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out)
@ numberOfSCTHits
number of hits in SCT [unit8_t].
bool(*)(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &, double &) ClusterCalc
bool FirstEngDensOverClustersMeanFirstEngDens(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
bool absipSigLeadTrk(const xAOD::TauJet &tau, double &out)
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
const TrackParticle * track() const
Class describing a TrackParticle.
bool innerTrkAvgDist(const xAOD::TauJet &tau, double &out)
Evaluate cluster kinematics with a different vertex / signal state.
double ptIntermediateAxis() const
bool hadLeakFracFixed(const xAOD::TauJet &tau, double &out)
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
bool centFrac(const xAOD::TauJet &tau, double &out)
bool isolationScoreRNN(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &, double &out)
bool ClustersMeanSecondLambda(const xAOD::TauJet &tau, double &out)