%%
%% This is file `cimsmple.tex'
%%
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from cimsmple.tex.
%% 
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[nocopyright]{cimento}


%%%%%%%%%%%%%%%%
%
% VERY IMPORTANT 
%
% In order to set a Copyright owner please use and fulfill the following command 
%\setcopyright{CERN on behalf the XXXXX Collaboration}
%
%
%%%%%%%%%%%%%%%

\usepackage{graphicx}
\graphicspath{{./Images/}}
\usepackage[version=4]{mhchem}  % chemical formulas
\usepackage{gensymb}            % contain command \degree
\usepackage{siunitx}   		   % SI units

\title{Improving ICARUS track reconstruction algorithms}
\author{Alessandro Maria Ricci~\from{ins:x}\from{ins:y},
on behalf of the ICARUS Collaboration}
\instlist{
  \inst{ins:x} Dipartimento di Fisica, Università di Pisa - Pisa, Italy
  \inst{ins:y} INFN, Sezione di Pisa - Pisa, Italy}
%% When only one author is present, please do not use the command \from{} near the author name.


\begin{document}

\maketitle

\begin{abstract}
The ICARUS experiment is part of the Short-Baseline Neutrino (SBN) program at Fermilab. One of its main goals is to investigate the possible existence of sterile neutrinos in the O($1$~\si{\eV}) mass range, and to shed light on the anomalies observed in the Liquid Scintillator Neutrino Detector (LSND) and MiniBooNE experiments. 

The ICARUS-T600 detector is a Liquid Argon Time Projection Chamber (LArTPC), capable of providing high-resolution 3D imaging and calorimetric reconstruction of ionizing particles. This detection technique enables a detailed study of neutrino interactions across a wide energy spectrum, ranging from a few \si{\kilo\eV} to several hundred \si{\giga\eV}.

Track reconstruction is performed using a software framework composed of multiple pattern recognition algorithms that start from raw detector signals to reconstruct the full event image. This includes identifying interaction vertices, tracks, and showers within the TPC. However, in some cases, these reconstruction algorithms may incorrectly split a particle’s track into shorter segments, treating each as an independent particle. The track length is used to estimate the particle's energy, so breaking a track can lead to an underestimation of the energy by several hundred \si{\mega\eV}. Moreover, if a track is fragmented into multiple segments, the particle identification (PID) — which exploits the energy loss as a function of residual range — may fail, potentially leading to the loss of the entire event.

To address this issue, we have developed an algorithm that detects and re-joins (or "stitches") tracks that were incorrectly split into multiple segments.
\end{abstract}

\section{ICARUS-T600 detector}

Proposed by Carlo Rubbia in 1977~\cite{Rubbia:LAr-TPC}, LArTPCs are ideal detectors for neutrino physics, as they simultaneously provide energetic reconstruction and 3D imaging of neutrino interactions.

Charged particles traversing liquid argon produce excited argon molecules that emit light. This is detected by the photomultipliers (PMTs): the fast component is used to identify the neutrino interaction time and provide the trigger~\cite{ICARUS:trigger}, while the slow component helps measure energy. Charged particles ionize the argon, generating about $42000$ $e^-$/\si{\mega\eV}. The resulting electrons are drifted by a $500$~\si{\volt/\centi\meter} electric field (at $1.6$~\si{\meter/\milli\second}) toward the anode, where three anodic wire planes collect them to create 2D images of charged particle tracks. These 2D images are then combined to reconstruct 3D trajectories with millimeter resolution.
\begin{figure}[t]
\centering
\includegraphics[width=\textwidth]{ICARUS_T600}
\caption{Left: internal view of one ICARUS-T600 module showing the main components of its two TPCs. Right: schematic view of the ICARUS-T600 readout principle, shown for one TPC. The charged particles ionize the argon generating excited molecules that emit light. This is detected by the photomultipliers (PMTs) to provide the event trigger. At the same time, the charged particles ionize the argon generating electrons that an electric field drifts to the anode, where the electrons are collected by three wire planes.}
\label{fig:ICARUS-T600}
\end{figure}

The ICARUS-T600 detector~\cite{ICARUS} is the first large-scale operating LArTPC, containing $760$ tons of ultra-pure liquid argon, of which $470$ tons are active mass. It consists of two identical adjacent cryostats ($3.6$ x $3.9$ x $19.6$~\si{\meter^3} each), each hosting two TPCs separated by a common cathode. On the readout side, three anodic wire planes (Induction-1, Induction-2 and Collection) — comprising $54000$ wires at angles of $0^{\degree}$, $-60^{\degree}$ and $60^{\degree}$ — collect the ionization charge. The Collection plane captures the full ionization charge. Combining the three planes allows precise 3D reconstruction of particle trajectories.

\section{Track breaking during reconstruction}

The reconstruction process is divided into two stages:
\begin{enumerate}
\item \textbf{Hit Finding:} waveforms corresponding to physical signals are searched for in the deconvolved wire waveforms and converted into time and spacial coordinates.
\item \textbf{Track Reconstruction:} Hits are passed to Pandora~\cite{Pandora}, a pattern-recognition framework that performs full 3D event reconstruction, including interaction vertex, track, and electromagnetic shower identification.
\end{enumerate}

Track splitting into multiple segments can occur due to local inefficiencies in hit detection, particle deflection, or particles crossing the cathode or the Induction-1 wire support. Pandora may erroneously split a particle’s track into shorter segments which are treated as independent tracks.

The split tracks are sometimes part of a poorly reconstructed event: the start and end points of the segments may be reversed or the interaction vertex may be incorrectly placed between the two segments. In some cases, segments generated in one neutrino interaction are erroneously associated to a different interaction.
\begin{figure}[t]
\centering
\includegraphics[width=0.95\textwidth]{Track_breaking}
\caption{2D image of a $\nu_\mu CC$ interaction, i.e. charged current interaction of $\nu_\mu$ with Argon, in the Collection plane. The track of the muon is broken in two segments wrongly considered as independent particles.}
\label{fig:track breaking}
\end{figure}

Fig.~\ref{fig:track breaking} shows the example of a muon track $286$~\si{\centi\meter} long broken by Pandora into a first $86$~\si{\centi\meter} segment and a second segment treated as an independent particle. Assuming an energy loss $\frac{dE}{dx}\sim 2$~\si{\mega\eV/\centi\meter}, this results in a $\sim 400$~\si{\mega\eV} underestimation of the muon energy, which in turn affects the neutrino energy estimate. PID based on $\frac{dE}{dx}$ vs. residual range may also fail to properly identify the particle, leading to the loss of the event.

\section{Stitching algorithm}

We developed an algorithm that detects and stitches the broken tracks by evaluating all possible segment pairs in each event (including those from different interactions):
\begin{figure}[ht]
\centering
\includegraphics[width=0.6\textwidth]{Ordering}
\caption{In the first stage, the stitching algorithm orders the barycenters of the segments and the interaction point (vertex) along the z-axis.}
\label{fig:track ordering}
\end{figure}
\begin{enumerate}
\item \textbf{Vertex Alignment:} The algorithm computes the coordinates of the interaction vertex and of the segments' barycenters along the z-axis (Fig.~\ref{fig:track ordering}).
\item \textbf{Compatibility Check:} If the vertex lies between the two barycenters, this means the two segments belong to different particles or Pandora wrongly determined the interaction point. In this case, the segments are deemed incompatible/non-repairable and the pair is rejected.
\item \textbf{Endpoint Correction:} For compatible segments, the algorithm correctly identifies the start and end points of the segments based on their 3D distance from the vertex.
\item \textbf{Overlap Check:} If two segments overlap along the z-axis (Fig.~\ref{fig:Tss}), they are accepted if:
\begin{equation}
T_{ss}=\frac{\left|z_{s_2}-z_{e_1}\right|}{\min\left(D_{z,1},D_{z,2}\right)}<0.7,\qquad D_{z,i}=\left|z_{e_i}-z_{s_i}\right|.
\label{eq:Tss}
\end{equation}
\item \textbf{Angle Check:} The angle $\theta$ between the two segments (Fig.~\ref{fig:Theta and Dss}) must satisfy:
\begin{equation}
\theta = \arccos\left(\frac{\vec{T}_1\cdot\vec{T}_2}{\left|\vec{T}_1\right|\left|\vec{T}_2\right|}\right)<\theta_{0/1},
\end{equation}
with $\theta_0=35^{\degree}$ if the segments belong to the same interaction or $\theta_1=30^{\degree}$ if the segments have been attributed to different interactions by Pandora.
\item \textbf{Distance Check:} The 3D distance between the end point of the first segment and the start point of the second segment (Fig.~\ref{fig:Theta and Dss}) must satisfy:
\begin{equation}
D_{ss}=\frac{\sqrt{\left(x_{s_2}-x_{e_1}\right)^2+\left(y_{s_2}-y_{e_1}\right)^2+\left(z_{s_2}-z_{e_1}\right)^2}}{\min\left(D_{se,1},D_{se,2}\right)}<D_{0/1},
\end{equation}
with $D_{se,i}=\left|\vec{T}_i\right|=\left|\vec{e}_i-\vec{s}_i\right|$, $D_0=0.7$ if the segments belong to the same interaction or $D_1=0.9$ if the segments have been attributed to different interactions by Pandora.
\end{enumerate}
\begin{figure}[t]
\centering
\includegraphics[width=0.6\textwidth]{Tss}
\caption{If the two segments overlap along the z-axis, the algorithm requires $T_{ss}<0.7$ (eq.~\eqref{eq:Tss}).}
\label{fig:Tss}
\end{figure}
\begin{figure}[t]
\centering
\includegraphics[width=0.7\textwidth]{Theta_and_Dss}
\caption{The algorithm verifies the angle between the directions of the segments $\vec{T}_1$ and $\vec{T}_2$ and the 3D distance between the end point of the segment $\vec{T}_1$ and the start point of the segment $\vec{T}_2$.}
\label{fig:Theta and Dss}
\end{figure}

\section{Event selection}

We applied the following criteria to select $\nu_\mu CC$ candidate events:
\begin{enumerate}
\item interaction vertex at least $25$~\si{\centi\meter} from the edge of the detector active mass;
\item reconstructed track contained within $5$~\si{\centi\meter} from the edge of the detector active mass;
\item reconstructed track length $L_{trk,reco}\geq 20$~\si{\centi\meter} to exclude delta rays;
\item reconstructed track associated with a particle and not a shower;
\item reconstructed track identified as a muon via $\frac{dE}{dx}$ vs. residual range, using a fit with high thresholds to account for degradation due to track fragmentation.
\end{enumerate}

For the $\nu_\mu$ disappearance analysis~\cite{1muNp}, a neutrino oscillation analysis, additional tighter criteria are applied to select fully contained $\nu_\mu CC$ events with exactly one muon and at least one proton in the final state ($1\mu Np$ selection): 1) PMT signal within beam spill, with no Cosmic Ray Tagger (CRT) signal~\cite{ICARUS} and matching TPC tracks; 2) muon with $L_{trk,reco}\geq 50$~\si{\centi\meter}; 3) at least one proton with $E_k>50$~\si{\mega\eV} ($L_{trk,reco}>2.3$~\si{\centi\meter}); 4) no additional pion or gamma.

\section{Algorithm performance}

To evaluate the performance of the algorithm, we defined efficiency (E) and purity (P) on all muon tracks (broken and not broken) considered by the algorithm:
\begin{equation}
E=\frac{n_{correctly\, stitched\, tracks}}{n_{reparable\, tracks}},\qquad P=\frac{n_{correctly\, stitched\, tracks}}{n_{stitched\, tracks}}.
\end{equation}

Using Monte Carlo (MC) data with $65573$ muons from $\nu_\mu CC$ interactions ($L_{trk,MC} \geq 50$~\si{\centi\meter}), we define broken tracks as those with two or more segments associated to the same MC ID of the particle, which means that they are associated to the same MC particle. Additionally, we exclude segments with negligible hit/energy fractions, i.e. with less than $10\%$ of hits and energy (H/E) of the MC track. The algorithm performance is summarized in Table~\ref{tab:performance}.
\begin{table}[h]
\caption{Algorithm performance as estimated in Monte Carlo simulations}
\label{tab:performance}
\begin{tabular}{|c|c|c|c|c|}
\hline
Cuts & Broken $\mu$ & Reparable $\mu$ & Correctly stitched $\mu$ (E,P) & Wrongly stitched $\mu$ \\
\hline
$H/E\geq 10\%$ & $2916$ & $1854$ & $1442\, \left(77.8\%,98.3\%\right)$ & $25$ \\
\hline
No cut on $H/E$ & $3755$ & $2384$ & $1727\, \left(72.4\%,88.7\%\right)$ & $219$ \\
\hline
\end{tabular}
\end{table}

We checked the algorithm performance also on the real data with the $1\mu Np$ selection. It performs a stitch in about $3.2\%$ of the selected events. Fig.~\ref{fig:results} shows the distribution of the end points of the tracks along the z-axis before and after the stitching. The track breaking due to Pandora brings to an excess of tracks stopping at $z=0$, where the wire support of Induction-1 is located. The stitching algorithm significantly reduces the number of broken tracks from $2.4\%$ to $1.4\%$ at $z=0$.
\begin{figure}[t]
\centering
\includegraphics[width=0.8\textwidth]{Muon_z-end}
\caption{Distribution of the end points of the muon tracks along the z-axis before and after applying the stitching algorithm.}
\label{fig:results}
\end{figure}

\section{Conclusions}

We conducted a study using a signal of $\nu_\mu CC$ events as reconstructed in Monte Carlo simulations and ICARUS data, which shows that approximately $6\%$ of the muon tracks are mis-reconstructed as multiple segments by Pandora. This results in an underestimate of the muon and neutrino energy which generates a systematic uncertainty in the analysis and also a reduction of the neutrino signal selection efficiency.

We developed a stitching algorithm that identifies and merges the segments into the original muon track. The algorithm has been validated through Monte Carlo simulations, demonstrating an efficiency of about $73\%$ and a purity of about $89\%$. The algorithm has been applied to a selected sample of reconstructed $\nu_\mu CC$ events in the real data. The algorithm performs a stitching process in about $3.2\%$ of the events, significantly reducing the excess of broken tracks at $z=0$, where the wire support of Induction-1 is located. It will be integrated into the reconstruction chain to improve the overall performance of ICARUS.

\acknowledgments
This work was supported by the EU Horizon 2020 Research and Innovation Program under the Marie Sklodowska-Curie Grant Agreement No. 734303, 822185, 858199 and 101003460, and the Horizon Europe Research and Innovation Program under the Marie Sklodowska-Curie Grant Agreement No. 101081478.

\begin{thebibliography}{9}
\bibitem{Rubbia:LAr-TPC} \BY{C. Rubbia} CERN-EP 77–08 (1977).
\bibitem{ICARUS:trigger} \BY{ICARUS Collaboration} arXiv:2506.20137.
\bibitem{ICARUS} \BY{ICARUS Collaboration} \IN{European Physical Journal C}{83}{2023}{467}.
\bibitem{Pandora} \BY{J. S. Marshall and M. A. Thomson} \IN{The European Physical Journal C}{75}{2015}{439}.
\bibitem{1muNp} \BY{M. A. Pons on behalf of the ICARUS Collaboration} \IN{Particles}{8}{2025}{18}.
\end{thebibliography}

\end{document}
%%
%% End of file `cimsmple.tex'.
