Geant4
10.02.p02
|
#include <G4INCLProjectileRemnant.hh>
Public Types | |
typedef std::vector< G4double > | EnergyLevels |
typedef std::map< long, G4double > | EnergyLevelMap |
Public Member Functions | |
ProjectileRemnant (ParticleSpecies const &species, const G4double kineticEnergy) | |
~ProjectileRemnant () | |
void | reset () |
Reset the projectile remnant to the state at the beginning of the cascade. More... | |
void | removeParticle (Particle *const p, const G4double theProjectileCorrection) |
Remove a nucleon from the projectile remnant. More... | |
ParticleList | addDynamicalSpectators (ParticleList pL) |
Add back dynamical spectators to the projectile remnant. More... | |
ParticleList | addMostDynamicalSpectators (ParticleList pL) |
Add back dynamical spectators to the projectile remnant. More... | |
ParticleList | addAllDynamicalSpectators (ParticleList const &pL) |
Add back all dynamical spectators to the projectile remnant. More... | |
void | deleteStoredComponents () |
Clear the stored projectile components and delete the particles. More... | |
void | clearStoredComponents () |
Clear the stored projectile components. More... | |
void | clearEnergyLevels () |
Clear the stored energy levels. More... | |
G4double | computeExcitationEnergyExcept (const long exceptID) const |
Compute the excitation energy when a nucleon is removed. More... | |
G4double | computeExcitationEnergyWith (const ParticleList &pL) const |
Compute the excitation energy if some nucleons are put back. More... | |
void | storeComponents () |
Store the projectile components. More... | |
G4int | getNumberStoredComponents () const |
Get the number of the stored components. More... | |
void | storeEnergyLevels () |
Store the energy levels. More... | |
EnergyLevels const & | getGroundStateEnergies () const |
Public Member Functions inherited from G4INCL::Cluster | |
Cluster (const G4int Z, const G4int A, const G4bool createParticleSampler=true) | |
Standard Cluster constructor. More... | |
template<class Iterator > | |
Cluster (Iterator begin, Iterator end) | |
A cluster can be directly built from a list of particles. More... | |
virtual | ~Cluster () |
Cluster (const Cluster &rhs) | |
Copy constructor. More... | |
Cluster & | operator= (const Cluster &rhs) |
Assignment operator. More... | |
void | swap (Cluster &rhs) |
Helper method for the assignment operator. More... | |
ParticleSpecies | getSpecies () const |
Get the particle species. More... | |
void | deleteParticles () |
void | clearParticles () |
void | setZ (const G4int Z) |
Set the charge number of the cluster. More... | |
void | setA (const G4int A) |
Set the mass number of the cluster. More... | |
G4double | getExcitationEnergy () const |
Get the excitation energy of the cluster. More... | |
void | setExcitationEnergy (const G4double e) |
Set the excitation energy of the cluster. More... | |
virtual G4double | getTableMass () const |
Get the real particle mass. More... | |
ParticleList const & | getParticles () const |
Get the list of particles in the cluster. More... | |
void | removeParticle (Particle *const p) |
Remove a particle from the cluster components. More... | |
void | addParticle (Particle *const p) |
Add one particle to the cluster. More... | |
void | updateClusterParameters () |
Set total cluster mass, energy, size, etc. from the particles. More... | |
void | addParticles (ParticleList const &pL) |
Add a list of particles to the cluster. More... | |
ParticleList | getParticleList () const |
Returns the list of particles that make up the cluster. More... | |
std::string | print () const |
virtual void | initializeParticles () |
Initialise the NuclearDensity pointer and sample the particles. More... | |
void | internalBoostToCM () |
Boost to the CM of the component particles. More... | |
void | putParticlesOffShell () |
Put the cluster components off shell. More... | |
void | setPosition (const ThreeVector &position) |
Set the position of the cluster. More... | |
void | boost (const ThreeVector &aBoostVector) |
Boost the cluster with the indicated velocity. More... | |
void | freezeInternalMotion () |
Freeze the internal motion of the particles. More... | |
virtual void | rotatePosition (const G4double angle, const ThreeVector &axis) |
Rotate position of all the particles. More... | |
virtual void | rotateMomentum (const G4double angle, const ThreeVector &axis) |
Rotate momentum of all the particles. More... | |
virtual void | makeProjectileSpectator () |
Make all the components projectile spectators, too. More... | |
virtual void | makeTargetSpectator () |
Make all the components target spectators, too. More... | |
virtual void | makeParticipant () |
Make all the components participants, too. More... | |
ThreeVector const & | getSpin () const |
Get the spin of the nucleus. More... | |
void | setSpin (const ThreeVector &j) |
Set the spin of the nucleus. More... | |
G4INCL::ThreeVector | getAngularMomentum () const |
Get the total angular momentum (orbital + spin) More... | |
Public Member Functions inherited from G4INCL::Particle | |
Particle () | |
Particle (ParticleType t, G4double energy, ThreeVector const &momentum, ThreeVector const &position) | |
Particle (ParticleType t, ThreeVector const &momentum, ThreeVector const &position) | |
virtual | ~Particle () |
Particle (const Particle &rhs) | |
Copy constructor. More... | |
Particle & | operator= (const Particle &rhs) |
Assignment operator. More... | |
G4INCL::ParticleType | getType () const |
Get the particle type. More... | |
void | setType (ParticleType t) |
G4bool | isNucleon () const |
Is this a nucleon? More... | |
ParticipantType | getParticipantType () const |
void | setParticipantType (ParticipantType const p) |
G4bool | isParticipant () const |
G4bool | isTargetSpectator () const |
G4bool | isProjectileSpectator () const |
G4bool | isPion () const |
Is this a pion? More... | |
G4bool | isResonance () const |
Is it a resonance? More... | |
G4bool | isDelta () const |
Is it a Delta? More... | |
G4int | getA () const |
Returns the baryon number. More... | |
G4int | getZ () const |
Returns the charge number. More... | |
G4double | getBeta () const |
ThreeVector | boostVector () const |
Returns a three vector we can give to the boost() -method. More... | |
void | boost (const ThreeVector &aBoostVector) |
Boost the particle using a boost vector. More... | |
void | lorentzContract (const ThreeVector &aBoostVector, const ThreeVector &refPos) |
Lorentz-contract the particle position around some center. More... | |
G4double | getMass () const |
Get the cached particle mass. More... | |
G4double | getINCLMass () const |
Get the INCL particle mass. More... | |
G4double | getRealMass () const |
Get the real particle mass. More... | |
void | setRealMass () |
Set the mass of the Particle to its real mass. More... | |
void | setTableMass () |
Set the mass of the Particle to its table mass. More... | |
void | setINCLMass () |
Set the mass of the Particle to its table mass. More... | |
G4double | getEmissionQValueCorrection (const G4int AParent, const G4int ZParent) const |
Computes correction on the emission Q-value. More... | |
G4double | getTransferQValueCorrection (const G4int AFrom, const G4int ZFrom, const G4int ATo, const G4int ZTo) const |
Computes correction on the transfer Q-value. More... | |
G4double | getInvariantMass () const |
Get the the particle invariant mass. More... | |
G4double | getKineticEnergy () const |
Get the particle kinetic energy. More... | |
G4double | getPotentialEnergy () const |
Get the particle potential energy. More... | |
void | setPotentialEnergy (G4double v) |
Set the particle potential energy. More... | |
G4double | getEnergy () const |
Get the energy of the particle in MeV. More... | |
void | setMass (G4double mass) |
Set the mass of the particle in MeV/c^2. More... | |
void | setEnergy (G4double energy) |
Set the energy of the particle in MeV. More... | |
const G4INCL::ThreeVector & | getMomentum () const |
Get the momentum vector. More... | |
virtual void | setMomentum (const G4INCL::ThreeVector &momentum) |
Set the momentum vector. More... | |
const G4INCL::ThreeVector & | getPosition () const |
Set the position vector. More... | |
G4double | getHelicity () |
void | setHelicity (G4double h) |
void | propagate (G4double step) |
G4int | getNumberOfCollisions () const |
Return the number of collisions undergone by the particle. More... | |
void | setNumberOfCollisions (G4int n) |
Set the number of collisions undergone by the particle. More... | |
void | incrementNumberOfCollisions () |
Increment the number of collisions undergone by the particle. More... | |
G4int | getNumberOfDecays () const |
Return the number of decays undergone by the particle. More... | |
void | setNumberOfDecays (G4int n) |
Set the number of decays undergone by the particle. More... | |
void | incrementNumberOfDecays () |
Increment the number of decays undergone by the particle. More... | |
void | setOutOfWell () |
Mark the particle as out of its potential well. More... | |
G4bool | isOutOfWell () const |
Check if the particle is out of its potential well. More... | |
void | setEmissionTime (G4double t) |
G4double | getEmissionTime () |
ThreeVector | getTransversePosition () const |
Transverse component of the position w.r.t. More... | |
ThreeVector | getLongitudinalPosition () const |
Longitudinal component of the position w.r.t. More... | |
const ThreeVector & | adjustMomentumFromEnergy () |
Rescale the momentum to match the total energy. More... | |
G4double | adjustEnergyFromMomentum () |
Recompute the energy to match the momentum. More... | |
G4bool | isCluster () const |
void | setFrozenMomentum (const ThreeVector &momentum) |
Set the frozen particle momentum. More... | |
void | setFrozenEnergy (const G4double energy) |
Set the frozen particle momentum. More... | |
ThreeVector | getFrozenMomentum () const |
Get the frozen particle momentum. More... | |
G4double | getFrozenEnergy () const |
Get the frozen particle momentum. More... | |
ThreeVector | getPropagationVelocity () const |
Get the propagation velocity of the particle. More... | |
void | freezePropagation () |
Freeze particle propagation. More... | |
void | thawPropagation () |
Unfreeze particle propagation. More... | |
virtual void | rotatePositionAndMomentum (const G4double angle, const ThreeVector &axis) |
Rotate the particle position and momentum. More... | |
std::string | print () const |
std::string | dump () const |
long | getID () const |
ParticleList const * | getParticles () const |
Return a NULL pointer. More... | |
G4double | getReflectionMomentum () const |
Return the reflection momentum. More... | |
void | setUncorrelatedMomentum (const G4double p) |
Set the uncorrelated momentum. More... | |
void | rpCorrelate () |
Make the particle follow a strict r-p correlation. More... | |
void | rpDecorrelate () |
Make the particle not follow a strict r-p correlation. More... | |
G4double | getCosRPAngle () const |
Get the cosine of the angle between position and momentum. More... | |
Private Member Functions | |
G4double | computeExcitationEnergy (const EnergyLevels &levels) const |
Compute the excitation energy for a given configuration. More... | |
EnergyLevels | getPresentEnergyLevelsExcept (const long exceptID) const |
EnergyLevels | getPresentEnergyLevelsWith (const ParticleList &pL) const |
ParticleList | shuffleStoredComponents () |
Shuffle the list of stored projectile components. More... | |
ParticleList | getStoredComponents () const |
ThreeVector const & | getStoredMomentum (Particle const *const p) const |
Return the stored momentum of a given projectile component. More... | |
G4bool | addDynamicalSpectator (Particle *const p) |
Add back a nucleon to the projectile remnant. More... | |
INCL_DECLARE_ALLOCATION_POOL (ProjectileRemnant) | |
Private Attributes | |
std::map< long, Particle * > | storedComponents |
Return the stored energy of a given projectile component. More... | |
EnergyLevelMap | theInitialEnergyLevels |
Initial energy levels of the projectile. More... | |
EnergyLevels | theGroundStateEnergies |
Ground-state energies for any number of nucleons. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from G4INCL::Cluster | |
INCL_DECLARE_ALLOCATION_POOL (Cluster) | |
Protected Member Functions inherited from G4INCL::Particle | |
void | swap (Particle &rhs) |
Helper method for the assignment operator. More... | |
Protected Attributes inherited from G4INCL::Cluster | |
ParticleList | particles |
G4double | theExcitationEnergy |
ThreeVector | theSpin |
ParticleSampler * | theParticleSampler |
Protected Attributes inherited from G4INCL::Particle | |
G4int | theZ |
G4int | theA |
ParticipantType | theParticipantType |
G4INCL::ParticleType | theType |
G4double | theEnergy |
G4double * | thePropagationEnergy |
G4double | theFrozenEnergy |
G4INCL::ThreeVector | theMomentum |
G4INCL::ThreeVector * | thePropagationMomentum |
G4INCL::ThreeVector | theFrozenMomentum |
G4INCL::ThreeVector | thePosition |
G4int | nCollisions |
G4int | nDecays |
G4double | thePotentialEnergy |
long | ID |
G4bool | rpCorrelated |
G4double | uncorrelatedMomentum |
Definition at line 58 of file G4INCLProjectileRemnant.hh.
typedef std::map<long, G4double> G4INCL::ProjectileRemnant::EnergyLevelMap |
Definition at line 63 of file G4INCLProjectileRemnant.hh.
typedef std::vector<G4double> G4INCL::ProjectileRemnant::EnergyLevels |
Definition at line 62 of file G4INCLProjectileRemnant.hh.
|
inline |
Definition at line 65 of file G4INCLProjectileRemnant.hh.
References G4INCL::Cluster::boost(), G4INCL::KinematicsUtils::energy(), G4INCL::Cluster::freezeInternalMotion(), G4INCL::Particle::getMass(), G4INCL::Cluster::initializeParticles(), G4INCL::Cluster::internalBoostToCM(), G4INCL::Cluster::makeProjectileSpectator(), G4INCL::Cluster::putParticlesOffShell(), G4INCL::Particle::setTableMass(), and storeEnergyLevels().
|
inline |
Definition at line 96 of file G4INCLProjectileRemnant.hh.
References clearEnergyLevels(), G4INCL::Cluster::deleteParticles(), and deleteStoredComponents().
ParticleList G4INCL::ProjectileRemnant::addAllDynamicalSpectators | ( | ParticleList const & | pL | ) |
Add back all dynamical spectators to the projectile remnant.
Return a list of rejected dynamical spectators.
Definition at line 144 of file G4INCLProjectileRemnant.cc.
References addMostDynamicalSpectators(), computeExcitationEnergyWith(), getStoredMomentum(), G4INCL::ParticleTable::getTableMass, INCL_DEBUG, INCL_WARN, G4INCL::ThreeVector::mag2(), G4INCL::Cluster::particles, G4INCL::Particle::theA, G4INCL::Particle::theEnergy, G4INCL::Particle::theMomentum, and G4INCL::Particle::theZ.
Referenced by G4INCL::INCL::makeProjectileRemnant().
Add back a nucleon to the projectile remnant.
Try to add a dynamical spectator back to the projectile remnant. Refuse to do so if this leads to a negative projectile excitation energy. Return true on success, false on failure.
Definition at line 286 of file G4INCLProjectileRemnant.cc.
References G4INCL::Particle::getA(), G4INCL::Particle::getEnergy(), getStoredMomentum(), G4INCL::ParticleTable::getTableMass, G4INCL::Particle::getZ(), G4INCL::ThreeVector::mag2(), G4INCL::Cluster::particles, G4INCL::Particle::theA, G4INCL::Particle::theEnergy, G4INCL::Particle::theMomentum, and G4INCL::Particle::theZ.
Referenced by addDynamicalSpectators().
ParticleList G4INCL::ProjectileRemnant::addDynamicalSpectators | ( | ParticleList | pL | ) |
Add back dynamical spectators to the projectile remnant.
Try to add the dynamical spectators back to the projectile remnant. Refuse to do so if this leads to a negative projectile excitation energy.
Return a list of rejected dynamical spectators.
Definition at line 121 of file G4INCLProjectileRemnant.cc.
References addDynamicalSpectator(), and G4INCL::UnorderedVector< T >::remove().
ParticleList G4INCL::ProjectileRemnant::addMostDynamicalSpectators | ( | ParticleList | pL | ) |
Add back dynamical spectators to the projectile remnant.
Try as hard as possible to add back all the dynamical spectators. Don't add spectators that lead to negative excitation energies. Start by adding all of them, and repeatedly remove the most troublesome one until the excitation energy becomes non-negative.
Return a list of rejected dynamical spectators.
Definition at line 191 of file G4INCLProjectileRemnant.cc.
References getStoredMomentum(), G4INCL::ParticleTable::getTableMass, G4INCL::ThreeVector::mag2(), G4INCL::Math::max(), G4INCL::Cluster::particles, G4INCL::Particle::theA, G4INCL::Particle::theEnergy, G4INCL::Particle::theMomentum, and G4INCL::Particle::theZ.
Referenced by addAllDynamicalSpectators().
|
inline |
Clear the stored energy levels.
Definition at line 153 of file G4INCLProjectileRemnant.hh.
References theGroundStateEnergies, and theInitialEnergyLevels.
Referenced by ~ProjectileRemnant().
|
inline |
Clear the stored projectile components.
Definition at line 148 of file G4INCLProjectileRemnant.hh.
References storedComponents.
Referenced by deleteStoredComponents().
|
private |
Compute the excitation energy for a given configuration.
The function that does the real job of calculating the excitation energy for a given configuration of energy levels.
levels | a configuration of energy levels |
Definition at line 326 of file G4INCLProjectileRemnant.cc.
References theGroundStateEnergies.
Referenced by computeExcitationEnergyExcept(), and computeExcitationEnergyWith().
G4double G4INCL::ProjectileRemnant::computeExcitationEnergyExcept | ( | const long | exceptID | ) | const |
Compute the excitation energy when a nucleon is removed.
Compute the excitation energy of the projectile-like remnant as the difference between the initial and the present configuration. This follows the algorithm proposed by A. Boudard in INCL4.2-HI, as implemented in Geant4.
Definition at line 316 of file G4INCLProjectileRemnant.cc.
References computeExcitationEnergy(), and getPresentEnergyLevelsExcept().
Referenced by G4INCL::ParticleEntryChannel::fillFinalState().
G4double G4INCL::ProjectileRemnant::computeExcitationEnergyWith | ( | const ParticleList & | pL | ) | const |
Compute the excitation energy if some nucleons are put back.
Definition at line 321 of file G4INCLProjectileRemnant.cc.
References computeExcitationEnergy(), and getPresentEnergyLevelsWith().
Referenced by addAllDynamicalSpectators().
|
inline |
Clear the stored projectile components and delete the particles.
Definition at line 141 of file G4INCLProjectileRemnant.hh.
References clearStoredComponents(), and storedComponents.
Referenced by ~ProjectileRemnant().
|
inline |
Definition at line 207 of file G4INCLProjectileRemnant.hh.
References theGroundStateEnergies.
|
inline |
Get the number of the stored components.
Definition at line 184 of file G4INCLProjectileRemnant.hh.
References storedComponents.
|
private |
Definition at line 347 of file G4INCLProjectileRemnant.cc.
References G4INCL::Cluster::particles, and theInitialEnergyLevels.
Referenced by computeExcitationEnergyExcept().
|
private |
Definition at line 360 of file G4INCLProjectileRemnant.cc.
References G4INCL::Cluster::particles, and theInitialEnergyLevels.
Referenced by computeExcitationEnergyWith().
|
inlineprivate |
Definition at line 234 of file G4INCLProjectileRemnant.hh.
References storedComponents.
Referenced by shuffleStoredComponents().
|
inlineprivate |
Return the stored momentum of a given projectile component.
Definition at line 242 of file G4INCLProjectileRemnant.hh.
References G4INCL::Particle::getID(), G4INCL::Particle::getMomentum(), INCL_ERROR, and storedComponents.
Referenced by addAllDynamicalSpectators(), addDynamicalSpectator(), and addMostDynamicalSpectators().
|
private |
void G4INCL::ProjectileRemnant::removeParticle | ( | Particle *const | p, |
const G4double | theProjectileCorrection | ||
) |
Remove a nucleon from the projectile remnant.
p | particle to be removed |
theProjectileCorrection | correction to be given to the projectile total energy |
Definition at line 76 of file G4INCLProjectileRemnant.cc.
References G4INCL::Particle::getA(), G4INCL::Particle::getEnergy(), G4INCL::Particle::getMomentum(), G4INCL::Particle::getZ(), INCL_DEBUG, G4INCL::Cluster::particles, G4INCL::Cluster::print(), G4INCL::Particle::print(), G4INCL::Cluster::removeParticle(), G4INCL::Particle::theA, G4INCL::Particle::theEnergy, G4INCL::Particle::theMomentum, and G4INCL::Particle::theZ.
Referenced by G4INCL::ParticleEntryChannel::fillFinalState().
void G4INCL::ProjectileRemnant::reset | ( | ) |
Reset the projectile remnant to the state at the beginning of the cascade.
Definition at line 51 of file G4INCLProjectileRemnant.cc.
References G4INCL::Cluster::addParticle(), G4INCL::Cluster::deleteParticles(), G4INCL::Particle::getID(), INCL_DEBUG, G4INCL::Particle::nCollisions, G4INCL::Particle::Particle(), G4INCL::Cluster::print(), G4INCL::Particle::setTableMass(), storedComponents, G4INCL::Particle::theA, G4INCL::Particle::theEnergy, theInitialEnergyLevels, G4INCL::Particle::theMomentum, G4INCL::Particle::thePosition, G4INCL::Particle::thePotentialEnergy, and G4INCL::Particle::theZ.
Referenced by G4INCL::INCL::makeCompoundNucleus().
|
inlineprivate |
Shuffle the list of stored projectile components.
Definition at line 228 of file G4INCLProjectileRemnant.hh.
References G4INCL::Random::getAdapter(), and getStoredComponents().
|
inline |
Store the projectile components.
Definition at line 176 of file G4INCLProjectileRemnant.hh.
References G4INCL::Particle::Particle(), G4INCL::Cluster::particles, and storedComponents.
Referenced by G4INCL::StandardPropagationModel::shootComposite().
|
inline |
Store the energy levels.
Definition at line 189 of file G4INCLProjectileRemnant.hh.
References G4INCL::Cluster::particles, theGroundStateEnergies, and theInitialEnergyLevels.
Referenced by ProjectileRemnant().
|
private |
Return the stored energy of a given projectile component.
Stored projectile components
These particles are owned by the ProjectileRemnant.
Definition at line 275 of file G4INCLProjectileRemnant.hh.
Referenced by clearStoredComponents(), deleteStoredComponents(), getNumberStoredComponents(), getStoredComponents(), getStoredMomentum(), reset(), and storeComponents().
|
private |
Ground-state energies for any number of nucleons.
Definition at line 281 of file G4INCLProjectileRemnant.hh.
Referenced by clearEnergyLevels(), computeExcitationEnergy(), getGroundStateEnergies(), and storeEnergyLevels().
|
private |
Initial energy levels of the projectile.
Definition at line 278 of file G4INCLProjectileRemnant.hh.
Referenced by clearEnergyLevels(), getPresentEnergyLevelsExcept(), getPresentEnergyLevelsWith(), reset(), and storeEnergyLevels().