Reimplemented from G4VEvaporationChannel.
Definition at line 71 of file G4UnstableFragmentBreakUp.cc.
73{
74
76
79
82
84
85
86
87
89 G4cout <<
"#Unstable decay " <<
" Z= " <<
Z <<
" A= " <<
A
91 }
98 for(
G4int i=0; i<6; ++i) {
101 if(Zres >= 0 && Ares >= Zres && Ares >=
Afr[i]) {
102 if(Ares <= 4) {
103 for(
G4int j=0; j<6; ++j) {
104 if(Zres ==
Zfr[j] && Ares ==
Afr[j]) {
105
106
107
108
109
111 if(delm > exca) {
114 exca = delm;
115 idx = i;
116 if(delm > 0.0) { isChannel = true; }
117 break;
118 }
119 }
120 }
121 }
122 if(isChannel) { break; }
123
126
128 if(lman && e >= 0.0) {
131 idx = i;
132 isChannel = true;
133 break;
134 }
135
136
137 if(e > exca) {
139 mass1 = mres;
140 if(e > 0.0) { mass1 += e; }
141 exca = e;
142 idx = i;
143 }
144 }
145 }
147 if(mass < massmin) {
148 if(mass + dmlimit < massmin) { return false; }
150 G4cout <<
"#Unstable decay correction: Z= " <<
Z <<
" A= " <<
A
151 << " idx= " << idx
152 << " deltaM(MeV)= " << mass - massmin
154 }
155 mass = massmin;
157 G4double mom = std::sqrt((e - mass)*(e + mass));
160 }
161
162
163 G4double e2 = 0.5*((mass - mass1)*(mass + mass1) + mass2*mass2)/mass;
166
167
175 results->push_back(frag);
176
177
178 lv -= mom2;
181
185 return true;
186}
static const G4double e2[44]
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
void SetCreatorModelID(G4int value)
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 constexpr double MeV
static constexpr double eV
T max(const T t1, const T t2)
brief Return the largest of the two arguments
References A, Afr, CLHEP::HepLorentzVector::boost(), CLHEP::HepLorentzVector::boostVector(), CLHEP::HepLorentzVector::e(), e2, CLHEP::eV, fLevelData, fSecID, fVerbose, G4cout, G4endl, G4RandomDirection(), G4UniformRand, G4Fragment::GetA_asInt(), G4Fragment::GetCreationTime(), G4Fragment::GetExcitationEnergy(), G4NuclearLevelData::GetLevelManager(), G4Fragment::GetMomentum(), G4NucleiProperties::GetNuclearMass(), G4Fragment::GetZ_asInt(), CLHEP::HepLorentzVector::mag(), masses, G4INCL::Math::max(), CLHEP::MeV, CLHEP::HepLorentzVector::set(), G4Fragment::SetCreationTime(), G4Fragment::SetCreatorModelID(), G4Fragment::SetMomentum(), G4Fragment::SetZandA_asInt(), CLHEP::Hep3Vector::unit(), CLHEP::HepLorentzVector::vect(), Z, and Zfr.
Referenced by G4Evaporation::BreakFragment().