39 #ifndef G4FermiPhaseSpaceDecay_hh
40 #define G4FermiPhaseSpaceDecay_hh 1
43 #include <CLHEP/Units/PhysicalConstants.h>
57 inline std::vector<G4LorentzVector*> *
68 std::vector<G4LorentzVector*> *
71 std::vector<G4LorentzVector*> *
74 std::vector<G4LorentzVector*> *
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); }
98 Decay(
G4double parent_mass_parameter,
const std::vector<G4double>& fragment_masses)
const
114 F = std::sqrt(
g4pow->
powN(chi,N)*(1-chi));
125 G4double SinTheta = std::sqrt((1. - CosTheta)*(1. + CosTheta));
128 Magnitude*std::sin(Phi)*SinTheta,
const G4FermiPhaseSpaceDecay & operator=(const G4FermiPhaseSpaceDecay &)
std::vector< G4LorentzVector * > * NBodyDecay(G4double, const std::vector< G4double > &) const
G4double powN(G4double x, G4int n) const
static const G4double * P1[nN]
CLHEP::Hep3Vector G4ThreeVector
std::vector< G4LorentzVector * > * TwoBodyDecay(G4double, const std::vector< G4double > &) const
G4bool operator!=(const G4FermiPhaseSpaceDecay &)
std::vector< G4LorentzVector * > * Decay(const G4double, const std::vector< G4double > &) const
G4double PtwoBody(G4double E, G4double P1, G4double P2) const
void DumpProblem(G4double E, G4double P1, G4double P2, G4double P) const
G4double BetaKopylov(G4int) const
G4bool operator==(const G4FermiPhaseSpaceDecay &)
~G4FermiPhaseSpaceDecay()
G4ThreeVector IsotropicVector(const G4double Magnitude=1.0) const
static const G4double * P2[nN]
std::vector< G4LorentzVector * > * KopylovNBodyDecay(G4double, const std::vector< G4double > &) const