1 #ifndef __JPHYSICS__JRADIATIONSOURCE__
2 #define __JPHYSICS__JRADIATIONSOURCE__
19 namespace JPP {
using namespace JPHYSICS; }
53 const unsigned int number_of_bins,
58 using namespace JTOOLS;
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());
123 const double E =
exp(i->getX());
142 const double x = log(E);
144 if (x >=
sigmaEE. begin()->getX() &&
145 x <=
sigmaEE.rbegin()->getX()) {
150 catch(std::exception& error) {
151 std::cerr <<
"JRadiation::TotalCrossSectionEErad() " << E <<
' ' << error.what() << std::endl;
165 const double x = log(E);
167 if (x >=
Acoeff. begin()->getX() &&
168 x <=
Acoeff.rbegin()->getX()) {
173 catch(std::exception& error) {
174 std::cerr <<
"JRadiation::ACoeff() " << E <<
' ' << error.what() << std::endl;
189 const double x = log(E);
191 if (x >=
sigmaGN. begin()->getX() &&
192 x <=
sigmaGN.rbegin()->getX()) {
197 catch(std::exception& error) {
198 std::cerr <<
"JRadiation::TotalCrossSectionGNrad() " << E <<
' ' << error.what() << std::endl;
207 const double eps)
const
211 const double x = log(E);
212 const double y = log(eps/E);
217 catch(std::exception& error) {
218 std::cerr <<
"JRadiation::IntegralofG() " << E <<
' ' << eps <<
' ' << error.what() << std::endl;
250 virtual double getInverseInteractionLength(
const double E)
const = 0;
258 virtual double getA(
const double E)
const = 0;
266 virtual double getEnergyOfShower(
const double E)
const = 0;
280 typedef double (
JRadiation::*sigma_type)(
const double)
const;
281 typedef double (
JRadiation::*eloss_type)(
const double)
const;
294 const double density,
311 return (*rad.*sigma)(
E) * rho * 1.0e6;
320 virtual double getA(
const double E)
const override
322 return (*rad.*sigma)(
E) * rho * 1.0e6;
333 return (*rad.*eloss)(
E);
JRadiationFunction(const JRadiation &radiation, const unsigned int number_of_bins, const double Emin, const double Emax)
Constructor.
JLANG::JSharedPointer< JRadiation > rad
virtual double getEnergyOfShower(const double E) const override
Get energy of shower.
JRadiationSource(const JLANG::JSharedPointer< JRadiation > &radiation, const double density, const source_type source)
Constructor.
Interface for calculation of inverse interaction length and shower energy.
virtual double CalculateACoeff(const double E) const override
A Coefficient.
virtual double getInverseInteractionLength(const double E) const override
Get inverse interaction length.
Muon radiative cross sections.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcoustics.sh -- typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
virtual ~JRadiationInterface()
Virtual destructor.
Fast implementation of class JRadiation.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
Various implementations of functional maps.
virtual double getA(const double E) const override
Get A value.
std::pair< sigma_type, eloss_type > source_type
The template JSharedPointer class can be used to share a pointer to an object.
Auxiliary class for the calculation of the muon radiative cross sections.
virtual double IntegralofG(const double E, const double eps) const
virtual double TotalCrossSectionEErad(const double E) const override
Pair production cross section.
virtual double TotalCrossSectionGNrad(const double E) const override
Photo-nuclear cross section.
JTOOLS::JMultiFunction< JFunction1D_t, JTOOLS::JMapList< JTOOLS::JPolint1FunctionalGridMap > > JFunction2D_t
virtual double TotalCrossSectionEErad(const double E) const
Pair production cross section.
JTOOLS::JGridPolint1Function1D_t JFunction1D_t
virtual double CalculateACoeff(double Energy) const
Ionization a parameter.
virtual double IntegralofG(const double E, const double eps) const
virtual double TotalCrossSectionGNrad(const double E) const
Photo-nuclear cross section.