Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JPHYSICS::JGeanx Class Reference

Probability density function of photon emission from EM-shower as a function of cosine of the emission angle. More...

#include <JGeanx.hh>

Public Member Functions

 JGeanx (const double __a, const double __b, const double __n=getIndexOfRefractionPhase())
 Constructor.
 
double operator() (const double ct) const
 Number of photons from EM-shower as a function of emission angle.
 
double operator() (const double xmin, const double xmax) const
 Integral number of photons from EM-shower between two emission angles.
 
double evaluate (const double ct) const
 Functional dependence.
 
double evaluate (const double xmin, const double xmax) const
 Integral.
 

Public Attributes

const double a
 power
 
const double b
 slope
 
const double n
 index of refraction
 

Private Attributes

double c
 normalisation constant
 

Detailed Description

Probability density function of photon emission from EM-shower as a function of cosine of the emission angle.

     \f[ P(\cos(\theta))  =  c \times e^{b \times |\cos(\theta) - 1/n|^a} \f]

where $ c $ is a normalisation constant such that the integral of $ P $ over the full solid angle is one.

The parametrisation is taken from reference: R. Mirani, "Parametrisation of EM-showers in the ANTARES detector volume.", Doctoral thesis in computational physics, University of Amsterdam.

Definition at line 31 of file JGeanx.hh.

Constructor & Destructor Documentation

◆ JGeanx()

JPHYSICS::JGeanx::JGeanx ( const double __a,
const double __b,
const double __n = getIndexOfRefractionPhase() )
inline

Constructor.

Parameters
__apower
__bexponential slope
__nindex of refraction

Definition at line 41 of file JGeanx.hh.

43 :
44 a(__a),
45 b(__b),
46 n(__n)
47 {
48 const double y = evaluate(-1.0, +1.0);
49
50 c = 1.0 / (y * 2*PI);
51 }
double evaluate(const double ct) const
Functional dependence.
Definition JGeanx.hh:89
const double a
power
Definition JGeanx.hh:133
double c
normalisation constant
Definition JGeanx.hh:138
const double b
slope
Definition JGeanx.hh:134
const double n
index of refraction
Definition JGeanx.hh:135

Member Function Documentation

◆ operator()() [1/2]

double JPHYSICS::JGeanx::operator() ( const double ct) const
inline

Number of photons from EM-shower as a function of emission angle.

The integral over full solid angle is normalised to one.

Parameters
ctcosine angle of emmision
Returns
d^2P/dcos()dphi

Definition at line 61 of file JGeanx.hh.

62 {
63 return c * evaluate(ct);
64 }

◆ operator()() [2/2]

double JPHYSICS::JGeanx::operator() ( const double xmin,
const double xmax ) const
inline

Integral number of photons from EM-shower between two emission angles.

The integral over full solid angle is normalised to one.

Parameters
xminminimal cosine angle of emmision
xmaxmaximal cosine angle of emmision
Returns
dnpe/dphi

Definition at line 75 of file JGeanx.hh.

77 {
78 return c * evaluate(xmin, xmax);
79 }

◆ evaluate() [1/2]

double JPHYSICS::JGeanx::evaluate ( const double ct) const
inline

Functional dependence.

In this, the normalisation constant c = 1.

Parameters
ctcosine angle of emmision
Returns
f()

Definition at line 89 of file JGeanx.hh.

90 {
91 const double x = fabs(ct - 1.0/n);
92
93 return exp(b * pow(x,a));
94 }
T pow(const T &x, const double y)
Power .
Definition JMath.hh:97

◆ evaluate() [2/2]

double JPHYSICS::JGeanx::evaluate ( const double xmin,
const double xmax ) const
inline

Integral.

In this, the normalisation constant c = 1.

Parameters
xminminimal cosine angle of emmision
xmaxmaximal cosine angle of emmision
Returns
integral f() x dcos()

Definition at line 105 of file JGeanx.hh.

107 {
108 using namespace std;
109 using namespace JPP;
110
111 const double x = 1.0 / n;
112
113 const double ai = 1.0 / a;
114 const double bi = 1.0 / b;
115
116 const double xl = pow(fabs(x - xmin), a) * -b;
117 const double xr = pow(fabs(x - xmax), a) * -b;
118
119 const double gp = tgamma(ai);
120
121 double yl = Gamma(ai, xl) * gp;
122 double yr = Gamma(ai, xr) * gp;
123
124 if (xmin > x)
125 yl = -yl;
126 if (xmax < x)
127 yr = -yr;
128
129 return ai * pow(-bi,ai) * (yl + yr);
130 }
double Gamma(const double a, const double x)
Incomplete gamma function.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).

Member Data Documentation

◆ a

const double JPHYSICS::JGeanx::a

power

Definition at line 133 of file JGeanx.hh.

◆ b

const double JPHYSICS::JGeanx::b

slope

Definition at line 134 of file JGeanx.hh.

◆ n

const double JPHYSICS::JGeanx::n

index of refraction

Definition at line 135 of file JGeanx.hh.

◆ c

double JPHYSICS::JGeanx::c
private

normalisation constant

Definition at line 138 of file JGeanx.hh.


The documentation for this class was generated from the following file: