|
ATLAS Offline Software
|
Go to the documentation of this file.
19 #include "G4EventManager.hh"
20 #include "G4NeutrinoE.hh"
21 #include "G4NeutrinoMu.hh"
22 #include "G4NeutrinoTau.hh"
23 #include "G4AntiNeutrinoE.hh"
24 #include "G4AntiNeutrinoMu.hh"
25 #include "G4AntiNeutrinoTau.hh"
27 #include "G4Neutron.hh"
43 m_oneOverWeightNeutron(0),
44 m_oneOverWeightPhoton(0)
58 G4ClassificationOfNewTrack
67 const double safeCut = 0.00005;
68 double totalE =
track->GetTotalEnergy();
74 G4Event*
ev = G4EventManager::GetEventManager()->GetNonconstCurrentEvent();
97 track->GetOriginTouchable()->GetVolume()->GetName().substr(0, 3) ==
"LAr" &&
114 if(
track->GetParentID() == 0) {
118 if(primaryPartInfo) {
124 std::unique_ptr<TrackInformation> ti = std::make_unique<TrackInformation>(
part);
131 track->SetUserInformation(ti.release());
140 track->SetUserInformation(bi.release());
157 const G4DynamicParticle*
dp =
track->GetDynamicParticle();
159 const G4PrimaryParticle* pp =
nullptr;
160 pp =
dp->GetPrimaryParticle();
164 ( pp->GetUserInformation() );
175 auto particleDef =
track->GetParticleDefinition();
176 return (particleDef == G4NeutrinoE::NeutrinoEDefinition() ||
177 particleDef == G4AntiNeutrinoE::AntiNeutrinoEDefinition() ||
178 particleDef == G4NeutrinoMu::NeutrinoMuDefinition() ||
179 particleDef == G4AntiNeutrinoMu::AntiNeutrinoMuDefinition() ||
180 particleDef == G4NeutrinoTau::NeutrinoTauDefinition() ||
181 particleDef == G4AntiNeutrinoTau::AntiNeutrinoTauDefinition());
Config m_config
Configuration options.
AthenaStackingAction(const Config &config)
Constructor with configuration.
bool isISFJob
Is this an ISF job.
double photonEnergyCut
Photon energy cut.
This class is attached to G4Event objects as UserInformation. It holds a pointer to the HepMC::GenEve...
double russianRouletteNeutronThreshold
Energy threshold for the Neutron Russian Roulette.
double m_oneOverWeightNeutron
double russianRoulettePhotonThreshold
Energy threshold for the Photon Russian Roulette.
bool isNeutron(const G4Track *) const
Identify track as a neutron.
bool killAllNeutrinos
Flag to toggle killing neutrinos at tracking stage.
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *track) override
Classify a new track.
int GetParticleBarcode() const
Configuration option struct for AthenaStackingAction.
bool applyPRR
Apply the Photon Russian Roulette.
bool isGamma(const G4Track *) const
Identify track as a photon.
double russianRoulettePhotonWeight
Weight for the Photon Russian Roulette.
PrimaryParticleInformation * getPrimaryParticleInformation(const G4Track *track) const
obtain the PrimaryParticleInformation from the current G4Track
HepMC::ConstGenParticlePtr GetHepMCParticle() const
return a pointer to the GenParticle used to create the G4PrimaryParticle
This class is attached to G4PrimaryParticle objects as UserInformation. The member variable m_thePart...
__attribute__((always_inline)) inline uint16_t TileCalibDrawerBase
double m_oneOverWeightPhoton
double russianRouletteNeutronWeight
Weight for the Neutron Russian Roulette.
bool isNeutrino(const G4Track *) const
Identify track as a neutrino.
#define ATLAS_THREAD_SAFE
Define macros for attributes used to control the static checker.
int GetParticleUniqueID() const
bool applyNRR
Apply the Neutron Russian Roulette.