Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4INCL::ProjectileRemnant Class Reference

#include <G4INCLProjectileRemnant.hh>

+ Inheritance diagram for G4INCL::ProjectileRemnant:

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.
 
void removeParticle (Particle *const p, const G4double theProjectileCorrection)
 Remove a nucleon from the projectile remnant.
 
ParticleList addDynamicalSpectators (ParticleList pL)
 Add back dynamical spectators to the projectile remnant.
 
ParticleList addMostDynamicalSpectators (ParticleList pL)
 Add back dynamical spectators to the projectile remnant.
 
void deleteStoredComponents ()
 Clear the stored projectile components and delete the particles.
 
void clearStoredComponents ()
 Clear the stored projectile components.
 
void clearEnergyLevels ()
 Clear the stored energy levels.
 
G4double computeExcitationEnergy (const long exceptID) const
 Compute the excitation energy.
 
EnergyLevels getPresentEnergyLevels (const long exceptID) const
 
void storeComponents ()
 Store the projectile components.
 
G4int getNumberStoredComponents () const
 Get the number of the stored components.
 
void storeEnergyLevels ()
 Store the energy levels.
 
- Public Member Functions inherited from G4INCL::Cluster
 Cluster (const G4int Z, const G4int A, const G4bool createParticleSampler=true)
 Standard Cluster constructor.
 
template<class Iterator >
 Cluster (Iterator begin, Iterator end)
 
virtual ~Cluster ()
 
 Cluster (const Cluster &rhs)
 Copy constructor.
 
Clusteroperator= (const Cluster &rhs)
 Assignment operator.
 
void swap (Cluster &rhs)
 Helper method for the assignment operator.
 
ParticleSpecies getSpecies () const
 Get the particle species.
 
void deleteParticles ()
 
void clearParticles ()
 
void setZ (const G4int Z)
 Set the charge number of the cluster.
 
void setA (const G4int A)
 Set the mass number of the cluster.
 
G4double getExcitationEnergy () const
 Get the excitation energy of the cluster.
 
void setExcitationEnergy (const G4double e)
 Set the excitation energy of the cluster.
 
virtual G4double getTableMass () const
 Get the real particle mass.
 
ParticleList constgetParticles () const
 
void removeParticle (Particle *const p)
 Remove a particle from the cluster components.
 
void addParticle (Particle *const p)
 
void addParticles (ParticleList const &pL)
 Add a list of particles to the cluster.
 
ParticleList getParticleList () const
 Returns the list of particles that make up the cluster.
 
std::string print () const
 
virtual void initializeParticles ()
 Initialise the NuclearDensity pointer and sample the particles.
 
void internalBoostToCM ()
 Boost to the CM of the component particles.
 
void putParticlesOffShell ()
 Put the cluster components off shell.
 
void setPosition (const ThreeVector &position)
 Set the position of the cluster.
 
void boost (const ThreeVector &aBoostVector)
 Boost the cluster with the indicated velocity.
 
void freezeInternalMotion ()
 Freeze the internal motion of the particles.
 
virtual void rotate (const G4double angle, const ThreeVector &axis)
 Rotate position and momentum of all the particles.
 
virtual void makeProjectileSpectator ()
 Make all the components projectile spectators, too.
 
virtual void makeTargetSpectator ()
 Make all the components target spectators, too.
 
virtual void makeParticipant ()
 Make all the components participants, too.
 
ThreeVector constgetSpin () const
 Get the spin of the nucleus.
 
void setSpin (const ThreeVector &j)
 Set the spin of the nucleus.
 
G4INCL::ThreeVector getAngularMomentum () const
 Get the total angular momentum (orbital + spin)
 
- Public Member Functions inherited from G4INCL::Particle
 Particle ()
 
 Particle (ParticleType t, G4double energy, ThreeVector momentum, ThreeVector position)
 
 Particle (ParticleType t, ThreeVector momentum, ThreeVector position)
 
virtual ~Particle ()
 
 Particle (const Particle &rhs)
 Copy constructor.
 
Particleoperator= (const Particle &rhs)
 Assignment operator.
 
G4INCL::ParticleType getType () const
 
virtual G4INCL::ParticleSpecies getSpecies () const
 Get the particle species.
 
void setType (ParticleType t)
 
G4bool isNucleon () const
 
ParticipantType getParticipantType () const
 
void setParticipantType (ParticipantType const p)
 
G4bool isParticipant () const
 
G4bool isTargetSpectator () const
 
G4bool isProjectileSpectator () const
 
virtual void makeParticipant ()
 
virtual void makeTargetSpectator ()
 
virtual void makeProjectileSpectator ()
 
G4bool isPion () const
 Is this a pion?
 
G4bool isResonance () const
 Is it a resonance?
 
G4bool isDelta () const
 Is it a Delta?
 
G4int getA () const
 Returns the baryon number.
 
G4int getZ () const
 Returns the charge number.
 
G4double getBeta () const
 
ThreeVector boostVector () const
 
void boost (const ThreeVector &aBoostVector)
 
void lorentzContract (const ThreeVector &aBoostVector, const ThreeVector &refPos)
 Lorentz-contract the particle position around some center.
 
G4double getMass () const
 Get the cached particle mass.
 
G4double getINCLMass () const
 Get the INCL particle mass.
 
virtual G4double getTableMass () const
 Get the tabulated particle mass.
 
G4double getRealMass () const
 Get the real particle mass.
 
void setRealMass ()
 Set the mass of the Particle to its real mass.
 
void setTableMass ()
 Set the mass of the Particle to its table mass.
 
void setINCLMass ()
 Set the mass of the Particle to its table mass.
 
G4double getEmissionQValueCorrection (const G4int AParent, const G4int ZParent) const
 Computes correction on the emission Q-value.
 
G4double getTransferQValueCorrection (const G4int AFrom, const G4int ZFrom, const G4int ATo, const G4int ZTo) const
 Computes correction on the transfer Q-value.
 
G4double getInvariantMass () const
 Get the the particle invariant mass.
 
G4double getKineticEnergy () const
 Get the particle kinetic energy.
 
G4double getPotentialEnergy () const
 Get the particle potential energy.
 
void setPotentialEnergy (G4double v)
 Set the particle potential energy.
 
G4double getEnergy () const
 
void setMass (G4double mass)
 
void setEnergy (G4double energy)
 
const G4INCL::ThreeVectorgetMomentum () const
 
virtual G4INCL::ThreeVector getAngularMomentum () const
 
virtual void setMomentum (const G4INCL::ThreeVector &momentum)
 
const G4INCL::ThreeVectorgetPosition () const
 
virtual void setPosition (const G4INCL::ThreeVector &position)
 
G4double getHelicity ()
 
void setHelicity (G4double h)
 
void propagate (G4double step)
 
G4int getNumberOfCollisions () const
 Return the number of collisions undergone by the particle.
 
void setNumberOfCollisions (G4int n)
 Set the number of collisions undergone by the particle.
 
void incrementNumberOfCollisions ()
 Increment the number of collisions undergone by the particle.
 
G4int getNumberOfDecays () const
 Return the number of decays undergone by the particle.
 
void setNumberOfDecays (G4int n)
 Set the number of decays undergone by the particle.
 
void incrementNumberOfDecays ()
 Increment the number of decays undergone by the particle.
 
void setOutOfWell ()
 Mark the particle as out of its potential well.
 
G4bool isOutOfWell () const
 Check if the particle is out of its potential well.
 
void setEmissionTime (G4double t)
 
G4double getEmissionTime ()
 
ThreeVector getTransversePosition () const
 Transverse component of the position w.r.t. the momentum.
 
ThreeVector getLongitudinalPosition () const
 Longitudinal component of the position w.r.t. the momentum.
 
const ThreeVectoradjustMomentumFromEnergy ()
 Rescale the momentum to match the total energy.
 
G4double adjustEnergyFromMomentum ()
 Recompute the energy to match the momentum.
 
G4bool isInList (ParticleList const &l) const
 Check if the particle belongs to a given list.
 
G4bool isCluster () const
 
void setFrozenMomentum (const ThreeVector &momentum)
 Set the frozen particle momentum.
 
void setFrozenEnergy (const G4double energy)
 Set the frozen particle momentum.
 
ThreeVector getFrozenMomentum () const
 Get the frozen particle momentum.
 
G4double getFrozenEnergy () const
 Get the frozen particle momentum.
 
ThreeVector getPropagationVelocity () const
 Get the propagation velocity of the particle.
 
void freezePropagation ()
 Freeze particle propagation.
 
void thawPropagation ()
 Unfreeze particle propagation.
 
virtual void rotate (const G4double angle, const ThreeVector &axis)
 Rotate the particle position and momentum.
 
std::string print () const
 
std::string dump () const
 
long getID () const
 
ParticleList constgetParticles () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4INCL::Particle
void swap (Particle &rhs)
 Helper method for the assignment operator.
 
- Protected Attributes inherited from G4INCL::Cluster
ParticleList particles
 
G4double theExcitationEnergy
 
ThreeVector theSpin
 
ParticleSamplertheParticleSampler
 
- Protected Attributes inherited from G4INCL::Particle
G4int theZ
 
G4int theA
 
ParticipantType theParticipantType
 
G4INCL::ParticleType theType
 
G4double theEnergy
 
G4doublethePropagationEnergy
 
G4double theFrozenEnergy
 
G4INCL::ThreeVector theMomentum
 
G4INCL::ThreeVectorthePropagationMomentum
 
G4INCL::ThreeVector theFrozenMomentum
 
G4INCL::ThreeVector thePosition
 
G4int nCollisions
 
G4int nDecays
 
G4double thePotentialEnergy
 
long ID
 

Detailed Description

Definition at line 61 of file G4INCLProjectileRemnant.hh.

Constructor & Destructor Documentation

◆ ProjectileRemnant()

G4INCL::ProjectileRemnant::ProjectileRemnant ( ParticleSpecies const  species,
const G4double  kineticEnergy 
)
inline

Definition at line 67 of file G4INCLProjectileRemnant.hh.

68 : Cluster(species.theZ, species.theA) {
69
70 // Use the table mass
72
73 // Set the kinematics
74 const G4double projectileMass = getMass();
75 const G4double energy = kineticEnergy + projectileMass;
76 const G4double momentumZ = std::sqrt(energy*energy - projectileMass*projectileMass);
77
78 // Initialise the particles
82
83 // Store the energy levels of the ProjectileRemnant (used to compute its
84 // excitation energy)
86
87 // Boost the whole thing
88 const ThreeVector aBoostVector = ThreeVector(0.0, 0.0, momentumZ / energy);
89 boost(-aBoostVector);
90
91 // Freeze the internal motion of the particles
93
94 // Set as projectile spectator
96 }
double G4double
Definition: G4Types.hh:64
void boost(const ThreeVector &aBoostVector)
Boost the cluster with the indicated velocity.
void internalBoostToCM()
Boost to the CM of the component particles.
virtual void makeProjectileSpectator()
Make all the components projectile spectators, too.
Cluster(const G4int Z, const G4int A, const G4bool createParticleSampler=true)
Standard Cluster constructor.
virtual void initializeParticles()
Initialise the NuclearDensity pointer and sample the particles.
void freezeInternalMotion()
Freeze the internal motion of the particles.
void putParticlesOffShell()
Put the cluster components off shell.
G4double getMass() const
Get the cached particle mass.
void setTableMass()
Set the mass of the Particle to its table mass.
void storeEnergyLevels()
Store the energy levels.

◆ ~ProjectileRemnant()

G4INCL::ProjectileRemnant::~ProjectileRemnant ( )
inline

Definition at line 98 of file G4INCLProjectileRemnant.hh.

98 {
101 }
void clearEnergyLevels()
Clear the stored energy levels.
void deleteStoredComponents()
Clear the stored projectile components and delete the particles.

Member Function Documentation

◆ 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 125 of file G4INCLProjectileRemnant.cc.

125 {
126 // Try as hard as possible to add back all the dynamical spectators.
127 // Don't add spectators that lead to negative excitation energies, but
128 // iterate over the spectators as many times as possible, until
129 // absolutely sure that all of them were rejected.
130 unsigned int accepted;
131 do {
132 accepted = 0;
133 ParticleList toBeAdded = pL;
134 for(ParticleIter p=toBeAdded.begin(); p!=toBeAdded.end(); ++p) {
135 G4bool isAccepted = addDynamicalSpectator(*p);
136 if(isAccepted) {
137 pL.remove(*p);
138 accepted++;
139 }
140 }
141 } while(accepted > 0);
142 return pL;
143 }
bool G4bool
Definition: G4Types.hh:67
std::list< G4INCL::Particle * > ParticleList
std::list< G4INCL::Particle * >::const_iterator ParticleIter

◆ addMostDynamicalSpectators()

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 145 of file G4INCLProjectileRemnant.cc.

145 {
146 // Try as hard as possible to add back all the dynamical spectators.
147 // Don't add spectators that lead to negative excitation energies. Start by
148 // adding all of them, and repeatedly remove the most troublesome one until
149 // the excitation energy becomes non-negative.
150
151 // Put all the spectators in the projectile
152 ThreeVector theNewMomentum = theMomentum;
153 G4double theNewEnergy = theEnergy;
154 G4int theNewA = theA;
155 G4int theNewZ = theZ;
156 for(ParticleIter p=pL.begin(); p!=pL.end(); ++p) {
157// assert((*p)->isNucleon());
158 // Add the initial (off-shell) momentum and energy to the projectile remnant
159 theNewMomentum += getStoredMomentum(*p);
160 theNewEnergy += (*p)->getEnergy();
161 theNewA += (*p)->getA();
162 theNewZ += (*p)->getZ();
163 }
164
165 // Check that the excitation energy of the new projectile remnant is non-negative
166 const G4double theNewMass = ParticleTable::getTableMass(theNewA,theNewZ);
167 const G4double theNewInvariantMassSquared = theNewEnergy*theNewEnergy-theNewMomentum.mag2();
168
169 G4bool positiveExcitationEnergy = false;
170 if(theNewInvariantMassSquared>=0.) {
171 const G4double theNewInvariantMass = std::sqrt(theNewInvariantMassSquared);
172 positiveExcitationEnergy = (theNewInvariantMass-theNewMass>-1.e-5);
173 }
174
175 // Keep removing nucleons from the projectile remnant until we achieve a
176 // non-negative excitation energy.
177 ParticleList rejected;
178 while(!positiveExcitationEnergy && !pL.empty()) {
179 G4double maxExcitationEnergy = -1.E30;
180 ParticleList::iterator best = pL.end();
181 ThreeVector bestMomentum;
182 G4double bestEnergy = -1.;
183 G4int bestA = -1, bestZ = -1;
184 for(ParticleList::iterator p=pL.begin(); p!=pL.end(); ++p) {
185 // Subtract the initial (off-shell) momentum and energy from the new
186 // projectile remnant
187 const ThreeVector theNewerMomentum = theNewMomentum - getStoredMomentum(*p);
188 const G4double theNewerEnergy = theNewEnergy - (*p)->getEnergy();
189 const G4int theNewerA = theNewA - (*p)->getA();
190 const G4int theNewerZ = theNewZ - (*p)->getZ();
191
192 const G4double theNewerMass = ParticleTable::getTableMass(theNewerA,theNewerZ);
193 const G4double theNewerInvariantMassSquared = theNewerEnergy*theNewerEnergy-theNewerMomentum.mag2();
194
195 if(theNewerInvariantMassSquared>=-1.e-5) {
196 const G4double theNewerInvariantMass = std::sqrt(std::max(0.,theNewerInvariantMassSquared));
197 const G4double theNewerExcitationEnergy = theNewerInvariantMass-theNewerMass;
198 // Pick the nucleon that maximises the excitation energy of the
199 // ProjectileRemnant
200 if(theNewerExcitationEnergy>maxExcitationEnergy) {
201 best = p;
202 maxExcitationEnergy = theNewerExcitationEnergy;
203 bestMomentum = theNewerMomentum;
204 bestEnergy = theNewerEnergy;
205 bestA = theNewerA;
206 bestZ = theNewerZ;
207 }
208 }
209 }
210
211 // If we couldn't even calculate the excitation energy, fail miserably
212 if(best==pL.end())
213 return pL;
214
215 rejected.push_back(*best);
216 pL.erase(best);
217 theNewMomentum = bestMomentum;
218 theNewEnergy = bestEnergy;
219 theNewA = bestA;
220 theNewZ = bestZ;
221
222 if(maxExcitationEnergy>0.) {
223 // Stop here
224 positiveExcitationEnergy = true;
225 }
226 }
227
228 // Add the accepted participants to the projectile remnant
229 for(ParticleIter p=pL.begin(); p!=pL.end(); ++p) {
230 particles.push_back(*p);
231 }
232 theA = theNewA;
233 theZ = theNewZ;
234 theMomentum = theNewMomentum;
235 theEnergy = theNewEnergy;
236
237 return rejected;
238 }
int G4int
Definition: G4Types.hh:66
ParticleList particles
static NuclearMassFn getTableMass
Static pointer to the mass function for nuclei.
G4INCL::ThreeVector theMomentum

◆ clearEnergyLevels()

void G4INCL::ProjectileRemnant::clearEnergyLevels ( )
inline

Clear the stored energy levels.

Definition at line 147 of file G4INCLProjectileRemnant.hh.

147 {
148 theInitialEnergyLevels.clear();
149 theGroundStateEnergies.clear();
150 }

Referenced by ~ProjectileRemnant().

◆ clearStoredComponents()

void G4INCL::ProjectileRemnant::clearStoredComponents ( )
inline

Clear the stored projectile components.

Definition at line 142 of file G4INCLProjectileRemnant.hh.

142 {
143 storedComponents.clear();
144 }

Referenced by deleteStoredComponents().

◆ computeExcitationEnergy()

G4double G4INCL::ProjectileRemnant::computeExcitationEnergy ( const long  exceptID) const

Compute the excitation energy.

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.

Returns
the excitation energy

Definition at line 270 of file G4INCLProjectileRemnant.cc.

270 {
271 // The ground-state energy is the sum of the A smallest initial projectile
272 // energies.
273 // For the last nucleon, return 0 so that the algorithm will just put it on
274 // shell.
275 if(theA==1)
276 return 0.;
277
278 const G4double groundState = theGroundStateEnergies.at(theA-2);
279
280 // Compute the sum of the presently occupied energy levels
281 const EnergyLevels theEnergyLevels = getPresentEnergyLevels(exceptID);
282 const G4double excitedState = std::accumulate(
283 theEnergyLevels.begin(),
284 theEnergyLevels.end(),
285 0.);
286
287 return excitedState-groundState;
288 }
EnergyLevels getPresentEnergyLevels(const long exceptID) const

Referenced by G4INCL::ParticleEntryChannel::getFinalState().

◆ deleteStoredComponents()

void G4INCL::ProjectileRemnant::deleteStoredComponents ( )
inline

Clear the stored projectile components and delete the particles.

Definition at line 135 of file G4INCLProjectileRemnant.hh.

135 {
136 for(std::map<long,Particle*>::const_iterator p=storedComponents.begin(); p!=storedComponents.end(); ++p)
137 delete p->second;
139 }
void clearStoredComponents()
Clear the stored projectile components.

Referenced by ~ProjectileRemnant().

◆ getNumberStoredComponents()

G4int G4INCL::ProjectileRemnant::getNumberStoredComponents ( ) const
inline

Get the number of the stored components.

Definition at line 185 of file G4INCLProjectileRemnant.hh.

185 {
186 return storedComponents.size();
187 }

Referenced by G4INCL::Nucleus::finalizeProjectileRemnant().

◆ getPresentEnergyLevels()

EnergyLevels G4INCL::ProjectileRemnant::getPresentEnergyLevels ( const long  exceptID) const
inline

Definition at line 163 of file G4INCLProjectileRemnant.hh.

163 {
164 EnergyLevels theEnergyLevels;
165 for(ParticleIter p=particles.begin(); p!=particles.end(); ++p) {
166 if((*p)->getID()!=exceptID) {
167 EnergyLevelMap::const_iterator i = theInitialEnergyLevels.find((*p)->getID());
168// assert(i!=theInitialEnergyLevels.end());
169 theEnergyLevels.push_back(i->second);
170 }
171 }
172// assert(theEnergyLevels.size()==particles.size()-1);
173 return theEnergyLevels;
174 }

Referenced by computeExcitationEnergy().

◆ removeParticle()

void G4INCL::ProjectileRemnant::removeParticle ( Particle *const  p,
const G4double  theProjectileCorrection 
)

Remove a nucleon from the projectile remnant.

Parameters
pparticle to be removed
theProjectileCorrectioncorrection to be given to the projectile total energy

Definition at line 80 of file G4INCLProjectileRemnant.cc.

80 {
81// assert(p->isNucleon());
82
83 DEBUG("The following Particle is about to be removed from the ProjectileRemnant:"
84 << std::endl << p->print()
85 << "theProjectileCorrection=" << theProjectileCorrection << std::endl);
86 // Update A, Z, momentum and energy of the projectile remnant
87 theA -= p->getA();
88 theZ -= p->getZ();
89
90 ThreeVector const &oldMomentum = p->getMomentum();
91 const G4double oldEnergy = p->getEnergy();
93
94#if !defined(NDEBUG) && !defined(INCLXX_IN_GEANT4_MODE)
95 ThreeVector theTotalMomentum;
96 G4double theTotalEnergy = 0.;
97 const G4double theThreshold = 0.1;
98#endif
99
100 if(getA()>0) { // if there are any particles left
101// assert((unsigned int)getA()==particles.size());
102
103 const G4double theProjectileCorrectionPerNucleon = theProjectileCorrection / particles.size();
104
105 // Update the kinematics of the components
106 for(ParticleIter i=particles.begin(); i!=particles.end(); ++i) {
107 (*i)->setEnergy((*i)->getEnergy() + theProjectileCorrectionPerNucleon);
108 (*i)->setMass((*i)->getInvariantMass());
109#if !defined(NDEBUG) && !defined(INCLXX_IN_GEANT4_MODE)
110 theTotalMomentum += (*i)->getMomentum();
111 theTotalEnergy += (*i)->getEnergy();
112#endif
113 }
114 }
115
116 theMomentum -= oldMomentum;
117 theEnergy -= oldEnergy - theProjectileCorrection;
118
119// assert(std::abs((theTotalMomentum-theMomentum).mag())<theThreshold);
120// assert(std::abs(theTotalEnergy-theEnergy)<theThreshold);
121 DEBUG("After Particle removal, the ProjectileRemnant looks like this:"
122 << std::endl << print());
123 }
#define DEBUG(x)
void removeParticle(Particle *const p)
Remove a particle from the cluster components.
std::string print() const
G4int getA() const
Returns the baryon number.

Referenced by G4INCL::ParticleEntryChannel::getFinalState().

◆ reset()

void G4INCL::ProjectileRemnant::reset ( )

Reset the projectile remnant to the state at the beginning of the cascade.

Definition at line 56 of file G4INCLProjectileRemnant.cc.

56 {
58 thePosition = ThreeVector();
59 theMomentum = ThreeVector();
60 theEnergy = 0.0;
62 theA = 0;
63 theZ = 0;
64 nCollisions = 0;
65
66 for(std::map<long, Particle*>::const_iterator i=storedComponents.begin(); i!=storedComponents.end(); ++i) {
67 Particle *p = new Particle(*(i->second));
68 EnergyLevelMap::iterator energyIter = theInitialEnergyLevels.find(i->first);
69// assert(energyIter!=theInitialEnergyLevels.end());
70 const G4double energyLevel = energyIter->second;
71 theInitialEnergyLevels.erase(energyIter);
72 theInitialEnergyLevels[p->getID()] = energyLevel;
73 addParticle(p);
74 }
77 DEBUG("ProjectileRemnant object was reset:" << std::endl << print());
78 }
void addParticle(Particle *const p)
G4double thePotentialEnergy
G4INCL::ThreeVector thePosition

◆ storeComponents()

void G4INCL::ProjectileRemnant::storeComponents ( )
inline

Store the projectile components.

Definition at line 177 of file G4INCLProjectileRemnant.hh.

177 {
178 for(ParticleIter p=particles.begin(); p!=particles.end(); ++p) {
179 // Store the particles (needed for forced CN)
180 storedComponents[(*p)->getID()]=new Particle(**p);
181 }
182 }

Referenced by G4INCL::StandardPropagationModel::shootComposite().

◆ storeEnergyLevels()

void G4INCL::ProjectileRemnant::storeEnergyLevels ( )
inline

Store the energy levels.

Definition at line 190 of file G4INCLProjectileRemnant.hh.

190 {
191 EnergyLevels energies;
192
193 for(ParticleIter p=particles.begin(); p!=particles.end(); ++p) {
194 const G4double theCMEnergy = (*p)->getEnergy();
195 // Store the CM energy in the EnergyLevels map
196 theInitialEnergyLevels[(*p)->getID()] = theCMEnergy;
197 energies.push_back(theCMEnergy);
198 }
199
200 std::sort(energies.begin(), energies.end());
201// assert(energies.size()==(unsigned int)theA);
202 theGroundStateEnergies.resize(energies.size());
203 // Compute the partial sums of the CM energies -- they are our reference
204 // ground-state energies for any number of nucleons
205 std::partial_sum(energies.begin(), energies.end(), theGroundStateEnergies.begin());
206 }

Referenced by ProjectileRemnant().


The documentation for this class was generated from the following files: