Matching and Merging

This page first describes the matching and merging capabilitities of PYTHIA, and then, below, the use of a somewhat generic example main program to produce matched or merged results. Precision and a wide kinematical coverage are important ingredients to the applicability of Event Generators. Both can be aided by including higher-order corrections into the Generator. Depending on needs, the inclusion of higher orders (on top of a Born-level leading-order (LO) process) can be prioritized in different ways: Each of these approaches have drawbacks in complementary phasespace regions (the first two not being suitable in soft/collinear emissions regions, and thus unsuitable to combine with hadronization, while the third fails in hard, well-separated regions), such that many schemes to combine the strengths of the different approaches exist.

The common traits of all combination methods are that matrix elements are used to describe the production of hard and well separated particles, and parton showers for the production of soft or collinear particles. What differs between the various approaches that have been proposed are which matrix elements are being used, how doublecounting is avoided, and how the transition from the hard to the soft regime is handled. These combination methods are typically referred to as "matching" or "merging" algorithms. There is some confusion about the distinction between the two terms. We will use "matching" to describe the combination of one (NLO) calculation with the parton shower, and "merging" when several calculations are combined with each other (and the shower). PYTHIA offers implementations of several different matching and merging algorithms, which hopefully suit most needs.

For quick-and-dirty studies, note that the field is open-ended, however: any external program can feed in Les Houches events that PYTHIA subsequently processes. In this case, the maximum pT of the shower evolution is set by the Les Houches scale, on the one hand, and by the values of the SpaceShower:pTmaxMatch, TimeShower:pTmaxMatch and other parton-shower settings, on the other. It is typically not possible to achieve perfect matching this simplistic way, given that the PYTHIA pT evolution variables are not likely to agree with the variables used for cuts in the external program. Often one can get close enough with simple means but, for an improved matching, User Hooks may be inserted to control the steps taken on the way, e.g. to veto those parton shower branchings that would doublecount emissions included in the matrix elements.


main164.cc: A generic interface for matching and merging

A common Pythia main program for MC@NLO NLO+PS matching, MLM jet merging, FxFx (NLO) jet merging, CKKW-L merging, UMEPS merging and UNLOPS (NLO) merging is available through main164.cc, together with the input files main164mcatnlo.cmnd, main164powheg.cmnd, main164mlm.cmnd, main164fxfx.cmnd, main164ckkwl.cmnd, main164ckkwl.cmnd, main164umeps.cmnd and main164unlops.cmnd. These rely on input from external matrix-element generators such as MadGraph5_aMC@NLO or POWHEG-BOX. main164.cc can produce HepMC events [Dob01] or interfaced directly to RIVET [Buc10]. If the user is not familiar with HepMC or RIVET, it is possible to instead use Pythia's histogramming routines. For this, histogram events as illustrated for the histogram pTWsum in main162.cc.

All settings can be transferred to main164.cc through an input file. The input file is part of the command line input of main164.cc, i.e. you can execute main164 with the command

./main164 myInputFile.cmnd

to read the input myInputFile.cmnd. Since main164.cc is currently a "front-end" for different types of matching/merging, we will briefly discuss the inputs for this sample program in the following.

Inputs

In its current form, main164.cc uses LHA input to transfer (weighted) phase space points to Pythia. This can either be via traditional LHE files by setting

Beams:frameType = 4
Beams:LHEF = file.lhe

or with HDF5 event files by setting

Beams:frameType = 5
Beams:LHEF = file.hdf5

It is possible to include all parton multiplicities in one sample. If e.g. UMEPS merging for W-boson + up to two additional partons is to be performed, either one LHE file containing W+zero, W+one and W+two parton events or three separate LHE files can be generated.

All input settings are handed to main164.cc in the form of an input file. We have included the input settings files

         main164mlm.cmnd, which illustrates the MLM jet matching interface,

         main164fxfx.cmnd, which illustrates the FxFx NLO jet matching interface,

         main164ckkwl.cmnd, which illustrates the CKKW-L multi-jet merging interface,

         main164mess.cmnd, which illustrates the VINCIA MESS multi-jet merging interface,

         main164umeps.cmnd, which illustrates the UMEPS multi-jet merging interface, and

         main164unlops.cmnd, which illustrates the UNLOPS multi-jet NLO merging interface.

Other settings (e.g. using main164.cc as simple LO+PS or as MC@NLO interface) are of course possible. In the following, we will briefly explain how input for the five choices above are generated and handled.

MC@NLO matching with main164.cc

For MC@NLO matching, main164.cc currently relies on LHEF input from MadGraph5_aMC@NLO, which relies on the simple shower with a specific global recoil scheme for final-state branchings. As such, it can only be used with PartonShowers:model = 1 and specific settings within this shower model. Example MC@NLO settings can be found in main164mcatnlo.cmnd. Be aware that the lines below ! DO NOT TOUCH must not be changed in order to ensure correct NLO matching. Please consult aMC@NLO matching for more details.

POWHEG matching with main164.cc

For POWHEG matching, main164.cc currently relies on LHEF input from POWHEG-BOX. It is not tied to a specific parton shower and can be used with either of the PartonShowers:model settings. Example POWHEG settings can be found in main164powheg.cmnd. Please consult POWHEG matching for more details.

MLM jet matching with main164.cc

For MLM jet matching, main164.cc currently relies on LHEF input from MadGraph. Due to the particular unweighting strategy performed in the generation of these inputs, the sample program starts by estimating the cross section. After this estimate, MLM jet matching within the Madgraph approach is performed in a second Pythia run. Example MLM settings can be found in main164mlm.cmnd. Please consult Jet Matching for more details.

FxFx (NLO) jet matching with main164.cc

For FxFx jet matching, main164.cc relies on MC@NLO input LHE files generated with aMC@NLO. To produce FxFx outputs in aMC@NLO, the settings PYTHIA8 = parton_shower, 3 = ickkw and x = ptj are necessary in your aMC@NLO run card. Here, x is the value of the matching scale in FxFx, i.e. has be identical to JetMatching:qCutME in the Pythia inputs. Example FxFx settings for Pythia can be found in main164fxfx.cmnd. Please consult Jet Matching and aMC@NLO matching for more details.

CKKW-L merging with main164.cc

For CKKW-L merging, main164.cc currently relies on LHEF inputs generated with the leading-order mode of MadGraph5_aMC@NLO. No run to estimate the cross section estimate is needed. Example CKKW-L settings can be found in main164ckkwl.cmnd. Please consult CKKW-L merging for more details.

Sector merging (MESS) in VINCIA with main164.cc

For MESS merging, main164.cc currently relies on LHEF inputs generated with the leading-order mode of MadGraph5_aMC@NLO. No run to estimate the cross section estimate is needed. Example MESS settings can be found in main164mess.cmnd. Please consult MESS merging for more details.

UMEPS merging with main164.cc

For UMEPS merging, main164.cc currently relies on LHEF inputs generated with the leading-order mode of aMC@NLO as well (see above). main164.cc automatically assigns if an event will be used as "standard" event or as "subtractive" contribution. Example UMEPS settings can be found in main164umeps.cmnd. Please consult UMEPS merging and CKKW-L merging for more details.

UNLOPS (NLO) merging with main164.cc

For UNLOPS merging, main164.cc currently relies on LHEF inputs generated with the aMC@NLO. The UNLOPS interface in main164.cc requires a) leading-order inputs generated with the leading-order mode of aMC@NLO, using the UNLOPS prescription, and b) next-to-leading-order inputs generated with the NLO mode of aMC@NLO, using the UNLOPS prescription. To produce UNLOPS outputs in aMC@NLO, the settings PYTHIA8 = parton_shower, 4 = ickkw and x = ptj are necessary in your aMC@NLO run card. Here, x is the value of the merging scale in UNLOPS, i.e. has be identical to Merging:TMS in the Pythia inputs. main164.cc will then process NLO inputs and LO inputs consecutively, and will automatically assign if an event will be used as "standard" event or as "subtractive" contribution. Example UNLOPS settings can be found in main164umeps.cmnd. Please consult NLO Merging, UMEPS merging, and CKKW-L merging for more details.