![]() |
|
|||
File indexing completed on 2025-04-19 09:10:12
0001 #ifndef PHOTONS_PhaseSpace_Generate_Multipole_Photon_Angle_H 0002 #define PHOTONS_PhaseSpace_Generate_Multipole_Photon_Angle_H 0003 0004 #include "ATOOLS/Math/Vector.H" 0005 0006 namespace ATOOLS { 0007 class Particle; 0008 typedef std::vector<Particle*> Particle_Vector; 0009 } 0010 0011 namespace PHOTONS { 0012 struct IdPairNbar; 0013 typedef std::vector<IdPairNbar> IdPairNbarVector; 0014 0015 class Generate_Multipole_Photon_Angle { 0016 private: 0017 ATOOLS::Particle_Vector m_dipole; 0018 double m_posnbar; 0019 IdPairNbarVector m_nbars, m_posnbars; 0020 double m_theta; 0021 double m_phi; 0022 0023 double CalculateBeta(const ATOOLS::Vec4D&); 0024 void GenerateMultipoleAngle(); 0025 double CalculateWeightByThetaPhi(const double&, const double&); 0026 double CalculateWeightByVector(const ATOOLS::Vec4D&); 0027 double TiTj(const size_t&, const size_t&); 0028 0029 public: 0030 Generate_Multipole_Photon_Angle(const ATOOLS::Particle_Vector&, 0031 const IdPairNbarVector&); 0032 ~Generate_Multipole_Photon_Angle(); 0033 0034 inline double GetTheta() { return m_theta; } 0035 inline double GetPhi() { return m_phi; } 0036 }; 0037 0038 0039 0040 0041 /*! 0042 \file Generate_Multipole_Photon_Angle.H 0043 \brief contains the class Generate_Multipole_Photon_Angle 0044 */ 0045 0046 /*! 0047 \class Generate_Multipole_Photon_Angle 0048 \brief generates the photon angular distribution in multipoles 0049 */ 0050 //////////////////////////////////////////////////////////////////////////////////////////////////// 0051 // Description of member variables for Generate_Multipole_Photon_Angle 0052 //////////////////////////////////////////////////////////////////////////////////////////////////// 0053 0054 /*! 0055 \var Particle_Vector Generate_Multipole_Photon_Angle::m_dipole 0056 \brief contains the multipole 0057 */ 0058 0059 /*! 0060 \var std::vector<double> Generate_Multipole_Photon_Angle::m_nbars 0061 \brief avarage photon number of all constituent dipoles of the multipole 0062 */ 0063 0064 /*! 0065 \var double Generate_Multipole_Photon_Angle::m_theta 0066 \brief photon angle \f$ \theta \f$ 0067 */ 0068 0069 /*! 0070 \var doubel Generate_Multipole_Photon_Angle::m_phi 0071 \brief photon azimutal angle \f$ \varphi \f$ 0072 */ 0073 //////////////////////////////////////////////////////////////////////////////////////////////////// 0074 // Description of member methods for Generate_Multipole_Photon_Angle 0075 //////////////////////////////////////////////////////////////////////////////////////////////////// 0076 /*! 0077 \fn Generate_Multipole_Photon_Angle::Generate_Multipole_Photon_Angle(Particle_Vector, std::vector<double>) 0078 \brief initialises and executes the calculations 0079 0080 The constructor <tt>Generate_Multipole_Photon_Angle::Generate_Multipole_Photon_Angle(Particle_Vector dip, std::vector<double> nbars)</tt> has to receive the multipole and the \f$ \bar{n} \f$ 's of every individual dipole. The numbering convention hereby is again as in \f$ \sum\limits_{i<j} \f$ , as is listed in the switch in <tt> Generate_Multipole_Photon_Angle::IndexLookup(unsigned int)</tt>. Therefore, here m_nbar \f$ =\sum|\bar{n}_k| \f$ and not \f$ \bar{n}=\sum\bar{n}_k \f$ as everywhere else. 0081 */ 0082 0083 /*! 0084 \fn double Generate_Multipole_Photon_Angle::CalculateBeta(Vec4D) 0085 \brief calculates \f$ \beta \f$ of a 4-vector 0086 */ 0087 0088 /*! 0089 \fn void Generate_Multipole_Photon_Angle::GenerateMultipoleAngle() 0090 \brief generates \f$ \theta \f$ and \f$ \varphi \f$ 0091 0092 One dipole is generated with probability \f$ \frac{|\bar{n}_k|}{\sum|\bar{n}_k|} \f$ and then the class Generate_Dipole_Photon_Angle is invoked to generate the photon angles 0093 */ 0094 0095 /*! 0096 \fn double Generate_Multipole_Photon_Angle::GetTheta() 0097 \brief returns m_theta ( \f$ \theta \f$ ) 0098 */ 0099 0100 /*! 0101 \fn double Generate_Multipole_Photon_Angle::GetPhi() 0102 \brief returns m_phi ( \f$ \varphi \f$ ) 0103 */ 0104 0105 } 0106 0107 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |