![]() |
|
|||
File indexing completed on 2025-04-19 09:10:13
0001 #ifndef PHOTONS_Tools_YFS_Form_Factor_H 0002 #define PHOTONS_Tools_YFS_Form_Factor_H 0003 0004 #include "ATOOLS/Math/Vector.H" 0005 0006 namespace ATOOLS { 0007 class Particle; 0008 typedef std::vector<Particle* > Particle_Vector; 0009 class Gauss_Integrator; 0010 class Function_Base; 0011 } 0012 0013 namespace PHOTONS { 0014 class YFS_Form_Factor { 0015 private: 0016 ATOOLS::Vec4D m_p1; 0017 ATOOLS::Vec4D m_p2; 0018 double m_ks; 0019 double m_m1; 0020 double m_m2; 0021 double m_Z1; 0022 double m_Z2; 0023 double m_x1; 0024 double m_x2; 0025 double m_xx1; 0026 double m_xx2; 0027 double m_Y; 0028 double m_t1t2; 0029 0030 ATOOLS::Function_Base *p_ig1, *p_ig2; 0031 ATOOLS::Gauss_Integrator *p_gi1, *p_gi2; 0032 0033 double Y(); 0034 double IntP1(); 0035 double IntE(); 0036 double IntP2(); 0037 double GFunc(double); 0038 double IntG(); 0039 double CalculateBeta(const ATOOLS::Vec4D&); 0040 0041 public: 0042 YFS_Form_Factor(const ATOOLS::Particle_Vector&, const double&); 0043 YFS_Form_Factor(const ATOOLS::Particle*, const ATOOLS::Particle*, 0044 const double&); 0045 ~YFS_Form_Factor(); 0046 0047 double G(double); 0048 0049 inline double Get() const { return m_Y; } 0050 0051 inline const ATOOLS::Vec4D &P1() const { return m_p1; } 0052 inline const ATOOLS::Vec4D &P2() const { return m_p2; } 0053 }; 0054 0055 0056 0057 0058 /*! 0059 \file YFS_Form_Factor.H 0060 \brief contains the class YFS_Form_Factor 0061 */ 0062 0063 /*! 0064 \class YFS_Form_Factor 0065 \brief calculates the YFS form factor of a multipole configuration given 0066 */ 0067 //////////////////////////////////////////////////////////////////////////////////////////////////// 0068 // Description of member variable for YFS_Form_Factor 0069 //////////////////////////////////////////////////////////////////////////////////////////////////// 0070 /*! 0071 \var Vec4D YFS_Form_Factor::m_p1 0072 \brief momentum of particle 1 0073 */ 0074 0075 /*! 0076 \var Vec4D YFS_Form_Factor::m_p2 0077 \brief momentum of particle 2 0078 */ 0079 0080 /*! 0081 \var double YFS_Form_Factor::m_ks 0082 \brief infrared cut-off 0083 */ 0084 0085 /*! 0086 \var double YFS_Form_Factor::m_m1 0087 \brief mass of particle 1 0088 */ 0089 0090 /*! 0091 \var double YFS_Form_Factor::m_m2 0092 \brief mass of particle 2 0093 */ 0094 0095 /*! 0096 \var double YFS_Form_Factor::m_Z1 0097 \brief charge of particle 1 0098 */ 0099 0100 /*! 0101 \var double YFS_Form_Factor::m_Z2 0102 \brief charge of particle 2 0103 */ 0104 0105 /*! 0106 \var double YFS_Form_Factor::m_x1 0107 \brief one of the roots of \f$ p_x^2 \f$ 0108 */ 0109 0110 /*! 0111 \var double YFS_Form_Factor::m_x2 0112 \brief other root of \f$ p_x^2 \f$ 0113 */ 0114 0115 /*! 0116 \var double YFS_Form_Factor::m_xx1 0117 \brief one of the roots of \f$ p_x^{'2} \f$ 0118 */ 0119 0120 /*! 0121 \var double YFS_Form_Factor::m_xx2 0122 \brief other root of \f$ p_x^{'2} \f$ 0123 */ 0124 0125 /*! 0126 \var double YFS_Form_Factor::m_Y 0127 \brief YFS form factor 0128 */ 0129 0130 /*! 0131 \var short int YFS_Form_Factor::m_t1t2 0132 \brief product of \f$ \theta_1\theta_2 \f$ 0133 */ 0134 //////////////////////////////////////////////////////////////////////////////////////////////////// 0135 // Description of member methods for YFS_Form_Factor 0136 //////////////////////////////////////////////////////////////////////////////////////////////////// 0137 /*! 0138 \fn YFS_Form_Factor::YFS_Form_Factor(const ATOOLS::Particle_Vector& part, const double& ks) 0139 \brief Multipole constructor. 0140 For the calculation of the individual dipole contributions the 0141 dipole constructor is used. 0142 \param part The multipole. 0143 \param ks The infrared cut-off (taken to be an isotropic energy 0144 cut-off in the same frame as the momenta of the multipole given). 0145 Determines the YFS form factor as 0146 \f[ 0147 Y(\omega) = \sum_{i<j}Y_{ij}(\omega) 0148 \f] 0149 */ 0150 0151 /*! 0152 \fn YFS_Form_Factor::YFS_Form_Factor(const ATOOLS::Particle * part1, const ATOOLS::Particle * part2, const double& ks) 0153 \brief dipole constructor, implements all variables and initiates the calculations 0154 0155 \param part1 Particle 1 of the dipole. 0156 \param part2 Particle 2 of the dipole. The Particles are ordered 0157 such that \f$ E_2 \ge E_1 \f$, possible by the invariance of the 0158 form factor under the swapping of the labels of the particles. 0159 \param ks The infrared cutoff (taken to be an isotropic energy 0160 cut-off in the same frame as the momenta of the multipole given). 0161 */ 0162 0163 /*! 0164 \fn double YFS_Form_Factor::Y() 0165 \brief calculates the YFS form factor 0166 0167 \f[ 0168 Y_{ij}(\omega) = 2\alpha\left(\mathcal{R}e B_{ij}+\tilde{B}_{ij}(\omega)\right) 0169 \f] 0170 \f[ 0171 = -\frac{\alpha}{\pi}Z_1Z_2\theta_1\theta_2\left(\ln\frac{E_1E_2}{\omega^2}+\frac{1}{2}(p_1\cdot p_2)I_{p,1} - \frac{1}{2}(p_1\cdot p_2)I_{E} + \frac{1}{4}I_{p,2} + G(1) + G(-1) - (p_1 \cdot p_2)I_{G}\right) 0172 \f] 0173 */ 0174 0175 /*! 0176 \fn double YFS_Form_Factor::IntP1() 0177 \brief calculates the integral \f$ I_{p,1} \f$ (analytically) 0178 0179 with \f$ I_{p,1} = \theta_1\theta_2\int\limits_{-1}^1dx\frac{\ln\frac{p_x^{'2}}{\lambda^2}}{p_x^{'2}} - \int\limits_{-1}^1dx\frac{\ln\frac{p_x^2}{\lambda^2}}{p_x^2} \f$ 0180 */ 0181 0182 /*! 0183 \fn double YFS_Form_Factor::IntE() 0184 \brief calculates the integral \f$ I_E \f$ (analytically) 0185 0186 with \f$ I_E = \int\limits_{-1}^1dx\frac{\ln\frac{E_x^2}{\omega^2}}{p_x^2} \f$ 0187 */ 0188 0189 /*! 0190 \fn double YFS_Form_Factor::IntP2() 0191 \brief calculates the integral \f$ I_{p,2} \f$ (analytically) 0192 0193 with \f$ I_{p,2} = \int\limits_{-1}^1dx\ln\frac{p_x^2}{m_1m_2} \f$ 0194 */ 0195 0196 /*! 0197 \fn double YFS_Form_Factor::G(double) 0198 \brief calculates the function \f$ \tilde{G}(x) \f$ at the given value 0199 0200 The value to be passed is the value at which \f$ \tilde{G}(x) = \frac{1-\beta_x}{2\beta_x}\ln\frac{1+\beta_x}{1-\beta_x}+\ln\frac{1+\beta_x}{2} \f$ shall be evaluated. The condition \f$ x \in [-1,1] \f$ must hold. 0201 */ 0202 0203 /*! 0204 \fn double YFS_Form_Factor::IntG() 0205 \brief calculates the integral \f$ I_G \f$ (numerically) 0206 0207 with \f$ I_G = \int\limits_{-1}^1dx\frac{\tilde{G}(x)}{p_x^2} \f$. This integral cannot be solved analytically in a general frame. 0208 */ 0209 0210 /*! 0211 \fn double YFS_Form_Factor::CalculateBeta(Vec4D) 0212 \brief calculates \f$ \beta \f$ of a given 4-momentum 0213 */ 0214 0215 /*! 0216 \fn double YFS_Form_Factor::Get() 0217 \brief returns the YFS form factor 0218 */ 0219 } 0220 0221 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |