File indexing completed on 2025-04-19 09:10:07
0001 #ifndef METOOLS_Main_Three_Particle_Amplitudes_H
0002 #define METOOLS_Main_Three_Particle_Amplitudes_H
0003
0004 #include "METOOLS/Main/Partial_Amplitude_Base.H"
0005 #include "METOOLS/Main/Polarization_Tools.H"
0006 #include "METOOLS/Main/XYZFuncs.H"
0007
0008 namespace METOOLS {
0009
0010 class SSS : public Partial_Amplitude_Base {
0011 private:
0012 public:
0013 SSS(const ATOOLS::Flavour_Vector& flavs,
0014 const std::vector<int>& i, const std::vector<bool>& out);
0015 ~SSS() {}
0016
0017 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0018 };
0019
0020 class SFF : public Partial_Amplitude_Base {
0021 private:
0022 Complex m_cL, m_cR;
0023 int m_bar, m_nonbar;
0024 XYZFunc * p_xyz;
0025 public:
0026 SFF(const ATOOLS::Flavour_Vector& flavs,
0027 const std::vector<int>& i, const std::vector<bool>& out,
0028 const Complex cl,const Complex cR);
0029 ~SFF() { if (p_xyz) delete p_xyz; }
0030
0031 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0032 };
0033
0034 class SFF_FPI : public Partial_Amplitude_Base {
0035 private:
0036 Complex m_c;
0037 int m_bar, m_nonbar;
0038 XYZFunc * p_xyz;
0039 public:
0040 SFF_FPI(const ATOOLS::Flavour_Vector& flavs,
0041 const std::vector<int>& i, const std::vector<bool>& out,
0042 const Complex c=Complex(1.0,0.0));
0043 ~SFF_FPI() { if (p_xyz) delete p_xyz; }
0044
0045 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0046 };
0047
0048 class SSV : public Partial_Amplitude_Base {
0049 private:
0050 public:
0051 SSV(const ATOOLS::Flavour_Vector& flavs,
0052 const std::vector<int>& i, const std::vector<bool>& out);
0053 ~SSV() {}
0054
0055 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0056 };
0057
0058 class SVV : public Partial_Amplitude_Base {
0059 private:
0060 public:
0061 SVV(const ATOOLS::Flavour_Vector& flavs,
0062 const std::vector<int>& i, const std::vector<bool>& out);
0063 ~SVV() {}
0064
0065 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0066 };
0067
0068 class VFF : public Partial_Amplitude_Base {
0069 private:
0070 Complex m_cL, m_cR;
0071 int m_bar, m_nonbar;
0072 XYZFunc * p_xyz;
0073 public:
0074 VFF(const ATOOLS::Flavour_Vector& flavs,
0075 const std::vector<int>& i, const std::vector<bool>& out,
0076 const Complex cl,const Complex cR);
0077 ~VFF() { if (p_xyz) delete p_xyz; }
0078
0079 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0080 };
0081
0082 class VVV : public Partial_Amplitude_Base {
0083 private:
0084 public:
0085 VVV(const ATOOLS::Flavour_Vector& flavs,
0086 const std::vector<int>& i, const std::vector<bool>& out);
0087 ~VVV() {}
0088
0089 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0090 };
0091
0092 class TSS : public Partial_Amplitude_Base {
0093 private:
0094 public:
0095 TSS(const ATOOLS::Flavour_Vector& flavs,
0096 const std::vector<int>& i, const std::vector<bool>& out);
0097 ~TSS() {}
0098
0099 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0100 };
0101
0102 class TVS : public Partial_Amplitude_Base {
0103 private:
0104 public:
0105 TVS(const ATOOLS::Flavour_Vector& flavs,
0106 const std::vector<int>& i, const std::vector<bool>& out);
0107 ~TVS() {}
0108
0109 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0110 };
0111
0112 class TVV : public Partial_Amplitude_Base {
0113 private:
0114 public:
0115 TVV(const ATOOLS::Flavour_Vector& flavs,
0116 const std::vector<int>& i, const std::vector<bool>& out);
0117 ~TVV() {}
0118
0119 void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0120 };
0121 }
0122
0123 #endif