Back to home page

EIC code displayed by LXR

 
 

    


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

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