44   Coef = ConstCoeff = 0.0;
 
   47   NormalizedWeights.resize(nmax,0.0);
 
   59   if(thePhaseSpace != 
nullptr) { 
return; }
 
   76 G4double G4FermiBreakUp::CoulombBarrier(
 
   77   const std::vector<const G4VFermiFragment*>* conf)
 
   83   size_t nn = conf->size();
 
   84   for (
size_t i=0; i<
nn; ++i) {
 
   85     G4int z = (*conf)[i]->GetZ();
 
   86     G4int a = (*conf)[i]->GetA();
 
   91   CoulombEnergy -= SumZ*SumZ/g4calc->
Z13(SumA);
 
   92   return -Coef * CoulombEnergy;
 
  101   const std::vector<const G4VFermiFragment*>* conf = 
 
  107     theResult->push_back(theNucleus);
 
  111   size_t nn = conf->size();
 
  115     theResult->push_back(theNucleus);
 
  123     (*conf)[0]->FillFragment(theResult, fourMomentum);
 
  129     for(
size_t i=0; i<
nn; ++i) {
 
  130       massRes.push_back( (*conf)[i]->GetTotalEnergy() );
 
  132     std::vector<G4LorentzVector*>* mom = thePhaseSpace->
Decay(M, massRes);
 
  138     for (
size_t j=0; j<
nn; ++j) {    
 
  139       (*mom)[j]->boost(boostVector); 
 
  140       (*conf)[j]->FillFragment(theResult, *((*mom)[j]));
 
  148 const std::vector<const G4VFermiFragment*>* 
 
  151   const std::vector<const G4VFermiFragment*>* res = 0;
 
  153   const std::vector<const G4FermiConfiguration*>* conflist = 
 
  155   if(!conflist) { 
return res; }
 
  156   size_t nn = conflist->size();
 
  162     NormalizedWeights.resize(nmax,0.0);
 
  165       for(
size_t i=0; i<
nn; ++i) { 
 
  166     prob += DecayProbability(A, mass, (*conflist)[i]);
 
  167     NormalizedWeights[i] = prob;
 
  170       for(idx=0; idx<
nn; ++idx) { 
 
  171     if(NormalizedWeights[idx] >= prob) { 
break; }
 
  175     res = (*conflist)[idx]->GetFragmentList();
 
  193   const std::vector<const G4VFermiFragment*>* flist = 
 
  197   size_t K = flist->size();
 
  198   if(K > frag.size()) { frag.resize(K, 0); }
 
  200   for (
size_t i=0; i<K; ++i) {
 
  201     frag[i] = (*flist)[i];
 
  203       ((*flist)[i]->GetFragmentMass() + (*flist)[i]->GetExcitationEnergy());
 
  207   KineticEnergy -= CoulombBarrier(flist);
 
  208   if (KineticEnergy <= 0.0) { 
return 0.0; }
 
  217   for (
size_t i=0; i<K; ++i) {
 
  218     G4double mass = (*flist)[i]->GetFragmentMass();
 
  221     S_n *= (*flist)[i]->GetPolarization();
 
  224   G4double MassFactor = ProdMass/SumMass;
 
  225   MassFactor *= std::sqrt(MassFactor);  
 
  238     Energ = g4calc->
powN(Energ, N);
 
  249     Energ = g4calc->
powN(Energ, n1)*std::sqrt(Energ);
 
  255   for(
size_t i=0; i<K-1; ++i) {
 
  258       for(
size_t j=i+1; j<K; ++j) {
 
  259         if(frag[i] == frag[j]) {
 
  264       if(1 < nf) { G_n *= g4calc->
factorial(nf); }
 
  268   G4double Weight = Coeff*MassFactor*S_n*Energ/(G_n*Gamma*KineticEnergy);
 
static G4Pow * GetInstance()
 
Hep3Vector boostVector() const 
 
G4double powN(G4double x, G4int n) const 
 
std::vector< ExP01TrackerHit * > a
 
static constexpr double twopi
 
G4bool IsApplicable(G4int Z, G4int A, G4double mass) const 
 
G4double Z13(G4int Z) const 
 
double A(double temperature)
 
const G4LorentzVector & GetMomentum() const 
 
std::vector< G4Fragment * > G4FragmentVector
 
G4double factorial(G4int Z) const 
 
virtual ~G4FermiBreakUp()
 
virtual G4bool IsApplicable(G4int Z, G4int A, G4double mass) const final
 
std::vector< G4LorentzVector * > * Decay(G4double parent_mass, const std::vector< G4double > &fragment_masses) const 
 
virtual void BreakFragment(G4FragmentVector *, G4Fragment *theNucleus) final
 
virtual void Initialise() final
 
static constexpr double fermi
 
static constexpr double elm_coupling
 
static constexpr double pi
 
static G4FermiFragmentsPool * Instance()
 
const std::vector< const G4VFermiFragment * > * GetFragmentList() const 
 
const std::vector< const G4FermiConfiguration * > * GetConfigurationList(G4int Z, G4int A, G4double mass) const 
 
static constexpr double pi
 
const G4FermiPhaseSpaceDecay * GetFermiPhaseSpaceDecay() const