Back to home page

EIC code displayed by LXR

 
 

    


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

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