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.