Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef PHOTONS_Tools_Weight_Dipole_H
0002 #define PHOTONS_Tools_Weight_Dipole_H
0003 
0004 #include "ATOOLS/Math/Vector.H"
0005 #include "PHOTONS++/Tools/Weight_Base.H"
0006 
0007 namespace PHOTONS {
0008   class Weight_Dipole: public Weight_Base {
0009     private:
0010       ATOOLS::Particle_Vector     m_olddipole;
0011       ATOOLS::Particle_Vector     m_newdipole;
0012       ATOOLS::Particle_Vector     m_softphotons;
0013 
0014       virtual void CalculateWeight();
0015       virtual void CalculateMax();
0016       double SMod(const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0017                   const ATOOLS::Vec4D&);
0018 
0019     public:
0020       Weight_Dipole(const ATOOLS::Particle_Vector&,
0021                     const ATOOLS::Particle_Vector&,
0022                     const ATOOLS::Particle_Vector&,
0023                     Dipole_Type::code);
0024       virtual ~Weight_Dipole();
0025   };
0026 
0027 
0028   
0029 
0030   /*!
0031     \file Weight_Dipole.H
0032     \brief contains the class Weight_Dipole
0033   */
0034 
0035   /*!
0036     \class Weight_Dipole
0037     \brief calculates \f$ W_{dipole} \f$ of the event given
0038   */
0039   ////////////////////////////////////////////////////////////////////////////////////////////////////
0040   // Description of the variables for Weight_Dipole
0041   ////////////////////////////////////////////////////////////////////////////////////////////////////
0042   /*!
0043     \var Particle_Vector Weight_Dipole::m_olddipole
0044     \brief contains all charged particles before the treatment (\f$ K=0 \f$ event)
0045   */
0046 
0047   /*!
0048     \var Particle_Vector Weight_Dipole::m_newdipole
0049     \brief contains all charged particles after the treatment
0050   */
0051 
0052   /*!
0053     \var Particle_Vector Weight_Dipole::m_softphotons
0054     \brief contains all bremsstrahlung photons generated in the event
0055   */
0056   ////////////////////////////////////////////////////////////////////////////////////////////////////
0057   // Description of the member methods for Weight_Dipole
0058   ////////////////////////////////////////////////////////////////////////////////////////////////////
0059   /*!
0060     \fn Weight_Dipole::Weight_Dipole(const Particle_Vector, const Particle_Vector, const Particle_Vector, Dipole_Type::code)
0061     \brief initialises all variales and calculates the weights
0062 
0063     The values to be passed are the multipole before the treatment, after the treatment, the generated photons and the Dipole_Type.
0064 
0065     Calls <tt>Weight_Dipole::CalculateWeight()</tt> and <tt>Weight_Dipole::CalculateMax()</tt> to calculate the weight and its maximum. The latter value is the contribution to the maximum total weight as well as the maximum of \f$ W_{dipole} \f$ by itself.
0066   */
0067 
0068   /*!
0069     \fn void Weight_Dipole::CalculateWeight()
0070     \brief calculates the weight of the event
0071 
0072     The weight is \f$ W_{dipole} = \prod_{i=1}^{n_\gamma}\frac{\tilde{S}(p,P,k_i)}{\tilde{S}(p,Q,k_i)} \f$
0073 
0074     with \f$ \tilde{S}(k) = \sum\limits_{i<j}\tilde{S}_{ij}(k) = \sum\limits_{i<j}Z_iZ_j\theta_i\theta_j\left(\frac{p_1}{(p_1\cdot k_i)}-\frac{p_2}{(p_2\cdot k_i)}\right)^2 \f$
0075 
0076     Calls <tt>Weight_Dipole::SMod(const Vec4D, const Vec4D, const Vec4D)</tt> to calculate \f$ \tilde{S} \f$.
0077   */
0078 
0079   /*!
0080     \fn void Weight_Dipole::CalculateMax()
0081     \brief calculates the maximum weight of the configuration
0082 
0083     The maximum weight is \f$ W_{dipole,max} = 1 \f$.
0084   */
0085 
0086   /*!
0087     \fn double Weight_Dipole::SMod(const Vec4D, const Vec4D, const Vec4D)
0088     \brief calculates the eikonal factor in \f$ \tilde{S}_{ij} \f$
0089 
0090     The arguments are \f$ p_1 \f$, \f$ p_2 \f$ and \f$ k_i \f$.
0091     The value returned is \f$ \left(\frac{p_1}{(p_1\cdot k_i)}-\frac{p_2}{(p_2\cdot k_i)}\right)^2 \f$.
0092   */
0093 
0094 }
0095 
0096 #endif