Co-ordinate issue observed in `AnalysisEfficiency` when using the `hasIntercept()` detector function
When using the AnalysisEfficiency
module, I found that the rejection of tracks that intercept the edges of the DUT area is not symmetrical as it has a 0.5 pixel pitch shift.
Line 208 of this module uses the hasIntercept()
function defined in Detector.cpp
to check if the track is outside of the DUT area, using a pixel tolerance of 1
. This should reject all tracks that intercept the DUT in the first and last columns/rows of the detector matrix (i.e. intercept is in the pixel ranges of [0.0,1.0]
and [npix-1,npix]
). However, I observed that tracks were rejected in the ranges [0.0,0.5]
and [npixels-1.5,npixels]
. Adapting the pixel tolerance to 2
shifts the track rejection ranges to [0.0,1.5]
and [npixels-2.5,npixels]
. This is consistent with an erroneous 0.5 pixel shift in co-ordinates.
Note that I used the output of m_detector->getColumn(localIntercept)
to determine the position of the track intercept in pixels (row direction similarly). I checked before and after the hasIntercept
function to make sure there were tracks intercepting the edge area to be rejected by the cut, and checked that the analysis had no other problems.