File indexing completed on 2025-04-19 09:09:45
0001 #ifndef AMEGIC_Amplitude_Amplitude_Base_H
0002 #define AMEGIC_Amplitude_Amplitude_Base_H
0003
0004 #include "ATOOLS/Math/MyComplex.H"
0005 #include "ATOOLS/Phys/Flavour.H"
0006 #include "AMEGIC++/Amplitude/Zfunc.H"
0007
0008 namespace AMEGIC {
0009
0010 class String_Handler;
0011 class Point;
0012 class Basic_Sfuncs;
0013
0014 class Amplitude_Base {
0015 protected:
0016 int buildstring;
0017 public:
0018 int on;
0019 int topnum, permnum;
0020 virtual ~Amplitude_Base() {}
0021 virtual void PrintGraph() = 0;
0022 virtual Complex Zvalue(int) = 0;
0023 virtual Complex Zvalue(int,int*) = 0;
0024 virtual Complex Zvalue(String_Handler * sh,int ihel) =0;
0025 virtual void ClearCalcList() = 0;
0026 virtual void KillZList() = 0;
0027 virtual void FillCoupling(String_Handler*) {};
0028 virtual void SetNumber(int&) = 0;
0029 virtual Amplitude_Base* operator[](const int i) { return this; }
0030 virtual Amplitude_Base* GetAmplitude(const int) = 0;
0031 virtual int GetNumber() { return 0; }
0032 virtual bool IsGroup() { return false; }
0033
0034 virtual void SetStringOn();
0035 virtual void SetStringOff();
0036 virtual Point* GetPointlist();
0037 virtual void Add(Amplitude_Base*, int sign=1);
0038 virtual int Size();
0039
0040 virtual Zfunc_List* GetZlist();
0041 virtual Pfunc_List* GetPlist();
0042
0043 virtual int GetSign();
0044 virtual void SetSign(int);
0045
0046 virtual void BuildGlobalString(int*,int,Basic_Sfuncs*,ATOOLS::Flavour*,String_Handler*);
0047
0048 virtual void DefineOrder(const std::vector<int> &o);
0049 virtual const std::vector<int> &GetOrder();
0050 };
0051 }
0052 #endif
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064