5 #ifndef PYTHIA8_I_USERPHOTONFLUX_H
6 #define PYTHIA8_I_USERPHOTONFLUX_H
11 #include "Pythia8/Pythia.h"
31 xgamma = 0.5 * 0.007297353080 /
M_PI * (1. + pow2(1. -
x)) / Q2;
56 double xi =
x * M_NUCLEON_EFF * m_min_b / HBAR_TIMES_C;
57 double bK0 = besselK0(xi);
58 double bK1 = besselK1(xi);
59 double intB = xi * bK1 * bK0 - 0.5 * pow2(xi) * ( pow2(bK1) - pow2(bK0) );
60 xgamma = 2. * ALPHA_EM * pow2(m_Z) /
M_PI * intB;
62 void setZ(
double in_Z) {m_Z=in_Z;};
63 void setMinB(
double in_min_b) {m_min_b=in_min_b;};
64 void setMinX(
double in_min_x) {m_min_x=in_min_x;};
72 static constexpr
double M_NUCLEON_EFF=0.9315;
73 static constexpr
double ALPHA_EM=7.2973525664e-3;
74 static constexpr
double HBAR_TIMES_C=0.1973269788;
84 UserPhotonFlux(
const std::string&,
const std::string&,
const IInterface*);
101 virtual double CrossSectionScaleFactor()
const override;
113 #ifdef PYTHIA_VERSION_INTEGER
114 #if PYTHIA_VERSION_INTEGER > 8300
115 typedef shared_ptr<PDF>
PDFPtr;
117 #define PNEW(X, Y) make_shared<X>(Y);
121 #define PNEW(X, Y) new X(Y);
126 #define PNEW(X, Y) new X(Y);