If you have reached this page using an external link or a bookmark remember to login.
Go to the home page
19 Sep 2000
Optimisation of CPU and Disk Space Usage
On machines with 64 bits data registers like the ones based on the
Alpha chip it pays to avoid using a Fortran INTEGER*2 and C short data
types. The Alpha chip issues LDx_U instructions and some bit masking instructions
to get at the data, rather than a single LDL instruction for the 32 bit
data type. Also data within structures (YBOS common blocks) should be aligned
to at least 64 bit boundaries. The considerations above facilitate a better
use of the CPU but penalise a lot the use of the available mass storage.
In fact, data occupy double the space that they would if stored in INTEGER*4
longwords. We should decide what is most critical for KLOE. For the Cosmic
Ray Stand and Test Beam 1994 the use of Alpha based and 64 bits HP machines
will be limited: data coming from the DAQ and RAW data banks will be stored
in INTEGER*2 words to save disk space.
Integer Conversions
It is also important to avoid divisions between integers and, in general,
integer to floating point conversions. Integer division is achieved by
converting the integer to a float and dividing and converting back to an
integer. Whenever possible, integers should be recoded to a floating point
data type to avoid the conversion. In fact the current Alpha CPU chip has
no direct connection between its floating point unit and its integer unit,
which means such conversions require a load/store operation and are thus
less efficient. Information will not be compressed when dealing with Element
Banks but real numbers are used where necessary.
Multidimensional Arrays
Multidimensional arrays should be stored following the FORTRAN 'natural'
order so that they can be traversed avoiding trashing the CPU's cache.
Columns in an array should be scanned first.
Bit Encoding
Few conventions need to be established for bit encoding. Bit encoding
of 32 bit words (longwords) shall be described according the VAX representation
of 32 bit integers. The lower half word is the less significant 16 bits
of an integer and the upper half word is the more significant 16 bits of
an integer. The least significant bit is called bit 0, while the most significant
bit is called bit 31. Since all data structures employ YBOS for their representation,
the interpretation of such bit encoded meanings is machine independent,
regardless of the precise internal machine representation of the integer.
Naming conventions
Banks should be named using the following rules:
Letter | Detector |
---|---|
A | Anti-coincidence |
C | Calorimeter |
D | Drift Chamber |
I | Inner (Vertex) chamber |
Q | Quadrupole Instrumentation |
T | Trigger |
Letter | Bank type |
---|---|
R | Raw |
E | Element |
S | Segment |
O | Object |
Backward compatibility
All YBOS banks shall be numbered starting with 1 and each bank is given
its own, independent version number. This version number is stored inside
the bank, thereby allowing that programs capable of decoding older as well
as newer banks may be written, without requiring any re-compilation(s)
in the older environment(s). Every time one changes the structure of a
KLOE bank by changing some values of parameters in the Include File and/or
introducing new parameters, one must also increment the parameter for the
version number.
CODING SUGGESTION for routines reading data from a specific bank: C C--Check if old version of bank structure: IF (IW(INDDAT+VRSDxx) .NE. VRSNxx) THEN CALL ERLOGR(Subnam,ERWARN,0,0, & "Bank structure not up to date; " & //"- bank (xxxx,n)") C--Correct the base index to the data C--if (size of KLOE header .ne. HDRSxx): IF (IW(INDDAT+HDRDxx) .NE. HDRSxx) THEN BASIND = INDDAT+IW(INDDAT+HDRDxx)-HDRSxx ELSE BASIND = INDDAT ENDIF C C--Version number of bank is up to date: ELSE BASIND = INDDAT END IFTabular Banks
Parameters and Documentation
Banks should be described by mean of include files available to FORTRAN
programs and by Latex documentation files to be put in KLOE$DOC. In each
bank include files parameters which give the displacement of the various
words in the bank from the main YBOS INDDAT pointer are given. These parameters
must be named following the convention that the first three letters of
their names MUST be the same as the bank name.
Bank Aliases
At the Segment level, different physics algorithms produce banks having
the same internal structure but different contents. Because users may want
to save the results of several algorithms in the same output file, the
banks MUST differ in the name. The concept of a bank alias has been introduced
in KLOE through the usage of bank names parameters. In the include file
describing the bank different parameters, each referring to a different
physics algorithm, may define bank names for the segment banks. The name
of the parameter variable is meaningful and identifies the algorithm used
to create the bank in question. All names for the same bank MUST be defined
in the same include file. It is the responsibility of each detector group
leader to ensure no collisions among bank names. The naming convention
rules for a bank MUST be respected also in this case.
Link Mechanisms
Links can be established between banks. This should be done using the
YBOS bank name and number or via internal bank offsets. Work link banks
(obtained by calls to BLINK) are only temporary and have the life of a
program.
LRID - Logical
Record IDentifier Bank
The LRID Bank is the first Bank in any logical record (Run or Event)
and is the bank through which ANALYSIS_CONTROL recognises the Record Type.
It has the following Bank Header Characteristics:
Bank name | "LRID" |
Bank number | 1 |
Bank Data Length | 8 |
Bank Type | BNKTI4 (Integer*4) |
The Bank contains the following information:
Displacement (I*4) | Word type | Description |
---|---|---|
0 | I*4 | Run Number |
1 | I*4 | Run Type |
2 | I*4 | Record No. |
3 | I*4 | Record No. of this type |
4 | I*4 | Record Type |
5 | I*4 | Creating Process ID |
6 | I*4 | Creation Date |
7 | I*4 | Creation Time |
Bits 00-11 | Run Type |
Bits 12-15 | Run Modifier |
Bits 16-19 | Spare |
Bits 20-23 | Spare |
Bits 24-31 | Experiment type |
For KLOE the following Experiment and Run Types have been defined:
Experiment Type | |
---|---|
0 | KLOE Physics |
1 | Cosmic Ray Test Stand |
2 | Offline Simulation |
3 | Test beam |
Run Type | |
---|---|
0 | Undefined |
1 | Physics |
2 | Cosmic Ray |
3 | Calibration |
The include file K$INC:RUNTYP.INC contains parameters with the definitions above.
Bits 00-15 | Record Type |
Bits 16-31 | Spare |
The possible record types for the KLOE experiment are defined in the include files K$INC:RECTYP.INC. A C version of the same include file is available in the same area.
Bits 00-15 | Process ID |
Bits 16-23 | Release Number |
Bits 24-31 | Version Number |
Thus each process that generates an event record has assigned to it a unique Identifier, being in the range 0-65535. Additionally, each process is stamped by Version and Release Numbers in the range 0-255. The Version Number should be incremented for major changes to the software, whereas the Release Number should track such things as bug fixes etc. within a Version. In case of simulated event, the Process ID is replaced by the TCP IP address of the running machine. Only the 16 less significative bits of the TCP IP Address are stored. Moreover, the 16-18 bit range is used for the GEANFI version level, the 19-21 bit range for the GEANFI version release, the 22-23 bit range for the GEANFI version, and the 24-31 bit range for the YBOS version.
65536*Years + 256*Months + Days
65536*Hours + 256*Minutes + Seconds
EVCL - EVent CLassification
Bank
The EVCL Bank contains information from various sources that serve
to classify the event. This Bank is only present in Event Logical Records
and is used by Analysis_Control to classify events. The Bank has the following
Bank Header Characteristics:
Bank name | "EVCL" |
Bank number | 1 |
Bank Data Length | ? |
Bank Type | BNKTI4 (Integer*4) |
The structure of the EVCL bank is as follows:
offset
(in uints (INTEGER*4)) |
type | name | description | valid from version | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | uint (INTEGER*4) | trignum | Trigger number | |||||||||||||||||||||||||||||||||||||||||||||||
1 | 2 x uint (2 x INTEGER*4) | trigw | Trigger Descriptor (used only by Monte Carlo) | |||||||||||||||||||||||||||||||||||||||||||||||
3 | uint (INTEGER*4) | farm_id | Farm identifier | |||||||||||||||||||||||||||||||||||||||||||||||
4 | uint (INTEGER*4) | version | EVCL version number | |||||||||||||||||||||||||||||||||||||||||||||||
5 | uint (INTEGER*4) | packed_currents | DAFNE currents
upper 16 bits is e+ current, lower 16 bits is e- current currents are in 100uA units |
0x80 | ||||||||||||||||||||||||||||||||||||||||||||||
6 | uint (INTEGER*4) | packed_luminosity | trgmon luminosity in 1026 units
-1 means unknown luminosity |
0x80 | ||||||||||||||||||||||||||||||||||||||||||||||
7 | 3 x uint (3 x INTEGER*4) | packed_DC_trips | Up to 9 DC trips (the lower 30 bits of each uint (3x10 bits))
Each 10 bits represent a HV channel. sector 0x3ff == empty field if the first sector == 0x3fe, more than 9 trips were detected For example:
|
0x80 | ||||||||||||||||||||||||||||||||||||||||||||||
10 | uint (INTEGER*4) | detector_status | Detector status and t3filter flags:
Detector status fields:
t3filter flags:
|
0x80 | ||||||||||||||||||||||||||||||||||||||||||||||
11 | uint (INTEGER*4) | environment_status | Environment status word
|
0x80 | ||||||||||||||||||||||||||||||||||||||||||||||
12 | 2 x uint (2 x xINTEGER*4) | mc | Monte Carlo specific data |
Beginning from GEANFI version 1.05_4, the last two words of the bank (13 and 14 in the list above), are used by the Montecarlo to indicate which kind of event has been generated and the particles produced at the main vertex or, only in case of phi decays, the secondaries produced by kaons, rho, eta, f0 outcoming from the main vertex.
Word Displacement | Description |
---|---|
13 | pile_up*1000+gen_type*100+phi_chan |
14 | decay_1*10000+decay_2 |
Pile_up = 1 means that some extra-particle has been generated together with the main chain, gen_type indicates which kind of event has been generated (1= phi decay, 2=bhabha event, 3= cosmic muons, 4= machine background, 5= mu mu photon), phi_decay is the phi decay channel (0= no phi decay, 1=charged kaons, 2= neutral kaons, 3= rho pai, 4= pai+ pai- pai0, 5=eta photon, 6=pai0 photon, 7=f0 photon - positive interference with the background, 8=f0 photon - negative interference, 9= pai0 pai0 photon, 10=pai+ pai- photon). The second word (# 14 above) contains decay_1 and decay_2 which refer to the decay products of the particles produced by the phi. Decay_1 and decay_2 are coded as itype1+itype2*10+itype3*100, where itype1,2,3 are the GEANT codes for the particles, ordered in the ascending way.
The BRIN bank contains part of the data that describes the run. Only data available at run start are present.
The BRIN bank can be located only in the begin of run logical record (type 2); in any other logical record should be considered as a corrupon of the data.
The structure of the BRIN bank is as follows:
offset
(in uints (INTEGER*4)) |
type | name | description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | float (REAL*4) | DC_HV_BIG | Nominal value of DC HV for big cells | ||||||||||
1 | float (REAL*4) | DC_HV_SMALL | Nominal value of DC HV for small cells | ||||||||||
2 | float (REAL*4) | DC_LV_BIG | Nominal value of DC LV treshold for big cells | ||||||||||
3 | float (REAL*4) | DC_LV_SMALL | Nominal value of DC LV treshold for small cells | ||||||||||
4 | float (REAL*4) | DC_deadtime_BIG | Nominal value of DC LV trigger dead time for big cells | ||||||||||
5 | float (REAL*4) | DC_deadtime_BIG | Nominal value of DC LV trigger dead time for small cells | ||||||||||
6 | float (REAL*4) | DC_width_BIG | Nominal value of DC LV trigger width for big cells | ||||||||||
7 | float (REAL*4) | DC_width_SMALL | Nominal value of DC LV trigger width for small cells | ||||||||||
8 | float (REAL*4) | EMC_LV | Nominal value of EMC LV treshold | ||||||||||
9 | float (REAL*4) | atm_pressure | Atmoshperic pressure | ||||||||||
10 | float (REAL*4) | DC_pressure1 | DC pressure, side 1 | ||||||||||
11 | float (REAL*4) | DC_pressure2 | DC pressure, side 2 | ||||||||||
12 | float (REAL*4) | temperature | DC gas temperature | ||||||||||
13 | float (REAL*4) | flow | DC gas flow | ||||||||||
14 | float (REAL*4) | iso_perc | Percentage of IsoButan in the DC gas mixture | ||||||||||
15 | float (REAL*4) | oxygen | ppm of Oxygen in the DC gas mixture | ||||||||||
16 | float (REAL*4) | water | ppm of water in the DC gas mixture | ||||||||||
17 | float (REAL*4) | magnet_current | Current inside the KLOE magnet | ||||||||||
18 | float (REAL*4) | vacuum | Vacuum inside the KLOE beam pipe | ||||||||||
19 | float (REAL*4) | Ip | DAFNE positron current | ||||||||||
20 | float (REAL*4) | Im | DAFNE electron current | ||||||||||
21 | 11 x float
(11 x REAL*4) |
reserved | Reserved for future used, set to 0.0 | ||||||||||
32 | 4 x uint
(4 x INTEGER*4) |
bunch_p | DAFNE bunch pattern of the positron beam | ||||||||||
36 | 4 x uint
(4 x INTEGER*4) |
bunch_e | DAFNE bunch pattern of the electron beam | ||||||||||
40 | uint (INTEGER*4) | fill_nr | DAFNE fill number (valid if version>=1) | ||||||||||
41 | uint (INTEGER*4) | version | BRIN version | ||||||||||
42 | uint (INTEGER*4) | RAW prescale | Prescale factor at farm recorder level
0 or 1 - no prescale >1 - prescale factor |
||||||||||
43 | 21 x uint
(21 x INTEGER*4) |
reserved | Reserved for future used, set to 0 | ||||||||||
64 | uint (INTEGER*4) | nr_crates | Number of DAQ crates | ||||||||||
65 | nr_crates x uint
(nr_crates x INTEGER*4) |
packed_DAQ_temp | Array of packed DAQ temperatures.
The format is:
|
||||||||||
65 + nr_crates
(valid if version>=1) |
uint (INTEGER*4) | nr_DC_bads | Number of bad DC channels | ||||||||||
66 + nr_crates
(valid if version>=1) |
nr_DC_bads x uint
(nr_DC_bads x INTEGER*4) |
packed_DC_chan_bads | Array of packed DC channels.
The format is:
|
||||||||||
66 + nr_crates + nr_DC_bads
(valid if version>=1) |
uint (INTEGER*4) | nr_EMC_bads | Number of bad EMC channels | ||||||||||
67 + nr_crates + nr_DC_bads
(valid if version>=1) |
nr_EMC_bads x uint
(nr_EMC_bads x INTEGER*4) |
packed_EMC_chan_bads | Array of packed EMC channels.
The format is:
|
||||||||||
67 + nr_crates + nr_DC_bads + nr_EMC_bads
(valid if version>=1) |
uint (INTEGER*4) | nr_DC_hots | Number of hot DC channels not used by the trigger | ||||||||||
68 + nr_crates + nr_DC_bads + nr_EMC_bads
(valid if version>=1) |
nr_DC_hots x uint
(nr_DC_hots x INTEGER*4) |
packed_DC_chan_hots | Array of packed DC channels.
See packed_DC_chan_bads for the format. |
The Monte Carlo original information can be stored together with the reconstruction banks to evaluate performances and efficiencies of different algorithms.
At present three banks, the PART, the MATE, and the TMED banks are saved in YBOS format. These banks contain the same information given by the corresponding GEANT banks. The PART bank stores all parameters used in the Monte Carlo simulation to define and to track the different particles. The MATE bank contains the list of materials, elements and molecules, that are present in the different sections of the KLOE apparatus. The TMED bank describes further characteristics of the different media, such as the presence and the kind of the magnetic field, used by the particle-tracking procedure to follow each particle in the different detector parts. In the next future a VOLU bank will complete the list of banks written by the Monte Carlo at the initialisation time. It will follow the format of the analogous GEANT bank and it will allow to keep track of the changes introduced by the user via data-cards in the detector design. This bank will be filled only when some part of the detector is modified by the user and it will not contain the information stored in the KLOE database.
We propose to store the banks concerning the kinematics and the hits of the events, together with the HEAD bank containing special Monte Carlo keys related to each event, such as the random seeds used to generate the event, and their relative weights coming from the procedure handling the effect of the Q.M. interference on the decay times of the neutral kaons in the $\pi^{+}\pi^{-}\pi^{0}\pi^{0}$ final state. For each Monte Carlo run, at the end of the generation procedure one further bank is created, namely the RUNG bank. This bank, containing the solar time related to the last event and the last random seeds, allows to compute the total time employed to generate the events and to start a new run following a correct sequence of random-seed extractions.
YBOS Bank header: ----------------- Bank Name: PART Bank Number: Particle number Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------ offset word type description ------------------------------------------------------------------ PARNUM I*4 Particle number identifier PARNAM I*4 Particle name ... PARNAM+4 I*4 Particle name PARTRT R*4 Tracking type PARMAS R*4 Particle mass PARCHR R*4 Particle charge PARLTI R*4 Particle lifetime PARBRT R*4 Partial branching ratio ..... PARBRT+5 R*4 Partial branching ratio PARDMO R*4 Partial decay mode (daughters: coded) ..... PARDMO+5 R*4 Partial decay mode (daughters: coded) ------------------------------------------------------------------MATE -
YBOS Bank header: ----------------- Bank Name: MATE Bank Number: Material number Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------ offset word type description ------------------------------------------------------------------ MATNUM I*4 Material number identifier MATNAM I*4 Material name ... MATNAM+4 I*4 Material name MATATN R*4 Atomic number MATMAS R*4 Mass number MATDEN R*4 Density MATRLE R*4 Radiation Length MATABL R*4 Absorb. Length ------------------------------------------------------------------TMED -
YBOS Bank header: ----------------- Bank Name: TMED Bank Number: Tracking medium number Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------ offset word type description ------------------------------------------------------------------ TMENUM I*4 Tracking medium number identifier TMENAM I*4 Material name ... TMENAM+4 I*4 Material name TMEMAT R*4 Pointer to material bank TMESTF R*4 To flag sensitive tracking media TMEMFI R*4 Kind of magnetic field TMEMFM R*4 Max magnetic field TMEMAA R*4 Max angle due to magnetic field in one step TMEMAS R*4 Max step TMEMAE R*4 Max energy loss/step TMEEPS R*4 Boundary crossing precision TMEMIS R*4 Min step ------------------------------------------------------------------HEAD - Event Header bank
YBOS Bank header: ----------------- Bank Name: HEAD Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------ offset word type description ------------------------------------------------------------------ HEARUN I*4 Run number HEAEVT I*4 Event number HEARND I*4 Random number(1) HEARND+1 I*4 Random number(2) HEAQMI R*4 Q.M. weight (interference) HEAKIN I*4 Entries in KINE bank HEAVER I*4 Entries in VERT bank HEAUSE I*4 User word ... HEAUSE+2 I*4 User word ------------------------------------------------------------------The kinematic banks have the same contents of the actual KINE and VERT bank from GEANT and all the existing software can be used to retrieve this information. The links between KINE and VERT is automatically done using GUNPAK-like software, the link between the element banks and KINE is provided by banks for each sub-detector (DTKA for drift chamber and CEKA for calorimeter).
We create one HITS bank for each subdetector, containing the information on the true hit values.
The link mechanism between HITS and the KINE bank is done by saving the particle number as the second integer word following the bank header section (see below).
KINE -
There are as many KINE banks as tracks in the event; the number of
the KINE bank is the same as the track number given by GEANT. Each bank
contains the following information~:
YBOS Bank header: ----------------- Bank Name: KINE Bank Number: Track number Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------ offset word type description ------------------------------------------------------------------ KINPPX R*4 Particle momentum along x axis. KINPPY R*4 Particle momentum along y axis. KINPPZ R*4 Particle momentum along z axis. KINPEN R*4 Energy of the particle. KINPTY R*4 Particle type. KINVXO R*4 Vertex origin number. KINNVX R*4 Number of produced vertices (NVTX) ------------------------------------------------------------------ KINVLS R*4 First offset to vertices number list .... ....User words could be stored at the end of the vertices list, for them is not possible to define offsets as parameters because the vertices list can be different for each track. A track dependent offset can be built like this:
KINVLS+NVTX
that gives the number of user words, NUSW the remaining words in the bank are the user words obtained using the offsets:
KINVLS+NVTX+I (I=1,NUSW)
VERT -
There are as many VERT banks as vertices in the event; the number of
the VERT bank is the same as the vertex number given by GEANT. Each bank
contains the following information:
YBOS Bank header: ----------------- Bank Name: VERT Bank Number: Vertex number Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- VERXCO R*4 X coordinate of the vertex. VERYCO R*4 Y coordinate of the vertex. VERZCO R*4 Z coordinate of the vertex. VERTOF R*4 Vertex time of flight. VERTNO R*4 Beam track number origin of the vertex. VERTAR R*4 Target track number origin of the vertex. VERNTR R*4 Number of tracks generated at vertex. ------------------------------------------------------------------- VERTLS R*4 First offset to tracks number list. .... ....As for the KINE bank, user words could be stored at the end of the bank and retrieved with the same mechanism.
HITS -
There is one HITS bank per detector. The banks, described below, are
DHIT, for the drift chamber, VHIT, for the vertex chamber, CHIT, for the
calorimeter, AHIT, for the anti-coincidence detectors, QIHI, for the instrumentation
of the quadrupoles. The quadrupole itself are treated as "detectors" and
the related information are stored in the QHIT bank. For the calorimeter,
besides the CHIT bank described below, a special bank has been created
to store the impact-point and the conversion-point of the photons onto
the calorimeter. This additional bank, called CFHI, has been thought to
study the algorithms used to reconstruct, for example, the apex of the
showers.
YBOS Bank header: ----------------- Bank Name: DHIT Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- DHIHDS I*4 Header length (words) DHIVRN I*4 Version number DHINRO I*4 Number of hits DHINCO I*4 Number of elements/hit ------------------------------------------------------------------- DHIPTY I*4 Particle type DHITRA I*4 Pointer to KINE bank DHIADR I*4 Cell address: wire and plane (packed: 2**9*plane+wire) DHIXCO R*4 X DHIYCO R*4 Y DHIZCO R*4 Z DHIPPX R*4 Px DHIPPY R*4 Py DHIPPZ R*4 Pz DHITOF R*4 Time DHIELO R*4 Energy loss inside the cell DHILEN R*4 Track length inside the cell DHITIM R*4 Drift time (ns) DHIDIS R*4 Distance from the wire DHIFLA I*4 packed flag (10*number of times the particle crosses chamber walls + number of crossed wires) -------------------------------------------------------------------PLEASE NOTE: The "plane" part of the cell address word (at offset DHIADR) is produced in the GEANFI convention in which sense layer n.1 is the innermost. But in the reconstruction program for charged tracks this number is changed to the ARGUS convention in which layer n.1 is the outermost.
YBOS Bank header: ----------------- Bank Name: VHIT Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- VHIHDS I*4 Header length (words) VHIVRN I*4 Version number VHINRO I*4 Number of hits VHINCO I*4 Number of elements/hit ------------------------------------------------------------------- VHIPTY I*4 Particle type VHITRA I*4 Pointer to KINE bank VHIADR I*4 Tube number VHIXEN R*4 X - entrance VHIYEN R*4 Y - entrance VHIZEN R*4 Z - entrance VHIXEX R*4 X - exit VHIYEX R*4 Y - exit VHIZEX R*4 Z - exit VHIPMO R*4 Particle momentum VHITOF R*4 Time VHIELO R*4 Energy loss inside the tube VHITXC R*4 X-position of the tube center VHITYC R*4 Y-position of the tube center -------------------------------------------------------------------CHIT - Calorimeter hits
YBOS Bank header: ----------------- Bank Name: CHIT Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- CHIHDS I*4 Header length (words) CHIVRN I*4 Version number CHINRO I*4 Number of hits CHINCO I*4 Number of elements/hit ------------------------------------------------------------------- CHIPTY I*4 Particle type CHITRA I*4 Pointer to KINE bank CHIADR I*4 Cell address : column,plane,wedge,cal. number (packed: see CELE bank) CHIXCO R*4 X (average) CHIYCO R*4 Y (average) CHIZCO R*4 Z (average) CHITOF R*4 Time (average) CHIELO R*4 Energy loss inside the cell CHILEN R*4 Track length inside the cell -------------------------------------------------------------------CFHI - Photon impinging and conversion points
YBOS Bank header: ----------------- Bank Name: CFHI Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- CFHHDS I*4 Header length (words) CFHVRN I*4 Version number CFHNRO I*4 Number of impact points + conversion points CFHNCO I*4 Number of elements/impact point,conv.p. ------------------------------------------------------------------- CFHPTY I*4 Particle type CFHTRA I*4 Pointer to KINE bank CFHADR I*4 Cell address : (CHIT/CELE coding) +15th bit set in case of conversion point CFHXCO R*4 X CFHYCO R*4 Y CFHZCO R*4 Z CFHPPX R*4 Px CFHPPY R*4 Py CFHPPZ R*4 Pz CFHTOF R*4 Time CFHLEN R*4 Total track length of the impinging particle. -------------------------------------------------------------------AHIT - Anti-coincidence detector hits
YBOS Bank header: ----------------- Bank Name: AHIT Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- AHIHDS I*4 Header length (words) AHIVRN I*4 Version number AHINRO I*4 Number of hits AHINCO I*4 Number of elements/hit ------------------------------------------------------------------- AHIPTY I*4 Particle type AHITRA I*4 Pointer to KINE bank AHIADR I*4 Address : anti-coincidences numbered following z-axis AHIXCO R*4 X AHIYCO R*4 Y AHIZCO R*4 Z AHIPPX R*4 Px AHIPPY R*4 Py AHIPPZ R*4 Pz AHITOF R*4 Time AHIELO R*4 Energy loss AHILEN R*4 Track length inside the anticoinc. -------------------------------------------------------------------QHIT - Quadrupole hits
YBOS Bank header: ----------------- Bank Name: QHIT Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- QHIHDS I*4 Header length (words) QHIVRN I*4 Version number QHINRO I*4 Number of hits QHINCO I*4 Number of elements/hit ------------------------------------------------------------------- QHIPTY I*4 Particle type QHITRA I*4 Pointer to KINE bank QHIADR I*4 Address : quadrupole numbered following z-axis QHIXCO R*4 X impinging point QHIYCO R*4 Y impinging point QHIZCO R*4 Z impinging point QHIPPX R*4 Px impinging point QHIPPY R*4 Py impinging point QHIPPZ R*4 Pz impinging point QHITOF R*4 Time impinging point QHIELO R*4 Energy loss inside the quadrupole QHILEN R*4 Track length inside the quadrupole -------------------------------------------------------------------QIHI - Quadrupole instrumentation hits
YBOS Bank header: ----------------- Bank Name: QIHI Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------- offset word type description ------------------------------------------------------------------- QIHHDS I*4 Header length (words) QIHVRN I*4 Version number QIHNRO I*4 Number of hits QIHNCO I*4 Number of elements/hit ------------------------------------------------------------------- QIHPTY I*4 Particle type QIHTRA I*4 Pointer to KINE bank QIHADR I*4 Address : numbered following z-axis QIHXCO R*4 X impinging point QIHYCO R*4 Y impinging point QIHZCO R*4 Z impinging point QIHPPX R*4 Px impinging point QIHPPY R*4 Py impinging point QIHPPZ R*4 Pz impinging point QIHTOF R*4 Time impinging point QIHELO R*4 Energy loss inside the quadrupole instrumentation QIHLEN R*4 Track length inside the quadrupole instrumentation -------------------------------------------------------------------RUNG - Run Summary bank
YBOS Bank header: ----------------- Bank Name: RUNG Bank Number: 1 Bank Data Length: Bank Type: BNKTR4 ! R*4Each word in the bank can be located through the offsets shown below.
------------------------------------------------------------------ offset word type description ------------------------------------------------------------------ RUNGID I*4 Run number RUNVER R*4 Geant version RUNVER+1 R*4 Zebra version RUNRND I*4 Last random number(1) RUNRND+1 I*4 Last random number(2) RUNEVS I*4 Number of events ------------------------------------------------------------------
CADR - Calorimeter
ADc Raw data bank
The CADR bank stores the ADC values for the calorimeter. It has the
following YBOS header characteristics:
Bank Name: "CADR" Bank Number: 1 Bank Data Length: HDSIZE+NADC*NVAL (in 4 bytes words) Bank Type: BNKTI4 (integer*4)The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the displacement pointers shown below.
-------------------------------------------------------------------- Offset Word type Description -------------------------------------------------------------------- CADHDS I*4 Header size HDSIZE CADVRN I*4 Bank version number CADNRO I*4 Number of ADC values (NADC) \ might be CADNCO I*4 Number of values per ADC (NVAL) / packed -------------------------------------------------------------------- CADADR I*4 First Packed word of electronic address and ADC Pulse height --------------------------------------------------------------------Notes:
OFFVAL = IW(CADHDS) + IW(CADNCO)*(I-1) + CADADRCTDR - Calorimeter TDc Raw data bank
Bank Name: "CTDR" Bank Number: 1 Bank Data Length: HDSIZE+NTDC*NVAL (in 4 bytes words) Bank Type: BNKTI4 (integer*4)The Bank is then structured in a header block followed by a data block. Each word in the bank can be located through the displacement pointers shown below.
------------------------------------------------------------------ Offset Word type Description ------------------------------------------------------------------ CTDHDS I*4 Header size HDSIZE CTDVRN I*4 Bank version number CTDNRO I*4 Number of TDC values (NTDC) \ might be CTDNCO I*4 Number of values per TDC (NVAL) / packed ------------------------------------------------------------------ CTDADR I*4 First Packed word of electronic address and TDC value ------------------------------------------------------------------Notes:
OFFVAL = IW(CTDHDS) + IW(CTDNCO)*(I-1) + CTDADRCELE - Calorimeter ELEment bank
Bank Name: "CELE" Bank Number: 1 Bank Data Length: HDSIZE+NELE*NVAL (in 4 bytes words) Bank Type: MIXED (integer*4 + real4)The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset parameters shown below.
------------------------------------------------------------------- Offset Word type Description ------------------------------------------------------------------- CELHDS I*4 Header size HDSIZE CELVRN I*4 Bank version number CELCAL I*4 Calibration information CELNRO I*4 Number of elements (NELE) \ might be CELNCO I*4 Values per element (NVAL) / packed ------------------------------------------------------------------- HDSIZE+CELADR+(I-1)*NVAL I*4 Packed address \ HDSIZE+CELEA +(I-1)*NVAL R*4 Energy side A \ HDSIZE+CELEB +(I-1)*NVAL R*4 Energy side B - NELE Blocks HDSIZE+CELTA +(I-1)*NVAL R*4 Time side A / HDSIZE+CELTB +(I-1)*NVAL R*4 Time side B / -------------------------------------------------------------------Notes:
Bits range | information |
---|---|
00-07 | Pedestal version |
08-15 | Energy Threshold in multiples of 0.1 MeV |
16-19 | Flag for dead channel correction |
20-23 | Flag for energy calibration |
24-31 | Flag for time calibration |
Bits range | information |
---|---|
00-03 | Column number |
04-06 | Plane number |
07-12 | Wedge number |
13-14 | Calorimeter number |
15 | Spare |
CEKA - Calorimeter
Element into MC-KINE bank
The CEKA bank links the element bank CELE to the KINE Monte Carlo banks
by storing the addresses of the KINE tracks contributing to each element.
The address for the track is the KINE bank number.
It has the following YBOS header characteristics:
Bank Name: "CEKA" Bank Number: 1 Bank Data Length: HDSIZE+NELE*NVAL (in 4 bytes words) Bank Type: BNKTI4 (integer*4 )
------------------------------------------------------------------- Offset Word type Description ------------------------------------------------------------------- CEKHDS I*4 Header size HDSIZE CEKVRN I*4 Bank version number CEKNRO I*4 Number of elements (NELE) ------------------------------------------------------------------- CEKNTR I*4 Number of KINE tracks per element (NVAL) HDSIZE+CEKADR +(I-1)*NVAL I*4 Monte Carlo Kine Bank NumberITDR - Inner Chamber TDC raw bank
------------------------------------------------------------------ Offset Word type Description ------------------------------------------------------------------ ITDHDS I*2 Header size ICTRHS ITDVRN I*2 Bank version number ITDNRW I*2 Number of TDC values (NTDCIC) \ might be ITDNCL I*2 Number of values per TDC (ICTREL) / packed -------------------------------------------------------------------- Bank header: ------------ Bank Name: ITDR Bank Number: ? Next Bank: ? Bank Data Length: NTDCIC*ICTREL+ICTRHS Bank Type: BNKTI2 ! I*2 Bank structure: --------------- (the parameters that describe the bank are in the file ICTDCR.CIN) ---------------------------------------------------------------- displacement word type description ---------------------------------------------------------------- _ ICTRPO+ | ICTREL*(iblock-1)+1 I*2 TDC address | NTDCIC -| blocks | ICTRVA+ - ICTREL*(iblock-1)+1 I*2 TDC countwhere NTDCIC is the number of fired TDCs and ICTREL is the size of a block of information.
IADR - Inner Chamber
ADC raw bank
The IADR bank contains the ADC values of the Inner Chamber
----------------------------------------------------------------- Offset Word type Description ----------------------------------------------------------------- IADHDS I*2 Header size ICARHS IADVRN I*2 Bank version number IADZSF I*2 Zero suppression information IADNRW I*2 Number of ADC values (NADCIC) \ might be IADNCL I*2 Number of values per ADC (ICAREL) / packed ------------------------------------------------------------------Bank header: ------------ Bank Name: IADR Bank Number: ? Next Bank: ? Bank Data Length: NADCIC*ICAREL+ICARHS Bank Type: BNKTI2 ! I*2 Bank structure: --------------- (the parameters that describe the bank are in the file ICADCR.CIN) ---------------------------------------------------------------- displacement word type description ---------------------------------------------------------------- _ ICARPO+ | ICAREL*(iblock-1)+1 I*2 ADC address | NADCIC -| blocks | ICARVA+ - ICAREL*(iblock-1)+1 I*2 ADC count where NADCIC is the number of fired ADCs and ICAREL is the size of a block of information. The address of a TDC or of an ADC is packed as follows:
Bit range | Information |
---|---|
00-00 | Part number |
01-05 | Layer number |
06-10 | Tube number |
11-11 | Side number |
ITAE - Inner Chamber
TDC and ADC Element bank
The ITAE bank contains the TDC and ADC values for each side of a wire
of the Inner Chamber.
--------------------------------------------------------------- Offset Word type Description --------------------------------------------------------------- IELHDS I*2 Header size ICELHS IELVRN I*2 Bank version number IELCAL I*2 Calibration information IELNRW I*2 Number of elements (NTAEIC) \ might be IELNCL I*2 Number of values (ICTAEL) / packed -------------------------------------------------------------- Bank header: ------------ Bank Name: ITAE Bank Number: ? Next Bank: ? Bank Data Length: NTAEIC*ICTAEL+ICELHS Bank Type: BNKTI2 ! I*2 Bank structure: --------------- (the parameters that describe the bank are in the file ICTAEL.CIN) ---------------------------------------------------------------- displacement word type description ---------------------------------------------------------------- _ ICTAPO+ | ICTAEL*(iblock-1)+1 I*2 wire address | | | ICTAVA+ propagation time | ICTAEL*(iblock-1)+1 I*2 side A | | NTAEIC -| ICTAVB+ propagation time blocks | ICTAEL*(iblock-1)+1 I*2 side B(if we will use | TDCs on both sides) | | ICQAVA+ charge | ICTAEL*(iblock-1)+1 I*2 side A | | | ICQAVB+ charge - ICTAEL*(iblock-1)+1 I*2 side BICEL - Inner Chamber Element bank
Bank header: ------------ Bank Name: ICEL Bank Number: 1 Next Bank: 0 Bank Data Length: NELBIC*ICEBEL+1 ! NELBIC from the detector map Bank Type: Mixed Type Bank structure: --------------- (the pointers to move inside the bank will be described in ICEL.CIN) ---------------------------------------------------------------- displacement word type description ---------------------------------------------------------------- ICEBVN I*4 Bank Version Number - | ICEBPO+ | ICEBEL*(iblock-1)+1 I*4 Wire address | NELBIC ---| ICEBDT+ | ICEBEL*(iblock-1)+1 R*4 Drift time | | ICEBDD+ | ICEBEL*(iblock-1)+1 R*4 Drift Distance | | ICEBZC+ | ICEBEL*(iblock-1)+1 R*4 z coordinate -DTDR - Drift Chamber TDC raw bank
For debugging purposes, in a subset of all events, TDC values coming from DAQ will not be zero suppressed, and the zero suppression flag will indicate this case. We do not think it is necessary to add informations on the set of zero suppression constants, because it must be possible to retrieve them from the database via the run number. The same arguments apply also for ADC pedestal subtraction. The word containing the address for each sense wire and the TDC value is one 32 bit word packed as follows:
Bit range | Information |
---|---|
00-19 | Crate/slot/channel |
20-31 | TDC value |
YBOS Bank header: ----------------- Bank Name: DTDR Bank Number: 1 Bank Data Length: Bank Type: BNKTI4 ! I*4Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
--------------------------------------------------------------- offset word type description --------------------------------------------------------------- DTDHDS I*4 header size (HDSIZE) DTDVRN I*4 bank Version Number DTDNRO I*4 number of rows=number of fired TDC (NROW) DTDNCO I*4 number of data word/row (NCOL) DTDZES I*4 zero suppression flag --------------------------------------------------------------- DTDADR I*4 first packed word containing sense wire electronic address and TDC value .... ....The subsequent packed word values can be obtained using the offsets
OFFADR = HDSIZE+DTDADR+(I-1)*NCOL
DADR - Drift Chamber
ADC raw bank
The DADR bank contains the ADC values of the Drift Chamber The word
containing the address for each sense wire and the ADC value is one 32
bit word packed as follows:
Bit range | Information |
---|---|
00-19 | Crate/slot/channel |
20-31 | ADC value |
YBOS Bank header: ----------------- Bank Name: DADR Bank Number: 1 Bank Data Length: Bank Type: BNKTI2 ! I*4The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
--------------------------------------------------------------- offset word type description --------------------------------------------------------------- DADHDS I*4 header size (HDSIZE) DADVRN I*4 bank Version Number DADNRO I*4 number of rows=number of ADC fired (NROW) DADNCO I*4 number of data word/rows (NCOL) DADPES I*4 pedestal subtraction flag --------------------------------------------------------------- DADADR I*4 first packed word containing sense wire electronic address and ADC value .... ....The subsequent packed words values can be obtained using the offsets
OFFADR = HDSIZE+DADADR+(I-1)*NCOL
DTCE - Drift Chamber
Time and Charge element bank
The DTCE bank contains the time and the charge values of the Drift
Chamber obtained with calibration from the raw ADC and TDC banks.
For now, bank DTCE number 1 is directly output from GEANFI but in a future version (to insure homogeinity between treatment of real and MC data) will be made inside the reconstruction program from the banks DADR and DTDR, obtained in turn from online or MC.
The sign of the drift time pointed to by DTCTIM is (conventionally) connected to the way in which a track crosses a wire (see ARGUS NIM paper). Time smearing of 4-5 ns in GEANFI somewhat smears this connection close to the wire. Before using this time in inversion of the st relations, an absolute value must be taken.
The drift times contained in DTCE will have to be modified later, to take into account additional delays due to signal propagation along the wires: since this can only be done when the Z coordinate of a hit is known, it is expected to have 2 banks DTCE: the original one and a "running" one, which will be updated during tracking.
The data calibration algorithm (see Fig.1 ) could take care of the following:
The address for each sense wire is packed as follows:
Bit range | Information |
---|---|
00-08 | Sense wire numberl |
20-31 | Layer number |
YBOS Bank header: ----------------- Bank Name: DTCE Bank Number: 1, 2 (see text) Bank Data Length: Bank Type: (I4,2R4)The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
--------------------------------------------------------------- offset word type description --------------------------------------------------------------- DTCHDS I*4 header size DTCVRN I*4 bank Version Number DTCNRO I*4 number of rows (NROW) (DC hits - no hit duplicates) DTCNCO I*4 number of data words/row (NCOL) --------------------------------------------------------------- DTCADR I*4 first sense wire address DTCTIM R*4 first time value DTCCHA R*4 first charge value .... ....The subsequent values can be obtained using the offsets
OFFADR = DTCHDS+DTCADR+(I-1)*NCOL OFFTIM = DTCHDS+DTCTIM+(I-1)*NCOL OFFCHA = DTCHDS+DTCCHA+(I-1)*NCOLwhere I runs from 1 to NROW.
PLEASE NOTE: The "plane" part of the sense wire address word (at offset DTCADR) is produced in the GEANFI convention in which sense layer n.1 is the innermost. But in the reconstruction program for charged tracks this number is changed to the ARGUS convention in which layer n.1 is the outermost.
The order in which sense wire number and layer number appear is not defined, it will probably be closely related to the order in which the electronics is read-out.
DHRE - Drift Chamber
Hit Radius and associate error element bank
The DHRE bank contains the values of the hit radius and relative error
obtained applying an average time to space relation. This bank is an input
to the pattern recognition module.
Exactly like the bank DTCE, DHRE can change during the pattern + track fit iteration, to correct the hit radius measurement once the track impact parameter and azimuth around the wire are known.
The argument made for DTCE concerning the database does not apply here: the whole set of constants (parameters of the time-space relations) will still be the same in the iteration; only, a different set of parameters will be chosen the second time around.
The track candidate number (t.c.n.) is assigned to the hit by the pattern recognition module. Its main purpose is to declare to possible iterations of the pattern recognition whether this hit is available (t.c.n.<=0) or not (t.c.n.>0). A negative t.c.n. means that the linked DPRS bank contains only hits in one view. Banks of this kind are altogether ignored by the track fit and their points are considered available to anybody.
The absolute values of drift distances in DHRRAD come either from inversion of s-t relations (starting from absolute values of times in the bank DTCE) or from gaussian smearing of the true drift distance, according to the value (resp. TRUE or FALSE:the default) of the flag RAW_ST in ATFTLK.
The sign of the drift distances instead has no connection with RAW_ST: At bank creation, if inversion of the s-t relation has been requested, it is positive. If not, it comes from some smearing of the true (signed) drift distance in DHIT.
Later on, it is reassigned either by the Pattern Recognition, if this is run, or recovered from the MC bank DHIT in the pattern bypass procedure.
YBOS Bank header: ----------------- Bank Name: DHRE Bank Number: 1 and 2 (see text) Bank Data Length: Bank Type: mixed: (I4,XXX(2I4,2R4,I4))The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
-------------------------------------------------------------- offset word type description -------------------------------------------------------------- DHRHDS I*4 header size DHRVRN I*4 bank Version Number DHRNRO I*4 number of rows (DC hits - no hit duplicates) DHRNCO I*4 number of data words/row (NCOL) -------------------------------------------------------------- DHRSLR I*4 first hit sense layer, ARGUS convention DHRWNR I*4 first hit wire number in its layer DHRRAD R*4 first hit radius DHRERR R*4 first radius error DHRTRN I*4 track candidate number (link) .... ....PLEASE NOTE: This bank is produced in the drift chamber reconstruction module, and the "plane" part of the sense wire address word (at offset DHRSLR) follows the ARGUS convention in which layer n.1 is the outermost.
DHPT - Drift Chamber
Pointers (internal use)
This bank is not written out and is internally used to tell DFNEWW
how to look for additional points. It is described here for documentation
purposes.
The bank starts with a 2-word header containing the header size (2) and the bank version (1).
YBOS Bank header: ----------------- Bank Name: DHPT Bank Number: 1 Bank Data Length: 2+2*NLAYERS+2*NHITS Bank Type: BNKTI4
-------------------------------------------------------------- offset word type description -------------------------------------------------------------- DHPHDS I*4 header size DHPVRN I*4 bank Version Number -------------------------------------------------------------- DHPPT1 I*4 58 pointers to first hit of every layer DHPPTL I*4 58 pointers to last hit of every layer DHPAPT I*4 NHITS A-pointers in DHRE DHPATP+NHITS I*4 NHITS B-pointers in DHREAfter a section, described later, of 116 pointers (2 for every layer of the KLOE drift chamber), comes a section of NHITS A-pointers into DHRE: these tell the order in which the DHRE bank has to be scanned if one wants to pick up points according to the rule: increasing $\phi$, then increasing layer number (in the ARGUS convention, not in the GEANFI one.)
Then comes a section of B-pointers, telling where a certain hit in the DHRE ordering would be in the ARGUS one. This section, together with the previous one, allows to quickly find in DHRE the hit immediately after or before another one (in the ARGUS sense). In other words, like this:
Position in DHRE phi-angle A-pointers B-pointers 1 50 2 6 2 0 4 1 3 60 5 7 4 10 7 2 5 20 6 3 6 40 1 5 7 30 3 4Here, point n.5 in DHRE (at 20 degrees), is n.3 in the ARGUS convention (4th column). The points around it are n.2 and n.4. The addresses in DHRE will then be 4 and 7 (2nd and 4th address in the 3rd column). In positions 4 and 7 of DHRE we find 10 and 30 degrees.
The 116 pointers in between are 58 pairs (first,last) telling where is the beginning and the end of every layer in the ARGUS ordering, starting from DHPAPT. This bank is made in MAKEDHPT (module DCONVR) and used in DFNEWW (module ATFMOD).
DHCL - Drift Chamber
Clusters
This bank contains infomation obtained by a process of clustering adjacent
hits in a same layer of the DC. This may be useful for several kinds of
algorythms.
The bank starts with a 4-word header containing the header size (4), the bank version (1), the number of clusters in the DC and the number of informations stored for each cluster(3). The bank is created with room for a number of clusters equal to the number of DC hits. The number of clusters will generally be much less. I have not been able to find a way of contracting YBOS banks, so DHCL will be filled only up to the total number of clusters, stored at offset DHCNRO.
YBOS Bank header: ----------------- Bank Name: DHCL Bank Number: 1 Bank Data Length: 4+2*NLAYERS+2*NHITS Bank Type: 120I4,XXXXX(R4,2I4)
-------------------------------------------------------------- offset word type description -------------------------------------------------------------- DHCHDS I*4 header size DHCVRN I*4 bank Version Number DHCNRO I*4 number of rows (clusters in the DC) DHCNCO I*4 number of columns (=3) -------------------------------------------------------------- DHCPT1 I*4 58 pointers to first cluster of every layer DHCPTL I*4 58 pointers to last cluster of every layer DHCDTA I*4 pointer to start of cluster data -------------------------------------------------------------- ... DHCAVF R*4 Average phi for this cluster DHCNCL I*4 Number of wires hit in this cluster DHCLNK I*4 Link in DTCE/DHRE of the first wire in the cluster ...Cluster average angles are normalized between [0,2PI). Note that the first wire in the cluster is usually also the one with the smallest phi. For the clusters spanning the x-axis that is not true: however, the first wire is always the first encountered when scanning the cluster in counterclockwise direction.
The 116 pointers in between are 58 pairs (first,last) telling where is the beginning and the end of every layer in the second part of the bank, after DHCDTA. This bank is made in MAKEDHCL (module DCONVR).
DTKA - Drift Chamber
hit pointers to the KINE bank
The DTKA bank (see Fig.2 ) only
exists for Monte Carlo data. After the header, for each hit in DTCE/DHRE
one (variable-length) list of the indices of all KINE tracks connected
to that hit is stored: the first word of a N+1-long list (N.GE.1) is the
number of linked tracks, the following N words are the indices themselves.
YBOS Bank header: ----------------- Bank Name: DTKA Bank Number: 1 Bank Data Length: Bank Type: BNKTI4The Bank is structured in a header block followed by a data block.
-------------------------------------------------------------- offset word type description -------------------------------------------------------------- DTKHDS I*4 header size DTKVRN I*4 bank Version Number DTKNRO I*4 number of rows -------------------------------------------------------------- DTKNTR I*4 Number of KINE tracks linked to hit n.1 DTKADR I*4 First track index ... I*4 Second = = ... I*4 ....DTHA bank - Drift Chamber hit pointers to the DHIT bank
YBOS Bank header: ----------------- Bank Name: DTHA Bank Number: 1 Bank Data Length: Bank Type: BNKTI4The Bank is structured in a header block followed by a data block.
-------------------------------------------------------------- offset word type description -------------------------------------------------------------- DTHHDS I*4 header size DTHVRN I*4 bank Version Number DTHNRO I*4 number of rows (DC hits - no hit duplicates) -------------------------------------------------------------- DTHADR I*4 Index (1-->n.of DC hits) into DHIT .... ....QCAE - QCAL ELEment bank
Bank Name: "QCAE" Bank Number: 1 Bank Data Length: HDSIZE+NELE*NVAL (in 4 bytes words) Bank Type: MIXED (integer*4 + real*4)The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset parameters shown below.
------------------------------------------------------------------- Offset Word type Description ------------------------------------------------------------------- QCAHDS I*4 Header size HDSIZE QCAVRN I*4 Bank version number QCANRO I*4 Number of elements (NELE) \ might be QCANCO I*4 Values per element (NVAL) / packed ------------------------------------------------------------------- HDSIZE+QCAADR+(I-1)*NVAL I*4 Packed address \ HDSIZE+QCAADC +(I-1)*NVAL R*4 Energy \ - NELE Blocks HDSIZE+QCATDC +(I-1)*NVAL R*4 Time / -------------------------------------------------------------------
Bits range | information |
---|---|
00-07 | Wedge number |
08-11 | Calorimeter number |
12-15 | Spare |
QCKA - QCAL Element
into MC-KINE bank
The QCKA bank links the element bank QCAE to the KINE Monte Carlo banks
by storing the addresses of the KINE tracks contributing to each element.
The address for the track is the KINE bank number.
It has the following YBOS header characteristics:
Bank Name: "QCKA" Bank Number: 1 Bank Data Length: HDSIZE+NELE*NVAL (in 4 bytes words) Bank Type: BNKTI4 (integer*4 )
------------------------------------------------------------------- Offset Word type Description ------------------------------------------------------------------- QCKHDS I*4 Header size HDSIZE QCKVRN I*4 Bank version number QCKNRO I*4 Number of elements (NELE) ------------------------------------------------------------------- QCKNTR I*4 Number of KINE tracks per element (NVAL) HDSIZE+QCKADR +(I-1)*NVAL I*4 Monte Carlo Kine Bank Number
Segment banks - processed data from the Calorimeters
In this section we describe the "segment" level of the data structure
for the e.m. calorimeter. All the information obtained by grouping together
more calorimeter elements to form the energy clusters belongs to this structure.
No attempt is done in using information coming from other detectors or
in assigning a particle identification.
A cluster is thought as the collection of energy deposition in the calorimeter cells which are related by spatial contiguity and time coincidence. Such a correspondence can be found with different criteria and we think that a simple pattern of adjacency of the fired cells in the r-phi plane can be used as a starting point in the clustering procedure. The result of such a pre-clustering stage will be stored separately from the final cluster especially if more than one attempt will be done in the merging of the energy clumps and in the determination of the final energy, position and direction of each particle.
From a technical point of view, various solutions for the banks' structure have been discussed and the final choice has been taken together with the other detector experts to construct a similar and integrated data structure for the whole KLOE apparatus. Essentially, we have decided to store the cluster number into the bank number and to have two different banks for each cluster (or pre-cluster). One contains the physical information of the cluster while the other one links backward the cluster to the element bank CELE.
In the following we present the details of such banks both for the pre-clustering and the merging stage.
CPPS-CPLS
bank - Calorimeter pre-clustering data banks
As already mentioned, two different banks can be envisaged for each
cluster, the CPPS (Pre-clustering parameter segment) and the CPLS (Pre-clustering
list segment) bank.
The CPPS bank contains a fixed number of real words that are the cluster parameters. The CPLS bank consists in the list of cells belonging to the cluster. This is achieved technically by storing the IBLOCK pointer in the CELE bank.
CPPS Bank
The Bank has the following YBOS Header Characteristics:
Bank Name: "CPPS" Bank Number: pre-cluster number Bank Data Length: CPPHS+1+CPPBS ! in 4 bytes words Bank Type: BNKT.. ! Real*4The Bank is then structured in a Version Block followed by a Data Block. Each Word in the bank can be located through the displacement pointers shown below.
Displacement Word Type Word Description ------------------------------------------------------------------ Version Header Block (size = CPPHS) ------------------------------------------------------------------ ?CPPHL I*4 Header Block Length (=CPPHS) CPPVN I*4 Version Number CPPFL I*4 Adjacency Flag ?CPPDL I*4 Data Block Length (=CPPBS) ------------------------------------------------------------------------- Data Block ------------------------------------------------------------------------- CPPHS+CPPENE R*4 EPCL = Pre-cluster Energy CPPHS+CPPPOS+ (0:2) R*4 XPCL,YPCL,ZPCL = Pre-cluster centroid CPPHS+CPPTIM R*4 TPCL = time of the Pre-cluster centroid CPPHS+CPPTSI+ (0:3 ) R*4 T1PCL,ST1PCL, T2PCL,ST2PCL = one-side time and RMS of the Pre-cluster centroid CPPHS+CPPTFL I*4 TFLPCL = topological flagCPLS Bank
The Bank has the following YBOS Header Characteristics:
Bank Name: "CPLS" Bank Number: Pre-cluster number Bank Data Length: CPLHS+1+NELEPC ! in 2 bytes words Bank Type: BNKTI2 ! I*2 Displacement Word Type Word Description -------------------------------------------------------------------- Version Header Block (size = CPLHS) -------------------------------------------------------------------- ?CPLHL I*2 Header Block Size (=CPLHS) CPLVN I*2 Version Number CPLDL I*2 Data Block size (=NELEPC) -------------------------------------------------------------------- Data Block -------------------------------------------------------------------- NELEPC blocks: CPLHS+CPLPO+ CPLBS*(Iblock-1) I*2 CPLPOI = pointer (iblock) to CELE bankCLPS-CLLS - Clustering data Banks
CLPS Bank
The Bank has the following YBOS Header Characteristics:
Bank Name: "CLPS" Bank Number: cluster number Bank Data Length: CLPHS+1+CLPBS ! in 4 bytes words Bank Type: BNKT.. ! Real*4The Bank is then structured in a Version Block followed by a Data Block. Each Word in the bank can be located through the displacement pointers shown below.
Displacement Word Type Word Description ----------------------------------------------------------------- Version Header Block (size = CLPHS) ----------------------------------------------------------------- ?CLPHL I*4 Header Block Size (=CLPHS) CLPVN I*4 Version Number ?CLPDL I*4 Data Block Size (=CLPBS) ----------------------------------------------------------------- Data Block ----------------------------------------------------------------- CLPHS+CLPENE R*4 ECL = cluster Energy CLPHS+CLPPOS+ (0:5) R*4 XCL,SXCL,YCL,SYCL,ZCL,SZCL = cluster centroid and RMS CLPHS+CLPTIM+ (0:1) R*4 TCL,STCL = time of the cluster and RMS CLPHS+CLPTAP+ (0:5) R*4 XACL,SXACL,YACL, SYACL,ZACL,SZACL = cluster apex and RMS CLPHS+CLPCOS+ (0:5) R*4 CX,SCX,CY, SCY,CZ,SCZ = direction cosines of the particle and RMS CLPHS+CLPEFL I*4 INEXF = Flag for fully/partially contained events.CLLS Bank
The bank fully reproduces the structure of the CPLS bank.
The Bank has the following YBOS Header Characteristics:
Bank Name: "CLLS" Bank Number: cluster number Bank Data Length: CLLHS+1+ NELECL ! in 2 bytes words Bank Type: BNKTI2 ! I*2The Bank is then structured in a Version Block followed by a Data Block. Each Word in the bank can be located through the displacement pointers shown below.
Displacement Word Type Word Description --------------------------------------------------------------- Version Header Block (size = CLLHS) --------------------------------------------------------------- ?CLLHL I*2 Header Block Size (=CLLHS) CLLVN I*2 Version Number CLLDL I*2 Data Block Size (=NELECL) --------------------------------------------------------------- Data Block --------------------------------------------------------------- NELECL blocks: CLLHS+CLLPO+ CLLBS*(iblock-1) I*2 CLPPOI = Pointer (iblock) to CELE bankThe locations beginning with a question mark are those filled by non-variable numbers: the presence of these words, as it has been discussed, can be convenient but it is not mandatory.
DPRS - Drift Chamber
track candidate banks from Pattern Recognition
The DPRS bank is an output of the pattern recognition module and an
input to the track fit module. It contains:
YBOS Bank header: ----------------- Bank Name: DPRS Bank Number: Track candidate number Bank Data Length: Bank Type: Mixed (6R4,2I4,R4,2I4,XXX(I4,R4))The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
-------------------------------------------------------------- offset word type description -------------------------------------------------------------- DPRHDS I*4 header size DPRVRN I*4 bank Version Number -------------------------------------------------------------- DPRXCO R*4 X coordinate of point of closest approach to the first hit (PCA). DPRYCO R*4 Y coordinate of PCA DPRZCO R*4 Z coordinate of PCA DPRXLS R*4 X coordinate of the last track candidate (t.c.) point DPRYLS R*4 Y coordinate of the last t.c. point DPRZLS R*4 Z coordinate of the last t.c. point DPRCUR R*4 track charge Q/Pt (GeV**-1) DPRPHI R*4 azimuth angle at PCA DPRCTT R*4 cot(theta) DPRPOS I*4 number of positive hits assigned to this track candidate DPRNEG I*4 number of negative hits assigned to this track candidate DPRQUA R*4 Quality flag DPRPOK I*4 pattern flag : = 1,2 (only +,- view), 3 (both views) DPRLRG I*4 innermost and outermost layers of t.c., packed in one word and signed negatively if layer direction of movement changes DPRPHF R*4 wire azimuth of the first t.c. hit DPRPHL R*4 wire azimuth of the last t.c. hit DPRCEN I*4 if =1 this candidate comes from the I.P. |DPRIWI I*4 wire number (+ or -) \ repeated |DPRWTR R*4 track length between | DPRPOS+DPRNEG times this wire and next one /DTFS - Drift Chamber track fit results bank
YBOS Bank header: ----------------- Bank Name: DTFS Bank Number: Track number Bank Data Length: Bank Type: MixedThe Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
--------------------------------------------------------------- offset word type description --------------------------------------------------------------- DTFHDS I*4 header size DTFVRN I*4 bank Version Number --------------------------------------------------------------- DTFCEN I*4 if =1 this fitted track comes from the I.P. DTFVMT I*4 index (not YB) of the vertex origin of this track DTFVDT I*4 index (not YB) of the vertex target of this track DTFJMT I*4 YB-index of the previous track in this chain DTFJDT I*4 YB-index of the next track in this chain DTFDMT I*4 YB-index of the track mother of this one DTFDDT I*4 YB-index of the track daughter to this one DTFREV I*4 if =1 this track has been probably fitted backwards DTFQFL I*4 Track fit quality flag DTFINH I*4 Initial number of hits from Pattern Rec.: 10000*pos.stereo hits + neg.stereo hits DTFNHF I*4 Packed number of hits after convergence: 10000*pos.stereo hits + neg.stereo hits DTFLNG R*4 track length DTFXCO R*4 X coordinate of PCA, hit n.1 DTFYCO R*4 Y coordinate of PCA = = DTFZCO R*4 Z coordinate of PCA = = DTFCUR R*4 Track charge Q/pt (GeV**-1) DTFCTT R*4 cot(theta) | of PCA, hit n.1 DTFPHI R*4 azimuth | = = DTFCVM** R*4 covariance matrix (15 words) DTFCHI R*4 chi**2 of the track fit DTFPCH R*4 chi**2 probability of the fit DTFXLP R*4 x- | coordinate of the PCA, last hit DTFYLP R*4 y- | = = DTFZLP R*4 z- | = = DTFCLP R*4 curvature | at DTFTLP R*4 cot(theta) | the last DTFPLP R*4 azimuth | point DTFMSK I*4 number of multiple scattering kinks DTFCHM R*4 chi**2 of the multiple scattering DTFPVM I*4 pointer to the primary vertex bank DTFPVS I*4 pointer to the secondary vertexbank DTFXSW R*4 X coordinate of PCA to beam line DTFYSW R*4 Y coordinate of PCA = = DTFZSW R*4 Z coordinate of PCA = = DTFCUS R*4 Track charge Q/pt (GeV**-1) DTFCTS R*4 cot(theta) | of PCA to beam line DTFPHS R*4 azimuth | = = DTFFHA I*4 first hit address .... ....At some point of the track fit iteration the parameters of the track movement can be considered to be defined with accuracy good enough to correct the T0 and to use finer time-space relations, depending on the space position of the point of closest approach to each wire. At that point new banks will be created: one is a DHRE bank with bank number 2 and new values of the hit radius and its error. This information will be updated each time a new time-space relation will be applied (in other words we propose to have only two DHRE banks: the initial one and a current one); then there are the DHSP banks.
DHSP - Drift Chamber
hit space points bank
The DHSP banks, companion to DTFS, contain the space points of the
hits defined during the fit procedure. They are created after a successful
track fit, and contain information needed to compute a better approximation
of hit radii (bank DHRE n.2).
YBOS Bank header: ----------------- Bank Name: DHSP Bank Number: Track number Bank Data Length: Bank Type: Mixed (4I4,XXX(I4,6R4))The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
---------------------------------------------------------------- offset word type description ---------------------------------------------------------------- DHSHDS I*4 header size DHSVRN I*4 bank Version Number DHSNRO I*4 number of rows (NROW) DHSNCO I*4 number of data words/row (NCOL) ---------------------------------------------------------------- DHSADR I*4 sense wire address \ DHSXCO R*4 x-coordinate | DHSYCO R*4 y-coordinate | DHSZCO R*4 z-coordinate | for each DHSCHN R*4 fit residual | space hit DHSBET R*4 local beta angle of drift cell | DHSPHT R*4 local phi-tilde of track/cell | DHSDRD R*4 geometric drift distance / .... ....The subsequent values can be obtained using the offsets
OFFADR = DHSADR+(I-1)*NCOL OFFXCO = DHSXCO+(I-1)*NCOL OFFYCO = DHSYCO+(I-1)*NCOL OFFZCO = DHSZCO+(I-1)*NCOL OFFCHN = DHSCHN+(I-1)*NCOL OFFBET = DHSBET+(I-1)*NCOLwhere I runs from 1 to NROW
DVFS - Drift Chamber
vertex fit result bank
The DVFS bank is an output of the vertex fit module. This bank contains
vertex fit results on the space position of the vertex, the list of tracks
(one incoming, possibly several originating from the vertex) and vertex
ID flag from the fit.
YBOS Bank header: ----------------- Bank Name: DVFS Bank Number: Vertex number Bank Data Length: Bank Type: 3I4,10R4,3I4,XXX(I4,16R4,2I4)The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
-------------------------------------------------------------------- offset word type description -------------------------------------------------------------------- DVFHDS I*4 header size DVFVRN I*4 bank Version Number -------------------------------------------------------------------- DVFQFL I*4 Vertex fit quality flag DVFXCO R*4 X coordinate of the vertex fit DVFYCO R*4 Y coordinate of the vertex fit DVFZCO R*4 Z coordinate of the vertex fit DVFCHI R*4 Chi**2 of the fit DVFCVV** R*4 covariance matrix (6 words) DVFIDF I*4 Vertex fit identification flag (for internal use) DVFMTR I*4 Pointer onto the mother track bank (unused) DVFNTR I*4 Number of secondary tracks connected to the vertex The following block of 19 words is repeated as many times as in offset DVFNTR. DVFTRA I*4 pointer to the 1st DTFS bank DVFCRV R*4 Curvature (Q/Pt in GeV-1) at vertex DVFCTV R*4 cot(theta) at vertex DVFPHV R*4 azimuth at vertex DVFCOV** R*4 covariance matrix (6 words) DVFD0V R*4 D0 after vertex fit DVFDZV R*4 Z0 after vertex fit DVFC1V** R*4 covariance matrix (3 words) of D0, DZ DVFCHV R*4 Chi2 contribution of the track to the vertex fit DVFLNV R*4 track length from track end (FH or LH) to vertex DVFPID I*4 identifier of track end (FH vs LH) used for building the vertex DVFPVM I*4 pointer to the mother vertex bank (unused) .... ....This means: if you want to access the azimuth at the vertex for track "I", the correct coding is something like this:
URP = RW(INDV + DVFNTR + (I-1)*19 + DVFPHV)Notes:
DCHD - Drift Chamber Header information
YBOS Bank header: ----------------- Bank Name: DCHD Bank Number: 1 Bank Data Length: 7 Bank Type: BNKTY4The Bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
-------------------------------------------------------------------- offset word type description -------------------------------------------------------------------- DCHHDS I*4 header size DCHVRN I*4 bank Version Number -------------------------------------------------------------------- DCHCAN I*4 Number of candidate tracks (P.R.) DCHCCN I*4 Number of candidates from I.P. DCHTRK I*4 Number of fitted tracks DCHTCN I*4 Number of fitted tracks from I.P. DCHVTX I*4 Number of fitted vertices
TCLO - Tracks-CLusters Object Association bank
YBOS Bank header: ----------------- Bank name: "TCLO" Bank number: 1 Bank data length: Bank type: Variable 6I4,YYY(2I4,5R4) YYY=Numbers of TrackThe TCLO bank is an output of the module which associates fitted tracks (from DTFS Bank) and the reconstracted clusters in calorimeter (CLPS-CLLS bank). The TCLO bank is structured in a header block followed by a data block. Each word in the bank can be located through the offset shown below.
---------------------------------------------------- Header Pointers - offset word type description ---------------------------------------------------------------------- TCLHDS (I*4) HeaDer block Size TCLVRN (I*4) bank VeRsion Number 1 TCLNTR (I*4) Number of associations. TCLBLO (I*4) data BLOck size = 7 TCLNWR (I*4) # of words for cluster list (=1) TCLNCL (I*4) Cluster List (*) packed address ----------------------------------------------------- Data Pointers -- TCLTRK (I*4) Track index # TCLFLH (I*4) Track End used for extrapolation (**) TCLASS (I*4) index # of associated Cluster TCLEX1 (R*4) X | coord. of impact point on calorimeter TCLEX2 (R*4) Y | internal surface (extrapolated) TCLEX3 (R*4) Z | TCLLEN (R*4) extrapolation length (***) TCLCHI (R*4) Association CHI2 TCLVXE (R*4) track director cosine at extrapolation X TCLVYE (R*4) track director cosine at extrapolation Y TCLVZE (R*4) track director cosine at extrapolation Z ---------------------------------------------------------------------- (*) In this word bit n is set to 1 (/0) if cluster n is (is not) associated (**) this flag is positive if the track First Hit has been extrapolated outward and negative if the First Hit has been extrapolated backward to meet the cluster. The reason is that the definition of First Hit and Last Hit is arbitrary and they can not to correspond to the track direction. (***) From the track end specified in TCLFLH to the Impact Point on calo.Neutral Vertex Object banks
The result of such reconstruction is stored in the banks:
KNVO | Kinematic bank |
VNVO | Vertex bank |
INVO | Impact Point of the photons |
The Bank Version is always 1 and corresponds to golden taggings (at the moment the silver tag is disabled as default of NEVKLT).
It's possible to have more than one tagging but, for each tagging, only one best candidate K long vertex is given for each kind of vertices (neutral,mixed,charged).
As new addition the neutral vertex of K long in 3 pi0 without K short informations (performed by the module KLNEUT in ECL library) is added as VNVO bank #6.
KNVO - Kinematic
bank from Neutral Vertex reconstruction
The banks KNVO contain the momentum components of kaons, charged pions
and photons. There is one KNVO bank for each particle identified. A particle
could be identified by more than one algorithm, i.e. a K long decaying
in charged pions near to the interaction point could be identified as tagging
vertex but also as charged tagged vertex. The list of VNVO banks associated
to the particle indicate the algorithms that have identified the particle.
Differently from the previous versions of the bank, the bank number does
not identify the particle. First you find all the kaons, then the pions
and finally the photons.
YBOS Bank header: ----------------- Bank Name: KNVO Bank Number: Bank Number Bank Data Length: Bank Type: Mixed
Displacement Word Type Word Description ------------------------------------------------------------------ Version Header Block ------------------------------------------------------------------ KNVHSZ I*4 Header Size (HSZ) KNVVER I*4 Version Number KNVDSZ I*4 Data Block Size ------------------------------------------------------------------------- Data Block ------------------------------------------------------------------------- KNVPCO+HSZ R*4 momentum components (3 words) KNVERR+HSZ R*4 covariance matrix (9 words) KVNTYP+HSZ I*4 particle type (=20 if kaon) KNVBNK+HSZ I*4 DVFS(kaon),DTFS(pion) or CLPS(gamma) # KNVLNK+HSZ I*4 number of VNVO connected (Nvnvo) KNVLNK+HSZ+1,...,+Nvnvo I*4 list of VNVO connectedThe particle type for both K short and K long is set to 20 since is in general impossible to distinguish between the two.
The list of VNVO connected contains the decay vertices (for kaons) or the production vertices (for pions).
VNVO - Vertex
bank from Neutral Vertex reconstruction
The banks VNVO contain the vertex position for the following vertex
types:
BANK # | Vertex Type |
---|---|
1 | Phi decay vertex |
2 | tagging Kaon charged vertex |
3 | tagged Kaon neutral vertex |
4 | tagged Kaon mixed vertex |
5 | tagged Kaon charged vertex |
6 | KL->3pi0 without KS infos |
... | the same for the second tagging... |
In case of a second tagging the Phi decay vertex is in bank number 7 ... and so on.
A "tagged charged vertex" is a charged vertex inside a cone around the K long flight direction given by the K short.
A "mixed" vertex (KL->pi+ pi- pi0) is a "tagged charged vertex" with a missing mass close to the pi0 one and at least one photon in time.
The neutral vertex, found using the Time Of Flight (TOF) algorithm, is written also when only one photon has been found.
YBOS Bank header: ----------------- Bank Name: VNVO Bank Number: Vertex Number Bank Data Length: Bank Type: Mixed
Displacement Word Type Word Description ------------------------------------------------------------------ Version Header Block ------------------------------------------------------------------ VNVHSZ I*4 Header Size (HSZ) VNVVER I*4 Version Number VNVDSZ I*4 Data Block Size ------------------------------------------------------------------------- Data Block ------------------------------------------------------------------------- VNVXYZ+HSZ R*4 coordinates (3 words) VNVERR+HSZ R*4 covariance matrix (9 words) VNVKOR+HSZ I*4 KNVO bank from which the vertex originates VNVDVF+HSZ I*4 associated DVFS number when available VNVPGE+HSZ I*4 number of particles generated at that vertex (Npart) VNVPGE+HSZ+1,..,+Npart I*4 list of generated particles banks(1...Npart)In case of neutral vertex the associated DVFS number is, if it exists, the charged vertex inside a sphere of radius 20 cm.
In case of KL->3pi0 vertex without KS (VNVO#6) the VNVDVF word is used to store the global T0 in 100 ps as reconstructed by KLNEUT.
The list of generated particles banks contains, in the order:
BANK # | Vertex Type | Bank type |
---|---|---|
1 | Phi decay vertex | 2 KNVO |
2 | tagging Kaon charged vertex | 2 DTFS |
3 | tagged Kaon neutral vertex | Npart CLPS |
4 | tagged Kaon mixed vertex | 2 DTFS ; Npart-2 CLPS |
5 | tagged Kaon charged vertex | 2 DTFS |
6 | KL->3pi0 vertex without KS | 4,5 or 6 CLPS |
INVO - Impact
Point of photons bank from Neutral Vertex reconstruction
The banks INVO contain the x,y,z coordinates and the Time Of Flight
of the photons at the impact point on the calorimeter. There is one INVO
bank for each photon coming from the neutral vertex.
For debug purposes also the clusters discarded by the 'K long photon selection' algorithm are stored as last and flagged with a negative CLPS number. They are not counted in the Npart variable in the VNVO banks.
It's possible to have more taggings and then more groups of photons: to know the number of photons from each tagging you must look at the VNVO banks.
YBOS Bank header: ----------------- Bank Name: INVO Bank Number: Photon Number Bank Data Length: Bank Type: Mixed Displacement Word Type Word Description ------------------------------------------------------------------ Version Header Block ------------------------------------------------------------------ INVHSZ I*4 Header Size (HSZ) INVVER I*4 Version Number INVDSZ I*4 Data Block Size ------------------------------------------------------------------------- Data Block ------------------------------------------------------------------------- INVGAM+HSZ R*4 x,y,z,t coordinates at impact point(4 words) INVERR+HSZ R*4 errors on coordinates (4 words) INVCLP+HSZ I*4 CLPS cluster number INVLKI+HSZ R*4 K long decay length for this photon INVSLK+HSZ R*4 error on this K long decay lengthEvent Classification Banks
YBOS Bank header: ----------------- Bank Name: ECLS Bank Number: 1 Bank Data Length: Header + 1 word per identified stream Bank Type: I*4 Displacement Word Type Word Description ------------------------------------------------------------------ Version Header Block ------------------------------------------------------------------ ECLSHSZ I*4 Header Size (HSZ) ECLSVER I*4 Bank Version ECLSDSZ I*4 Number of fired streams (NFS) ECLSTRG I*4 Trigger Word ECLSFLT I*4 Filfo Word (1) ECLSFLT + 1 I*4 Filfo Word (2) starting from IW(INDDAT+ECLSVER)=2 ------------------------------------------------------------------------- Data Block ------------------------------------------------------------------------- ECLSMSK+HSZ I*4 Packed word for 1st fired stream ... ECLSMSK+HSZ+N-1 I*4 Packed word for N-th fired streamNotes:
YBOS Bank header: ----------------- Bank Name: ECLO Bank Number: 1 Bank Data Length: 1 word per identified particle Bank Type: I*4 Displacement Word Type Word Description ------------------------------------------------------------------ Version Header Block ------------------------------------------------------------------ ------------------------------------------------------------------------- Data Block ------------------------------------------------------------------------- INDDAT + 0 I*4 Packed word for 1st patricle INDDAT + 1 I*4 Packed word for 2nd patricle ...Notes:
Particle ID | Particle type |
---|---|
21 | prompt photons |
31 | pi+ or mu+ or e+ |
32 | pi- or mu- or e- |
41 | pi+- (no charge ID |
42 | mu+- (no charge ID |
43 | e+- (no charge ID |
44 | K+- (no charge ID |
Databases directories description
First here is the description of the directories:
//CDRT /HELP /DICTIONARY /RUN_COND /TRIGGER_ST /TRIGGER_LT /TRIGGER_MT /DRCH_LT /DRCH_MT /DRCH_ST /CALO_LT /CALO_MT /CALO_ST /BEAM_LT /BEAM_MT /BEAM_ST
//CDCT /HELP /DICTIONARY /CALIBRATION /DRCH_LT /DRCH_MT /PARAM /DCD_SIG /DRCH_ST /CALO_LT /CALO_MT /CALO_ST /TRIG_LT /TRIG_MT /TRIG_ST
//CDGE /HELP /DICTIONARY /GEOMETRY /DRCH /DIM /POSITION /CALO /DIM /POSITION /MAG_YOKE /INTER_ZONE /QUAD /BEAM_PIPE /VXCH /DIM /POSITION /MAGNET_FIELD /GEN_MAP /DRCH /QUAD /CALO /VXCH /MATERIALS
Database keys definitions
The keys definitions are the following:
Key number | Meaning | Parameter |
---|---|---|
1 | Serial Number | IDHKSN |
2 | Pointer | IDHPTR |
3 | Flags | IDHFLG |
4 | Insertion Time | IDHINS |
5 | Reserved |
Key number | Meaning | Parameter |
---|---|---|
6 | Unique source identifier | IDHUSI |
7 | Software reference number | IDHSRN |
8 | unused | |
9 | Run and Experiment type | DBRUNT |
10 | OFFline/ONline flag | DBOFON (only for calibration) |
Key number | Meaning | Parameter |
---|---|---|
11 | Run number start of validity | DBSRTR |
12 | Run number end of validity | DBENDR |
Key number | Meaning | Parameter |
---|---|---|
13 | Bank name | DBBKNA |
14 | Spare key | DBCPID |
Run Condition database
Calorimeter
The description of the bank in the case of one set of ADC is:
Displacement (I*4) | Word type | Description |
---|---|---|
+1 | R*4 | Pedestal value of the first ADC |
+2 | R*4 | Pedestal sigma of the first ADC |
... | R*4 | ... |
... | R*4 | ... |
+2*(i-1)+1 | R*4 | Pedestal value of the ith ADC |
+2*(i-1)+2 | R*4 | Pedestal sigma of the ith ADC |
In the case of two sets of ADC :
Displacement (I*4) | Word type | Description |
---|---|---|
+1 | R*4 | First Pedestal value of the first ADC |
+2 | R*4 | First Pedestal sigma of the first ADC |
+3 | R*4 | Second Pedestal value of the first ADC |
+4 | R*4 | Second Pedestal sigma of the first ADC |
... | R*4 | ... |
... | R*4 | ... |
+4*(i-1)+1 | R*4 | First Pedestal value of the ith ADC |
+4*(i-1)+2 | R*4 | First Pedestal sigma of the ith ADC |
+4*(i-1)+1 | R*4 | Second Pedestal value of the ith ADC |
+4*(i-1)+2 | R*4 | Second Pedestal sigma of the ith ADC |
Displacement (I*4) | Word type | Description |
---|---|---|
+1 | R*4 | Offline IDentifier for ADC channel pointed by the number 1 ADC |
... | R*4 | ... |
... | R*4 | ... |
+65535 | R*4 | Offline IDentifier for ADC channel pointed by the number 65535 |
Displacement (I*4) | Word type | Description | |
---|---|---|---|
+1 | R*4 | Version number of the map file | |
+2 | R*4 | Total number of channels NC | |
+3 | R*4 | First DAQ Electronic Pointer "n" | |
+4 | R*4 | Cart type of Electronic Channel pointed by "n" | |
+5 | R*4 | VME address of the "Electronic channel" | |
+6 | R*4 | Crate number of the "Electronic channel" | |
+7 | R*4 | Slot number of the "Electronic channel" | |
+8 | R*4 | Subaddress of the "Electronic channel" | |
+9 | R*4 | Corresponding Detector Number of the "Electronic channel" | |
+10 | R*4 | Corresponding side of the "Electronic channel" | |
+11 | R*4 | Module number of the "Electronic channel" | |
+12 | R*4 | Row corresponding to the "Electronic channel" | |
+13 | R*4 | Column of the "Electronic channel" | |
... | R*4 | ... | |
... | R*4 | ... | |
11*(i-1)+3 | R*4 | ith DAQ Electronic Pointer "n" | |
11*(i-1)+4 | R*4 | Cart type of the ith Electronic Channel | |
11*(i-1)+5 | R*4 | VME address of the ith "Electronic channel" | |
11*(i-1)+6 | R*4 | Crate number of the ith "Electronic channel" | |
11*(i-1)+7 | R*4 | Slot number of the ith "Electronic channel" | |
11*(i-1)+8 | R*4 | Subaddress of the ith "Electronic channel" | |
11*(i-1)+9 | R*4 | Corresponding Detector Number of the ith "Electronic channel" | |
11*(i-1)+10 | R*4 | Corresponding side of the ith "Electronic channel" | |
11*(i-1)+11 | R*4 | Module number of the ith "Electronic channel" | |
11*(i-1)+12 | R*4 | Row corresponding to the ith "Electronic channel" | |
11*(i-1)+13 | R*4 | Column of the ith "Electronic channel" | |
... | R*4 | ... | |
... | R*4 | ... |
Drift Chamber
Trigger
Calibration database
Calorimeter
Displacement (I*4) | Word type | Description |
---|---|---|
+1 | R*4 | Photo multiplier number of the first PM |
+2 | R*4 | First constant to compute the gain of the first PM |
+3 | R*4 | Second constant k to compute the gain of the first PM |
... | R*4 | ... |
... | R*4 | ... |
+3*(i-1)+1 | R*4 | Photo multiplier number of the ith PM |
+3*(i-1)+2 | R*4 | First constant to compute the gain of the ith PM |
+3*(i-1)+3 | R*4 | Second constant k to compute the gain of the ith PM |
... | R*4 | ... |
... | R*4 | ... |
The description of the bank in the case of one set of ADC is:
Displacement (I*4) | Word type | Description |
---|---|---|
+1 | R*4 | MIPs value of the first ADC |
+2 | R*4 | MIPs sigma of the first ADC |
... | R*4 | ... |
... | R*4 | ... |
+2*(i-1)+1 | R*4 | MIPs value of the ith ADC |
+2*(i-1)+2 | R*4 | MIPs sigma of the ith ADC |
In the case of two sets of ADC :
Displacement (I*4) | Word type | Description |
---|---|---|
+1 | R*4 | First MIPs value of the first ADC |
+2 | R*4 | First MIPs sigma of the first ADC |
+3 | R*4 | Second MIPs value of the first ADC |
+4 | R*4 | Second MIPs sigma of the first ADC |
... | R*4 | ... |
... | R*4 | ... |
+4*(i-1)+1 | R*4 | First MIPs value of the ith ADC |
+4*(i-1)+2 | R*4 | First MIPs sigma of the ith ADC |
+4*(i-1)+1 | R*4 | Second MIPs value of the ith ADC |
+4*(i-1)+2 | R*4 | Second MIPs sigma of the ith ADC |
Trigger
Displacement (I*4) | Word type | Description |
---|---|---|
CMDHDS | R*4 | Header size |
CMDNBI | R*4 | Number of information for the barrel |
CMDNEI | R*4 | Number of information for the end cap |
CMDTNM | R*4 | Total Number of modules (barrel+end cap) |
CMDNRC | R*4 | Total Number of read out cells (barrel+end cap)
Information for the barrel |
CMDFRD | R*4 | fiber radius (or thickness) |
CMDLDT | R*4 | lead thickness |
CMDIWT | R*4 | Inner wall thickness |
CMDLWT | R*4 | Lateral wall thickness |
CMDOWT | R*4 | Outer wall thickness |
CMDMAC | R*4 | Material number of the active material |
CMDMAB | R*4 | Material number of the absorber |
CMDMAW | R*4 | Material number of the walls
Information for the endcap |
CMDFRE | R*4 | fiber radius (or thickness) |
CMDLTE | R*4 | lead thickness |
CMDIWE | R*4 | Inner wall thickness |
CMDLWE | R*4 | Lateral wall thickness |
CMDOWE | R*4 | Outer wall thickness |
CMDACE | R*4 | Material number of the active material |
CMDABE | R*4 | Material number of the absorber |
CMDMWE | R*4 | Material number of the walls |
CMDXHO | R*4 | X coordinate of the hole |
CMDYHO | R*4 | Y coordinate of the hole |
Displacement (I*4) | Word type | Description |
---|---|---|
CMDHDS | R*4 | Header size |
CMDBMN | R*4 | Barrel Modules Number |
CMDIMB | R*4 | Number of information per barrel module |
CMDEMN | R*4 | End cap modules number |
CMDIME | R*4 | Number of information per end cap module |
1st Data blocks for the barrel | ||
Loop on the number of Barrel modules | ||
CMDNPB | R*4 | Number of read out planes |
CMDNCB | R*4 | Number of read out columns |
CMDFPB | R*4 | Number of fiber planes per readout plane |
CMDINR | R*4 | Inner radius of the barrel module |
CMDOUR | R*4 | Outer radius of the barrel module |
CMDHLZ | R*4 | Half length in z |
CMDHWB | R*4 | Half width in x of the module bottom |
CMDHWT | R*4 | Half width in x of the module top |
1st Data blocks for the endcap | ||
Loop on the number of endcap modules | ||
CMDNPE | R*4 | Number of read out planes |
CMDNCE | R*4 | Number of read out columns |
CMDFPE | R*4 | Number of fiber planes per readout plane |
CMDIRE | R*4 | Inner radius of the barrel module |
CMDOUE | R*4 | Outer radius of the barrel module |
CMDZPE | R*4 | z position |
CMDICU | R*4 | Inner curvature |
CMDANG | R*4 | Angle cut for the curved part |
Displacement (I*4) | Word type | Description |
---|---|---|
CCDHDS | R*4 | Header size |
CCDBCN | R*4 | Barrel Cell Number |
CCDICB | R*4 | Number of information per barrel Cell |
CCDECN | R*4 | End cap Cell number |
CCDICE | R*4 | Number of information per end cap Cell |
1st Data blocks for the barrel | ||
Loop on the number of Barrel modules | ||
CCDWDB | R*4 | Width of the barrel cell |
CCDHGB | R*4 | height of the barrel cell |
1st Data blocks for the endcap | ||
Loop on the number of endcap modules | ||
CCDWDE | R*4 | Width of the end cap cell |
CCDHGE | R*4 | height of the end cap cell |
Drift Chamber
Displacement (I*4) | Word type | Description |
---|---|---|
DCLHDS | R*4 | Header size |
DCLNBL | R*4 | Number of Layer (wires planes) |
DCLNIL | R*4 | Number of information per layer |
DCLZPR | R*4 | Z value where the radius is given |
Data blocks | ||
Loop on the number of layers | ||
DCLLTY | R*4 | Layer type |
DCLLRD | R*4 | Layer radius |
DCLSAT | R*4 | Stereo Angle Tangent |
DCLDPH | R*4 | Delta $\phi$ angle between 2 wires |
DCLNWI | R*4 | Number of wires |
The directory pathname to access this bank is "//CDGE/GEOMETRY/DRCH/POSITION".
Displacement (I*4) | Word type | Description |
---|---|---|
DCWHDS | R*4 | Header size |
DCWZPL | R*4 | Z value where the information is given |
DCWNBL | R*4 | Number of layers (wires planes) |
DCWNIW | R*4 | Number of wires |
Loop on the number of layers | ||
DCWNBW | R*4 | Number of wires |
Loop on the number of wires | ||
DCLLRD | R*4 | Wire type |
DCLSAT | R*4 | Wire X position |
DCLDPH | R*4 | Wire Y position |
DCLNWI | R*4 | Wire stereo angle |
As the index computation is not straightforward in this case (because the number of wires is changing at each layer) here is given an example of a loop to retrieve all the information stored in the bank assuming that VALUES is the REAL array containing this bank:
NWSUM = 0 NGH = 0 NHDS = INT(VALUES(DCWHDS)) ! Header Size NIW = INT(VALUES(DCWNIW)) ! Number of information per wire NBLAY = INT(VALUES(DCWNBL)) ! Number of Layers DO I = 1,NBLAY NBWIR = INT(VALUES(DCWNBW+NHDS+NGH)) ! Number of Wires for this layer DO J = 1,NBWIR WIRE_TYPE = VALUES(DCWNBW+NHDS+NGH+DCWWTY+NIW*(J-1)) X_POSITION = VALUES(DCWNBW+NHDS+NGH+DCWXPO+NIW*(J-1)) Y_POSITION = VALUES(DCWNBW+NHDS+NGH+DCWYPO+NIW*(J-1)) STEREO_ANGLE = VALUES(DCWNBW+NHDS+NGH+DCWSAN+NIW*(J-1)) ENDDO NWSUM = NWSUM + NBWIR NGH = NIW*NWSUM + I ENDDO
There are 6 banks, one bank per cell shape, each bank containing all the 5 parameters from the parametrisation of the 36-$\phi$ sections of the cell: DPS1, DPS2, DPS3, DPS4, DPS5, DPS6.
The directory pathname to access those banks is "//CDGE/GEOMETRY/DRCH/PARAM". These 6 banks have the same real format corresponding to a matrix 5 by 36 as follows:
Displacement (I*4) | Word type | Description |
---|---|---|
DPSHDS | R*4 | Header size |
DPS1DI | R*4 | Number of parameters: NP (=5) |
DPS2DI | R*4 | Number of $\phi$-section per shape (36) |
DPS2DI+1 | R*4 | 1st Parameter for the 1st $\phi$-section |
DPS2DI+2 | R*4 | 2nd Parameter for the 1st $\phi$-section |
DPS2DI+3 | R*4 | 3rd Parameter for the 1st $\phi$-section |
DPS2DI+4 | R*4 | 4th Parameter for the 1st $\phi$-section |
DPS2DI+5 | R*4 | 5th Parameter for the 1st $\phi$-section |
... | R*4 | ... |
... | R*4 | ... |
DPS2DI+J+NP*(I-1) | R*4 | Jth Parameter (J=1,NP) for the Ith $\phi$-section (I=1,36) |
... | R*4 | ... |
... | R*4 | ... |
The directory pathname is "//CDGE/GEOMETRY/INTER_ZONE/BEAM_PIPE".
Displacement (I*4) | Word type | Description |
---|---|---|
BPDBKS | R*4 | Bank size |
BPDIRS | R*4 | Inner Radius of the sphere |
BPDORS | R*4 | Outer Radius of the sphere |
BPDMNS | R*4 | Material Number of the sphere and the first part of the pipe (beryllium) |
BPDBTH | R*4 | Thickness of the pipe (first part in Be) |
BPDBLZ | R*4 | Be pipe length (start at z=0) = z of the beginning of the transition zone |
BPDTZT | R*4 | transition zone thickness |
BPDTLZ | R*4 | Transition zone length |
BPDMTZ | R*4 | Material Number of the rest of the pipe (Copper) |
BPD1CT | R*4 | First Copper zone thickness |
BPD1CL | R*4 | First Copper zone Length |
BPD2CT | R*4 | Second Copper zone thickness |
BPD2CL | R*4 | Second Copper zone Length |
BPD1AD | R*4 | First Absober radial Distance from the beam |
BPD1AT | R*4 | First Absober Thickness |
BPD1AL | R*4 | First Absober Length |
BPD1AZ | R*4 | First Absober z position |
BPD2AT | R*4 | Second Absober Thickness |
BPD2AL | R*4 | Second Absober Length |
BPD2AZ | R*4 | Second Absober z position |
BPDMAB | R*4 | Material number of the Absorber |
BPDNCR | R*4 | Number of Corners (= number of change in the beam pipe dimension) |
BPDZCR | R*4 | First z of the first corner |
Quadrupoles
The quadrupoles description is done in the QDES bank.
The directory pathname is "//CDGE/GEOMETRY/INTER_ZONE/QUAD".
Displacement (I*4) | Word type | Description |
---|---|---|
QDEHDS | R*4 | Header size |
QDEQNB | R*4 | Number of quadrupoles |
QDENIQ | R*4 | Number of information per quadrupole |
QDEARL | R*4 | Aluminium Ring Length |
Data blocks | ||
Loop on the number of quadrupoles | ||
QDEZPO | R*4 | Quadrupole z position |
QDELEN | R*4 | Quadrupole length |
QDEARL | R*4 | Quadrupole Inner Radius |
QDE1MN | R*4 | First material number |
QDESMT | R*4 | SmCo thickness |
QDE2MN | R*4 | Second material number |
QDEALT | R*4 | Aluminium thickness |
QDEGRD | R*4 | Gradient of the magnetic field |
QDEROT | R*4 | Rotation of the magnetic field |
Quadrupoles Instrumentation and Anti-coincidence Detector
The quadupoles instrumentation and anti-coincidence detector description is done in the QIAD bank.
The directory pathname is "//CDGE/GEOMETRY/INTER_ZONE/QUAD".
Displacement (I*4) | Word type | Description |
---|---|---|
QIABKS | R*4 | Bank size |
QIAAIR | R*4 | Anti-coincidence Inner Radius |
QIAAOR | R*4 | Anti-coincidence Outer Radius |
QIAATH | R*4 | Anti-coincidence z thickness |
QIAAFZ | R*4 | Anti-coincidence first z position |
QIAALZ | R*4 | Anti-coincidence last z position |
QIAAMN | R*4 | Anti-coincidence Material Number |
QIAQNP | R*4 | Quadrupole instrumentation Number of Planes |
QIAQAM | R*4 | Quad. inst. absorber material number (lead) |
QIAQLT | R*4 | Quad. inst. absorber thickness |
QIAQSM | R*4 | Quad. inst. scintillator material number |
QIAQST | R*4 | Quad. inst. scintillator thickness |
| EVENT TYPE | TAG | STREAM |
An event is written in one or more streams according to the tagging
algorithms. The streams are identified by a unique number which is stored
in the four rightmost (less significant) bits of the ECLS word. The existing
streams and the identification numbers are the following:
While the stream bits are uniquely defined, the meaning of the tagging bits is stream-dependent. A given stream may have more than one tagging algorithm, each one corresponding to a given bit which is set to one for a positive tagging. In this way more than one tagging bit can be set for a given event.
Some algorithm can exit also with more specific informations; for example the KLTAG, based on the identification of the Ks decat in two charged pions, tries to identify the Kl deacy on the other side. If it is found a bit in the mask is set. Therefore the EVENT TYPE section of the ECLS word is a further specification of the event characteristics.
The meaning of the tagging and of the Event Type bits is specified in the following paragraphs for each one of the streams.
This document was *NOT* generated on 25 July 1996 using the
texi2html
translator version 1.49.
Last update 19-Sep-2000