Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef PHOTONS_Main_Define_Dipole_H
0002 #define PHOTONS_Main_Define_Dipole_H
0003 
0004 #include "PHOTONS++/Main/Dipole_Type.H"
0005 
0006 namespace ATOOLS {
0007   class Blob;
0008 }
0009 
0010 namespace PHOTONS {
0011   class Define_Dipole {
0012     private:
0013       bool                    m_success;
0014       bool                    m_photonsadded;
0015       ATOOLS::Blob*           p_blob;
0016       ATOOLS::Particle_Vector m_chargedinparticles;
0017       ATOOLS::Particle_Vector m_neutralinparticles;
0018       ATOOLS::Particle_Vector m_chargedoutparticles;
0019       ATOOLS::Particle_Vector m_neutraloutparticles;
0020       ATOOLS::Particle_Vector m_softphotons;
0021       Particle_Vector_Vector  m_pvv;
0022       Dipole_Type::code       m_dtype;
0023 
0024     public:
0025       Define_Dipole(ATOOLS::Blob*);
0026       ~Define_Dipole();
0027 
0028       void AddRadiation();
0029       bool CheckMasses();
0030 
0031       inline bool DoneSuccessfully()             { return m_success; }
0032       inline bool AddedAnything()                { return m_photonsadded; }
0033   };
0034 
0035 
0036   
0037 
0038   /*!
0039     \file Define_Dipole.H
0040     \brief contains the class Define_Dipole
0041   */
0042 
0043   /*!
0044     \class Define_Dipole
0045     \brief classifies and coordinates the treatment of the multipoles given by Photons class
0046   */
0047   ///////////////////////////////////////////////////////////////////////////////////////
0048   // Description of member variables for Define_Dipole
0049   ///////////////////////////////////////////////////////////////////////////////////////
0050   /*!
0051     \var bool Define_Dipole::m_success
0052     \brief value filled by Dipole_FF/Dipole_FI classes, specifies whether treatment was successful
0053   */
0054 
0055   /*!
0056     \var bool Define_Dipole::m_photonsadded
0057     \brief value filled by Dipole_FF/Dipole_FI classes, tells whether treatment added any photons
0058   */
0059 
0060   /*!
0061     \var Blob* Define_Dipole::p_blob
0062     \brief pointer to blob passed from Photons class
0063   */
0064 
0065   /*!
0066     \var Particle_Vector Define_Dipole::m_chargedinparticles
0067     \brief contains all charged initial state particles of p_blob
0068   */
0069 
0070   /*!
0071     \var Particle_Vector Define_Dipole::m_neutralinparticles
0072     \brief contains all neutral initial state particles of p_blob
0073   */
0074 
0075   /*!
0076     \var Particle_Vector Define_Dipole::m_chargedoutparticles
0077     \brief contains all charged final state particles of p_blob
0078   */
0079 
0080   /*!
0081     \var Particle_Vector Define_Dipole::m_neutraloutparticles
0082     \brief contains all neutral final state particles of p_blob
0083   */
0084 
0085   /*!
0086     \var Particle_Vector Define_Dipole::m_softphotons
0087     \brief contains all photons created by Dipole_FF/Dipole_FI classes
0088   */
0089 
0090   /*!
0091     \var Particle_Vector_Vector Define_Dipole::m_pvv
0092     \brief contains ensemble of all particles of p_blob in respective Particle_Vector's
0093   */
0094 
0095   /*!
0096     \var Dipole_Type::code Define_Dipole::m_dtype
0097     \brief contains the dipole type of p_blob
0098   */
0099   ////////////////////////////////////////////////////////////////////////////////////////////////////
0100   // Description of member methods of Define_Dipole
0101   ////////////////////////////////////////////////////////////////////////////////////////////////////
0102   /*!
0103     \fn Define_Dipole::Define_Dipole(Blob*)
0104     \brief initialises the main parameters for the treatment of the blob
0105 
0106     In particular:
0107     - classifies all particles of the blob into the respective Particle_Vector
0108     - determines the Dipole_Type of the blob
0109     - creates m_pvv to hand over to Dipole_FF/Dipole_FI classes
0110     .
0111   */
0112 
0113   /*!
0114     \fn void Define_Dipole::AddRadiation()
0115     \brief gives m_pvv to the correct treatment class, reconstructs the blob after treatment
0116 
0117     In more detail:
0118     - hands m_pvv over to the Dipole_FF/Dipole_FI classes according to the 
0119       Dipole_Type determined in constructor
0120     - if treatment was successful, i.e. momentum conservation is fulfilled, 
0121       the p_blob will be reconstructed with the corrected particle momenta 
0122       and all photons
0123     - values of m_success and m_addedphotons are assigned
0124     .
0125   */
0126 
0127   /*!
0128     \fn bool Define_Dipole::DoneSuccessfully()
0129     \brief returns m_success
0130   */
0131 
0132   /*!
0133     \fn bool Define_Dipole::AddedAnything()
0134     \brief returns m_photonsadded
0135   */
0136 
0137 
0138 }
0139 #endif