Go to the documentation of this file. 1 #ifndef __JPHYSICS__JRADIATIONSOURCE__
2 #define __JPHYSICS__JRADIATIONSOURCE__
53 const unsigned int number_of_bins,
60 const double xmin = log(Emin);
61 const double xmax = log(Emax);
68 const double x = i->getX();
69 const double E = exp(x);
72 const double ymax = 0.0;
76 i->getY().configure(
make_grid(number_of_bins, ymin, ymax));
80 const double y =
j->getX();
81 const double eps = exp(y) * E;
97 const double E = exp(i->getX());
110 const double E = exp(i->getX());
128 const double x = log(E);
130 if (x >=
sigmaEE. begin()->getX() &&
131 x <=
sigmaEE.rbegin()->getX()) {
136 catch(std::exception& error) {
137 std::cerr <<
"JRadiation::TotalCrossSectionEErad() " << E <<
' ' << error.what() << std::endl;
153 const double x = log(E);
155 if (x >=
sigmaGN. begin()->getX() &&
156 x <=
sigmaGN.rbegin()->getX()) {
161 catch(std::exception& error) {
162 std::cerr <<
"JRadiation::TotalCrossSectionGNrad() " << E <<
' ' << error.what() << std::endl;
171 const double eps)
const
175 const double x = log(E);
176 const double y = log(eps/E);
181 catch(std::exception& error) {
182 std::cerr <<
"JRadiation::IntegralofG() " << E <<
' ' << eps <<
' ' << error.what() << std::endl;
213 virtual double getInverseInteractionLength(
const double E)
const = 0;
222 virtual double getEnergyOfShower(
const double E)
const = 0;
236 typedef double (
JRadiation::*sigma_type)(
const double)
const;
237 typedef double (
JRadiation::*eloss_type)(
const double)
const;
250 const double density,
267 return (*rad.*sigma)(E) * rho * 1.0e6;
279 return (*rad.*eloss)(E);
Interface for calculation of inverse interaction length and shower energy.
std::pair< sigma_type, eloss_type > source_type
Fast implementation of class JRadiation.
virtual double IntegralofG(const double E, const double eps) const
virtual ~JRadiationInterface()
Virtual destructor.
Auxiliary classes and methods for calculation of PDF and muon energy loss.
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
virtual double getInverseInteractionLength(const double E) const
Get inverse interaction length.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.
JLANG::JSharedPointer< JRadiation > rad
JRadiationFunction(const JRadiation &radiation, const unsigned int number_of_bins, const double Emin, const double Emax)
Constructor.
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
virtual double getEnergyOfShower(const double E) const
Get energy of shower.
JRadiationSource(const JLANG::JSharedPointer< JRadiation > &radiation, const double density, const source_type source)
Constructor.
JTOOLS::JMultiFunction< JFunction1D_t, JTOOLS::JMapList< JTOOLS::JPolint1FunctionalGridMap > > JFunction2D_t
Auxiliary class for the calculation of the muon radiative cross sections.
JTOOLS::JGridPolint1Function1D_t JFunction1D_t
The template JSharedPointer class can be used to share a pointer to an object.
virtual double IntegralofG(const double E, const double eps) const
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.