The following text is intended
to summarize conventions in the filling of Arte tables, in particular those
not addressed in the existing Arte documentation. They are intended to
clarify the situation for subsystem experts who provide code which fills
the tables, and ease the life of the reconstruction experts who have to
use the data.
Please notify me if you know missing items of importance, or points
of conflict. Please inform me also if you can supply more detailed, more
complete or more precise information on a subject.
For each GEDE plane the ArtePointer<HITB>
gede->hit1 (1=first) and gede->hitL(L=last) must be
filled, which contain the HITB pointers to the first and the last hit belonging
to this GEDE plane (formerly the GEPT table in Arte-01). If there is no
hit in the plane, the convention is that gede->hit1=0 and gede->hitL=-1.
Care should be taken that gede->hit1 and gede->hitL are
*always* properly initalized in each event, even when the corresponding
detector is inactive.

If detector hits from the HITB table have been used to reconstruct a RSEG entry, these HITB rows should be related via the RSEG/HITB relation. In addition, the reconstructed coordinates should be stored into an RHIT table entry, which should also be related to the RSEG entry. Relations should be booked such that the first hit retrieved using the Arte relation tools corresponds to the lowest-z point rseg->zf etc. Since the orderings of booking and retrieving of relations in Arte are reversed, this means that the highest-z hits have to be related first.
Note: changes in the relation ordering can still occur when
tables are read in from file. This is not relevant for reconstruction as
long as it starts from the HITB/HITC tables. Introduction of an intrinsic
sorting procedure in Arte is planned.
| x | y | tx | ty | Q/p | |
| x | 0 | 1 | 3 | 6 | 10 |
| y | 2 | 4 | 7 | 11 | |
| tx | 5 | 8 | 12 | ||
| ty | 9 | 13 | |||
| Q/p | 14 |
cov(x,tx) =
frseg_cvf(4,rs) in Fortran, but
rs->cvf[3]
in C/C++
The meaning of the bits is defined in the structure Rsegc (here a snapshot, look at $HB/$HBVERS/inc/arte/RSEG_cmp.hh for actual version):
- the least significant bits give the contribution of the logical detector parts
- the most significant bit indicates if the segment has been killed (=flagged as invalid)
- the other most significant bits give the contributing hardware types (corresponding to gede->cmp)
struct Rsegc
{
enum Cmp {
vxd = 0x1, /* Vertex Detector */
patt = 0x2, /* Pattern Tracker*/
magt = 0x4, /* Magnet Tracker*/
muon = 0x8, /* Muon Detector*/
ecal = 0x10, /* Ecal*/
tar = 0x20, /* Target Constraint*/
trit = 0x40, /* Trigger Tracker, betw RICH and ECAL */
bit7 = 0x80, /* not assigned yet =first bit is bit0,*/
bit8 = 0x100, /* not assigned yet =first bit is bit0,*/
bit9 = 0x200, /* not assigned yet =first bit is bit0,*/
bit10 = 0x400, /* not assigned yet =first bit is bit0,*/
bit11 = 0x800, /* not assigned yet =first bit is bit0,*/
bit12 = 0x1000, /* not assigned yet =first bit is bit0,*/
bit13 = 0x2000, /* not assigned yet =first bit is bit0,*/
bit14 = 0x4000, /* not assigned yet =first bit is bit0,*/
bit15 = 0x8000, /* not assigned yet =first bit is bit0,*/
bit16 = 0x10000, /* not assigned yet =first bit is bit0,*/
bit17 = 0x20000, /* not assigned yet =first bit is bit0,*/
bit18 = 0x40000, /* not assigned yet =first bit is bit0,*/
bit19 = 0x80000, /* not assigned yet =first bit is bit0,*/
bit20 = 0x100000, /* not assigned yet =first bit is bit0,*/
bit21 = 0x200000, /* not assigned yet =first bit is bit0,*/
bit22 = 0x400000, /* not assigned yet =first bit is bit0,*/
bit23 = 0x800000, /* not assigned yet =first bit is bit0,*/
bit24 = 0x1000000, /* not assigned yet =first bit is bit0,*/trd = 0x2000000, /* TRD straw device type*/
rich = 0x4000000, /* Cherenkov Counter device type*/
ptc = 0x8000000, /* HiPT Chamber device type*/
msg = 0x10000000, /* MSGC device type*/
wch = 0x20000000, /* honeycomb wire chamber device type*/
sil = 0x40000000, /* silicon strip device type*/
bitsign = 0x80000000 /* Kill bit, set if segment is deleted */
};
};
0: reconstructed charged track segment'
1: reconstructed momentum to main vertex'
2: reconstructed short decay'
3: reconstructed long decay'
4: conversion (from tracks)'
5: space point (no angular measurements)'
6: neutral particle (from ECAL)'
7: match segment'
8: charged particle direction (from RICH)'
9: track seed (eg from TC area)'
10: conversion direction (from RICH)'
If detector hits from the HITB table have been used to reconstruct a
RTRA entry, these HITB rows should be related via the RTRA/HITB relation.
In addition, the reconstructed coordinates should be stored into an RHIT
table entry, which should refer to the RTRA entry in the corresponding
attribute. Relations should be booked such that the first hit retrieved
using the Arte relation tools corresponds to the lowest-z point rtra->zf
etc. Since the orderings of booking and retrieving of relations in
Arte are reversed, this means that the highest-z hits have to be related
first.
D = specifier for kind of information, same meaning as rseg->fit.E = error flag from track or vertex fit