Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HELICITY_AbstractVVVVVertex_H
0003 #define HELICITY_AbstractVVVVVertex_H
0004 //
0005 // This is the declaration of the AbstractVVVVVertex class.
0006 //
0007 
0008 #include "VertexBase.h"
0009 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
0010 #include "AbstractVVVVVertex.fh"
0011 
0012 namespace ThePEG {
0013 namespace Helicity {
0014 
0015 /**
0016  * The AbstractVVVVVertex class is the base class for
0017  * vector-vector-vector-vector interactions in ThePEG
0018  */
0019 class AbstractVVVVVertex: public VertexBase {
0020 
0021 public:
0022 
0023   /**
0024    * Default constructor
0025    */
0026   AbstractVVVVVertex() : VertexBase(VertexType::VVVV) {}
0027   
0028   /**
0029    * Members to calculate the helicity amplitude expressions for vertices
0030    * and off-shell particles.
0031    */
0032   //@{
0033   /**
0034    * Evaluate the vertex.
0035    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0036    * @param iopt Evaluation option, 0 just evaluate the four point vertex, 1
0037    * include all the three point diagrams as well.
0038    * @param vec1 The wavefunction for the first  vector.
0039    * @param vec2 The wavefunction for the second vector.
0040    * @param vec3 The wavefunction for the third  vector.
0041    * @param vec4 The wavefunction for the fourth vector.
0042    */
0043   virtual Complex evaluate(Energy2 q2, int iopt,
0044                const VectorWaveFunction & vec1, 
0045                const VectorWaveFunction & vec2,
0046                const VectorWaveFunction & vec3, 
0047                const VectorWaveFunction & vec4) = 0;
0048   //@}
0049 
0050 public:
0051 
0052   /**
0053    * The standard Init function used to initialize the interfaces.
0054    * Called exactly once for each class by the class description system
0055    * before the main function starts or
0056    * when this class is dynamically loaded.
0057    */
0058   static void Init();
0059 
0060 private:
0061 
0062   /**
0063    * The assignment operator is private and must never be called.
0064    * In fact, it should not even be implemented.
0065    */
0066   AbstractVVVVVertex & operator=(const AbstractVVVVVertex &) = delete;
0067 
0068 };
0069 
0070 }
0071 }
0072 
0073 
0074 namespace ThePEG {
0075 
0076 }
0077 #endif /* HELICITY_AbstractVVVVVertex_H */