42 #ifdef G4MULTITHREADED
47 : theDecay(nullptr), rndmEngine(nullptr),
maxZ(9),
maxA(17)
79 #ifdef G4MULTITHREADED
80 G4MUTEXLOCK(&G4FermiBreakUpVI::FermiBreakUpVIMutex);
85 #ifdef G4MULTITHREADED
92 return (ZZ <
maxZ && AA < maxA && AA > 0 && eexc <=
elim
100 G4cout <<
"### G4FermiBreakUpVI::BreakFragment start new fragment "
128 for(
size_t i=0; i<
frag.size(); ++i) {
135 G4cout <<
"# FermiFrag " << i <<
". Z= " <<
Z <<
" A= " <<
A
136 <<
" mass= " <<
mass <<
" exc= "
145 theResult->push_back(f);
159 if(!chan) {
return false; }
162 G4cout <<
"== SampleDecay " << nn <<
" channels Eex= "
165 if(0 == nn) {
return false; }
183 const std::vector<const G4FermiPair*>& pvect = chan->
GetChannels();
184 if(nn > 12) {
prob.resize(nn, 0.0); }
189 for(
size_t i=0; i<
nn; ++i) {
191 pvect[i]->GetFragment1(),
192 pvect[i]->GetFragment2());
196 <<
" Z1= " << pvect[i]->GetFragment1()->GetZ()
197 <<
" A1= " << pvect[i]->GetFragment1()->GetA()
198 <<
" Z2= " << pvect[i]->GetFragment2()->GetZ()
199 <<
" A2= " << pvect[i]->GetFragment2()->GetA()
204 for(
size_t i=0; i<
nn; ++i) {
205 if(ptot <=
prob[i] || i+1 == nn) {
212 if(!fpair) {
return false; }
220 G4cout <<
" M= " <<
mass <<
" M1= " << mass1 <<
" M2= " << mass2
229 p1 = std::sqrt((e1 - mass1)*(e1 + mass1));
249 lvect.push_back(lv1);