Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:16

0001 #ifndef SHRIMPS_Ladders_Ladder_Particle_H
0002 #define SHRIMPS_Ladders_Ladder_Particle_H
0003 
0004 #include "ATOOLS/Phys/Particle.H"
0005 #include "ATOOLS/Phys/Flavour.H"
0006 #include "ATOOLS/Math/Poincare.H"
0007 #include "ATOOLS/Math/Vector.H"
0008 #include <map>
0009 
0010 namespace SHRIMPS {
0011   class Ladder_Particle {
0012   private:
0013     ATOOLS::Flavour    m_flav;
0014     ATOOLS::Vec4D      m_mom, m_pos;
0015     ATOOLS::Flow       m_flow;
0016     bool               m_marked, m_IS;
0017     int                m_beam;
0018   public:
0019     Ladder_Particle(const ATOOLS::Flavour & flav=ATOOLS::Flavour(kf_none),
0020             const ATOOLS::Vec4D & mom=ATOOLS::Vec4D(0.,0.,0.,0.),
0021             const ATOOLS::Vec4D & pos=ATOOLS::Vec4D(0.,0.,0.,0.));
0022     Ladder_Particle(const Ladder_Particle & part);
0023     ~Ladder_Particle() { }
0024 
0025     void SetFlow(const unsigned int & pos,const int & code=-1);
0026     ATOOLS::Particle * GetParticle();
0027     
0028     inline const ATOOLS::Flavour & Flavour()       const { return m_flav; }
0029     inline const ATOOLS::Vec4D & Momentum()        const { return m_mom; }
0030     inline const ATOOLS::Vec4D & Position()        const { return m_pos; }
0031     inline const int GetFlow(const size_t & pos)   const { return m_flow.Code(pos); }
0032     inline const bool & IsIS()                     const { return m_IS; }
0033     inline const bool & IsMarked()                 const { return m_marked; }
0034     inline const int & Beam()                      const { return m_beam; }
0035     
0036     inline void SetFlavour(const ATOOLS::Flavour & flav)    { m_flav   = flav; }
0037     inline void SetMomentum(const ATOOLS::Vec4D & mom)      { m_mom    = mom; }
0038     inline void SetPosition(const ATOOLS::Vec4D & pos)      { m_pos    = pos; }
0039     inline void SetIS(const bool & IS)                      { m_IS     = IS; }
0040     inline void SetMark(const bool & mark)                  { m_marked = mark; }
0041     inline void SetBeam(const int & beam)                   { m_beam   = beam; }
0042     inline void BoostBack(const ATOOLS::Poincare & booster) { booster.BoostBack(m_mom); }
0043     inline void Boost(const ATOOLS::Poincare & booster)     { booster.Boost(m_mom); }
0044   };
0045   typedef std::map<double,Ladder_Particle,std::greater<double> > LadderMap;
0046   std::ostream & operator<<(std::ostream & s, const Ladder_Particle & part);
0047   std::ostream & operator<<(std::ostream & s, const LadderMap & lmap);
0048 }
0049 
0050 #endif