![]() |
|
|||
File indexing completed on 2025-04-19 09:10:12
0001 #ifndef PHOTONS_Tools_Generate_One_Photon_H 0002 #define PHOTONS_Tools_Generate_One_Photon_H 0003 0004 #include "PHOTONS++/Main/Dipole_Type.H" 0005 0006 namespace ATOOLS { 0007 class Histogram_2D; 0008 } 0009 0010 namespace PHOTONS { 0011 class Generate_One_Photon { 0012 private: 0013 double m_beta1; 0014 double m_beta2; 0015 double m_theta; 0016 double m_phi; 0017 double m_w; 0018 double m_delta; 0019 Dipole_Type::code m_dtype; 0020 ATOOLS::Particle *p_photon; 0021 0022 void GeneratePhotonAngleMassless(); 0023 void GeneratePhoton(); 0024 0025 public: 0026 Generate_One_Photon(const double&, const double&, 0027 const double&, Dipole_Type::code); 0028 Generate_One_Photon(const ATOOLS::Particle_Vector&, 0029 const IdPairNbarVector&,double, 0030 Dipole_Type::code); 0031 ~Generate_One_Photon(); 0032 0033 inline ATOOLS::Particle * GetPhoton() { return p_photon; } 0034 0035 void SetMinimalPhotonAngle(const double&); 0036 0037 static ATOOLS::Histogram_2D *s_histo; 0038 }; 0039 0040 0041 0042 0043 /*! 0044 \file Generate_One_Photon.H 0045 \brief contains the class Generate_One_Photon 0046 */ 0047 0048 /*! 0049 \class Generate_One_Photon 0050 \brief generates one photon according to the angular distribution of the multipole 0051 */ 0052 //////////////////////////////////////////////////////////////////////////////////////////////////// 0053 // Description of member variables for Generate_One_Photon 0054 //////////////////////////////////////////////////////////////////////////////////////////////////// 0055 /*! 0056 \var double Generate_One_Photon::m_beta1 0057 \brief \f$ \beta \f$ of particle 1 in a different mass dipole 0058 */ 0059 0060 /*! 0061 \var double Generate_One_Photon::m_beta2 0062 \brief \f$ \beta \f$ of particle 2 in a different mass dipole 0063 */ 0064 0065 /*! 0066 \var double Generate_One_Photon::m_theta 0067 \brief generated inclinational angle of the photon in a dipole 0068 */ 0069 0070 /*! 0071 \var double Generate_One_Photon::m_phi 0072 \brief generated azimutal angle of the photon in a dipole 0073 */ 0074 0075 /*! 0076 \var double Generate_One_Photon::m_w 0077 \brief energy for the photon 0078 */ 0079 0080 /*! 0081 \var double Generate_One_Photon::m_delta 0082 \brief collinear cut-off angle (needed for angular generation of massless particles) 0083 */ 0084 0085 /*! 0086 \var Dipole_Type::code Generate_One_Photon::m_dtype 0087 \brief specifies the Dipole_Type 0088 */ 0089 0090 /*! 0091 \var Particle * Generate_One_Photon::p_photon 0092 \brief the complete photon generated 0093 */ 0094 //////////////////////////////////////////////////////////////////////////////////////////////////// 0095 // Description of member methods fo Generate_One_Photon 0096 //////////////////////////////////////////////////////////////////////////////////////////////////// 0097 /*! 0098 \fn Generate_One_Photon::Generate_One_Photon(const double&, const double&, const double&, Dipole_Type::code) 0099 \brief constructor for photon generation in dipoles 0100 0101 The values passed are \f$ \beta_1,\beta_2 \f$, the energy of the photon and the Dipole_Type. For the dipole it is assumed that particle one is aligned along the \f$ +z \f$-axis for final-final dipoles and along the \f$ -z \f$-axis for initial-final dipoles, because in the this case, <tt>Dipole_FF</tt> fills the charged initial state into position 1. The constructor also executes the photon generation process. 0102 */ 0103 0104 /*! 0105 \fn Generate_One_Photon::Generate_One_Photon(const ATOOLS::Particle_Vector &, const IdPairNbarVector&, double, Dipole_Type::code) 0106 \brief constructor for photon generation in multipoles 0107 0108 The values passed are the multipole, all individual dipoles' \f$ \bar{n}_i \f$, the energy of the photon and the Dipole_Type. The constructor also executes the photon generation process wherein for the angular generation <tt>Generate_Multipole_Photon_Angle</tt> is called. It is also able to handle dipoles, but somewhat slower than the built-in generation. 0109 */ 0110 0111 /*! 0112 \fn void Generate_One_Photon::GeneratePhotonAngleMassless() 0113 \brief generates \f$ \theta \f$ in massless dipoles according to \f$ \tilde{S}_{ij} \f$ 0114 */ 0115 0116 /*! 0117 \fn void Generate_One_Photon::GeneratePhoton() 0118 \brief builds a particle out of the generated angles and the energy 0119 */ 0120 0121 /*! 0122 \fn Particle * Generate_One_Photon::GetPhoton() 0123 \brief returns p_photon, the generated photon 0124 */ 0125 0126 /*! 0127 \fn void Generate_One_Photon::SetMinimalPhotonAngle(double) 0128 \brief changes the preset value of the collinear cut-off angle needed in the massless generation and regenerates the event 0129 */ 0130 0131 } 0132 0133 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |