62 for(
G4int ii=0; ii<nCosTh[i]; ii++)
107 throw G4HadronicException(__FILE__, __LINE__,
"G4NeutronHPLabAngularEnergy: Unknown ion case 2");
123 if(it==0)
G4cout <<
"080808 Something unexpected is happen in G4NeutronHPLabAngularEnergy " <<
G4endl;
127 for(i=0;i<nCosTh[it]; i++)
129 if(i!=0) running[i] = running[i-1];
134 for(i=0;i<nCosTh[it]; i++)
137 if(random<running[i])
break;
186 theStore.
Merge(&theBuff1, &theBuff2);
187 secEnergy = theStore.
Sample();
194 G4double x, x1, x2, y1, y2, y, tmp, E;
198 for(i=0;i<
nCosTh[it-1]; i++)
200 if(i!=0) run1.
SetY(i, run1.
GetY(i-1));
206 for(i=0;i<nCosTh[it]; i++)
208 if(i!=0) run2.
SetY(i, run2.
GetY(i-1));
237 theThVec.
Merge(&thBuff1 ,&thBuff2);
244 if(random<theThVec.
GetY(i)-theThVec.
GetY(0))
break;
250 xx1 = theThVec.
GetY(ith-1)-theThVec.
GetY(0);
251 xx2 = theThVec.
GetY(ith)-theThVec.
GetY(0);
252 yy1 = theThVec.
GetX(ith-1);
253 yy2 = theThVec.
GetX(ith);
255 xx, xx1,xx2,yy1,yy2);
260 for(i=0; i<nCosTh[it-1]; i++)
263 if(cosTh<
theData[it-1][i].GetLabel())
break;
290 theStore1.
Merge(&theBuff1a, &theBuff2a);
294 for(i=0; i<nCosTh[it]; i++)
297 if(cosTh<
theData[it][i2].GetLabel())
break;
327 theStore2.
Merge(&theBuff1b, &theBuff2b);
337 E = theStore1.
GetX(i);
338 y1 = theStore1.
GetY(i);
339 y2 = theStore2.
GetY(E);
347 E = theStore2.
GetX(i);
348 y1 = theStore1.
GetY(E);
349 y2 = theStore2.
GetY(i);
354 theOne.
Merge(&theOne1, &theOne2);
356 secEnergy = theOne.
Sample();
368 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
void SetLabel(G4double aLabel)
G4double GetY(G4double x)
G4int GetVectorLength() const
G4double currentMeanEnergy
void SetInterpolationManager(const G4InterpolationManager &aManager)
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 Merge(G4NeutronHPVector *active, G4NeutronHPVector *passive)
void Init(std::istream &aDataFile, G4int total, G4double ux=1., G4double uy=1.)
G4double GetX(G4int i) const
void SetData(G4int i, G4double x, G4double y)
G4InterpolationManager * theSecondManager
G4double Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetY(G4int i, G4double x)
G4GLOB_DLL std::ostream G4cout
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
const G4InterpolationManager & GetInterpolationManager() const
G4InterpolationScheme GetScheme(G4int index) const
G4NeutronHPInterpolator theInt
void Init(std::istream &aDataFile)
static G4Triton * Triton()
static G4Proton * Proton()
void SetX(G4int i, G4double e)
static G4Neutron * Neutron()
static const G4double A[nN]
static G4Deuteron * Deuteron()
G4InterpolationManager theManager
static G4Positron * Positron()
G4NeutronHPVector ** theData
static G4Electron * Electron()
G4double Lin(G4double x, G4double x1, G4double x2, G4double y1, G4double y2)