33 #define INCLXX_IN_GEANT4_MODE 1
48 #ifndef G4INCLINTERACTIONAVATAR_HH_
49 #define G4INCLINTERACTIONAVATAR_HH_
124 class ViolationEMomentumFunctor :
public RootFunctor {
131 virtual ~ViolationEMomentumFunctor() { particleMomenta.clear(); }
141 void cleanUp(
const G4bool success)
const;
147 std::list<ThreeVector> particleMomenta;
166 void scaleParticleMomenta(
const G4double alpha)
const;
171 class ViolationEEnergyFunctor :
public RootFunctor {
178 virtual ~ViolationEEnergyFunctor() {}
188 void cleanUp(
const G4bool success)
const;
202 Particle *theParticle;
206 ThreeVector theMomentum;
216 RootFunctor *violationEFunctor;
static const G4double locEAccuracy
Target accuracy in the determination of the local-energy Q-value.
G4int getAcceptedCollisions() const
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.
Config const * getConfig()
virtual G4INCL::IChannel * getChannel()=0
static G4ThreadLocal Particle * backupParticle2
InteractionAvatar(G4double, G4INCL::Nucleus *, G4INCL::Particle *)
static void deleteBackupParticles()
Release the memory allocated for the backup particles.
FinalState * postInteraction(FinalState *)
void preInteractionBlocking()
Store the state of the particles before the interaction.
static G4ThreadLocal Particle * backupParticle1
LocalEnergyType getLocalEnergyPiType() const
Get the type of local energy for pi-N and decay avatars.
LocalEnergyType getLocalEnergyBBType() const
Get the type of local energy for N-N avatars.
G4bool enforceEnergyConservation(FinalState *const fs)
Enforce energy conservation.
void restoreParticles() const
Restore the state of both particles.
G4bool bringParticleInside(Particle *const p)
virtual ~InteractionAvatar()
AvatarType getType() const
Static root-finder algorithm.