Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef RECONNECTIONS_Main_Reconnect_By_Singlet_H
0002 #define RECONNECTIONS_Main_Reconnect_By_Singlet_H
0003 
0004 #include "RECONNECTIONS/Main/Reconnection_Base.H"
0005 #include "RECONNECTIONS/Main/Reconnection_Weights.H"
0006 
0007 namespace RECONNECTIONS {
0008   class Reconnect_By_Singlet : public Reconnection_Base {
0009   private:    
0010     Reconnection_Weights m_weights;
0011     int    m_Pmode;
0012     double m_Q02, m_etaQ, m_R02, m_etaR, m_reshuffle, m_restring;
0013     std::list<ATOOLS::Part_List *> m_singlets;    
0014     
0015     void SetParameters();
0016     void MakeSinglets();
0017     void FlattenSinglets();
0018     ATOOLS::Particle * FindStart();
0019     ATOOLS::Particle * FindNext(const size_t & col);
0020     void ReshuffleSinglets();
0021     bool ReshuffleSinglet(ATOOLS::Part_List * singlet);
0022     void ReconnectSinglets();
0023     void SpliceSinglets(ATOOLS::Part_List * sing1,ATOOLS::Part_List * sing2,
0024             ATOOLS::Part_Iterator & pit1,ATOOLS::Part_Iterator & pit2);
0025     void AftermathOfSlicing(ATOOLS::Particle * part11,ATOOLS::Particle * part12,
0026                 ATOOLS::Particle * part21,ATOOLS::Particle * part22);
0027     double MomDistance(ATOOLS::Particle * trip,ATOOLS::Particle * anti);
0028     double PosDistance(ATOOLS::Particle * trip,ATOOLS::Particle * anti);
0029     double ColDistance(ATOOLS::Particle * trip,ATOOLS::Particle * anti);
0030   public:
0031     Reconnect_By_Singlet();
0032     ~Reconnect_By_Singlet();
0033 
0034     int    operator()(ATOOLS::Blob_List *const blobs);
0035     void   Reset();
0036     double Distance(ATOOLS::Particle * trip,ATOOLS::Particle * anti);
0037   };
0038 }
0039 #endif