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)
123 cosTh = theStore.
Sample();
125 else if(
theCoeff[it].GetRepresentation()==14)
140 cosTh = theStore.
Sample();
144 throw G4HadronicException(__FILE__, __LINE__,
"unknown representation type in Two-body scattering");
151 if(
theCoeff[it].GetRepresentation()==0)
164 else if(
theCoeff[it].GetRepresentation()==12)
206 mu = theBuff1.
GetX(i);
207 y1 = theBuff1.
GetY(i);
208 y2 = theBuff2.
GetY(mu);
214 mu = theBuff2.
GetX(i);
215 y1 = theBuff2.
GetY(i);
216 y2 = theBuff1.
GetY(mu);
220 theStore.
Merge(&theStore1, &theStore2);
221 cosTh = theStore.
Sample();
223 else if(
theCoeff[it].GetRepresentation()==14)
267 mu = theBuff1.
GetX(i);
268 y1 = theBuff1.
GetY(i);
269 y2 = theBuff2.
GetY(mu);
275 mu = theBuff2.
GetX(i);
276 y1 = theBuff2.
GetY(i);
277 y2 = theBuff1.
GetY(mu);
281 theStore.
Merge(&theStore1, &theStore2);
282 cosTh = theStore.
Sample();
286 throw G4HadronicException(__FILE__, __LINE__,
"Two neighbouring distributions with different interpolation");
294 throw G4HadronicException(__FILE__, __LINE__,
"unknown representation type in Two-body scattering, case 2");
310 G4double E1 = (A1+1)*(A1+1)/A1/A1*anEnergy;
318 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
G4int GetVectorLength() const
G4ParticleHPInterpolator theInt
G4double GetTotalMomentum() const
CLHEP::Hep3Vector G4ThreeVector
void Init(G4int aScheme, G4int aRange)
void SetKineticEnergy(const G4double en)
void SetMomentum(const G4double x, const G4double y, const G4double z)
void SetData(G4int i, G4double x, G4double y)
G4double SampleDiscreteTwoBody(G4double anEnergy)
void SetInterpolationManager(const G4InterpolationManager &aManager)
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetY(G4int i, G4double x)
G4GLOB_DLL std::ostream G4cout
G4InterpolationScheme GetScheme(G4int index) const
G4bool bCheckDiffCoeffRepr
static G4Triton * Triton()
void Merge(G4ParticleHPVector *active, G4ParticleHPVector *passive)
static G4Proton * Proton()
G4double GetX(G4int i) const
static G4Neutron * Neutron()
G4double GetY(G4double x)
static const G4double A[nN]
static G4Deuteron * Deuteron()
G4double Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4int GetRepresentation()
void SetManager(G4InterpolationManager &aManager)
static G4Positron * Positron()
G4ReactionProduct * GetProjectileRP()
void SetCoeff(G4int i, G4int l, G4double coeff)
G4InterpolationManager theManager
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
static G4Electron * Electron()
void SetX(G4int i, G4double e)
G4ReactionProduct * GetTarget()
G4ParticleHPLegendreTable * theCoeff