ATLAS Offline Software
Loading...
Searching...
No Matches
xAOD::TauHelpers Namespace Reference

Functions

template<class T>
const T * getLink (const xAOD::IParticle *, const std::string &, bool debug=false)
const xAOD::TruthParticlegetTruthParticle (const xAOD::IParticle *, bool debug=false)
 return the truthParticle associated to the given IParticle (if any)
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)
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 43 of file TauxAODHelpers.cxx.

43 {
45 return tauTracksNonConstWithMask(tau, trackCont, mask);
46}
uint16_t TrackFlagType
Definition TauTrack_v1.h:61
std::vector< xAOD::TauTrack * > tauTracksNonConstWithMask(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, xAOD::TauTrack::TrackFlagType mask)

◆ clusters()

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

Definition at line 51 of file TauxAODHelpers.cxx.

51 {
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}
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters(const xAOD::TauJet &tau, double dRMax)
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.

◆ getLink()

template<class T>
const T * xAOD::TauHelpers::getLink ( const xAOD::IParticle * ,
const 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}
const bool debug
const T * getLink(const xAOD::IParticle *, const std::string &, bool debug=false)

◆ tauTracksNonConstWithMask()

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

Definition at line 34 of file TauxAODHelpers.cxx.

34 {
35 std::vector<xAOD::TauTrack*> v;
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}
const T * at(size_type n) const
Access an element, as an rvalue.
const TauTrackLinks_t & allTauTrackLinks() const
TauTrackContainer_v1 TauTrackContainer
Definition of the current TauTrack container version.

◆ trackParticleLinks()

Definition at line 16 of file TauxAODHelpers.cxx.

16 {
18 return trackParticleLinksWithMask(tau, mask);
19}
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinksWithMask(const xAOD::TauJet *tau, xAOD::TauTrack::TrackFlagType mask)

◆ trackParticleLinksWithMask()

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

Definition at line 22 of file TauxAODHelpers.cxx.

22 {
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}
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
TauTrack_v1 TauTrack
Definition of the current version.
Definition TauTrack.h:16

◆ vertexedClusters()

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

Definition at line 66 of file TauxAODHelpers.cxx.

66 {
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}
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters() const
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition TauJet_v3.cxx:96
const VertexLink_t & vertexLink() const