thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
AbstractVVVSVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractVVVSVertex_H
3 #define HELICITY_AbstractVVVSVertex_H
4 //
5 // This is the declaration of the AbstractVVVSVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
11 #include "AbstractVVVSVertex.fh"
12 
13 namespace ThePEG {
14 namespace Helicity {
15 
21 
22 public:
23 
27  AbstractVVVSVertex() : VertexBase(VertexType::VVVS) {}
28 
42  virtual Complex evaluate(Energy2 q2, const VectorWaveFunction & vec1,
43  const VectorWaveFunction & vec2,
44  const VectorWaveFunction & vec3,
45  const ScalarWaveFunction & sca) = 0;
46 
60  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
61  const VectorWaveFunction & vec2,
62  const VectorWaveFunction & vec3,
63  const ScalarWaveFunction & sca,
64  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
65 
79  virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
80  const VectorWaveFunction & vec1,
81  const VectorWaveFunction & vec2,
82  const VectorWaveFunction & vec3,
83  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
85 
86 public:
87 
94  static void Init();
95 
96 private:
97 
102  AbstractVVVSVertex & operator=(const AbstractVVVSVertex &) = delete;
103 
104 };
105 
106 }
107 }
108 
109 #endif /* HELICITY_AbstractVVVSVertex_H */
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
AbstractVVVSVertex & operator=(const AbstractVVVSVertex &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
The VertexBase class is the base class for all helicity amplitude vertices.
Definition: VertexBase.h:83
The AbstractVVVSVertex class provides the base class for all vector-vector-vector interactions in The...
AbstractVVVSVertex()
Default constructor.
virtual Complex evaluate(Energy2 q2, const VectorWaveFunction &vec1, const VectorWaveFunction &vec2, const VectorWaveFunction &vec3, const ScalarWaveFunction &sca)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...