SimpleTrackingMM method - checks in CanTrack
At this time, the SimpleTrackingMM
method implements a check on the number of MicroMega hits for tracking, using the CanTrack()
function.
CanTrack()
checks on upstream and downstream MM. For Downstream MM, the code is:
bool MManager::DownStreamOK() const
{
const unsigned int Nup = downstream.size();
if(Nup < 1) return false; //TODO: in theory is possible with just one
else return true;
}
So, even if only one of the downstream MM has a valid cluster, the code will return true
. It seems to me this is inconsistent with SimpleTrackingMM
, that relies on the two hits after the magnet (see https://gitlab.cern.ch/P348/p348-daq/-/blob/master/p348reco/tracking.h?ref_type=heads#L47
).
I checked the following:
-
DownStreamOK()
is called only inCanTrack()
-
CanTrack()
is used inSimpleTrackingMM()
,PointDeflectionTracking()
,PrintMM()
,GenfitTrack()
It looks that PointDeflectionTracking
has to do with old (2018!) visible-mode data. My proposal: change DownStreamOK()
to DownStreamOK(bool requireAtLeastTwo=false)
, and set requireAtLeastTwo=true
for SimpleTrackingMM
May I ask your opinion @bbantoob @mituzi? I know that for appropriate tracking we do not rely on this code, but this is useful in early stage of analysis.