herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
Herwig::MergingFactory Class Reference

MergingFactory automatically sets up a NLO QCD merging. More...

#include <MergingFactory.h>

Inheritance diagram for Herwig::MergingFactory:

Public Member Functions

void productionMode ()
 Check consistency and switch to porduction mode.
 
virtual void setup ()
 main method to setup the ME vector
 
void fillMEsMap ()
 fill all amplitudes, stored in pureMEsMap
 
void prepare_BV (int i)
 prepare the Born and virtual matrix elements.
 
void prepare_R (int i)
 prepare the real emission matrix elements.
 
void pushB (MatchboxMEBasePtr, int)
 push the born contributions to the ME vector.
 
void pushV (MatchboxMEBasePtr, int)
 
void pushR (MatchboxMEBasePtr, int)
 push the real contributions to the ME vector.
 
void orderOLPs ()
 order matrix elements from one loop provider.
 
int onlymulti () const
 Debugging: push only multiplicities to the ME vector in range of specified mulltiplicity. More...
 
MergerPtr MH ()
 pointer to the merging helper.
 
int M () const
 maximal NLO mulitplicity: 0=NLO corrections to the productio process.
 
int N () const
 leg size of highest multiplicity.
 
const map< int, vector< MatchboxMEBasePtr > > & pureMEsMap () const
 Return the Map of matrix elements to be considered (the Key is the number of additional jets)
 
map< int, vector< MatchboxMEBasePtr > > & pureMEsMap ()
 Access the Map of matrix elements to be considered (the Key is the number of additional jets)
 
virtual vector< string > parseProcess (string)
 Parse a process description.
 
void getVirtuals (MatchboxMEBasePtr nlo, bool clone)
 
bool subProcessGroups () const
 Return true, if SubProcessGroups should be setup from this MEGroup. More...
 
Ptr< Cuts >::ptr nonQCDCuts ()
 
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)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from Herwig::MatchboxFactory
void summary (ostream &) const
 Print a summary of the parameters used.
 
vector< Ptr< MatchboxMEBase >::ptr > makeMEs (const vector< string > &, unsigned int orderas, bool virt)
 Generate matrix element objects for the given process.
 
 MatchboxFactory ()
 The default constructor.
 
virtual ~MatchboxFactory ()
 The destructor.
 
Ptr< Tree2toNGenerator >::tptr diagramGenerator () const
 Return the diagram generator.
 
void diagramGenerator (Ptr< Tree2toNGenerator >::ptr dg)
 Set the diagram generator.
 
Ptr< ProcessData >::tptr processData () const
 Return the process data.
 
void processData (Ptr< ProcessData >::ptr pd)
 Set the process data.
 
unsigned int nLight () const
 Return the number of light flavours, this matrix element is calculated for.
 
void nLight (unsigned int n)
 Set the number of light flavours, this matrix element is calculated for.
 
vector< long > nLightJetVec () const
 Return the vector that contains the PDG ids of the light flavours, which are contained in the jet particle group.
 
void nLightJetVec (long n)
 Set the elements of the vector that contains the PDG ids of the light flavours, which are contained in the jet particle group.
 
vector< long > nHeavyJetVec () const
 Return the vector that contains the PDG ids of the heavy flavours, which are contained in the jet particle group.
 
void nHeavyJetVec (long n)
 Set the elements of the vector that contains the PDG ids of the heavy flavours, which are contained in the jet particle group.
 
vector< long > nLightProtonVec () const
 Return the vector that contains the PDG ids of the light flavours, which are contained in the proton particle group.
 
void nLightProtonVec (long n)
 Set the elements of the vector that contains the PDG ids of the light flavours, which are contained in the proton particle group.
 
unsigned int orderInAlphaS () const
 Return the order in $\alpha_S$.
 
void orderInAlphaS (unsigned int o)
 Set the order in $\alpha_S$.
 
unsigned int orderInAlphaEW () const
 Return the order in $\alpha_{EM}$.
 
void orderInAlphaEW (unsigned int o)
 Set the order in $\alpha_{EM}$.
 
size_t highestVirt () const
 The multiplicity of legs with virtual contributions.
 
void setHighestVirt (size_t n)
 Set the highest.
 
const vector< vector< string > > getProcesses () const
 Access the processes vector.
 
bool allProcesses () const
 Return true, if all processes up to a maximum order are considered.
 
void setAllProcesses (bool on=true)
 Switch on/off inclusino off all processes up to a maximum order.
 
bool bornContributions () const
 Return true, if Born contributions should be included.
 
void setBornContributions (bool on=true)
 Switch on or off Born contributions.
 
bool virtualContributions () const
 Return true, if virtual contributions should be included.
 
void setVirtualContributions (bool on=true)
 Switch on or off virtual contributions.
 
bool meCorrectionsOnly () const
 Produce matrix element corrections, but no NLO.
 
void setMECorrectionsOnly (bool on=true)
 Switch to produce matrix element corrections, but no NLO.
 
bool loopSimCorrections () const
 Produce matrix element corrections, with LoopSim NLO.
 
void setLoopSimCorrections (bool on=true)
 Switch to produce matrix element corrections, with LoopSim NLO.
 
bool realContributions () const
 Return true, if subtracted real emission contributions should be included.
 
void setRealContributions (bool on=true)
 Switch on or off subtracted real emission contributions.
 
bool independentVirtuals () const
 Return true, if virtual contributions should be treated as independent subprocesses.
 
void setIndependentVirtuals (bool on=true)
 Switch on/off virtual contributions should be treated as independent subprocesses.
 
bool independentPKs () const
 Return true, if PK operator contributions should be treated as independent subprocesses.
 
void setIndependentPKs (bool on=true)
 Switch on/off PK operator contributions should be treated as independent subprocesses.
 
bool realEmissionScales () const
 Return true, if subtraction scales should be caluclated from real emission kinematics.
 
void setRealEmissionScales (bool on=true)
 Switch on/off that subtraction scales should be caluclated from real emission kinematics.
 
void showerApproximation (Ptr< ShowerApproximation >::tptr app)
 Set the shower approximation.
 
Ptr< ShowerApproximation >::tptr showerApproximation () const
 Return the shower approximation.
 
Ptr< MatchboxPhasespace >::tptr phasespace () const
 Return the phase space generator to be used.
 
void phasespace (Ptr< MatchboxPhasespace >::ptr ps)
 Set the phase space generator to be used.
 
void scaleChoice (Ptr< MatchboxScaleChoice >::ptr sc)
 Set the scale choice object.
 
Ptr< MatchboxScaleChoice >::tptr scaleChoice () const
 Return the scale choice object.
 
double factorizationScaleFactor () const
 Get the factorization scale factor.
 
void factorizationScaleFactor (double f)
 Set the factorization scale factor.
 
double renormalizationScaleFactor () const
 Get the renormalization scale factor.
 
void renormalizationScaleFactor (double f)
 Set the renormalization scale factor.
 
bool fixedCouplings () const
 Return true, if fixed couplings are used.
 
void setFixedCouplings (bool on=true)
 Switch on fixed couplings.
 
bool fixedQEDCouplings () const
 Return true, if fixed couplings are used.
 
void setFixedQEDCouplings (bool on=true)
 Switch on fixed couplings.
 
bool vetoScales () const
 Return true, if veto scales should be set for the real emission.
 
void doVetoScales ()
 Switch on setting veto scales.
 
void noVetoScales ()
 Switch off setting veto scales.
 
const vector< Ptr< MatchboxAmplitude >::ptr > & amplitudes () const
 Return the amplitudes to be considered.
 
vector< Ptr< MatchboxAmplitude >::ptr > & amplitudes ()
 Access the amplitudes to be considered.
 
const vector< Ptr< MatchboxMEBase >::ptr > & bornMEs () const
 Return the Born matrix elements to be considered.
 
vector< Ptr< MatchboxMEBase >::ptr > & bornMEs ()
 Access the Born matrix elements to be considered.
 
const vector< Ptr< MatchboxMEBase >::ptr > & loopInducedMEs () const
 Return the loop induced matrix elements to be considered.
 
vector< Ptr< MatchboxMEBase >::ptr > & loopInducedMEs ()
 Access the loop induced matrix elements to be considered.
 
const map< Ptr< MatchboxAmplitude >::tptr, map< pair< Process, int >, int > > & olpProcesses () const
 Return the processes to be ordered from an OLP.
 
map< Ptr< MatchboxAmplitude >::tptr, map< pair< Process, int >, int > > & olpProcesses ()
 Access the processes to be ordered from an OLP.
 
int orderOLPProcess (const Process &p, Ptr< MatchboxAmplitude >::tptr amp, int type)
 Order an OLP process and return its id.
 
const set< Ptr< MatchboxAmplitude >::tptr > & externalAmplitudes () const
 Return the amplitudes which need external initialization.
 
set< Ptr< MatchboxAmplitude >::tptr > & externalAmplitudes ()
 Access the amplitudes which need external initialization.
 
const vector< Ptr< MatchboxInsertionOperator >::ptr > & virtuals () const
 Return the virtual corrections to be considered.
 
vector< Ptr< MatchboxInsertionOperator >::ptr > & virtuals ()
 Access the virtual corrections to be considered.
 
const vector< Ptr< MatchboxMEBase >::ptr > & bornVirtualMEs () const
 Return the produced NLO matrix elements.
 
vector< Ptr< MatchboxMEBase >::ptr > & bornVirtualMEs ()
 Access the produced NLO matrix elements.
 
const vector< Ptr< MatchboxMEBase >::ptr > & realEmissionMEs () const
 Return the real emission matrix elements to be considered.
 
vector< Ptr< MatchboxMEBase >::ptr > & realEmissionMEs ()
 Access the real emission matrix elements to be considered.
 
int dipoleSet () const
 Return, which set of dipoles should be considered.
 
void dipoleSet (int s)
 Return, which set of dipoles should be considered.
 
const vector< Ptr< SubtractedME >::ptr > & subtractedMEs () const
 Return the produced subtracted matrix elements.
 
vector< Ptr< SubtractedME >::ptr > & subtractedMEs ()
 Access the produced subtracted matrix elements.
 
const vector< Ptr< MatchboxMEBase >::ptr > & finiteRealMEs () const
 Return the produced finite real emission matrix elements.
 
vector< Ptr< MatchboxMEBase >::ptr > & finiteRealMEs ()
 Access the produced finite real emission elements.
 
const map< cPDVector, set< Ptr< SubtractionDipole >::ptr > > & splittingDipoles () const
 Return the map of Born processes to splitting dipoles.
 
list< SplittingChannelgetSplittingChannels (tStdXCombPtr xc) const
 Generate all splitting channels for the Born process handled by the given XComb.
 
const vector< ReweightPtr > & reweighters () const
 Return the reweight objects for matrix elements.
 
vector< ReweightPtr > & reweighters ()
 Access the reweight objects for matrix elements.
 
const vector< ReweightPtr > & preweighters () const
 Return the preweight objects for matrix elements.
 
vector< ReweightPtr > & preweighters ()
 Access the preweight objects for matrix elements.
 
virtual bool preInitialize () const
 Return true if this object needs to be initialized before all other objects (except those for which this function also returns true). More...
 
void prepareME (Ptr< MatchboxMEBase >::ptr)
 Prepare a matrix element.
 
size_t highestVirt ()
 The highest multiplicity of legs having virtual contributions. More...
 
bool verbose () const
 Return true, if verbose.
 
void setVerbose (bool on=true)
 Switch on diagnostic information.
 
bool initVerbose () const
 Return true, if verbose while initializing.
 
void setInitVerbose (bool on=true)
 Switch on diagnostic information while initializing.
 
void print (ostream &) const
 Dump the setup.
 
const string & subtractionData () const
 Return the subtraction data prefix.
 
void subtractionData (const string &s)
 Set the subtraction data prefix.
 
const int & subtractionPlotType () const
 Return the subtraction plot type.
 
void subtractionPlotType (const int &t)
 Set the subtraction plot type.
 
const bool & subtractionScatterPlot () const
 Return whether subtraction data should be plotted for all phase space points individually.
 
void subtractionScatterPlot (const bool &s)
 Set whether subtraction data should be plotted for all phase space points individually.
 
const string & poleData () const
 Return the pole data prefix.
 
void poleData (const string &s)
 Set the pole data prefix.
 
bool checkPoles () const
 Return true, if cancellationn of epsilon poles should be checked.
 
const map< string, PDVector > & particleGroups () const
 Return the particle groups.
 
map< string, PDVector > & particleGroups ()
 Access the particle groups.
 
bool isIncoming (cPDPtr p) const
 Return true, if the given particle is incoming.
 
bool spinCorrelations () const
 Return true, if spin correlation information should be provided, if possible.
 
void setSpinCorrelations (bool yes)
 Indicate that spin correlation information should be provided, if possible.
 
tSubProPtr hardTreeSubprocess ()
 Return the subprocess of the real emission.
 
void setHardTreeSubprocess (tSubProPtr hardTree)
 Set the subprocess of the real emission for use in calculating the shower hardtree.
 
int hardTreeEmitter ()
 Return the born emitter.
 
void setHardTreeEmitter (int emitter)
 Set the born emitter for use in calculating the shower hardtree.
 
int hardTreeSpectator ()
 Return the born spectator.
 
void setHardTreeSpectator (int spectator)
 Set the born spectator for use in calculating the shower hardtree.
 
const string & buildStorage ()
 Return (and possibly create) a directory to contain amplitude information.
 
const string & runStorage ()
 Return (and possibly create) a directory to contain integration grid information.
 
double alphaParameter () const
 alpha of http://arxiv.org/pdf/hep-ph/0307268v2.pdf to restrict dipole phase space
 
void setAlphaParameter (double a) const
 set the alpha parameter (needed for massive PK-Operator)
 
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 ThePEG::SubProcessHandler
 SubProcessHandler (const SubProcessHandler &)
 
tPExtrPtr pExtractor () const
 
const MEVector & MEs () const
 
tCutsPtr cuts () const
 
tCascHdlPtr CKKWHandler () const
 
const HandlerGroupBasehandlerGroup (Group::Handler) const
 
const GroupVectorgroups () const
 
MEVector & MEs ()
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
 SubProcessHandler (const SubProcessHandler &)
 
tPExtrPtr pExtractor () const
 
const MEVector & MEs () const
 
tCutsPtr cuts () const
 
tCascHdlPtr CKKWHandler () const
 
const HandlerGroupBasehandlerGroup (Group::Handler) const
 
const GroupVectorgroups () const
 
MEVector & MEs ()
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- 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 ()
 
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 ()
 
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 ()
 
- Static Public Member Functions inherited from Herwig::MatchboxFactory
static bool isMatchboxRun ()
 Flag to indicate that at least one MatchboxFactory object is in action.
 
static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from ThePEG::SubProcessHandler
static void Init ()
 
- 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 ()
 

Protected Member Functions

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 Herwig::MatchboxFactory
virtual void doinitrun ()
 Initialize this object. 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 dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
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

MergingFactoryoperator= (const MergingFactory &)=delete
 The assignment operator is private and must never be called. More...
 

Private Attributes

bool unitarized = true
 unitarise the LO contributions.
 
bool ransetup = false
 did run setup.
 
int theonlymulti = -1
 Debugging: push only multiplicities to the ME vector in range of specified mulltiplicity. More...
 
int theM = -1
 maximal legsize for NLO corrections.
 
int theN = -1
 maximal legsize for LO contributions.
 
map< int, vector< string > > processMap
 map for processes.
 
map< int, vector< MatchboxMEBasePtr > > thePureMEsMap
 
MergerPtr theMergingHelper
 the merging helper
 
Ptr< Cuts >::ptr theNonQCDCuts
 Cut on non-QCD modified observables.
 

Additional Inherited Members

- Public Types inherited from ThePEG::SubProcessHandler
typedef vector< HandlerGroupBase *> GroupVector
 
typedef vector< ReweightPtrReweightVector
 
- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Public Attributes inherited from ThePEG::InterfacedBase
 initializing
 
 uninitialized
 
 initialized
 
 runready
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 

Detailed Description

MergingFactory automatically sets up a NLO QCD merging.

Author
Johannes Bellm
See also
The interfaces defined for MergeboxFactory.

Definition at line 35 of file MergingFactory.h.

Member Function Documentation

◆ clone()

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

Make a simple clone of this object.

Returns
a pointer to the new object.

Reimplemented from Herwig::MatchboxFactory.

◆ doinit()

virtual void Herwig::MergingFactory::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 Herwig::MatchboxFactory.

◆ fullclone()

virtual IBPtr Herwig::MergingFactory::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 Herwig::MatchboxFactory.

◆ onlymulti()

int Herwig::MergingFactory::onlymulti ( ) const
inline

Debugging: push only multiplicities to the ME vector in range of specified mulltiplicity.

Definition at line 57 of file MergingFactory.h.

◆ operator=()

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

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::MergingFactory::persistentInput ( PersistentIStream is,
int   
)

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::MergingFactory::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ subProcessGroups()

bool Herwig::MergingFactory::subProcessGroups ( ) const
inlinevirtual

Return true, if SubProcessGroups should be setup from this MEGroup.

If not, a single SubProcess is constructed from the data provided by the head matrix element.

Reimplemented from Herwig::MatchboxFactory.

Definition at line 81 of file MergingFactory.h.

Member Data Documentation

◆ theonlymulti

int Herwig::MergingFactory::theonlymulti = -1
private

Debugging: push only multiplicities to the ME vector in range of specified mulltiplicity.

Definition at line 144 of file MergingFactory.h.


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