15 #include "G4GenericMessenger.hh"
25 _messenger =
new G4GenericMessenger(
this,
"/GGS/userActions/acceptanceCheckAction/");
26 _messenger->DeclareProperty(
"reSimulateKilled", _reSimulateKilled,
"Simulate again events outside acceptance")
27 .SetDefaultValue(
"true");
37 static const std::string routineName(
"GGSAcceptanceCheckAction::ClassifyNewTrack");
38 if (track->GetParentID() == 0) {
49 GGSCOUT(DEBUG) <<
"Killed primary track " << track->GetTrackID() <<
GGSENDL;
50 track->GetDynamicParticle()->GetPrimaryParticle()->SetUserInformation(userInfo);
51 if (G4EventManager::GetEventManager()->GetStackManager()->GetNTotalTrack() == 0) {
54 if (_reSimulateKilled) {
56 GGSCOUT(DEBUG) <<
"Will be simulated again" <<
GGSENDL;
62 return G4UserStackingAction::ClassifyNewTrack(track);
G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track *track)
Override of the ClassifyNewTrack method.
Data class to store informations about the primary particle.
Class for GGS detector construction.
Class with additional functionalities for run managers.
bool isTrackKilled
True if the particle's track has been killed.
void SimulateAgainKilledEvent()
Simulates again a killed event.
GGSAcceptanceCheckAction()
Constructor.
const GGSVGeometryConstruction * GetGeometry() const
Returns a pointer to the geometry.
~GGSAcceptanceCheckAction()
Destructor.
An action to kill primary tracks outside acceptance.
#define RegisterUA(uaClassName)
Macro for registration of user actions classes.
void KillEvent()
Kills the current event.
virtual bool IsInsideAcceptance(const G4ThreeVector &, const G4ThreeVector &) const
Checks if a particle is inside the instrument's acceptance.