80 throw G4HadronicException(__FILE__, __LINE__,
"G4ParticleHPNBodyPhaseSpace: Unknown ion case 2");
93 else if(theTotalCount==4)
97 else if(theTotalCount==5)
103 throw G4HadronicException(__FILE__, __LINE__,
"NeutronHP Phase-space distribution cannot cope with this number of particles");
110 G4int icounter_max=1024;
114 if ( icounter > icounter_max ) {
115 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
120 testit = Prob(energy, maxE, theTotalCount);
122 while(rand > testit);
131 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
134 result->
Lorentz(*result, -1.*aCMS);
G4double G4ParticleHPJENDLHEData::G4double result
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)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
static constexpr double twopi
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
static G4Triton * Triton()
static G4Proton * Proton()
static G4Neutron * Neutron()
static G4Deuteron * Deuteron()
static G4Positron * Positron()
G4ReactionProduct * GetProjectileRP()
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4double energy(const ThreeVector &p, const G4double m)
static G4Electron * Electron()
G4ReactionProduct * GetTarget()