34#ifndef G4ParticleHPVector_h
35#define G4ParticleHPVector_h 1
276 G4int s_tmp = 0,
n=0, m_tmp=0;
278 G4int a = s_tmp, p =
n, t;
293 if ( !( xa == 0 ) && std::abs(std::abs(xp-xa)/xa)<0.001 ) p++;
356 if(std::abs((y2-y1)/y2)<0.0000001)
361 result =
theLin.
Lin(rand, x1, x2, y1, y2);
391 if (std::abs(x1-x0) > std::abs(x1*0.0000001) )
405 if(!_finite(integ)){integ=0;}
406#elif defined __IBMCPP__
407 if(isinf(integ)||isnan(integ)){integ=0;}
409 if(std::isinf(integ)||std::isnan(integ)){integ=0;}
443 sum+= 0.5*(y2+y1)*(x2-x1);
449 sum+= (a-b)*(x2-x1) + b*(x2*
G4Log(x2)-x1*
G4Log(x1));
469 throw G4HadronicException(__FILE__, __LINE__,
"Unknown interpolation scheme in G4ParticleHPVector::Integrate");
522 result = weighted / running;
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
void AppendScheme(G4int aPoint, const G4InterpolationScheme &aScheme)
void Init(G4int aScheme, G4int aRange)
G4InterpolationScheme GetScheme(G4int index) const
void SetData(G4double e, G4double x)
void SetData(G4int index, G4double x, G4double y)
G4double Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double GetWeightedBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
G4double Lin(G4double x, G4double x1, G4double x2, G4double y1, G4double y2)
G4double GetBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
G4ParticleHPInterpolator theInt
G4InterpolationScheme GetScheme(G4int anIndex)
void SetY(G4int i, G4double x)
G4ParticleHPVector & operator=(const G4ParticleHPVector &right)
const G4ParticleHPDataPoint & GetPoint(G4int i) const
void SetX(G4int i, G4double e)
void SetScheme(G4int aPoint, const G4InterpolationScheme &aScheme)
G4bool IsBlocked(G4double aX)
void SetData(G4int i, G4double x, G4double y)
void Times(G4double factor)
G4ParticleHPDataPoint * theData
friend G4ParticleHPVector & operator+(G4ParticleHPVector &left, G4ParticleHPVector &right)
G4double Get50percentBorder()
void IntegrateAndNormalise()
G4double GetXsec(G4int i)
const G4InterpolationManager & GetInterpolationManager() const
std::vector< G4double > GetBuffered()
G4double Get15percentBorder()
G4double the50percentBorderCash
G4double GetXsec(G4double e, G4int min)
void ThinOut(G4double precision)
G4double GetY(G4int i) const
G4double the15percentBorderCash
void SetXsec(G4int i, G4double x)
void SetLabel(G4double aLabel)
G4ParticleHPInterpolator theLin
void SetInterpolationManager(const G4InterpolationManager &aManager)
void Init(std::istream &aDataFile, G4double ux=1., G4double uy=1.)
G4double GetY(G4double x)
G4double GetEnergy(G4int i) const
G4double GetX(G4int i) const
void Merge(G4ParticleHPVector *active, G4ParticleHPVector *passive)
void SetEnergy(G4int i, G4double e)
void Init(std::istream &aDataFile, G4int total, G4double ux=1., G4double uy=1.)
std::vector< G4double > theBlocked
G4int GetVectorLength() const
std::vector< G4double > GetBlocked()
void SetPoint(G4int i, const G4ParticleHPDataPoint &it)
void SetVerbose(G4int ff)
G4InterpolationManager theManager
void InitInterpolation(std::istream &aDataFile)
void SetInterpolationManager(G4InterpolationManager &aMan)
std::vector< G4double > theBuffered
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
G4double total(Particle const *const p1, Particle const *const p2)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments