Well, this is a try, and RFC (Request For Comments). Ntuple is split into
several blocks, obviously. All variables are packed, to save space. For
un-initiated, few examples:
I*4:6 === integer, store only 6 bits
I*4:[-63,63] === integer, store only as many bits as nesessary
for this range(i.e. 7)
U*4:7 === unsigned integer, store 7 bits only
R*4:12:[0,1000] === real, store only 12 bits. This implies a
precision of 1000/10**12 = 0.25
Below, you find proposed format of the Ntuple. First two columns provide
a link to the micro DST, and enable automatic creation of the conversion code,
just ignore them. The third column contains a proposed variable name: it will
be the way we use it in the analysis. It should be self-describing and easy
for not-so-good typers. Next column contains the proposed packing format.
In many cases there is a considerable waste of bits, please help to identify.
The next column contains description of the variable. It can be rectified/
improved in many cases. Help!
This is a first pass. QCD groups have a number of suggestions, they will appear shortly. Some of the groups/people expressed a need for addtional variables or for some derived quantities (like transverse mass), for convenience. Given the substantial savings in space, such requests can be entertained. The proponents may have to pay the price in a form of the computer code to generate their favoured variables.
OK, OK... Here it is: the Ntuple format