thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Helicity
Vertex
Vector
VVVVVertex.h
1
// -*- C++ -*-
2
//
3
// VVVVVertex.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_VVVVVertex_H
10
#define ThePEG_VVVVVertex_H
11
//
12
// This is the declaration of the VVVVVertex class.
13
14
#include "ThePEG/Helicity/Vertex/AbstractVVVVVertex.h"
15
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
16
#include "VVVVVertex.fh"
17
18
namespace
ThePEG
{
19
namespace
Helicity{
20
39
class
VVVVVertex
:
public
AbstractVVVVVertex
{
40
41
public
:
42
46
static
void
Init
();
47
48
public
:
49
65
Complex
evaluate
(
Energy2
q2,
int
iopt,
66
const
VectorWaveFunction
& vec1,
const
VectorWaveFunction
& vec2,
67
const
VectorWaveFunction
& vec3,
const
VectorWaveFunction
& vec4);
69
77
virtual
void
setCoupling
(
Energy2
,
tcPDPtr
,
tcPDPtr
,
tcPDPtr
) {
78
assert(
false
);
79
}
80
91
virtual
void
setCoupling
(
Energy2
q2,
tcPDPtr
part1,
tcPDPtr
part2,
tcPDPtr
part3,
92
tcPDPtr
part4)=0;
94
95
protected
:
96
104
void
setOrder
(
int
id1,
int
id2,
int
id3,
int
id4) {
105
_iorder
[0]=id1;
106
_iorder
[1]=id2;
107
_iorder
[2]=id3;
108
_iorder
[3]=id4;
109
}
110
115
void
setType
(
int
itype) {
116
_itype
=itype;
117
}
118
126
void
setIntermediate
(
tcPDPtr
part1,
tcPDPtr
part2,
Complex
c1,
Complex
c2) {
127
_inter
[0]=part1;
128
_inter
[1]=part2;
129
_coup
[0]=c1;
130
_coup
[1]=c2;
131
}
132
133
private
:
134
138
VVVVVertex
&
operator=
(
const
VVVVVertex
&) =
delete
;
139
140
private
:
141
145
int
_itype
;
146
150
array<int,4>
_iorder
;
151
155
array<tcPDPtr,2>
_inter
;
156
160
array<Complex,2>
_coup
;
161
162
};
163
}
164
}
165
166
namespace
ThePEG
{
167
168
}
169
#endif
/* ThePEG_VVVVVertex_H */
ThePEG::Helicity::AbstractVVVVVertex
The AbstractVVVVVertex class is the base class for vector-vector-vector-vector interactions in ThePEG...
Definition:
AbstractVVVVVertex.h:19
ThePEG::Helicity::VVVVVertex
This is the implementation of the four vector vertex.
Definition:
VVVVVertex.h:39
ThePEG::Helicity::VVVVVertex::_itype
int _itype
Type of vertex 1=QCD 2=EW.
Definition:
VVVVVertex.h:145
ThePEG::Helicity::VVVVVertex::setIntermediate
void setIntermediate(tcPDPtr part1, tcPDPtr part2, Complex c1, Complex c2)
Set the intermediate particles if including s/u/t channel terms.
Definition:
VVVVVertex.h:126
ThePEG::Helicity::VVVVVertex::_iorder
array< int, 4 > _iorder
Order of the particles.
Definition:
VVVVVertex.h:150
ThePEG::Helicity::VVVVVertex::operator=
VVVVVertex & operator=(const VVVVVertex &)=delete
Private and non-existent assignment operator.
ThePEG::Helicity::VVVVVertex::_coup
array< Complex, 2 > _coup
Couplings of the intermediate particles.
Definition:
VVVVVertex.h:160
ThePEG::Helicity::VVVVVertex::setCoupling
virtual void setCoupling(Energy2 q2, tcPDPtr part1, tcPDPtr part2, tcPDPtr part3, tcPDPtr part4)=0
Calculate the couplings for a four point interaction.
ThePEG::Helicity::VVVVVertex::_inter
array< tcPDPtr, 2 > _inter
Intermediate particles.
Definition:
VVVVVertex.h:155
ThePEG::Helicity::VVVVVertex::setCoupling
virtual void setCoupling(Energy2, tcPDPtr, tcPDPtr, tcPDPtr)
Set coupling methods.
Definition:
VVVVVertex.h:77
ThePEG::Helicity::VVVVVertex::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::Helicity::VVVVVertex::setOrder
void setOrder(int id1, int id2, int id3, int id4)
Set the order of the particles.
Definition:
VVVVVertex.h:104
ThePEG::Helicity::VVVVVertex::setType
void setType(int itype)
Set the type of the vertex.
Definition:
VVVVVertex.h:115
ThePEG::Helicity::VVVVVertex::evaluate
Complex evaluate(Energy2 q2, int iopt, const VectorWaveFunction &vec1, const VectorWaveFunction &vec2, const VectorWaveFunction &vec3, const VectorWaveFunction &vec4)
Members to calculate the helicity amplitude expressions for vertices and off-shell particles.
ThePEG::Helicity::VectorWaveFunction
Definition:
VectorWaveFunction.h:50
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