46           const std::vector<G4double>& masses,
 
   47           std::vector<G4LorentzVector>& finalState) {
 
   52   size_t N = masses.size();
 
   55   G4double mtot = std::accumulate(masses.begin(), masses.end(), 0.0);
 
   64   for (
size_t k=N-1; k>0; --k) {
 
   75     PFragCM.
setVectM(RandVector,masses[k]);
 
   76     PRestCM.
setVectM(-RandVector,RestMass);
 
   80     PFragCM.
boost(BoostV);
 
   81     PRestCM.
boost(BoostV);
 
   84     finalState[k] = PFragCM;
 
   87   finalState[0] = PRestLab;
 
   98   G4double Fmax = std::sqrt(g4pow->
powN(xN/(xN+1.),N)/(xN+1.)); 
 
  101   const G4int maxNumberOfLoops = 10000;
 
  102   G4int loopCounter = 0;
 
  105     F = std::sqrt(g4pow->
powN(chi,N)*(1.-chi));      
 
  106   } 
while ( ( Fmax*
G4UniformRand() > F ) && ++loopCounter < maxNumberOfLoops );   
 
  107   if ( loopCounter >= maxNumberOfLoops ) {
 
  109     ed << 
" Failed sampling after maxNumberOfLoops attempts : forced exit" << 
G4endl;
 
static G4Pow * GetInstance()
 
Hep3Vector boostVector() const 
 
G4double powN(G4double x, G4int n) const 
 
std::ostringstream G4ExceptionDescription
 
G4int GetVerboseLevel() const 
 
void setVectM(const Hep3Vector &spatial, double mass)
 
G4GLOB_DLL std::ostream G4cout
 
virtual void GenerateMultiBody(G4double initialMass, const std::vector< G4double > &masses, std::vector< G4LorentzVector > &finalState)
 
HepLorentzVector & boost(double, double, double)
 
G4double BetaKopylov(G4int K) const 
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
const G4String & GetName() const 
 
G4double TwoBodyMomentum(G4double M0, G4double M1, G4double M2) const 
 
G4ThreeVector UniformVector(G4double mag=1.) const