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
12
13class IProxyDict;
14
15class G4Track;
17
19public:
20 TrackHelper(const G4Track* t);
21 bool IsPrimary() const ;
22 bool IsRegeneratedPrimary() const;
23 bool IsRegisteredSecondary() const ;
24 bool IsSecondary() const ;
25 int GetBarcode() const ; // TODO Drop this once UniqueID and Status are used instead
26 int GetUniqueID() const;
27 int GetStatus() const ;
36 private:
37 inline std::tuple<int, HepMcParticleLink::UniqueIDFlag> particleIdentifierAndFlag() const;
38
40};
41
42inline std::tuple<int, HepMcParticleLink::UniqueIDFlag>
44{
45#if defined(HEPMC3)
47#else
49#endif
50}
51
53{
54 const auto [identifier, flag] = particleIdentifierAndFlag();
55 return HepMcParticleLink(identifier,
56 0,
58 flag);
59}
60
62{
63 const auto [identifier, flag] = particleIdentifierAndFlag();
64 if(!proxy) {
65 return GenerateParticleLink();
66 }
67 return HepMcParticleLink(identifier,
68 0,
70 flag,
71 proxy);
72}
73
74#endif // MCTRUTH_TRACKHELPER_H
TrackInformation * GetTrackInformation()
Definition TrackHelper.h:28
TrackInformation * m_trackInfo
Definition TrackHelper.h:39
TrackHelper(const G4Track *t)
bool IsPrimary() const
bool IsSecondary() const
int GetBarcode() const
std::tuple< int, HepMcParticleLink::UniqueIDFlag > particleIdentifierAndFlag() const
Definition TrackHelper.h:43
bool IsRegisteredSecondary() const
HepMcParticleLink GenerateParticleLink()
Generates a creates new HepMcParticleLink object on the stack based on GetUniqueID(),...
Definition TrackHelper.h:52
bool IsRegeneratedPrimary() const
int GetUniqueID() const
int GetStatus() const
Implementation of VTrackInformation.