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 };
0053
0054 std::ostream &operator<<(std::ostream &str,const PS_Info &s);
0055
0056 }
0057
0058 #endif