thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
FFVVertex.h
1// -*- C++ -*-
2//
3// FFVVertex.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 2003-2019 Peter Richardson, Leif Lonnblad
5//
6// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef ThePEG_FFVVertex_H
10#define ThePEG_FFVVertex_H
11//
12// This is the declaration of the FFVVertex class.
13
14#include <ThePEG/Helicity/Vertex/AbstractFFVVertex.h>
15#include <ThePEG/Helicity/WaveFunction/VectorWaveFunction.h>
16#include <ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h>
17#include <ThePEG/Helicity/WaveFunction/SpinorBarWaveFunction.h>
18#include "FFVVertex.fh"
19
20namespace ThePEG {
21
22namespace Helicity{
23
40
41public:
42
46 static void Init();
47
48public:
49
63 const SpinorBarWaveFunction & sbar2,
64 const VectorWaveFunction & vec3);
65
79 const SpinorBarWaveFunction & sbar2,
80 const VectorWaveFunction & vec3,
81 complex<Energy> mass=-GeV,
82 complex<Energy> width=-GeV);
83
96 virtual VectorWaveFunction evaluate(Energy2 q2,int iopt,tcPDPtr out,
97 const SpinorWaveFunction & sp1,
98 const SpinorBarWaveFunction & sbar2,
99 complex<Energy> mass=-GeV,
100 complex<Energy> width=-GeV);
101
115 const SpinorWaveFunction & sp1,
116 const VectorWaveFunction & vec3,
117 complex<Energy> mass=-GeV,
118 complex<Energy> width=-GeV);
120
150 const SpinorWaveFunction & sp1,
151 const VectorWaveFunction & vec3,
152 unsigned int fhel, unsigned int vhel,
153 double ctheta, double phi, double stheta,
154 bool includeEikonal = true,
156 Energy mass=-GeV, Energy width=-GeV);
157
179 const SpinorBarWaveFunction & sbar2,
180 const VectorWaveFunction & vec3,
181 unsigned int fhel, unsigned int vhel,
182 double ctheta, double phi, double stheta,
183 bool includeEikonal = true,
185 Energy mass=-GeV, Energy width=-GeV);
187
201 virtual void setCoupling(Energy2 q2,tcPDPtr part1,
202 tcPDPtr part2,tcPDPtr part3)=0;
203
210 assert(false);
211 }
213
221 const Complex & left() const { return _left; }
222
226 const Complex & right() const { return _right; }
228
229protected:
230
238 void left(const Complex & in) { _left = in; }
239
243 void right(const Complex & in) { _right = in; }
245
246private:
247
251 FFVVertex & operator=(const FFVVertex &) = delete;
252
253private:
254
259
264
265};
266}
267
268}
269#endif /* ThePEG_FFVVertex_H */
The AbstractFFVVertex class provides a base class for all fermion-fermion-vector vertices in ThePEG.
SmallAngleDirection
Enum for the direction in the small angle limit.
The FFVVertex class is the base class for all helicity amplitude vertices which use the renormalisabl...
Definition: FFVVertex.h:39
void left(const Complex &in)
Set the couplings.
Definition: FFVVertex.h:238
const Complex & left() const
Get the Couplings.
Definition: FFVVertex.h:221
FFVVertex & operator=(const FFVVertex &)=delete
Private and non-existent assignment operator.
const Complex & right() const
Get the right coupling.
Definition: FFVVertex.h:226
virtual SpinorBarWaveFunction evaluateSmall(Energy2 q2, int iopt, tcPDPtr out, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3, unsigned int fhel, unsigned int vhel, double ctheta, double phi, double stheta, bool includeEikonal=true, SmallAngleDirection direction=PostiveZDirection, Energy mass=-GeV, Energy width=-GeV)
Small angle approx for an off-shell spinor.
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3)=0
Set coupling methods.
void right(const Complex &in)
Set the right coupling.
Definition: FFVVertex.h:243
virtual SpinorBarWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)
Evaluate the off-shell barred spinor coming from the vertex.
Complex _left
Left coupling.
Definition: FFVVertex.h:258
virtual VectorWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const SpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)
Evaluate the off-shell vector coming from the vertex.
Complex _right
Right coupling.
Definition: FFVVertex.h:263
virtual Complex evaluate(Energy2 q2, const SpinorWaveFunction &sp1, const SpinorBarWaveFunction &sbar2, const VectorWaveFunction &vec3)
Members to calculate the helicity amplitude expressions for vertices and off-shell particles.
virtual void setCoupling(Energy2, tcPDPtr, tcPDPtr, tcPDPtr, tcPDPtr)
Dummy setCouplings for a four point interaction This method is virtual and must be implemented in cla...
Definition: FFVVertex.h:209
virtual SpinorWaveFunction evaluateSmall(Energy2 q2, int iopt, tcPDPtr out, const SpinorWaveFunction &sp1, const VectorWaveFunction &vec3, unsigned int fhel, unsigned int vhel, double ctheta, double phi, double stheta, bool includeEikonal=true, SmallAngleDirection direction=PostiveZDirection, Energy mass=-GeV, Energy width=-GeV)
Special members for off-shell fermion wavefunctions with massless gauge bosons at small angles in the...
static void Init()
Standard Init function used to initialize the interfaces.
virtual SpinorWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const SpinorWaveFunction &sp1, const VectorWaveFunction &vec3, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)
Evaluate the off-shell spinor coming from the vertex.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition: Complex.h:23