Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:23

0001 // -*- C++ -*-
0002 #ifndef Helicity_AbstractFFFFVertex_H
0003 #define Helicity_AbstractFFFFVertex_H
0004 //
0005 // This is the declaration of the AbstractFFFFVertex class.
0006 //
0007 
0008 #include "VertexBase.h"
0009 #include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
0010 #include "ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h"
0011 #include "AbstractFFFFVertex.fh"
0012 
0013 namespace ThePEG {
0014 namespace Helicity {
0015 
0016 /**
0017  * The AbstractFFFFVertex class provides a base class for all 4-fermion vertices
0018  * in ThePEG
0019  */
0020 class AbstractFFFFVertex: public VertexBase {
0021 
0022 public:
0023 
0024   /**
0025    * The default constructor.
0026    */
0027   AbstractFFFFVertex() : VertexBase(VertexType::FFFF) {}
0028 
0029   /**
0030    * Members to calculate the helicity amplitude expressions for vertices
0031    * and off-shell particles.
0032    */
0033   //@{
0034   /**
0035    * Evalulate the vertex.
0036    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0037    * @param sp1   The wavefunction for the first ferimon.
0038    * @param sp2   The wavefunction for the second ferimon.
0039    * @param sbar1 The wavefunction for the first antifermion.
0040    * @param sbar2 The wavefunction for the second antifermion.
0041    */
0042   virtual Complex evaluate(Energy2 q2,
0043                const SpinorWaveFunction & sp1,
0044                const SpinorBarWaveFunction & sbar1,
0045                const SpinorWaveFunction & sp2,
0046                const SpinorBarWaveFunction & sbar2) = 0;
0047   //@}
0048 
0049 public:
0050 
0051   /**
0052    * The standard Init function used to initialize the interfaces.
0053    * Called exactly once for each class by the class description system
0054    * before the main function starts or
0055    * when this class is dynamically loaded.
0056    */
0057   static void Init();
0058   
0059 private:
0060 
0061   /**
0062    * The assignment operator is private and must never be called.
0063    * In fact, it should not even be implemented.
0064    */
0065   AbstractFFFFVertex & operator=(const AbstractFFFFVertex &) = delete;
0066 
0067 };
0068 
0069 }
0070 }
0071 
0072 
0073 #endif /* Helicity_AbstractFFFFVertex_H */