![]() |
|
|||
File indexing completed on 2025-04-19 09:10:12
0001 #ifndef PHOTONS_Tools_Weight_Higher_Order_Corrections_H 0002 #define PHOTONS_Tools_Weight_Higher_Order_Corrections_H 0003 0004 #include "PHOTONS++/Tools/Weight_Base.H" 0005 #include "PHOTONS++/Main/Dipole_Type.H" 0006 0007 0008 namespace PHOTONS { 0009 class PHOTONS_ME_Base; 0010 0011 class Weight_Higher_Order_Corrections: public Weight_Base { 0012 private: 0013 ATOOLS::Particle_Vector m_olddipole; 0014 ATOOLS::Particle_Vector m_newdipole; 0015 ATOOLS::Particle_Vector m_softphotons; 0016 double m_M; 0017 unsigned int m_n; 0018 0019 PHOTONS_ME_Base * p_pme; 0020 0021 double RealCorrectionsOrder(int); 0022 double VirtualCorrectionsOrder(int); 0023 0024 double Dmod(unsigned int, unsigned int, unsigned int); 0025 double Smod(unsigned int); 0026 double Kallen(double, double, double); 0027 0028 virtual void CalculateWeight(); 0029 virtual void CalculateMax(); 0030 0031 void CalculateWeightAndMaxWithME(); 0032 0033 public: 0034 Weight_Higher_Order_Corrections(const Particle_Vector_Vector&, 0035 const Particle_Vector_Vector&, 0036 Dipole_Type::code); 0037 virtual ~Weight_Higher_Order_Corrections(); 0038 }; 0039 0040 0041 0042 0043 /*! 0044 \file Weight_Higher_Order_Corrections.H 0045 \brief contains the class Weight_Higher_Order_Corrections 0046 */ 0047 0048 /*! 0049 \class Weight_Higher_Order_Corrections 0050 \brief calculates \f$ W_{\mathcal{C}} \f$ of the event given 0051 */ 0052 //////////////////////////////////////////////////////////////////////////////////////////////////// 0053 // Description of the member variables for Weight_Higher_Order_Corrections 0054 //////////////////////////////////////////////////////////////////////////////////////////////////// 0055 /*! 0056 \var Particle_Vector Weight_Higher_Order_Corrections::m_olddipole 0057 \brief contains the multipole before treatment 0058 */ 0059 0060 /*! 0061 \var Particle_Vector Weight_Higher_Order_Corrections::m_newdipole 0062 \brief contains the multipole after treatment 0063 */ 0064 0065 /*! 0066 \var Particle_Vector Weight_Higher_Order_Corrections::m_softphotons 0067 \brief contains all photons generated 0068 */ 0069 0070 /*! 0071 \var double Weight_Higher_Order_Corrections::m_M 0072 \brief contains the mass of the decaying particle 0073 */ 0074 0075 //////////////////////////////////////////////////////////////////////////////////////////////////// 0076 // Description of the member methods for Weight_Higher_Order_Corrections 0077 //////////////////////////////////////////////////////////////////////////////////////////////////// 0078 /*! 0079 \fn Weight_Higher_Order_Corrections::Weight_Higher_Order_Corrections(Particle_Vector, Particle_Vector, Particle_Vector, double, Dipole_Type::code) 0080 \brief initialises all variables, looks for MEs and calculates the weight 0081 0082 The arguments to be passed are the multipole after treatment, the 0083 multipole before treatment, the generated photons, the mass of the 0084 decaying particle and the Dipole_Type. 0085 0086 Calls <tt>Weight_Higher_Order_Corrections::ME_Selector</tt> to find 0087 out whether there is a generic or specific ME for the process. Only 0088 enabled if the USE_ME switch in Fragmentation.dat is set to 1. If 0089 there are no MEs available, the internal dipole approximation will 0090 be called. 0091 0092 Calls <tt>Weight_Higher_Order_Corrections::CalculateWeightAndMax()</tt> 0093 in case the ME-correction is envoked, <tt>Weight_Higher_Order_Corrections::CalculateWeight()</tt> 0094 and <tt>Weight_Higher_Order_Corrections::CalculateMax()</tt> in 0095 otherwise to calculate the weight and its maximum. The latter 0096 value is the contribution to the maximum total weight but not 0097 the maximum of \f$ W_{\mathcal{C}} \f$ by itself. 0098 */ 0099 0100 /*! 0101 \fn double Weight_Higher_Order_Corrections::RealCorrectionsOrder(int) 0102 \brief calculates the real corrections of \f$ \mathcal{O}(\alpha^n) \f$ in the collinear approximation 0103 0104 The argument to be passed is the order of \f$ \alpha \f$ at which 0105 the corrections should be calculated. Lower orders than the one 0106 specified will not be included. The value returned for 0107 \f$ \mathcal{O}(\alpha) \f$ is 0108 \f[ 0109 \frac{1}{\tilde{\beta}_0^0}\sum_{i=1}^{n_\gamma} 0110 \frac{\tilde{\beta}_1^1(k_i)}{\tilde{S}(k_i)} 0111 \f] 0112 with 0113 \f[ 0114 \tilde{\beta}_1^1(k) 0115 = -\frac{\alpha}{4\pi^2}\tilde{\beta}_0^0 0116 \sum_{i<j}Z_iZ_j\theta_i\theta_j 0117 (\bar{\mathcal{D}}_{ij}+\bar{\mathcal{D}}_{ji}) 0118 \f] 0119 */ 0120 0121 /*! 0122 \fn double Weight_Higher_Order_Corrections::VirtualCorrectionsOrder(int) 0123 \brief calculates the virtual corrections of \f$ \mathcal{O}(\alpha^n) \f$ in the leading log approximation 0124 0125 The argument to be passed is the order of \f$ \alpha \f$ at which 0126 the corrections should be calculated. Lower orders than the one 0127 specified will not be included. For \f$ \mathcal{O}(\alpha) \f$ these 0128 terms will only be calculated for \f$ Z^0 \f$ and \f$ W^\pm \f$ decays 0129 into fermion anti-fermion pairs since in all other cases the virtual 0130 contribution is negligable. The value returned is finite if the charged 0131 fermions are massive. 0132 */ 0133 0134 /*! 0135 \fn double Weight_Higher_Order_Corrections::Dmod(unsigned int, unsigned int, unsigned int) 0136 \brief calculates the infrared subtracted massive dipole splitting function \f$ \bar{\mathcal{D}}_{ij}(k) \f$ 0137 0138 The arguments to be passed are the multipole indices \f$ i \f$ 0139 and \f$ j \f$ and the bremsstrahlung photon index \f$ k \f$ as 0140 they label the particles in their respective Particle_Vector. 0141 0142 The massive dipole splitting functions are depending on the 0143 Dipole_Type of the subdipole \f$ (ij) \f$ of the multipole and 0144 the spin of the emitting particle with label \f$ i \f$. 0145 0146 At the moment only the infrared subtracted splitting functions 0147 for massive fermions and spin-0 bosons are implemented. The ones 0148 for massive spin-1 and spin-2 bosons and spin-3/2 fermions are 0149 still missing. 0150 */ 0151 0152 /*! 0153 \fn double Weight_Higher_Order_Corrections::Smod(unsigned int) 0154 \brief calculates \f$ \tilde{S}(k) \f$ 0155 0156 The argument passed is the index of the photon in its Particle_Vector. 0157 Returns 0158 \f[ 0159 \tilde{S}(k) 0160 = \sum\limits_{i<j}\tilde{S}_{ij}(k) 0161 = \sum\limits_{i<j}Z_iZ_j\theta_i\theta_j 0162 \left(\frac{p_1}{(p_1\cdot k_i)}-\frac{p_2}{(p_2\cdot k_i)}\right)^2 0163 \f] 0164 */ 0165 0166 /*! 0167 \fn void Weight_Higher_Order_Corrections::CalculateWeight() 0168 \brief calculates the weight of the event in the 0169 0170 The value calculated is \f$ W_{\mathcal{C}} = 1 + 0171 \mathcal{O}(\alpha)_V + \mathcal{O}(\alpha)_R \f$ 0172 */ 0173 0174 /*! 0175 \fn void Weight_Higher_Order_Corrections::CalculateMax() 0176 \brief calculates the maximum weight of the configuration given 0177 0178 The value returned is \f$ W_{\mathcal{C}} = 1 + \mathcal{O}(\alpha)_V \f$, 0179 which is the value of \f$ K=0 \f$. It is not the maximum of 0180 \f$ W_{\mathcal{C}} \f$, but its contribution to the maximum total weight. 0181 */ 0182 0183 /*! 0184 \fn void Weight_Higher_Order_Corrections::CalculateWeightAndMaxWithME(Particle_Vector_Vector, Particle_Vector_Vector) 0185 \brief calculates the weight and its contribution to the maximum weight for ME-corrections 0186 0187 Takes the <tt>Particle_Vector_Vector</tt>s of the dressed and undressed 0188 blobs to pass on to <tt>Weight_Higher_Order_Corrections::ME_Selector</tt> 0189 and calculates the weight and its contribution to the maximum. 0190 */ 0191 0192 } 0193 0194 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |