ATLAS Offline Software
Simulation
G4Sim
MCTruth
MCTruth
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
11
#include "
GeneratorObjects/HepMcParticleLink.h
"
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
;
26
TrackInformation
*
GetTrackInformation
() {
return
m_trackInfo
;}
32
inline
HepMcParticleLink
GenerateParticleLink
();
33
inline
HepMcParticleLink
GenerateParticleLink
(
const
EventContext&);
34
private
:
35
inline
std::tuple<int, HepMcParticleLink::UniqueIDFlag>
particleIdentifierAndFlag
()
const
;
36
37
TrackInformation
*
m_trackInfo
;
38
};
39
40
inline
std::tuple<int, HepMcParticleLink::UniqueIDFlag>
41
TrackHelper::particleIdentifierAndFlag
()
const
42
{
43
#if defined(HEPMC3)
44
return
{
GetUniqueID
(),
HepMcParticleLink::IS_ID
};
45
#else
46
return
{
GetBarcode
(),
HepMcParticleLink::IS_BARCODE
};
47
#endif
48
}
49
50
HepMcParticleLink
TrackHelper::GenerateParticleLink
()
51
{
52
const
auto
[
identifier
,
flag
] =
particleIdentifierAndFlag
();
53
return
HepMcParticleLink
(
identifier
,
54
0,
55
HepMcParticleLink::IS_POSITION
,
56
flag
);
57
}
58
59
HepMcParticleLink
TrackHelper::GenerateParticleLink
(
const
EventContext& ctx)
60
{
61
const
auto
[
identifier
,
flag
] =
particleIdentifierAndFlag
();
62
return
HepMcParticleLink
(
identifier
,
63
0,
64
HepMcParticleLink::IS_POSITION
,
65
flag
,
66
ctx);
67
}
68
69
#endif // MCTRUTH_TRACKHELPER_H
HepMcParticleLink.h
TrackHelper::IsRegeneratedPrimary
bool IsRegeneratedPrimary() const
Definition:
TrackHelper.cxx:20
HepMcParticleLink::IS_BARCODE
@ IS_BARCODE
Definition:
HepMcParticleLink.h:85
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
HepMcParticleLink
a link optimized in size for a GenParticle in a McEventCollection
Definition:
HepMcParticleLink.h:72
HepMcParticleLink::IS_POSITION
@ IS_POSITION
Definition:
HepMcParticleLink.h:80
TrackHelper::TrackHelper
TrackHelper(const G4Track *t)
Definition:
TrackHelper.cxx:11
HepMcParticleLink::IS_ID
@ IS_ID
Definition:
HepMcParticleLink.h:84
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
Generated on Fri Nov 21 2025 21:20:51 for ATLAS Offline Software by
1.8.18