herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
MEMultiChannel.h
1
// -*- C++ -*-
2
#ifndef Herwig_MEMultiChannel_H
3
#define Herwig_MEMultiChannel_H
4
//
5
// This is the declaration of the MEMultiChannel class.
6
//
7
8
#include "ThePEG/MatrixElement/MEBase.h"
9
#include "Herwig/Decay/PhaseSpaceMode.fh"
10
11
namespace
Herwig
{
12
13
using namespace
ThePEG
;
14
21
class
MEMultiChannel
:
public
MEBase
{
22
23
public
:
24
28
MEMultiChannel
() {};
29
33
virtual
~MEMultiChannel
();
35
36
public
:
37
40
48
double
me2
()
const
{
return
me2
(-1);}
49
53
virtual
Energy2
scale
()
const
;
54
59
virtual
int
nDim
()
const
;
60
69
virtual
bool
generateKinematics
(
const
double
* r);
70
75
virtual
CrossSection
dSigHatDR
()
const
;
76
80
virtual
void
getDiagrams
()
const
;
81
90
virtual
Selector<DiagramIndex>
diagrams
(
const
DiagramVector
& dv)
const
;
91
99
virtual
Selector<const ColourLines *>
100
colourGeometries
(tcDiagPtr diag)
const
;
102
103
protected :
104
108
void
addMode
(PhaseSpaceModePtr
mode
) {
109
modes_
.push_back(
mode
);
110
}
111
115
tPhaseSpaceModePtr
mode
(
unsigned
int
imode)
const
{
116
return
modes_
[imode];
117
}
118
119
public
:
120
127
void
persistentOutput
(
PersistentOStream
& os)
const
;
128
134
void
persistentInput
(
PersistentIStream
& is,
int
version);
136
143
static
void
Init
();
144
145
protected
:
146
154
virtual
void
doinit
();
155
160
virtual
void
doinitrun
();
162
163
protected
:
164
174
virtual
double
me2
(
const
int
ichan)
const
= 0;
175
179
unsigned
int
iMode
() {
return
iMode_
;}
180
184
void
iMode
(
unsigned
int
in)
const
{
iMode_
=in;}
185
186
private
:
187
192
MEMultiChannel
&
operator=
(
const
MEMultiChannel
&) =
delete
;
193
194
private
:
195
199
vector<PhaseSpaceModePtr>
modes_
;
200
204
mutable
vector<map <int,int> >
channelMap_
;
205
209
mutable
unsigned
int
iMode_
;
210
};
211
212
}
213
214
#endif
/* Herwig_MEMultiChannel_H */
Herwig::MEMultiChannel
Here is the documentation of the MEMultiChannel class.
Definition:
MEMultiChannel.h:21
Herwig::MEMultiChannel::getDiagrams
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
Herwig::MEMultiChannel::~MEMultiChannel
virtual ~MEMultiChannel()
The destructor.
Herwig::MEMultiChannel::operator=
MEMultiChannel & operator=(const MEMultiChannel &)=delete
The assignment operator is private and must never be called.
Herwig::MEMultiChannel::mode
tPhaseSpaceModePtr mode(unsigned int imode) const
Access to the modes.
Definition:
MEMultiChannel.h:115
Herwig::MEMultiChannel::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::MEMultiChannel::channelMap_
vector< map< int, int > > channelMap_
Map from the phase space channels to the modes.
Definition:
MEMultiChannel.h:204
Herwig::MEMultiChannel::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::MEMultiChannel::generateKinematics
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval .
Herwig::MEMultiChannel::iMode
void iMode(unsigned int in) const
Set the mode currently begining used.
Definition:
MEMultiChannel.h:184
Herwig::MEMultiChannel::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::MEMultiChannel::iMode_
unsigned int iMode_
The mode currently begining used.
Definition:
MEMultiChannel.h:209
Herwig::MEMultiChannel::me2
virtual double me2(const int ichan) const =0
Return the matrix element squared for a given mode and phase-space channel.
Herwig::MEMultiChannel::nDim
virtual int nDim() const
The number of internal degrees of freedom used in the matrix element.
Herwig::MEMultiChannel::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MEMultiChannel::diagrams
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
Herwig::MEMultiChannel::MEMultiChannel
MEMultiChannel()
The default constructor.
Definition:
MEMultiChannel.h:28
Herwig::MEMultiChannel::me2
double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
Definition:
MEMultiChannel.h:48
Herwig::MEMultiChannel::colourGeometries
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
Herwig::MEMultiChannel::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MEMultiChannel::addMode
void addMode(PhaseSpaceModePtr mode)
Add a phase-space mode.
Definition:
MEMultiChannel.h:108
Herwig::MEMultiChannel::scale
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
Herwig::MEMultiChannel::modes_
vector< PhaseSpaceModePtr > modes_
The phase-space modes.
Definition:
MEMultiChannel.h:199
Herwig::MEMultiChannel::iMode
unsigned int iMode()
Access the mode currently being used.
Definition:
MEMultiChannel.h:179
Herwig::MEMultiChannel::dSigHatDR
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
ThePEG::MEBase
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Selector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6