Fixed-length vectors in ROOT tuples: a problem or an opportunity? Toby Burnett

advertisement

Fixed-length vectors in ROOT tuples: a problem or an opportunity?

Toby Burnett

Background

• We long ago agreed to allow fixed length vectors in our

ROOT tuples

• ROOT supports this, and ntupleWriterSvc was modified to accommodate this in August 2004.

– A client specifies an array simply by appending ‘[ n ]’ to the name, and passing the address a vector of length n

– ROOT expressions support indexing with name [ i ], where i =0..

n -1

• However:

– Bill’s application that converts a ROOT tree to an ascii table does not allow for this extension

A solution

• As a (significant) example, consider the PtPos variable in

MeritTuple

• The following line of CINT or C++,

MeritTuple->Branch("PtPosBranch",

MeritTuple->GetLeaf("PtPos")->GetValuePointer(),

"PtPosX:PtPosY:PtPosZ/F"); creates a new branch with 3 leaves defining aliases for the components.

Demonstration at right: PtPos[0] is the same as PtPosX.

Proposal

• There are many 3-vectors in the current MeritTuple.

• We consider replacing, or adding as an alias, preliminary to replacing, each component description with the root name.

Download