File indexing completed on 2025-04-19 09:09:43
0001 #ifndef AHADIC_Main_Ahadic_H
0002 #define AHADIC_Main_Ahadic_H
0003
0004 #include "AHADIC++/Formation/Beam_Particles_Shifter.H"
0005 #include "AHADIC++/Formation/Singlet_Former.H"
0006 #include "AHADIC++/Formation/Singlet_Checker.H"
0007 #include "AHADIC++/Formation/Gluon_Decayer.H"
0008 #include "AHADIC++/Tools/Soft_Cluster_Handler.H"
0009 #include "AHADIC++/Decays/Cluster_Decayer.H"
0010 #include "AHADIC++/Tools/Cluster.H"
0011 #include "ATOOLS/Phys/Blob_List.H"
0012 #include "ATOOLS/Phys/Particle_List.H"
0013 #include "ATOOLS/Phys/Fragmentation_Base.H"
0014 #include "ATOOLS/Math/Histogram.H"
0015 #include "ATOOLS/Org/Return_Value.H"
0016 #include "ATOOLS/Org/CXXFLAGS.H"
0017 #include <list>
0018
0019 namespace AHADIC {
0020 class Ahadic : public ATOOLS::Fragmentation_Base {
0021 private:
0022 std::list<Singlet *> m_singlet_list;
0023 std::list<Cluster *> m_cluster_list;
0024 std::list<Proto_Particle *> m_hadron_list;
0025
0026 Soft_Cluster_Handler m_softclusters;
0027 Beam_Particles_Shifter m_beamparticles;
0028 Singlet_Former m_sformer;
0029 Singlet_Checker m_singletchecker;
0030 Gluon_Decayer m_gluondecayer;
0031 Cluster_Decayer m_clusterdecayer;
0032
0033 ATOOLS::Vec4D m_totmom;
0034
0035 bool ExtractSinglets(ATOOLS::Blob * blob);
0036 bool ShiftBeamParticles();
0037 bool CheckSinglets();
0038 bool DecayGluons();
0039 bool DecayClusters();
0040 void Reset(ATOOLS::Blob * blob=NULL);
0041
0042 ATOOLS::Return_Value::code Hadronize(ATOOLS::Blob * blob, int retry=0);
0043 void FillOutgoingParticles(ATOOLS::Blob * blob);
0044
0045 bool SanityCheck(ATOOLS::Blob * blob,double norm2);
0046 void CleanUp(ATOOLS::Blob * blob);
0047 public:
0048 Ahadic(std::string shower);
0049 ~Ahadic();
0050
0051 ATOOLS::Return_Value::code Hadronize(ATOOLS::Blob_List *);
0052 };
0053 }
0054 #endif