thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Helicity
Vertex
Scalar
VVVSVertex.h
1
// -*- C++ -*-
2
//
3
// VVVSVertex.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_VVVSVertex_H
10
#define ThePEG_VVVSVertex_H
11
//
12
// This is the declaration of the VVVSVertex class.
13
14
#include "ThePEG/Helicity/Vertex/AbstractVVVSVertex.h"
15
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
16
#include "VVVSVertex.fh"
17
18
namespace
ThePEG
{
19
namespace
Helicity{
20
41
class
VVVSVertex
:
public
AbstractVVVSVertex
{
42
43
public :
44
48
VVVSVertex
() :
scalar_
(true) {}
49
50
public
:
51
58
void
persistentOutput
(
PersistentOStream
& os)
const
;
59
65
void
persistentInput
(
PersistentIStream
& is,
int
version);
67
71
static
void
Init
();
72
73
public
:
74
88
Complex
evaluate
(
Energy2
q2,
const
VectorWaveFunction
& vec1,
89
const
VectorWaveFunction
& vec2,
90
const
VectorWaveFunction
& vec3,
91
const
ScalarWaveFunction
& sca);
92
106
VectorWaveFunction
evaluate
(
Energy2
q2,
int
iopt,
tcPDPtr
out,
107
const
VectorWaveFunction
& vec2,
108
const
VectorWaveFunction
& vec3,
109
const
ScalarWaveFunction
& sca,
110
complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
111
125
ScalarWaveFunction
evaluate
(
Energy2
q2,
int
iopt,
tcPDPtr
out,
126
const
VectorWaveFunction
& vec1,
127
const
VectorWaveFunction
& vec2,
128
const
VectorWaveFunction
& vec3,
129
complex<Energy> mass=-GeV, complex<Energy> width=-GeV);
131
146
virtual
void
setCoupling
(
Energy2
q2,
tcPDPtr
part1,
147
tcPDPtr
part2,
tcPDPtr
part3,
148
tcPDPtr
part4)=0;
149
155
virtual
void
setCoupling
(
Energy2
,
tcPDPtr
,
tcPDPtr
,
tcPDPtr
) {
156
assert(
false
);
157
}
159
160
protected
:
161
165
void
scalar
(
bool
in) {
scalar_
=in;}
166
167
private
:
168
172
VVVSVertex
&
operator=
(
const
VVVSVertex
&) =
delete
;
173
177
bool
scalar_
;
178
179
};
180
181
}
182
}
183
184
#endif
/* ThePEG_VVVSVertex_H */
ThePEG::Helicity::AbstractVVVSVertex
The AbstractVVVSVertex class provides the base class for all vector-vector-vector interactions in The...
Definition:
AbstractVVVSVertex.h:20
ThePEG::Helicity::ScalarWaveFunction
Definition:
ScalarWaveFunction.h:36
ThePEG::Helicity::VVVSVertex
The VVVSVertex class is the base class for triple vector scalar vertices.
Definition:
VVVSVertex.h:41
ThePEG::Helicity::VVVSVertex::evaluate
Complex evaluate(Energy2 q2, const VectorWaveFunction &vec1, const VectorWaveFunction &vec2, const VectorWaveFunction &vec3, const ScalarWaveFunction &sca)
Members to calculate the helicity amplitude expressions for vertices and off-shell particles.
ThePEG::Helicity::VVVSVertex::evaluate
VectorWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const VectorWaveFunction &vec2, const VectorWaveFunction &vec3, const ScalarWaveFunction &sca, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)
Evaluate the off-shell vector coming from the vertex.
ThePEG::Helicity::VVVSVertex::setCoupling
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3, tcPDPtr part4)=0
Set coupling methods.
ThePEG::Helicity::VVVSVertex::scalar_
bool scalar_
Whether or ont the vertex has a scalar or pseudoscalr particle.
Definition:
VVVSVertex.h:177
ThePEG::Helicity::VVVSVertex::operator=
VVVSVertex & operator=(const VVVSVertex &)=delete
Private and non-existent assignment operator.
ThePEG::Helicity::VVVSVertex::setCoupling
virtual void setCoupling(Energy2, tcPDPtr, tcPDPtr, tcPDPtr)
Dummy setCouplings for a three point interaction This method is virtual and must be implemented in cl...
Definition:
VVVSVertex.h:155
ThePEG::Helicity::VVVSVertex::VVVSVertex
VVVSVertex()
Default constructor.
Definition:
VVVSVertex.h:48
ThePEG::Helicity::VVVSVertex::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::Helicity::VVVSVertex::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::Helicity::VVVSVertex::evaluate
ScalarWaveFunction evaluate(Energy2 q2, int iopt, tcPDPtr out, const VectorWaveFunction &vec1, const VectorWaveFunction &vec2, const VectorWaveFunction &vec3, complex< Energy > mass=-GeV, complex< Energy > width=-GeV)
Evaluate the off-shell scalar coming from the vertex.
ThePEG::Helicity::VVVSVertex::scalar
void scalar(bool in)
Set the type of the vertex.
Definition:
VVVSVertex.h:165
ThePEG::Helicity::VVVSVertex::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::Helicity::VectorWaveFunction
Definition:
VectorWaveFunction.h:50
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Qty< 0, 2, 0 >
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::Complex
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition:
Complex.h:23
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6