43 #ifdef G4MULTITHREADED 
   48   : theDecay(nullptr), rndmEngine(nullptr), verbose(0), maxZ(9), maxA(17)
 
   54   mass = elim = excitation = tolerance = 0.0;  
 
   55   frag1 = frag2 = 
nullptr;
 
   69   if(thePool == 
nullptr) { InitialisePool(); }
 
   75 void G4FermiBreakUpVI::InitialisePool()
 
   77 #ifdef G4MULTITHREADED 
   78   G4MUTEXLOCK(&G4FermiBreakUpVI::FermiBreakUpVIMutex);
 
   80   if(thePool == 
nullptr) {
 
   83 #ifdef G4MULTITHREADED 
   90   return (ZZ < maxZ && AA < maxA && AA > 0 && eexc <= elim) ? 
true : 
false;
 
   97     G4cout << 
"### G4FermiBreakUpVI::BreakFragment start new fragment " << 
G4endl;
 
  112   rndmEngine = G4Random::getTheEngine();
 
  116     theResult->push_back(theNucleus);
 
  125   for(
size_t i=0; i<frag.size(); ++i) {
 
  128     spin = frag[i]->GetSpin();
 
  129     mass = frag[i]->GetTotalEnergy();
 
  130     excitation = frag[i]->GetExcitationEnergy();
 
  133       G4cout << 
"# FermiFrag " << i << 
".  Z= " << Z << 
" A= " << A 
 
  134          << 
" mass= " << mass << 
" exc= " << excitation << 
G4endl;
 
  138       if(verbose > 0) { 
G4cout << 
"   New G4Fragment" << 
G4endl; }
 
  142       theResult->push_back(f);
 
  151 G4bool G4FermiBreakUpVI::SampleDecay()
 
  154   if(!chan) { 
return false; }
 
  157     G4cout << 
"== SampleDecay " << nn << 
" channels Eex= "  
  160   if(0 == nn) { 
return false; }
 
  172     if(std::abs(excitation - chan->
GetExcitation()) < tolerance) {
 
  178       const std::vector<const G4FermiPair*>& pvect = chan->
GetChannels();
 
  179       prob.resize(nn, 0.0);
 
  184       for(
size_t i=0; i<
nn; ++i) {
 
  186                          pvect[i]->GetFragment1(),
 
  187                          pvect[i]->GetFragment2());
 
  190       G4cout << i << 
". " << prob[i]
 
  191          << 
" Z1= " << pvect[i]->GetFragment1()->GetZ()
 
  192          << 
" A1= " << pvect[i]->GetFragment1()->GetA()
 
  193          << 
" Z2= " << pvect[i]->GetFragment2()->GetZ()
 
  194          << 
" A2= " << pvect[i]->GetFragment2()->GetA()
 
  198       ptot *= rndmEngine->
flat();
 
  199       for(
size_t i=0; i<
nn; ++i) {
 
  200         if(ptot <= prob[i] || i+1 == nn) {
 
  207   if(!fpair) { 
return false; }
 
  215     G4cout << 
" M= " << mass << 
" M1= " << mass1 << 
"  M2= " << mass2 
 
  220   G4double e1 = 0.5*(mass*mass - mass2*mass2 + mass1*mass1)/mass;
 
  224     p1 = std::sqrt((e1 - mass1)*(e1 + mass1));
 
  233   lv1.
boost(boostVector);
 
  241   lv0.
boost(boostVector);
 
  243   frag.push_back(frag1);
 
  244   frag.push_back(frag2);
 
  245   lvect.push_back(lv1);
 
  246   lvect.push_back(lv0);
 
G4double ComputeProbability(G4int Z, G4int A, G4int spin, G4double TotalE, const G4FermiFragment *f1, const G4FermiFragment *f2) const 
 
Hep3Vector boostVector() const 
 
const G4FermiFragment * GetFragment2() const 
 
virtual G4bool IsApplicable(G4int ZZ, G4int AA, G4double etot) const final
 
G4double GetExcitation() const 
 
G4ThreeVector G4RandomDirection()
 
virtual void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus) final
 
const G4FermiPair * GetPair(size_t idx) const 
 
#define G4MUTEX_INITIALIZER
 
const G4FermiChannels * ClosestChannels(G4int Z, G4int A, G4double mass) const 
 
const G4FermiFragment * GetFragment1() const 
 
const std::vector< const G4FermiPair * > & GetChannels() const 
 
G4GLOB_DLL std::ostream G4cout
 
G4double GetEnergyLimit() const 
 
virtual ~G4FermiBreakUpVI()
 
G4double GetCreationTime() const 
 
const G4LorentzVector & GetMomentum() const 
 
HepLorentzVector & boost(double, double, double)
 
std::vector< G4Fragment * > G4FragmentVector
 
const G4FermiDecayProbability * FermiDecayProbability() const 
 
G4double GetTolerance() const 
 
G4double GetGroundStateMass() const 
 
virtual void Initialise() final
 
void SetCreationTime(G4double time)
 
void set(double x, double y, double z, double t)
 
const G4FermiPair * SamplePair(G4double rand) const 
 
void SetSpin(G4double value)
 
G4double GetTotalEnergy(void) const 
 
size_t GetNumberOfChannels() const 
 
G4double GetExcitationEnergy() const 
 
CLHEP::HepLorentzVector G4LorentzVector
 
G4double GetExcitationEnergy(void) const