2#include "Biasing/Utility/PartialEnergySorter.h"
7#include "G4EventManager.hh"
8#include "G4RunManager.hh"
16 :
simcore::UserAction(name, parameters) {
30 const G4Track* aTrack,
31 const G4ClassificationOfNewTrack& currentTrackClassification) {
60 auto pre_energy{step->GetPreStepPoint()->GetKineticEnergy()};
61 auto post_energy{step->GetPostStepPoint()->GetKineticEnergy()};
71 step->GetTrack()->SetTrackStatus(fSuspend);
#define DECLARE_ACTION(CLASS)
register a new UserAction with its factory
A simulation action that makes sure that all particles above a certain threshold are processed first.
bool below_threshold_
Are we simulating below the threshold yet?
G4ClassificationOfNewTrack classifyNewTrack(const G4Track *aTrack, const G4ClassificationOfNewTrack ¤tTrackClass) override
Classify a "new" track.
PartialEnergySorter(const std::string &name, framework::config::Parameters ¶meters)
Constructor.
void beginOfEventAction(const G4Event *event) override
At the beginning of a new event, we reset the counter for the number of particles above the energy th...
double threshold_
Minimum Kinetic Energy [MeV] we want to simulate first.
void stepping(const G4Step *step) override
Checks if a particle steps from above the threshold to below it.
Class encapsulating parameters for configuring a processor.
const T & get(const std::string &name) const
Retrieve the parameter of the given name.
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...