herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
Dipoles
SubtractionDipole.h
1
// -*- C++ -*-
2
//
3
// SubtractionDipole.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_SubtractionDipole_H
10
#define HERWIG_SubtractionDipole_H
11
//
12
// This is the declaration of the SubtractionDipole class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.fh"
16
#include "Herwig/MatrixElement/Matchbox/Phasespace/TildeKinematics.fh"
17
#include "Herwig/MatrixElement/Matchbox/Phasespace/InvertedTildeKinematics.fh"
18
19
#include "ThePEG/MatrixElement/MEBase.h"
20
#include "ThePEG/Handlers/StandardXComb.h"
21
#include "Herwig/MatrixElement/Matchbox/Base/MatchboxMEBase.h"
22
#include "Herwig/MatrixElement/Matchbox/Matching/ShowerApproximation.h"
23
#include "Herwig/MatrixElement/Matchbox/MatchboxFactory.fh"
24
25
namespace
Herwig
{
26
27
using namespace
ThePEG
;
28
37
class
SubtractionDipole
:
38
public
MEBase
,
public
LastMatchboxXCombInfo
{
39
40
public
:
41
47
SubtractionDipole
();
48
52
virtual
~SubtractionDipole
();
54
55
public
:
56
60
Ptr<MatchboxFactory>::tptr
factory
()
const
;
61
64
69
struct
MergeInfo
{
70
74
int
emitter
;
75
79
Ptr<Tree2toNDiagram>::ptr
diagram
;
80
84
map<int,int>
mergeLegs
;
85
86
};
87
92
virtual
bool
canHandleEmitter
(
const
cPDVector
& partons,
int
emitter
)
const
= 0;
93
98
virtual
bool
canHandleSplitting
(
const
cPDVector
& partons,
int
emitter
,
int
emission
)
const
= 0;
99
104
virtual
bool
canHandleSpectator
(
const
cPDVector
& partons,
int
spectator
)
const
= 0;
105
110
virtual
bool
canHandle
(
const
cPDVector
& partons,
111
int
emitter
,
int
emission
,
int
spectator
)
const
= 0;
112
117
virtual
bool
isSymmetric
()
const
{
return
false
; }
118
123
virtual
bool
apply
()
const
{
return
theApply
; }
124
128
void
clearBookkeeping
();
129
133
void
setupBookkeeping
(
const
map<Ptr<DiagramBase>::ptr,
MergeInfo
>& mergeInfo,
bool
slim);
134
139
void
subtractionBookkeeping
();
140
146
void
splittingBookkeeping
();
147
152
virtual
StdXCombPtr
makeXComb
(Energy newMaxEnergy,
const
cPDPair
& inc,
153
tEHPtr
newEventHandler,tSubHdlPtr newSubProcessHandler,
154
tPExtrPtr
newExtractor,
tCascHdlPtr
newCKKW,
155
const
PBPair & newPartonBins, tCutsPtr newCuts,
156
const
DiagramVector
& newDiagrams,
bool
mir,
157
const
PartonPairVec& allPBins,
158
tStdXCombPtr newHead = tStdXCombPtr(),
159
tMEPtr newME = tMEPtr());
160
165
virtual
StdXCombPtr
makeXComb
(tStdXCombPtr newHead,
166
const
PBPair & newPartonBins,
167
const
DiagramVector
& newDiagrams,
168
tMEPtr newME = tMEPtr());
169
174
StdXCombPtr
makeBornXComb
(tStdXCombPtr realXC);
175
180
vector<StdXCombPtr>
makeRealXCombs
(tStdXCombPtr bornXC);
181
185
bool
empty
()
const
{
return
theSplittingMap
.empty()&&
theMergingMap
.empty(); }
186
191
int
realEmitter
()
const
{
return
theRealEmitter
; }
192
197
void
realEmitter
(
int
id
) {
theRealEmitter
= id; }
198
203
int
realEmission
()
const
{
return
theRealEmission
; }
204
209
void
realEmission
(
int
id
) {
theRealEmission
= id; }
210
215
int
realSpectator
()
const
{
return
theRealSpectator
; }
216
221
void
realSpectator
(
int
id
) {
theRealSpectator
= id; }
222
227
int
bornEmitter
()
const
{
return
theBornEmitter
; }
228
233
void
bornEmitter
(
int
id
) {
theBornEmitter
= id; }
234
239
int
bornSpectator
()
const
{
return
theBornSpectator
; }
240
245
void
bornSpectator
(
int
id
) {
theBornSpectator
= id; }
246
250
typedef
pair<pair<cPDVector,int>,pair<int,int> >
RealEmissionKey
;
251
255
static
RealEmissionKey
realEmissionKey
(
const
cPDVector
& proc,
256
int
em,
int
emm,
int
sp) {
257
return
make_pair(make_pair(proc,emm),make_pair(em,sp));
258
}
259
263
static
const
cPDVector
&
process
(
const
RealEmissionKey
& key) {
264
return
key.first.first;
265
}
266
270
static
int
emission
(
const
RealEmissionKey
& key) {
271
return
key.first.second;
272
}
273
277
static
int
emitter
(
const
RealEmissionKey
& key) {
278
return
key.second.first;
279
}
280
284
static
int
spectator
(
const
RealEmissionKey
& key) {
285
return
key.second.second;
286
}
287
291
typedef
pair<cPDVector,pair<int,int> >
UnderlyingBornKey
;
292
296
static
UnderlyingBornKey
underlyingBornKey
(
const
cPDVector
& proc,
297
int
em,
int
sp) {
298
return
make_pair(proc,make_pair(em,sp));
299
}
300
304
static
const
cPDVector
&
process
(
const
UnderlyingBornKey
& key) {
305
return
key.first;
306
}
307
311
static
int
emitter
(
const
UnderlyingBornKey
& key) {
312
return
key.second.first;
313
}
314
318
static
int
spectator
(
const
UnderlyingBornKey
& key) {
319
return
key.second.second;
320
}
321
326
typedef
pair<RealEmissionKey,map<int,int> >
RealEmissionInfo
;
327
332
typedef
pair<UnderlyingBornKey,map<int,int> >
UnderlyingBornInfo
;
333
337
const
map<RealEmissionKey,UnderlyingBornInfo>&
mergingMap
()
const
{
return
theMergingMap
; }
338
342
const
multimap<UnderlyingBornKey,RealEmissionInfo>&
splittingMap
()
const
{
return
theSplittingMap
; }
343
348
const
DiagramVector
&
underlyingBornDiagrams
(
const
cPDVector
& real)
const
;
349
353
tcDiagPtr
underlyingBornDiagram
(tcDiagPtr realDiag)
const
;
354
359
const
DiagramVector
&
realEmissionDiagrams
(
const
cPDVector
& born)
const
;
360
364
tcDiagPtr
realEmissionDiagram
(tcDiagPtr bornDiag)
const
;
365
369
virtual
void
getDiagrams
()
const
;
370
378
virtual
bool
noMirror
()
const
{
return
true
; }
379
386
virtual
Selector<DiagramIndex>
diagrams
(
const
DiagramVector
& dv)
const
;
387
392
virtual
Selector<const ColourLines *>
393
colourGeometries
(tcDiagPtr diag)
const
;
394
400
virtual
const
ColourLines
&
401
selectColourGeometry
(tcDiagPtr diag)
const
;
402
407
virtual
unsigned
int
orderInAlphaS
()
const
{
return
realEmissionME
()->orderInAlphaS(); }
408
413
virtual
unsigned
int
orderInAlphaEW
()
const
{
return
underlyingBornME
()->orderInAlphaEW(); }
414
416
419
424
virtual
void
setXComb
(tStdXCombPtr xc);
425
433
virtual
void
setKinematics
();
434
443
virtual
bool
generateKinematics
(
const
double
* r);
444
449
virtual
int
nDim
()
const
;
450
455
virtual
bool
wantCMS
()
const
{
return
realEmissionME
()->wantCMS(); }
456
461
virtual
void
clearKinematics
();
462
467
virtual
bool
ignoreCuts
()
const
{
return
theIgnoreCuts
; }
468
472
void
doIgnoreCuts
(
bool
is =
true
) {
theIgnoreCuts
= is; }
473
475
478
482
Ptr<TildeKinematics>::tcptr
tildeKinematics
()
const
{
return
theTildeKinematics
; }
483
487
void
tildeKinematics
(Ptr<TildeKinematics>::tptr);
488
495
virtual
bool
generateTildeKinematics
();
496
500
Ptr<InvertedTildeKinematics>::tcptr
invertedTildeKinematics
()
const
{
return
theInvertedTildeKinematics
; }
501
505
void
invertedTildeKinematics
(Ptr<InvertedTildeKinematics>::tptr);
506
514
virtual
int
nDimRadiation
()
const
;
515
524
virtual
bool
generateRadiationKinematics
(
const
double
*);
525
529
void
ptCut
(Energy cut);
530
534
Energy
lastDipoleScale
()
const
{
535
return
splitting
() ?
theLastSplittingScale
:
theLastSubtractionScale
;
536
}
537
541
Energy
lastPt
()
const
{
542
return
splitting
() ?
theLastSplittingPt
:
theLastSubtractionPt
;
543
}
544
548
double
lastZ
()
const
{
549
return
splitting
() ?
theLastSplittingZ
:
theLastSubtractionZ
;
550
}
551
555
bool
splitting
()
const
{
return
theSplitting
; }
556
560
void
doSplitting
() {
theSplitting
=
true
; }
561
565
void
doSubtraction
() {
theSplitting
=
false
; }
566
570
const
vector<double>&
subtractionParameters
()
const
{
return
theSubtractionParameters
; }
571
575
vector<double>&
subtractionParameters
() {
return
theSubtractionParameters
; }
576
580
Energy
showerHardScale
()
const
{
return
theShowerHardScale
; }
581
585
void
showerHardScale
(Energy s) {
theShowerHardScale
= s; }
586
590
Energy
showerScale
()
const
{
return
theShowerScale
; }
591
595
void
showerScale
(Energy s) {
theShowerScale
= s; }
596
600
const
vector<double>&
showerParameters
()
const
{
return
theShowerParameters
; }
601
605
vector<double>&
showerParameters
() {
return
theShowerParameters
; }
606
610
bool
isInShowerPhasespace
()
const
{
return
theIsInShowerPhasespace
; }
611
615
void
isInShowerPhasespace
(
bool
yes) {
theIsInShowerPhasespace
= yes; }
616
620
bool
isAboveCutoff
()
const
{
return
theIsAboveCutoff
; }
621
625
void
isAboveCutoff
(
bool
yes) {
theIsAboveCutoff
= yes; }
626
628
631
635
bool
realEmissionScales
()
const
{
return
theRealEmissionScales
; }
636
640
void
doRealEmissionScales
(
bool
on =
true
) {
theRealEmissionScales
= on; }
641
646
virtual
Energy2
scale
()
const
{
647
return
realEmissionScales
() ?
648
realEmissionME
()->scale() :
649
underlyingBornME
()->scale();
650
}
651
657
virtual
double
alphaS
()
const
{
658
return
realEmissionScales
() ?
659
realEmissionME
()->alphaS() :
660
underlyingBornME
()->alphaS();
661
}
662
668
virtual
double
alphaEM
()
const
{
669
return
realEmissionScales
() ?
670
realEmissionME
()->alphaEM() :
671
underlyingBornME
()->alphaEM();
672
}
673
678
virtual
bool
havePDFWeight1
()
const
{
return
realEmissionME
()->havePDFWeight1(); }
679
684
virtual
bool
havePDFWeight2
()
const
{
return
realEmissionME
()->havePDFWeight2(); }
685
694
virtual
int
samplingZ
()
const
{
return
4;}
696
699
703
Ptr<MatchboxMEBase>::tcptr
realEmissionME
()
const
{
704
return
theRealEmissionME
;
705
}
706
710
Ptr<MatchboxMEBase>::tptr
realEmissionME
() {
711
return
theRealEmissionME
;
712
}
713
717
void
realEmissionME
(Ptr<MatchboxMEBase>::tptr me) {
theRealEmissionME
= me; }
718
722
Ptr<MatchboxMEBase>::tcptr
underlyingBornME
()
const
{
723
return
theUnderlyingBornME
;
724
}
725
729
Ptr<MatchboxMEBase>::tptr
underlyingBornME
() {
730
return
theUnderlyingBornME
;
731
}
732
736
void
underlyingBornME
(Ptr<MatchboxMEBase>::tptr me) {
theUnderlyingBornME
= me; }
737
741
void
partnerDipoles
(
const
vector<Ptr<SubtractionDipole>::tptr>& p) {
742
thePartners
= p;
743
}
744
748
const
vector<Ptr<SubtractionDipole>::tptr>&
partnerDipoles
()
const
{
749
return
thePartners
;
750
}
751
755
virtual
double
me2Avg
(
double
ccme2)
const
= 0;
756
761
virtual
CrossSection
dSigHatDR
(Energy2 factorizationScale)
const
;
762
767
virtual
CrossSection
dSigHatDR
()
const
{
return
dSigHatDR
(
ZERO
); }
768
769
771
CrossSection
prefactor
(Energy2 factorizationScale)
const
;
772
777
CrossSection
ps
(Energy2 factorizationScale,Ptr<ColourBasis>::tptr largeNBasis)
const
;
778
783
CrossSection
dip
(Energy2 factorizationScale)
const
;
784
785
786
791
pair<CrossSection,CrossSection>
dipandPs
(Energy2 factorizationScale,Ptr<ColourBasis>::tptr largeNBasis)
const
;
792
794
797
801
void
showerApproximation
(Ptr<ShowerApproximation>::tptr app) {
802
theShowerApproximation
= app;
803
}
804
808
Ptr<ShowerApproximation>::tptr
showerApproximation
()
const
{
return
theShowerApproximation
; }
809
813
void
doRealShowerSubtraction
() {
theRealShowerSubtraction
=
true
; }
814
818
bool
realShowerSubtraction
()
const
{
return
theRealShowerSubtraction
; }
819
823
void
doVirtualShowerSubtraction
() {
theVirtualShowerSubtraction
=
true
; }
824
828
bool
virtualShowerSubtraction
()
const
{
return
theVirtualShowerSubtraction
; }
829
833
void
doLoopSimSubtraction
() {
theLoopSimSubtraction
=
true
; }
834
838
bool
loopSimSubtraction
()
const
{
return
theLoopSimSubtraction
; }
839
841
844
850
virtual
void
flushCaches
();
851
855
void
doTestSubtraction
() {
theSubtractionTest
=
true
; }
856
860
bool
testSubtraction
()
const
{
return
theSubtractionTest
; }
861
865
bool
verbose
()
const
{
return
realEmissionME
()->verbose() ||
underlyingBornME
()->verbose(); }
866
870
void
print
(ostream&)
const
;
871
875
virtual
void
printLastEvent
(ostream&)
const
;
876
881
void
logGenerateTildeKinematics
()
const
;
882
887
void
logGenerateRadiationKinematics
(
const
double
* r)
const
;
888
893
void
logME2
()
const
;
894
899
void
logDSigHatDR
(
double
effectiveJac)
const
;
900
902
905
909
void
addReweight
(Ptr<MatchboxReweightBase>::ptr rw) {
theReweights
.push_back(rw); }
910
914
const
vector<Ptr<MatchboxReweightBase>::ptr>&
reweights
()
const
{
return
theReweights
; }
915
919
vector<Ptr<MatchboxReweightBase>::ptr>&
reweights
() {
return
theReweights
; }
920
922
925
929
Ptr<SubtractionDipole>::ptr
cloneMe
()
const
{
930
return
dynamic_ptr_cast<Ptr<SubtractionDipole>::ptr>(
clone
());
931
}
932
937
void
cloneDependencies
(
const
std::string& prefix =
""
,
bool
slim=
false
);
938
940
943
947
virtual
void
constructVertex
(
tSubProPtr
sub);
948
952
virtual
void
constructVertex
(
tSubProPtr
sub,
const
ColourLines
* cl);
953
961
virtual
void
generateSubCollision
(
SubProcess
& sub);
962
968
double
alpha
()
const
;
969
970
/*
971
* True if phase space point is above the alpha cut for this dipole.
972
*/
973
974
bool
aboveAlpha()
const
;
975
977
978
public
:
979
986
void
persistentOutput
(
PersistentOStream
& os)
const
;
987
993
void
persistentInput
(
PersistentIStream
& is,
int
version);
995
1002
static
void
Init
();
1003
1004
protected
:
1005
1008
1014
virtual
void
doinit
();
1015
1020
virtual
void
doinitrun
();
1022
1023
private
:
1024
1028
bool
theSplitting
;
1029
1033
bool
theApply
;
1034
1038
bool
theSubtractionTest
;
1039
1043
bool
theIgnoreCuts
;
1044
1048
Ptr<MatchboxMEBase>::ptr
theRealEmissionME
;
1049
1053
Ptr<MatchboxMEBase>::ptr
theUnderlyingBornME
;
1054
1058
vector<Ptr<SubtractionDipole>::tptr>
thePartners
;
1059
1063
Ptr<TildeKinematics>::ptr
theTildeKinematics
;
1064
1068
Ptr<InvertedTildeKinematics>::ptr
theInvertedTildeKinematics
;
1069
1074
vector<Ptr<MatchboxReweightBase>::ptr>
theReweights
;
1075
1080
int
theRealEmitter
;
1081
1086
int
theRealEmission
;
1087
1092
int
theRealSpectator
;
1093
1097
vector<double>
theSubtractionParameters
;
1098
1103
map<RealEmissionKey,UnderlyingBornInfo>
theMergingMap
;
1104
1109
multimap<UnderlyingBornKey,RealEmissionInfo>
theSplittingMap
;
1110
1114
map<cPDVector,pair<int,int> >
theIndexMap
;
1115
1119
map<cPDVector,DiagramVector>
theUnderlyingBornDiagrams
;
1120
1124
map<cPDVector,DiagramVector>
theRealEmissionDiagrams
;
1125
1129
map<tcDiagPtr,tcDiagPtr>
theBornToRealDiagrams
;
1130
1134
map<tcDiagPtr,tcDiagPtr>
theRealToBornDiagrams
;
1135
1139
RealEmissionKey
lastRealEmissionKey
;
1140
1144
UnderlyingBornKey
lastUnderlyingBornKey
;
1145
1149
multimap<UnderlyingBornKey,RealEmissionInfo>::const_iterator
lastRealEmissionInfo
;
1150
1155
int
theBornEmitter
;
1156
1161
int
theBornSpectator
;
1162
1166
Energy
theLastSubtractionScale
;
1167
1171
Energy
theLastSplittingScale
;
1172
1176
Energy
theLastSubtractionPt
;
1177
1181
Energy
theLastSplittingPt
;
1182
1186
double
theLastSubtractionZ
;
1187
1191
double
theLastSplittingZ
;
1192
1196
Ptr<ShowerApproximation>::ptr
theShowerApproximation
;
1197
1201
bool
theRealShowerSubtraction
;
1202
1206
bool
theVirtualShowerSubtraction
;
1207
1211
bool
theLoopSimSubtraction
;
1212
1216
bool
theRealEmissionScales
;
1217
1221
Energy
theShowerHardScale
;
1222
1226
Energy
theShowerScale
;
1227
1231
vector<double>
theShowerParameters
;
1232
1236
bool
theIsInShowerPhasespace
;
1237
1241
bool
theIsAboveCutoff
;
1242
1243
private
:
1244
1249
SubtractionDipole
&
operator=
(
const
SubtractionDipole
&) =
delete
;
1250
1251
};
1252
1253
}
1254
1255
#endif
/* HERWIG_SubtractionDipole_H */
Herwig::LastMatchboxXCombInfo
Provide easy access to MatchboxXComb XComb extensions.
Definition:
LastMatchboxXCombInfo.h:27
Herwig::SubtractionDipole
SubtractionDipole represents a dipole subtraction term in the formalism of Catani and Seymour.
Definition:
SubtractionDipole.h:38
Herwig::SubtractionDipole::invertedTildeKinematics
Ptr< InvertedTildeKinematics >::tcptr invertedTildeKinematics() const
Return the InvertedTildeKinematics object used.
Definition:
SubtractionDipole.h:500
Herwig::SubtractionDipole::emission
static int emission(const RealEmissionKey &key)
Return the emission id of a real emission key.
Definition:
SubtractionDipole.h:270
Herwig::SubtractionDipole::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::SubtractionDipole::theVirtualShowerSubtraction
bool theVirtualShowerSubtraction
True, if the shower virtual contribution should be subtracted.
Definition:
SubtractionDipole.h:1206
Herwig::SubtractionDipole::bornEmitter
int bornEmitter() const
Return the emitter as referred to by the underlying Born process.
Definition:
SubtractionDipole.h:227
Herwig::SubtractionDipole::invertedTildeKinematics
void invertedTildeKinematics(Ptr< InvertedTildeKinematics >::tptr)
Set the InvertedTildeKinematics object used.
Herwig::SubtractionDipole::realEmissionKey
static RealEmissionKey realEmissionKey(const cPDVector &proc, int em, int emm, int sp)
Create a real emission key.
Definition:
SubtractionDipole.h:255
Herwig::SubtractionDipole::orderInAlphaS
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Definition:
SubtractionDipole.h:407
Herwig::SubtractionDipole::alphaS
virtual double alphaS() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
Definition:
SubtractionDipole.h:657
Herwig::SubtractionDipole::subtractionParameters
const vector< double > & subtractionParameters() const
Return the subtraction parameters.
Definition:
SubtractionDipole.h:570
Herwig::SubtractionDipole::tildeKinematics
void tildeKinematics(Ptr< TildeKinematics >::tptr)
Set the TildeKinematics object used.
Herwig::SubtractionDipole::me2Avg
virtual double me2Avg(double ccme2) const =0
Return the matrix element averaged over spin correlations.
Herwig::SubtractionDipole::splittingBookkeeping
void splittingBookkeeping()
Determine bookkeeping information for the underlying Born process supplied through the lastHeadXComb(...
Herwig::SubtractionDipole::showerScale
void showerScale(Energy s)
Set the shower evolution scale encountered.
Definition:
SubtractionDipole.h:595
Herwig::SubtractionDipole::apply
virtual bool apply() const
If this is a dependent matrix element in a ME group, return true, if it applies to the process set in...
Definition:
SubtractionDipole.h:123
Herwig::SubtractionDipole::selectColourGeometry
virtual const ColourLines & selectColourGeometry(tcDiagPtr diag) const
Select a ColpurLines geometry.
Herwig::SubtractionDipole::logGenerateRadiationKinematics
void logGenerateRadiationKinematics(const double *r) const
Write out diagnostic information for generateRadiationKinematics.
Herwig::SubtractionDipole::theSplittingMap
multimap< UnderlyingBornKey, RealEmissionInfo > theSplittingMap
Map underlying Born diagrams and tilde emitter/spectator to real emission diagram containing the spli...
Definition:
SubtractionDipole.h:1109
Herwig::SubtractionDipole::spectator
static int spectator(const UnderlyingBornKey &key)
Return the spectator id of a underlying Born key.
Definition:
SubtractionDipole.h:318
Herwig::SubtractionDipole::emitter
static int emitter(const RealEmissionKey &key)
Return the emitter id of a real emission key.
Definition:
SubtractionDipole.h:277
Herwig::SubtractionDipole::setupBookkeeping
void setupBookkeeping(const map< Ptr< DiagramBase >::ptr, MergeInfo > &mergeInfo, bool slim)
Setup bookkeeping maps.
Herwig::SubtractionDipole::empty
bool empty() const
Return true, if bookkeeping did not find a non-trivial setup.
Definition:
SubtractionDipole.h:185
Herwig::SubtractionDipole::theIsAboveCutoff
bool theIsAboveCutoff
True, if this configuration is above the shower infrared cutoff.
Definition:
SubtractionDipole.h:1241
Herwig::SubtractionDipole::theRealEmission
int theRealEmission
The emission as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:1086
Herwig::SubtractionDipole::dip
CrossSection dip(Energy2 factorizationScale) const
Calculate the dipole with clusterfsafe flag.
Herwig::SubtractionDipole::generateKinematics
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval ]0,...
Herwig::SubtractionDipole::realEmissionScales
bool realEmissionScales() const
Return true, if scales should be calculated from real emission kinematics.
Definition:
SubtractionDipole.h:635
Herwig::SubtractionDipole::subtractionParameters
vector< double > & subtractionParameters()
Access the subtraction parameters.
Definition:
SubtractionDipole.h:575
Herwig::SubtractionDipole::printLastEvent
virtual void printLastEvent(ostream &) const
Print debug information on the last event.
Herwig::SubtractionDipole::virtualShowerSubtraction
bool virtualShowerSubtraction() const
Return true, if the shower virtual contribution should be subtracted.
Definition:
SubtractionDipole.h:828
Herwig::SubtractionDipole::logME2
void logME2() const
Write out diagnostic information for me2 evaluation.
Herwig::SubtractionDipole::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::SubtractionDipole::theBornEmitter
int theBornEmitter
The emitter as referred to by the underlying Born matrix element.
Definition:
SubtractionDipole.h:1155
Herwig::SubtractionDipole::alphaEM
virtual double alphaEM() const
Return the value of associated with the phase space point provided by the last call to setKinematics...
Definition:
SubtractionDipole.h:668
Herwig::SubtractionDipole::UnderlyingBornInfo
pair< UnderlyingBornKey, map< int, int > > UnderlyingBornInfo
Define underlying Born key and index dictionary for partons not involved in the given dipole.
Definition:
SubtractionDipole.h:332
Herwig::SubtractionDipole::tildeKinematics
Ptr< TildeKinematics >::tcptr tildeKinematics() const
Return the TildeKinematics object used.
Definition:
SubtractionDipole.h:482
Herwig::SubtractionDipole::generateRadiationKinematics
virtual bool generateRadiationKinematics(const double *)
Generate the real emission kinematics off the Born kinematics accessible through the XComb's head obj...
Herwig::SubtractionDipole::subtractionBookkeeping
void subtractionBookkeeping()
Get bookkeeping information for the given real emission diagram.
Herwig::SubtractionDipole::theRealShowerSubtraction
bool theRealShowerSubtraction
True, if the shower real emission contribution should be subtracted.
Definition:
SubtractionDipole.h:1201
Herwig::SubtractionDipole::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::SubtractionDipole::realEmitter
int realEmitter() const
Return the emitter as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:191
Herwig::SubtractionDipole::generateSubCollision
virtual void generateSubCollision(SubProcess &sub)
Comlete a SubProcess object using the internal degrees of freedom generated in the last generateKinem...
Herwig::SubtractionDipole::logDSigHatDR
void logDSigHatDR(double effectiveJac) const
Write out diagnostic information for dsigdr evaluation.
Herwig::SubtractionDipole::cloneMe
Ptr< SubtractionDipole >::ptr cloneMe() const
Clone this dipole.
Definition:
SubtractionDipole.h:929
Herwig::SubtractionDipole::isInShowerPhasespace
void isInShowerPhasespace(bool yes)
Indicate whether this configuration is in the shower phase space.
Definition:
SubtractionDipole.h:615
Herwig::SubtractionDipole::theInvertedTildeKinematics
Ptr< InvertedTildeKinematics >::ptr theInvertedTildeKinematics
The InvertedTildeKinematics to be used.
Definition:
SubtractionDipole.h:1068
Herwig::SubtractionDipole::ignoreCuts
virtual bool ignoreCuts() const
If this is a dependent matrix element in a ME group, return true, if cuts should be ignored.
Definition:
SubtractionDipole.h:467
Herwig::SubtractionDipole::ptCut
void ptCut(Energy cut)
Set a pt cut when splitting.
Herwig::SubtractionDipole::showerScale
Energy showerScale() const
Return the shower evolution scale encountered.
Definition:
SubtractionDipole.h:590
Herwig::SubtractionDipole::theRealEmissionME
Ptr< MatchboxMEBase >::ptr theRealEmissionME
The real emission matrix element to be considered.
Definition:
SubtractionDipole.h:1048
Herwig::SubtractionDipole::process
static const cPDVector & process(const RealEmissionKey &key)
Return the diagram of a real emission key.
Definition:
SubtractionDipole.h:263
Herwig::SubtractionDipole::theApply
bool theApply
True, if should apply to process in the xcomb.
Definition:
SubtractionDipole.h:1033
Herwig::SubtractionDipole::noMirror
virtual bool noMirror() const
Return true, if this matrix element does not want to make use of mirroring processes; in this case al...
Definition:
SubtractionDipole.h:378
Herwig::SubtractionDipole::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::SubtractionDipole::showerHardScale
void showerHardScale(Energy s)
Set the shower hard scale encountered.
Definition:
SubtractionDipole.h:585
Herwig::SubtractionDipole::logGenerateTildeKinematics
void logGenerateTildeKinematics() const
Write out diagnostic information for generateTildeKinematics.
Herwig::SubtractionDipole::realSpectator
int realSpectator() const
Return the spectator as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:215
Herwig::SubtractionDipole::orderInAlphaEW
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
Definition:
SubtractionDipole.h:413
Herwig::SubtractionDipole::doVirtualShowerSubtraction
void doVirtualShowerSubtraction()
Indicate that the shower virtual contribution should be subtracted.
Definition:
SubtractionDipole.h:823
Herwig::SubtractionDipole::bornEmitter
void bornEmitter(int id)
Set the emitter as referred to by the underlying Born process.
Definition:
SubtractionDipole.h:233
Herwig::SubtractionDipole::canHandleSplitting
virtual bool canHandleSplitting(const cPDVector &partons, int emitter, int emission) const =0
Return true, if this dipole can possibly handle the indicated splitting.
Herwig::SubtractionDipole::realEmissionME
void realEmissionME(Ptr< MatchboxMEBase >::tptr me)
Set the real emission matrix element.
Definition:
SubtractionDipole.h:717
Herwig::SubtractionDipole::isSymmetric
virtual bool isSymmetric() const
Return true, if this dipole is symmetric with respect to emitter and emission.
Definition:
SubtractionDipole.h:117
Herwig::SubtractionDipole::theMergingMap
map< RealEmissionKey, UnderlyingBornInfo > theMergingMap
Map real emission diagrams to underlying Born diagrams and tilde emitter/spectator.
Definition:
SubtractionDipole.h:1103
Herwig::SubtractionDipole::print
void print(ostream &) const
Dump the setup to an ostream.
Herwig::SubtractionDipole::bornSpectator
void bornSpectator(int id)
Set the spectator as referred to by the underlying Born process.
Definition:
SubtractionDipole.h:245
Herwig::SubtractionDipole::splitting
bool splitting() const
Return true, if this dipole acts in splitting mode.
Definition:
SubtractionDipole.h:555
Herwig::SubtractionDipole::doLoopSimSubtraction
void doLoopSimSubtraction()
Indicate that the loopsim matched virtual contribution should be subtracted.
Definition:
SubtractionDipole.h:833
Herwig::SubtractionDipole::underlyingBornME
Ptr< MatchboxMEBase >::tptr underlyingBornME()
Return the underlying Born matrix element.
Definition:
SubtractionDipole.h:729
Herwig::SubtractionDipole::reweights
vector< Ptr< MatchboxReweightBase >::ptr > & reweights()
Access the reweight objects.
Definition:
SubtractionDipole.h:919
Herwig::SubtractionDipole::doTestSubtraction
void doTestSubtraction()
Indicate that the subtraction is being tested.
Definition:
SubtractionDipole.h:855
Herwig::SubtractionDipole::realEmissionME
Ptr< MatchboxMEBase >::tptr realEmissionME()
Return the real emission matrix element.
Definition:
SubtractionDipole.h:710
Herwig::SubtractionDipole::partnerDipoles
const vector< Ptr< SubtractionDipole >::tptr > & partnerDipoles() const
Return the dipoles which have been found along with this dipole.
Definition:
SubtractionDipole.h:748
Herwig::SubtractionDipole::SubtractionDipole
SubtractionDipole()
The default constructor.
Herwig::SubtractionDipole::showerParameters
const vector< double > & showerParameters() const
Return the shower splitting variables encountered.
Definition:
SubtractionDipole.h:600
Herwig::SubtractionDipole::doIgnoreCuts
void doIgnoreCuts(bool is=true)
Indicate that cuts should be ignored.
Definition:
SubtractionDipole.h:472
Herwig::SubtractionDipole::makeBornXComb
StdXCombPtr makeBornXComb(tStdXCombPtr realXC)
Create a dependent xcomb object for the underlying Born process, given a XComb driving the real emiss...
Herwig::SubtractionDipole::theBornToRealDiagrams
map< tcDiagPtr, tcDiagPtr > theBornToRealDiagrams
Map underlying Born diagrams to real emission diagrams.
Definition:
SubtractionDipole.h:1129
Herwig::SubtractionDipole::showerParameters
vector< double > & showerParameters()
Access the shower splitting variables encountered.
Definition:
SubtractionDipole.h:605
Herwig::SubtractionDipole::theShowerScale
Energy theShowerScale
The shower evolution scale encountered.
Definition:
SubtractionDipole.h:1226
Herwig::SubtractionDipole::makeRealXCombs
vector< StdXCombPtr > makeRealXCombs(tStdXCombPtr bornXC)
Create dependent xcomb objects for the real emission process, given a XComb driving the underlying Bo...
Herwig::SubtractionDipole::isAboveCutoff
void isAboveCutoff(bool yes)
Indicate whether this configuration is above the shower infrared cutoff.
Definition:
SubtractionDipole.h:625
Herwig::SubtractionDipole::theSubtractionParameters
vector< double > theSubtractionParameters
The subtraction parameters.
Definition:
SubtractionDipole.h:1097
Herwig::SubtractionDipole::bornSpectator
int bornSpectator() const
Return the spectator as referred to by the underlying Born process.
Definition:
SubtractionDipole.h:239
Herwig::SubtractionDipole::lastDipoleScale
Energy lastDipoleScale() const
Return the relevant dipole scale.
Definition:
SubtractionDipole.h:534
Herwig::SubtractionDipole::realEmissionDiagrams
const DiagramVector & realEmissionDiagrams(const cPDVector &born) const
Return the real emission diagrams to be considered for the given Born process.
Herwig::SubtractionDipole::operator=
SubtractionDipole & operator=(const SubtractionDipole &)=delete
The assignment operator is private and must never be called.
Herwig::SubtractionDipole::underlyingBornDiagram
tcDiagPtr underlyingBornDiagram(tcDiagPtr realDiag) const
Find the underlying Born diagram for the given real emission diagram.
Herwig::SubtractionDipole::loopSimSubtraction
bool loopSimSubtraction() const
Return true, if the loopsim matched virtual contribution should be subtracted.
Definition:
SubtractionDipole.h:838
Herwig::SubtractionDipole::havePDFWeight1
virtual bool havePDFWeight1() const
Return true, if this matrix element provides the PDF weight for the first incoming parton itself.
Definition:
SubtractionDipole.h:678
Herwig::SubtractionDipole::isAboveCutoff
bool isAboveCutoff() const
Return true, if this configuration is above the shower infrared cutoff.
Definition:
SubtractionDipole.h:620
Herwig::SubtractionDipole::flushCaches
virtual void flushCaches()
Inform this matrix element that a new phase space point is about to be generated, so all caches shoul...
Herwig::SubtractionDipole::constructVertex
virtual void constructVertex(tSubProPtr sub)
construct the spin information for the interaction
Herwig::SubtractionDipole::emitter
static int emitter(const UnderlyingBornKey &key)
Return the emitter id of a underlying Born key.
Definition:
SubtractionDipole.h:311
Herwig::SubtractionDipole::theLoopSimSubtraction
bool theLoopSimSubtraction
True, if the loopsim matched virtual contribution should be subtracted.
Definition:
SubtractionDipole.h:1211
Herwig::SubtractionDipole::splittingMap
const multimap< UnderlyingBornKey, RealEmissionInfo > & splittingMap() const
Return the splitting map.
Definition:
SubtractionDipole.h:342
Herwig::SubtractionDipole::theTildeKinematics
Ptr< TildeKinematics >::ptr theTildeKinematics
The TildeKinematics to be used.
Definition:
SubtractionDipole.h:1063
Herwig::SubtractionDipole::canHandle
virtual bool canHandle(const cPDVector &partons, int emitter, int emission, int spectator) const =0
Return true, if this dipole applies to the selected configuration.
Herwig::SubtractionDipole::theLastSplittingPt
Energy theLastSplittingPt
The last pt as generated from the splitting mapping.
Definition:
SubtractionDipole.h:1181
Herwig::SubtractionDipole::theReweights
vector< Ptr< MatchboxReweightBase >::ptr > theReweights
A vector of reweight objects the sum of which should be applied to reweight this dipole.
Definition:
SubtractionDipole.h:1074
Herwig::SubtractionDipole::realEmission
void realEmission(int id)
Set the emission as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:209
Herwig::SubtractionDipole::doRealShowerSubtraction
void doRealShowerSubtraction()
Indicate that the shower real emission contribution should be subtracted.
Definition:
SubtractionDipole.h:813
Herwig::SubtractionDipole::underlyingBornKey
static UnderlyingBornKey underlyingBornKey(const cPDVector &proc, int em, int sp)
Create a underlying Born key.
Definition:
SubtractionDipole.h:296
Herwig::SubtractionDipole::theIsInShowerPhasespace
bool theIsInShowerPhasespace
True, if this configuration is in the shower phase space.
Definition:
SubtractionDipole.h:1236
Herwig::SubtractionDipole::theRealEmissionDiagrams
map< cPDVector, DiagramVector > theRealEmissionDiagrams
Map Born processes to real emission diagrams.
Definition:
SubtractionDipole.h:1124
Herwig::SubtractionDipole::dipandPs
pair< CrossSection, CrossSection > dipandPs(Energy2 factorizationScale, Ptr< ColourBasis >::tptr largeNBasis) const
Calculate the dipole dSigDR and the parton shower approximation for this dipole.
Herwig::SubtractionDipole::theShowerApproximation
Ptr< ShowerApproximation >::ptr theShowerApproximation
The shower approximation.
Definition:
SubtractionDipole.h:1196
Herwig::SubtractionDipole::generateTildeKinematics
virtual bool generateTildeKinematics()
Generate the tilde kinematics from real emission kinematics accessible through the XComb's head objec...
Herwig::SubtractionDipole::underlyingBornME
void underlyingBornME(Ptr< MatchboxMEBase >::tptr me)
Set the underlying Born matrix element.
Definition:
SubtractionDipole.h:736
Herwig::SubtractionDipole::isInShowerPhasespace
bool isInShowerPhasespace() const
Return true, if this configuration is in the shower phase space.
Definition:
SubtractionDipole.h:610
Herwig::SubtractionDipole::clearKinematics
virtual void clearKinematics()
Clear the information previously provided by a call to setKinematics(...).
Herwig::SubtractionDipole::canHandleEmitter
virtual bool canHandleEmitter(const cPDVector &partons, int emitter) const =0
Return true, if this dipole can possibly handle the indicated emitter.
Herwig::SubtractionDipole::theRealToBornDiagrams
map< tcDiagPtr, tcDiagPtr > theRealToBornDiagrams
Map real emission diagrams to underlying Born diagrams.
Definition:
SubtractionDipole.h:1134
Herwig::SubtractionDipole::partnerDipoles
void partnerDipoles(const vector< Ptr< SubtractionDipole >::tptr > &p)
Set the dipoles which have been found along with this dipole.
Definition:
SubtractionDipole.h:741
Herwig::SubtractionDipole::theBornSpectator
int theBornSpectator
The spectator as referred to by the underlying Born matrix element.
Definition:
SubtractionDipole.h:1161
Herwig::SubtractionDipole::alpha
double alpha() const
Alpha parameter as in Nagy (http://arxiv.org/pdf/hep-ph/0307268v2.pdf) to restrict dipole phase space...
Herwig::SubtractionDipole::realShowerSubtraction
bool realShowerSubtraction() const
Return true, if the shower real emission contribution should be subtracted.
Definition:
SubtractionDipole.h:818
Herwig::SubtractionDipole::lastRealEmissionKey
RealEmissionKey lastRealEmissionKey
The last real emission key encountered.
Definition:
SubtractionDipole.h:1139
Herwig::SubtractionDipole::lastPt
Energy lastPt() const
Return the relevant pt.
Definition:
SubtractionDipole.h:541
Herwig::SubtractionDipole::spectator
static int spectator(const RealEmissionKey &key)
Return the spectator id of a real emission key.
Definition:
SubtractionDipole.h:284
Herwig::SubtractionDipole::nDim
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
Herwig::SubtractionDipole::lastUnderlyingBornKey
UnderlyingBornKey lastUnderlyingBornKey
The last underlying Born key encountered.
Definition:
SubtractionDipole.h:1144
Herwig::SubtractionDipole::theLastSubtractionPt
Energy theLastSubtractionPt
The last pt as generated from the tilde mapping.
Definition:
SubtractionDipole.h:1176
Herwig::SubtractionDipole::theSubtractionTest
bool theSubtractionTest
True, if the subtraction is being tested.
Definition:
SubtractionDipole.h:1038
Herwig::SubtractionDipole::theLastSplittingScale
Energy theLastSplittingScale
The last scale as generated from the splitting mapping.
Definition:
SubtractionDipole.h:1171
Herwig::SubtractionDipole::showerHardScale
Energy showerHardScale() const
Return the shower hard scale encountered.
Definition:
SubtractionDipole.h:580
Herwig::SubtractionDipole::theLastSubtractionZ
double theLastSubtractionZ
The last z as generated from the tilde mapping.
Definition:
SubtractionDipole.h:1186
Herwig::SubtractionDipole::makeXComb
virtual StdXCombPtr makeXComb(tStdXCombPtr newHead, const PBPair &newPartonBins, const DiagramVector &newDiagrams, tMEPtr newME=tMEPtr())
For the given event generation setup return a dependent xcomb object appropriate to this matrix eleme...
Herwig::SubtractionDipole::theRealSpectator
int theRealSpectator
The spectator as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:1092
Herwig::SubtractionDipole::verbose
bool verbose() const
Return true, if verbose.
Definition:
SubtractionDipole.h:865
Herwig::SubtractionDipole::doSplitting
void doSplitting()
Switch on splitting mode for this dipole.
Definition:
SubtractionDipole.h:560
Herwig::SubtractionDipole::samplingZ
virtual int samplingZ() const
How to sample the z-distribution.
Definition:
SubtractionDipole.h:694
Herwig::SubtractionDipole::lastRealEmissionInfo
multimap< UnderlyingBornKey, RealEmissionInfo >::const_iterator lastRealEmissionInfo
The last real emission info encountered.
Definition:
SubtractionDipole.h:1149
Herwig::SubtractionDipole::theRealEmitter
int theRealEmitter
The emitter as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:1080
Herwig::SubtractionDipole::factory
Ptr< MatchboxFactory >::tptr factory() const
Return the factory which produced this matrix element.
Herwig::SubtractionDipole::scale
virtual Energy2 scale() const
Return the scale associated with the phase space point provided by the last call to setKinematics().
Definition:
SubtractionDipole.h:646
Herwig::SubtractionDipole::doRealEmissionScales
void doRealEmissionScales(bool on=true)
Switch on or off that scales should be calculated from real emission kinematics.
Definition:
SubtractionDipole.h:640
Herwig::SubtractionDipole::realEmitter
void realEmitter(int id)
Set the emitter as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:197
Herwig::SubtractionDipole::RealEmissionInfo
pair< RealEmissionKey, map< int, int > > RealEmissionInfo
Define real emission key and index dictionary for partons not involved in the given dipole.
Definition:
SubtractionDipole.h:326
Herwig::SubtractionDipole::showerApproximation
Ptr< ShowerApproximation >::tptr showerApproximation() const
Return the shower approximation.
Definition:
SubtractionDipole.h:808
Herwig::SubtractionDipole::theRealEmissionScales
bool theRealEmissionScales
True, if scales should be calculated from real emission kinematics.
Definition:
SubtractionDipole.h:1216
Herwig::SubtractionDipole::cloneDependencies
void cloneDependencies(const std::string &prefix="", bool slim=false)
Clone the dependencies, using a given prefix.
Herwig::SubtractionDipole::makeXComb
virtual StdXCombPtr makeXComb(Energy newMaxEnergy, const cPDPair &inc, tEHPtr newEventHandler, tSubHdlPtr newSubProcessHandler, tPExtrPtr newExtractor, tCascHdlPtr newCKKW, const PBPair &newPartonBins, tCutsPtr newCuts, const DiagramVector &newDiagrams, bool mir, const PartonPairVec &allPBins, tStdXCombPtr newHead=tStdXCombPtr(), tMEPtr newME=tMEPtr())
For the given event generation setup return a xcomb object appropriate to this matrix element.
Herwig::SubtractionDipole::~SubtractionDipole
virtual ~SubtractionDipole()
The destructor.
Herwig::SubtractionDipole::wantCMS
virtual bool wantCMS() const
Return true, if this matrix element expects the incoming partons in their center-of-mass system.
Definition:
SubtractionDipole.h:455
Herwig::SubtractionDipole::prefactor
CrossSection prefactor(Energy2 factorizationScale) const
calculate the general prefactor for merging.
Herwig::SubtractionDipole::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::SubtractionDipole::underlyingBornDiagrams
const DiagramVector & underlyingBornDiagrams(const cPDVector &real) const
Return the underlying Born diagrams to be considered for the given real emission process.
Herwig::SubtractionDipole::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::SubtractionDipole::setKinematics
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
Herwig::SubtractionDipole::constructVertex
virtual void constructVertex(tSubProPtr sub, const ColourLines *cl)
construct the spin information for the interaction
Herwig::SubtractionDipole::clearBookkeeping
void clearBookkeeping()
Clear the bookkeeping.
Herwig::SubtractionDipole::UnderlyingBornKey
pair< cPDVector, pair< int, int > > UnderlyingBornKey
Define the underlying Born key type.
Definition:
SubtractionDipole.h:291
Herwig::SubtractionDipole::ps
CrossSection ps(Energy2 factorizationScale, Ptr< ColourBasis >::tptr largeNBasis) const
Calculate the parton shower approximation for this dipole.
Herwig::SubtractionDipole::canHandleSpectator
virtual bool canHandleSpectator(const cPDVector &partons, int spectator) const =0
Return true, if this dipole can possibly handle the indicated spectator.
Herwig::SubtractionDipole::underlyingBornME
Ptr< MatchboxMEBase >::tcptr underlyingBornME() const
Return the underlying Born matrix element.
Definition:
SubtractionDipole.h:722
Herwig::SubtractionDipole::addReweight
void addReweight(Ptr< MatchboxReweightBase >::ptr rw)
Insert a reweight object.
Definition:
SubtractionDipole.h:909
Herwig::SubtractionDipole::realSpectator
void realSpectator(int id)
Set the spectator as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:221
Herwig::SubtractionDipole::havePDFWeight2
virtual bool havePDFWeight2() const
Return true, if this matrix element provides the PDF weight for the second incoming parton itself.
Definition:
SubtractionDipole.h:684
Herwig::SubtractionDipole::setXComb
virtual void setXComb(tStdXCombPtr xc)
Set the XComb object to be used in the next call to generateKinematics() and dSigHatDR().
Herwig::SubtractionDipole::mergingMap
const map< RealEmissionKey, UnderlyingBornInfo > & mergingMap() const
Return the merging map.
Definition:
SubtractionDipole.h:337
Herwig::SubtractionDipole::realEmissionDiagram
tcDiagPtr realEmissionDiagram(tcDiagPtr bornDiag) const
Find the real emission diagram for the given underlying Born diagram.
Herwig::SubtractionDipole::diagrams
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
With the information previously supplied with the setKinematics(...) method, a derived class may opti...
Herwig::SubtractionDipole::theLastSplittingZ
double theLastSplittingZ
The last z as generated from the splitting mapping.
Definition:
SubtractionDipole.h:1191
Herwig::SubtractionDipole::theLastSubtractionScale
Energy theLastSubtractionScale
The last scale as generated from the tilde mapping.
Definition:
SubtractionDipole.h:1166
Herwig::SubtractionDipole::dSigHatDR
virtual CrossSection dSigHatDR() const
Return the matrix element squared differential in the variables given by the last call to generateKin...
Definition:
SubtractionDipole.h:767
Herwig::SubtractionDipole::reweights
const vector< Ptr< MatchboxReweightBase >::ptr > & reweights() const
Return the reweight objects.
Definition:
SubtractionDipole.h:914
Herwig::SubtractionDipole::process
static const cPDVector & process(const UnderlyingBornKey &key)
Return the diagram of a underlying Born key.
Definition:
SubtractionDipole.h:304
Herwig::SubtractionDipole::realEmissionME
Ptr< MatchboxMEBase >::tcptr realEmissionME() const
Return the real emission matrix element.
Definition:
SubtractionDipole.h:703
Herwig::SubtractionDipole::getDiagrams
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
Herwig::SubtractionDipole::theShowerParameters
vector< double > theShowerParameters
The shower splitting variables encountered.
Definition:
SubtractionDipole.h:1231
Herwig::SubtractionDipole::RealEmissionKey
pair< pair< cPDVector, int >, pair< int, int > > RealEmissionKey
Define the real emission key type.
Definition:
SubtractionDipole.h:250
Herwig::SubtractionDipole::theIndexMap
map< cPDVector, pair< int, int > > theIndexMap
Map underlying Born diagrams to emitter/spectator pairs.
Definition:
SubtractionDipole.h:1114
Herwig::SubtractionDipole::theIgnoreCuts
bool theIgnoreCuts
True if cuts should be ignored.
Definition:
SubtractionDipole.h:1043
Herwig::SubtractionDipole::theSplitting
bool theSplitting
Wether or not this dipole acts in splitting mode.
Definition:
SubtractionDipole.h:1028
Herwig::SubtractionDipole::dSigHatDR
virtual CrossSection dSigHatDR(Energy2 factorizationScale) const
Return the matrix element squared differential in the variables given by the last call to generateKin...
Herwig::SubtractionDipole::thePartners
vector< Ptr< SubtractionDipole >::tptr > thePartners
The dipoles which have been found along with this dipole.
Definition:
SubtractionDipole.h:1058
Herwig::SubtractionDipole::theUnderlyingBornME
Ptr< MatchboxMEBase >::ptr theUnderlyingBornME
The underlying Born matrix element.
Definition:
SubtractionDipole.h:1053
Herwig::SubtractionDipole::lastZ
double lastZ() const
Return the relevant momentum fractions.
Definition:
SubtractionDipole.h:548
Herwig::SubtractionDipole::realEmission
int realEmission() const
Return the emission as referred to by the real emission matrix element.
Definition:
SubtractionDipole.h:203
Herwig::SubtractionDipole::doSubtraction
void doSubtraction()
Switch off splitting mode for this dipole.
Definition:
SubtractionDipole.h:565
Herwig::SubtractionDipole::nDimRadiation
virtual int nDimRadiation() const
Return the number of additional random numbers needed to generate real emission kinematics off the ti...
Herwig::SubtractionDipole::testSubtraction
bool testSubtraction() const
Return true, if the subtraction is being tested.
Definition:
SubtractionDipole.h:860
Herwig::SubtractionDipole::showerApproximation
void showerApproximation(Ptr< ShowerApproximation >::tptr app)
Set the shower approximation.
Definition:
SubtractionDipole.h:801
Herwig::SubtractionDipole::theUnderlyingBornDiagrams
map< cPDVector, DiagramVector > theUnderlyingBornDiagrams
Map real emission processes to Born diagrams.
Definition:
SubtractionDipole.h:1119
Herwig::SubtractionDipole::theShowerHardScale
Energy theShowerHardScale
Return the shower hard scale encountered.
Definition:
SubtractionDipole.h:1221
ThePEG::ColourLines
ThePEG::InterfacedBase::clone
virtual IBPtr clone() const=0
ThePEG::MEBase
ThePEG::MEBase::DiagramVector
vector< DiagPtr > DiagramVector
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Selector
ThePEG::SubProcess
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::cPDPair
pair< cPDPtr, cPDPtr > cPDPair
ThePEG::tPExtrPtr
ThePEG::Ptr< PartonExtractor >::transient_pointer tPExtrPtr
ThePEG::tSubProPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::tCascHdlPtr
ThePEG::Ptr< CascadeHandler >::transient_pointer tCascHdlPtr
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::tEHPtr
ThePEG::Ptr< EventHandler >::transient_pointer tEHPtr
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Herwig::SubtractionDipole::MergeInfo
A helpre struct to communicate diagram merging and remapping information.
Definition:
SubtractionDipole.h:69
Herwig::SubtractionDipole::MergeInfo::diagram
Ptr< Tree2toNDiagram >::ptr diagram
The Born diagram.
Definition:
SubtractionDipole.h:79
Herwig::SubtractionDipole::MergeInfo::emitter
int emitter
The merged emitter.
Definition:
SubtractionDipole.h:74
Herwig::SubtractionDipole::MergeInfo::mergeLegs
map< int, int > mergeLegs
The merging map.
Definition:
SubtractionDipole.h:84
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6