34 #ifndef G4ParticleHPVector_h 
   35 #define G4ParticleHPVector_h 1 
   79     for(i=0; i<nEntries; i++)
 
   81       theData[i].
SetY(theData[i].
GetY()*factor);
 
   85       theIntegral[i] *= factor;
 
  100     if(y>maxValue) maxValue=y;
 
  116     if(x>maxValue) maxValue=
x;
 
  122     if(x>maxValue) maxValue=
x;
 
  131     return theData[i].
GetX();
 
  139     for(i=0 ; i<nEntries; i++)
 
  160     for(i=min ; i<nEntries; i++)
 
  162       if(theData[i].
GetX()>e) 
break;
 
  177     if(e<theData[nEntries-1].
GetX()) 
 
  180       if( (theData[high].
GetX()-theData[low].
GetX())/theData[high].
GetX() < 0.000001)
 
  182         y = theData[low].
GetY();
 
  187                                theData[low].
GetX(), theData[high].
GetX(),
 
  188                    theData[low].
GetY(), theData[high].
GetY());
 
  193       y=theData[nEntries-1].
GetY();
 
  205     return theData[i].
GetY(); 
 
  212     return theData[i].
GetY(); 
 
  218     theManager.
Init(aDataFile);
 
  232         theHash.
SetData(nEntries-1, x, y);
 
  241     if(theData!=0) 
delete [] theData;
 
  245     theManager.
Init(aDataFile);
 
  246     Init(aDataFile, total, ux, uy);
 
  268     delete[] theIntegral;
 
  276     G4int s_tmp = 0, n=0, m_tmp=0;
 
  293         if ( !( xa == 0 ) && std::abs(std::abs(xp-xa)/xa)<0.001 ) p++;
 
  330       result = theData[0].
GetX();
 
  352       y1 = theData[i-1].
GetX();
 
  353       x1 = theIntegral[i-1];
 
  354       y2 = theData[i].
GetX();
 
  356       if(std::abs((y2-y1)/y2)<0.0000001) 
 
  358     y1 = theData[i-2].
GetX();
 
  359     x1 = theIntegral[i-2];
 
  361       result = theLin.
Lin(rand, x1, x2, y1, y2);
 
  376     if(theIntegral!=0) 
return;
 
  377     theIntegral = 
new G4double[nEntries];
 
  389       x1 = theData[i].
GetX();
 
  390       x0 = theData[i-1].
GetX();
 
  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;}
 
  414       theIntegral[i] = sum;
 
  419       theIntegral[i]/=
total;
 
  434       if(std::abs((theData[i].
GetX()-theData[i-1].
GetX())/theData[i].
GetX())>0.0000001)
 
  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");
 
  480     return totalIntegral; 
 
  485     theManager = aManager;
 
  513     for(
G4int i=1; i<nEntries; i++)
 
  516                            theData[i-1].
GetX(), theData[i].
GetX(),
 
  517                            theData[i-1].
GetY(), theData[i].
GetY());
 
  519                            theData[i-1].
GetX(), theData[i].
GetX(),
 
  520                            theData[i-1].
GetY(), theData[i].
GetY());
 
  522     result = weighted / running;  
 
  576   std::vector<G4double> theBlocked;
 
  577   std::vector<G4double> theBuffered;
 
G4double G4ParticleHPJENDLHEData::G4double result
 
void SetData(G4double e, G4double x)
 
G4double GetEnergy(G4int i) const 
 
G4double Get15percentBorder()
 
static G4Pow * GetInstance()
 
G4double powA(G4double A, G4double y) const 
 
G4int GetVectorLength() const 
 
std::vector< G4double > GetBlocked()
 
G4double Lin(G4double x, G4double x1, G4double x2, G4double y1, G4double y2)
 
void SetEnergy(G4int i, G4double e)
 
G4double GetXsec(G4double e, G4int min)
 
std::vector< ExP01TrackerHit * > a
 
void Init(G4int aScheme, G4int aRange)
 
void SetData(G4int i, G4double x, G4double y)
 
void InitInterpolation(std::istream &aDataFile)
 
void SetInterpolationManager(const G4InterpolationManager &aManager)
 
G4ParticleHPVector & operator=(const G4ParticleHPVector &right)
 
G4double GetXsec(G4int i)
 
void SetData(G4int index, G4double x, G4double y)
 
void SetY(G4int i, G4double x)
 
void AppendScheme(G4int aPoint, const G4InterpolationScheme &aScheme)
 
void Init(std::istream &aDataFile, G4int total, G4double ux=1., G4double uy=1.)
 
G4InterpolationScheme GetScheme(G4int index) const 
 
void Times(G4double factor)
 
G4double GetY(G4int i) const 
 
void Merge(G4ParticleHPVector *active, G4ParticleHPVector *passive)
 
friend G4ParticleHPVector & operator+(G4ParticleHPVector &left, G4ParticleHPVector &right)
 
G4double GetX(G4int i) const 
 
void SetPoint(G4int i, const G4ParticleHPDataPoint &it)
 
G4double GetY(G4double x)
 
void IntegrateAndNormalise()
 
G4double GetWeightedBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
 
G4double Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const 
 
void Init(std::istream &aDataFile, G4double ux=1., G4double uy=1.)
 
G4double G4Log(G4double x)
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
std::vector< G4double > GetBuffered()
 
G4double total(Particle const *const p1, Particle const *const p2)
 
void SetVerbose(G4int ff)
 
T min(const T t1, const T t2)
brief Return the smallest of the two arguments 
 
const G4InterpolationManager & GetInterpolationManager() const 
 
void SetXsec(G4int i, G4double x)
 
G4double GetBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
 
G4InterpolationScheme GetScheme(G4int anIndex)
 
const G4ParticleHPDataPoint & GetPoint(G4int i) const 
 
void SetX(G4int i, G4double e)
 
void SetScheme(G4int aPoint, const G4InterpolationScheme &aScheme)
 
void SetLabel(G4double aLabel)
 
void ThinOut(G4double precision)
 
G4double Get50percentBorder()
 
void SetInterpolationManager(G4InterpolationManager &aMan)