34 #define INCLXX_IN_GEANT4_MODE 1
45 #ifndef G4INCLNUCLEUS_HH_
46 #define G4INCLNUCLEUS_HH_
119 for(
ParticleIter i=outgoing.begin(), e=outgoing.end(); i!=e; ++i) {
208 incomingAngularMomentum = j;
216 incomingMomentum =
p;
221 return incomingMomentum;
239 for(
ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
240 if((*i)->isDelta())
return true;
247 for(
ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
248 if((*i)->isEta())
return true;
255 for(
ParticleIter i=inside.begin(), e=inside.end(); i!=e; ++i)
256 if((*i)->isOmega())
return true;
352 delete theProjectileRemnant;
353 theProjectileRemnant =
c;
361 delete theProjectileRemnant;
362 theProjectileRemnant = NULL;
399 void computeOneNucleonRecoilKinematics();
402 G4int theInitialZ, theInitialA;
408 ThreeVector incomingAngularMomentum, incomingMomentum;
G4bool isEta() const
Is this a eta?
G4int getNumberOfEnteringNeutrons() const
G4int getA() const
Returns the baryon number.
#define INCL_DECLARE_ALLOCATION_POOL(T)
ConservationBalance getConservationBalance(EventInfo const &theEventInfo, const G4bool afterRecoil) const
Compute charge, mass, energy and momentum balance.
void initializeParticles()
G4bool containsDeltas()
Returns true if the nucleus contains any deltas.
void updatePotentialEnergy(Particle *p) const
Update the particle potential energy.
G4double getReflectionMomentum() const
Return the reflection momentum.
void setIncomingAngularMomentum(const ThreeVector &j)
Set the incoming angular-momentum vector.
void setIncomingMomentum(const ThreeVector &p)
Set the incoming momentum vector.
const G4double eSquared
Coulomb conversion factor [MeV*fm].
G4int getInitialZ() const
ParticleList const & getParticles() const
const ThreeVector & getIncomingMomentum() const
Get the incoming momentum vector.
G4double getFermiMomentum(const Particle *const p) const
Return the Fermi momentum for a particle.
G4bool decayOutgoingClusters()
Force the decay of unstable outgoing clusters.
void setInitialEnergy(const G4double e)
Set the initial energy.
G4bool isNucleusNucleusCollision() const
Is it a nucleus-nucleus collision?
G4int getInitialA() const
void applyFinalState(FinalState *)
void setDensity(NuclearDensity const *const d)
Setter for theDensity.
G4bool isTargetSpectator() const
const ThreeVector & getIncomingAngularMomentum() const
Get the incoming angular-momentum vector.
Class for constructing a projectile-like remnant.
void setParticleNucleusCollision()
Set a particle-nucleus collision.
G4bool isEtaPrime() const
Is this a etaprime?
Struct for conservation laws.
G4double getSurfaceRadius(Particle const *const particle) const
Get the maximum allowed radius for a given particle.
G4bool hasRemnant() const
Does the nucleus give a cascade remnant?
Nucleus & operator=(const Nucleus &rhs)
Dummy assignment operator to silence Coverity warning.
G4double getInitialInternalEnergy() const
void useFusionKinematics()
Adjust the kinematics for complete-fusion events.
G4double getInitialEnergy() const
Get the initial energy.
G4bool isOmega() const
Is this a omega?
G4double getSeparationEnergy(const Particle *const p) const
Return the separation energy for a particle.
G4bool decayOutgoingDeltas()
Force the decay of outgoing deltas.
ParticleList const & getOutgoingParticles() const
Simple container for output of event results.
void setDensity(NuclearDensity const *const d)
Setter for theDensity.
G4int getZ() const
Returns the charge number.
void setPotentialEnergy(G4double v)
Set the particle potential energy.
G4double computeSeparationEnergyBalance() const
Outgoing - incoming separation energies.
void setUniverseRadius(const G4double universeRadius)
Setter for theUniverseRadius.
G4double getExcitationEnergy() const
Get the excitation energy of the nucleus.
G4double computeExcitationEnergy() const
Compute the current excitation energy.
G4int getNumberOfEnteringProtons() const
void deleteProjectileRemnant()
Delete the projectile remnant.
G4bool decayMe()
Force the phase-space decay of the Nucleus.
ParticleSampler * theParticleSampler
ThreeVector computeCenterOfMass() const
Compute the current center-of-mass position.
void incrementCascading()
G4bool getTryCompoundNucleus()
NuclearPotential::INuclearPotential const * getPotential() const
Getter for thePotential.
G4double theExcitationEnergy
void propagateParticles(G4double step)
G4bool decayInsideDeltas()
Force the decay of deltas inside the nucleus.
void finalizeProjectileRemnant(const G4double emissionTime)
Finalise the projectile remnant.
G4double getTransmissionBarrier(Particle const *const p)
Get the transmission barrier.
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
void emitInsidePions()
Force emission of all pions inside the nucleus.
G4INCL::ParticleType getType() const
NuclearDensity const * getDensity() const
Getter for theDensity.
void setProjectileRemnant(ProjectileRemnant *const c)
Set the projectile remnant.
G4bool isEventTransparent() const
Is the event transparent?
void fillEventInfo(EventInfo *eventInfo)
G4double computeTotalEnergy() const
Compute the current total energy.
ProjectileRemnant * getProjectileRemnant() const
Get the projectile remnant.
G4double getUniverseRadius() const
Getter for theUniverseRadius.
void insertParticle(Particle *p)
Insert a new particle (e.g. a projectile) in the nucleus.
virtual G4double computePotentialEnergy(const Particle *const p) const =0
Nucleus(G4int mass, G4int charge, Config const *const conf, const G4double universeRadius=-1.)
G4double getTransmissionRadius(Particle const *const p) const
The radius used for calculating the transmission coefficient.
void computeRecoilKinematics()
Compute the recoil momentum and spin of the nucleus.
G4bool containsEtas()
Returns true if the nucleus contains any etas.
G4bool isPion() const
Is this a pion?
void setNucleusNucleusCollision()
Set a nucleus-nucleus collision.
G4bool decayOutgoingPionResonances(G4double timeThreshold)
Force the decay of outgoing PionResonances (eta/omega).
G4double getMaxRFromP(const ParticleType t, const G4double p) const
Get the maximum allowed radius for a given momentum.
ParticleList::const_iterator ParticleIter
void particleHasEntered(Particle *const particle)
Move a particle from incoming to inside.
G4bool containsOmegas()
Returns true if the nucleus contains any omegas.