Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HELICITY_AbstractVVSTVertex_H
0003 #define HELICITY_AbstractVVSTVertex_H
0004 //
0005 // This is the declaration of the AbstractVVSTVertex class.
0006 //
0007 
0008 #include "VertexBase.h"
0009 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
0010 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
0011 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
0012 #include "AbstractVVSTVertex.fh"
0013 
0014 namespace ThePEG {
0015 namespace Helicity {
0016 
0017 /**
0018  * The AbstractVVSTVertex class is the base class for all vector-vector-scalar-tensor
0019  * interactions in ThePEG.
0020  */
0021 class AbstractVVSTVertex: public VertexBase {
0022 
0023 public:
0024 
0025   /**
0026    * Default constructor
0027    */
0028   AbstractVVSTVertex() : VertexBase(VertexType::VVST) {}
0029 
0030   /**
0031    * Members to calculate the helicity amplitude expressions for vertices
0032    * and off-shell particles.
0033    */
0034   //@{
0035   /**
0036    * Evalulate the vertex.
0037    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0038    * @param vec1  The wavefunction for the first  vector.
0039    * @param vec2  The wavefunction for the second vector.
0040    * @param sca3  The wavefunction for the third  vector.
0041    * @param ten4  The wavefunction for the tensor.
0042    */
0043   virtual Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
0044                const VectorWaveFunction & vec2,
0045                const ScalarWaveFunction & sca3, 
0046                const TensorWaveFunction & ten4) = 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   AbstractVVSTVertex & operator=(const AbstractVVSTVertex &) = delete;
0066 
0067 };
0068 
0069 }
0070 }
0071 
0072 
0073 namespace ThePEG {
0074 
0075 }
0076 #endif /* HELICITY_AbstractVVSTVertex_H */