PowhegBox Validation
THIS PAGE IS A WORK IN PROGRESS AND WILL BE UPDATED WITH ALL SETTINGS, INPUT FILES AND PLOTS USED/PRODUCED IN THE STUDY
UNTIL IT IS FINISHED, AN OUTLINE OF THE RESULTS CAN BE FOUND IN THE SLIDES HERE
Introduction
The aim of this work was to validate events produced by the PowhegBox by comparing them to Powheg-style events produced by Herwig++.
The
Powheg
method is an alternative to
MC@NLO
for interfacing Shower Monte Carlos (SMCs) with NLO QCD computations. The PowhegBox is one program which makes use of this method and generates the hard processes of events, to be read into SMCs to be showered and hadronized.
One advantage of using the Powheg method over MC@NLO is that Powheg-style events can be read into
any SMC (Herwig++ and Pythia8 are considered here).
Herwig++ is also able to generate Powheg-style events, and correctly includes its
truncated shower
.
Validation Approach
The benefit of using Shower Monte Carlo programs written in C++ is that every stage of the event generation procedure can, in principle, be precisely steered; and it is easy to control which stages or turned on or off. For example, events can be produced with the parton shower and multiple parton interactions (
MPI) turned on, but hadronization turned off.
Thus, we intended to generate events one 'level' at a time (see table below) and attempt to understand and fix any differences seen between the sets of events, before moving on to the next level.
Level |
Description |
Matrix Element |
Hard process only. No parton shower, hadronization etc |
Parton level |
Hard process + parton shower. No hadronization, MPI etc. |
Hadronization Off |
Hard process + parton shower + MPI. No hadronization. |
MPI Off |
Hard process + parton shower + hadronization. No MPI. |
Complete Event |
Everything on. (Truncated shower on and off) |
Powheg-style events generated and showered entirely in Herwig++ will be labelled
Herwig++(NLO). Events in which the hard process was generated by PowhegBox and showering was done with Herwig++ will be labelled
PowhegBox+Herwig++, and those showered with Pythia8 labelled
PowhegBox+Pythia8.
General Generator setup
PowhegBox
Herwig++(NLO)
PDFs
PDFs need to be set for the hard process and underlying event separately.
- Hard process (as described in the Herwig++ manual):
-
cd /Herwig/Partons
create ThePEG::LHAPDF myPDFset ThePEGLHAPDF.so
set myPDFset:PDFName CT10.LHgrid
set myPDFset:RemnantHandler HadronRemnants
set /Herwig/Particles/p+:PDF myPDFset
set /Herwig/Particles/pbar-:PDF myPDFset
- Underlying event (not in the manual)
-
cd /Herwig/Partons
cp QCDExtractor MPIExtractor
set MPIExtractor:FirstPDF MRST
set MPIExtractor:SecondPDF MRST
cd /Herwig/UnderlyingEvent
set FastQCD:PartonExtractor /Herwig/Partons/MPIExtractor
Tune
Tune parameters taken from
http://projects.hepforge.org/herwig/trac/wiki/MB_UE_tunes
PowhegBox + Herwig++
Les Houches Event Files
Herwig++ must be set up to read Les Houches Event files as follows:
- Include the LesHouches.so library at the beginning of the input file:
-
library LesHouches.so
- Create a Les Houches reader object, and open the LesHouches file:
-
cd /Herwig/EventHandlers
create ThePEG::LesHouchesFileReader myReader
set myReader:WeightWarnings 0
set myReader:FileName wp.e+.7TeV.Default.lhe
set myReader:CacheFileName cacheevents.tmp
- Create a LesHouchesEventHandler object and insert the relevant cascade/hadronization/decay handlers. E.g.:
-
cd /Herwig/EventHandlers
create ThePEG::LesHouchesEventHandler myLesHouchesHandler
set myLesHouchesHandler:PartonExtractor /Herwig/Partons/QCDExtractor
set myLesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler
set myLesHouchesHandler:HadronizationHandler NULL
set myLesHouchesHandler:DecayHandler NULL
PDFs
Tune
As above, see
http://projects.hepforge.org/herwig/trac/wiki/MB_UE_tunes
PowhegBox + Pythia8
PDFs
To compare like with like, the same set of PDFs were used when showering the PowhegBox events with Pythia8.
Tune
Tune:pp = 4
See
http://home.thep.lu.se/~torbjorn/php8150/Tunes.php
Vetoed Shower
When showering
PowhegBox events with Pythia a vetoed shower must also be set up, to prevent any shower emissions with pT greater than the Powheg emission. This is done by implementing a Pythia
"User Hook"
. An example can be found in the routine "main71" in the Pythia8 examples folder.
The code used in this study can be found
here.
HepMC Events
In order to use Rivet for the analysis, Pythia was set up to output events in the HepMC format:
//Interface for conversion from Pythia8:Event to HepMC.
HepMC::I_Pythia8 ToHepMC;
// Specify file where the HepMC events will be stored.
HepMC::IO_GenEvent ascii_io(argv[1], std::ios::out);
...
// Construct new empty HepMC event
HepMC::GenEvent* hepmcevt = new HepMC::GenEvent();
// Fill HepMC event, including PDF info.
ToHepMC.fill_next_event( pythia, hepmcevt );
// Write the HepMC event to file.
ascii_io << hepmcevt;
delete hepmcevt;
RIVET
Validation
Matrix element level
Level-specific setup:
Herwig++(NLO)
At matrix element level we are only interested in the hard process partons. The parton shower, hadronization, underlying event should be turned off.
However, the Powheg emission in Herwig++(NLO) is produced as the first step of the parton shower. So we need to leave the parton shower turned on but use the HardOnly flag:
cd /Herwig/Shower
set Evolver:HardEmissionMode POWHEG
set Evolver:HardOnly Yes
Hadronization,
MPI and final-state Decays can then be turned off as follows:
set /Herwig/EventHandlers/LHCHandler:HadronizationHandler NULL
set /Herwig/EventHandlers/LHCHandler:DecayHandler NULL
set /Herwig/Shower/ShowerHandler:MPIHandler NULL
PowhegBox + Herwig++
PDFs were setup as described in the General Generator Setup section,
above
The Les Houches Event Handler was set up as above. The parton shower was left on, to handle the Powheg emission:
set myLesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler
set myLesHouchesHandler:PartonExtractor /Herwig/Partons/QCDExtractor
and hadronization and final state decays were turned off:
set myLesHouchesHandler:HadronizationHandler NULL
set myLesHouchesHandler:DecayHandler NULL
PowhegBox + Pythia8
Parton showering, Hadronization and
MPI were turned off:
pythia.readString("PartonLevel:MI = off");
pythia.readString("PartonLevel:ISR = off");
pythia.readString("PartonLevel:FSR = off");
pythia.readString("HadronLevel:all = off");
pythia.readString("Check:event = off");
Plots
Notes
As is evident, even at this early stage there is a significant difference between all of the Herwig++(NLO) and PowhegBox+Herwig++ distributions shown above. This was quite unexpected; ideally the two sets of Powheg events coming out of Herwig++ would be more-or-less identical.
The W invariant mass was taken as the invariant mass of the e+ &

in the final state, and the discrepancy between Herwig++(NLO) and PowhegBox+Herwig++ turned out to be because of different default behaviours when including (or not including) final-state QED radiation.
By default, the Herwig++(NLO) events
had final state QED radiation, whereas the PowhegBox+Herwig++ events
did not. A simple way to confirm that this was the case was to explicitly turn off the generation of the QED radiation in the Herwig++(NLO) case, by adding the following line to the input file:
set /Herwig/QEDRadiation/QEDRadiationHandler:DecayingParticles 2 NULL
(the particle at position 2 of the decaying particles list is the W+)
The invariant mass distribution then becomes:
W invariant mass, no QED radiation
The differences between the leading jet and W pT distributions is believed to be caused by different scale choices used by Herwig++ and Powheg-Box during the generation of the real emission.
This is discussed further in the
Fixed Scales section, below.
Parton level
Hadronization Only
Complete Event
Truncated Shower
Fixed Scales
--
KiranJoshi - 31-May-2011