File indexing completed on 2025-04-19 09:09:44
0001 #ifndef AHADIC_Tools_Proto_Particle_H
0002 #define AHADIC_Tools_Proto_Particle_H
0003
0004 #include "ATOOLS/Phys/Particle.H"
0005 #include <iostream>
0006
0007 namespace AHADIC {
0008 class Proto_Particle {
0009 private:
0010 ATOOLS::Flavour m_flav;
0011 ATOOLS::Vec4D m_momentum;
0012 size_t m_gen;
0013 double m_kt2max;
0014 bool m_isleading, m_isbeam;
0015 public:
0016 Proto_Particle(const Proto_Particle & proto);
0017 Proto_Particle(const ATOOLS::Particle & part);
0018 Proto_Particle(const ATOOLS::Flavour & flav=ATOOLS::Flavour(kf_none),
0019 const ATOOLS::Vec4D & mom=ATOOLS::Vec4D(0.,0.,0.,0.),
0020 bool leading=false,bool beam=false);
0021 ~Proto_Particle();
0022
0023 ATOOLS::Flavour Flavour() const { return m_flav; }
0024 ATOOLS::Vec4D Momentum() const { return m_momentum; }
0025 size_t Generation() const { return m_gen; }
0026 double KT2_Max() const { return m_kt2max; }
0027 bool IsLeading() const { return m_isleading; }
0028 bool IsBeam() const { return m_isbeam; }
0029
0030 void SetFlavour(const ATOOLS::Flavour & flav) { m_flav = flav; }
0031 void SetMomentum(const ATOOLS::Vec4D & mom) { m_momentum = mom; }
0032 void SetGeneration(const size_t & gen) { m_gen = gen; }
0033 void SetKT2_Max(const double & kt2max) { m_kt2max = kt2max; }
0034 void SetLeading(const bool & lead) { m_isleading = lead; }
0035 void SetBeam(const bool & beam) { m_isbeam = beam; }
0036
0037
0038 static std::set<Proto_Particle *> s_protos;
0039 static void Reset();
0040
0041 ATOOLS::Particle * operator()();
0042 };
0043
0044 std::ostream & operator<<(std::ostream &,const Proto_Particle &);
0045 }
0046 #endif