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*> *
89 if (P>0.0) { res = std::sqrt(P); }
94 inline std::vector<G4LorentzVector*>*
96 const std::vector<G4double>& fragment_masses)
const 112 chi = rndmEngine->
flat();
113 F = std::sqrt(
g4pow->
powN(chi,N)*(1-chi));
115 }
while ( Fmax*rndmEngine->
flat() > F);
125 G4double CosTheta = 2.0*rndmEngine->flat() - 1.0;
126 G4double SinTheta = std::sqrt((1. - CosTheta)*(1. + CosTheta));
129 Magnitude*std::sin(Phi)*SinTheta,
G4double PtwoBody(G4double E, G4double P1, G4double P2) const
const G4FermiPhaseSpaceDecay & operator=(const G4FermiPhaseSpaceDecay &)
static const G4double * P1[nN]
G4double powN(G4double x, G4int n) const
std::vector< G4LorentzVector * > * KopylovNBodyDecay(G4double, const std::vector< G4double > &) const
G4bool operator!=(const G4FermiPhaseSpaceDecay &)
G4bool operator==(const G4FermiPhaseSpaceDecay &)
void DumpProblem(G4double E, G4double P1, G4double P2, G4double P) const
~G4FermiPhaseSpaceDecay()
G4double BetaKopylov(G4int, CLHEP::HepRandomEngine *) const
std::vector< G4LorentzVector * > * Decay(G4double parent_mass, const std::vector< G4double > &fragment_masses) const
G4ThreeVector IsotropicVector(G4double Magnitude, CLHEP::HepRandomEngine *) const
static const G4double * P2[nN]
static const double twopi