Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef YFS_Main_YFS_H
0002 #define YFS_Main_YFS_H
0003 
0004 
0005 
0006 #include "MODEL/Main/Running_AlphaQED.H"
0007 
0008 
0009 namespace ATOOLS {
0010   class Blob;
0011   class Data_Reader;
0012 }
0013 
0014 namespace YFS {
0015   class Semi_YFS {
0016   private:
0017     std::string                 m_name;
0018     bool                        m_photons_added;
0019     bool                        m_success;
0020     //Yfs(ATOOLS::Data_Reader* reader=NULL);
0021     
0022     public:
0023       void   Initial();
0024         double Gen_V();
0025       double Beta();
0026       double Jac(double v);
0027       double Emass(double v,double alp, double s);
0028       double nbar();   //m_RN = -\sum{\log{v_i}}_i^N
0029       int    Photon_Mult();
0030       void   initial();
0031       double Gen_K();
0032       double Gen_Y();
0033       double Gen_Gamma(double alp);
0034       double Gen_exp(double alp);
0035       double Photon_Ang();
0036       double Total();
0037       // bool   YfsMode();
0038       double Weight(double x, double alp, const int &semiyfs);
0039       double bornxs(double s,double theta);
0040       double sigma_crude(double s,double v);
0041       double max_xs(double s,double vmin, double vmax);
0042       double m_rho;
0043       double m_intial_S;
0044       double m_BeamEnergy1;
0045       double m_BeamEnergy2;
0046       double mass_f;
0047       double m_Jac;
0048       double m_alqed;
0049       double m_Emass;
0050       double m_g;
0051       double m_gp;
0052       double m_epsilon;
0053       double m_Kmax;  
0054       double m_Kmin;
0055       double m_alpha_A;
0056       double m_yi;
0057       double m_ki;
0058       double m_var;
0059       double s;
0060       double v;
0061       double vmin;
0062       double vmax;
0063       double xsmax;
0064       double theta;
0065       int    m_Photon_Number; 
0066       int    m_yfsmode;
0067       double s_ir_cutoff;
0068 
0069       Semi_YFS();
0070       ~Semi_YFS();
0071         
0072       
0073 
0074 
0075     bool AddRadiation(ATOOLS::Blob *);
0076     bool CheckStateBeforeTreatment(ATOOLS::Blob *);
0077 
0078     inline bool        Done_Successfully() { return m_success; }
0079     inline bool        Added_Anything()    { return m_photons_added; }
0080     inline std::string Name()             { return m_name; }
0081 
0082     static double               s_alpha;
0083     static bool                 s_use_running_parameters;
0084     static inline void Reset_Alpha_QED()
0085     { s_alpha=MODEL::aqed->AqedThomson(); }
0086     static inline void Set_Alpha_QED(const double& scale)
0087     { if (s_use_running_parameters) s_alpha=(*MODEL::aqed)(scale); }
0088 
0089     static int                  s_YFS_mode;
0090     static bool                 s_use_me;
0091     static int                  s_ir_cutoffframe;
0092     static double               s_accu;
0093     static int                  s_n_max;
0094     static int                  s_n_min;
0095     static double               s_dr_cut;
0096     static bool                 s_strict;
0097     static double               s_increase_max_weight;
0098     static double               s_reduce_max_en;
0099     static bool                 s_check_first;
0100     static int                  s_ff_recscheme;
0101     static int                  s_fi_recscheme;
0102     int                         s_YFS;
0103     int                         s_seed;
0104     double                      s_var;
0105 
0106  
0107 
0108   };
0109 
0110 }
0111 
0112 #endif
0113 
0114