File indexing completed on 2025-04-19 09:10:13
0001 #ifndef RECONNECTIONS_Main_Reconnection_Base_H
0002 #define RECONNECTIONS_Main_Reconnection_Base_H
0003
0004 #include "ATOOLS/Phys/Blob_List.H"
0005 #include "ATOOLS/Math/Histogram.H"
0006 #include "ATOOLS/Org/Return_Value.H"
0007
0008 namespace RECONNECTIONS {
0009 typedef std::pair<unsigned int,unsigned int> colpair;
0010
0011 class Reconnection_Base {
0012 protected:
0013 ATOOLS::ParticleSet m_parts[2];
0014 std::map<unsigned int, ATOOLS::Particle *> m_cols[2];
0015 ATOOLS::Part_List m_particles;
0016 bool m_found;
0017
0018 bool m_analysis;
0019 std::map<std::string, ATOOLS::Histogram * > m_histomap;
0020
0021 virtual void SetParameters() = 0;
0022 bool HarvestParticles(ATOOLS::Blob_List * blobs);
0023 void HarvestParticleInfo(ATOOLS::Particle * part);
0024 bool BalanceColours();
0025 void FillMassesInHistogram(ATOOLS::Histogram * histo);
0026 public:
0027 Reconnection_Base();
0028 virtual ~Reconnection_Base();
0029
0030 virtual void Initialize();
0031 virtual void Reset();
0032 virtual int operator()(ATOOLS::Blob_List *const blobs) = 0;
0033 virtual double Distance(ATOOLS::Particle * trip,ATOOLS::Particle * anti) = 0;
0034
0035 ATOOLS::Part_List * GetParticles() { return &m_particles; }
0036 ATOOLS::ParticleSet * GetParts(const size_t & pos) { return &m_parts[pos]; }
0037 };
0038 }
0039 #endif