35#define INCLXX_IN_GEANT4_MODE 1
46#ifndef G4INCLNUCLEUS_HH_
47#define G4INCLNUCLEUS_HH_
127 for(
ParticleIter i = outgoing.begin(); i != outgoing.end(); ++i) {
210 incomingAngularMomentum = j;
218 incomingMomentum = p;
223 return incomingMomentum;
241 for(
ParticleIter i=inside.begin(); i!=inside.end(); ++i)
242 if((*i)->isDelta())
return true;
360 }
else if((zp==1 || zp==2) && ap==3) {
363 }
else if(zp==2 && ap==4) {
370 ERROR(
"Negative Coulomb radius! Using the universe radius" << std::endl);
395 delete theProjectileRemnant;
396 theProjectileRemnant = c;
404 delete theProjectileRemnant;
405 theProjectileRemnant = NULL;
441 void computeOneNucleonRecoilKinematics();
444 G4int theInitialZ, theInitialA;
450 ThreeVector incomingAngularMomentum, incomingMomentum;
Simple container for output of event results.
Class for constructing a projectile-like remnant.
void incrementCascading()
ParticleList const & getParticles() const
G4double theExcitationEnergy
G4double getTransmissionRadius(Particle const *const p) const
The radius used for calculating the transmission coefficient.
G4double getMaxRFromP(G4double p) const
Get the maximum allowed radius for a given momentum.
G4double getFermiMomentum(const Particle *const p) const
Return the Fermi momentum for a particle.
G4double getSeparationEnergy(const Particle *const p) const
Return the separation energy for a particle.
virtual G4double computePotentialEnergy(const Particle *const p) const =0
G4int getInitialA() const
NuclearPotential::INuclearPotential * getPotential() const
Getter for thePotential.
const ThreeVector & getIncomingAngularMomentum() const
Get the incoming angular-momentum vector.
G4double computeSeparationEnergyBalance() const
Outgoing - incoming separation energies.
ProjectileRemnant * getProjectileRemnant() const
Get the projectile remnant.
Particle * getBlockedDelta() const
Get the delta that could not decay.
G4bool isForcedTransparent()
Returns true if a transparent event should be forced.
void fillEventInfo(EventInfo *eventInfo)
G4bool decayMe()
Force the phase-space decay of the Nucleus.
G4double computeTotalEnergy() const
Compute the current total energy.
ParticleList const & getUpdatedParticles() const
G4bool decayInsideDeltas()
Force the decay of deltas inside the nucleus.
void setIncomingAngularMomentum(const ThreeVector &j)
Set the incoming angular-momentum vector.
void computeRecoilKinematics()
Compute the recoil momentum and spin of the nucleus.
void setInitialEnergy(const G4double e)
Set the initial energy.
void finalizeProjectileRemnant(const G4double emissionTime)
Finalise the projectile remnant.
G4double getSurfaceRadius(Particle const *const particle) const
Get the maximum allowed radius for a given particle.
G4bool containsDeltas()
Returns true if the nucleus contains any deltas.
G4bool getTryCompoundNucleus()
NuclearDensity * getDensity() const
Getter for theDensity.
void setProjectileMassNumber(G4int n)
Set the mass number of the projectile.
G4bool isEventTransparent() const
Is the event transparent?
G4int getNumberOfEnteringProtons() const
G4double getCoulombRadius(ParticleSpecies const &p) const
Get the Coulomb radius for a given particle.
ParticleList const & getCreatedParticles() const
void applyFinalState(FinalState *)
void moveProjectileRemnantComponentsToOutgoing()
Move the components of the projectile remnant to the outgoing list.
G4bool isNucleusNucleusCollision() const
Is it a nucleus-nucleus collision?
void insertParticle(Particle *p)
Insert a new particle (e.g. a projectile) in the nucleus.
void deleteProjectileRemnant()
Delete the projectile remnant.
void setProjectileChargeNumber(G4int n)
Set the charge number of the projectile.
G4double getTransmissionBarrier(Particle const *const p)
Get the transmission barrier.
G4int getProjectileMassNumber() const
Return the mass number of the projectile.
void setIncomingMomentum(const ThreeVector &p)
Set the incoming momentum vector.
G4int getNumberOfEnteringNeutrons() const
void useFusionKinematics()
Adjust the kinematics for complete-fusion events.
void updatePotentialEnergy(Particle *p)
Update the particle potential energy.
G4double getInitialInternalEnergy() const
const ThreeVector & getIncomingMomentum() const
Get the incoming momentum vector.
void setParticleNucleusCollision()
Set a particle-nucleus collision.
void emitInsidePions()
Force emission of all pions inside the nucleus.
G4double getInitialEnergy() const
Get the initial energy.
ThreeVector computeCenterOfMass() const
Compute the current center-of-mass position.
G4bool decayOutgoingClusters()
Force the decay of unstable outgoing clusters.
G4double getExcitationEnergy() const
Get the excitation energy of the nucleus.
void setNucleusNucleusCollision()
Set a nucleus-nucleus collision.
void propagateParticles(G4double step)
ConservationBalance getConservationBalance(EventInfo const &theEventInfo, const G4bool afterRecoil) const
Compute charge, mass, energy and momentum balance.
void setProjectileRemnant(ProjectileRemnant *const c)
Set the projectile remnant.
void initializeParticles()
G4int getProjectileChargeNumber() const
Return the charge number of the projectile.
G4bool hasRemnant() const
Does the nucleus give a cascade remnant?
void setUniverseRadius(const G4double universeRadius)
Setter for theUniverseRadius.
G4double getUniverseRadius() const
Getter for theUniverseRadius.
G4double computeExcitationEnergy() const
Compute the current excitation energy.
G4bool decayOutgoingDeltas()
Force the decay of outgoing deltas.
G4int getInitialZ() const
static const G4double eSquared
Coulomb conversion factor, in MeV*fm.
static G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
void setPotentialEnergy(G4double v)
Set the particle potential energy.
G4int getZ() const
Returns the charge number.
G4bool isTargetSpectator() const
G4bool isPion() const
Is this a pion?
const G4INCL::ThreeVector & getMomentum() const
G4INCL::ParticleType getType() const
G4int getA() const
Returns the baryon number.
ParticleList const & getOutgoingParticles() const
void addToOutgoing(Particle *p)
add the particle to the outgoing particle list.
void particleHasEntered(Particle *const particle)
Move a particle from incoming to inside.
ParticleList const & getParticles() const
G4double pow23(G4double x)
const G4double eSquared
Coulomb conversion factor [MeV*fm].
std::list< G4INCL::Particle * > ParticleList
std::list< G4INCL::Particle * >::const_iterator ParticleIter
Struct for conservation laws.