Simulation of several hard processes in one event¶
In this section we show how several hard processes can be simulated in Herwig. To achieve that, the hard processes have to be specified along with the cuts that should be used for them. We will choose the example of like-sign W production as illustrative example. We start with the conventional hard process and its cuts, where we select only \(W^+\) production and decay to \(e^+\nu_e\)
cd /Herwig/MatrixElements insert SimpleQCD:MatrixElements MEqq2W2ff # only W+ set MEqq2W2ff:Wcharge 1 # only positrons set MEqq2W2ff:Process 3
To modify the cuts on that process we have to change the following
cd /Herwig/Cuts set LeptonKtCut:MinKT 5.0*GeV set LeptonKtCut:MaxEta 2.5 # inv mass cut on lepton pairs set MassCut:MinM 0.*GeV
Now we can start adding additional hard processes. This is done in the
MPIHandler class and always needs a
that has a MatrixElement assigned and a compulsory reference to a
Cuts object. This reference can be an existing one, in the case where
we want to use identical cuts for the processes, but can also be an independent instance. To create such an independent instance we do
cd /Herwig/UnderlyingEvent/ # cut on pt. Without a specific matcher object, it works on all particles create ThePEG::SimpleKTCut DPKtCut SimpleKTCut.so set DPKtCut:MinKT 10 set DPKtCut:MaxEta 2.5 # create the cuts object for DP1 create ThePEG::Cuts DP1Cuts # This should always be 2*MinKT!! set DP1Cuts:MHatMin 20 insert DP1Cuts:OneCuts 0 DPKtCut
We first created an instance of the class
SimpleKTCut to implement a cut on the transverse momentum and rapidity of the outgoing
particles. This instance then has to be assigned to the instance of the
To create a valid SubProcessHandler we have to specify:
cd /Herwig/UnderlyingEvent/ create ThePEG::SubProcessHandler DP1 insert DP1:MatrixElements 0 /Herwig/MatrixElements/MEqq2W2ff set DP1:PartonExtractor /Herwig/Partons/QCDExtractor
We have assigned the reference to the same
MatrixElement instance and therefore also have \(W^+\) production and decay to positrons.
PartonExtractor is needed to extract the partons from the beam particles but is always the reference to the
The last step now is to assign the subprocess and cuts instance to the
MPIHandler and select the multiplicity at which they should appear.
In our case this is of course simply one, but in the case of e.g. b-quark pairs or QCD dijets this may be different from one.
cd /Herwig/UnderlyingEvent/ # set the subprocesses and corresponding cuts # 0 is reserved for the "usual" underlying events # Each SubProcessHandler must be accompanied by a Cuts object! insert MPIHandler:SubProcessHandlers 1 DP1 insert MPIHandler:Cuts 1 DP1Cuts # now set what multiplicities you want. index = 0 means the first # ADDITIONAL hard process # this is SubProcessHandler 1 with multiplicity 1 insert MPIHandler:additionalMultiplicities 0 1