ThePEG  1.8.0
AbstractVVVVVertex.h
1 // -*- C++ -*-
2 #ifndef HELICITY_AbstractVVVVVertex_H
3 #define HELICITY_AbstractVVVVVertex_H
4 //
5 // This is the declaration of the AbstractVVVVVertex class.
6 //
7 
8 #include "VertexBase.h"
9 #include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
10 #include "AbstractVVVVVertex.fh"
11 
12 namespace ThePEG {
13 namespace Helicity {
14 
20 
21 public:
22 
26  AbstractVVVVVertex() : VertexBase(VertexType::VVVV) {}
27 
43  virtual Complex evaluate(Energy2 q2, int iopt,
44  const VectorWaveFunction & vec1,
45  const VectorWaveFunction & vec2,
46  const VectorWaveFunction & vec3,
47  const VectorWaveFunction & vec4) = 0;
49 
50 public:
51 
58  static void Init();
59 
60 private:
61 
67 
73 
74 };
75 
76 }
77 }
78 
79 #include "ThePEG/Utilities/ClassTraits.h"
80 
81 namespace ThePEG {
82 
87 template <>
88 struct BaseClassTrait<Helicity::AbstractVVVVVertex,1> {
90  typedef Helicity::VertexBase NthBase;
91 };
92 
95 template <>
96 struct ClassTraits<Helicity::AbstractVVVVVertex>
97  : public ClassTraitsBase<Helicity::AbstractVVVVVertex> {
99  static string className() { return "Helicity::AbstractVVVVVertex"; }
100 };
101 
104 }
105 
106 #endif /* HELICITY_AbstractVVVVVertex_H */