39 #ifndef G4FermiPhaseSpaceDecay_hh
40 #define G4FermiPhaseSpaceDecay_hh 1
57 inline std::vector<G4LorentzVector*> *
68 std::vector<G4LorentzVector*> *
69 TwoBodyDecay(
G4double,
const std::vector<G4double>&)
const;
71 std::vector<G4LorentzVector*> *
72 NBodyDecay(
G4double,
const std::vector<G4double>&)
const;
74 std::vector<G4LorentzVector*> *
75 KopylovNBodyDecay(
G4double,
const std::vector<G4double>&)
const;
91 G4double P = (E+P1+P2)*(E+P1-P2)*(E-P1+P2)*(E-P1-P2)/(4.0*E*E);
92 if (P>0.0) { res = std::sqrt(P); }
93 else { DumpProblem(E,P1,P2,P); }
98 Decay(
G4double parent_mass_parameter,
const std::vector<G4double>& fragment_masses)
const
100 return KopylovNBodyDecay(parent_mass_parameter,fragment_masses);
103 inline G4double G4FermiPhaseSpaceDecay::BetaKopylov(
G4int K)
const
110 G4double Fmax = std::sqrt(g4pow->
powN(xN/(xN + 1),N)/(xN + 1));
114 F = std::sqrt(g4pow->
powN(chi,N)*(1-chi));
120 G4FermiPhaseSpaceDecay::IsotropicVector(
G4double Magnitude)
const
125 G4double SinTheta = std::sqrt((1. - CosTheta)*(1. + CosTheta));
128 Magnitude*std::sin(Phi)*SinTheta,
G4double powN(G4double x, G4int n) const
std::vector< G4LorentzVector * > * Decay(const G4double, const std::vector< G4double > &) const
~G4FermiPhaseSpaceDecay()