ATLAS Offline Software
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 
13 class G4Track;
14 class TrackInformation;
15 
16 class TrackHelper {
17 public:
18  TrackHelper(const G4Track* t);
19  bool IsPrimary() const ;
20  bool IsRegeneratedPrimary() const;
21  bool IsRegisteredSecondary() const ;
22  bool IsSecondary() const ;
23  int GetBarcode() const ; // TODO Drop this once UniqueID and Status are used instead
24  int GetUniqueID() const;
25  int GetStatus() const ;
33  inline HepMcParticleLink GenerateParticleLink(const EventContext&);
34  private:
35  inline std::tuple<int, HepMcParticleLink::UniqueIDFlag> particleIdentifierAndFlag() const;
36 
38 };
39 
40 inline std::tuple<int, HepMcParticleLink::UniqueIDFlag>
42 {
43 #if defined(HEPMC3)
45 #else
47 #endif
48 }
49 
51 {
52  const auto [identifier, flag] = particleIdentifierAndFlag();
54  0,
56  flag);
57 }
58 
60 {
61  const auto [identifier, flag] = particleIdentifierAndFlag();
63  0,
65  flag,
66  ctx);
67 }
68 
69 #endif // MCTRUTH_TRACKHELPER_H
TrackHelper::IsRegeneratedPrimary
bool IsRegeneratedPrimary() const
Definition: TrackHelper.cxx:20
TrackHelper::GetBarcode
int GetBarcode() const
Definition: TrackHelper.cxx:35
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
TrackHelper
Definition: TrackHelper.h:16
TrackHelper::TrackHelper
TrackHelper(const G4Track *t)
Definition: TrackHelper.cxx:11
master.flag
bool flag
Definition: master.py:29
TrackInformation
Implementation of VTrackInformation. Instances of this class are attached as UserInformation to G4Tra...
Definition: TrackInformation.h:41
TrackHelper::IsSecondary
bool IsSecondary() const
Definition: TrackHelper.cxx:30
TrackHelper::GetTrackInformation
TrackInformation * GetTrackInformation()
Definition: TrackHelper.h:26
TrackHelper::GetStatus
int GetStatus() const
Definition: TrackHelper.cxx:47
TrackHelper::IsRegisteredSecondary
bool IsRegisteredSecondary() const
Definition: TrackHelper.cxx:25
TrackHelper::IsPrimary
bool IsPrimary() const
Definition: TrackHelper.cxx:15
TrackHelper::m_trackInfo
TrackInformation * m_trackInfo
Definition: TrackHelper.h:37
TrackHelper::GenerateParticleLink
HepMcParticleLink GenerateParticleLink()
Generates a creates new HepMcParticleLink object on the stack based on GetUniqueID(),...
Definition: TrackHelper.h:50
TrackHelper::GetUniqueID
int GetUniqueID() const
Definition: TrackHelper.cxx:41
TrackHelper::particleIdentifierAndFlag
std::tuple< int, HepMcParticleLink::UniqueIDFlag > particleIdentifierAndFlag() const
Definition: TrackHelper.h:41