tracking in FS

From: I. G. Bearden (bearden@hehi03.nbi.dk)
Date: Thu Jun 22 2000 - 05:04:26 EDT

  • Next message: Trine Tveter: "BrTPCClusterFinder - dx=0 problem"

    Dear All,
    I read Trine's message (which I do not quote, but can be found in the
    archives) with great interest.
    I have also been trying to make tracks in the Front Forward Spec. To
    this end I am working on
    the cleverly named BrFFSTrackingModule.  This is copied directly from
    BrMRSTrackingModule,
    and edited to make tracks ("FFSTracks").  The reason that I proceeded in
    this way was that I found the
    BrMRSTrackingModule a bit more straightforward than the existing
    BrFSTrackingModule, and since
    I am far from the sharpest tool in the programming shed I took the easy
    way out.
    I have not yet included the swim back through D1.
    I have though included methods for getting and setting the
    entrance and exits to D2 and D1, and this has given me a bit of a
    problem with which I hope one of you
    sharper tools can help.
    To find the entrance to D2, I do the following:
          // Find intersection between track and front face of
          // magnet and track and back face of magnet
          Float_t EntX, EntY, EntZ, ExtX, ExtY, ExtZ;
          //find intersection of track with front and back plane of magnet
          //first get entrance plane of magnet:
          BrPlane3D frontPlane =
    fMagnetVolume->GetEffectiveEdgeEntrancePlane();
          //exit plane:
          BrPlane3D backPlane =  fMagnetVolume->GetEffectiveEdgeExitPlane();
    
          // line of track in front tracking module, transform to
          // magnet coordinate system:
          BrLine3D
    backLine(fMagnetVolume->GlobalToLocal(BackTrack_p->GetTrackLine()));
            BrLine3D
    frontLine(fMagnetVolume->GlobalToLocal(FrontTrack_p->GetTrackLine()));
          BrVector3D backInter =
    backPlane.GetIntersectionWithLine(backLine);
          BrVector3D frontInter =
    frontPlane.GetIntersectionWithLine(frontLine);
          //now I should (?) be able to transform the position components
          //of the vector to the global coordinate system
          BrVector3D frontPoint;
          BrVector3D backPoint;
          fMagnetVolume->LocalToGlobal(frontInter,frontPoint,0);
          fMagnetVolume->LocalToGlobal(backInter,backPoint,0);
          cout << "frontPoint " << frontPoint << endl;
          cout << "backPoint " << backPoint << endl;
          EntX = frontPoint.GetX();
          EntY = frontPoint.GetY();
          EntZ = frontPoint.GetZ();
          ExtX = backPoint.GetX();
          ExtY = backPoint.GetY();
          ExtZ = backPoint.GetZ();
    
    I then SetEntranceX, etc.  All this seems to work inasmuch as I extract
    values, and they are carried
    correctly through.  The problem is that the intersection positions seem
    to be incorrect.  That is, when
    I draw the FFS, and draw the 'local tracks' in T1 and T2 they go through
    all the detector hits.  When I draw
    the FFSTrack, they are systematically displaced (but parallel to!) the
    'local tracks'   I suppose this is
    because I have screwed up somewhere with the coordinate transformations,
    but I cannot find the mistake(s).
    Has anyone run into similar problems?  Have any (better) ideas how to do
    this?
    
    Also, should we continue with only FSTracks, or should we also have
    FFSTracks?
    I suppose we could certainly have FSTracks without T1 (and maybe even
    T2?), but for the
    first running, and for all data toward mid-rapidity we will have only
    the FFS.
    My feeling is that Djamel and Christian would argue for a new class
    FFSTracks, does anyone else have an
    opinion?
    Finally, to give credit where it is due, the part of this code which
    seems to work was taken from
    Djamels PID stuff.  He has written a nice routine which calculates the
    actual path of the particle through the
    magnet.  I guess this should not be in PID, but more naturally falls
    under tracking (except that one doesn't--in
    principal, anyway--know the charge of the particle until we do some
    PID).  Any comments?
    Cheers,
    
    --
    Ian--------------------------------------------------------------------
    | I.G. Bearden                                                         |
    | Niels Bohr Institute Tb 3    email:      bearden@nbi.dk              |
    | Blegdamsvej 17               phone:      (+45) 35 32 53 23           |
    | København Ø                    FAX:      (+45) 31 42 10 16           |
    | Danmark                                                              |
     ----------------------------------------------------------------------
    



    This archive was generated by hypermail 2b29 : Thu Jun 22 2000 - 05:08:59 EDT