Back to home page

EIC code displayed by LXR

 
 

    


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