ATLAS Offline Software
TauxAODHelpers.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8 
9 // ==================================================================
11 {
12  return getLink<xAOD::TruthParticle>(particle, "truthParticleLink", debug);
13 }
14 
15 // ==================================================================
16 std::vector< ElementLink< xAOD::TrackParticleContainer > > xAOD::TauHelpers::trackParticleLinks(const xAOD::TauJet* tau, xAOD::TauJetParameters::TauTrackFlag flag/*=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged*/){
18  return trackParticleLinksWithMask(tau, mask);
19 }
20 
21 // ==================================================================
22 std::vector< ElementLink< xAOD::TrackParticleContainer > > xAOD::TauHelpers::trackParticleLinksWithMask(const xAOD::TauJet* tau, xAOD::TauTrack::TrackFlagType mask){
23  std::vector< ElementLink< xAOD::TrackParticleContainer > > links;
24  std::vector< const xAOD::TauTrack* > allTracks = tau->allTracks();
25  for ( const xAOD::TauTrack* trk : allTracks ){
26  if(trk->trackLinks().empty()) continue;
27  if(trk->flagWithMask(mask))
28  links.push_back(trk->trackLinks()[0]);
29  }
30  return links;
31 }
32 
33 // ==================================================================
35  std::vector<xAOD::TauTrack*> v;
36  for( const ElementLink< xAOD::TauTrackContainer >& link : tau->allTauTrackLinks() ){
37  if(link.isValid() && (*link)->flagWithMask(mask) && dynamic_cast<const xAOD::TauTrackContainer*> (link.getStorableObjectPointer()) == trackCont) v.push_back( trackCont->at(link.index()));
38  }
39  return v;
40 }
41 
42 // ==================================================================
43 std::vector<xAOD::TauTrack*> xAOD::TauHelpers::allTauTracksNonConst( const xAOD::TauJet* tau, xAOD::TauTrackContainer* trackCont ){
45  return tauTracksNonConstWithMask(tau, trackCont, mask);
46 }
47 
48 
49 
50 std::vector<const xAOD::IParticle*>
51 xAOD::TauHelpers::clusters(const xAOD::TauJet& tau, double dRMax) {
52  auto vertexedClusterList = xAOD::TauHelpers::vertexedClusters(tau, dRMax);
53 
54  std::vector<const xAOD::IParticle*> clusterList;
55  for (const auto& vertexedCluster : vertexedClusterList) {
56  const xAOD::CaloCluster& cluster = vertexedCluster.clust();
57  clusterList.push_back(&cluster);
58  }
59 
60  return clusterList;
61 }
62 
63 
64 
65 std::vector<xAOD::CaloVertexedTopoCluster>
67  TLorentzVector tauAxis;
68  if (tau.vertexLink().isValid()) {
70  }
71  else {
73  }
74 
75  auto vertexedClusterList = tau.vertexedClusters();
76 
77  std::vector<xAOD::CaloVertexedTopoCluster> selectedList;
78  for (const auto& vertexedCluster : vertexedClusterList) {
79  TLorentzVector clusterP4 = vertexedCluster.p4();
80 
81  double dR = clusterP4.DeltaR(tauAxis);
82  if (dR > dRMax) continue;
83 
84  selectedList.push_back(vertexedCluster);
85  }
86 
87  return selectedList;
88 }
xAOD::TauJetParameters::TauTrackFlag
TauTrackFlag
Enum for tau track flags.
Definition: TauDefs.h:400
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
xAOD::TauJetParameters::IntermediateAxis
@ IntermediateAxis
Definition: TauDefs.h:338
xAOD::TauHelpers::trackParticleLinksWithMask
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinksWithMask(const xAOD::TauJet *tau, xAOD::TauTrack::TrackFlagType mask)
Definition: TauxAODHelpers.cxx:22
xAOD::TauHelpers::clusters
std::vector< const xAOD::IParticle * > clusters(const xAOD::TauJet &tau, double dRMax)
Definition: TauxAODHelpers.cxx:51
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:459
xAOD::TauHelpers::allTauTracksNonConst
std::vector< xAOD::TauTrack * > allTauTracksNonConst(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont)
Definition: TauxAODHelpers.cxx:43
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:62
xAOD::TauHelpers::getTruthParticle
const xAOD::TruthParticle * getTruthParticle(const xAOD::IParticle *, bool debug=false)
return the truthParticle associated to the given IParticle (if any)
Definition: TauxAODHelpers.cxx:10
xAOD::TauJet_v3::allTauTrackLinks
const TauTrackLinks_t & allTauTrackLinks() const
Definition: TauJet_v3.cxx:392
TruthLink_t
ElementLink< xAOD::TruthParticleContainer > TruthLink_t
Definition: TauxAODHelpers.cxx:7
DMTest::links
links
Definition: CLinks_v1.cxx:22
TauxAODHelpers.h
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
master.flag
bool flag
Definition: master.py:29
xAOD::TauHelpers::trackParticleLinks
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinks(const xAOD::TauJet *tau, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
Definition: TauxAODHelpers.cxx:16
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
xAOD::TauTrack_v1::TrackFlagType
uint16_t TrackFlagType
Definition: TauTrack_v1.h:61
xAOD::TauJet_v3::vertexedClusters
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters() const
Definition: TauJet_v3.cxx:586
xAOD::TauHelpers::tauTracksNonConstWithMask
std::vector< xAOD::TauTrack * > tauTracksNonConstWithMask(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, xAOD::TauTrack::TrackFlagType mask)
Definition: TauxAODHelpers.cxx:34
python.PyAthena.v
v
Definition: PyAthena.py:154
xAOD::TauTrack_v1
Definition: TauTrack_v1.h:27
xAOD::TauJet_v3::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: TauJet_v3.cxx:96
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
xAOD::TauJetParameters::DetectorAxis
@ DetectorAxis
Definition: TauDefs.h:337
xAOD::TauJet_v3::allTracks
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
Definition: TauJet_v3.cxx:482
xAOD::TauJet_v3::vertexLink
const VertexLink_t & vertexLink() const
xAOD::TauHelpers::vertexedClusters
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters(const xAOD::TauJet &tau, double dRMax)
Definition: TauxAODHelpers.cxx:66