Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef COMIX_Phasespace_PS_Info_H
0002 #define COMIX_Phasespace_PS_Info_H
0003 
0004 #include "METOOLS/Explicit/C_Object.H"
0005 #include "ATOOLS/Org/STL_Tools.H"
0006 
0007 #include <vector>
0008 #include <iostream>
0009 
0010 namespace COMIX {
0011 
0012   class PS_Info: public METOOLS::CObject {
0013   private:
0014 
0015     double m_w;
0016 
0017     static ATOOLS::AutoDelete_Vector<PS_Info> s_objects;
0018 
0019     friend std::ostream &operator<<(std::ostream &str,const PS_Info &s);
0020 
0021   public:
0022 
0023     static PS_Info *New();
0024     static PS_Info *New(const PS_Info &s);
0025 
0026     CObject* Copy() const;
0027 
0028     void Delete();
0029 
0030     bool IsZero() const;
0031 
0032     inline PS_Info(const PS_Info &i): m_w(i.m_w)
0033     { 
0034       m_c[0]=i.m_c[0]; m_c[1]=i.m_c[1]; m_h=i.m_h; m_s=i.m_s;
0035     }
0036     inline PS_Info(const int &c1=0,const int &c2=0,
0037            const double &w=1.0): m_w(w)
0038     { 
0039       m_c[0]=c1; m_c[1]=c2; m_h=0; m_s=0;
0040     }
0041 
0042     void Add(const CObject *c);
0043     void Divide(const double &d);
0044     void Multiply(const Complex &c);
0045     void Conjugate();
0046     void Invert();
0047 
0048     inline double &operator[](const int i) { return m_w; }
0049 
0050     inline const double &operator[](const int i) const { return m_w; }
0051 
0052   };// end of class PS_Info
0053 
0054   std::ostream &operator<<(std::ostream &str,const PS_Info &s);
0055 
0056 }// end of namespace ATOOLS
0057 
0058 #endif