The AlpgenInterface is undergoing a complete restructuring, according to the new guidelines for GeneratorInterfaces. This page documents this restructuring

New Features

  • Separation Source-Producer
    • Source: reads UNW events file, format shifts to LHE, creates LHEEventProduct and LHERUnInfoProduct.
    • Producer: parton showering, matching, hadronization.


  • What with using the SLHA mass line? Is this doing something bad? Not at all up till now. However, from the update notes from Pythia 6.420:
    PYSLHA: protected some internal PYTHIA particles from read-in of 
        SLHA mass and DECAY tables, in order to avoid incompatibilities with 
        Pythia's hadronization and hadron decay machinery. The SLHA interface is
        intended for read-in of non-SM physics, so we do not consider it a
        strong restriction to protect Pythia's special internal codes and
        all SM particles with masses less than 20 GeV from being
        overwritten by SLHA read-in. People who do wish to alter, say,
        the decay tables of B mesons, should not use the SLHA tables to
        accomplish this, but rather use Pythia's internal updating routine
        PYUPDA.  A modification of the b-quark mass, for example, would
        need to be handled through the PMAS array.

  • W + jets
    • Basic mother-daughter relations validation.
    • Basic INORAD validation.
  • Z + jets
    • Basic mother-daughter relations validation.
    • Basic INORAD validation.
      • Why do we get the complete event record seen by UPVETO?
      • I don't know, but Alpgen correctly disregards the six initial particles before passing them to the calorimeter.
      • It also correctly disregards the daughters of INORAD'd particles.
  • ttbar + jets
    • Basic mother daughter relations validation.
    • Basic INORAD validation.
    • Why is it freezing? Why does it stop freezing when I use FourVectors instead of doing calculations manually.
    • Always bitten by FORTRAN/C-style array differences.


  • The PYUPRE subroutine:
C...Rearranges contents of the HEPEUP commonblock so that
C...mothers precede daughters and daughters of a decay are
C...listed consecutively.
In standalone Pythia, a call to UPEVNT is always followed by a call to PYUPRE. In order to mimic that behavior, we do the same in AlpgenInterface.
  • What is the "phantom event" at the beginning of DBPART?
    • Solved: it was an extra call of DBPART in a wrong place.
  • How to make sure the PDF sets are chosen consistently in ALPGEN and PYTHIA?
    • Answer: we don't. See what happened in the 2009 ALPGEN gamma+jets by Sushil.
  • How to make sure the CM energy is consistently kept around?
    • Answer: we don't. There is no way to access the CM energy from within the JetMatching class.
  • What ALPGEN uses for the jet clustering is the HEPEVT common block, NOT the HEPEUP.
  • Problems with merging the files in production.
    • LHERunInfoProduct has to correctly treat ALPGEN headers.

ALPGEN processes

  • For ALPGEN v2.13
  • Notice that all of those processes can have + jets in the final state. For some processes this is explicitly mentioned.

IHRD Prefix Meaning
1 wqq W + pair of heavy quarks
2 zqq Z + pair of heavy quarks
3 wjet W + jets
4 zjet Z + jets
5 vbjet Multi vector bosons (W,Z,H,photon)
6 2Q Pair of heavy quarks
7 4Q Two pairs of heavy quarks
8 QQh Pair of heavy quarks + Higgs
9 njet Pure multijets
10 wcjet W + single charm
11 phjet photon + jets
12 hjet Higgs + jets
13 top Single top
14 wphjet W + photon + jets
15 wphqq W + photon + pair of heavy quarks
16 2Qph Pair of heavy quarks + photon

  • Functions to fix the Event Record:
void fixEventWZ(lhef::HEPEUP &hepeup);
void fixEventMultiBoson(lhef::HEPEUP &hepeup);
void fixEventTTbar(lhef::HEPEUP &hepeup);
void fixEventHiggsTTbar(lhef::HEPEUP &hepeup);
void fixEventSingleTop(lhef::HEPEUP &hepeup, double mb, int itopprc);

FORTRAN routines

Here we describe the FORTRAN routines responsible for the matching in standalone matching.

UPINIT routine

  • I/O
  • Call ALSHCD - returns "PYT"
  • I/O
    • Read until "****"
    • Read IHRD
    • Read six masses (mc, mb, mt, mw, mz, mh)
    • Read key-value pairs (PARVAL[NTMP] array)
    • Read until "****"
    • Read xsec, xsec_error, number of unw events, luminosity
  • Call AHSPAR to setup parameters - this sets EBEAM.
    • This sets every parameter except IHRD, the masses and the jet clustering parameters.
  • PBEAM1=DBLE(EBEAM), PBEAM2=DBLE(EBEAM), IH1=1 --> these are tramp variables to set up HEPRUP later.
  • Call PDFCONVH (what does it do?)
  • Call ALSHCD
  • Prepares INORAD
  • Gets jet matching criteria
  • Sets up the HEPRUP
  • Calls ALSHIN (passes the six masses to PYTHIA)
  • Sets LPRUP (originally it was 661, now it has a meaning).

The HEPRUP has to be setup as:

Parameter Value
BEAM p,p,energy of CM
PDFGUP(1,2) -1

UPEVNT routine

UPVETO routine

-- ThiagoTomei - 20 Mar 2009

Topic revision: r14 - 2009-04-02 - ThiagoTomei

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

antalya escort bursa escort eskisehir escort istanbul escort izmir escort