# LHEF for Matching

(Difference between revisions)
 Revision as of 13:13, 10 June 2009 (view source)← Previous diff Current revision (09:14, 29 December 2009) (view source) (→Formal specification of the standard) (40 intermediate revisions not shown.) Line 24: Line 24: for the parton showers in this case. for the parton showers in this case. - Below you will find a rough draft of additional XML tags suggsted to + Below you will find a rough draft of additional XML tags suggested to be included in the new standard (version 2.0). be included in the new standard (version 2.0). + + Note that the notation is that a ''tag'' may contain ''attributes'' in the following way: + things marked by the tag + or + + + A number of example C++ classes for reading and writing Les Houches files according to the suggested standard can be found [http://home.thep.lu.se/~leif/LHEF here]. = Run information = = Run information = Line 32: Line 39: the "init" tag after the compulsary block of parameters corresponding the "init" tag after the compulsary block of parameters corresponding to the HEPRUP common block. to the HEPRUP common block. + + == The generator tag (optional) == + + Just for easy access to the name of the generator which produced this file. The allowed attribute is + + * version (optional): a string describing the version of generator + + and the content of the tag is the generator name. == The xsecinfo tag (required) == == The xsecinfo tag (required) == Line 48: Line 63: * totxsec (R): the total cross section (in units of pb) of all processes in the file * totxsec (R): the total cross section (in units of pb) of all processes in the file * maxweight (D=1): the maximum weight of any event in the file (in an arbitrary unit) * maxweight (D=1): the maximum weight of any event in the file (in an arbitrary unit) - * meanweight (D=1): The average weight of the events in the file (same unit as maxweight. + * minweight: if the file contains negative weights, the minweight may contain the most negative of the negative weights in the file. If not given, minweight is assumed to be -maxweight. + * meanweight (D=1): The average weight of the events in the file (same unit as maxweight). * negweights (D=no): If yes, the file may contain events with negative weights. * negweights (D=no): If yes, the file may contain events with negative weights. - * varweights (D=no): If yes, the file may contain varying weights (if no, all events are weighted with maxweight=meanweight). + * varweights (D=no): If yes, the file may contain varying weights (if no, all events are weighted with maxweight (or minweight)). The information given per process in the HEPRUP common block can then The information given per process in the HEPRUP common block can then safely be ignored and the cross section for each process is assumed to safely be ignored and the cross section for each process is assumed to - be sumprocw*totxsec/maxweight/neve. + be the sum of all weights of the corresponding events multiplied by totxsec/maxweight/neve. - + == The cutsinfo tag (optional) == == The cutsinfo tag (optional) == Here the MEG should supply information about the cuts used in the Here the MEG should supply information about the cuts used in the - generation. Inside this tag any number of cut tags can be supplied. + generation. Inside this tag any number of cut and ptype tags can be supplied. + + === The ptype === + + This tag can be used to define a group of particles to which a cut can be applied. Its contents should be a white-space separated list of PDG particle codes. The only attribute is + * name (R): The string used to represent this ptype in a cut. === The cut tag === === The cut tag === - The cut tag has information of a particular cut used. The information + This tag has information of a particular cut used. The information needed is which particle(s) are affected, what variable is used and needed is which particle(s) are affected, what variable is used and - the maximum and/or minimum value of that parameter. The attributes are + the maximum and/or minimum value of that parameter. The contents should be the minimum and maximum allowed values of this variable (in that order). If only one number is given, there is no maximum. If the minumum is larger or equal to the maximum, there is no minimum. The attributes are - * type (R): This defines the variable which is cut. The following values are allowed (the lab frame is assumed in all cases): + * p1 (D=0): The particles for which this cut applies. This can either be a number corresponding to a given particle PDG code or 0 for any particle or the name of a previously defined ptype tag - ** "invmass" the invariant mass of two particles (or if only one particle type is given, the rest mass of that particle). + * p2 (D=0): If cut is between pairs of particles, this attribute should be non-zero. Allowed values are the same as for p1 - ** "kt": the transverse momenta of a particle (in GeV) + * type (R): This defines the variable which is cut. The following values are allowed (the lab frame is assumed in all cases): - ** "eta": the pseudorapidity of a particle + ** "m" the invariant mass of two particles (or, if only one particle type is given, the invariant mass of that particle). - ** "y": the true rapidity of a particle + ** "kt": the transverse momenta of a particle matching p1 (in GeV) - ** "deltaR": the pseudorapidity--azimuthal-angle difference between two particles. + ** "eta": the pseudorapidity of a particle matching p1 - ** "E": the energy of a particle + ** "y": the true rapidity of a particle matching p1 - ** "ETmiss": the sum of the pt of the neutrinos in the process + ** "deltaR": the pseudorapidity--azimuthal-angle difference between two particles matching p1 and  p2 respectively. - ** ... + ** "E": the energy of a particle matching p1 - * p1 (D=any): The particle for which this cut applies. This can either be a number corresponding to a given particle PDG code or one of the following + ** "ETmiss": the norm of the vectorial sum of the pt of particles matching p1 and '''not''' matching p2. - ** "any": any particle + ** "HT": the scalar sum of the transverse momentum of the particles matching p1 and '''not''' matching p2. - ** "jet": any coloured particle + - ** "uds": ("udsc") any light quark + - ** "guds": ("gudsc") any light quark or gluon + - ** "b" ("c"): any b or bbar (c or cbar) quark + - ** "l" ("l+" or "l-"): any (positively or negatively) charged lepton + ** ... ** ... - * p2 (D=0): If cut is between pairs of particles, this attribute should be non-zero. Allowed values are the same as for p1 - * min (D=-inf): The minimum value of this variable - * max (D=+inf): The maximum value of this variable - == The procinfo tag (optional) == == The procinfo tag (optional) == Line 96: Line 107: attributes: attributes: - * nprup (D=0): The process number for which the information is given. 0 means all processes. + * iproc (D=0): The process number for which the information is given. 0 means all processes. - * loops (D=-1): The number of loops used in calculating this process. + * loops: The number of loops used in calculating this process. - * qcdorder (D=-1): The number of QCD vertices used in calculating this process. + * qcdorder: The number of QCD vertices used in calculating this process. - * eworder (D=-1): The number of electro-weak vertices used in calculating this process. + * eworder: The number of electro-weak vertices used in calculating this process. - In all cases above ''-1'' means that no information is given. + * rscheme: The renormalization scheme used, if applicable. + * fscheme: The factorization scheme used, if applicable. + * scheme: Information about the scheme used to calculate the matrix elements. If absent, a pure tree-level calculation is assumed. Other possible values could be CSdipole (NLO calculation with Catani-Seymour subtraction), MC@NLO, POWHEG and NLOexclusive (NLO calculation according to the exclusive cross section withing the given cuts). + The content of this tag is a string with arbitrary information about the process. - == The mergeinfo tag (optional) == + == The mergetype tag (optional) == For some merging schemes (eg. for CKKW) it is possible to reweight the For some merging schemes (eg. for CKKW) it is possible to reweight the - the events with Sudakov form factors already in the MEG. This can be + the events with Sudakov form factors already in the MEG. If this has been done the content of the mergetype tag for the corresponding process should give a name corresponding to the scheme used. The attributes are - described in the following attributes. + * iproc (D=0): The process number for which the information is given. "0" means all processes. - * nprup (D=0): The process number for which the information is given. "0" means all processes. + * mergingscale (R): The value of the merging scale in GeV. - * reweightscheme (R): valid values are + - ** "None": no reweighting done + - ** "CKKW-NLL": events are reweighted by the standard CKKW NLL Sudakov form factor + - ** "CKKW-NLL1": same as above but weight is required to be less than 1 + - ** "VetoSudakov": events are reweighted with 0 or 1 with a probability given by a (non-analytic) form factor. + - * reconstruction (R): The clustering used to find the scales in the Sudakov form factors (and alpha_S). The following values are valid + - ** "ktalg": the kt-algorithm used in the original CKKW scheme + - ** ... + * maxmult (D=no): If yes the corresponding process is reweighted as if it is the maximum multiplicity process (ie. the Sudakov for the last step down to the merging scale is not included. * maxmult (D=no): If yes the corresponding process is reweighted as if it is the maximum multiplicity process (ie. the Sudakov for the last step down to the merging scale is not included. - - == The nloinfo tag (optional) == - - If the events were produced by a NLO generator the following - information can be supplied as attributes: - * scheme (R): The NLO (subtraction) scheme used. The following values are valid: - ** "CSdipole": Catani-Seymour subtraction. - ** "POWHEG": Nasons scheme for giving one extra jet with Sudakov form factors correct to NLO. - ** "MC@NLO": "parton-shower subtracted" - ** "Exclusive": The 1-loop events are generated according to the exclusive NLO cross section (according to the cuts), while 0-loop events are pure tree-level. - * rfscheme (D=MSbar): The factorization and renormalization scheme used (MSbar, DIS) - - Note that for NLO generators (except for the Exclusive scheme), events - with real emission corrections will be produced which will not respect - the cuts. For the POWHEG scheme there is an additional cut imposed on - the emission, which can be specified by "cut" tags (see the cutsinfo - tag above) inside the the nloinfo tag. - - == The pdferrors tag (optional) == - - It is sometimes efficient to supply different weights for the same - event using a sets of error PDFs. If this is done, each event must - have this information and the only attribute in this tag specifies the - number of sets used. - * nsets (R): the number of error sets used. = Event information = = Event information = Line 151: Line 132: the HEPEUP common block. the HEPEUP common block. - == The weightinfo tag (optional) == + == The weight tag (optional) == - Here some information can be supplied to help the PSG to reweight + An event can be associated with a number of different weights given in weight tags. The content of these tags are simply a sequence of weights corresponding to different PDFs, αS values, etc. The first weight in the first of these tags should correspond to the main weight as described in the xsecinfo tag. All weights should be given in the same unit as the maxweight attribute in the xsecinfo tag. For each weight tag, further information can be given in the following attributes - events according to its needs. The following attributes may be given + * name: an arbitrary string describing this set of weights - * weight (D=XWGTUP): the weight of the event as described in the xsecinfo tag. The default is the XWGTUP variable of the HEPEUP common block. + * born: the relative size of the tree-level cross section for this event if applicable. Summing born times the weight and multiplying with totxsec/neve/maxweight will give the Born cross section for this process. - * born (D=0): the relative size of the tree-level cross section for this event. Summing born*weight and multiplying with totxsec/neve/maxweight will give the born cross section for this process. If 0 this information is not given. + * sudakov (D=0): The sudakov form factor used to weight this event (see the reweightscheme attribute of the mergeinfo tag). * sudakov (D=0): The sudakov form factor used to weight this event (see the reweightscheme attribute of the mergeinfo tag). - * subtraction (D=0): The relative size of the subtraction term used for a 0-loop event (is typically negative) - The relationships between these terms are typically born*sudakov=1 and + The relationships between these terms is typically born*sudakov=1. - born+subtraction=1. + + == The clustering tag == - == The alphas tag (optional) == + If an event has eg. been reweighted with Sudakov form factors, it is possible to specify how the current event has been clustered to find the scales involved. The contents of this this tag should be a series of clus tags. The clustering should be defined from the final state backwards in terms inverse time-like splittings, in the end defining a "bare" ladder diagram. This is then followed by a sequence of space-like splittings. - Information about the $\alpha_S$ used in generating this + === The clus tag === - event. Attributes are + - * scale (D=SCALUP): The scale in GeV used in the alpha_S (default is the SCALUP variable in the HEPEUP common block). + - * value (D=AQCDUP): The value of alpha_S used (default is the AQCDUP variable in the HEPEUP common block). + - If different values of alpha_s has been used in different vertices in + The contents of this tag is two or three integers. The two first indicates which particles entries are clustered. If a third number is given it should correspond to an actual entry which corresponds to the combined object (if  eg. a decayed resonance is explicitly present in the HEPEUP common block). If no third number is given, the clustered object is in the following referred to with the first number. The attributes are - this even a white-space separated list of values can be given in this + * scale: The scale in GeV associated with the clustering if relevant. - tag. The order of the values is dictated by the "reconstruction" + * alphas: If the event has been reweighted with an αS at the scale in this clustering, the value of this αS should be supplied here. - attribute in the mergeinfo tag above (falling scales) if present. + == The pdfinfo tag (optional) == == The pdfinfo tag (optional) == Line 180: Line 155: Here the MEG can supply information about the PDFs used for this Here the MEG can supply information about the PDFs used for this event. The following attributes are available event. The following attributes are available - * p1 (R): the type of the incoming particle 1. + * p1: the type of the incoming particle 1. - * p2 (R): the type of the incoming particle 2. + * p2: the type of the incoming particle 2. - * x1 (R): the x-value used for the incoming particle 1. + * x1: the x-value used for the incoming particle 1. - * x2 (R): the x-value used for the incoming particle 2. + * x2: the x-value used for the incoming particle 2. - * xf1 (R): the value of the pdf for the incoming particle 1. + * scale (D=SCALUP): The scale in GeV used in the PDFs (default is the SCALUP variable in the HEPEUP common block). - * xf2 (R): the value of the pdf for the incoming particle 2. + - * scale (D=SCALUP): The scale in GeV used in the PDFs (default is the SCALUP variable in the HEPEUP common block). + The content of the tag is two real numbers corresponding to the values of the PDFs, ''xfp1(x1,scale)'' and ''xfp2(x2,scale)''. + + = Grouping of events = + + If we have a NLO calculation using eg. Catani-Seymour subtaction of a process with N particles in the Born level, each N+1 tree-level event will come with a number of counter events with N particles. For this reason there is a need to group events together. Such a group of events should be included in an eventgroup tag. + + == The eventgroup tag == + + The contents of this tag is a number of event tags which for some reason should be considered together. The main purpose is to allow an event generated according to the real contribution in an NLO generator, to be accompanied with a number of counter events corresponding to the subtraction terms. + The following attributes are possible + * nreal: the number of real events (ie. N+1 events, which should typically be 0 or 1). + * ncounter: the number of counter events. + Note that if event groups are present, the neve attribute in the xsecinfo tag should count an event group as a single event, also it is the sum of the weights of the events in an event group which relates to the maxweight and meanweight attrributes in the xsecinfo tag. + To be backward compatible with the previous standard, where the <event> and </event> + tags are required to be alone on a single line, also the <eventgroup> and </eventgroup> tags are required to be alone on a single line. + + = Formal specification of the standard = + + Here is a draft of a formal specification of the standard (UPDATE now consistent with proceedings draft): [[Image:Grammar.pdf]] + + ---- - The pdfinfo tag may contain a white-space separated list of + --[[User:Lonnblad|Lonnblad]] 13:46, 10 June 2009 (UTC) - additional weights corresponding to reweighting this event according + - to the error sets of the LHAPDF set used. +

# Introduction

The Les Houches Event File accord (LHEF) was introduced in 2006 and was meant as a standard way of representing in an ASCII file the information in the old Les Houches common block accord from 2001. LHEF was constructed using XML tags to be easy to extend (although some additional structure is assumed inside some tags which is not formulated in XML). The standard has been extremely usefull, and has been used a lot to interface matrix element generators and parton shower programs.

The standards are found here:

As the matching and merging of tree-level matrix elements and parton showers are now becoming the state-of-art, it is reasonable to let this be reflected in an updated file format to standardise how relevant information should be given by the matrix element generators (MEGs) in a usable fashion for the parton shower programs (PSGs). Furthermore, looking ahead towards the time when NLO matching and merging with parton showers hopefully will become the standard, it might be worth thinking about which additional information is needed for the parton showers in this case.

Below you will find a rough draft of additional XML tags suggested to be included in the new standard (version 2.0).

Note that the notation is that a tag may contain attributes in the following way:

 <tag attribute1="value" attribute2="value">things marked by the tag</tag>


or

 <tag attribute1="value" attribute2="value" attribute3="value" />


A number of example C++ classes for reading and writing Les Houches files according to the suggested standard can be found here.

# Run information

This is information about all events in the file to be included inside the "init" tag after the compulsary block of parameters corresponding to the HEPRUP common block.

## The generator tag (optional)

Just for easy access to the name of the generator which produced this file. The allowed attribute is

• version (optional): a string describing the version of generator

and the content of the tag is the generator name.

## The xsecinfo tag (required)

The information in the HEPRUP common block is in principle sufficient to figure out the cross sections of the processes involved. However, the way things are specified is a bit confusing and complicated since it was assumed to be used to pass information between the MEG and PSG in both directions. For the event file, the communication is per definition one-way, and the information can be made more easily provided. The suggested attributes for the xsecinfo tag are as follows (R means the attribute is required. D= means a default is assumed if the attribute is absent).

• neve (R): the number of events in the file
• totxsec (R): the total cross section (in units of pb) of all processes in the file
• maxweight (D=1): the maximum weight of any event in the file (in an arbitrary unit)
• minweight: if the file contains negative weights, the minweight may contain the most negative of the negative weights in the file. If not given, minweight is assumed to be -maxweight.
• meanweight (D=1): The average weight of the events in the file (same unit as maxweight).
• negweights (D=no): If yes, the file may contain events with negative weights.
• varweights (D=no): If yes, the file may contain varying weights (if no, all events are weighted with maxweight (or minweight)).

The information given per process in the HEPRUP common block can then safely be ignored and the cross section for each process is assumed to be the sum of all weights of the corresponding events multiplied by totxsec/maxweight/neve.

## The cutsinfo tag (optional)

Here the MEG should supply information about the cuts used in the generation. Inside this tag any number of cut and ptype tags can be supplied.

### The ptype

This tag can be used to define a group of particles to which a cut can be applied. Its contents should be a white-space separated list of PDG particle codes. The only attribute is

• name (R): The string used to represent this ptype in a cut.

### The cut tag

This tag has information of a particular cut used. The information needed is which particle(s) are affected, what variable is used and the maximum and/or minimum value of that parameter. The contents should be the minimum and maximum allowed values of this variable (in that order). If only one number is given, there is no maximum. If the minumum is larger or equal to the maximum, there is no minimum. The attributes are

• p1 (D=0): The particles for which this cut applies. This can either be a number corresponding to a given particle PDG code or 0 for any particle or the name of a previously defined ptype tag
• p2 (D=0): If cut is between pairs of particles, this attribute should be non-zero. Allowed values are the same as for p1
• type (R): This defines the variable which is cut. The following values are allowed (the lab frame is assumed in all cases):
• "m" the invariant mass of two particles (or, if only one particle type is given, the invariant mass of that particle).
• "kt": the transverse momenta of a particle matching p1 (in GeV)
• "eta": the pseudorapidity of a particle matching p1
• "y": the true rapidity of a particle matching p1
• "deltaR": the pseudorapidity--azimuthal-angle difference between two particles matching p1 and p2 respectively.
• "E": the energy of a particle matching p1
• "ETmiss": the norm of the vectorial sum of the pt of particles matching p1 and not matching p2.
• "HT": the scalar sum of the transverse momentum of the particles matching p1 and not matching p2.
• ...

## The procinfo tag (optional)

For each process number used in the NPRUP variable in the HEPEUP common block we can have additional information given in the following attributes:

• iproc (D=0): The process number for which the information is given. 0 means all processes.
• loops: The number of loops used in calculating this process.
• qcdorder: The number of QCD vertices used in calculating this process.
• eworder: The number of electro-weak vertices used in calculating this process.
• rscheme: The renormalization scheme used, if applicable.
• fscheme: The factorization scheme used, if applicable.
• scheme: Information about the scheme used to calculate the matrix elements. If absent, a pure tree-level calculation is assumed. Other possible values could be CSdipole (NLO calculation with Catani-Seymour subtraction), MC@NLO, POWHEG and NLOexclusive (NLO calculation according to the exclusive cross section withing the given cuts).

The content of this tag is a string with arbitrary information about the process.

## The mergetype tag (optional)

For some merging schemes (eg. for CKKW) it is possible to reweight the the events with Sudakov form factors already in the MEG. If this has been done the content of the mergetype tag for the corresponding process should give a name corresponding to the scheme used. The attributes are

• iproc (D=0): The process number for which the information is given. "0" means all processes.
• mergingscale (R): The value of the merging scale in GeV.
• maxmult (D=no): If yes the corresponding process is reweighted as if it is the maximum multiplicity process (ie. the Sudakov for the last step down to the merging scale is not included.

# Event information

This is information about a particular event to be included inside the event tag after the compulsory block of parameters corresponding to the HEPEUP common block.

## The weight tag (optional)

An event can be associated with a number of different weights given in weight tags. The content of these tags are simply a sequence of weights corresponding to different PDFs, αS values, etc. The first weight in the first of these tags should correspond to the main weight as described in the xsecinfo tag. All weights should be given in the same unit as the maxweight attribute in the xsecinfo tag. For each weight tag, further information can be given in the following attributes

• name: an arbitrary string describing this set of weights
• born: the relative size of the tree-level cross section for this event if applicable. Summing born times the weight and multiplying with totxsec/neve/maxweight will give the Born cross section for this process.
• sudakov (D=0): The sudakov form factor used to weight this event (see the reweightscheme attribute of the mergeinfo tag).

The relationships between these terms is typically born*sudakov=1.

## The clustering tag

If an event has eg. been reweighted with Sudakov form factors, it is possible to specify how the current event has been clustered to find the scales involved. The contents of this this tag should be a series of clus tags. The clustering should be defined from the final state backwards in terms inverse time-like splittings, in the end defining a "bare" ladder diagram. This is then followed by a sequence of space-like splittings.

### The clus tag

The contents of this tag is two or three integers. The two first indicates which particles entries are clustered. If a third number is given it should correspond to an actual entry which corresponds to the combined object (if eg. a decayed resonance is explicitly present in the HEPEUP common block). If no third number is given, the clustered object is in the following referred to with the first number. The attributes are

• scale: The scale in GeV associated with the clustering if relevant.
• alphas: If the event has been reweighted with an αS at the scale in this clustering, the value of this αS should be supplied here.

## The pdfinfo tag (optional)

Here the MEG can supply information about the PDFs used for this event. The following attributes are available

• p1: the type of the incoming particle 1.
• p2: the type of the incoming particle 2.
• x1: the x-value used for the incoming particle 1.
• x2: the x-value used for the incoming particle 2.
• scale (D=SCALUP): The scale in GeV used in the PDFs (default is the SCALUP variable in the HEPEUP common block).

The content of the tag is two real numbers corresponding to the values of the PDFs, xfp1(x1,scale) and xfp2(x2,scale).

# Grouping of events

If we have a NLO calculation using eg. Catani-Seymour subtaction of a process with N particles in the Born level, each N+1 tree-level event will come with a number of counter events with N particles. For this reason there is a need to group events together. Such a group of events should be included in an eventgroup tag.

## The eventgroup tag

The contents of this tag is a number of event tags which for some reason should be considered together. The main purpose is to allow an event generated according to the real contribution in an NLO generator, to be accompanied with a number of counter events corresponding to the subtraction terms. The following attributes are possible

• nreal: the number of real events (ie. N+1 events, which should typically be 0 or 1).
• ncounter: the number of counter events.

Note that if event groups are present, the neve attribute in the xsecinfo tag should count an event group as a single event, also it is the sum of the weights of the events in an event group which relates to the maxweight and meanweight attrributes in the xsecinfo tag. To be backward compatible with the previous standard, where the <event> and </event> tags are required to be alone on a single line, also the <eventgroup> and </eventgroup> tags are required to be alone on a single line.

# Formal specification of the standard

Here is a draft of a formal specification of the standard (UPDATE now consistent with proceedings draft): Image:Grammar.pdf

--Lonnblad 13:46, 10 June 2009 (UTC)