PowhegBox Validation



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



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 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

  • Hard process PDF should match what was used to generate the events in PowhegBox:
  • set myReader:InitPDFs 0
    cd /Herwig/Partons
    create ThePEG::LHAPDF myPDFset ThePEGLHAPDF.so
    set myPDFset:PDFName CT10.LHgrid
    set myPDFset:RemnantHandler HadronRemnants
    set /Herwig/EventHandlers/myReader:PDFA myPDFset
    set /Herwig/EventHandlers/myReader:PDFB myPDFset
  • Underlying event automatically uses the correct (LO**) PDF, but it probably doesn't hurt to repeat the lines from above.
As above, see http://projects.hepforge.org/herwig/trac/wiki/MB_UE_tunes

PowhegBox + Pythia8

To compare like with like, the same set of PDFs were used when showering the PowhegBox events with Pythia8.
  • Hard process:
  • pythia.readString("PDF:useHard = on");
    pythia.readString("PDF:useHardLHAPDF = on");
    pythia.readString("PDF:hardLHAPDFset = CT10.LHgrid");
  • Underlying event
  • pythia.readString("PDF:pSet = 4");
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;



Matrix element level

Level-specific setup:


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");


me W ANALYSIS leadingJetPtXs.png
Leading jet pT
W pT
me W ANALYSIS WMassXs.png
W invariant mass

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+ & $\nu_{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:
me W ANALYSIS WMassXs QEDOff.png
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

MPI Only

Complete Event

Truncated Shower

Fixed Scales

-- KiranJoshi - 31-May-2011

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng me_W_ANALYSIS_WMassXs_QEDOff.png r1 manage 12.9 K 2011-06-20 - 16:10 KiranJoshi W Mass with no QED radiation

This topic: Main > TWikiUsers > KiranJoshi > PowhegBoxValidation
Topic revision: r8 - 2011-06-23 - KiranJoshi
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback