34 #define INCLXX_IN_GEANT4_MODE 1
45 #ifndef G4INCLNUCLEUS_HH_
46 #define G4INCLNUCLEUS_HH_
131 for(
ParticleIter i=outgoing.begin(),
e=outgoing.end(); i!=
e; ++i) {
285 if((*i)->isDelta())
return true;
293 if((*i)->isAntiKaon())
return true;
301 if((*i)->isLambda())
return true;
309 if((*i)->isSigma())
return true;
317 if((*i)->isKaon())
return true;
325 if((*i)->isEta())
return true;
333 if((*i)->isOmega())
return true;
void setProjectileRemnant(ProjectileRemnant *const c)
Set the projectile remnant.
ParticleList::const_iterator ParticleIter
NuclearPotential::INuclearPotential const * getPotential() const
Getter for thePotential.
G4bool decayInsideDeltas()
Force the decay of deltas inside the nucleus.
ProjectileRemnant * theProjectileRemnant
Pointer to the quasi-projectile.
G4double getTransmissionRadius(Particle const *const p) const
The radius used for calculating the transmission coefficient.
G4double computeExcitationEnergy() const
Compute the current excitation energy.
G4int emitInsideLambda()
Force emission of all Lambda (desexitation code with strangeness not implanted yet) ...
void finalizeProjectileRemnant(const G4double emissionTime)
Finalise the projectile remnant.
ParticleList const & getParticles() const
ParticleSampler * theParticleSampler
#define INCL_DECLARE_ALLOCATION_POOL(T)
G4bool containsKaon()
Returns true if the nucleus contains any Kaons.
G4int getNumberOfEnteringNeutrons() const
void particleHasEntered(Particle *const particle)
Move a particle from incoming to inside.
G4int getS() const
Returns the strangeness number.
G4bool containsOmegas()
Returns true if the nucleus contains any omegas.
void setIncomingAngularMomentum(const ThreeVector &j)
Set the incoming angular-momentum vector.
G4bool decayInsideStrangeParticles()
Force the transformation of strange particles into a Lambda;.
NuclearPotential::INuclearPotential const * thePotential
Pointer to the NuclearPotential object.
ProjectileRemnant * getProjectileRemnant() const
Get the projectile remnant.
void emitInsidePions()
Force emission of all pions inside the nucleus.
G4double initialInternalEnergy
G4double getSurfaceRadius(Particle const *const particle) const
Get the maximum allowed radius for a given particle.
void setDensity(NuclearDensity const *const d)
Setter for theDensity.
void propagateParticles(G4double step)
G4double getMaxRFromP(const ParticleType t, const G4double p) const
Get the maximum allowed radius for a given momentum.
G4int theNnInitial
The number of entering neutrons.
void applyFinalState(FinalState *)
NuclearDensity const * theDensity
Pointer to the NuclearDensity object.
G4int getNumberOfEnteringKaons() const
void deleteProjectileRemnant()
Delete the projectile remnant.
G4bool isResonance() const
Is it a resonance?
G4double theExcitationEnergy
void computeOneNucleonRecoilKinematics()
Compute the recoil kinematics for a 1-nucleon remnant.
NuclearDensity const * getDensity() const
Getter for theDensity.
G4double getFermiMomentum(const Particle *const p) const
Return the Fermi momentum for a particle.
G4bool hasRemnant() const
Does the nucleus give a cascade remnant?
void updatePotentialEnergy(Particle *p) const
Update the particle potential energy.
G4int projectileZ
The charge number of the projectile.
G4int getInitialA() const
G4bool isLambda() const
Is this a Lambda?
G4int getNumberOfEnteringProtons() const
G4double computeTotalEnergy() const
Compute the current total energy.
void initializeParticles()
G4int theNpionplusInitial
The number of entering pions.
void fillEventInfo(EventInfo *eventInfo)
G4int theNkaonplusInitial
The number of entering kaons.
G4int theNkaonminusInitial
G4int getInitialZ() const
G4int getInitialS() const
void setDensity(NuclearDensity const *const d)
Setter for theDensity.
G4double getReflectionMomentum() const
Return the reflection momentum.
G4double getSeparationEnergy(const Particle *const p) const
Return the separation energy for a particle.
void useFusionKinematics()
Adjust the kinematics for complete-fusion events.
G4int projectileS
The strangeness number of the projectile.
void setUniverseRadius(const G4double universeRadius)
Setter for theUniverseRadius.
void setPotentialEnergy(G4double v)
Set the particle potential energy.
G4int getZ() const
Returns the charge number.
G4double getUniverseRadius() const
Getter for theUniverseRadius.
void setParticleNucleusCollision()
Set a particle-nucleus collision.
G4int getA() const
Returns the baryon number.
Simple container for output of event results.
G4bool decayMe()
Force the phase-space decay of the Nucleus.
const ThreeVector & getIncomingMomentum() const
Get the incoming momentum vector.
void incrementCascading()
void emitInsideStrangeParticles()
Force emission of all strange particles inside the nucleus.
G4double getInitialInternalEnergy() const
G4bool isEventTransparent() const
Is the event transparent?
ThreeVector initialCenterOfMass
G4bool containsSigma()
Returns true if the nucleus contains any Sigma.
Nucleus(G4int mass, G4int charge, G4int strangess, Config const *const conf, const G4double universeRadius=-1.)
G4bool emitInsideKaon()
Force emission of all Kaon inside the nucleus.
G4bool isTargetSpectator() const
Struct for conservation laws.
G4int theNpionminusInitial
G4double theUniverseRadius
The radius of the universe.
ThreeVector incomingAngularMomentum
Nucleus & operator=(const Nucleus &rhs)
Dummy assignment operator to silence Coverity warning.
Class for constructing a projectile-like remnant.
G4bool decayOutgoingSigmaZero(G4double timeThreshold)
Force the decay of outgoing Neutral Sigma.
ThreeVector incomingMomentum
G4bool decayOutgoingDeltas()
Force the decay of outgoing deltas.
void setIncomingMomentum(const ThreeVector &p)
Set the incoming momentum vector.
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
G4INCL::ParticleType getType() const
G4bool isNucleusNucleus
true if running a nucleus-nucleus collision
G4bool containsDeltas()
Returns true if the nucleus contains any deltas.
G4bool isKaon() const
Is this a Kaon?
G4int getNumberOfEnteringPions() const
G4int theNpInitial
The number of entering protons.
G4double getInitialEnergy() const
Get the initial energy.
const G4double eSquared
Coulomb conversion factor [MeV*fm].
G4double computeSeparationEnergyBalance() const
Outgoing - incoming separation energies.
G4bool isPion() const
Is this a pion?
void computeRecoilKinematics()
Compute the recoil momentum and spin of the nucleus.
G4double getTransmissionBarrier(Particle const *const p)
Get the transmission barrier.
G4bool isAntiKaon() const
Is this an antiKaon?
G4bool decayOutgoingNeutralKaon()
Force the transformation of outgoing Neutral Kaon into propation eigenstate.
ThreeVector computeCenterOfMass() const
Compute the current center-of-mass position.
G4bool containsAntiKaon()
Returns true if the nucleus contains any anti Kaons.
G4bool containsLambda()
Returns true if the nucleus contains any Lambda.
void setInitialEnergy(const G4double e)
Set the initial energy.
ParticleList const & getOutgoingParticles() const
G4double getExcitationEnergy() const
Get the excitation energy of the nucleus.
G4bool decayOutgoingClusters()
Force the decay of unstable outgoing clusters.
void insertParticle(Particle *p)
Insert a new particle (e.g. a projectile) in the nucleus.
G4bool containsEtas()
Returns true if the nucleus contains any etas.
virtual G4double computePotentialEnergy(const Particle *const p) const =0
void setNucleusNucleusCollision()
Set a nucleus-nucleus collision.
const ThreeVector & getIncomingAngularMomentum() const
Get the incoming angular-momentum vector.
G4bool getTryCompoundNucleus()
G4int projectileA
The mass number of the projectile.
G4bool isNucleusNucleusCollision() const
Is it a nucleus-nucleus collision?
ConservationBalance getConservationBalance(EventInfo const &theEventInfo, const G4bool afterRecoil) const
Compute charge, mass, energy and momentum balance.
G4bool decayOutgoingPionResonances(G4double timeThreshold)
Force the decay of outgoing PionResonances (eta/omega).