A Tracking Program for RD51 Telescope
Introduction
A fast and robust tracking software was developed for the RD51 telescopes in order
to provide a user-friendly program with a smooth graphical user interface. The tracking
algorithm exploits the robustness of the Hough transformation while the flexibility of the
program provides the capability to be used with the various types of telescopes of the
collaboration.
HLT Tracking Program GUI
The software for the tracking was built using C++ and
ROOT
. It is designed in a way that can be
used with various types of telescopes without any limitation for the interpretation of the hardware units
into software objects.
Through a “configuration file” the program is fully configurable regarding both the personalization part
(preferable configuration file to be loaded at the start up of the program, initial root file to be analyzed
etc) and the hardware-wise part (dimensions of the telescope, geometrical characteristics of the detection
stations, amount of the detection stations etc). The whole functionality of the rest of the program is
robust and based on the characteristics of the telescope in use. The feature for event-by-event analysis
among with the batch analysis of all or of custom defined range of entries in addition to the fact that all
results can be saved in a root file gives the final user the ability to use of the tracking program in various
ways.
Configuration File
The configuration files are plain text files that can be edited with any editor. A default configuration
file is loaded on start up of the program. The user though, can reconfigure the program after changing
the configuration file without even restarting the program. Any line starting with “#” will be treated as
comment and therefore will be ignored. In more detail inside the configuration file we have (in brackets
the C++ types of the variable is given):
- PathToRootFiles [string]
- folder from where the root files are loaded
- PathToSaveRootFiles [string]
- folder where the output root files will be saved at the end of the program
- RootFilePrefix [string]
- root file name prefix
- RootFileSuffix [string]
- root file name suffix
- RootFileExtension [string]
- root file name extention
- HLT.defaultFile [string]
- the default root file
- HLT.totalStations [int]
- how many detection stations the telescope has
- HLT.telescopeOffset [double]
- the offset in Z axis of the whole telescope
- HLT.zSt1i (i = 2, 3, 4 ...) [double]
- distances between the first and the i-th station
- HLT.xActStrips [int]
- active strips in X direction
- HLT.yActStrips [int]
- active strips in Y direction
- HLT.xStripSize [double]
- strip size in X direction
- HLT.yStripSize [double]
- strip size in Y direction
- HLT.telescopeType [string]
- name of the telescope
- HLT.defaultTab [int]
- which tab the user wants to have focused when the program starts up (the enumeration for the tabs starts from 0)
- HLT.workStripUnits [bool]
- use the strips as units instead of mm
- HLT.workingScalingFactor [double]
- custom scaling factor for the units to be used
- HLT.offsetCorX [double]
- behavior of the offset calculated for X direction (to be added or subtracted)
- HLT.offsetCorY [double]
- behavior of the offset calculated for Y direction (to be added or subtracted)
- HLT.autoUpdateTrackingPads [bool]
- automatic update of all corresponding tabs in case of changing the event
- HLT.actions.printInfo [bool]
- print in terminal general information about the actions of the program
- HLT.trackingFinder.printInfo [bool]
- print in terminal general information about the tracking algorithm of the program
- HLT.trackingFinder.lowCut [double]
- low edge of the area near a candidate that is going to be set to zero
- HLT.trackingFinder.upCut [double]
- up edge of the area near a candidate that is going to be set to zero
- HLT.trackingFinder.maxDistanceFromHoughLine [double]
- threshold used to compare the distance of a point towards the “Hough line”
Option Tab
- Snapshot of the “Options” tab of the program. Through that the user has direct access to some variables used by the program.:
The fifth tab of the program is the “Options” tab. Through this tab the user has direct access to some
variables used by the program (configuration file to be loaded, default input/output folder etc). Any
change made here can be saved directly to the current configuration file and has immediate effect to the
program (no need to reconfigure).
Offsets Tab
- Tab accommodating the offset calculations for both planes before the correction (blue histogram), and after the offset correction (red histogram). The histogram named “h calcOffsetsX Diff: 1-0” is the offset calculation histogram for the X plane and is created s The correction effect is obvious since the red distributions are centered to zero.:
The first order correction before any tracking calculation is done using the offsets.
This offline alignment of the tracker stations is performed for better precession. In order to do this the
first station is used as a reference point and all the others are aligned with it using the mean value of the
Gaussian distribution of the differences. Only “clean events” (events with exactly one hit per station) are
used and the distributions are created by subtracting from first station the second and so on. Adopting
the mean value from the Gaussian fit of those distributions is possible to correct the relative position of
the other stations. This procedure is performed separately for X-Plane (X-Z projection of the tracker)
and Y-Plane (Y-Z projection of the tracker).
The Plane Projections Tabs
- Display of an event on “Plane Projection (XZ)” tab. The display is showing the Hough accumulators (before at top left and after at the top right, the process of it) and the telescope projection with the detection stations, the hits and the tracks.:
The “Plane Projection” tabs can be used for an event-by-event display of the telescope. The user can
navigate through the events of the root file either one by one (using the previous and next event buttons)
or by inserting the desired event number in the box labeled “Entry #” and the tracking algorithm is
working as described above. The offset corrections are used in order to better align the stations, the
Hough accumulator (see Figure 9 top left) is filled for the accepted range of slopes for that telescope,
any maximum located at the accumulator is examined as a potential track candidate and the area near
that point is set to zero (see Figure 9 top right). For any track candidate a set of hits (one per station)
is used for the final χ2 fit: these hits have to be in a distance which is less than a user defined threshold
from the line given by the Hough transform. In the lower part of the tab the corresponding projection of
the telescope is shown with all the hits per station (red squares), and all the lines detected with different
colors (the dashed lines are obtained from the Hough space directly while the continuous from the chi
square fit of the points). The same procedure is performed independently for two planes.
The possibility that two (or even more) passing particles leave a signature at the same strip of any station
is zero. Therefore, in the case that two or more detected lines share a point, the program, based on the
quality of the fits, decides which of them is a real track. Each line is denoted with a different color.
Moreover the user is able to sequentially process a custom amount of desired events using the box
labeled “#Entries2Proc”. There the user defines how many events, starting from the current one, wants
to be analyzed. The capability to save the current tab in various formats (gif, pdf, ps, jpg, C - ROOT
macro) exists.
The Statistics Tab
- Statistical analysis in a subsample of the input root file. Distributions of the slopes and intercepts of the calculated tracks as well as the residual distribution per station are shown here.:
By the means of this tab a desired range of events to be analyzed can be selected. No display will take
place like the event-by-event schema, but only collective information like distributions of the slopes and
intercepts of all the calculated tracks for that set of events and also the residual distribution per station
(distance between the calculated track and the point contributing to that track from that station). Same
plots are available for both planes, but only one plane is displayed at the time.
Through this tab the user can save the tracking results in a root file. The saved information per track is:
- event numbers
- slope parameter
- intercept parameter
- error of slope parameter
- error of intercept parameter
- fit quality
- residuals per station
Availability
The related note can be found
here circulated already in the
RD51 Collaboration
while the source code of the program can be found
here.
For any comments, suggestions please do not hesitate to contact:
K.Karakostas.
--
KonstantinosKarakostas - 08-Jun-2012