This class is responsible for the handling of the merging process after the setup stage, performed by the merging factory. The class is inherited from the MergerBase class that is visible (and the interface) to the shower and matrix elements. More...
#include <Merger.h>
Public Member Functions | |
bool | matrixElementRegion (PVector incoming, PVector outgoing, Energy winnerScale=ZERO, Energy cutscale=ZERO) const |
define the ME region for a particle vector. | |
Energy | mergingScale () const |
return the current merging scale, gets smeared around the central merging scale in generate kinematics. | |
Energy | mergePt () const |
return the current merging pt (should be unified with mergingScale) | |
int | M () const |
legsize of highest process with NLO corrections | |
int | N () const |
legsize of the highest LO merged process | |
int | N0 () const |
legsize of the production process | |
CrossSection | MergingDSigDR () |
cross section of as given by the merging | |
void | setXComb (tStdXCombPtr) |
***** virtual functions of the base class ****/// set the current xcomb, called from ME | |
void | setKinematics () |
set kinematics, called from ME | |
void | clearKinematics () |
clear kinematics, called from ME | |
bool | generateKinematics (const double *) |
generate kinematics, called from ME | |
void | flushCaches () |
generate kinematics, called from ME | |
size_t | maxLegs () const |
return the current maximum legs, the shower should veto | |
void | setME (MatchboxMEBasePtr me) |
set the current ME | |
![]() | |
MergerBase () | |
The default constructor. | |
virtual bool | matrixElementRegion (PVector incoming, PVector outcoming, Energy winnerScale, Energy cutscale) const =0 |
define the ME region for a particle vector. | |
virtual CrossSection | MergingDSigDR ()=0 |
cross section of as given by the merging | |
virtual void | setXComb (tStdXCombPtr)=0 |
set the current xcomb, called from ME | |
virtual void | setME (Ptr< MatchboxMEBase >::ptr)=0 |
set the current ME | |
virtual void | setKinematics ()=0 |
set kinematics, called from ME | |
virtual void | clearKinematics ()=0 |
clear kinematics, called from ME | |
virtual bool | generateKinematics (const double *)=0 |
generate kinematics, called from ME | |
virtual void | flushCaches ()=0 |
flush all chaches of the subleading nodes. | |
virtual size_t | maxLegs () const =0 |
return the current maximum legs, the shower should veto | |
virtual Energy | mergingScale () const =0 |
return the current merging scale, | |
![]() | |
double | rnd () const |
double | rnd (double xu) const |
double | rnd (double xl, double xu) const |
bool | rndbool () const |
bool | rndbool (double p) const |
bool | rndbool (double p1, double p2) const |
int | rndsign (double p1, double p2, double p3) const |
int | rnd2 (double p0, double p1) const |
int | rnd3 (double p0, double p1, double p2) const |
int | rnd4 (double p0, double p1, double p2, double p3) const |
long | irnd (long xu=2) const |
long | irnd (long xl, long xu) const |
const StandardModelBase & | SM () const |
tSMPtr | standardModel () const |
![]() | |
virtual bool | defaultInit () |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
![]() | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
virtual void | debugme () const |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
![]() | |
void | debug () const |
virtual void | debugme () const |
![]() | |
CounterType | referenceCount () const |
![]() | |
Named (const string &newName=string()) | |
Named (const Named &)=default | |
const string & | name () const |
bool | operator== (const Named &other) const |
bool | operator< (const Named &other) const |
Protected Member Functions | |
void | N0 (int n) |
the merging factory needs to set the legsize of the production process | |
Ptr< ColourBasis >::ptr | largeNBasis () const |
return the large-N basis (TODO: implement check if born ME works with the choice) | |
void | smearMergePt () |
smear the merging pt | |
int | openZBoundaries () const |
true if the phase space for initial emissions should not be restricted in z. | |
MatchboxMEBasePtr | currentME () const |
return the current ME | |
NodePtr | currentNode () const |
return the current Node | |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
![]() | |
void | reporeg (IBPtr object, string name) const |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
Interfaced (const string &newName) | |
Interfaced (const Interfaced &i) | |
void | setGenerator (tEGPtr generator) |
![]() | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual IBPtr | clone () const=0 |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
![]() | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
![]() | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
Private Member Functions | |
double | singlesudakov (Dipole, Energy, Energy, pair< bool, bool >) |
calculate a single sudakov step for a given dipole | |
bool | dosudakov (NodePtr Born, Energy running, Energy next, double &sudakov0_n) |
calculate the sudakov supression for a clusternode between the current running scale and next scale | |
void | cleanup (NodePtr) |
cleanup | |
bool | isProjectorStage (NodePtr, int) const |
return true if the cluster node has the matching number of legs to the current projector stage | |
Energy | CKKW_StartScale (NodePtr) const |
Calculate the staring scale: if Node is part of the production process, calculate according to the scale choice object in the merging scale objekt, else return max(scale as scalechoice , min(Mass(i, j))) | |
void | CKKW_PrepareSudakov (NodePtr, Energy) |
prepare the sudakov calculation | |
double | Nf (Energy scale) const |
number of active flavours as given by the shower | |
MergingFactoryPtr | treefactory () const |
pointer to the factory | |
map< MatchboxMEBasePtr, NodePtr > | firstNodeMap () const |
map from ME to first clusternode | |
void | mergePt (Energy x) |
set the current merging pt, smeared in generate kinematics | |
Energy | centralMergePt () const |
return the central merging pt | |
CrossSection | MergingDSigDRBornStandard () |
calculate the history weighted born cross section | |
CrossSection | MergingDSigDRVirtualStandard () |
calculate the history weighted virtual contribution | |
CrossSection | MergingDSigDRRealStandard () |
calculate the history weighted real contribution splitted into 3 differnt contibutions | |
CrossSection | MergingDSigDRRealAllAbove () |
calculate the history weighted real contribution all dipoles above: N*(R rnd(i)-Dip_i) history_i U(\phi^n_i) | |
CrossSection | MergingDSigDRRealBelowSubReal () |
calculate the history weighted real contribution not all dipoles above: (R - sum PS_i) history_rnd U(\phi^n+1) | |
CrossSection | MergingDSigDRRealBelowSubInt () |
calculate the history weighted real contribution not all dipoles above: rnd(i)-> N*(PS_i - Dip_i) history_i U(\phi^n_i) | |
size_t | maxLegsLO () const |
max legssize the shower should veto for LO | |
CrossSection | TreedSigDR (Energy startscale) |
Calculate the LO partonic cross section. | |
Energy | fillProjector (int) |
fill the projecting xcomb | |
void | fillHistory (Energy, NodePtr, NodePtr) |
fill the history, including calculation of sudakov supression | |
double | pdfratio (NodePtr, Energy, Energy, int, bool fromIsME, bool toIsME) |
calculate the pdf ratio for the given clusternode | |
double | pdfReweight () |
return the pdf-ratio reweight for the history | |
double | alphaReweight (bool nocmw=false) |
return the alpha_s reweight for the history | |
size_t | maxLegsNLO () const |
max legssize the shower should veto for NLO | |
CrossSection | LoopdSigDR (Energy startscale) |
calculate the virtual contribution. | |
double | sumPdfReweightExpansion () const |
calculate alpha_s expansion of the pdf-ratios | |
double | sumAlphaSReweightExpansion () const |
calculate alpha_s expansion of the alpha_s-ratios, including K_g | |
double | sumFillHistoryExpansion () |
calculate alpha_s expansion of the sudakov exponents | |
double | alphasExpansion (Energy next, Energy fixedScale) const |
calculate alpha_s expansion of the single step alpha_s-ratio, including K_g | |
double | pdfExpansion (NodePtr, int, Energy, Energy, double, int, Energy) const |
calculate alpha_s expansion of the single step pdf-ratio | |
bool | doHistExpansion (NodePtr Born, Energy running, Energy next, Energy fixedScale, double &HistExpansion) |
calculate alpha_s expansion of the single step sudakov exponent | |
double | singleHistExpansion (Dipole, Energy, Energy, Energy, pair< bool, bool >) |
calculate alpha_s expansion of the single dipole sudakov exponent | |
double | as (Energy q) const |
void | setFactory (MergingFactoryPtr f) |
void | setDipoleShower (DipoleShowerHandlerPtr dsh) |
DipoleShowerHandlerPtr | DSH () |
cDipoleShowerHandlerPtr | DSH () const |
void | firstNodeMap (MatchboxMEBasePtr, NodePtr) |
insert map from ME to first clusternode | |
int | chooseHistory () const |
history choice: weighted history choice | |
double | smear () const |
the smearing factor for the merging scale | |
void | largeNBasis (Ptr< ColourBasis >::ptr x) |
return the large-N colour basis | |
bool | notOnlyMulti () const |
helper function to check the only multi condition. | |
double | cmwAlphaS (Energy q) const |
Calculate the CMW AlphaS. | |
void | debugVirt (double, double, double, double, CrossSection, double, double, double, NodePtr, CrossSection) const |
debug output for virtual | |
void | debugReal (string, double, CrossSection, CrossSection) const |
debug output for reals | |
Private Attributes | |
unsigned int | theShowerExpansionWeights = 2 |
calculate the history expansion | |
unsigned int | theCMWScheme = 0 |
use CMW scheme | |
bool | projected = true |
true if current point should be projected | |
bool | isUnitarized = true |
true if LO cross sections should be unitarised | |
bool | isNLOUnitarized = true |
true if NLO contributions should be unitarised | |
int | theChooseHistory = 0 |
history weight choice | |
int | theN0 = 0 |
legsize of production process | |
int | theOnlyN = -1 |
calculate only the N particle contribution | |
int | theCurrentMaxLegs = -1 |
the current maxlegs (either LO or NLO maxlegs) | |
double | theSmearing = 0. |
smearing factor for merging scale | |
Energy | theIRSafePT = 1_GeV |
cutoff for real emission contribution | |
Energy | theMergePt = 4_GeV |
current merging scale | |
Energy | theCentralMergePt = 4_GeV |
central merging scale | |
double | theRealSubtractionRatio =3. |
below mergingscale/theRealSubtractionRatio the dipoles are used to subtract. | |
History | history |
current cluster histoy including sudakov weights | |
Ptr< ColourBasis >::ptr | theLargeNBasis |
pointer to the large-N basis | |
NodePtr | theCurrentNode |
current Node | |
MatchboxMEBasePtr | theCurrentME |
current ME | |
Ptr< FFLightTildeKinematics >::ptr | FFLTK = new_ptr( FFLightTildeKinematics() ) |
Tilde kinematics pointers, only to use lastPt(emitter, emission, spectator) | |
Ptr< FILightTildeKinematics >::ptr | FILTK = new_ptr( FILightTildeKinematics() ) |
Ptr< IFLightTildeKinematics >::ptr | IFLTK = new_ptr( IFLightTildeKinematics() ) |
Ptr< IILightTildeKinematics >::ptr | IILTK = new_ptr( IILightTildeKinematics() ) |
Ptr< FFMassiveTildeKinematics >::ptr | FFMTK = new_ptr( FFMassiveTildeKinematics() ) |
Ptr< FIMassiveTildeKinematics >::ptr | FIMTK = new_ptr( FIMassiveTildeKinematics() ) |
Ptr< IFMassiveTildeKinematics >::ptr | IFMTK = new_ptr( IFMassiveTildeKinematics() ) |
DipoleShowerHandlerPtr | theDipoleShowerHandler |
MergingFactoryPtr | theTreeFactory |
pointer to the MergingFactory | |
map< MatchboxMEBasePtr, NodePtr > | theFirstNodeMap |
map from ME to first Node | |
map< NodePtr, CrossSection > | theHighMeWeightMap |
map from ME to highest ME weight so far | |
Friends | |
class | MergingFactory |
class | Node |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
Merger & | operator= (const Merger &)=delete |
The assignment operator is private and must never be called. | |
Additional Inherited Members | |
![]() | |
enum | InitState |
![]() | |
typedef unsigned int | CounterType |
![]() | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
initializing | |
uninitialized | |
initialized | |
runready | |
![]() | |
const unsigned long | uniqueId |
![]() | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
This class is responsible for the handling of the merging process after the setup stage, performed by the merging factory. The class is inherited from the MergerBase class that is visible (and the interface) to the shower and matrix elements.
The main functions of the Merger are:
|
inlineprivate |
return the central merging pt
Definition at line 186 of file Merger.h.
References theCentralMergePt.
Referenced by smearMergePt().
|
inlineprivate |
history choice: weighted history choice
Definition at line 255 of file Merger.h.
References theChooseHistory.
|
virtual |
clear kinematics, called from ME
Implements Herwig::MergerBase.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
inlineprotected |
|
inlineprotected |
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
|
inlineprivate |
|
inlineprivate |
|
virtual |
generate kinematics, called from ME
Implements Herwig::MergerBase.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
|
virtual |
generate kinematics, called from ME
Implements Herwig::MergerBase.
|
static |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
|
inlineprotected |
return the large-N basis (TODO: implement check if born ME works with the choice)
Definition at line 144 of file Merger.h.
References theLargeNBasis.
|
inlineprivate |
|
virtual |
define the ME region for a particle vector.
Implements Herwig::MergerBase.
|
inlinevirtual |
return the current maximum legs, the shower should veto
Implements Herwig::MergerBase.
Definition at line 132 of file Merger.h.
References theCurrentMaxLegs.
|
inlineprivate |
|
inlineprivate |
|
inline |
return the current merging pt (should be unified with mergingScale)
Definition at line 111 of file Merger.h.
References theMergePt.
|
inlineprivate |
set the current merging pt, smeared in generate kinematics
Definition at line 184 of file Merger.h.
References theMergePt.
|
virtual |
cross section of as given by the merging
Implements Herwig::MergerBase.
|
inlinevirtual |
return the current merging scale, gets smeared around the central merging scale in generate kinematics.
Implements Herwig::MergerBase.
Definition at line 109 of file Merger.h.
References theMergePt.
|
inline |
legsize of the production process
Definition at line 117 of file Merger.h.
References theN0.
Referenced by maxLegsLO(), and maxLegsNLO().
|
inlineprotected |
|
inlineprivate |
|
inlineprotected |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::Merger::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void Herwig::Merger::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inlineprivate |
|
inlineprivate |
|
virtual |
set kinematics, called from ME
Implements Herwig::MergerBase.
|
inline |
set the current ME
Definition at line 134 of file Merger.h.
References theCurrentME, theCurrentNode, and theFirstNodeMap.
|
virtual |
***** virtual functions of the base class ****/// set the current xcomb, called from ME
Implements Herwig::MergerBase.
|
inlineprivate |
the smearing factor for the merging scale
Definition at line 257 of file Merger.h.
References theSmearing.
Referenced by smearMergePt().
|
inlineprotected |
smear the merging pt
Definition at line 146 of file Merger.h.
References centralMergePt(), ThePEG::UseRandom::rnd(), smear(), and theMergePt.
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
current merging scale
Definition at line 295 of file Merger.h.
Referenced by mergePt(), mergingScale(), and smearMergePt().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
pointer to the MergingFactory