ThePEG  1.8.0
AbstractSSTVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractSSTVertex_H
3 #define HELICITY_AbstractSSTVertex_H
4 //
5 // This is the declaration of the AbstractSSTVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/TensorWaveFunction.h"
11 #include "AbstractSSTVertex.fh"
12 
13 namespace ThePEG {
14 namespace Helicity {
15 
21 
22 public:
23 
24 
28  AbstractSSTVertex() : VertexBase(VertexType::SST) {}
29 
42  virtual Complex evaluate(Energy2 q2, const ScalarWaveFunction & sca1,
43  const ScalarWaveFunction & sca2,
44  const TensorWaveFunction & ten3) = 0;
45 
58  virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
59  const ScalarWaveFunction & sca1,
60  const TensorWaveFunction & ten3,
61  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
62 
75  virtual TensorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
76  const ScalarWaveFunction & sca1,
77  const ScalarWaveFunction & sca2,
78  complex<Energy> mass=-GeV, complex<Energy> width=-GeV) = 0;
80 
81 public:
82 
89  static void Init();
90 
91 private:
92 
98 
104 
105 };
106 
107 }
108 }
109 
110 #include "ThePEG/Utilities/ClassTraits.h"
111 
112 namespace ThePEG {
113 
118 template <>
119 struct BaseClassTrait<Helicity::AbstractSSTVertex,1> {
121  typedef Helicity::VertexBase NthBase;
122 };
123 
126 template <>
127 struct ClassTraits<Helicity::AbstractSSTVertex>
128  : public ClassTraitsBase<Helicity::AbstractSSTVertex> {
130  static string className() { return "Helicity::AbstractSSTVertex"; }
131 };
132 
135 }
136 
137 #endif /* HELICITY_AbstractSSTVertex_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
The AbstractSSTVertex class is the base class for scalar-scalar-tensor interactions in ThePEG...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
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:49
virtual Complex evaluate(Energy2 q2, const ScalarWaveFunction &sca1, const ScalarWaveFunction &sca2, const TensorWaveFunction &ten3)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
AbstractSSTVertex & operator=(const AbstractSSTVertex &)
The assignment operator is private and must never be called.
AbstractSSTVertex()
Default constructor.
static AbstractNoPIOClassDescription< AbstractSSTVertex > initAbstractSSTVertex
The static object used to initialize the description of this class.
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