55 const G4int G4UnstableFragmentBreakUp::Zfr[] = {0, 1, 1, 1, 2, 2};
56 const G4int G4UnstableFragmentBreakUp::Afr[] = {1, 1, 2, 3, 3, 4};
61 for(
G4int i=0; i<6; ++i) {
94 for(
G4int k=0; k<Amax; ++k) {
104 for(
G4int i=0; i<6; ++i) {
107 for(
G4int j=0; j<6; ++j) {
108 if(Zres == Zfr[j] && Ares == Afr[j]) {
114 if(mass >= masses[i] + masses[j]) {
127 if(Zres >= 0 && Ares >= Zres && Ares > 0) {
146 for(
G4int i=0; i<6; ++i) {
149 if(Zres >= 0 && Ares >= Zres && Ares > 0) {
166 if(0 == k) {
return false; }
174 G4double e2 = 0.5*((mass - mass1)*(mass + mass1) + mass2*mass2)/mass;
176 G4double mom = std::sqrt((e2 - mass2)*(e2 + mass2));
183 frag =
new G4Fragment(Afr[index], Zfr[index], mom2);
185 results->push_back(frag);
Hep3Vector boostVector() const
static G4double GetNuclearMass(const G4double A, const G4double Z)
static constexpr double proton_mass_c2
const G4LevelManager * GetLevelManager(G4int Z, G4int A)
G4ThreeVector G4RandomDirection()
virtual G4bool BreakUpChain(G4FragmentVector *, G4Fragment *) final
G4UnstableFragmentBreakUp()
double A(double temperature)
static constexpr double m
G4double GetCreationTime() const
const G4LorentzVector & GetMomentum() const
HepLorentzVector & boost(double, double, double)
void SetMomentum(const G4LorentzVector &value)
static constexpr double neutron_mass_c2
std::vector< G4Fragment * > G4FragmentVector
virtual G4double GetEmissionProbability(G4Fragment *fragment) final
void SetCreationTime(G4double time)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
void SetZandA_asInt(G4int Znew, G4int Anew)
virtual ~G4UnstableFragmentBreakUp()
static G4NuclearLevelData * GetInstance()
CLHEP::HepLorentzVector G4LorentzVector