39 #ifndef G4FermiPhaseSpaceDecay_hh 
   40 #define G4FermiPhaseSpaceDecay_hh 1 
   58   inline std::vector<G4LorentzVector*>* 
 
   60     const std::vector<G4double>& fragment_masses) 
const;
 
   71   std::vector<G4LorentzVector*> * 
 
   72   KopylovNBodyDecay(
G4double, 
const std::vector<G4double>&) 
const;
 
   88   G4double P = (E+P1+
P2)*(E+P1-P2)*(E-P1+
P2)*(E-P1-P2)/(4.0*E*E);
 
   89   if (P>0.0) { res = std::sqrt(P); }
 
   90   else { DumpProblem(E,P1,P2,P); }
 
   94 inline std::vector<G4LorentzVector*>* 
 
   96                               const std::vector<G4double>& fragment_masses)
 const 
   98   return KopylovNBodyDecay(parent_mass, fragment_masses);
 
  102 G4FermiPhaseSpaceDecay::BetaKopylov(
G4int K, 
 
  109   G4double Fmax = std::sqrt(g4calc->
powN(xN/(xN + 1),N)/(xN + 1)); 
 
  112     chi = rndmEngine->
flat();
 
  113     F = std::sqrt(g4calc->
powN(chi,N)*(1-chi));      
 
  115    } 
while ( Fmax*rndmEngine->
flat() > F);  
 
  120 G4FermiPhaseSpaceDecay::IsotropicVector(
G4double Magnitude, 
 
  126   G4double SinTheta = std::sqrt((1. - CosTheta)*(1. + CosTheta));
 
  129                Magnitude*std::sin(Phi)*SinTheta,
 
G4double powN(G4double x, G4int n) const 
 
static const G4double * P1[nN]
 
~G4FermiPhaseSpaceDecay()
 
std::vector< G4LorentzVector * > * Decay(G4double parent_mass, const std::vector< G4double > &fragment_masses) const 
 
static const G4double * P2[nN]
 
static constexpr double twopi