34 #define INCLXX_IN_GEANT4_MODE 1
49 #ifndef G4INCLINTERACTIONAVATAR_HH_
50 #define G4INCLINTERACTIONAVATAR_HH_
115 class ViolationEMomentumFunctor :
public RootFunctor {
122 virtual ~ViolationEMomentumFunctor();
132 void cleanUp(
const G4bool success)
const;
138 std::vector<ThreeVector> particleMomenta;
162 class ViolationEEnergyFunctor :
public RootFunctor {
168 ViolationEEnergyFunctor(
Nucleus *
const nucleus,
Particle *
const aParticle,
const G4double totalEnergyBeforeInteraction,
const G4bool localE);
169 virtual ~ViolationEEnergyFunctor() {}
179 void cleanUp(
const G4bool success)
const;
193 Particle *theParticle;
197 ThreeVector theMomentum;
207 RootFunctor *violationEFunctor;
#define INCL_DECLARE_ALLOCATION_POOL(T)
static const G4double locEAccuracy
Target accuracy in the determination of the local-energy Q-value.
void preInteractionLocalEnergy(Particle *const p)
Apply local-energy transformation, if appropriate.
G4bool shouldUseLocalEnergy() const
true if the given avatar should use local energy
static const G4int maxIterLocE
Max number of iterations for the determination of the local-energy Q-value.
void postInteraction(FinalState *)
virtual G4INCL::IChannel * getChannel()=0
Singleton for recycling allocation of instances of a given class.
static G4ThreadLocal Particle * backupParticle2
InteractionAvatar(G4double, G4INCL::Nucleus *, G4INCL::Particle *)
static void deleteBackupParticles()
Release the memory allocated for the backup particles.
ParticleList modifiedAndCreated
void preInteractionBlocking()
Store the state of the particles before the interaction.
static G4ThreadLocal Particle * backupParticle1
G4double energy(const ThreeVector &p, const G4double m)
G4bool enforceEnergyConservation(FinalState *const fs)
Enforce energy conservation.
void restoreParticles() const
Restore the state of both particles.
G4bool bringParticleInside(Particle *const p)
virtual ~InteractionAvatar()
static const G4double alpha
Static root-finder algorithm.