85 throw G4HadronicException(__FILE__, __LINE__,
"G4ParticleHPDiscreteTwoBody: Unknown ion case 2");
94 if(
theCoeff[i].GetEnergy()>anEnergy)
break;
96 if(it==0||it==nEnergy-1)
98 if(
theCoeff[it].GetRepresentation()==0)
108 else if(
theCoeff[it].GetRepresentation()==12)
122 cosTh = theStore.
Sample();
124 else if(
theCoeff[it].GetRepresentation()==14)
138 cosTh = theStore.
Sample();
142 throw G4HadronicException(__FILE__, __LINE__,
"unknown representation type in Two-body scattering");
149 if(
theCoeff[it].GetRepresentation()==0)
162 else if(
theCoeff[it].GetRepresentation()==12)
202 mu = theBuff1.
GetX(i);
203 y1 = theBuff1.
GetY(i);
204 y2 = theBuff2.
GetY(mu);
210 mu = theBuff2.
GetX(i);
211 y1 = theBuff2.
GetY(i);
212 y2 = theBuff1.
GetY(mu);
216 theStore.
Merge(&theStore1, &theStore2);
217 cosTh = theStore.
Sample();
219 else if(
theCoeff[it].GetRepresentation()==14)
261 mu = theBuff1.
GetX(i);
262 y1 = theBuff1.
GetY(i);
263 y2 = theBuff2.
GetY(mu);
269 mu = theBuff2.
GetX(i);
270 y1 = theBuff2.
GetY(i);
271 y2 = theBuff1.
GetY(mu);
275 theStore.
Merge(&theStore1, &theStore2);
276 cosTh = theStore.
Sample();
280 throw G4HadronicException(__FILE__, __LINE__,
"Two neighbouring distributions with different interpolation");
288 throw G4HadronicException(__FILE__, __LINE__,
"unknown representation type in Two-body scattering, case 2");
314 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
void SetInterpolationManager(const G4InterpolationManager &aManager)
Float_t y1[n_points_granero]
G4double Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
G4double GetX(G4int i) const
Float_t x1[n_points_granero]
void SetMomentum(const G4double x, const G4double y, const G4double z)
G4InterpolationManager theManager
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
void SetCoeff(G4int i, G4int l, G4double coeff)
static G4Proton * Proton()
G4InterpolationScheme GetScheme(G4int index) const
static G4Deuteron * Deuteron()
Float_t y2[n_points_geant4]
void SetKineticEnergy(const G4double en)
G4double GetY(G4double x)
G4ParticleHPInterpolator theInt
G4ReactionProduct * GetTarget()
void SetManager(G4InterpolationManager &aManager)
G4double SampleDiscreteTwoBody(G4double anEnergy)
G4bool bCheckDiffCoeffRepr
G4double GetTotalMomentum() const
double A(double temperature)
void Init(G4int aScheme, G4int aRange)
static G4Positron * Positron()
void SetData(G4int i, G4double x, G4double y)
static G4Electron * Electron()
G4double G4ParticleHPJENDLHEData::G4double result
G4int GetRepresentation()
void SetX(G4int i, G4double e)
static constexpr double twopi
void SetY(G4int i, G4double x)
static G4Triton * Triton()
static G4Neutron * Neutron()
G4ReactionProduct * GetProjectileRP()
G4GLOB_DLL std::ostream G4cout
G4int GetVectorLength() const
Float_t x2[n_points_geant4]
G4ParticleHPLegendreTable * theCoeff
void Merge(G4ParticleHPVector *active, G4ParticleHPVector *passive)