Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HELICITY_AbstractSSSSVertex_H
0003 #define HELICITY_AbstractSSSSVertex_H
0004 //
0005 // This is the declaration of the AbstractSSSSVertex class.
0006 //
0007 
0008 #include "VertexBase.h"
0009 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
0010 #include "AbstractSSSSVertex.fh"
0011 
0012 namespace ThePEG {
0013 namespace Helicity {
0014 
0015 /**
0016  * The AbstractSSSSVertex class is the base class for all scalar-scalar-scalar
0017  * interactions in ThePEG
0018  */
0019 class AbstractSSSSVertex: public VertexBase {
0020 
0021 public:
0022 
0023   /**
0024    * Default constructor
0025    */
0026   AbstractSSSSVertex() : VertexBase(VertexType::SSSS) {}
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 sca1 The wavefunction for the first  scalar.
0037    * @param sca2 The wavefunction for the second scalar.
0038    * @param sca3 The wavefunction for the third  scalar.
0039    * @param sca4 The wavefunction for the fourth scalar.
0040    */
0041   virtual Complex evaluate(Energy2 q2,const ScalarWaveFunction & sca1,
0042                const ScalarWaveFunction & sca2,
0043                const ScalarWaveFunction & sca3,
0044                const ScalarWaveFunction & sca4) = 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 sca2 The wavefunction for the second scalar.
0053    * @param sca3 The wavefunction for the third  scalar.
0054    */
0055   virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out, 
0056                       const ScalarWaveFunction & sca1,
0057                       const ScalarWaveFunction & sca2,
0058                       const ScalarWaveFunction & sca3,
0059                       complex<Energy> mass=-GeV,
0060                       complex<Energy> width=-GeV);
0061   //@}
0062 
0063 public:
0064 
0065   /**
0066    * The standard Init function used to initialize the interfaces.
0067    * Called exactly once for each class by the class description system
0068    * before the main function starts or
0069    * when this class is dynamically loaded.
0070    */
0071   static void Init();
0072 
0073 private:
0074 
0075   /**
0076    * The assignment operator is private and must never be called.
0077    * In fact, it should not even be implemented.
0078    */
0079   AbstractSSSSVertex & operator=(const AbstractSSSSVertex &) = delete;
0080 
0081 };
0082 
0083 }
0084 }
0085 
0086 
0087 namespace ThePEG {
0088 
0089 }
0090 #endif /* HELICITY_AbstractSSSSVertex_H */