83 if(t0 >= tm)
return 0.0;
92 for (
size_t i=0; i<=
length; i++) {
102 <<
"; tMax(MeV)= " << tmax/
MeV
105 <<
"; xp[0]= " <<
xp[0]
130 if(t0 >= tm)
return 0.0;
140 for (
size_t i=0; i<=
length; i++) {
151 x += p[0]*(t0 - zmin - c*(std::atan(t0/c) - std::atan(zmin/c)));
157 <<
"; tMax(MeV)= " << tmax/
MeV
158 <<
"; e(MeV)= " << e/
MeV
184 if(t0 >= tm)
return 0.0;
191 for (
size_t i=0; i<=
length; i++) {
206 G4cout <<
"WARNING in G4RDeBremsstrahlungSpectrum::SampleEnergy:"
207 <<
" Majoranta " << amaj
232 sum += (1. - k*
xp[0])*std::log(x2/x1) + k*(x2 -
x1);
235 for (
size_t i=0; i<
length-1; i++) {
241 sum += z2 - z1 + std::log(x2/x1)*(z1*x2 - z2*
x1)/(x2 - x1);
244 if(sum < 0.0) sum = 0.0;
260 sum += (z2 - z1)*(1. - k*
xp[0]);
263 sum += 0.5*k*(z2 - z1);
266 for (
size_t i=0; i<
length-1; i++) {
272 sum += 0.5*(z2 - z1)*(x2 + x1) + z1*x2 - z2*
x1;
275 if(sum < 0.0) sum = 0.0;
285 f = p[0] + (p[1] - p[0])*(x -
xp[0])/(
xp[1] -
xp[0]);
289 for (
size_t i=0; i<
length-1; i++) {
292 f = p[i] + (p[i+1] - p[i])*(x -
xp[i])/(
xp[i+1] -
xp[i]);
G4double Probability(G4int Z, G4double tMin, G4double tMax, G4double kineticEnergy, G4int shell=0, const G4ParticleDefinition *pd=0) const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
static constexpr double MeV
G4double Parameter(G4int parameterIndex, G4int Z, G4double energy) const
G4double ParameterC(G4int index) const
Float_t x1[n_points_granero]
~G4RDeBremsstrahlungSpectrum()
G4double Function(G4double x, const G4DataVector &p) const
G4double Excitation(G4int Z, G4double kineticEnergy) const
G4double AverageValue(G4double xMin, G4double xMax, const G4DataVector &p) const
G4RDBremsstrahlungParameters * theBRparam
static constexpr double eV
G4double MaxEnergyOfSecondaries(G4double kineticEnergy, G4int Z=0, const G4ParticleDefinition *pd=0) const
G4RDeBremsstrahlungSpectrum(const G4DataVector &bins, const G4String &name)
G4double SampleEnergy(G4int Z, G4double tMin, G4double tMax, G4double kineticEnergy, G4int shell=0, const G4ParticleDefinition *pd=0) const
G4double AverageEnergy(G4int Z, G4double tMin, G4double tMax, G4double kineticEnergy, G4int shell=0, const G4ParticleDefinition *pd=0) const
G4GLOB_DLL std::ostream G4cout
Float_t x2[n_points_geant4]
G4double IntSpectrum(G4double xMin, G4double xMax, const G4DataVector &p) const
T min(const T t1, const T t2)
brief Return the smallest of the two arguments