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
Check if the element can be found.
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.