32 #ifndef G4ParticleHPInterpolator_h
33 #define G4ParticleHPInterpolator_h 1
55 if(x2-x1==0)
return (y2+y1)/2.;
56 slope = (y2-y1)/(x2-x1);
93 G4int theScheme = aScheme;
115 result =
Random(x, x1, x2, y1, y2);
119 throw G4HadronicException(__FILE__, __LINE__,
"G4ParticleHPInterpolator::Carthesian Invalid InterpolationScheme");
130 G4int theScheme = aScheme;
150 result =
Random(x, x1, x2, y1, y2);
154 throw G4HadronicException(__FILE__, __LINE__,
"G4ParticleHPInterpolator::Carthesian Invalid InterpolationScheme");
172 if(x2-x1==0)
return (y2+y1)/2.;
173 slope = (y2-y1)/(x2-x1);
183 if(x==0) result = y1+y2/2.;
184 else if(x1==0) result = y1;
185 else if(x2==0) result = y2;
186 else result =
LinearLinear(std::log(x), std::log(x1), std::log(x2), y1, y2);
194 if(y1==0||y2==0) result = 0;
197 result =
LinearLinear(x, x1, x2, std::log(y1), std::log(y2));
198 result = std::exp(result);
207 if(x==0) result = y1+y2/2.;
208 else if(x1==0) result = y1;
209 else if(x2==0) result = y2;
210 if(y1==0||y2==0) result = 0;
213 result =
LinearLinear(std::log(x), std::log(x1), std::log(x2), std::log(y1), std::log(y2));
214 result = std::exp(result);
G4double Lin(G4double x, G4double x1, G4double x2, G4double y1, G4double y2)
G4double Interpolate2(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4ParticleHPInterpolator()
G4double Random(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
~G4ParticleHPInterpolator()
G4GLOB_DLL std::ostream G4cout
G4double LogarithmicLinear(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double LinearLinear(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double LinearLogarithmic(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double Histogram(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 Interpolate(G4InterpolationScheme aScheme, G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const
G4double GetBinIntegral(const G4InterpolationScheme &aScheme, const G4double x1, const G4double x2, const G4double y1, const G4double y2)
G4double LogarithmicLogarithmic(G4double x, G4double x1, G4double x2, G4double y1, G4double y2) const