ThePEG  1.8.0
AbstractVVSVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractVVSVertex_H
3 #define HELICITY_AbstractVVSVertex_H
4 //
5 // This is the declaration of the AbstractVVSVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
11 #include "AbstractVVSVertex.fh"
12 
13 namespace ThePEG {
14 namespace Helicity {
15 
20 
21 public:
22 
23 
27  AbstractVVSVertex() : VertexBase(VertexType::VVS) {}
28 
41  virtual Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
42  const VectorWaveFunction & vec2,
43  const ScalarWaveFunction & sca3) = 0;
44 
57  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
58  const VectorWaveFunction & vec2,
59  const ScalarWaveFunction & sca3,
60  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
61 
74  virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
75  const VectorWaveFunction & vec1,
76  const VectorWaveFunction & vec2,
77  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
79 
80 public:
81 
88  static void Init();
89 
90 private:
91 
97 
103 
104 };
105 
106 }
107 }
108 
109 #include "ThePEG/Utilities/ClassTraits.h"
110 
111 namespace ThePEG {
112 
117 template <>
118 struct BaseClassTrait<Helicity::AbstractVVSVertex,1> {
120  typedef Helicity::VertexBase NthBase;
121 };
122 
125 template <>
126 struct ClassTraits<Helicity::AbstractVVSVertex>
127  : public ClassTraitsBase<Helicity::AbstractVVSVertex> {
129  static string className() { return "Helicity::AbstractVVSVertex"; }
130 };
131 
134 }
135 
136 #endif /* HELICITY_AbstractVVSVertex_H */
AbstractVVSVertex & operator=(const AbstractVVSVertex &)
The assignment operator is private and must never be called.
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
static AbstractNoPIOClassDescription< AbstractVVSVertex > initAbstractVVSVertex
The static object used to initialize the description of this class.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
AbstractVVSVertex()
Default constructor.
The VertexBase class is the base class for all helicity amplitude vertices.
Definition: VertexBase.h:49
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
static void Init()
The standard Init function used to initialize the interfaces.
Here is the documentation of the AbstractVVSVertex class.
virtual Complex evaluate(Energy2 q2, const VectorWaveFunction &vec1, const VectorWaveFunction &vec2, const ScalarWaveFunction &sca3)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161