ATLAS Offline Software
Functions
xAOD::TauHelpers Namespace Reference

Functions

template<class T >
const T * getLink (const xAOD::IParticle *, std::string, bool debug=false)
 
const xAOD::TruthParticlegetTruthParticle (const xAOD::IParticle *, bool debug=false)
 return the truthParticle associated to the given IParticle (if any) More...
 
std::vector< ElementLink< xAOD::TrackParticleContainer > > allTrackParticleLinks (const xAOD::TauJet *tau)
 
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinks (const xAOD::TauJet *tau, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
 
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinksWithMask (const xAOD::TauJet *tau, xAOD::TauTrack::TrackFlagType mask)
 
xAOD::TauTracktauTrackNonConst (const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, int index, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
 
xAOD::TauTracktauTrackNonConstWithMask (const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, int index, xAOD::TauTrack::TrackFlagType mask)
 
std::vector< xAOD::TauTrack * > tauTracksNonConst (const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
 
std::vector< xAOD::TauTrack * > tauTracksNonConstWithMask (const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, xAOD::TauTrack::TrackFlagType mask)
 
std::vector< xAOD::TauTrack * > allTauTracksNonConst (const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont)
 
std::vector< const xAOD::IParticle * > clusters (const xAOD::TauJet &tau, double dRMax)
 
std::vector< xAOD::CaloVertexedTopoClustervertexedClusters (const xAOD::TauJet &tau, double dRMax)
 

Function Documentation

◆ allTauTracksNonConst()

std::vector< xAOD::TauTrack * > xAOD::TauHelpers::allTauTracksNonConst ( const xAOD::TauJet tau,
xAOD::TauTrackContainer trackCont 
)

Definition at line 85 of file TauxAODHelpers.cxx.

85  {
87  return tauTracksNonConstWithMask(tau, trackCont, mask);
88 }

◆ allTrackParticleLinks()

std::vector< ElementLink< xAOD::TrackParticleContainer > > xAOD::TauHelpers::allTrackParticleLinks ( const xAOD::TauJet tau)

Definition at line 16 of file TauxAODHelpers.cxx.

16  {
18  return trackParticleLinksWithMask(tau, mask);
19 }

◆ clusters()

std::vector< const xAOD::IParticle * > xAOD::TauHelpers::clusters ( const xAOD::TauJet tau,
double  dRMax 
)

Definition at line 93 of file TauxAODHelpers.cxx.

93  {
94  auto vertexedClusterList = xAOD::TauHelpers::vertexedClusters(tau, dRMax);
95 
96  std::vector<const xAOD::IParticle*> clusterList;
97  for (const auto& vertexedCluster : vertexedClusterList) {
98  const xAOD::CaloCluster& cluster = vertexedCluster.clust();
99  clusterList.push_back(&cluster);
100  }
101 
102  return clusterList;
103 }

◆ getLink()

template<class T >
const T* xAOD::TauHelpers::getLink ( const xAOD::IParticle ,
std::string  ,
bool  debug = false 
)

◆ getTruthParticle()

const xAOD::TruthParticle * xAOD::TauHelpers::getTruthParticle ( const xAOD::IParticle particle,
bool  debug = false 
)

return the truthParticle associated to the given IParticle (if any)

Definition at line 10 of file TauxAODHelpers.cxx.

11 {
12  return getLink<xAOD::TruthParticle>(particle, "truthParticleLink", debug);
13 }

◆ tauTrackNonConst()

xAOD::TauTrack * xAOD::TauHelpers::tauTrackNonConst ( const xAOD::TauJet tau,
xAOD::TauTrackContainer trackCont,
int  index,
xAOD::TauJetParameters::TauTrackFlag  flag = xAOD::TauJetParameters::TauTrackFlag::classifiedCharged 
)

Definition at line 41 of file TauxAODHelpers.cxx.

41  {
43  return tauTrackNonConstWithMask(tau, trackCont, index, mask);
44 
45 }

◆ tauTrackNonConstWithMask()

xAOD::TauTrack * xAOD::TauHelpers::tauTrackNonConstWithMask ( const xAOD::TauJet tau,
xAOD::TauTrackContainer trackCont,
int  index,
xAOD::TauTrack::TrackFlagType  mask 
)

Definition at line 48 of file TauxAODHelpers.cxx.

48  {
49  int accepted_track=0;
50  for( const ElementLink< xAOD::TauTrackContainer >& link : tau->allTauTrackLinks() ){
51  const xAOD::TauTrack* c_trk(nullptr);
52  if(link.isValid()) c_trk = *link;
53  if(c_trk==nullptr) continue;
54  if(c_trk->flagWithMask(mask)){
55 
56  if(accepted_track==index) {
57  if(dynamic_cast<const xAOD::TauTrackContainer*> (link.getStorableObjectPointer())!=trackCont){
58  std::cerr << "TauxAODHelpers::tauTrackNonConstWithMask, inconsistent containers given" << std::endl;
59  return nullptr;
60  }
61  return trackCont->at(link.index());
62  }
63  accepted_track++;
64  }
65  }
66  return nullptr;
67 }

◆ tauTracksNonConst()

std::vector< xAOD::TauTrack * > xAOD::TauHelpers::tauTracksNonConst ( const xAOD::TauJet tau,
xAOD::TauTrackContainer trackCont,
xAOD::TauJetParameters::TauTrackFlag  flag = xAOD::TauJetParameters::TauTrackFlag::classifiedCharged 
)

Definition at line 70 of file TauxAODHelpers.cxx.

70  {
72  return tauTracksNonConstWithMask(tau, trackCont, mask);
73 }

◆ tauTracksNonConstWithMask()

std::vector< xAOD::TauTrack * > xAOD::TauHelpers::tauTracksNonConstWithMask ( const xAOD::TauJet tau,
xAOD::TauTrackContainer trackCont,
xAOD::TauTrack::TrackFlagType  mask 
)

Definition at line 76 of file TauxAODHelpers.cxx.

76  {
77  std::vector<xAOD::TauTrack*> v;
78  for( const ElementLink< xAOD::TauTrackContainer >& link : tau->allTauTrackLinks() ){
79  if(link.isValid() && (*link)->flagWithMask(mask) && dynamic_cast<const xAOD::TauTrackContainer*> (link.getStorableObjectPointer()) == trackCont) v.push_back( trackCont->at(link.index()));
80  }
81  return v;
82 }

◆ trackParticleLinks()

std::vector< ElementLink< xAOD::TrackParticleContainer > > xAOD::TauHelpers::trackParticleLinks ( const xAOD::TauJet tau,
xAOD::TauJetParameters::TauTrackFlag  flag = xAOD::TauJetParameters::TauTrackFlag::classifiedCharged 
)

Definition at line 22 of file TauxAODHelpers.cxx.

22  {
24  return trackParticleLinksWithMask(tau, mask);
25 }

◆ trackParticleLinksWithMask()

std::vector< ElementLink< xAOD::TrackParticleContainer > > xAOD::TauHelpers::trackParticleLinksWithMask ( const xAOD::TauJet tau,
xAOD::TauTrack::TrackFlagType  mask 
)

Definition at line 28 of file TauxAODHelpers.cxx.

28  {
29  std::vector< ElementLink< xAOD::TrackParticleContainer > > links;
30  std::vector< const xAOD::TauTrack* > allTracks = tau->allTracks();
31  for ( const xAOD::TauTrack* trk : allTracks ){
32  if(trk->trackLinks().empty()) continue;
33  if(trk->flagWithMask(mask))
34  links.push_back(trk->trackLinks()[0]);
35  }
36  return links;
37 }

◆ vertexedClusters()

std::vector< xAOD::CaloVertexedTopoCluster > xAOD::TauHelpers::vertexedClusters ( const xAOD::TauJet tau,
double  dRMax 
)

Definition at line 108 of file TauxAODHelpers.cxx.

108  {
109  TLorentzVector tauAxis;
110  if (tau.vertexLink().isValid()) {
112  }
113  else {
115  }
116 
117  auto vertexedClusterList = tau.vertexedClusters();
118 
119  std::vector<xAOD::CaloVertexedTopoCluster> selectedList;
120  for (const auto& vertexedCluster : vertexedClusterList) {
121  TLorentzVector clusterP4 = vertexedCluster.p4();
122 
123  double dR = clusterP4.DeltaR(tauAxis);
124  if (dR > dRMax) continue;
125 
126  selectedList.push_back(vertexedCluster);
127  }
128 
129  return selectedList;
130 }
xAOD::TauHelpers::tauTrackNonConstWithMask
xAOD::TauTrack * tauTrackNonConstWithMask(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, int index, xAOD::TauTrack::TrackFlagType mask)
Definition: TauxAODHelpers.cxx:48
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
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:28
index
Definition: index.py:1
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
xAOD::TauJet_v3::allTauTrackLinks
const TauTrackLinks_t & allTauTrackLinks() const
Definition: TauJet_v3.cxx:420
DMTest::links
links
Definition: CLinks_v1.cxx:22
master.flag
bool flag
Definition: master.py:29
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
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:626
xAOD::TauHelpers::tauTracksNonConstWithMask
std::vector< xAOD::TauTrack * > tauTracksNonConstWithMask(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, xAOD::TauTrack::TrackFlagType mask)
Definition: TauxAODHelpers.cxx:76
python.PyAthena.v
v
Definition: PyAthena.py:157
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:97
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:514
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:108