File indexing completed on 2025-04-19 09:09:44
0001 #ifndef AHADIC_Tools_Singlet_Tools_H
0002 #define AHADIC_Tools_Singlet_Tools_H
0003
0004 #include "AHADIC++/Tools/Proto_Particle.H"
0005 #include "AHADIC++/Tools/Constituents.H"
0006 #include <list>
0007
0008 namespace AHADIC {
0009 class Singlet : public std::list<Proto_Particle *> {
0010 bool ReorderCriterion(Proto_Particle * first=NULL);
0011 private:
0012 public:
0013 Singlet();
0014 ~Singlet();
0015 void Reorder(Proto_Particle * first=NULL);
0016 void Erase(Proto_Particle * ref);
0017 void StripSingletOfGluons();
0018 bool Combine(Proto_Particle * part1,Proto_Particle * part2);
0019 double Mass2() const;
0020 ATOOLS::Vec4D Momentum() const;
0021 };
0022
0023 std::ostream & operator<<(std::ostream &,const Singlet &);
0024
0025 class Singlet_Tools {
0026 protected:
0027 Constituents * p_constituents;
0028 Singlet * p_singlet;
0029
0030 double m_minQmass, m_mass;
0031 public:
0032 Singlet_Tools();
0033 ~Singlet_Tools() {}
0034
0035 virtual void Init();
0036 virtual bool CheckMass(Proto_Particle * part1,Proto_Particle * part2);
0037 };
0038 }
0039
0040 #endif