Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:17

0001 #ifndef YFS_Main_YFS_Base_H
0002 #define YFS_Main_YFS_Base_H
0003 
0004 #include "ATOOLS/Math/Vector.H"
0005 #include "ATOOLS/Math/MathTools.H"
0006 #include "ATOOLS/Phys/Flavour.H"
0007 #include "ATOOLS/Org/Run_Parameter.H"
0008 
0009 
0010 using namespace ATOOLS;
0011 
0012 namespace YFS {
0013 struct submode {
0014   enum code {
0015     off        = 0,
0016     local       = 1,
0017     global       = 2
0018   };
0019 };
0020 struct yfsmode {
0021   enum code {
0022     off       = 0,
0023     isr       = 1,
0024     isrfsr    = 2,
0025     fsr       = 3,
0026   };
0027 };
0028 
0029 struct wgt {
0030   enum code {
0031     off       = 0,
0032     full      = 1,
0033     mass      = 2,
0034     hide      = 3,
0035     jacob     = 4,
0036   };
0037 };
0038 
0039 
0040 std::istream &operator>>(std::istream &str, submode::code &sm);
0041 std::istream &operator>>(std::istream &str, yfsmode::code &sm);
0042 std::istream &operator>>(std::istream &str, wgt::code &sm);
0043 std::ostream &operator<<(std::ostream &str, const yfsmode::code &sm);
0044 std::ostream &operator<<(std::ostream &str, const wgt::code &sm);
0045 
0046 class YFS_Base {
0047 protected:
0048 
0049   double m_exponent, m_xmax;
0050   bool   m_on;
0051 
0052 public:
0053   YFS_Base();
0054   virtual ~YFS_Base();
0055 
0056   bool On() const   { return m_on;   }
0057 
0058   double m_mass2[2];
0059   double m_s;
0060   double m_v, m_vmin, m_vmax, m_isrcut, m_sp;
0061   double m_alpha, m_alpi, m_hardmin, m_gp, m_g;
0062   bool m_CalForm, m_fillblob, m_isr_debug, m_fsr_debug, m_coulomb, m_setparticles;
0063   double m_photonMass, m_oneloop, m_born, m_isrWeight, m_fsrWeight, m_rescale_alpha;
0064   double m_nbar, m_deltacut, m_betatWW, m_eps, m_fixed_weight, m_resonace_max;
0065   
0066   int  m_order, m_betaorder, m_fullform, m_formWW, m_ifisub;
0067   int  m_check_mass_reg, m_check_poles, m_check_real;
0068   int m_rmode, m_qedmode, m_kkmcAngles;
0069   int m_no_born, m_check_real_sub, m_no_subtraction, m_tchannel, m_check_virt_born, m_noflux, m_massless_sub;
0070   
0071   bool m_looptool, m_virtual_only, m_real_only, m_use_model_alpha;
0072   bool m_isrinital, m_realtool, m_realvirt, m_useceex, m_coll_real;
0073   int m_flux_mode, m_hidephotons, m_photon_split, m_int_nlo;
0074   std::string m_name, m_type, m_debugDIR_ISR, m_debugDIR_FSR, m_debugDIR_NLO;
0075   Vec4D m_beam1, m_beam2;
0076 
0077   submode::code m_submode;
0078   yfsmode::code m_mode;
0079 
0080 
0081   void RegisterSettings();
0082   void RegisterDefaults();
0083   double Eikonal(const Vec4D &k, const Vec4D &p1, const Vec4D &p2);
0084   double EikonalMassless(const Vec4D &k, const Vec4D &p1, const Vec4D &p2);
0085   inline bool  HasISR()   const {return (m_mode != yfsmode::off && m_mode != yfsmode::fsr); }
0086   inline bool  HasFSR()   const {return (m_mode != yfsmode::off && m_mode != yfsmode::isr); }
0087 
0088 };
0089 }
0090 
0091 #endif