Merger handles the Merger ....... //TODO . 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. 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()) | |
Named (const Named &)=default | |
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 &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Protected Member Functions inherited from ThePEG::Named | |
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 | 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 | |
Merger & | operator= (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 | |
int | 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) |
Merger handles the Merger ....... //TODO .
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
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.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
|
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.
|
inlinevirtual |
return the current merging scale, gets smeared around the central merging scale in generate kinematics.
Implements Herwig::MergerBase.
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. |
|
private |
Calculate the LO partonic cross section.
if diffalpha != 1, add the difference of IPK(1)-IPK(diffalpha)
|
private |