ThePEG  1.8.0
SSSSVertex.h
1 // -*- C++ -*-
2 //
3 // SSSSVertex.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 2003-2011 Peter Richardson, Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef ThePEG_SSSSVertex_H
10 #define ThePEG_SSSSVertex_H
11 //
12 // This is the declaration of the SSSSVertex class.
13 //
14 #include "ThePEG/Helicity/Vertex/AbstractSSSSVertex.h"
15 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
16 #include "SSSSVertex.fh"
17 
18 namespace ThePEG {
19 namespace Helicity {
20 
37 
38 public:
39 
43  static void Init();
44 
45 public:
46 
60  Complex evaluate(Energy2 q2, const ScalarWaveFunction & sca1,
61  const ScalarWaveFunction & sca2, const ScalarWaveFunction & sca3,
62  const ScalarWaveFunction & sca4);
63 
73  ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
74  const ScalarWaveFunction & sca1,
75  const ScalarWaveFunction & sca2,
76  const ScalarWaveFunction & sca3);
78 
88  virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
89  tcPDPtr part3,tcPDPtr part4)=0;
90 
91 private:
92 
97 
101  SSSSVertex & operator=(const SSSSVertex &);
102 
103 };
104 }
105 
112 template <>
116 };
117 
122 template <>
123 struct ClassTraits<ThePEG::Helicity::SSSSVertex>
124  : public ClassTraitsBase<ThePEG::Helicity::SSSSVertex> {
125 
129  static string className() { return "ThePEG::SSSSVertex"; }
130 };
131 
134 }
135 
136 
137 #endif /* ThePEG_SSSSVertex_H */
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3, tcPDPtr part4)=0
Calculate the couplings.
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< SSSSVertex > initSSSSVertex
Describe an abstract base class with persistent data.
Definition: SSSSVertex.h:96
SSSSVertex & operator=(const SSSSVertex &)
Private and non-existent assignment operator.
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
Complex evaluate(Energy2 q2, const ScalarWaveFunction &sca1, const ScalarWaveFunction &sca2, const ScalarWaveFunction &sca3, const ScalarWaveFunction &sca4)
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
The SSSSVertex class is the implementation of the interaction of four scalars.
Definition: SSSSVertex.h:36
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
static void Init()
Standard Init function used to initialize the interfaces.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156