File indexing completed on 2025-04-19 09:09:43
0001 #ifndef AHADIC_Formations_Gluon_Decayer_H
0002 #define AHADIC_Formations_Gluon_Decayer_H
0003
0004 #include "AHADIC++/Formation/Gluon_Splitter.H"
0005 #include "AHADIC++/Formation/Trivial_Splitter.H"
0006 #include "AHADIC++/Tools/Singlet_Tools.H"
0007 #include "AHADIC++/Tools/Soft_Cluster_Handler.H"
0008 #include "AHADIC++/Tools/Proto_Particle.H"
0009 #include <list>
0010
0011 namespace AHADIC {
0012 class Gluon_Decayer : public Singlet_Tools {
0013 private:
0014 std::list<Cluster *> * p_cluster_list;
0015 Soft_Cluster_Handler * p_softclusters;
0016 Gluon_Splitter m_splitter;
0017 Trivial_Splitter m_breaker;
0018
0019 Proto_Particle * p_part1, * p_part2;
0020 bool m_analyse;
0021 int m_Nclusters;
0022 std::map<std::string, ATOOLS::Histogram *> m_histos;
0023
0024
0025 bool SplitGluonRing();
0026 Proto_Particle * FirstGluon();
0027 bool Trivial(Proto_Particle * part1,Proto_Particle * part2,
0028 const bool & force=true);
0029 int Step(Proto_Particle * part1,Proto_Particle * part2,
0030 Proto_Particle * part3=NULL);
0031 bool LastStep();
0032 void AnalyseClusters();
0033 public:
0034 Gluon_Decayer(std::list<Cluster *> * cluster_list,
0035 Soft_Cluster_Handler * softclusters);
0036 ~Gluon_Decayer();
0037 void Init();
0038 void Reset();
0039 void ResetN() { m_Nclusters = 0; }
0040 void FillNs(const int & Nhad);
0041
0042 bool operator()(Singlet * singlet);
0043 };
0044 }
0045
0046 #endif