LHADA studies: format, parsers, implementation examples

To move forward with the idea of an Analysis Description Accord as put forth in sections 16+17 of arXiv:1605.02684, we are in strong need of a proof of principle, that is a working example comprising an example analysis and a parser that translates a LHADA file into code that can be run by an analysis framework, be it collaboration software or some of the public RecastingTools.

People working on this

Sezen Sekmen, Daniel Schmeier, Nishita Desai, Suchita Kulkarni, Harrison Prosper, Gokhan Unel, Wolfgang Waltenberger

Please contact Sezen (ssekmen@cernNOSPAMPLEASE.ch) if you are interested in joining the effort.

Working group meetings

Parser development

Developements will be available in the github repository LHADAparser.

A very preliminary version of a c++ parser prototype has been developed by G. Unel (to be uploaded to github soon). Work ongoing.

Object definition

An object (particle or jet) have a list a properties which can be used in the cut statement, additional properties can be defined in the LHADA file. In the LHADAPaticule class each property is accessible from a method named after the property, e.g. property pt will be accessed by the method pt().

For functions provided in C++, Particle/Jet collections are passed to user function (see apply statement of object block) as std::vector<LHAParticle*>.

Standard properties

Name in LHADA file LHADAParticle method
mass mass()
e e()
px px()
py py()
pz pz()
pt pt()
eta eta()
rapidity rapidity()
charge charge()
spin spin()
pdgid pdgid()
phi phi()
x x()
y y()
z z()

Definition of an extra property

In addition to the above standard properties, additional properties can be added to an object. It is defined in the LHADA object block with a statement starting with the property keyword followed by the property name. Example:

object electron
  take external
  property isolation

In function codes, the property isolation will be accessed by LHADAParticle::isolation().

Single object and collection

In addition to collection of objects, defined in the object block in the current format, single object, like missing E_T, and single scalar like H_T are typically needed in an analysis.


  • The object block will corresponds to a single object
  • Collection of objects are defined with a collection block (previously called object)
  • Single scalar are defined with a block called variable which includes a statement apply to specify the function that calculates the variable. Example

variable HT
   apply HT(jets=jets)

object ETMISS
  take exernal

collection jets
   take particles
   apply antikt(dR=0.4, ptmin=20, etamax=2.5)

A variable can be a list of values instead of a single value. In such case the list of values is defined with the attribute keyword, one line per variable. The function specified in the apply statement must return a vector of values sorted in the order of the attribute lines.


variable Razor
  attribute MR
  attribute M2
  apply function(...)

Note: an alternative proposal that has been discussed is to use the same keyword, object, for both collection of objects and single object. The two can be distinguished from the context: function of the apply statement returning either an object or a vector of objects and absence or presence of an index when the entity is used in the cut block (e.g. jet[2].pt > 100 and etmis > 50). This option will be reconsidered once we have more experience and feedback from the above option.

Object identification

Proposal: adding an uid line in the object block to identify the type of object.

object truth_e
  take external
  uid hepmc_id

object reco_e
  take truth_e
  apply reconstruct
  uid recoelectrons_ATLAS8TEV

object signal_e_loose
  take reco_e
  apply looseid
  uid ATLAS8TEV_loose

Example analysis

to be done

Further information

Those interested in developing the proposed LHADA format further will meet on 16-18 November 2016 at CERN. For details see: https://indico.cern.ch/event/572170/overview

-- SuchitaKulkarni - 2016-09-26

Edit | Attach | Watch | Print version | History: r12 < r11 < r10 < r9 < r8 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r12 - 2017-04-27 - SezenSekmen
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCPhysics All webs login

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