55const G4int G4UnstableFragmentBreakUp::Zfr[] = {0, 1, 1, 1, 2, 2};
56const G4int G4UnstableFragmentBreakUp::Afr[] = {1, 1, 2, 3, 3, 4};
61 for(
G4int i=0; i<6; ++i) {
87 G4cout <<
"#Unstable decay " <<
" Z= " << Z <<
" A= " <<
A
90 const G4double tolerance = 10*CLHEP::eV;
91 const G4double dmlimit = 0.2*CLHEP::MeV;
96 for(
G4int i=0; i<6; ++i) {
97 G4int Zres = Z - Zfr[i];
99 if(Zres >= 0 && Ares >= Zres && Ares >= Afr[i]) {
101 for(
G4int j=0; j<6; ++j) {
102 if(Zres == Zfr[j] && Ares == Afr[j]) {
108 G4double delm = mass - masses[i] - masses[j];
114 if(delm > 0.0) { isChannel =
true; }
120 if(isChannel) {
break; }
123 G4double e = mass - mres - masses[i];
126 if(lman && e >= 0.0) {
138 if(e > 0.0) { mass1 += e; }
146 if(mass + dmlimit < massmin) {
return false; }
148 G4cout <<
"#Unstable decay correction: Z= " << Z <<
" A= " <<
A
150 <<
" deltaM(MeV)= " << mass - massmin
154 G4double e = std::max(lv.
e(), mass + tolerance);
155 G4double mom = std::sqrt((e - mass)*(e + mass));
161 G4double e2 = 0.5*((mass - mass1)*(mass + mass1) + mass2*mass2)/mass;
162 e2 = std::max(e2, mass2);
163 G4double mom = std::sqrt((e2 - mass2)*(e2 + mass2));
170 frag =
new G4Fragment(Afr[idx], Zfr[idx], mom2);
172 results->push_back(frag);
double A(double temperature)
std::vector< G4Fragment * > G4FragmentVector
CLHEP::HepLorentzVector G4LorentzVector
G4ThreeVector G4RandomDirection()
G4GLOB_DLL std::ostream G4cout
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
void set(double x, double y, double z, double t)
G4double GetExcitationEnergy() const
const G4LorentzVector & GetMomentum() const
G4double GetCreationTime() const
void SetCreationTime(G4double time)
void SetMomentum(const G4LorentzVector &value)
void SetZandA_asInt(G4int Znew, G4int Anew)
const G4LevelManager * GetLevelManager(G4int Z, G4int A)
static G4NuclearLevelData * GetInstance()
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4UnstableFragmentBreakUp()
virtual G4bool BreakUpChain(G4FragmentVector *, G4Fragment *) final
virtual G4double GetEmissionProbability(G4Fragment *fragment) final
virtual ~G4UnstableFragmentBreakUp()