herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.4

Merger handles the Merger ....... //TODO . More...

#include <Merger.h>

Inheritance diagram for Herwig::Merger:

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. More...
 
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
 
*set the current called from ME *void setXComb (tStdXCombPtr)
 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
 
double emissionProbability () const
 allow emissions with a given probability.in the ME region
 
void setEmissionProbability (double x)
 set a probability of allowed emission into ME region.
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from Herwig::MergerBase
 MergerBase ()
 The default constructor.
 
virtual ~MergerBase ()
 The destructor.
 
virtual void setME (Ptr< MatchboxMEBase >::ptr)=0
 set the current ME
 
- Public Member Functions inherited from HandlerBaseT< UseRandom >
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
 
- Public Member Functions inherited from ThePEG::Interfaced
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
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
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::Base
void debug () const
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 
const string & name () const
 
bool operator== (const Named &other) const
 
bool operator< (const Named &other) const
 

Static Public Member Functions

static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from Herwig::MergerBase
static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from ThePEG::HandlerBase
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 

Public Attributes

*set the current xcomb
 ***** virtual functions of the base class
 
- Public Attributes inherited from ThePEG::InterfacedBase
 initializing
 
 uninitialized
 
 initialized
 
 runready
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 

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
 
double gamma () const
 the gamma parameter to subtract dipoles above a alpha parameter and subtract the corresponding IPK operator
 
Standard Interfaced functions.
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk. More...
 
Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
- Protected Member Functions inherited from ThePEG::Interfaced
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)
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (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 MergingDSigDRBornGamma ()
 calculate the history weighted born cross section add the difference of IPK with and without alpha parameter subtract the dipoles above the alpha parameter
 
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(^n_i)
 
CrossSection MergingDSigDRRealBelowSubReal ()
 calculate the history weighted real contribution not all dipoles above: (R - sum PS_i) history_rnd U(^n+1)
 
CrossSection MergingDSigDRRealBelowSubInt ()
 calculate the history weighted real contribution not all dipoles above: rnd(i)-> N*(PS_i - Dip_i) history_i U(^n_i)
 
size_t maxLegsLO () const
 max legssize the shower should veto for LO
 
CrossSection TreedSigDR (Energy startscale, double diffalpha=1.)
 Calculate the LO partonic cross section. More...
 
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
 
Mergeroperator= (const Merger &)=delete
 The assignment operator is private and must never be called. More...
 

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
 
size_t theCurrentMaxLegs = -1
 the current maxlegs (either LO or NLO maxlegs)
 
double weight = 1.0
 current weight and weight of clustered born
 
double weightCB = 1.0
 
double theGamma = 1.0
 subtract the dipole contribution above a given gamma
 
double theSmearing = 0.
 smearing factor for merging scale
 
bool emitDipoleMEDiff = false
 Allow emissions for the unitarising LO contributions according to the prob 1-min(B_n/sum Dip_n,Dip_n/B_n)
 
double theEmissionProbability = 0.
 The conditional emission probability if emitDipoleMEDiff is true.
 
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. More...
 
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
 

Additional Inherited Members

- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 

Detailed Description

Merger handles the Merger ....... //TODO .

Author
Johannes Bellm
See also
The interfaces defined for Merger.

Definition at line 70 of file Merger.h.

Member Function Documentation

◆ clone()

virtual IBPtr Herwig::Merger::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

◆ doinit()

virtual void Herwig::Merger::doinit ( )
protectedvirtual

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

◆ fullclone()

virtual IBPtr Herwig::Merger::fullclone ( ) const
protectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

◆ Init()

static void Herwig::Merger::Init ( )
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.

◆ mergingScale()

Energy Herwig::Merger::mergingScale ( ) const
inlinevirtual

return the current merging scale, gets smeared around the central merging scale in generate kinematics.

Implements Herwig::MergerBase.

Definition at line 84 of file Merger.h.

◆ operator=()

Merger& Herwig::Merger::operator= ( const Merger )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::Merger::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

void Herwig::Merger::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ TreedSigDR()

CrossSection Herwig::Merger::TreedSigDR ( Energy  startscale,
double  diffalpha = 1. 
)
private

Calculate the LO partonic cross section.

if diffalpha != 1, add the difference of IPK(1)-IPK(diffalpha)

Member Data Documentation

◆ theRealSubtractionRatio

double Herwig::Merger::theRealSubtractionRatio =3.
private

below mergingscale/theRealSubtractionRatio the dipoles are used to subtract.

above the shower approximation is in use.

Definition at line 304 of file Merger.h.


The documentation for this class was generated from the following file: