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:
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.
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:
The EmptyHitsTrackLength variable is then simply the maximal difference of successive distance elements of the sorted distance list:
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:
with \(j\) being the pulse with:
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¶
- icecube.common_variables.track_characteristics.I3TrackCharacteristicsCalculator module
I3TrackCharacteristicsCalculator
I3TrackCharacteristicsCalculator.Configure()
I3TrackCharacteristicsCalculator.OutputI3TrackCharacteristicsValuesName
I3TrackCharacteristicsCalculator.ParticleName
I3TrackCharacteristicsCalculator.Physics()
I3TrackCharacteristicsCalculator.PulseSeriesMapName
I3TrackCharacteristicsCalculator.PyLogLevel
I3TrackCharacteristicsCalculator.TrackCylinderRadius
- icecube.common_variables.track_characteristics.segments module