Abstract
We present the LOcal Track Finder (lotf) algorithm, a method that performs charged-particle trajectory reconstruction using the Straw Tube Tracker, one of the central trackers of the antiProton ANnihilation at DArmstadt (PANDA) detector. The algorithm builds upon the neighboring relations of the tubes to connect individual hits and form track candidates. In addition, it uses a local fitting procedure to handle regions where several tracks overlap and utilizes a system of virtual nodes to reconstruct the z-information of the particle trajectories. We generated 30,000 events to assess the performance of our approach and compared its global track assignment efficiency with respect to two other track reconstruction methods. lotf has (1) an average of 85% of found tracks, (2) the largest number of Fully Pure tracks, (3) the lowest amount of incorrect reconstructions, and (4) is significantly faster than the other two approaches. Further, we compared the z-reconstruction performance with one of the two alternative methods and show that lotf improves the median z-error by a factor of 8.7. Finally, we tested our method using 3750 data sets composed of 4 events each, demonstrating that our approach handles cases in which events are mixed. The raw (without parallelization) average reconstruction rate is about 68,000 hits/s, which makes the present algorithm promising for online data selection and processing.
Similar content being viewed by others
Availability of data and material
The simulated data sets underlying this paper are available upon request to the corresponding author.
Notes
In all this work, we only use the x–y and z–y plane to visualize the track reconstruction.
The choice of using the z–y plane instead of the z-x plane is arbitrary, and has no impact on the reconstruction results.
We used PandaRoot v12.0.1.
References
B. Ketzer, The PANDA Collaboration, Int. J. Mod. Phys. A 21, 5675–5685 (2006)
G. Barucca, The PANDA Collaboration, Eur. Phys. J. A 184, 57 (2021)
M. Durante et al., Phys. Scripta 033001, 94 (2019)
L. Frankfurt et al., Eur. Phys. J. A 171, 56 (2020)
W. Erni, The PANDA Collaboration. arXiv:0903.3905 (2009)
R.E. Kalman, J. Basic Eng. 35–45, 82 (1960)
P.V. Hough, in Proc. of the International Conference on High Energy Accelerators and Instrumentation, pp. 554–556 (1959)
L. Bianchi et al., J. Phys. Conf. Ser. 898, 072040 (2017)
A. Alicke, T. Stockmanns, J. Ritman, EPJ Web Conf. 04002, 251 (2021)
W. Ikegami Andersson et al., Comput. Softw. Big Sci. 1–14, 5 (2021)
J. Regina, W. Ikegami Andersson, in Connecting the Dots and Workshop on Intelligent Trackers (2019). arXiv:1910.06086 [nucl-ex]
A. Adinetz et al., Procedia Comput. Sci. 113–123, 29 (2014)
M. Babai et al., Math. Morphol. Appl. Signal Image Process. 9082, 86–97 (2015)
M. Babai et al., Pattern Rcognit. 106, 107467 (2020)
W. Esmail et al., arXiv:1910.07191 (2019)
A. Akram, X. Ju, arXiv e-prints. arXiv:2208.12178 [hep-ex] (2022)
Y. Liang et al., IEEE Trans. Nuclear Sci. 1331–1337, 64 (2017)
A. Herten, The PANDA Collaboration. in GPU Computing in High-Energy Physics, pp. 57–63 (2015)
W. Ikegami Andersson, PhD thesis (Uppsala University, Department of Physics and Astronomy, 2020), p. 231. (ISBN: 978-91-513-0850-0)
W. Erni, The PANDA Collaboration. Eur. Phys. J. A. Hadrons Nuclei 49(2), 25 (2013)
C. Schwarz et al., J. Instrum. C02008, 7 (2012)
S. Spataro, The PANDA Collaboration, J. Phys. Conf. Ser. 032031, 331 (2011)
S. Agostinelli et al., Nuclear Instrum. Methods Phys. Res. Sect. A 250–303, 506 (2003)
J. Allison et al., IEEE Trans. Nuclear Sci. 270–278, 53 (2006)
J. Allison et al., Nuclear Instrum. Methods Phys. Res. Sect. A 186–225, 835 (2016)
W. Erni, The PANDA Collaboration. arXiv:1207.6581 (2012)
J. Smyrski, Phys. Procedia 37. in Proceedings of the 2nd International Conference on Technology and Instrumentation in Particle Physics (TIPP 2011), pp. 85–95 (2012)
J. Schumann, F.H. Aachen, Campus JÜlich, Bachelorarbeit, 2013. 84, BA (FH Aachen, Campus Jülich, 2013)
J. Regina, PhD thesis (Uppsala University, Nuclear Physics, 2021), p. 246. (ISBN: 978-91-513-1373-3)
R. Karabowicz, GSI Sci. Rep. 8, 12 (2010)
C. Hoppner et al., Nucl. Instrum. Methods A 518–525, 620 (2010). arXiv:0911.1008
M.H.F. Wilkinson, Image Vis. Comput. 426–435, 25 (2007)
M. Papenbrock, W. Ikegami Andersson, J. Regina, EPJ Web Conf. 245, 01029 (2020). (eds Doglioni, C. et al.)
J. Regina, in Connecting the Dots Workshop Proceedings (2020)
W. Erni, The PANDA Collaboration. arXiv:0810.1216 (2008)
C.R. Harris et al., Nature 357–362, 585 (2020)
J.D. Hunter, Comput. Sci. Eng. 90–95, 9 (2007)
W. McKinney, in Proceedings of the 9th Python in Science Conference, eds. by S. van der Walt, J. Millman, pp. 56–61 (2010)
Acknowledgements
This paper is based on research developed in the DSSC Doctoral Training Programme. The authors would like to thank the referees whose comments greatly helped improve the quality of this manuscript. SG thanks Mohammad Babai for sharing his code, and for the very useful discussions throughout this work. SG also thanks the PANDA collaboration for the development of the PandaRoot software. SG acknowledges the use of the python packages numpy [36], matplotlib [37], and panda [38].
Funding
This work was funded by the Centre for Data Science and Systems’ Complexity, University of Groningen.
Author information
Authors and Affiliations
Consortia
Corresponding author
Ethics declarations
Conflict of interest
Not applicable.
Code availability
The code of the lotf algorithm is available at https://github.com/sgazagnes/lotf.
Additional information
Communicated by Carlos Munoz Camacho.
A Algorithms
A Algorithms
In this section, we present the code of the algorithms used in the present work.
1.1 A.1 The connect phase
In Sect. 3.1.1, we briefly presented the connect phase. In this appendix, we present and detail the corresponding pseudocode in Algorithm 1. The function FindStartingHits looks for the edges of the track by extracting all nodes that belong to the inner- or outermost layer of the STT (the “limit layers”). Every time we find such a node, we define a new track candidate using the structure PathCandidate and set the current node as the tail of the track. Neighbors of this node are extracted and stored in the neighbors vector. We use a variable CurDir to determine the current orientation of the track, based on the layer of the nodes that have been added so far (layer 0 being the closest to the beam-target interaction point). The CurDir variable is either UP, DOWN, or SAME depending on whether the layer index difference of the two most recently added nodes is 1, \(-1\), or 0, respectively.
We connect neighboring activated tubes iteratively to a track using a loop that successively looks for the next available neighbors around the most recently added node. If we have a single activated tube, it is automatically connected to the track. Otherwise, we use the procedure SortPerLayer to sort all the available neighboring nodes based on their layer index. We then add only neighbors that are consistent with the track direction and are adjacent to each other (function AreConnected). If the layer configuration of all neighbors is too complex (i.e. we have neighbors on all different layers and the track direction is unclear), we pause the track reconstruction and store the current list of neighbors. Then, the track reconstruction is resumed during the fitting phase to resolve these complex cases.
The track reconstruction also stops when we have no more neighboring nodes in sight. For the latter case, we test whether the current track looks complete by testing if its tail node (the first node added) and head node (the last node added) are on layer limits. This criterion assumes that a track transiting through the entire STT volume or circling in it is finished. If a track has no more neighboring nodes but one of its extremities ends in the middle of the STT, we flag it as ongoing for later investigation. Indeed, there might exist another track candidate, not directly neighboring, that it can be connected to.
1.2 A.2 The fitting phase
Algorithm 2 details the steps described in Sect. 3.1.2. For all the tracks flagged as ongoing, we use a local fitting approach based on a system of anchor nodes to look for the next best node to add to the track. The function ExtractLast3Anc recovers the last three anchors in the track that are used to fit the parametric equation system for the x and y coordinates (function FitXYLine). The variables xPred and yPred are the predicted coordinates of the next nodes according to the parametric equations. For all the neighboring nodes, we compute the distance (labeled hitDist) between the node position and the predicted coordinates of the next hit using the function ComputeDist. Additionally, we use the anchors to determine the track direction (CurDir) which is derived based on the layers the anchors belong to (similar to the method used during the connect phase). Once we tested all the hits, we look for the best possible fit in the list by taking the node with the minimal distance while having a consistent direction with respect to the CurDir variable. This is done using the function FindBestHit. As detailed in Sect. 3.1.2, we set a criterion on the maximum distance acceptable such that the function returns \(-1\) if no neighboring nodes are sufficiently close to the predicted node position.
When a good node is found, if it already belongs to another track, we check whether these tracks should be merged using the function CheckMerging which computes the intersection angle between two tracks. If the CheckMerging test is successful (see Sect. 3.1.2), the fitting phase for this particular track is stopped, and both tracks are flagged as ToMerge such that no more hits are added.
On the other hand, if CheckMerging returns false, or if the best node found does not belong to any track, we connect this node to the current track. We repeat the steps above updating the list of neighbors to include the neighbors of the most recently added tube. The algorithm continues until the current track is flagged for merging, or until the list of next neighbors is empty.
1.3 A.3 z-reconstruction
In this section, we detail the pseudo-code for the procedures used for the z-reconstruction in Algorithm 3. The CorrectSkewedXY procedure is the function used to estimate the exact hit position along the tube (see Fig. 10). The procedure InterpolateZCoord is the function used at the end of the track reconstruction to fit a parametric line in the z-direction and re-estimate consistently the z coordinates of all the nodes in the track. The functioning of the two procedures is detailed in Sect. 3.2.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Gazagnes, S., Kalantar-Nayestanaki, N., Messchendorp, J.G. et al. Reconstructing charged-particle trajectories in the PANDA Straw Tube Tracker using the LOcal Track Finder (LOTF) algorithm. Eur. Phys. J. A 59, 100 (2023). https://doi.org/10.1140/epja/s10050-023-01005-8
Received:
Accepted:
Published:
DOI: https://doi.org/10.1140/epja/s10050-023-01005-8