50 std::vector<G4LorentzVector*>*
52 const std::vector<G4double>& mr)
const 57 std::vector<G4LorentzVector*>*
P =
58 new std::vector<G4LorentzVector*>(
N, 0);
61 for(
size_t k=0; k<
N; ++k) { mtot += mr[k]; }
72 for (
size_t k = N-1; k>0; --k)
80 PFragMagCM =
PtwoBody(Mass,mr[k],RestMass);
86 PFragCM.
setE(std::sqrt(PFragMagCM*PFragMagCM + mr[k]*mr[k]));
89 PRestCM.
setE(std::sqrt(PFragMagCM*PFragMagCM + RestMass*RestMass));
94 PFragCM.
boost(BoostV);
95 PRestCM.
boost(BoostV);
112 G4cout <<
"G4FermiPhaseSpaceDecay: problem of decay of M(GeV)= " << E/
GeV 113 <<
" on M1(GeV)= " << P1/
GeV <<
" and M2(GeV)= " << P2/
GeV 114 <<
" P(MeV)= " << P/
MeV <<
" < 0" <<
G4endl;
static G4Pow * GetInstance()
G4double PtwoBody(G4double E, G4double P1, G4double P2) const
static const G4double * P1[nN]
std::vector< G4LorentzVector * > * KopylovNBodyDecay(G4double, const std::vector< G4double > &) const
G4GLOB_DLL std::ostream G4cout
HepLorentzVector & boost(double, double, double)
void DumpProblem(G4double E, G4double P1, G4double P2, G4double P) const
~G4FermiPhaseSpaceDecay()
G4double BetaKopylov(G4int, CLHEP::HepRandomEngine *) const
Hep3Vector boostVector() const
G4ThreeVector IsotropicVector(G4double Magnitude, CLHEP::HepRandomEngine *) const
static const G4double * P2[nN]
void setVect(const Hep3Vector &)
CLHEP::HepLorentzVector G4LorentzVector