Back to home page

EIC code displayed by LXR

 
 

    


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