Prolongation of segment and Momentum estimation

MARPLE also provide some functions which could be usefull in general such as prolongation of information through detector or estimation of momentum. Here you can find examples how to do it.

  1. Get RSEG/RTRA into MARPLE
    In case you want to use marple functions you need to create a marple object. Just use a proper RcPoint class :

      RSEG >>>>
      - To pass ArtePointer<RSEG> rseg information into the marple do :
      // The following parameter must be equal 0 if you want to use first point 
      //   of RSEG  or 1 if you need end point 
      int takeEndPoint =  1;
      RcSegPoint tmpPoint( rseg, takeEndPoint );

      RTRA >>>>
      - To pass ArtePointer<RTRA> rtra information into the marple do :
      RcTraPoint tmpPoint( rtra ); 

  2. Add more information to object
    You can manipulate with marple object, add, change parameters :

    tmpPoint.setX( newX);
    tmpPoint.setY( newY); 
    tmpPoint.settx( newTX);
    tmpPoint.setty( newTY);  // e.g. correct OTR slope by newTY = Yotr / Zotr;
    tmpPoint.setpe( newOneOverMomentum); // e.g. you want prolongate VDS segment
                                         // using momentum from VDS-ECAL match; 

    Of course, those functions would not change RSEG/RTRA table, but helps to create your own segment and calculate its parameters at the different Z position.

  3. How to get parameters at different Z
    To get parameters of the segment/track at the given Z_needed position create a marple object and then prolongate it with :

    tmpPoint.prolongate(Z_needed, iErr); 
    // Now the tmpPoint will return parameters at the required Z position 
    float newX = tmpPoint.x();
    float newY = tmpPoint.y();
    float newTX = tmpPoint.tx();
    float newTY = tmpPoint.ty();

    If the momentum information is not available the track is prolongated as a neutral one along the straight line.

  4. How to estimate momentum
    Create temporary point tmpPoint as in the examples above. Than you can estimate momentum for it using target constrain. The estimation of momentum using average Pt kick in the magnet could be used as initial estimation of momentum which helps faster converge.

    // of course we need to take into account vertical angle, 
    // but it is ok for initial parameter
    float initialOneOverMomentum =( tmpPoint.z()*tmpPoint.tx() - tmpPoint.x())/288;
    tmpPoint.setpe( initialOneOverMomentum);
    tmpPoint.estimatePEfromTAR( nIteration, iErr ); \\

    where nIteration is desired number of iteration (integer) usually 5 is ok.

  5. How to match

    Take one of the standard marple match routine into your directory and change it according to your needs. The matchsvdot.C could be the best example unless you want to match with ECAL then take matchsvdecal.C function. See also Example HOW to write match function

alphabetic index hierarchy of classes

Olya Igonkina November-2001

generated by doc++