106 if(Z!=2)
throw G4HadronicException(__FILE__, __LINE__,
"G4NeutronHPContAngularPar: Unknown ion case 1");
118 if( angularRep == 1 )
151 if (
theAngular[j].GetValue(0) != 0.0 )
break;
165 running[j+1] = running[j] + delta;
183 if ( j == nDiscreteEnergies ) {
194 if ( j != nEnergies-1 ) {
199 throw G4HadronicException(__FILE__, __LINE__,
"G4NeutronHPContAngularPar: Unexpected non zero value of theAngular[nEnergies-1].GetValue(0)");
204 running[j+1] = running[j] + ( ( e_high - e_low ) * delta );
220 random *= (tot_prob_DIS + tot_prob_CON);
222 if ( random <= ( tot_prob_DIS / ( tot_prob_DIS + tot_prob_CON ) ) || nDiscreteEnergies ==
nEnergies )
228 if ( random < running[ j+1 ] )
252 if ( random < running[ j ] )
263 if ( it != nDiscreteEnergies )
277 if ( it == nDiscreteEnergies ) itt = it+1;
331 running[i]=running[i-1];
344 if ( nEnergies == 1 || running[nEnergies-1] == 0 )
352 if ( nEnergies == 1 ) it = 0;
355 if ( running[nEnergies-1] != 0 )
360 if ( random < running [ i ] / running [ nEnergies-1 ] )
break;
365 if ( running [ nEnergies-1 ] == 0 ) it = 0;
389 running[it-1]/running[nEnergies-1],
390 running[it]/running[nEnergies-1],
408 G4double x1 = running[it-1]/running[nEnergies-1];
409 G4double x2 = running[it]/running[nEnergies-1];
433 else if(angularRep==2)
442 if(j!=0) running[j]=running[j-1];
453 if ( nEnergies == 1 )
465 if(randkal<running[j]/running[nEnergies-1])
break;
471 x = randkal*running[nEnergies-1];
484 fsEnergy, y1, y2, cLow,cHigh);
498 G4int residualA = targetA+1-
A;
499 G4int residualZ = targetZ-Z;
504 incidentEnergy, incidentMass,
505 productEnergy, productMass,
506 residualMass, residualA, residualZ,
507 targetMass, targetA, targetZ);
508 cosTh = theKallbach.
Sample(anEnergy);
510 else if(angularRep>10&&angularRep<16)
518 if(i!=0) running[i]=running[i-1];
528 if ( nEnergies == 1 )
534 if ( nEnergies == 1 ) it = 0;
539 if(random<running[i]/running[nEnergies-1])
break;
555 aMan.
Init(angularRep-10, nAngularParameters-1);
557 cosTh = theStore.
Sample();
573 running[it-1]/running[nEnergies-1],
574 running[it]/running[nEnergies-1],
579 cosTh = theStore.
Sample();
584 G4double x1 = running[it-1]/running[nEnergies-1];
585 G4double x2 = running[it]/running[nEnergies-1];
623 x = theBuff1.
GetX(i);
624 y1 = theBuff1.
GetY(i);
625 y2 = theBuff2.
GetY(i);
632 cosTh = theStore.
Sample();
638 throw G4HadronicException(__FILE__, __LINE__,
"G4NeutronHPContAngularPar::Sample: Unknown angular representation");
645 G4ThreeVector tempVector(mtot*sinth*std::cos(phi), mtot*sinth*std::sin(phi), mtot*std::cos(theta) );
G4double GetY(G4double x)
G4int GetVectorLength() const
void SetInterpolationManager(const G4InterpolationManager &aManager)
G4double SampleMax(G4double energy)
G4double GetTotalMomentum() const
CLHEP::Hep3Vector G4ThreeVector
void SetLabel(G4double aLabel)
G4ReactionProduct * theTarget
void Init(G4int aScheme, G4int aRange)
void SetKineticEnergy(const G4double en)
void Init(G4int i, G4double e, G4int n)
void SetMomentum(const G4double x, const G4double y, const G4double z)
void SetCoeff(G4int i, G4int l, G4double coeff)
G4double GetX(G4int i) const
G4NeutronHPInterpolator theInt
G4double Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
void SetY(G4int i, G4double x)
G4double GetWeightedBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
G4ReactionProduct * Sample(G4double anEnergy, G4double massCode, G4double mass, G4int angularRep, G4int interpol)
G4double currentMeanEnergy
G4InterpolationManager theManager
G4InterpolationScheme GetScheme(G4int index) const
G4double GetBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
static G4Triton * Triton()
static G4Proton * Proton()
void SetX(G4int i, G4double e)
static G4Neutron * Neutron()
static const G4double A[nN]
static G4Deuteron * Deuteron()
static G4IonTable * GetIonTable()
G4double Sample(G4double anEnergy)
void Init(std::istream &aDataFile, G4int nPar, G4double unit=1.)
static G4Positron * Positron()
G4double GetPDGMass() const
static G4double GetBindingEnergy(const G4int A, const G4int Z)
void Init(std::istream &aDataFile)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4NeutronHPList * theAngular
void SetManager(G4InterpolationManager &aManager)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
void SetDefinition(G4ParticleDefinition *aParticleDefinition)
G4double GetValue(G4int i)
G4InterpolationScheme GetInverseScheme(G4int index)
static G4Electron * Electron()
G4double remaining_energy