ROOT ntuples

From Wiki Les Houches 09

Revision as of 07:59, 16 June 2009 by Fpschill (Talk | contribs)
Jump to: navigation, search

People interested: Joey Huston, Frank-Peter Schilling, Joanna Weng



  • Define and implement a common ROOT ntuple output format for NLO programs
  • It allows easy exchange of information between theorists

and experimentalists

  • the ntuples can be used to plot distributions, apply kinematic cuts etc.
  • Reference ntuples could be provided for basic LHC cross sections,

with well defined and tested content

  • ntuples could be provided by NLO program authors, even if

the program itself is not (yet) available for the public

Relation with LHEF

  • The ROOT ntuples are NOT meant to replace or

compete with the existing Les Houches Event file standard LHEF

  • The ntuples are meant for plotting, not for interfacing with

parton showers etc.

  • The information stored in the ntuples is a subset of what

is needed in LHEF

  • A one-way converter could be implemented, which reads LHEF and writes

out an ntuple

ROOT ntuple content

Proposal for variables to be stored (the variables would appear in the ROOT tree without the preceding 'm_'

 // 4-vectors of incoming and outgoing partons
 std::vector<float> m_px,m_py,m_pz,m_e; 
 // x1 and x2 values 
 float m_x1,m_x2;
 // initial state particle IDs 
 // (PDG convention: 0=g,1=u,2=d,...,6=t,-1=ubar,...,-6=tbar)
 int m_id1,m_id2;
 // factorization and renormalization scale
 float m_fac_scale,m_ren_scale;
 // event weight
 float m_weight;
 // user weights
 std::vector<float> m_user_weights;
 // unique event number
 long m_evt_no;
 // pointers to related (real emission / counterterm) events
 std::vector<long> m_evt_pointers;
 // PDF reweights
 std::vector<float> m_pdf_weights;


  • The C++ implementation would be based on two helper classes, which would shield the technical details of creating the ROOT tree from the user
    • class LhaNLOEvent: it contains as data members the variables listed above. For every event, the information is stored in the LhaNLOEvent via setter functions, e.g. event->setWeight(wgt);
    • class LhaNLOTreeWriter: it crates a ROOT output file (name given in constructor) and tree. An event is filled to the tree via writer->writeEvent(evt); Comments can be stored as text strings via writer->writeComment(string);
  • This way, the user does not need to know any details about ROOT, only the ROOT libraries need to be linked to the NLO code
  • A first prototype of this interface is currently implemented and tested in the NLO calculation of ttbar+jet (Dittmaier, Uwer, Weinzierl)
Personal tools