Loading [MathJax]/extensions/tex2jax.js
 |
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>();
284 float absEtaLeadTrack = acc_absEtaLeadTrack(tau);
291 float absDeltaEta = acc_absDeltaEta(tau);
298 float absDeltaPhi = acc_absDeltaPhi(tau);
307 if (!tracks.empty()) {
309 return lhs->
pt() > rhs->pt();
311 std::sort(tracks.begin(), tracks.end(), cmp_pt);
328 float emFracFixed = acc_emFracFixed(tau);
393 out = std::log10(track.pt());
408 out = std::log10(std::abs(track.z0sinthetaTJVA()) + 1
e-6);
413 out = std::log10(std::abs(track.d0TJVA()) + 1
e-6);
418 out = track.z0sinthetaTJVA();
423 out = track.z0sinthetaSigTJVA();
428 out = track.d0TJVA();
433 out = track.d0SigTJVA();
438 out = track.eta() - tau.
eta();
443 out = track.p4().DeltaPhi(tau.
p4());
450 out = inner_pixel_hits;
470 uint8_t inner_pixel_hits, inner_pixel_exp;
473 out = inner_pixel_exp ? inner_pixel_hits : 1.;
474 return success1 && success2;
478 uint8_t pixel_hits, pixel_dead;
481 out = pixel_hits + pixel_dead;
482 return success1 && success2;
489 out = sct_hits + sct_dead;
490 return success1 && success2;
494 auto atrack = track.track();
509 out = std::log10(cluster.p4().Et());
524 out = cluster.eta() - tau.
eta();
529 out = cluster.p4().DeltaPhi(tau.
p4());
535 out = std::log10(
out + 0.1);
541 out = std::log10(
out + 0.1);
554 double secondLambda(0);
563 double centerLambda(0);
581 double clusterFirstEngDens = 0.0;
583 if (clusterFirstEngDens < 1
e-6) clusterFirstEngDens = 1
e-6;
586 float clusterTotalEnergy = acc_ClusterTotalEnergy(tau);
587 if (clusterTotalEnergy < 1
e-6) clusterTotalEnergy = 1
e-6;
590 float clustersMeanFirstEngDens = acc_ClustersMeanFirstEngDens(tau);
592 out = std::log10(clusterFirstEngDens/clusterTotalEnergy) - clustersMeanFirstEngDens;
bool nSCTHitsPlusDeadSensors(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)
bool dRmax(const xAOD::TauJet &tau, double &out)
bool trFlightPathSig(const xAOD::TauJet &tau, 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?
bool ptDetectorAxis(const xAOD::TauJet &tau, double &out)
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, double &out)
bool z0sinthetaSigTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
double ptDetectorAxis() const
bool massTrkSys(const xAOD::TauJet &tau, 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)
@ eProbabilityNN
Electron probability from NN.
Class describing a tau jet.
bool nSCTHits(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 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].
@ 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.
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)
@ 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)