23 std::vector< ElementLink< xAOD::TrackParticleContainer > > links;
24 std::vector< const xAOD::TauTrack* > allTracks = tau->
allTracks();
26 if(trk->trackLinks().empty())
continue;
27 if(trk->flagWithMask(mask))
28 links.push_back(trk->trackLinks()[0]);
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()));
50std::vector<const xAOD::IParticle*>
54 std::vector<const xAOD::IParticle*> clusterList;
55 for (
const auto& vertexedCluster : vertexedClusterList) {
57 clusterList.push_back(&cluster);
65std::vector<xAOD::CaloVertexedTopoCluster>
67 TLorentzVector tauAxis;
77 std::vector<xAOD::CaloVertexedTopoCluster> selectedList;
78 for (
const auto& vertexedCluster : vertexedClusterList) {
79 TLorentzVector clusterP4 = vertexedCluster.p4();
81 double dR = clusterP4.DeltaR(tauAxis);
82 if (dR > dRMax)
continue;
84 selectedList.push_back(vertexedCluster);
ElementLink< xAOD::TruthParticleContainer > TruthLink_t
const T * at(size_type n) const
Access an element, as an rvalue.
ElementLink implementation for ROOT usage.
bool isValid() const
Test to see if the link can be dereferenced.
Class providing the definition of the 4-vector interface.
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters() const
virtual FourMom_t p4() const
The full 4-momentum of the particle.
const VertexLink_t & vertexLink() const
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
const TauTrackLinks_t & allTauTrackLinks() const
std::vector< const xAOD::IParticle * > clusters(const xAOD::TauJet &tau, double dRMax)
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinks(const xAOD::TauJet *tau, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
const xAOD::TruthParticle * getTruthParticle(const xAOD::IParticle *, bool debug=false)
return the truthParticle associated to the given IParticle (if any)
std::vector< xAOD::TauTrack * > tauTracksNonConstWithMask(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont, xAOD::TauTrack::TrackFlagType mask)
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters(const xAOD::TauJet &tau, double dRMax)
std::vector< xAOD::TauTrack * > allTauTracksNonConst(const xAOD::TauJet *tau, xAOD::TauTrackContainer *trackCont)
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinksWithMask(const xAOD::TauJet *tau, xAOD::TauTrack::TrackFlagType mask)
const T * getLink(const xAOD::IParticle *, const std::string &, bool debug=false)
TauTrackFlag
Enum for tau track flags.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TauTrack_v1 TauTrack
Definition of the current version.
TauJet_v3 TauJet
Definition of the current "tau version".
TruthParticle_v1 TruthParticle
Typedef to implementation.
TauTrackContainer_v1 TauTrackContainer
Definition of the current TauTrack container version.