ROOT ntuples

From Wiki Les Houches 09

(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
People interested: Joey Huston, Frank-Peter Schilling, Joanna Weng
People interested: Joey Huston, Frank-Peter Schilling, Joanna Weng
-
Proposal for variables to be stored
+
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
   // 4-vectors of incoming and outgoing partons
Line 24: Line 25:
   // PDF reweights
   // PDF reweights
   std::vector<float> m_pdf_weights;
   std::vector<float> m_pdf_weights;
 +
 +
* The Fortran implementation could be based on FROOT http://hep.pa.msu.edu/cteq/public/froot/froot1.0.tar.gz which provides a Fortran wrapper for the necessary ROOT commands to book, fill and output a ROOT tree. It is already implemented in MCFM http://mcfm.fnal.gov/
 +
 +
* 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);
 +
* A first prototype of this interface is currently implemented and tested in the NLO calculation of ttbar+jet (Dittmaier, Uwer, Weinzierl)

Revision as of 07:42, 16 June 2009

Aim: Define and implement a common ROOT ntuple output format for NLO programs

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

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);
  • A first prototype of this interface is currently implemented and tested in the NLO calculation of ttbar+jet (Dittmaier, Uwer, Weinzierl)
Personal tools