64 for(
G4int ii=0; ii<nCosTh[i]; ii++)
109 throw G4HadronicException(__FILE__, __LINE__,
"G4ParticleHPLabAngularEnergy: Unknown ion case 2");
125 if(it==0)
G4cout <<
"080808 Something unexpected is happen in G4ParticleHPLabAngularEnergy " <<
G4endl;
129 for(i=0;i<nCosTh[it]; i++)
131 if(i!=0) running[i] = running[i-1];
136 for(i=0;i<nCosTh[it]; i++)
139 if(random<running[i])
break;
188 theStore.
Merge(&theBuff1, &theBuff2);
189 secEnergy = theStore.
Sample();
196 G4double x, x1, x2, y1, y2, y, tmp, E;
200 for(i=0;i<
nCosTh[it-1]; i++)
202 if(i!=0) run1.
SetY(i, run1.
GetY(i-1));
208 for(i=0;i<nCosTh[it]; i++)
210 if(i!=0) run2.
SetY(i, run2.
GetY(i-1));
239 theThVec.
Merge(&thBuff1 ,&thBuff2);
246 if(random<theThVec.
GetY(i)-theThVec.
GetY(0))
break;
252 xx1 = theThVec.
GetY(ith-1)-theThVec.
GetY(0);
253 xx2 = theThVec.
GetY(ith)-theThVec.
GetY(0);
254 yy1 = theThVec.
GetX(ith-1);
255 yy2 = theThVec.
GetX(ith);
257 xx, xx1,xx2,yy1,yy2);
262 for(i=0; i<nCosTh[it-1]; i++)
265 if(cosTh<
theData[it-1][i].GetLabel())
break;
292 theStore1.
Merge(&theBuff1a, &theBuff2a);
296 for(i=0; i<nCosTh[it]; i++)
299 if(cosTh<
theData[it][i2].GetLabel())
break;
329 theStore2.
Merge(&theBuff1b, &theBuff2b);
339 E = theStore1.
GetX(i);
340 y1 = theStore1.
GetY(i);
341 y2 = theStore2.
GetY(E);
349 E = theStore2.
GetX(i);
350 y1 = theStore1.
GetY(E);
351 y2 = theStore2.
GetY(i);
356 theOne.
Merge(&theOne1, &theOne2);
358 secEnergy = theOne.
Sample();
370 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
G4int GetVectorLength() const
G4double GetTotalMomentum() const
G4double Lin(G4double x, G4double x1, G4double x2, G4double y1, G4double y2)
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 currentMeanEnergy
void SetInterpolationManager(const G4InterpolationManager &aManager)
G4InterpolationManager theManager
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetY(G4int i, G4double x)
void Init(std::istream &aDataFile, G4int total, G4double ux=1., G4double uy=1.)
G4GLOB_DLL std::ostream G4cout
G4InterpolationManager * theSecondManager
G4InterpolationScheme GetScheme(G4int index) const
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
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass)
static G4Positron * Positron()
const G4InterpolationManager & GetInterpolationManager() const
static G4Electron * Electron()
G4ParticleHPVector ** theData
void SetX(G4int i, G4double e)
void SetLabel(G4double aLabel)
void Init(std::istream &aDataFile)
G4ParticleHPInterpolator theInt