ThePEG  1.8.0
AbstractSSSSVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractSSSSVertex_H
3 #define HELICITY_AbstractSSSSVertex_H
4 //
5 // This is the declaration of the AbstractSSSSVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
10 #include "AbstractSSSSVertex.fh"
11 
12 namespace ThePEG {
13 namespace Helicity {
14 
20 
21 public:
22 
26  AbstractSSSSVertex() : VertexBase(VertexType::SSSS) {}
27 
41  virtual Complex evaluate(Energy2 q2,const ScalarWaveFunction & sca1,
42  const ScalarWaveFunction & sca2,
43  const ScalarWaveFunction & sca3,
44  const ScalarWaveFunction & sca4) = 0;
45 
55  virtual ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
56  const ScalarWaveFunction & sca1,
57  const ScalarWaveFunction & sca2,
58  const ScalarWaveFunction & sca3) = 0;
60 
61 public:
62 
69  static void Init();
70 
71 private:
72 
78 
84 
85 };
86 
87 }
88 }
89 
90 #include "ThePEG/Utilities/ClassTraits.h"
91 
92 namespace ThePEG {
93 
98 template <>
99 struct BaseClassTrait<Helicity::AbstractSSSSVertex,1> {
101  typedef Helicity::VertexBase NthBase;
102 };
103 
106 template <>
107 struct ClassTraits<Helicity::AbstractSSSSVertex>
108  : public ClassTraitsBase<Helicity::AbstractSSSSVertex> {
110  static string className() { return "Helicity::AbstractSSSSVertex"; }
111 };
112 
115 }
116 
117 #endif /* HELICITY_AbstractSSSSVertex_H */
static void Init()
The standard Init function used to initialize the interfaces.
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
The AbstractSSSSVertex class is the base class for all scalar-scalar-scalar interactions in ThePEG...
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
static AbstractNoPIOClassDescription< AbstractSSSSVertex > initAbstractSSSSVertex
The static object used to initialize the description of this class.
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 ScalarWaveFunction &sca1, const ScalarWaveFunction &sca2, const ScalarWaveFunction &sca3, const ScalarWaveFunction &sca4)=0
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
AbstractSSSSVertex & operator=(const AbstractSSSSVertex &)
The assignment operator is private and must never be called.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
AbstractSSSSVertex()
Default constructor.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52