ROOT ntuples

From Wiki Les Houches 09

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
 
People interested: Joey Huston, Frank-Peter Schilling, Joanna Weng
People interested: Joey Huston, Frank-Peter Schilling, Joanna Weng
Line 5: Line 4:
* Define and implement a common ROOT ntuple output format for NLO programs
* Define and implement a common ROOT ntuple output format for NLO programs
-
* It allows easy exchange of information between theorists
+
* It allows easy exchange of information between theorists and experimentalists
-
and experimentalists
+
* the ntuples can be used to plot distributions, apply kinematic cuts etc.
* the ntuples can be used to plot distributions, apply kinematic cuts etc.
-
* Reference ntuples could be provided for basic LHC cross sections,
+
* Reference ntuples could be provided for basic LHC cross sections, with well defined and tested content
-
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
-
* ntuples could be provided by NLO program authors, even if
+
-
the program itself is not (yet) available for the public
+
=== Relation with LHEF ===
=== Relation with LHEF ===
-
* The ROOT ntuples are NOT meant to replace or
+
* The ROOT ntuples are NOT meant to replace or compete with the existing Les Houches Event file standard LHEF
-
compete with the existing Les Houches Event file standard LHEF
+
* The ntuples are meant for plotting, not for interfacing with parton showers etc.
-
* The ntuples are meant for plotting, not for interfacing with
+
* The information stored in the ntuples is a subset of what is needed in LHEF
-
parton showers etc.
+
* A one-way '''converter''' could be implemented, which reads LHEF and writes out an ntuple
-
* 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 ===
=== ROOT ntuple content ===
-
Proposal for variables to be stored (the variables would appear in the ROOT tree
+
Proposal for variables to be stored (the variables would appear in the ROOT tree without the preceding 'm_'
-
without the preceding 'm_'
+
   // 4-vectors of incoming and outgoing partons
   // 4-vectors of incoming and outgoing partons

Revision as of 08:00, 16 June 2009

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

Contents

Objectives

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

Implementation

  • 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