78 throw G4HadronicException(__FILE__, __LINE__,
"G4NeutronHPNBodyPhaseSpace: Unknown ion case 2");
91 else if(theTotalCount==4)
95 else if(theTotalCount==5)
101 throw G4HadronicException(__FILE__, __LINE__,
"NeutronHP Phase-space distribution cannot cope with this number of particles");
104 G4double rand0 = Prob(max, maxE, theTotalCount);
111 testit = Prob(energy, maxE, theTotalCount);
113 while(rand > testit);
122 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
125 result->
Lorentz(*result, -1.*aCMS);
G4ReactionProduct * GetNeutron()
G4double GetTotalMomentum() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
void SetKineticEnergy(const G4double en)
void SetMomentum(const G4double x, const G4double y, const G4double z)
double precision function energy(A, Z)
static G4Triton * Triton()
G4ReactionProduct * GetTarget()
static G4Proton * Proton()
static G4Neutron * Neutron()
static G4Deuteron * Deuteron()
static G4Positron * Positron()
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
void SetDefinition(G4ParticleDefinition *aParticleDefinition)
static G4Electron * Electron()