84 copy(aFragment, model);
121 return makeG4Fragment();
130 copy(a3DNucleus, model);
134 if (!a3DNucleus)
return;
191 G4double ekin_new = (ekin == 0.) ? 0.
192 : std::sqrt(emass*emass + ekin*(2.*
getMass()+ekin)) - emass;
206 if (0 == a && 0 == z)
return 0;
221 static std::map<G4int,G4ParticleDefinition*> fragmentList;
230 if (a<=0 || z<0 || a<z) {
231 G4cerr <<
" >>> G4InuclNuclei::makeNuclearFragment() called with"
232 <<
" impossible arguments A=" << a <<
" Z=" << z <<
G4endl;
234 "G4InuclNuclei impossible A/Z arguments");
244 if (fragmentList.find(
code) != fragmentList.end())
return fragmentList[
code];
248 std::stringstream zstr, astr;
252 G4String name =
"Z" + zstr.str() +
"A" + astr.str();
267 "nucleus", 0, a,
code,
269 true,
"generic", 0, 0.);
273 return (fragmentList[
code] = fragPD);
285 if (
this != &right) {
286 theExitonConfiguration = right.theExitonConfiguration;
300 if (!theExitonConfiguration.
empty())
301 os <<
G4endl <<
" " << theExitonConfiguration;
#define G4MUTEX_INITIALIZER
G4GLOB_DLL std::ostream G4cerr
G4int neutronQuasiParticles
G4int protonQuasiParticles
G4int GetNumberOfParticles() const
G4int GetNumberOfHoles() const
G4int GetNumberOfChargedHoles() const
G4double GetExcitationEnergy() const
const G4LorentzVector & GetMomentum() const
void SetNumberOfHoles(G4int valueTot, G4int valueP=0)
void SetNumberOfExcitedParticle(G4int valueTot, G4int valueP)
G4int GetNumberOfCharged() const
G4Fragment makeG4Fragment() const
static G4ParticleDefinition * makeNuclearFragment(G4int a, G4int z)
static G4ParticleDefinition * makeDefinition(G4int a, G4int z)
void copy(const G4Fragment &aFragment, Model model=DefaultModel)
G4double getNucleiMass() const
void setExitationEnergy(G4double e)
G4InuclNuclei & operator=(const G4InuclNuclei &right)
G4double getExitationEnergy() const
void fill(G4int a, G4int z, G4double exc=0., Model model=DefaultModel)
void clearExitonConfiguration()
virtual void print(std::ostream &os) const
const G4ParticleDefinition * getDefinition() const
void setMass(G4double mass)
virtual void print(std::ostream &os) const
G4double getKineticEnergy() const
G4InuclParticle & operator=(const G4InuclParticle &right)
G4LorentzVector getMomentum() const
void setKineticEnergy(G4double ekin)
void setMomentum(const G4LorentzVector &mom)
void setDefinition(const G4ParticleDefinition *pd)
void setModel(Model model)
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
static G4int GetNucleusEncoding(G4int Z, G4int A, G4double E=0.0, G4int lvl=0)
static G4Neutron * Definition()
static G4double GetNuclearMass(const G4double A, const G4double Z)
const G4ParticleDefinition * GetParticleType() const
void SetAntiPDGEncoding(G4int aEncoding)
const G4String & GetParticleName() const
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()
static G4Proton * Definition()
virtual G4Nucleon * GetNextNucleon()=0
virtual G4int GetCharge()=0
virtual G4bool StartLoop()=0
virtual G4int GetMassNumber()=0