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
0037 Soft_Photon_Handler(Matrix_Element_Handler*);
0038
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 };
0047
0048 }
0049
0050 #endif
0051