A Tracking Program for RD51 Telescope


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:

  1. event numbers
  2. slope parameter
  3. intercept parameter
  4. error of slope parameter
  5. error of intercept parameter
  6. fit quality
  7. residuals per station


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

Topic attachments
I Attachment History Action Size Date Who Comment
Compressed Zip archivetar HLT_GUI_tw_v1.tar r1 manage 230.0 K 2012-09-19 - 19:53 KonstantinosKarakostas version 1 of Source Code
PDFpdf HLT_tracking_program.pdf r1 manage 2222.3 K 2012-09-19 - 19:55 KonstantinosKarakostas Note for the HLT tracker
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2012-09-19 - KonstantinosKarakostas
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    MPGD All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback