80 throw G4HadronicException(__FILE__, __LINE__,
"G4ParticleHPNBodyPhaseSpace: Unknown ion case 2");
96 else if(theTotalCount==4)
100 else if(theTotalCount==5)
106 throw G4HadronicException(__FILE__, __LINE__,
"NeutronHP Phase-space distribution cannot cope with this number of particles");
109 G4double rand0 = Prob(max, maxE, theTotalCount);
113 G4int icounter_max=1024;
117 if ( icounter > icounter_max ) {
118 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
123 testit = Prob(energy, maxE, theTotalCount);
125 while(rand > testit);
134 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
137 result->
Lorentz(*result, -1.*aCMS);
G4GLOB_DLL std::ostream G4cout
static G4Deuteron * Deuteron()
static G4Electron * Electron()
static G4Neutron * Neutron()
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
static G4Positron * Positron()
static G4Proton * Proton()
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4double GetTotalMomentum() const
void Lorentz(const G4ReactionProduct &p1, const G4ReactionProduct &p2)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetKineticEnergy(const G4double en)
static G4Triton * Triton()
G4ReactionProduct * GetProjectileRP()
G4ReactionProduct * GetTarget()