This groups is used to store various tags for the CSI hits group, including tags for CSI blocks hit by charged particles.
typedef struct { int32 nhits; uint32 tags[1]; } csi_tags_t;
tagCsi_doTrack()
tagCsi_doEvent()
tagCsi_getEnergy()
TagCSI-TCYL-versus-CSI-phi
TagCSI-projection-phi
TagCSI-TCYL-versus-CSI-Z
TagCSI-projection-z
This group was created to store information about CSI blocks that are hit by charged particles measured by TCYL.
To get the CSI energy associated with these charged particles, one
can use the tagCsi_getEnergy(...)
function. This function
returns the total energy in the CSI, the tagged energy (associated with charged tracks)
and untagged energy (not associated with charged tracks).
To (re)create this group, the tagCsi_doEvent(void *event,int eventLength)
function
should be called. It takes two arguments: the pointer to the event
buffer and the length of the event buffer.
This function creates an empty GROUP_CSI_TAGS group and fills it by
calling the tagCsi_doEvent()
function for each
track found in the GROUP_TCYL_TRACKS group.
The tagCsi_doTrack(const vector3_t* v,const vector3_t*p,
const csi_hits_t* hits,
csi_tags_t* tags)
function takes
the track starting point v
,
it's momentum vector p
, the pointer to the
CSI hits group hits
and
the pointer to the tags group to be filled tags
.
The function extrapolates the track into the middle of the CSI blocks and sets the tag bits for all the hits that are "close" to the track.
A hit is defined as being "close" to the track if it satisfies first the phi and then the Z requirements.
The phi requirement follows from the correlation between the phi of the TCYL track and row number of CSI hits shown on the plot below. The hits on the diagonal of this plot satisfy the phi requirement and are tagged.
On this plot the horizontal axis is the angle of the TCYL track and on the vertical axis is the CSI row number.
To use this correlation, a projection of the 2-dimensional (tcyl-phi, csi-row) space into a 1-dimensional (projPhi) space is used:
double projPhi = 0.5 * (iphi/18) - 0.5 * (tcylPhi/360); here: iphi - is the CSI row number tcylPhi - is the TCYL track phi
The next plot shows the distribution of projPhi:
The peak in the middle of the histogram corresponds to the CSI blocks that are hit by TCYL tracks.
CSI blocks are selected for tagging by using the cut:
-0.015 < projPhi < 0.075
The Z requirement for hits that meet the phi requirement follows from the correlation between the Z of the TCYL track and the ring number of CSI hits. It is shown on the plot below.
This plot has the TCYL Z position in the MPS coordinates on the horizontal axis and the CSI ring number in the vertical axis.
To use the Z correlation, a projection of the 2-dimensional (tcyl-Z, csi-ring) space into a 1-dimensional (projZ) space is used:
double projZ = 0.5 * (izee/10) - 0.5 * ((tcylZ-170)/40); where: izee - is the Z ring number tcylZ - is the TCYL Z position
The next plot shows the distribution of projZ:
The peak in the middle of the histogram corresponds to the CSI blocks that are hit by TCYL tracks.
CSI blocks are selected for tagging by using the cut:
-0.07 < projZ < 0.17
The CSI hits tagged by this group are shown in the event display program in a different color.
Any track, including the missing momentum, can be used to tag the CSI blocks.
To do this, the user has to call the tagCsi_doTrack(...)
function by hand. In this case, the user has to give the function
the track position and momentum as close as possible to the
intersection point between the CSI barrel and the track.
nhits:
same as nhits
in GROUP_CSI_HITS
tags[i]:
bitmapped:
CO 8.Nov.1994