icecube.common_variables.track_characteristics package

The track_characteristics sub project of CommonVariables provides C++ utility functions (with pybindings), icetray modules, and icetray segments to calculate and to book the following track characteristics cut variables:

  • AvgDomDistQTotDom (formerly named “AvgDistQ”)

  • EmptyHitsTrackLength (formerly named “LEmpty”)

  • TrackHitsSeparationLength (formerly named “Separation”)

  • TrackHitsDistributionSmoothness

Note

The TrackHitsDistributionSmoothness value [-1;+1] describes how uniformly the hits of a given I3RecoPulseSeriesMap are distributed along the track (given by its I3Particle object), where 0 means uniformly distributed.

The I3Cuts implementation of this cut variable is wrong if there are more than only one pulse in a I3RecoPulseSeries, because it takes the hit distances along the track (which depends only on the DOM position) for every pulse of a DOM and not only once!

The implementation of the TrackHitsDistributionSmoothness cut variable of this CommonVariables sub project takes the hit distance along the track only once for a DOM.

The current version of the code only calculates a value for at least 3 hits, in every other case, NaN is returned.

Variable Definitions

This section lists the definitions of the variables calculated by the common_variables.track_characteristics module.

Note

All variables consider only pulses which are within the configured cylinder radius around the configured track!

So the mathematical variable \(NHitDoms\) in this sub project denotes the number of hit DOMs within the configured cylinder radius around the configured track.

AvgDomDistQTotDom

The average DOM distance from the track weighted by the total charge of each DOM. It is calculated using the following formula:

\[AvgDomDistQTotDom := \frac{1}{\sum_{i=1}^{NHitDoms} QTotDom_i} \sum_{i=1}^{NHitDoms} dist(Dom_i,Track) \cdot QTotDom_i\]

where \(QTotDom_i\) is the total charge of the i’th DOM and \(dist(Dom_i,Track)\) is the closest approach distance of the i’th DOM to the configured track.

EmptyHitsTrackLength

The maximal track length of the track, which got no hits from hit DOMs within the specified cylinder radius around the track.

Note

This variable is only defined for \(NHitDoms \geq 2\). Otherwise this variable is set to NAN.

The algorithm to obtain this variable can be described as follows:

First a list of the projected position of the hit DOMs is created.

\[domDistList := \left\{ distAlongTrack(Dom_i, Track) \right\}\]

where \(distAlongTrack(Dom_i, Track)\) is the projected position of the i’th DOM on the line of the configured track, where \(i\) goes from \(1\) to \(NHitDoms\).

Then this distance list is sorted in ascending order:

\[ascDomDistList := ascendingSort(domDistList)\]

The EmptyHitsTrackLength variable is then simply the maximal difference of successive distance elements of the sorted distance list:

\[EmptyHitsTrackLength := max( ascDomDistList[i+1] - ascDomDistList[i] )\]

where \(i\) goes from \(1\) to \(NHitDoms-1\).

TrackHitsDistributionSmoothness

The TrackHitsDistributionSmoothness is the maximum relative deviation of the pulses from a unifrom distribution along the track.

Be \(l_i\) the length of the track to the \(i\) th pulse in regard to the first pulse in the sorted distance list:

\[TrackHitsDistributionSmoothness := \frac{j}{n} - \frac{l_j}{l_n}\]

with \(j\) being the pulse with:

\[max( \left| \frac{j}{n} - \frac{l_j}{l_n} \right| )\]

The first and the last (\(n\) th) pulse are ignored.

TrackHitsSeparationLength

Calculates the COG of the first quarter of hits (hits are sorted by time) and the COG of the last quarter of hits. TrackHitsSeparationLength is then the distance between the projection of the two COGs onto the LineFit.

Submodules