Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HELICITY_AbstractVVVTVertex_H
0003 #define HELICITY_AbstractVVVTVertex_H
0004 //
0005 // This is the declaration of the AbstractVVVTVertex class.
0006 //
0007 
0008 #include "VertexBase.h"
0009 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
0010 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
0011 #include "AbstractVVVTVertex.fh"
0012 
0013 namespace ThePEG {
0014 namespace Helicity {
0015 
0016 /**
0017  * The AbstractVVVTVertex class is the base class for all vector-vector-vector-tensor
0018  * interactions in ThePEG.
0019  */
0020 class AbstractVVVTVertex: public VertexBase {
0021 
0022 public:
0023 
0024   /**
0025    * Default constructor
0026    */
0027   AbstractVVVTVertex() : VertexBase(VertexType::VVVT) {}
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 vec1  The wavefunction for the first  vector.
0038    * @param vec2  The wavefunction for the second vector.
0039    * @param vec3  The wavefunction for the third  vector.
0040    * @param ten4  The wavefunction for the tensor.
0041    */
0042   virtual Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
0043                const VectorWaveFunction & vec2,
0044                const VectorWaveFunction & vec3, 
0045                const TensorWaveFunction & ten4) = 0;
0046   //@}
0047 
0048 public:
0049 
0050   /**
0051    * The standard Init function used to initialize the interfaces.
0052    * Called exactly once for each class by the class description system
0053    * before the main function starts or
0054    * when this class is dynamically loaded.
0055    */
0056   static void Init();
0057 
0058 private:
0059 
0060   /**
0061    * The assignment operator is private and must never be called.
0062    * In fact, it should not even be implemented.
0063    */
0064   AbstractVVVTVertex & operator=(const AbstractVVVTVertex &) = delete;
0065 
0066 };
0067 
0068 }
0069 }
0070 
0071 
0072 namespace ThePEG {
0073 
0074 }
0075 #endif /* HELICITY_AbstractVVVTVertex_H */