File indexing completed on 2025-04-19 09:10:17
0001 #ifndef YFS_Main_FSR_H
0002 #define YFS_Main_FSR_H
0003
0004 #include "ATOOLS/Phys/Particle.H"
0005 #include "ATOOLS/Math/Poincare.H"
0006 #include "BEAM/Main/Beam_Base.H"
0007 #include "ATOOLS/Math/Histogram.H"
0008 #include "YFS/Main/YFS_Form_Factor.H"
0009 #include "YFS/Main/YFS_Base.H"
0010 #include "YFS/Tools/Dipole.H"
0011 #include "YFS/Main/Define_Dipoles.H"
0012
0013
0014 using namespace ATOOLS;
0015
0016 namespace YFS {
0017 class FSR : public YFS_Base {
0018 public:
0019 FSR();
0020 ~FSR();
0021 ATOOLS::Poincare *p_rot;
0022 double m_u, m_fsrcut, m_Kmin, m_Kmax, m_sQ,m_sprim, m_dip_sp, m_sqtest, m_sX, m_Emin, m_QF2, m_Q1, m_Q2;
0023 double m_phi, m_theta, m_c, m_eta1, m_eta2, m_EminQ, m_mass1, m_mass2,m_q1q2, m_st, m_p1p2;
0024 double m_beta, m_beta1, m_beta2, m_mu1, m_mu2, m_g, m_gp, m_EQ, m_betaf, m_omegaF, m_volmc, m_gpBar, m_gBar;
0025 double m_massW, m_hideW, m_expf, m_wt2, m_amc2, m_amfin, m_EminPP, m_f, m_fbar,m_bvrA,m_pT,m_yy,m_xfact;
0026 double m_fsrform, m_nbar, m_betaBar,m_YFS_IR, m_btil, m_btilStar, m_volumc, m_delvol, m_DelYFS,m_delta1,m_cut;
0027 double m_BtiXcru, m_BtiQcru, m_Edelta, m_fsrcutF, m_omegaMax, m_omegaMin, m_A4, m_A, m_betaBar1, m_betaBar2;
0028
0029 std::vector<double> m_mass, m_MassWls, m_cos, m_sin, m_dist1, m_dist2, m_del1, m_del2, m_yini, m_zini, m_phi_vec, m_k0, m_fvev, m_fbarvec;
0030 int m_n, m_N, m_NRemoved, m_eikonal_mode, m_use_crude, m_fixed_ngamma;
0031 bool m_use_massive_nbar, m_failed, m_use_model_alpha;
0032 Vec4D_Vector m_photons, m_dipole, m_photonspreboost;
0033 Flavour_Vector m_dipoleFl;
0034 Vec4D m_photonSum, m_photonSumPreBoost, m_r1, m_r2, m_QFrame, m_Q, m_px;
0035 YFS::Dipole *p_dipole;
0036 void GeneratePhotonMomentum();
0037 void GenerateAngles();
0038 void DefineGammas();
0039 double CalculateBeta(const Vec4D& p);
0040 void CalculateBetaBar();
0041 bool MakeFSR();
0042 void Reset();
0043 void NPhotons();
0044 double Btild(Vec4D p1,Vec4D p2, double kmax);
0045 double chi(double eta, double y1, double y2, double y3, double y4);
0046 double Zij(double eta, double y1, double y2);
0047 double LI(double x);
0048 double YEta(double eta,double y1, double y2, double y3, double y4);
0049 double BVR_A(Vec4D p1, Vec4D p2);
0050 double Eikonal(const Vec4D &k);
0051 double EikonalInterferance(const Vec4D &k);
0052 inline double GetWeight() {return m_fsrWeight;}
0053 inline double GetSQ() {return m_sQ;}
0054 inline Vec4D GetPhotonSum() {return m_photonSum; }
0055 inline Vec4D_Vector GetPhotons() {return m_photons; }
0056 inline void SetNPhoton(int N) {m_n = N;}
0057 inline void SetPhotons(Vec4D k) {m_photonSum = k;}
0058 inline void SetDipole(Vec4D_Vector dip) {m_dipole = dip;}
0059 inline void SetV(double v) {m_v = v;}
0060 inline Vec4D_Vector GetDipole() {return m_dipole;}
0061 YFS::YFS_Form_Factor *p_isrFormFact, *p_fsrFormFact;
0062 void HidePhotons();
0063 void HidePhotons(Vec4D_Vector &k);
0064
0065 void MakePair(double cms, Vec4D &p1, Vec4D &p2);
0066 void MakePair(double cms, Vec4D &p1, Vec4D &p2, double mass1, double mass2,
0067 double &eta1, double &eta2);
0068 void BoostDipole(Vec4D_Vector &dip);
0069 void Weight();
0070 bool F();
0071 bool Initialize(Dipole &dipole);
0072 void BoostToXFM();
0073 void RejectEvent();
0074 void RotateDipole();
0075 bool YFS_FORM();
0076 void RescalePhotons();
0077
0078 };
0079
0080 }
0081
0082 #endif