herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
Dipole
DipoleShowerHandler.h
1
// -*- C++ -*-
2
//
3
// DipoleShowerHandler.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_DipoleShowerHandler_H
10
#define HERWIG_DipoleShowerHandler_H
11
//
12
// This is the declaration of the DipoleShowerHandler class.
13
//
14
15
#include "Herwig/Shower/ShowerHandler.h"
16
17
#include "Herwig/Shower/Dipole/DipoleShowerHandler.fh"
18
#include "Herwig/Shower/Dipole/Base/DipoleSplittingInfo.h"
19
#include "Herwig/Shower/Dipole/Base/DipoleSplittingReweight.h"
20
#include "Herwig/Shower/Dipole/Kernels/DipoleSplittingKernel.h"
21
#include "Herwig/Shower/Dipole/Base/DipoleSplittingGenerator.h"
22
#include "Herwig/Shower/Dipole/Base/DipoleEventRecord.h"
23
#include "Herwig/Shower/Dipole/Base/DipoleEvolutionOrdering.h"
24
#include "Herwig/Shower/Dipole/Base/DipoleEventReweight.h"
25
#include "Herwig/Shower/Dipole/Utility/ConstituentReshuffler.h"
26
#include "Herwig/Shower/Dipole/Utility/IntrinsicPtGenerator.h"
27
#include "Herwig/MatrixElement/Matchbox/Base/MergerBase.h"
28
#include "Herwig/MatrixElement/Matchbox/Matching/ShowerApproximation.h"
29
30
#include "Herwig/Shower/Dipole/SpinCorrelations/DipoleVertexRecord.h"
31
#include "Herwig/MatrixElement/Matchbox/Utility/DensityOperator.h"
32
33
#include <tuple>
34
35
namespace
Herwig
{
36
37
using namespace
ThePEG
;
38
49
class
DipoleShowerHandler
:
public
ShowerHandler
{
50
51
52
friend
class
Merger
;
53
54
public
:
55
59
DipoleShowerHandler
();
60
61
public
:
62
63
64
inline
void
colourPrint();
65
69
struct
RedoShower
{};
70
74
void
addSplitting
(Ptr<DipoleSplittingKernel>::ptr sp) {
75
kernels
.push_back(sp);
76
}
77
81
void
resetAlphaS
(Ptr<AlphaSBase>::tptr);
82
83
84
virtual
void
cascade
(
tPVector
);
85
89
void
resetReweight
(Ptr<DipoleSplittingReweight>::tptr);
90
95
virtual
bool
canHandleMatchboxTrunc
()
const
{
return
false
; }
96
101
virtual
bool
isReshuffling
()
const
{
return
false
; }
102
106
virtual
Energy
hardScale
()
const
{
107
return
muPt
;
108
}
109
114
double
as
(Energy Q)
const
{
return
theGlobalAlphaS
->value(
sqr
(Q));}
115
121
double
Nf
(Energy Q)
const
{
return
theGlobalAlphaS
->Nf(
sqr
(Q));}
122
123
/*
124
* Access the vertex record
125
*/
126
DipoleVertexRecord
& vertexRecord() {
return
theVertexRecord
; }
127
131
const
DipoleVertexRecord
&
vertexRecord
()
const
{
return
theVertexRecord
; }
132
133
138
void
setMerger
(Ptr<MergerBase>::ptr mh){
theMergingHelper
=mh;}
139
140
141
142
public
:
143
148
const
map<PPtr,size_t>&
particleIndices
()
const
{
return
eventRecord
().
particleIndices
(); }
149
154
const
cPDVector
&
particlesAfter
()
const
{
return
eventRecord
().
particlesAfter
(); }
155
159
DensityOperator
&
densityOperator
() {
return
eventRecord
().
densityOperator
(); }
160
165
const
map<pair<vector<PDT::Colour>,pair<size_t,size_t> >,
double
>&
correlatorMap
()
const
{
166
return
eventRecord
().
densityOperator
().
correlatorMap
();
167
}
168
172
Ptr<ColourBasis>::tptr
colourBasis
() {
173
return
eventRecord
().
densityOperator
().
colourBasis
();
174
}
175
179
bool
continueSubleadingNc
()
const
{
return
eventRecord
().
getContinueSubleadingNc
(); }
180
181
protected
:
182
186
void
addCandidates
(
PPair
particles, list<DipoleSplittingInfo>& clist)
const
;
187
191
void
getCandidates
(list<DipoleSplittingInfo>& clist)
const
;
192
196
void
performSplitting
(
DipoleSplittingInfo
&)
const
;
197
201
Energy
nextSubleadingSplitting
(Energy hardPt,
202
Energy optHardPt, Energy optCutoff,
203
const
bool
decay
);
204
205
protected
:
206
207
typedef
multimap<DipoleIndex,Ptr<DipoleSplittingGenerator>::ptr> GeneratorMap;
208
212
virtual
tPPair
cascade
(
tSubProPtr
sub,
XCombPtr
xcomb) {
213
return
cascade
(sub,xcomb,
ZERO
,
ZERO
);
214
}
215
219
tPPair
cascade
(
tSubProPtr
sub,
XCombPtr
xcomb,
220
Energy optHardPt, Energy optCutoff);
221
226
void
getGenerators
(
const
DipoleIndex
&,
227
Ptr<DipoleSplittingReweight>::tptr rw =
228
Ptr<DipoleSplittingReweight>::tptr());
229
233
void
hardScales
(Energy2 scale);
234
238
void
hardScalesSubleading
(list<DipoleSplittingInfo> candidates,Energy hardPt);
239
243
Ptr<DipoleEvolutionOrdering>::tptr
evolutionOrdering
()
const
{
return
theEvolutionOrdering
; }
244
248
void
constituentReshuffle
();
249
253
void
decayConstituentReshuffle
( PerturbativeProcessPtr decayProc);
254
258
GeneratorMap&
generators
() {
return
theGenerators
; }
259
263
DipoleEventRecord
&
eventRecord
() {
return
theEventRecord
; }
264
268
const
DipoleEventRecord
&
eventRecord
()
const
{
return
theEventRecord
; }
269
273
const
vector<Ptr<DipoleSplittingKernel>::ptr>&
splittingKernels
()
const
{
274
return
kernels
;
275
}
276
280
const
set<long>&
offShellPartons
() {
return
theColouredOffShellInShower
; }
281
286
bool
isMERegion
(
const
Energy winnerScale,
287
const
DipoleSplittingInfo
& winner,
288
const
list<Dipole>::iterator winnerDip);
289
294
bool
realign
();
295
299
virtual
int
showerPhaseSpaceOption
()
const
{
300
return
theZBoundaries
;
301
}
302
303
protected
:
304
308
void
doCascade
(
unsigned
int
& emDone,
309
Energy optHardPt =
ZERO
,
310
Energy optCutoff =
ZERO
,
311
const
bool
decay
=
false
);
315
void
setNEmissions
(
unsigned
int
n){
nEmissions
=n;}
316
317
322
Energy
getWinner
(
DipoleSplittingInfo
& winner,
323
const
Dipole
& dip,
324
pair<bool,bool> conf,
325
Energy optHardPt =
ZERO
,
326
Energy optCutoff =
ZERO
);
327
332
Energy
getWinner
(
DipoleSplittingInfo
& winner,
333
Energy optHardPt =
ZERO
,
334
Energy optCutoff =
ZERO
);
335
340
Energy
getWinner
(
SubleadingSplittingInfo
& winner,
341
Energy optHardPt =
ZERO
,
342
Energy optCutoff =
ZERO
);
343
348
Energy
getWinner
(
DipoleSplittingInfo
& winner,
349
const
DipoleIndex
& index,
350
double
emitterX,
double
spectatorX,
351
pair<bool,bool> conf,
352
tPPtr
emitter,
tPPtr
spectator,
353
Energy startScale,
354
Energy optHardPt =
ZERO
,
355
Energy optCutoff =
ZERO
);
356
357
public
:
358
365
void
persistentOutput
(
PersistentOStream
& os)
const
;
366
372
void
persistentInput
(
PersistentIStream
& is,
int
version);
374
381
static
void
Init
();
382
383
protected
:
384
391
virtual
IBPtr
clone
()
const
;
392
397
virtual
IBPtr
fullclone
()
const
;
399
400
401
// If needed, insert declarations of virtual function defined in the
402
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
403
404
405
protected
:
406
414
virtual
void
doinit
();
415
420
virtual
void
doinitrun
();
421
426
virtual
void
dofinish
();
428
429
430
private
:
431
435
vector<Ptr<DipoleSplittingKernel>::ptr>
kernels
;
436
440
Ptr<DipoleEvolutionOrdering>::ptr
theEvolutionOrdering
;
441
445
Ptr<ConstituentReshuffler>::ptr
constituentReshuffler
;
446
450
Ptr<IntrinsicPtGenerator>::ptr
intrinsicPtGenerator
;
451
455
Ptr<AlphaSBase>::ptr
theGlobalAlphaS
;
456
461
bool
chainOrderVetoScales
;
462
467
unsigned
int
nEmissions
;
468
472
bool
discardNoEmissions
;
473
477
bool
firstMCatNLOEmission
;
478
482
bool
thePowhegDecayEmission
;
483
488
//bool theAnalyseSpinCorrelations;
489
493
int
realignmentScheme
;
494
498
bool
doSubleadingNc
;
499
503
size_t
subleadingNcEmissionsLimit
;
504
509
int
currentReferenceWeight
;
510
519
int
densityOperatorEvolution
;
520
525
Energy2
densityOperatorCutoff
;
526
530
bool
doPartialUnweightingAtEmission
;
531
535
bool
doPartialUnweighting
;
536
540
double
referenceWeight
;
541
545
double
cmecReweightFactor
;
546
550
double
negCMECScaling
;
551
552
private
:
553
563
int
verbosity
;
564
568
int
printEvent
;
569
570
private
:
571
576
GeneratorMap
theGenerators
;
577
581
DipoleEventRecord
theEventRecord
;
582
586
DipoleVertexRecord
theVertexRecord
;
587
591
unsigned
int
nTries
;
592
596
bool
didRadiate
;
597
601
bool
didRealign
;
602
608
vector<vector<std::tuple<Energy,double,bool> > >
theWeightsVector
;
609
613
size_t
winnerIndex
;
//debug
614
size_t
kernelIndex;
//debug
615
size_t
winningKernelIndex;
//debug
616
vector<Energy> scales;
//debug
617
618
private
:
619
623
Energy
theRenormalizationScaleFreeze
;
624
628
Energy
theFactorizationScaleFreeze
;
629
633
Ptr<ShowerApproximation>::tptr
theShowerApproximation
;
634
638
bool
theDoCompensate
;
639
644
unsigned
long
theFreezeGrid
;
645
649
double
theDetuning
;
650
654
Ptr<DipoleEventReweight>::ptr
theEventReweight
;
655
659
Ptr<DipoleSplittingReweight>::ptr
theSplittingReweight
;
660
664
static
bool
firstWarn
;
665
669
Energy
maxPt
;
670
674
Energy
muPt
;
675
676
683
Ptr<MergerBase>::ptr
theMergingHelper
;
684
685
690
set<long>
theColouredOffShellInShower
;
691
696
vector<long>
theInputColouredOffShellInShower
;
697
701
int
theZBoundaries
;
702
703
private
:
704
709
static
ClassDescription<DipoleShowerHandler>
initDipoleShowerHandler
;
710
715
DipoleShowerHandler
&
operator=
(
const
DipoleShowerHandler
&) =
delete
;
716
717
};
718
719
}
720
721
#include "ThePEG/Utilities/ClassTraits.h"
722
723
namespace
ThePEG
{
724
729
template
<>
730
struct
BaseClassTrait
<
Herwig
::DipoleShowerHandler,1> {
732
typedef
Herwig::ShowerHandler
NthBase
;
733
};
734
737
template
<>
738
struct
ClassTraits
<
Herwig
::DipoleShowerHandler>
739
:
public
ClassTraitsBase
<Herwig::DipoleShowerHandler> {
741
static
string
className
() {
return
"Herwig::DipoleShowerHandler"
; }
749
static
string
library
() {
return
"HwDipoleShower.so"
; }
750
};
751
754
}
755
756
#endif
/* HERWIG_DipoleShowerHandler_H */
Herwig::DensityOperator
Here is the documentation of the DensityOperator class.
Definition:
DensityOperator.h:37
Herwig::DensityOperator::correlatorMap
const map< pair< vector< PDT::Colour >, pair< size_t, size_t > >, double > & correlatorMap() const
Get the correlator map.
Definition:
DensityOperator.h:113
Herwig::DensityOperator::colourBasis
Ptr< ColourBasis >::tptr colourBasis()
Get the colour basis.
Definition:
DensityOperator.h:98
Herwig::DipoleEventRecord
The DipoleEventRecord class is used internally by the dipole shower.
Definition:
DipoleEventRecord.h:132
Herwig::DipoleEventRecord::particlesAfter
cPDVector & particlesAfter()
Return the particles after emission.
Definition:
DipoleEventRecord.h:168
Herwig::DipoleEventRecord::particleIndices
map< PPtr, size_t > & particleIndices()
Return the dictionary for the particles.
Definition:
DipoleEventRecord.h:198
Herwig::DipoleEventRecord::getContinueSubleadingNc
bool getContinueSubleadingNc() const
Get the continue subleading Nc flag.
Definition:
DipoleEventRecord.h:228
Herwig::DipoleEventRecord::densityOperator
DensityOperator & densityOperator()
Return the density operator.
Definition:
DipoleEventRecord.h:208
Herwig::DipoleIndex
DipoleIndex is used to index splitting generators for a particular dipole.
Definition:
DipoleSplittingInfo.h:35
Herwig::DipoleShowerHandler
The DipoleShowerHandler class manages the showering using the dipole shower algorithm.
Definition:
DipoleShowerHandler.h:49
Herwig::DipoleShowerHandler::chainOrderVetoScales
bool chainOrderVetoScales
Apply chain ordering to events from matrix element corrections.
Definition:
DipoleShowerHandler.h:461
Herwig::DipoleShowerHandler::setNEmissions
void setNEmissions(unsigned int n)
Set the number of emissions.
Definition:
DipoleShowerHandler.h:315
Herwig::DipoleShowerHandler::as
double as(Energy Q) const
Calculate the alpha_s value the shower uses for Q.
Definition:
DipoleShowerHandler.h:114
Herwig::DipoleShowerHandler::getCandidates
void getCandidates(list< DipoleSplittingInfo > &clist) const
Get all possible radiating dipoles.
Herwig::DipoleShowerHandler::theGenerators
GeneratorMap theGenerators
The splitting generators indexed by the dipole indices they can work on.
Definition:
DipoleShowerHandler.h:576
Herwig::DipoleShowerHandler::getWinner
Energy getWinner(SubleadingSplittingInfo &winner, Energy optHardPt=ZERO, Energy optCutoff=ZERO)
Get the winning splitting for the given dipole and configuration.
Herwig::DipoleShowerHandler::maxPt
Energy maxPt
The shower starting scale for the last event encountered.
Definition:
DipoleShowerHandler.h:669
Herwig::DipoleShowerHandler::theEventReweight
Ptr< DipoleEventReweight >::ptr theEventReweight
A pointer to the dipole event reweight object.
Definition:
DipoleShowerHandler.h:654
Herwig::DipoleShowerHandler::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::DipoleShowerHandler::dofinish
virtual void dofinish()
Finalize this object.
Herwig::DipoleShowerHandler::particleIndices
const map< PPtr, size_t > & particleIndices() const
Return the dictionary for the incoming particles and outgoing partons in the event,...
Definition:
DipoleShowerHandler.h:148
Herwig::DipoleShowerHandler::realignmentScheme
int realignmentScheme
Switch to record information required for the nearest neighbour analysis.
Definition:
DipoleShowerHandler.h:493
Herwig::DipoleShowerHandler::showerPhaseSpaceOption
virtual int showerPhaseSpaceOption() const
The choice of z boundaries; 0 = restricted, 1 = open, 2 = mixed/other.
Definition:
DipoleShowerHandler.h:299
Herwig::DipoleShowerHandler::theWeightsVector
vector< vector< std::tuple< Energy, double, bool > > > theWeightsVector
Vector of candidate splittings containing a vector of the weights, scale and a bool for every step in...
Definition:
DipoleShowerHandler.h:608
Herwig::DipoleShowerHandler::performSplitting
void performSplitting(DipoleSplittingInfo &) const
Perform a splitting independent of any chains.
Herwig::DipoleShowerHandler::vertexRecord
const DipoleVertexRecord & vertexRecord() const
Return the event record.
Definition:
DipoleShowerHandler.h:131
Herwig::DipoleShowerHandler::cascade
virtual tPPair cascade(tSubProPtr sub, XCombPtr xcomb)
The main method which manages the showering of a subprocess.
Definition:
DipoleShowerHandler.h:212
Herwig::DipoleShowerHandler::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::DipoleShowerHandler::hardScale
virtual Energy hardScale() const
Return the relevant hard scale to be used in the profile scales.
Definition:
DipoleShowerHandler.h:106
Herwig::DipoleShowerHandler::splittingKernels
const vector< Ptr< DipoleSplittingKernel >::ptr > & splittingKernels() const
Return the splitting kernels.
Definition:
DipoleShowerHandler.h:273
Herwig::DipoleShowerHandler::theSplittingReweight
Ptr< DipoleSplittingReweight >::ptr theSplittingReweight
A pointer to a global dipole splitting reweight.
Definition:
DipoleShowerHandler.h:659
Herwig::DipoleShowerHandler::isMERegion
bool isMERegion(const Energy winnerScale, const DipoleSplittingInfo &winner, const list< Dipole >::iterator winnerDip)
In a merging setup this function checks if the next shower configuration is part of the matrix elemen...
Herwig::DipoleShowerHandler::theShowerApproximation
Ptr< ShowerApproximation >::tptr theShowerApproximation
The matching subtraction, if appropriate.
Definition:
DipoleShowerHandler.h:633
Herwig::DipoleShowerHandler::negCMECScaling
double negCMECScaling
Scaling factor for the negative colour matrix element corrections.
Definition:
DipoleShowerHandler.h:550
Herwig::DipoleShowerHandler::densityOperatorCutoff
Energy2 densityOperatorCutoff
Cutoff scale for the invariants (e.g.
Definition:
DipoleShowerHandler.h:525
Herwig::DipoleShowerHandler::canHandleMatchboxTrunc
virtual bool canHandleMatchboxTrunc() const
Return true, if the shower handler can generate a truncated shower for POWHEG style events generated ...
Definition:
DipoleShowerHandler.h:95
Herwig::DipoleShowerHandler::doSubleadingNc
bool doSubleadingNc
Switch on or off subleading Nc corrections.
Definition:
DipoleShowerHandler.h:498
Herwig::DipoleShowerHandler::continueSubleadingNc
bool continueSubleadingNc() const
Return the continue subleading Nc flag from the event record.
Definition:
DipoleShowerHandler.h:179
Herwig::DipoleShowerHandler::resetAlphaS
void resetAlphaS(Ptr< AlphaSBase >::tptr)
Reset the alpha_s for all splitting kernels.
Herwig::DipoleShowerHandler::doCascade
void doCascade(unsigned int &emDone, Energy optHardPt=ZERO, Energy optCutoff=ZERO, const bool decay=false)
Perform the cascade.
Herwig::DipoleShowerHandler::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::DipoleShowerHandler::printEvent
int printEvent
See verbosity.
Definition:
DipoleShowerHandler.h:568
Herwig::DipoleShowerHandler::nTries
unsigned int nTries
The number of shoer tries so far.
Definition:
DipoleShowerHandler.h:591
Herwig::DipoleShowerHandler::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::DipoleShowerHandler::generators
GeneratorMap & generators()
Access the generator map.
Definition:
DipoleShowerHandler.h:258
Herwig::DipoleShowerHandler::Nf
double Nf(Energy Q) const
Return the number of scale dependent active flavours from the alpha_s object.
Definition:
DipoleShowerHandler.h:121
Herwig::DipoleShowerHandler::thePowhegDecayEmission
bool thePowhegDecayEmission
True if powheg style emissions are to be used in the decays.
Definition:
DipoleShowerHandler.h:482
Herwig::DipoleShowerHandler::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::DipoleShowerHandler::hardScales
void hardScales(Energy2 scale)
Setup the hard scales.
Herwig::DipoleShowerHandler::theEvolutionOrdering
Ptr< DipoleEvolutionOrdering >::ptr theEvolutionOrdering
The evolution ordering considered.
Definition:
DipoleShowerHandler.h:440
Herwig::DipoleShowerHandler::realign
bool realign()
Realign the event such as to have the incoming partons along thre beam axes.
Herwig::DipoleShowerHandler::setMerger
void setMerger(Ptr< MergerBase >::ptr mh)
Set the pointer to the Merging Helper.
Definition:
DipoleShowerHandler.h:138
Herwig::DipoleShowerHandler::verbosity
int verbosity
The verbosity level.
Definition:
DipoleShowerHandler.h:563
Herwig::DipoleShowerHandler::theRenormalizationScaleFreeze
Energy theRenormalizationScaleFreeze
A freezing value for the renormalization scale.
Definition:
DipoleShowerHandler.h:623
Herwig::DipoleShowerHandler::theFactorizationScaleFreeze
Energy theFactorizationScaleFreeze
A freezing value for the factorization scale.
Definition:
DipoleShowerHandler.h:628
Herwig::DipoleShowerHandler::eventRecord
DipoleEventRecord & eventRecord()
Access the event record.
Definition:
DipoleShowerHandler.h:263
Herwig::DipoleShowerHandler::theZBoundaries
int theZBoundaries
The choice of z boundaries; 0 = restricted, 1 = open, 2 = mixed/other.
Definition:
DipoleShowerHandler.h:701
Herwig::DipoleShowerHandler::firstMCatNLOEmission
bool firstMCatNLOEmission
Perform the first MC@NLO emission only.
Definition:
DipoleShowerHandler.h:477
Herwig::DipoleShowerHandler::decayConstituentReshuffle
void decayConstituentReshuffle(PerturbativeProcessPtr decayProc)
Reshuffle to constituent mass shells.
Herwig::DipoleShowerHandler::cascade
tPPair cascade(tSubProPtr sub, XCombPtr xcomb, Energy optHardPt, Energy optCutoff)
The main method which manages the showering of a subprocess.
Herwig::DipoleShowerHandler::currentReferenceWeight
int currentReferenceWeight
Current reference weight used for partial unweighting of the subleading colour shower (updated each e...
Definition:
DipoleShowerHandler.h:509
Herwig::DipoleShowerHandler::hardScalesSubleading
void hardScalesSubleading(list< DipoleSplittingInfo > candidates, Energy hardPt)
Setup the hard scales of the dipoles after subleading emissions.
Herwig::DipoleShowerHandler::theGlobalAlphaS
Ptr< AlphaSBase >::ptr theGlobalAlphaS
A global alpha_s to be used for all splitting kernels.
Definition:
DipoleShowerHandler.h:455
Herwig::DipoleShowerHandler::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::DipoleShowerHandler::didRealign
bool didRealign
Whether or not we did realign the event.
Definition:
DipoleShowerHandler.h:601
Herwig::DipoleShowerHandler::theColouredOffShellInShower
set< long > theColouredOffShellInShower
PDG codes of the partons which can have an off-shell mass, this is fast storage for use during runnin...
Definition:
DipoleShowerHandler.h:690
Herwig::DipoleShowerHandler::DipoleShowerHandler
DipoleShowerHandler()
The default constructor.
Herwig::DipoleShowerHandler::particlesAfter
const cPDVector & particlesAfter() const
Return the particle data vector of the particles in the event, will be empty if subleading Nc is turn...
Definition:
DipoleShowerHandler.h:154
Herwig::DipoleShowerHandler::resetReweight
void resetReweight(Ptr< DipoleSplittingReweight >::tptr)
Reset the splitting reweight for all splitting kernels.
Herwig::DipoleShowerHandler::initDipoleShowerHandler
static ClassDescription< DipoleShowerHandler > initDipoleShowerHandler
The static object used to initialize the description of this class.
Definition:
DipoleShowerHandler.h:709
Herwig::DipoleShowerHandler::firstWarn
static bool firstWarn
True if no warnings have been issued yet.
Definition:
DipoleShowerHandler.h:664
Herwig::DipoleShowerHandler::offShellPartons
const set< long > & offShellPartons()
Return the set of offshell parton ids.
Definition:
DipoleShowerHandler.h:280
Herwig::DipoleShowerHandler::getWinner
Energy getWinner(DipoleSplittingInfo &winner, const Dipole &dip, pair< bool, bool > conf, Energy optHardPt=ZERO, Energy optCutoff=ZERO)
Get the winning splitting for the given dipole and configuration.
Herwig::DipoleShowerHandler::operator=
DipoleShowerHandler & operator=(const DipoleShowerHandler &)=delete
The assignment operator is private and must never be called.
Herwig::DipoleShowerHandler::densityOperator
DensityOperator & densityOperator()
Return the density operator from the event record.
Definition:
DipoleShowerHandler.h:159
Herwig::DipoleShowerHandler::correlatorMap
const map< pair< vector< PDT::Colour >, pair< size_t, size_t > >, double > & correlatorMap() const
Return the colour matrix element correction map, will be empty if subleading Nc is turned off.
Definition:
DipoleShowerHandler.h:165
Herwig::DipoleShowerHandler::kernels
vector< Ptr< DipoleSplittingKernel >::ptr > kernels
The splitting kernels to be used.
Definition:
DipoleShowerHandler.h:435
Herwig::DipoleShowerHandler::intrinsicPtGenerator
Ptr< IntrinsicPtGenerator >::ptr intrinsicPtGenerator
The intrinsic pt generator to be used.
Definition:
DipoleShowerHandler.h:450
Herwig::DipoleShowerHandler::colourBasis
Ptr< ColourBasis >::tptr colourBasis()
Return the colour basis used in the density operator.
Definition:
DipoleShowerHandler.h:172
Herwig::DipoleShowerHandler::getWinner
Energy getWinner(DipoleSplittingInfo &winner, Energy optHardPt=ZERO, Energy optCutoff=ZERO)
Get the winning splitting for the given dipole and configuration.
Herwig::DipoleShowerHandler::theEventRecord
DipoleEventRecord theEventRecord
The evnt record used.
Definition:
DipoleShowerHandler.h:581
Herwig::DipoleShowerHandler::winnerIndex
size_t winnerIndex
Winning candidate index.
Definition:
DipoleShowerHandler.h:613
Herwig::DipoleShowerHandler::theMergingHelper
Ptr< MergerBase >::ptr theMergingHelper
The merging helper takes care of merging multiple LO and NLO cross sections.
Definition:
DipoleShowerHandler.h:683
Herwig::DipoleShowerHandler::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::DipoleShowerHandler::constituentReshuffle
void constituentReshuffle()
Reshuffle to constituent mass shells.
Herwig::DipoleShowerHandler::addCandidates
void addCandidates(PPair particles, list< DipoleSplittingInfo > &clist) const
Add the possible splitting candidates given a pair of emitting particles.
Herwig::DipoleShowerHandler::nextSubleadingSplitting
Energy nextSubleadingSplitting(Energy hardPt, Energy optHardPt, Energy optCutoff, const bool decay)
Generate the next subleading Nc improved splitting and return the scale.
Herwig::DipoleShowerHandler::isReshuffling
virtual bool isReshuffling() const
Return true, if this cascade handler will perform reshuffling from hard process masses.
Definition:
DipoleShowerHandler.h:101
Herwig::DipoleShowerHandler::constituentReshuffler
Ptr< ConstituentReshuffler >::ptr constituentReshuffler
The ConstituentReshuffler to be used.
Definition:
DipoleShowerHandler.h:445
Herwig::DipoleShowerHandler::referenceWeight
double referenceWeight
Reference weight for the partial unweighting.
Definition:
DipoleShowerHandler.h:540
Herwig::DipoleShowerHandler::discardNoEmissions
bool discardNoEmissions
Discard events which did not radiate.
Definition:
DipoleShowerHandler.h:472
Herwig::DipoleShowerHandler::muPt
Energy muPt
The shower hard scale for the last event encountered.
Definition:
DipoleShowerHandler.h:674
Herwig::DipoleShowerHandler::getGenerators
void getGenerators(const DipoleIndex &, Ptr< DipoleSplittingReweight >::tptr rw=Ptr< DipoleSplittingReweight >::tptr())
Build splitting generators for the given dipole index.
Herwig::DipoleShowerHandler::theDoCompensate
bool theDoCompensate
True, if sampler should apply compensation.
Definition:
DipoleShowerHandler.h:638
Herwig::DipoleShowerHandler::theVertexRecord
DipoleVertexRecord theVertexRecord
The vertex record.
Definition:
DipoleShowerHandler.h:586
Herwig::DipoleShowerHandler::addSplitting
void addSplitting(Ptr< DipoleSplittingKernel >::ptr sp)
Insert an additional splitting kernel.
Definition:
DipoleShowerHandler.h:74
Herwig::DipoleShowerHandler::theInputColouredOffShellInShower
vector< long > theInputColouredOffShellInShower
PDG codes of the partons which can have an off-shell mass, this is a vector that is interfaced so the...
Definition:
DipoleShowerHandler.h:696
Herwig::DipoleShowerHandler::subleadingNcEmissionsLimit
size_t subleadingNcEmissionsLimit
Number of emissions to do subleading Nc corrections to.
Definition:
DipoleShowerHandler.h:503
Herwig::DipoleShowerHandler::theDetuning
double theDetuning
The detuning factor applied to the sampling overestimate kernel.
Definition:
DipoleShowerHandler.h:649
Herwig::DipoleShowerHandler::nEmissions
unsigned int nEmissions
Limit the number of emissions.
Definition:
DipoleShowerHandler.h:467
Herwig::DipoleShowerHandler::doPartialUnweighting
bool doPartialUnweighting
Switch on or off partial unweighting in the splitting generator.
Definition:
DipoleShowerHandler.h:535
Herwig::DipoleShowerHandler::theFreezeGrid
unsigned long theFreezeGrid
Return the number of accepted points after which the grid should be frozen.
Definition:
DipoleShowerHandler.h:644
Herwig::DipoleShowerHandler::densityOperatorEvolution
int densityOperatorEvolution
Integer used to set which method of evolving the density operator to use: 0 - Vijk is Eikonal but the...
Definition:
DipoleShowerHandler.h:519
Herwig::DipoleShowerHandler::getWinner
Energy getWinner(DipoleSplittingInfo &winner, const DipoleIndex &index, double emitterX, double spectatorX, pair< bool, bool > conf, tPPtr emitter, tPPtr spectator, Energy startScale, Energy optHardPt=ZERO, Energy optCutoff=ZERO)
Get the winning splitting for the given dipole and configuration.
Herwig::DipoleShowerHandler::cmecReweightFactor
double cmecReweightFactor
Factor changing the acceptance probability for the veto algorithm.
Definition:
DipoleShowerHandler.h:545
Herwig::DipoleShowerHandler::doPartialUnweightingAtEmission
bool doPartialUnweightingAtEmission
Switch on or off partial unweighting in after each subleading emission.
Definition:
DipoleShowerHandler.h:530
Herwig::DipoleShowerHandler::didRadiate
bool didRadiate
Whether or not we did radiate anything.
Definition:
DipoleShowerHandler.h:596
Herwig::DipoleShowerHandler::eventRecord
const DipoleEventRecord & eventRecord() const
Return the event record.
Definition:
DipoleShowerHandler.h:268
Herwig::DipoleShowerHandler::evolutionOrdering
Ptr< DipoleEvolutionOrdering >::tptr evolutionOrdering() const
Return the evolution ordering.
Definition:
DipoleShowerHandler.h:243
Herwig::DipoleSplittingInfo
DipoleSplittingInfo contains all parameters to generate a full dipole splitting.
Definition:
DipoleSplittingInfo.h:209
Herwig::DipoleVertexRecord
Here is the documentation of the DipoleVertexRecord class.
Definition:
DipoleVertexRecord.h:21
Herwig::Dipole
The Dipole class is used by the dipole shower to represent a dipole of two coloured partons.
Definition:
Dipole.h:30
Herwig::Merger
This class is responsible for the handling of the merging process after the setup stage,...
Definition:
Merger.h:95
Herwig::ShowerHandler
This class is the main driver of the shower: it is responsible for the proper handling of all other s...
Definition:
ShowerHandler.h:40
Herwig::ShowerHandler::decay
tDMPtr decay(PerturbativeProcessPtr, DecayProcessMap &decay, bool radPhotons=false) const
Decay a particle.
Herwig::ShowerHandler::cascade
virtual void cascade()
The main method which manages the multiple interactions and starts the shower by calling cascade(sub,...
Herwig::SubleadingSplittingInfo
Generalized dipole splitting info to deal with subleading-N splittings.
Definition:
DipoleEventRecord.h:36
ThePEG::ClassDescription
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::tPPtr
ThePEG::Ptr< Particle >::transient_pointer tPPtr
ThePEG::PPair
pair< PPtr, PPtr > PPair
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::tPVector
vector< tPPtr > tPVector
ThePEG::tPPair
pair< tPPtr, tPPtr > tPPair
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::sqr
constexpr auto sqr(const T &x) -> decltype(x *x)
ThePEG::cPDVector
vector< cPDPtr > cPDVector
ThePEG::XCombPtr
ThePEG::Ptr< XComb >::pointer XCombPtr
Herwig::DipoleShowerHandler::RedoShower
Indicate a problem in the shower.
Definition:
DipoleShowerHandler.h:69
ThePEG::BaseClassTrait
ThePEG::BaseClassTrait::NthBase
int NthBase
ThePEG::ClassTraitsBase
ThePEG::ClassTraitsBase::className
static string className()
ThePEG::ClassTraitsBase::library
static string library()
ThePEG::ClassTraits
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6