53G4int G4UnstableFragmentBreakUp::Zfr[6] = {0};
54G4int G4UnstableFragmentBreakUp::Afr[6] = {0};
55G4double G4UnstableFragmentBreakUp::masses[6] = {0.0};
62 G4int z[6] = {0, 1, 1, 1, 2, 2};
63 G4int a[6] = {1, 1, 2, 3, 3, 4};
64 for(
G4int i=0; i<6; ++i) {
91 G4double deltaE, mass, mass1(0.0), mass2(0.0);
96 for(
G4int ia=0; ia<Amax; ++ia) {
102 G4int Zres = Z - Zfr[i];
103 G4int Ares = A - Afr[i];
104 if(Zres >= 0 && Ares >= Zres && Ares > 0) {
106 G4double de = mass - m1 - masses[i];
117 if(index < 0) {
break; }
120 G4double e2 = 0.5*((mass - mass1)*(mass + mass1) + mass2*mass2)/mass;
121 if(e2 < mass2) {
break; }
127 G4double sinTheta = std::sqrt(1. - cosTheta * cosTheta);
129 G4double mom = std::sqrt((e2 - mass2)*(e2 + mass2));
131 mom * sinTheta * std::sin(phi),
137 theResult->push_back(fr);
146 if( theResult->size() > 0) {
std::vector< G4Fragment * > G4FragmentVector
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
const G4LorentzVector & GetMomentum() const
G4double GetCreationTime() const
void SetCreationTime(G4double time)
void SetMomentum(const G4LorentzVector &value)
void SetZandA_asInt(G4int Znew, G4int Anew)
static G4NistManager * Instance()
static G4double GetNuclearMass(const G4double A, const G4double Z)
virtual G4Fragment * EmittedFragment(G4Fragment *fragment)
virtual G4double GetEmissionProbability(G4Fragment *fragment)
G4UnstableFragmentBreakUp()
virtual G4FragmentVector * BreakUp(const G4Fragment &fragment)
virtual G4FragmentVector * BreakUpFragment(G4Fragment *fragment)
virtual ~G4UnstableFragmentBreakUp()