Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HELICITY_AbstractVVTVertex_H
0003 #define HELICITY_AbstractVVTVertex_H
0004 //
0005 // This is the declaration of the AbstractVVTVertex class.
0006 //
0007 
0008 #include "VertexBase.h"
0009 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
0010 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
0011 #include "AbstractVVTVertex.fh"
0012 
0013 namespace ThePEG {
0014 namespace Helicity {
0015 
0016 /**
0017  * Here is the documentation of the AbstractVVTVertex class.
0018  */
0019 class AbstractVVTVertex: public VertexBase {
0020 
0021 public:
0022 
0023 
0024   /**
0025    * Default constructor
0026    */
0027   AbstractVVTVertex() : VertexBase(VertexType::VVT) {}
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 ten3  The wavefunction for the tensor.
0040    * @param vmass The mass of the vector boson
0041    */
0042   virtual Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
0043                const VectorWaveFunction & vec2,
0044                const TensorWaveFunction & ten3,
0045                Energy vmass=-GeV) = 0;
0046 
0047   /**
0048    * Evaluate the off-shell tensor coming from the vertex.
0049    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0050    * @param iopt Option of the shape of the Breit-Wigner for the off-shell tensor.
0051    * @param out The ParticleData pointer for the off-shell tensor.
0052    * @param vec1  The wavefunction for the first  vector.
0053    * @param vec2  The wavefunction for the second vector.
0054    * @param mass The mass of the off-shell particle if not taken from the ParticleData
0055    * object
0056    * @param width The width of the off-shell particle if not taken from the ParticleData
0057    * object
0058    * @param vmass The mass of the vector boson
0059    */
0060   virtual TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
0061                       const VectorWaveFunction & vec1,
0062                       const VectorWaveFunction & vec2,
0063                       Energy vmass=-GeV,
0064                       complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
0065 
0066   /**
0067    * Evaluate the off-shell vector coming from the vertex.
0068    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0069    * @param iopt Option of the shape of the Breit-Wigner for the off-shell vector.
0070    * @param out The ParticleData pointer for the off-shell vector.
0071    * @param vec1  The wavefunction for the first vector.
0072    * @param ten3  The wavefunction for the tensor.
0073    * @param mass The mass of the off-shell particle if not taken from the ParticleData
0074    * object
0075    * @param width The width of the off-shell particle if not taken from the ParticleData
0076    * object
0077    */
0078   virtual VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
0079                       const VectorWaveFunction & vec1,
0080                       const TensorWaveFunction & ten3,
0081                       complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
0082   //@}
0083 
0084 public:
0085 
0086   /**
0087    * The standard Init function used to initialize the interfaces.
0088    * Called exactly once for each class by the class description system
0089    * before the main function starts or
0090    * when this class is dynamically loaded.
0091    */
0092   static void Init();
0093 
0094 private:
0095 
0096   /**
0097    * The assignment operator is private and must never be called.
0098    * In fact, it should not even be implemented.
0099    */
0100   AbstractVVTVertex & operator=(const AbstractVVTVertex &) = delete;
0101 
0102 };
0103 
0104 }
0105 }
0106 
0107 
0108 namespace ThePEG {
0109 
0110 }
0111 #endif /* HELICITY_AbstractVVTVertex_H */