herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
Matching
ShowerApproximationGenerator.h
1
// -*- C++ -*-
2
//
3
// ShowerApproximationGenerator.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_ShowerApproximationGenerator_H
10
#define Herwig_ShowerApproximationGenerator_H
11
//
12
// This is the declaration of the ShowerApproximationGenerator class.
13
//
14
15
#include "ThePEG/Handlers/StepHandler.h"
16
#include "Herwig/MatrixElement/Matchbox/Matching/ShowerApproximationKernel.h"
17
#include "Herwig/MatrixElement/Matchbox/Phasespace/MatchboxPhasespace.h"
18
#include "Herwig/MatrixElement/Matchbox/MatchboxFactory.h"
19
20
namespace
Herwig
{
21
22
using namespace
ThePEG
;
23
32
class
ShowerApproximationGenerator
:
public
StepHandler
{
33
34
public
:
35
41
ShowerApproximationGenerator
();
42
46
virtual
~
ShowerApproximationGenerator
();
48
49
public
:
50
68
virtual
void
handle(
EventHandler
& eh,
const
tPVector
& tagged,
69
const
Hint
& hint);
71
72
public
:
73
77
bool
prepare(
bool
didproject);
78
83
bool
generate
(
const
vector<double>&);
84
88
void
restore();
89
90
protected
:
91
95
double
generateFraction(
tcPDPtr
,
double
,
double
)
const
;
96
100
double
invertFraction(
tcPDPtr
,
double
,
double
)
const
;
101
105
Energy
ffPtCut
()
const
{
return
theShowerApproximation->ffPtCut(); }
106
110
Energy
fiPtCut
()
const
{
return
theShowerApproximation->fiPtCut(); }
111
115
Energy
iiPtCut
()
const
{
return
theShowerApproximation->iiPtCut(); }
116
117
public
:
118
125
void
persistentOutput(
PersistentOStream
& os)
const
;
126
132
void
persistentInput(
PersistentIStream
& is,
int
version);
134
141
static
void
Init();
142
143
protected
:
144
151
virtual
IBPtr
clone()
const
;
152
157
virtual
IBPtr
fullclone()
const
;
159
160
161
// If needed, insert declarations of virtual function defined in the
162
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
163
164
165
private
:
166
170
Ptr<ShowerApproximation>::ptr
theShowerApproximation
;
171
175
Ptr<MatchboxPhasespace>::ptr
thePhasespace
;
176
180
map<cPDVector,set<Ptr<ShowerApproximationKernel>::ptr> >
theKernelMap
;
181
185
unsigned
long
thePresamplingPoints
;
186
190
unsigned
long
theMaxTry
;
191
196
unsigned
long
theFreezeGrid
;
197
201
tStdXCombPtr
lastIncomingXComb
;
202
203
// the next three are filled from the incoming xcomb in the prepare method
204
208
Ptr<MatchboxMEBase>::ptr
theLastBornME
;
209
213
vector<Lorentz5Momentum>
theLastMomenta
;
214
218
vector<Lorentz5Momentum>
theLastPresamplingMomenta
;
219
224
vector<double>
theLastRandomNumbers
;
225
229
tStdXCombPtr
theLastBornXComb
;
230
234
PPair
theLastPartons
;
235
239
bool
theDoCompensate
;
240
245
ShowerApproximationGenerator
& operator=(
const
ShowerApproximationGenerator
&) =
delete
;
246
247
};
248
249
}
250
251
#endif
/* Herwig_ShowerApproximationGenerator_H */
ThePEG::PersistentIStream
Herwig::ShowerApproximationGenerator::lastIncomingXComb
tStdXCombPtr lastIncomingXComb
The last external Born XComb dealt with.
Definition:
ShowerApproximationGenerator.h:201
ThePEG::EventHandler
Herwig::ShowerApproximationGenerator::theLastMomenta
vector< Lorentz5Momentum > theLastMomenta
The last Born phase space point.
Definition:
ShowerApproximationGenerator.h:213
Herwig::ShowerApproximationGenerator::theLastBornME
Ptr< MatchboxMEBase >::ptr theLastBornME
The last internal Born matrix element dealt with.
Definition:
ShowerApproximationGenerator.h:208
ThePEG::PersistentOStream
Herwig::ShowerApproximationGenerator
ShowerApproximationGenerator generates emissions according to a shower approximation entering a NLO m...
Definition:
ShowerApproximationGenerator.h:32
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::ShowerApproximationGenerator::theFreezeGrid
unsigned long theFreezeGrid
Return the number of accepted points after which the grid should be frozen.
Definition:
ShowerApproximationGenerator.h:196
Herwig::ShowerApproximationGenerator::theLastBornXComb
tStdXCombPtr theLastBornXComb
The last internal Born XComb dealt with.
Definition:
ShowerApproximationGenerator.h:229
ThePEG
Herwig::ShowerApproximationGenerator::theShowerApproximation
Ptr< ShowerApproximation >::ptr theShowerApproximation
The shower approximation to consider.
Definition:
ShowerApproximationGenerator.h:170
ThePEG::StepHandler
Herwig::ShowerApproximationGenerator::theLastRandomNumbers
vector< double > theLastRandomNumbers
The random numbers which have produced the last Born phase space point.
Definition:
ShowerApproximationGenerator.h:224
Herwig::ShowerApproximationGenerator::thePresamplingPoints
unsigned long thePresamplingPoints
The number of points to presample this splitting generator.
Definition:
ShowerApproximationGenerator.h:185
Herwig::ShowerApproximationGenerator::iiPtCut
Energy iiPtCut() const
Return the pt cut to be applied for initial-initial dipoles.
Definition:
ShowerApproximationGenerator.h:115
Herwig::ShowerApproximationGenerator::theLastPresamplingMomenta
vector< Lorentz5Momentum > theLastPresamplingMomenta
The last Born phase space point used while presampling.
Definition:
ShowerApproximationGenerator.h:218
ThePEG::Hint
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::PPair
pair< PPtr, PPtr > PPair
Herwig::ShowerApproximationGenerator::theKernelMap
map< cPDVector, set< Ptr< ShowerApproximationKernel >::ptr > > theKernelMap
Map hard processes to the respective kernels.
Definition:
ShowerApproximationGenerator.h:180
Herwig::ShowerApproximationGenerator::thePhasespace
Ptr< MatchboxPhasespace >::ptr thePhasespace
The (invertible) phase space generator to use.
Definition:
ShowerApproximationGenerator.h:175
Herwig::ShowerApproximationGenerator::theDoCompensate
bool theDoCompensate
True, if sampler should apply compensation.
Definition:
ShowerApproximationGenerator.h:239
Herwig::RandomHelpers::generate
pair< double, double > generate(const Generator< Density > &gen, double r)
Generate a random variable and return its weight.
Definition:
RandomHelpers.h:182
Herwig::ShowerApproximationGenerator::fiPtCut
Energy fiPtCut() const
Return the pt cut to be applied for final-initial dipoles.
Definition:
ShowerApproximationGenerator.h:110
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::tPVector
vector< tPPtr > tPVector
Herwig::ShowerApproximationGenerator::ffPtCut
Energy ffPtCut() const
Return the pt cut to be applied for final-final dipoles.
Definition:
ShowerApproximationGenerator.h:105
Herwig::ShowerApproximationGenerator::theLastPartons
PPair theLastPartons
The last internal incoming partons dealt with.
Definition:
ShowerApproximationGenerator.h:234
Herwig::ShowerApproximationGenerator::theMaxTry
unsigned long theMaxTry
The maximum number of trials to generate a splitting.
Definition:
ShowerApproximationGenerator.h:190
Generated on Sat Apr 11 2020 14:50:31 for Herwig by
1.8.13