Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:07

0001 #ifndef METOOLS_Main_Partial_Amplitude_Base_H
0002 #define METOOLS_Main_Partial_Amplitude_Base_H
0003 
0004 #include "METOOLS/Main/Spin_Structure.H"
0005 
0006 namespace METOOLS {
0007 
0008   class  Partial_Amplitude_Base : public Spin_Amplitudes {
0009   protected:
0010     const ATOOLS::Flavour_Vector& p_flavs;
0011     std::vector<int>              p_i; // external indices for flavs and moms
0012     std::vector<bool>             p_out; // incoming/outgoing
0013 
0014     void AssertSpins(int, ...);
0015     void AssertIn(int in);
0016   public:
0017     Partial_Amplitude_Base(const ATOOLS::Flavour_Vector& flavs,
0018                            const std::vector<int>& i,
0019                            const std::vector<bool>& out);
0020     virtual ~Partial_Amplitude_Base();
0021 
0022     static Partial_Amplitude_Base* Select(const ATOOLS::Flavour_Vector& flavs);
0023   };
0024 
0025   class Isotropic : public Partial_Amplitude_Base {
0026   public:
0027     Isotropic(const ATOOLS::Flavour_Vector& flavs,
0028               const std::vector<int>& i, const std::vector<bool>& out);
0029     ~Isotropic() {}
0030 
0031     void Calculate(const ATOOLS::Vec4D_Vector& moms, bool anti=false);
0032   };
0033 
0034 }
0035 
0036 
0037 #endif