ATLAS Offline Software
Loading...
Searching...
No Matches
TrackHelper.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MCTRUTH_TRACKHELPER_H
6#define MCTRUTH_TRACKHELPER_H
7
8
9#include <tuple>
10
13
14class IProxyDict;
15
16class G4Track;
19
21public:
22 TrackHelper(const G4Track* t);
23 bool IsPrimary() const ;
24 bool IsRegeneratedPrimary() const;
25 bool IsRegisteredSecondary() const ;
26 bool IsSecondary() const ;
36 int GetBarcode() const ; // TODO Drop this once UniqueID and Status are used instead
37 int GetUniqueID() const;
38 int GetStatus() const ;
61 private:
62 inline std::tuple<int, HepMcParticleLink::UniqueIDFlag> particleIdentifierAndFlag() const;
63
64 // TrackHelper also handles lightweight TrackBarcodeInfo instances, so the
65 // cached pointer intentionally uses the common VTrackInformation base.
67};
68
69inline std::tuple<int, HepMcParticleLink::UniqueIDFlag>
74
76{
77 const auto [identifier, flag] = particleIdentifierAndFlag();
78 return HepMcParticleLink(identifier,
79 0,
81 flag);
82}
83
85{
86 const auto [identifier, flag] = particleIdentifierAndFlag();
87 if(!proxy) {
88 return GenerateParticleLink();
89 }
90 return HepMcParticleLink(identifier,
91 0,
93 flag,
94 proxy);
95}
96
97#endif // MCTRUTH_TRACKHELPER_H
TrackInformation * GetTrackInformation()
Return concrete TrackInformation when callers need fields that are not part of the VTrackInformation ...
TrackHelper(const G4Track *t)
bool IsPrimary() const
VTrackInformation * m_trackInfo
Definition TrackHelper.h:66
bool IsSecondary() const
int GetBarcode() const
Return the truth barcode/id/status used for detector output.
std::tuple< int, HepMcParticleLink::UniqueIDFlag > particleIdentifierAndFlag() const
Definition TrackHelper.h:70
bool IsRegisteredSecondary() const
HepMcParticleLink GenerateParticleLink()
Generates a new HepMcParticleLink object on the stack based on the generation-zero unique id,...
Definition TrackHelper.h:75
HepMC::GenParticlePtr GetPrimaryGenParticle()
Return the primary truth particle associated with this track.
bool IsRegeneratedPrimary() const
int GetUniqueID() const
int GetStatus() const
Implementation of VTrackInformation.
Instances of classes derived from this class are attached as UserInformation to G4Tracks.
HepMC3::GenParticlePtr GenParticlePtr
Definition GenParticle.h:19
HepMC3::ConstGenParticlePtr ConstGenParticlePtr
Definition GenParticle.h:20