|
|
|||
File indexing completed on 2025-12-13 10:29:18
0001 #ifndef PHOTONS_PhaseSpace_Generate_Dipole_Photon_Angle_H 0002 #define PHOTONS_PhaseSpace_Generate_Dipole_Photon_Angle_H 0003 0004 #include "ATOOLS/Math/Vector.H" 0005 0006 namespace PHOTONS { 0007 class Generate_Dipole_Photon_Angle { 0008 private: 0009 double m_b1; 0010 double m_b2; 0011 double m_c; 0012 double m_theta; 0013 double m_phi; 0014 ATOOLS::Vec4D m_dir; 0015 0016 double CalculateBeta(const ATOOLS::Vec4D&); 0017 void GenerateDipoleAngle(); 0018 void GenerateNullVector(); 0019 0020 public: 0021 Generate_Dipole_Photon_Angle(ATOOLS::Vec4D, ATOOLS::Vec4D); 0022 Generate_Dipole_Photon_Angle(const double&, const double&); 0023 ~Generate_Dipole_Photon_Angle(); 0024 0025 inline double GetCosTheta() { return m_c; } 0026 inline double GetTheta() { return m_theta; } 0027 inline double GetPhi() { return m_phi; } 0028 inline const ATOOLS::Vec4D& GetVector() { return m_dir; } 0029 }; 0030 0031 0032 0033 0034 /*! 0035 \file Generate_Dipole_Photon_Angle.H 0036 \brief contains the class Generate_Dipole_Photon_Angle 0037 */ 0038 0039 /*! 0040 \class Generate_Dipole_Photon_Angle 0041 \brief generates the photon angular distribution in dipoles 0042 */ 0043 //////////////////////////////////////////////////////////////////////////////////////////////////// 0044 // Description of the member variables for Generate_Dipole_Photon_Angle 0045 //////////////////////////////////////////////////////////////////////////////////////////////////// 0046 /*! 0047 \var double Generate_Dipole_Photon_Angle::m_b1 0048 \brief \f$ \beta_1 \f$ 0049 */ 0050 0051 /*! 0052 \var double Generate_Dipole_Photon_Angle::m_b2 0053 \brief \f$ \beta_2 \f$ 0054 */ 0055 0056 /*! 0057 \var double Generate_Dipole_Photon_Angle::m_c 0058 \brief \f$ c = \cos\theta \f$ 0059 */ 0060 0061 /*! 0062 \var double Generate_Dipole_Photon_Angle::m_theta 0063 \brief \f$ \theta \f$ 0064 */ 0065 0066 /*! 0067 \var double Generate_Dipole_Photon_Angle::m_phi 0068 \brief \f$ \varphi \f$ 0069 */ 0070 0071 /*! 0072 \var Vec4D Generate_Dipole_Photon_Angle::m_dir 0073 \brief null vector of unit spatial length in direction \f$ (\theta,\varphi) \f$ 0074 */ 0075 //////////////////////////////////////////////////////////////////////////////////////////////////// 0076 // Description of member methods for Generate_Dipole_Photon_Angle 0077 //////////////////////////////////////////////////////////////////////////////////////////////////// 0078 /*! 0079 \fn Generate_Dipole_Photon_Angle::Generate_Dipole_Photon_Angle(ATOOLS::Vec4D, ATOOLS::Vec4D) 0080 \brief generates dipole angles for two arbitrary timelike 4-vectors \f$ p_1 \f$ and \f$ p_2 \f$ 0081 0082 \f$ p_1 \f$ and \f$ p_2 \f$ are boosted in their CMS, there the photon angles are calculated and m_dir is generated. Finally, m_dir is boosted to the original system of \f$ p_1 \f$ and \f$ p_2 \f$ and \f$ \theta \f$ and \f$ \varphi \f$ are recalculated. 0083 0084 This constructor is used by the Generate_Multipole_Photon_Angle class. 0085 */ 0086 0087 /*! 0088 \fn Generate_Dipole_Photon_Angle::Generate_Dipole_Photon_Angle(const double&, const double&) 0089 \brief generates dipole angles for two 4-vectors with \f$ \beta_1 \f$ and \f$ \beta_2 \f$ assumed to be in their CMS and aligned along the z-axis 0090 0091 Both angles are calculated via <tt>GenerateDipoleAngle()</tt>. No null vector will be produced. 0092 0093 This constructor is used by the Generate_One_Photon class. 0094 */ 0095 0096 /*! 0097 \fn double Generate_Dipole_Photon_Angle::CalculateBeta(Vec4D) 0098 \brief calculates \f$ \beta \f$ for a given 4-vector 0099 */ 0100 0101 /*! 0102 \fn void Generate_Dipole_Photon_Angle::GenerateDipoleAngle() 0103 \brief generates both photon angles 0104 0105 Works in the dipole's CMS. \f$ \varphi \f$ is distributed uniformly, \f$ \theta \f$ according to the eikonal factor \f$ \tilde{S}_{ij} \f$ . 0106 */ 0107 0108 /*! 0109 \fn void Generate_Dipole_Photon_Angle::GenerateNullVector() 0110 \brief m_dir is generated 0111 0112 This null vector can be Poincare transformed to any frame to have the photon angular configuration there. To get the full photon its energy/3-momentum simply has to be multiplied by the generated energy. 0113 */ 0114 0115 /*! 0116 \fn double Generate_Dipole_Photon_Angle::GetCosTheta() 0117 \brief returns m_c ( \f$ c = \cos\theta \f$ ) 0118 */ 0119 0120 /*! 0121 \fn double Generate_Dipole_Photon_Angle::GetTheta() 0122 \brief returns m_theta ( \f$ \theta \f$ ) 0123 */ 0124 0125 /*! 0126 \fn double Generate_Dipole_Photon_Angle::GetPhi() 0127 \brief returns m_phi ( \f$ \varphi \f$ ) 0128 */ 0129 0130 /*! 0131 \fn Vec4D Generate_Dipole_Photon_Angle::GetVector() 0132 \brief returns m_dir 0133 */ 0134 0135 0136 } 0137 0138 0139 // this class will take two four vectors and generate a null vector of unit 3D length which is distributed according to eikonal factor 0140 // if two doubles (b1,b2) are given it assumed they are in their respective rest frame and then this vector is generated in that frame 0141 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|