34#define INCLXX_IN_GEANT4_MODE 1
38#ifndef G4INCLCascade_hh
39#define G4INCLCascade_hh 1
123 if(aPR && aPR->
getA()>0) {
170 const G4double mass = (*i)->getMass();
171 const G4double newKineticEnergy = (*iE) * rescale;
173 (*i)->setMomentum(*iP);
174 (*i)->setEnergy(mass + newKineticEnergy);
175 (*i)->adjustMomentumFromEnergy();
177 pBalance -= (*i)->getMomentum();
183 const G4double recoilEnergy = pRem2/
184 (std::sqrt(pRem2+remnantMass*remnantMass) + remnantMass);
208 if(aPR && aPR->
getA()>0) {
256 (*i)->setMomentum(*iP * rescale);
257 (*i)->adjustEnergyFromMomentum();
260 remnantMomentum -= (*i)->getMomentum();
266 const G4double recoilEnergy = pRem2/
267 (std::sqrt(pRem2+remnantMass*remnantMass) + remnantMass);
279#ifndef INCLXX_IN_GEANT4_MODE
289 void globalConservationChecks(
G4bool afterRecoil);
G4double S(G4double temp)
Class containing default actions to be performed at intermediate cascade steps.
Simple container for output of event results.
Simple container for output of calculation-wide results.
Static root-finder algorithm.
void boost(const ThreeVector &aBoostVector)
Boost the cluster with the indicated velocity.
G4int getTargetA() const
Get the target mass number.
G4double getProjectileKineticEnergy() const
Get the projectile kinetic energy.
ParticleSpecies getProjectileSpecies() const
Get the projectile species.
G4int getTargetS() const
Get the target strangess number.
G4int getTargetZ() const
Get the target charge number.
Class to adjust remnant recoil in the reaction CM system.
void scaleParticleCMMomenta(const G4double rescale) const
Scale the kinetic energies of the outgoing particles.
G4double operator()(const G4double x) const
Compute the energy-conservation violation.
Nucleus * nucleus
Pointer to the nucleus.
void cleanUp(const G4bool success) const
Clean up after root finding.
RecoilCMFunctor(Nucleus *const n, const EventInfo &ei)
Prepare for calling the () operator and scaleParticleEnergies.
virtual ~RecoilCMFunctor()
std::list< ThreeVector > particleCMMomenta
Initial CM momenta of the outgoing particles.
ParticleList outgoingParticles
List of final-state particles.
ThreeVector theIncomingMomentum
Incoming momentum.
ThreeVector thePTBoostVector
Projectile-target CM boost vector.
EventInfo const & theEventInfo
Reference to the EventInfo object.
Class to adjust remnant recoil.
ParticleList outgoingParticles
List of final-state particles.
RecoilFunctor(Nucleus *const n, const EventInfo &ei)
Prepare for calling the () operator and scaleParticleEnergies.
Nucleus * nucleus
Pointer to the nucleus.
void scaleParticleEnergies(const G4double rescale) const
Scale the kinetic energies of the outgoing particles.
std::list< G4double > particleKineticEnergies
Initial kinetic energies of the outgoing particles.
EventInfo const & theEventInfo
G4double operator()(const G4double x) const
Compute the energy-conservation violation.
void cleanUp(const G4bool success) const
Clean up after root finding.
std::list< ThreeVector > particleMomenta
Initial momenta of the outgoing particles.
void initUniverseRadius(ParticleSpecies const &p, const G4double kineticEnergy, const G4int A, const G4int Z)
Initialize the universe radius.
void finalizeGlobalInfo(Random::SeedVector const &initialSeeds)
void initMaxInteractionDistance(ParticleSpecies const &p, const G4double kineticEnergy)
Initialise the maximum interaction distance.
INCL(const INCL &rhs)
Dummy copy constructor to silence Coverity warning.
G4bool prepareReaction(const ParticleSpecies &projectileSpecies, const G4double kineticEnergy, const G4int A, const G4int Z, const G4int S)
G4double maxImpactParameter
G4bool initializeTarget(const G4int A, const G4int Z, const G4int S)
INCL(Config const *const config)
const EventInfo & processEvent()
G4bool continueCascade()
Stopping criterion for the cascade.
Config const *const theConfig
CascadeAction * cascadeAction
G4int minRemnantSize
Remnant size below which cascade stops.
G4double maxUniverseRadius
const GlobalInfo & getGlobalInfo() const
void makeCompoundNucleus()
Make a compound nucleus.
INCL & operator=(const INCL &rhs)
Dummy assignment operator to silence Coverity warning.
G4double maxInteractionDistance
void cascade()
The actual cascade loop.
G4double fixedImpactParameter
IPropagationModel * propagationModel
G4int makeProjectileRemnant()
Make a projectile pre-fragment out of geometrical spectators.
void updateGlobalInfo()
Update global counters and other members of theGlobalInfo object.
void postCascade()
Finalise the cascade and clean up.
void rescaleOutgoingForRecoil()
Rescale the energies of the outgoing particles.
G4bool preCascade(ParticleSpecies const &projectileSpecies, const G4double kineticEnergy)
Initialise the cascade.
const ThreeVector & getIncomingMomentum() const
Get the incoming momentum vector.
G4double getInitialEnergy() const
Get the initial energy.
G4double getExcitationEnergy() const
Get the excitation energy of the nucleus.
ConservationBalance getConservationBalance(EventInfo const &theEventInfo, const G4bool afterRecoil) const
Compute charge, mass, energy and momentum balance.
G4int getS() const
Returns the strangeness number.
G4int getZ() const
Returns the charge number.
G4double getKineticEnergy() const
Get the particle kinetic energy.
const G4INCL::ThreeVector & getMomentum() const
virtual void setMomentum(const G4INCL::ThreeVector &momentum)
void setEnergy(G4double energy)
G4int getA() const
Returns the baryon number.
G4ThreadLocal NuclearMassFn getTableMass
Static pointer to the mass function for nuclei.
ParticleList::const_iterator ParticleIter