It has been proposed to add cell id descriptors to LCIO. This page contains notes and links to code.
Proposed Convention
It is proposed to use the same convention currently used in SLIC/lcsim/CompactGeometry. This consists of a string encoded thus:
<fieldDesc>[,<fieldDesc>...]
fieldDesc = name:[start]:[-]length
For example
layer:7,system:-3,barrel:3,theta:32:11,phi:11
Where:
name: The name of the field
start: The start bit of the field. If omitted assumed to start immediately following previous field, or at the least significant bit if the first field.
length: The number of bits in the field. If preceeded by - the field is signed, otherwise unsigned.
Bit numbering is from the least significant bit (bit 0) to the least significant (bit 63). For any particular collection this string would be stored as a string parameter (using what name?)
Existing Code
Java
The following classes deal with encoding/decoding cell id descriptors: