herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
General
MEvv2vv.h
1
// -*- C++ -*-
2
//
3
// MEvv2vv.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig 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 HERWIG_MEvv2vv_H
10
#define HERWIG_MEvv2vv_H
11
//
12
// This is the declaration of the MEvv2vv class.
13
//
14
15
#include "GeneralHardME.h"
16
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
17
#include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
18
#include "ThePEG/Helicity/Vertex/AbstractVVTVertex.h"
19
#include "ThePEG/Helicity/Vertex/AbstractVVSVertex.h"
20
#include "ThePEG/Helicity/Vertex/AbstractVVVVVertex.h"
21
#include "Herwig/MatrixElement/ProductionMatrixElement.h"
22
23
namespace
Herwig
{
24
using namespace
ThePEG
;
25
using
Helicity::VectorWaveFunction
;
26
35
class
MEvv2vv
:
public
GeneralHardME
{
36
37
public
:
38
42
typedef
vector<VectorWaveFunction>
VBVector
;
43
44
public
:
45
55
virtual
double
me2
()
const
;
57
62
virtual
void
constructVertex
(
tSubProPtr
sub);
63
64
private
:
65
80
ProductionMatrixElement
81
vv2vvHeME
(
VBVector
& vin1,
VBVector
& vin2,
82
VBVector
& vout1,
bool
mc,
VBVector
& vout2,
bool
md,
83
double
&
me2
,
bool
first )
const
;
84
85
protected
:
86
92
virtual
void
debug
(
double
me2
)
const
;
93
94
public
:
95
102
void
persistentOutput
(
PersistentOStream
& os)
const
;
103
109
void
persistentInput
(
PersistentIStream
& is,
int
version);
111
118
static
void
Init
();
119
120
protected
:
121
128
virtual
IBPtr
clone
()
const
{
return
new_ptr(*
this
);}
129
134
virtual
IBPtr
fullclone
()
const
{
return
new_ptr(*
this
);}
136
137
protected
:
138
146
virtual
void
doinit
();
148
149
private
:
150
155
MEvv2vv
&
operator=
(
const
MEvv2vv
&) =
delete
;
156
157
private
:
158
162
vector<pair<AbstractVVSVertexPtr, AbstractVVSVertexPtr> >
scalar_
;
163
167
vector<pair<AbstractVVVVertexPtr, AbstractVVVVertexPtr> >
vector_
;
168
172
vector<pair<AbstractVVTVertexPtr, AbstractVVTVertexPtr> >
tensor_
;
173
177
vector<AbstractVVVVVertexPtr>
four_
;
178
182
map<unsigned int,vector<pair<unsigned int,double> > >
fourFlow_
;
183
184
};
185
186
}
187
188
#endif
/* HERWIG_MEvv2vv_H */
Herwig::GeneralHardME
This defines the GeneralHardME class that is designed to serve as a base class for matrix elements of...
Definition:
GeneralHardME.h:40
Herwig::MEvv2vv
This is the implementation of the matrix element for massless vector-boson pair to vector-boson pair...
Definition:
MEvv2vv.h:35
Herwig::MEvv2vv::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
MEvv2vv.h:128
Herwig::MEvv2vv::tensor_
vector< pair< AbstractVVTVertexPtr, AbstractVVTVertexPtr > > tensor_
Store the dynamically casted VVTVertex pointers.
Definition:
MEvv2vv.h:172
Herwig::MEvv2vv::vv2vvHeME
ProductionMatrixElement vv2vvHeME(VBVector &vin1, VBVector &vin2, VBVector &vout1, bool mc, VBVector &vout2, bool md, double &me2, bool first) const
Compute the matrix element for .
Herwig::MEvv2vv::constructVertex
virtual void constructVertex(tSubProPtr sub)
Construct the vertex information for the spin correlations.
Herwig::MEvv2vv::me2
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
Herwig::MEvv2vv::debug
virtual void debug(double me2) const
A debugging function to test the value of me2 against an analytic function.
Herwig::MEvv2vv::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
MEvv2vv.h:134
Herwig::MEvv2vv::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MEvv2vv::vector_
vector< pair< AbstractVVVVertexPtr, AbstractVVVVertexPtr > > vector_
Store the dynamically casted VVVVertex pointers.
Definition:
MEvv2vv.h:167
Herwig::MEvv2vv::scalar_
vector< pair< AbstractVVSVertexPtr, AbstractVVSVertexPtr > > scalar_
Store the dynamically casted VVSVertex pointers.
Definition:
MEvv2vv.h:162
Herwig::MEvv2vv::VBVector
vector< VectorWaveFunction > VBVector
Typedef for VectorWaveFunction.
Definition:
MEvv2vv.h:42
Herwig::MEvv2vv::operator=
MEvv2vv & operator=(const MEvv2vv &)=delete
The assignment operator is private and must never be called.
Herwig::MEvv2vv::four_
vector< AbstractVVVVVertexPtr > four_
Store the dynamically casted VVVVVertex pointer.
Definition:
MEvv2vv.h:177
Herwig::MEvv2vv::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MEvv2vv::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MEvv2vv::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MEvv2vv::fourFlow_
map< unsigned int, vector< pair< unsigned int, double > > > fourFlow_
Four points for colour flows.
Definition:
MEvv2vv.h:182
Herwig::ProductionMatrixElement
The storage of the helicity amplitude expression for the matrix element of a hard process.
Definition:
ProductionMatrixElement.h:34
ThePEG::Helicity::VectorWaveFunction
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6