Back to home page

EIC code displayed by LXR

 
 

    


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

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