File indexing completed on 2025-04-19 09:10:06
0001 #ifndef METOOLS_Explicit_Vertex_Key_H
0002 #define METOOLS_Explicit_Vertex_Key_H
0003
0004 #include "METOOLS/Explicit/Dipole_Info.H"
0005 #include "ATOOLS/Phys/Flavour.H"
0006 #include "ATOOLS/Org/STL_Tools.H"
0007
0008 #include <string>
0009
0010 namespace MODEL {
0011 class Model_Base;
0012 class Single_Vertex;
0013 }
0014
0015 namespace METOOLS {
0016
0017 class Current;
0018 class Vertex;
0019 class Color_Calculator;
0020 class Lorentz_Calculator;
0021
0022 struct Vertex_Key {
0023 private:
0024
0025 Vertex_Key
0026 (const std::vector<Current*> &j,
0027 Current *const c,MODEL::Model_Base *const model,
0028 MODEL::Single_Vertex *const mv=NULL,const std::string &p="",
0029 Vertex *const v=NULL,Color_Calculator *const cc=NULL,
0030 Lorentz_Calculator *const lc=NULL);
0031
0032 public:
0033
0034 Current *p_c, *p_k, *p_kt;
0035 std::vector<Current*> m_j;
0036
0037 MODEL::Model_Base *p_model;
0038 MODEL::Single_Vertex *p_mv;
0039
0040 std::string m_p;
0041 size_t m_n;
0042 mutable int m_d;
0043
0044 mutable std::string m_id;
0045
0046 mutable Vertex *p_v;
0047
0048 mutable Color_Calculator *p_cc;
0049 mutable Lorentz_Calculator *p_lc;
0050
0051 Dipole_Info *p_dinfo;
0052 int m_stype;
0053
0054 static ATOOLS::AutoDelete_Vector<Vertex_Key> s_objects;
0055
0056 static Vertex_Key *New
0057 (const std::vector<Current*> &j,
0058 Current *const c,MODEL::Model_Base *const model,
0059 MODEL::Single_Vertex *const mv=NULL,const std::string &p="",
0060 Vertex *const v=NULL,Color_Calculator *const cc=NULL,
0061 Lorentz_Calculator *const lc=NULL);
0062
0063 void Delete();
0064
0065 std::string Type() const;
0066
0067 const std::string &ID() const;
0068
0069 ATOOLS::Flavour Fl(const size_t &i) const;
0070
0071 Current *J(const size_t &i) const;
0072
0073 };
0074
0075 }
0076
0077 #endif