77 using namespace G4InuclSpecialFunctions;
85 copy(aFragment, model);
122 return makeG4Fragment();
131 copy(a3DNucleus, model);
135 if (!a3DNucleus)
return;
192 G4double ekin_new = (ekin == 0.) ? 0.
193 : std::sqrt(emass*emass + ekin*(2.*
getMass()+ekin)) - emass;
207 if (0 == a && 0 == z)
return 0;
222 static std::map<G4int,G4ParticleDefinition*> fragmentList;
231 if (a<=0 || z<0 || a<z) {
232 G4cerr <<
" >>> G4InuclNuclei::makeNuclearFragment() called with"
233 <<
" impossible arguments A=" << a <<
" Z=" << z <<
G4endl;
235 "G4InuclNuclei impossible A/Z arguments");
245 if (fragmentList.find(code) != fragmentList.end())
return fragmentList[code];
249 std::stringstream zstr, astr;
268 "nucleus", 0, a, code,
270 true,
"generic", 0, 0.);
274 return (fragmentList[code] = fragPD);
286 if (
this != &right) {
const G4LorentzVector & GetMomentum() const
static G4ParticleDefinition * makeNuclearFragment(G4int a, G4int z)
static G4Proton * Definition()
G4InuclParticle & operator=(const G4InuclParticle &right)
void setKineticEnergy(G4double ekin)
void setModel(Model model)
std::vector< ExP01TrackerHit * > a
static G4ParticleTable * GetParticleTable()
static constexpr double MeV
void SetNumberOfHoles(G4int valueTot, G4int valueP=0)
static G4Neutron * Definition()
void copy(const G4Fragment &aFragment, Model model=DefaultModel)
virtual void print(std::ostream &os) const
void fill(G4int a, G4int z, G4double exc=0., Model model=DefaultModel)
const G4String & GetParticleName() const
G4int protonQuasiParticles
G4int GetNumberOfHoles() const
G4IonTable * GetIonTable() const
void setDefinition(const G4ParticleDefinition *pd)
G4double getExitationEnergy() const
G4int GetNumberOfParticles() const
const G4ParticleDefinition * getDefinition() const
void clearExitonConfiguration()
#define G4MUTEX_INITIALIZER
G4double getKineticEnergy() const
void setExitationEnergy(G4double e)
void setMass(G4double mass)
G4int neutronQuasiParticles
G4int GetNumberOfCharged() const
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4Fragment makeG4Fragment() const
virtual G4int GetCharge()=0
void SetNumberOfExcitedParticle(G4int valueTot, G4int valueP)
void SetAntiPDGEncoding(G4int aEncoding)
G4GLOB_DLL std::ostream G4cerr
virtual G4int GetMassNumber()=0
virtual G4Nucleon * GetNextNucleon()=0
virtual void print(std::ostream &os) const
static constexpr double eplus
void setMomentum(const G4LorentzVector &mom)
G4double getNucleiMass() const
G4ExitonConfiguration theExitonConfiguration
const G4ParticleDefinition * GetParticleType() const
G4LorentzVector getMomentum() const
G4int GetNumberOfChargedHoles() const
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
static G4ParticleDefinition * makeDefinition(G4int a, G4int z)
G4double GetExcitationEnergy() const
const XML_Char XML_Content * model
virtual G4bool StartLoop()=0
static constexpr double GeV
static G4int GetNucleusEncoding(G4int Z, G4int A, G4double E=0.0, G4int lvl=0)
G4InuclNuclei & operator=(const G4InuclNuclei &right)