Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-10156

Bug in TEveTrackPropagator::IntersectPlane

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Medium
    • Resolution: Fixed
    • Affects Version/s: 6.12/06
    • Fix Version/s: master
    • Component/s: Graphics
    • Labels:
      None
    • Environment:

      macOS 10.13.6, ROOT 6.12/06

      Description

      Two bugs in TEveTrackPropagator:

      1) In function TEveTrackPropagator::IntersectPlane, file TEveTrackPropagator.cxx, line 934:

      {{ if (fH.fCharge && fMagFieldObj && p.Perp2() > kPtMinSqr)}}

      has to be changed to

      {{ if (fH.fCharge && fMagFieldObj)}}

      Explanation: p.Perp2() is the transversal momentum component i.e. hypot(px, py). The logic of the current check is that if the magnetic field is along z, then if the momentum is along z, the trajectory is a line. But here a generic field is supported. But kPtMinSqr is 1e-20. But if one is generating momentum components on a grid, it can happen that px=py=0 exactly.

      2) In function TEveTrackPropagator::HelixIntersectPlane, file TEveTrackPropagator.cxx, lines 882-883:

      {{ delta = forwV - pos;}}
      itsect = pos + delta * (d / (d - new_d));

      has to be changed to

      delta = forwV - pos4;
      itsect = pos4 + delta * ((point - pos4).Dot / delta.Dot);

      Explanation: pos is the starting position of the track, so the current code is computing the intersection with the plane using a line from the starting position to the last propagated position. The new code uses the last segment of the trajectory.

        Attachments

          Activity

            People

            • Assignee:
              matevz Matevz Tadel
              Reporter:
              gipetril Giacomo Petrillo
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: