ThePEG  1.8.0
AbstractVVTVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractVVTVertex_H
3 #define HELICITY_AbstractVVTVertex_H
4 //
5 // This is the declaration of the AbstractVVTVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
11 #include "AbstractVVTVertex.fh"
12 
13 namespace ThePEG {
14 namespace Helicity {
15 
20 
21 public:
22 
23 
27  AbstractVVTVertex() : VertexBase(VertexType::VVT) {}
28 
42  virtual Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
43  const VectorWaveFunction & vec2,
44  const TensorWaveFunction & ten3,
45  Energy vmass=-GeV) = 0;
46 
60  virtual TensorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
61  const VectorWaveFunction & vec1,
62  const VectorWaveFunction & vec2,
63  Energy vmass=-GeV,
64  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
65 
78  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
79  const VectorWaveFunction & vec1,
80  const TensorWaveFunction & ten3,
81  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
83 
84 public:
85 
92  static void Init();
93 
94 private:
95 
101 
107 
108 };
109 
110 }
111 }
112 
113 #include "ThePEG/Utilities/ClassTraits.h"
114 
115 namespace ThePEG {
116 
121 template <>
122 struct BaseClassTrait<Helicity::AbstractVVTVertex,1> {
124  typedef Helicity::VertexBase NthBase;
125 };
126 
129 template <>
130 struct ClassTraits<Helicity::AbstractVVTVertex>
131  : public ClassTraitsBase<Helicity::AbstractVVTVertex> {
133  static string className() { return "Helicity::AbstractVVTVertex"; }
134 };
135 
138 }
139 
140 #endif /* HELICITY_AbstractVVTVertex_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:681
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
AbstractVVTVertex & operator=(const AbstractVVTVertex &)
The assignment operator is private and must never be called.
QTY< 0, 1, 0 >::Type Energy
Energy.
Definition: Unitsystem.h:34
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...
virtual Complex evaluate(Energy2 q2, const VectorWaveFunction &vec1, const VectorWaveFunction &vec2, const TensorWaveFunction &ten3, Energy vmass=-GeV)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
static void Init()
The standard Init function used to initialize the interfaces.
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
static AbstractNoPIOClassDescription< AbstractVVTVertex > initAbstractVVTVertex
The static object used to initialize the description of this class.
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
Here is the documentation of the AbstractVVTVertex class.
AbstractVVTVertex()
Default constructor.