ThePEG  1.8.0
SSSVertex.h
1 // -*- C++ -*-
2 //
3 // SSSVertex.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_SSSVertex_H
10 #define ThePEG_SSSVertex_H
11 //
12 // This is the declaration of the SSSVertex class.
13 //
14 #include "ThePEG/Helicity/Vertex/AbstractSSSVertex.h"
15 #include "ThePEG/Helicity/WaveFunction/ScalarWaveFunction.h"
16 #include "SSSVertex.fh"
17 
18 namespace ThePEG {
19 namespace Helicity {
20 
36 
37 public:
38 
42  static void Init();
43 
44 public:
45 
58  Complex evaluate(Energy2 q2,const ScalarWaveFunction & sca1,
59  const ScalarWaveFunction & sca2,const ScalarWaveFunction & sca3);
60 
73  ScalarWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
74  const ScalarWaveFunction & sca1,
75  const ScalarWaveFunction & sca2,
76  complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
78 
87  virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
88 
89 private:
90 
95 
99  SSSVertex & operator=(const SSSVertex &);
100 
101 };
102 
103 }
104 
111 template <>
114  typedef ThePEG::Helicity::AbstractSSSVertex NthBase;
115 };
116 
121 template <>
123  : public ClassTraitsBase<ThePEG::Helicity::SSSVertex> {
124 
128  static string className() { return "ThePEG::SSSVertex"; }
129 };
130 
133 }
134 
135 
136 #endif /* ThePEG_SSSVertex_H */
The AbstractSSSVertex class is the base class for all scalar-scalar-scalar interactions in ThePEG...
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23
static void Init()
Standard Init function used to initialize the interfaces.
The SSSVertex class is the implementation of the interaction of three scalars.
Definition: SSSVertex.h:35
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
Complex evaluate(Energy2 q2, const ScalarWaveFunction &sca1, const ScalarWaveFunction &sca2, const ScalarWaveFunction &sca3)
Members to calculate the helicity amplitude expressions for vertices and off-shell particles...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
static AbstractNoPIOClassDescription< SSSVertex > initSSSVertex
Describe an abstract base class with persistent data.
Definition: SSSVertex.h:94
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3)=0
Calculate the couplings.
SSSVertex & operator=(const SSSVertex &)
Private and non-existent assignment operator.
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