 |
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 {
40 }
catch (
const std::out_of_range &
e) {
48 for (
const auto *
const trk : tracks) {
49 success = success && func(tau, *trk,
value);
57 const std::vector<xAOD::CaloVertexedTopoCluster> &
clusters,
58 std::vector<double> &
out)
const {
65 }
catch (
const std::out_of_range &
e) {
74 success = success && func(tau, cluster,
value);
82 if (
std::find(scalar_vars.begin(), scalar_vars.end(),
name) == scalar_vars.end()) {
86 throw std::invalid_argument(
"Nullptr passed to VarCalc::insert");
92 if (
std::find(track_vars.begin(), track_vars.end(),
name) == track_vars.end()) {
96 throw std::invalid_argument(
"Nullptr passed to VarCalc::insert");
102 if (
std::find(cluster_vars.begin(), cluster_vars.end(),
name) == cluster_vars.end()) {
106 throw std::invalid_argument(
"Nullptr passed to VarCalc::insert");
111 std::unique_ptr<VarCalc>
get_calculator(
const std::vector<std::string>& scalar_vars,
112 const std::vector<std::string>& track_vars,
113 const std::vector<std::string>& cluster_vars) {
114 auto calc = std::make_unique<VarCalc>();
285 float absEtaLeadTrack = acc_absEtaLeadTrack(tau);
292 float absDeltaEta = acc_absDeltaEta(tau);
299 float absDeltaPhi = acc_absDeltaPhi(tau);
308 if (!tracks.empty()) {
310 return lhs->
pt() > rhs->pt();
312 std::sort(tracks.begin(), tracks.end(), cmp_pt);
329 float emFracFixed = acc_emFracFixed(tau);
409 out = std::log10(std::abs(
track.z0sinthetaTJVA()) + 1
e-6);
414 out = std::log10(std::abs(
track.d0TJVA()) + 1
e-6);
451 out = inner_pixel_hits;
471 uint8_t inner_pixel_hits, inner_pixel_exp;
474 out = inner_pixel_exp ? inner_pixel_hits : 1.;
475 return success1 && success2;
479 uint8_t pixel_hits, pixel_dead;
482 out = pixel_hits + pixel_dead;
483 return success1 && success2;
490 out = sct_hits + sct_dead;
491 return success1 && success2;
495 auto atrack =
track.track();
510 out = std::log10(cluster.
p4().Et());
530 out = cluster.
p4().DeltaPhi(tau.
p4());
536 out = std::log10(
out + 0.1);
542 out = std::log10(
out + 0.1);
555 double secondLambda(0);
564 double centerLambda(0);
582 double clusterFirstEngDens = 0.0;
584 if (clusterFirstEngDens < 1
e-6) clusterFirstEngDens = 1
e-6;
587 float clusterTotalEnergy = acc_ClusterTotalEnergy(tau);
588 if (clusterTotalEnergy < 1
e-6) clusterTotalEnergy = 1
e-6;
591 float clustersMeanFirstEngDens = acc_ClustersMeanFirstEngDens(tau);
593 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)
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)
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)
bool pt_tau_log(const xAOD::TauJet &tau, const xAOD::TauTrack &, 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 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 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
Get and set values of common details variables via enum.
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)