ThePEG  1.8.0
AbstractVSSVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractVSSVertex_H
3 #define HELICITY_AbstractVSSVertex_H
4 //
5 // This is the declaration of the AbstractVSSVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
10 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
11 #include "AbstractVSSVertex.fh"
12 
13 namespace ThePEG {
14 namespace Helicity {
15 
21 
22 public:
23 
27  AbstractVSSVertex() : VertexBase(VertexType::VSS) {}
28 
41  virtual Complex evaluate(Energy2 q2,const VectorWaveFunction & vec1,
42  const ScalarWaveFunction & sca2,
43  const ScalarWaveFunction & sca3) = 0;
44 
57  virtual VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
58  const ScalarWaveFunction & sca2,
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 ScalarWaveFunction & sca2,
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::AbstractVSSVertex,1> {
120  typedef Helicity::VertexBase NthBase;
121 };
122 
125 template <>
126 struct ClassTraits<Helicity::AbstractVSSVertex>
127  : public ClassTraitsBase<Helicity::AbstractVSSVertex> {
129  static string className() { return "Helicity::AbstractVSSVertex"; }
130 };
131 
134 }
135 
136 #endif /* HELICITY_AbstractVSSVertex_H */
The AbstractVSSVertex class is the base class for vector-scalar-scalar interactions in ThePEG...
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
static AbstractNoPIOClassDescription< AbstractVSSVertex > initAbstractVSSVertex
The static object used to initialize the description of this class.
AbstractVSSVertex()
Default constructor.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
AbstractVSSVertex & operator=(const AbstractVSSVertex &)
The assignment operator is private and must never be called.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual Complex evaluate(Energy2 q2, const VectorWaveFunction &vec1, const ScalarWaveFunction &sca2, const ScalarWaveFunction &sca3)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
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.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52