File indexing completed on 2025-04-19 09:10:00
0001 #ifndef BEAM_Main_EPA_H
0002 #define BEAM_Main_EPA_H
0003
0004 #include "BEAM/Main/Beam_Base.H"
0005 #include "ATOOLS/Math/Function_Base.H"
0006
0007 namespace BEAM {
0008
0009 class EPA : public Beam_Base {
0010 private:
0011
0012 class CosInt : public ATOOLS::Function_Base {
0013 public:
0014 double GetValue(double T) { return -cos(T)/T; }
0015 double operator()(double T) { return GetValue(T); }
0016 double GetCosInt(double X);
0017 };
0018
0019 double m_mass, m_charge, m_gamma, m_minR, m_maxR;
0020 double m_q2Max, m_pt_min, m_aqed, m_xmin, m_theta_max;
0021
0022 bool m_lo_epa;
0023
0024 void RegisterDefaults();
0025
0026 double phi(double x, double qq);
0027
0028 void selfTest(std::string filename);
0029
0030 int m_formfactor;
0031
0032 public:
0033
0034 EPA(const ATOOLS::Flavour beam,const double energy,const double pol,
0035 const int dir);
0036
0037 ~EPA();
0038
0039 Beam_Base *Copy();
0040 bool CalculateWeight(double, double);
0041 void FixPosition();
0042 void SetOutMomentum(const ATOOLS::Vec4D &out, const size_t & i=0);
0043 };
0044
0045 }
0046
0047 #endif