ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_Geant4
ISF_Geant4Tools
src
TrackProcessorUserActionBase.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 ISF_GEANT4TOOLS_TRACKPROCESSORUSERACTIONBASE_H
6
#define ISF_GEANT4TOOLS_TRACKPROCESSORUSERACTIONBASE_H
7
8
#include "G4UserTrackingAction.hh"
9
#include "G4UserSteppingAction.hh"
10
#include "G4UserEventAction.hh"
11
12
#include "
MCTruth/VTrackInformation.h
"
13
14
#include "
ISF_Event/ISFParticleContainer.h
"
15
16
#include "
AtlasHepMC/GenParticle_fwd.h
"
17
18
namespace
ISF
{
19
class
ISFParticle
;
20
}
21
22
23
namespace
G4UA
{
24
25
namespace
iGeant4
{
26
27
class
TrackProcessorUserActionBase
:
public
G4UserTrackingAction,
28
public
G4UserSteppingAction,
29
public
G4UserEventAction
30
{
31
32
public
:
33
TrackProcessorUserActionBase
() =
default
;
34
virtual
void
BeginOfEventAction
(
const
G4Event*)
override
final
;
35
virtual
void
EndOfEventAction
(
const
G4Event*)
override
final
;
36
37
virtual
void
PreUserTrackingAction
(
const
G4Track*)
override
;
38
virtual
void
PostUserTrackingAction
(
const
G4Track*)
override
final
;
39
40
virtual
void
UserSteppingAction
(
const
G4Step*)
override
final
;
41
42
ISF::ISFParticleContainer
ReturnSecondaries
(
ISF::ISFParticle
const
* parent);
43
44
protected
:
45
ISF::ISFParticleContainer
m_storedSecondaries
;
46
49
virtual
void
ISFSteppingAction
(
const
G4Step*,
ISF::ISFParticle
*) = 0;
50
51
private
:
53
void
setupPrimary
(G4Track&);
54
56
void
setupSecondary
(
const
G4Track&);
57
59
void
updateCurrentBaseISFParticle
(
ISF::ISFParticle
* baseISFParticle);
60
62
VTrackInformation::TrackClassification
classify
(
HepMC::ConstGenParticlePtr
primaryGenParticle,
63
HepMC::ConstGenParticlePtr
generationZeroGenParticle,
64
HepMC::ConstGenParticlePtr
currentGenParticle,
65
int
regenerationNumber)
const
;
66
68
ISF::ISFParticle
*
m_curBaseISP
{};
69
70
};
// class TrackProcessorUserActionBase
71
72
}
// iGeant4
73
74
}
// G4UA
75
76
#endif
// ISF_GEANT4TOOLS_TRACKPROCESSORUSERACTIONBASE_H
GenParticle_fwd.h
ISFParticleContainer.h
VTrackInformation.h
G4UA::iGeant4::TrackProcessorUserActionBase::classify
VTrackInformation::TrackClassification classify(HepMC::ConstGenParticlePtr primaryGenParticle, HepMC::ConstGenParticlePtr generationZeroGenParticle, HepMC::ConstGenParticlePtr currentGenParticle, int regenerationNumber) const
Classify the particle represented by the given set of truth links.
Definition
TrackProcessorUserActionBase.cxx:212
G4UA::iGeant4::TrackProcessorUserActionBase::PreUserTrackingAction
virtual void PreUserTrackingAction(const G4Track *) override
Definition
TrackProcessorUserActionBase.cxx:102
G4UA::iGeant4::TrackProcessorUserActionBase::EndOfEventAction
virtual void EndOfEventAction(const G4Event *) override final
Definition
TrackProcessorUserActionBase.cxx:52
G4UA::iGeant4::TrackProcessorUserActionBase::ISFSteppingAction
virtual void ISFSteppingAction(const G4Step *, ISF::ISFParticle *)=0
This method is called by TrackProcessorUserActionBase after the G4Track->ISFParticle association has ...
G4UA::iGeant4::TrackProcessorUserActionBase::updateCurrentBaseISFParticle
void updateCurrentBaseISFParticle(ISF::ISFParticle *baseISFParticle)
Set the base ISFParticle for the currently traced particle.
Definition
TrackProcessorUserActionBase.cxx:204
G4UA::iGeant4::TrackProcessorUserActionBase::PostUserTrackingAction
virtual void PostUserTrackingAction(const G4Track *) override final
Definition
TrackProcessorUserActionBase.cxx:236
G4UA::iGeant4::TrackProcessorUserActionBase::UserSteppingAction
virtual void UserSteppingAction(const G4Step *) override final
Definition
TrackProcessorUserActionBase.cxx:58
G4UA::iGeant4::TrackProcessorUserActionBase::m_storedSecondaries
ISF::ISFParticleContainer m_storedSecondaries
Definition
TrackProcessorUserActionBase.h:45
G4UA::iGeant4::TrackProcessorUserActionBase::setupPrimary
void setupPrimary(G4Track &)
Setup the given G4Track as the current primary particle which we'll process.
Definition
TrackProcessorUserActionBase.cxx:121
G4UA::iGeant4::TrackProcessorUserActionBase::setupSecondary
void setupSecondary(const G4Track &)
Setup the given G4Track as the current secondary particle which we'll process.
Definition
TrackProcessorUserActionBase.cxx:193
G4UA::iGeant4::TrackProcessorUserActionBase::ReturnSecondaries
ISF::ISFParticleContainer ReturnSecondaries(ISF::ISFParticle const *parent)
Definition
TrackProcessorUserActionBase.cxx:242
G4UA::iGeant4::TrackProcessorUserActionBase::TrackProcessorUserActionBase
TrackProcessorUserActionBase()=default
G4UA::iGeant4::TrackProcessorUserActionBase::BeginOfEventAction
virtual void BeginOfEventAction(const G4Event *) override final
Definition
TrackProcessorUserActionBase.cxx:46
G4UA::iGeant4::TrackProcessorUserActionBase::m_curBaseISP
ISF::ISFParticle * m_curBaseISP
The most recent ISFParticle ancestor that triggers the currently processed G4Track.
Definition
TrackProcessorUserActionBase.h:68
ISF::ISFParticle
The generic ISF particle definition,.
Definition
ISFParticle.h:42
VTrackInformation::TrackClassification
TrackClassification
Definition
VTrackInformation.h:32
G4UA::iGeant4
Definition
MCTruthUserAction.cxx:36
G4UA
for nSW
Definition
CalibrationDefaultProcessing.h:19
HepMC::ConstGenParticlePtr
HepMC3::ConstGenParticlePtr ConstGenParticlePtr
Definition
GenParticle.h:20
ISF
ISFParticleOrderedQueue.
Definition
PrimaryParticleInformation.h:13
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition
ISFParticleContainer.h:23
Generated on
for ATLAS Offline Software by
1.17.0