File indexing completed on 2025-04-19 09:09:47
0001 #ifndef AMEGIC_String_String_Handler_H
0002 #define AMEGIC_String_String_Handler_H
0003
0004 #include "ATOOLS/Math/Kabbala.H"
0005 #include "ATOOLS/Math/MyComplex.H"
0006 #include "AMEGIC++/String/String_Generator.H"
0007 #include "AMEGIC++/String/String_Tree.H"
0008 #include "AMEGIC++/String/Values.H"
0009 #include "AMEGIC++/Main/Helicity.H"
0010
0011 namespace AMEGIC {
0012 class String_Handler {
0013 int gen_str,maxgraph,maxhel;
0014 Virtual_String_Generator * sgen;
0015 int own_sgen,own_sk;
0016 int working;
0017 sknot *** sk;
0018 std::string ** stringsk;
0019 String_Tree stree,sthelp;
0020 Values * val;
0021 std::string path;
0022
0023 int m_mode;
0024
0025 void Z_Kill();
0026 void KillStrings();
0027 sknot* MakeSknotAFill(std::string &);
0028 public:
0029 String_Handler(const int &,Basic_Sfuncs *,std::map<std::string,Complex>*);
0030 String_Handler(Virtual_String_Generator *);
0031 String_Handler(Virtual_String_Generator *,sknot ***);
0032 ~String_Handler();
0033 bool SearchValues(const int,std::string &,Basic_Sfuncs *);
0034 void Initialize(const int &,const int &);
0035 void Set_String(const int &,const int &,const std::string &);
0036 void Calculate();
0037 void Complete(Helicity *);
0038 void Output(Helicity *);
0039 void Output(Helicity *,std::string);
0040 sknot *** GetSKnots() { return sk; }
0041 Complex Zvalue(int,int);
0042 Values * Set_Values(std::string &,Basic_Sfuncs *);
0043
0044 Virtual_String_Generator* Get_Generator() { return sgen; }
0045 int Is_String() { return working; }
0046 bool IsLibrary() { return (val!=0); }
0047
0048 inline int NumberOfCouplings() { return sgen->NumberOfCouplings(); }
0049 inline int NumberOfZfuncs() { return sgen->NumberOfzxl(); }
0050
0051 int LibMode() { return m_mode; }
0052 };
0053 }
0054
0055 #endif