Unitarised Matrix Element + Parton Shower Merging
Pythia offers the possibility to use the unitarised matrix element + parton
shower merging scheme, as presented in [Lon12]. Unitarised ME+PS
merging (UMEPS) allows for a consistent inclusion of tree-level multi-parton
matrix elements into Pythia, and prevents potential changes in the inclusive
production cross section. This makes it theoretically more appealing than
CKKW-L merging. As in CKKW-L, UMEPS merging requires the user to supply Les
Houches Event File input.
UMEPS is different from other tree-level merging schemes in that it contains
events with negative weights. These are generated by constructing
parts of no-emission probabilities by reweighted higher-multiplicity
samples [Lon12]. The main philosophy of UMEPS is "subtract what you
add", meaning that in order to ensure the stability of the inclusive cross
section, one has to counter the inclusion of additional tree-level matrix
elements by "subtraction terms".
The scheme closely reflects how unitarity
is achieved in a non-merged shower, and indeed explicitly enforces the
cancellations that are implicitly happening in a non-merged shower. This makes
very low merging scale values possible.
The usage of UMEPS is illustrated in the sample main program
main86.cc
, together with the input file
main86.cmnd
.
Unitarised merging is heavily indebted to CKKW-L merging, and shares many
settings with CKKW-L. In particular,
The hard process
(Merging:Process
)needs to be defined
exactly as in CKKW-L (see Defining the hard process in the
CKKW-L documentation).
The merging scale value
(Merging:TMS
) has to be set.
The maximal number of additional partons
Merging:nJetMax
has to be set.
UMEPS further shares the switches listed under the sections "Matrix
element merging and HepMC output for RIVET" and "Further
variables" in the CKKW-L
documentation with CKKW-L merging. Also, all
MergingHooks
routines that allow for user interference in
CKKW-L merging are also usable for UMEPS -- with the exception of a
user-defined merging scale.
Currently, UMEPS is only implemented for a merging scale defined
by the minimal Pythia evolution pT value between sets of radiator, emitted
and recoiler partons. This is no fundamental limitation of the method, and
will possibly be lifted in the future. Since this merging scale definition is
not completely obvious, UMEPS also shares the
Merging:enforceCutOnLHE
switch with CKKW-L. In this way, it
is possible to use LHE files that are regularised only with weak cuts as
input, while the merging machinery imposes the stronger merging scale cut
automatically. This means that no merging scale implementation is required
from the user side, but also means that it is the user's responsibility to
ensure that the cuts used for generating input LHE files are always looser
than the cut given by the merging scale value Merging:TMS
.
UMEPS merging with main86.cc
The UMEPS procedure is illustrated in the sample main program
main86.cc
(with the input card main86.cmnd
). This
program produces HepMC events [Dob01], that can be histogrammed (e.g.
using RIVET [Buc10]), or used as input for a detector simulation. If
the user is not familiar with HepMC analysis tools, it is possible to instead
use Pythia's histogramming routines. For this, remove the lines referring to
HepMC, and histogram events as illustrated (for CKKW-L) for the histogram
histPTFirstSum in main84.cc
, i.e. using
weight*normhepmc as weight.
In principle, no changes to main86.cc
are necessary. Instead, all
settings can be transferred to main86.cc
through an input file.
The input LHE files are also part of the (command line) input of
main86.cc
. Note that the sample program assumes that LHE file
names are of the form name_tree_#nAdditionalJets.lhe. If you want to
e.g. use the LHE files that are shipped with the Pythia distribution, you can
execute main86.exe
with the command
./main86.exe ./main86.cmnd ./w_production ./myhepmc.hepmc
Since main86.cc
is currently the "front-end" for UMEPS merging,
we will briefly discuss this sample program in the following.
Inputs
In its current form, main86.cc
uses separate tree-level LHE files
for different numbers of additional partons as input. If e.g. UMEPS merging
for W-boson + up to two additional partons is to be performed, three LHE files
(for W+zero, W+one, W+two partons) are required. The configurations in the
input files should be regularised with inclusive (i.e. weak) cuts. The actual
"merging scale cut" will be handled internally. If e.g.
Merging:TMS = 15
is the desired merging scale value,
it is acceptable
to regularise the matrix element calculation for Higgs+jets events at the LHC
with the loose cuts pTjet = 5 GeV,
ΔRjetA jetB = 0.01 and
QjetA jetB = 5 GeV.
All input settings are handed to main86.cc
in the form of an
input file. This input file has to contain
The number of desired events
(Main:numberOfEvents
)
The hard process
(Merging:Process
)
The merging scale value
(Merging:TMS
)
The maximal number of additional partons
(Merging:nJetMax
).
Other settings are of course allowed. However, please refrain from adding
switches that are used to invoke other merging schemes (e.g.
Merging:doKTMerging
) into the input file, since this can
cause problems.
Program flow
The sample program starts by estimating the cross section for samples with
different jet multiplicities. For this, the switch
Merging:doXSectionEstimate
is invoked together with the merging
scale definition of Merging:doUMEPSTree
, which corresponds to the
minimal Pythia evolution pT value. We will come back to the latter switch
below. All showering, multiparton interactions and hadronisation is, for speed
reasons, switched off when estimating the cross section, since the hard cross
section estimate would not be influenced by the event evolution anyway.
After the hard cross sections are known (including the application of the
merging scale cut), the first part of the UMEPS events is generated by
using the following switch.
flag
Merging:doUMEPSTree
(default = off
)
Reweight events according to the UMEPS prescription for tree-level
configurations.
The weight generated by the UMEPS procedure can be accessed by using the
function double Info::mergingWeight().
When printing (or histogramming) merged events, this weight, multiplied
with the estimated cross section for the current sample, should be
used as event weight (or to fill histogram bins).
After this first part is complete, the outcome is an addition of reweighted
tree-level samples. To restore the inclusive cross section (i.e. that the
cross section after merging corresponds to the cross section of the hard
process, without any additional jets), it is necessary to subtract samples.
Parton shower unitarity leads to the conclusion that "resolved" and
"unresolved" corrections always cancel between states that contain an
additional resolved jet, and states in which we "integrate over" the phase
space of the additional jet.
main86.cc
makes this cancellation explicit by producing
(correctly weighted) counter events by switching on
flag
Merging:doUMEPSSubt
(default = off
)
Reweight events according to the UMEPS prescription of reweighted,
integrated configurations. Please note that, in order for this to work
smoothly, the switch Merging:doUMEPSTree
has to be turned off.
The integration is achieved internally, and the number of desired
integrations (which is always one for UMEPS counter events) is set by
mode
Merging:nRecluster
(default = 0
; minimum = 0
)
Number of hard partons to integrate out in the UMEPS procedure.
Again, the weight generated by the UMEPS procedure can be accessed by
using the function double Info::mergingWeight(). This
weight, multiplied with the cross section of the current sample, and
multiplied by -1, should then be used as event weight (or to fill
histogram bins).
Before returning, main86.cc
prints the merged cross section
after UMEPS merging.