Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SHERPA_SoftPhysics_Soft_Photon_Handler_H
0002 #define SHERPA_SoftPhysics_Soft_Photon_Handler_H
0003 
0004 #include "ATOOLS/Phys/Momenta_Stretcher.H"
0005 #include <string>
0006 #include <vector>
0007 
0008 namespace ATOOLS {
0009   class Blob;
0010   class Particle;
0011   typedef std::vector<Blob *> Blob_Vector;
0012   typedef std::vector<Particle *> Particle_Vector;
0013 }
0014 
0015 namespace PHOTONS {
0016   class Photons;
0017 }
0018 
0019 namespace SHERPA {
0020 
0021   class Resonance_Finder;
0022   class Matrix_Element_Handler;
0023 
0024   class Soft_Photon_Handler {
0025   private:
0026     bool                      m_photonsadded;
0027     std::string               m_name;
0028     ATOOLS::Momenta_Stretcher m_stretcher;
0029     PHOTONS::Photons        * p_yfs;
0030     Resonance_Finder        * p_clusterer;
0031     Matrix_Element_Handler  * p_mehandler;
0032 
0033     void BoostDecayBlob(ATOOLS::Blob * blob);
0034     bool CheckOnshellness(ATOOLS::Blob * blob);
0035   public :
0036     // constructor
0037     Soft_Photon_Handler(Matrix_Element_Handler*);
0038     // destructor
0039     ~Soft_Photon_Handler();
0040     bool AddRadiation(ATOOLS::Blob *);
0041     bool AddRadiation(ATOOLS::Particle_Vector&, ATOOLS::Blob_Vector& blobs);
0042 
0043     inline std::string SoftQEDGenerator() { return m_name; }
0044     inline size_t      AddedAnything()    { return m_photonsadded; }
0045     inline Resonance_Finder * Clusterer() { return p_clusterer; }
0046   };// end of class Soft_Photon_Handler
0047 
0048 }// end of namespace SHERPA
0049 
0050 #endif
0051