Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SHERPA_SoftPhysics_Singlet_Sorter_H
0002 #define SHERPA_SoftPhysics_Singlet_Sorter_H
0003 
0004 #include "ATOOLS/Phys/Particle_List.H"
0005 #include "ATOOLS/Phys/Blob_List.H"
0006 #include "ATOOLS/Phys/Momenta_Stretcher.H"
0007 #include "ATOOLS/Org/CXXFLAGS.H"
0008 #include "ATOOLS/Org/Return_Value.H"
0009 #include "ATOOLS/Org/Terminator_Objects.H"
0010 #include <vector>
0011 
0012 namespace SHERPA {
0013   class Singlet_Sorter {
0014   private :
0015     std::list<ATOOLS::Particle *>   m_hadrons;
0016     ATOOLS::Part_List             * p_partlist;
0017     std::list<ATOOLS::Part_List * > m_partlists;
0018     ATOOLS:: Momenta_Stretcher      m_stretcher;
0019 
0020     bool HarvestParticles(ATOOLS::Blob_List *);
0021     bool FillParticleLists(ATOOLS::Blob * blob);
0022     void DealWithHadrons(ATOOLS::Blob_List * bloblist);
0023     bool DecomposeIntoSinglets();
0024     bool NextSinglet(ATOOLS::Part_List & sorted,const bool trip);
0025     ATOOLS::Particle  * FindNext(const size_t col);
0026   public:
0027     Singlet_Sorter();
0028     ~Singlet_Sorter();
0029     ATOOLS::Return_Value::code operator()(ATOOLS::Blob_List *);
0030     ATOOLS::Blob * MakeBlob();
0031     void ResetPartLists();
0032   };
0033 }
0034 
0035 #endif