Back to home page

EIC code displayed by LXR

 
 

    


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   };// end of class EPA
0044 
0045 }// end of namespace BEAM
0046 
0047 #endif