5#ifndef PYTHIA8_I_USERPHOTONFLUX_H
6#define PYTHIA8_I_USERPHOTONFLUX_H
11#include "Pythia8/Pythia.h"
30 xgamma = 0.5 * 0.007297353080 /
M_PI * (1. + Pythia8::pow2(1. -
x)) / Q2;
57 double bK0 = Pythia8::besselK0(xi);
58 double bK1 = Pythia8::besselK1(xi);
59 double intB = xi * bK1 * bK0 - 0.5 *
pow2(xi) * (
pow2(bK1) -
pow2(bK0) );
73 static constexpr double ALPHA_EM=7.2973525664e-3;
84 using base_class::base_class;
108 Gaudi::Property<double>
m_flux_Z{
this,
"NuclearCharge", 82.};
113#ifdef PYTHIA_VERSION_INTEGER
114 #if PYTHIA_VERSION_INTEGER > 8300
115 typedef std::shared_ptr<Pythia8::PDF>
PDFPtr;
117 #define PNEW(X, Y) std::make_shared<X>(Y);
120 typedef Pythia8::PDF*
PDFPtr;
121 #define PNEW(X, Y) new X(Y);
126 #define PNEW(X, Y) new X(Y);
static const std::map< unsigned int, unsigned int > pow2
Nucleus2gamma2 * Nucleus2gammaPtr
void xfUpdate(int, double x, double Q2)
Lepton2gamma2(int idBeamIn)
void xfUpdate(int, double x, double)
void setMinB(double in_min_b)
static constexpr double M_NUCLEON_EFF
void setMinX(double in_min_x)
static constexpr double ALPHA_EM
static constexpr double HBAR_TIMES_C
Nucleus2gamma2(int idBeamIn)
Tool to implement Pythi8 main70 functionality.
Gaudi::Property< double > m_flux_Z
StatusCode InitializePythiaInfo(Pythia8::Pythia &) const override
Gaudi::Property< int > m_process
StatusCode ModifyPythiaEvent(Pythia8::Pythia &pythia) const override
Update the pythia event Probably not used for this application.
Gaudi::Property< double > m_flux_min_b
Gaudi::Property< double > m_flux_min_x
StatusCode finalize() override
AlgTool finalize method.
virtual double CrossSectionScaleFactor() const override
Return how much the cross section is modified.
virtual ~UserPhotonFlux()
Destructor.
StatusCode initialize() override
AlgTool initialize method.
Author: James Monk (jmonk@cern.ch)