45 const G4double G4FermiConfigurationList::Kappa = 6.0;
 
   46 const G4double G4FermiConfigurationList::r0 = 1.3*CLHEP::fermi;
 
   52   Coef = 0.6*(CLHEP::elm_coupling/r0)/g4pow->
Z13(1+
G4int(Kappa));
 
   53   ConstCoeff = g4pow->
powN(r0/
hbarc,3)*Kappa*std::sqrt(2.0/
pi)/3.0;
 
   57   NormalizedWeights.resize(nmax,0.0);
 
   64 G4FermiConfigurationList::CoulombBarrier(
 
   65   const std::vector<const G4VFermiFragment*>& conf)
 
   71   size_t nn = conf.size();
 
   72   for (
size_t i=0; i<
nn; ++i) {
 
   79   CoulombEnergy -= SumZ*SumZ/g4pow->
Z13(SumA);
 
   80   return -Coef * CoulombEnergy;
 
   84 G4FermiConfigurationList::DecayProbability(
G4int A, 
G4double TotalE, 
 
   95   std::set<G4int>      combSet;
 
   96   std::multiset<G4int> combmSet;
 
   98   const std::vector<const G4VFermiFragment*> flist = 
 
  102   G4int K = flist.size();
 
  104   for (
G4int i=0; i<K; ++i) {
 
  105     G4int a = flist[i]->GetA();
 
  108     G4double mass = flist[i]->GetFragmentMass();
 
  112     S_n *= flist[i]->GetPolarization();
 
  113     KineticEnergy -= mass + flist[i]->GetExcitationEnergy();
 
  117   KineticEnergy -= CoulombBarrier(flist);
 
  118   if (KineticEnergy <= 0.0) { 
return 0.0; }
 
  120   G4double MassFactor = ProdMass/SumMass;
 
  121   MassFactor *= std::sqrt(MassFactor);  
 
  156     Gamma *= std::sqrt(
pi)/g4pow->
powZ(2,n);
 
  163   for (std::set<G4int>::iterator itr = combSet.begin(); 
 
  164        itr != combSet.end(); ++itr)
 
  166       for (
G4int ni = combmSet.count(*itr); ni > 1; ni--) { G_n *= ni; }
 
  169   G4double Weight = Coeff * MassFactor * (S_n / G_n) / Gamma;
 
  170   Weight *=  std::sqrt(g4pow->
powN(KineticEnergy,3*(K-1)))/KineticEnergy;
 
  180   const std::vector<const G4VFermiFragment*>* conf = 
 
  186   size_t nn = conf->size();
 
  188     theResult->push_back(
new G4Fragment(theNucleus));
 
  194   std::vector<G4double> mr;
 
  196   for(
size_t i=0; i<
nn; ++i) {
 
  197     mr.push_back( (*conf)[i]->GetTotalEnergy() );
 
  199   std::vector<G4LorentzVector*>* mom = thePhaseSpace.
Decay(M,mr);
 
  205   size_t nmom = mom->size();  
 
  209     for (
size_t j=0; j<nmom; ++j) {
 
  213       FourMomentum->
boost(boostVector);
 
  217       size_t nfrag = fragment->size();
 
  218       for (
size_t k=0; k<nfrag; ++k) { theResult->push_back((*fragment)[k]); }
 
  229 const std::vector<const G4VFermiFragment*>* 
 
  232   std::vector<const G4VFermiFragment*>* res = 
 
  233     new std::vector<const G4VFermiFragment*>;  
 
  234   const std::vector<G4FermiConfiguration*>* conflist = 
 
  236   if(!conflist) { 
return res; }
 
  237   size_t nn = conflist->size();
 
  243     NormalizedWeights.resize(nmax,0.0);
 
  246       for(
size_t i=0; i<
nn; ++i) { 
 
  247     prob += DecayProbability(A, mass, (*conflist)[i]);
 
  248     NormalizedWeights[i] = prob;
 
  251       for(idx=0; idx<
nn; ++idx) { 
 
  252     if(NormalizedWeights[idx] >= prob) { 
break; }
 
  255     const std::vector<const G4VFermiFragment*> flist = 
 
  256       (*conflist)[idx]->GetFragmentList();
 
  257     size_t nf = flist.size();
 
  258     for(
size_t i=0; i<nf; ++i) { res->push_back(flist[i]); }