ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2012, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////////
//
// Track matching between TRD online tracks and ESD tracks.
//
// Author: Felix Rettig <rettig@compeng.uni-frankfurt.de>
//
///////////////////////////////////////////////////////////////////////////////

#include <TH1.h>
#include <AliESDEvent.h>
#include <AliExternalTrackParam.h>
#include "AliESDtrack.h"
#include "AliESDTrdTrack.h"
#include <AliGeomManager.h>
#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"
#include "AliTRDonlineTrackMatching.h"

const Float_t AliTRDonlineTrackMatching::fgkSaveInnerRadius = 290.5;
const Float_t AliTRDonlineTrackMatching::fgkSaveOuterRadius = 364.5;

Float_t AliTRDonlineTrackMatching::fEsdTrackCutMinTPCrows = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMinRatioRowsFindableClusters = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxChi2TPCclusters = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxChi2ITSclusters = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxDCAtoVertexXY = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxDCAtoVertexZ = 0.;
UShort_t AliTRDonlineTrackMatching::fEsdTrackCutsITSlayerMask = 0;  // similar to 2011 default cut: 0x3
Float_t AliTRDonlineTrackMatching::fEsdTrackVCutsChi2TPCconstrainedVsGlobal = 0.;
Float_t	AliTRDonlineTrackMatching::fEsdTrackCutPtDCAOfs = 0.;
Float_t	AliTRDonlineTrackMatching::fEsdTrackCutPtDCACoeff = 0.;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutMinimal = kFALSE;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutRequireTPCrefit = kTRUE;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutRequireITSrefit = kFALSE;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutPrim = kFALSE;

AliTRDonlineTrackMatching::AliTRDonlineTrackMatching() :
  TObject(),
  fTRDgeo(NULL),
  fMinMatchRating(0.25),
  fHistMatchRating(NULL)
{
  // default ctor
  SetEsdTrackDefaultCuts("minimal");
}

AliTRDonlineTrackMatching::AliTRDonlineTrackMatching(const AliTRDonlineTrackMatching &c) :
  TObject(c),
  fTRDgeo(c.fTRDgeo),
  fMinMatchRating(c.fMinMatchRating),
  fHistMatchRating(c.fHistMatchRating)
{
  // copy ctor
}

AliTRDonlineTrackMatching::~AliTRDonlineTrackMatching() {

  // dtor

  delete fTRDgeo;
  fTRDgeo = NULL;
}

Short_t AliTRDonlineTrackMatching::EstimateSector(const Double_t globalCoords[3]) {

  // estimates sector by phi angle in x-y plane

  if ((TMath::Abs(globalCoords[0]) > 600) || (TMath::Abs(globalCoords[0]) > 600) || (TMath::Sqrt(globalCoords[0]*globalCoords[0] + globalCoords[1]*globalCoords[1]) < 0.01)){
    //printf("GGG %.3f/%.3f\n", globalCoords[0], globalCoords[1]);
    return -1;
  } else {
    Double_t ang = TMath::ATan2(globalCoords[1], globalCoords[0]);
    if (ang > 0){
#ifdef TRD_TM_DEBUG
      printf("	  es: %.2f/%.2f	 -> phi: %.2fdeg -> Sec %02d  (A)\n",
	     globalCoords[0], globalCoords[1], TMath::ATan2(globalCoords[1], globalCoords[0])*180./TMath::Pi(),
	     TMath::FloorNint(ang/(20./180.*TMath::Pi())));
#endif
      return TMath::FloorNint(ang/(20./180.*TMath::Pi()));
    } else {
#ifdef TRD_TM_DEBUG
      printf("	  es: %.2f/%.2f	 -> phi: %.2fdeg -> Sec %02d  (B)\n",
	     globalCoords[0], globalCoords[1], TMath::ATan2(globalCoords[1], globalCoords[0])*180./TMath::Pi(),
	     17 - TMath::FloorNint(TMath::Abs(ang)/(20./180.*TMath::Pi())));
#endif
      return 17 - TMath::FloorNint(TMath::Abs(ang)/(20./180.*TMath::Pi()));
    }

  }
}

Short_t AliTRDonlineTrackMatching::EstimateLayer(Double_t radius) {

  // estimates layer by radial distance (for virtual stack at phi = 0)

  const Float_t rBoundaries[7] = {290.80, 302.20, 315.06, 327.55, 340.3, 352.80, 364.15}; // radial border lines centered between anode plane and successing radiator
  const Short_t rLayers[7] = {-1, 0, 1, 2, 3, 4, 5};
  for (UShort_t i = 0; i < 7; ++i){
    if (radius < rBoundaries[i])
      return rLayers[i];
  }
  return -2; // radius larger than outmost layer
}

Short_t AliTRDonlineTrackMatching::EstimateLocalStack(const Double_t globalCoords[3]) {

  // determines stack within sector by z position

  Double_t absZ = TMath::Abs(globalCoords[2]);
  Short_t signZ = (globalCoords[2] > 0.) ? 1 : -1;
  Double_t r = TMath::Sqrt(globalCoords[0]*globalCoords[0] + globalCoords[1]*globalCoords[1]);
  Short_t layer = EstimateLayer(r);

#ifdef TRD_TM_DEBUG
  printf("EstimateLocalStack A	r: %.2f	  x: %.2f/%.2f/%.2f  -> layer: %i    absZ = %.2f\n",
	 r, globalCoords[0], globalCoords[1], globalCoords[2], layer, absZ);
#endif

  if (layer < 0)
    return -1;

  Double_t innerStackHalfLength = AliTRDgeometry::GetChamberLength(0, 2) / 2.;  // same for all layers
  if (absZ < innerStackHalfLength)
    return 2;

  Double_t outerStackLength = AliTRDgeometry::GetChamberLength(layer, 1);

  absZ -= innerStackHalfLength;

#ifdef TRD_TM_DEBUG
  printf("EstimateLocalStack B	r: %.2f	  x: %.2f/%.2f/%.2f  -> layer: %i    absZ = %.2f    il: %.2f   ol: %.2f\n",
	 r, globalCoords[0], globalCoords[1], globalCoords[2], layer, absZ, 2.*innerStackHalfLength, outerStackLength);
#endif

  if (absZ > 2.05*outerStackLength)
    return (signZ > 0) ? -2 : -1; // outside supermodule in z direction

  if (absZ < outerStackLength)
    return (signZ > 0) ? 1 : 3;
  else
    return (signZ > 0) ? 0 : 4;

}

Short_t AliTRDonlineTrackMatching::EstimateStack(const Double_t globalCoords[3]) {

  // returns the closest TRD stack to a 3D position in global coordinates

  Short_t sec = EstimateSector(globalCoords);
  Short_t st = EstimateLocalStack(globalCoords);
#ifdef TRD_TM_DEBUG
  printf("EstimateStack sec %d  st %d\n", sec, st);
#endif
  if ((sec < 0) || (st < 0))
    return -1;
  else
    return 5*sec + st;
}

Bool_t AliTRDonlineTrackMatching::StackToTrack(const AliExternalTrackParam *track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss){

  // returns stack to track param

  stack = -1;
  layersWithTracklet = 0;

  UInt_t stackHits[fgkTrdStacks];
  Double_t x[3] = { 0. };
  memset(stackHits, 0, fgkTrdStacks*sizeof(UInt_t));

#ifdef TRD_TM_DEBUG
  printf("STACK-TO-TRACK\n");
#endif

  Double_t r = fgkSaveInnerRadius;
  while (r < fgkSaveOuterRadius){
    if (track->GetXYZAt(r, magFieldinKiloGauss, x)) {
      stack = EstimateStack(x);
      if (stack >= 0){
	stackHits[stack]++;
	if (stackHits[stack] > 16) // experimental
	  break;
#ifdef TRD_TM_DEBUG
	printf(" r=%.3fcm  %.2f/%.2f  -  %d hits for stack %d  S%02d-%d   (mag=%.1f)\n",
	       r, x[0], x[1], stackHits[stack], stack, stack/5, stack%5, magFieldinKiloGauss);
#endif
      }
    }
    r += 1.;
  }

  // find stack with most hits
  UInt_t bestHits = 0;
  for (UShort_t iStack = 0; iStack < fgkTrdStacks; ++iStack){
    if (stackHits[iStack] == 0)
      continue;
#ifdef TRD_TM_DEBUG
    printf("  finally %d hits in stack S%02d-%d\n", stackHits[iStack], iStack/5, iStack%5);
#endif
    if (stackHits[iStack] > bestHits){
      bestHits = stackHits[iStack];
      stack = iStack;
    }
  }

  if (stack >= 0){
#ifdef TRD_TM_DEBUG
    printf("best stack: S%02d-%d\n", TrdLsiSec(stack), TrdLsiSi(stack));
#endif
    return kTRUE;
  }

  return kFALSE;
}

Bool_t AliTRDonlineTrackMatching::StackToTrack(const AliESDtrack* track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss){

  // returns stack to ESD track

  if (track->GetOuterParam())
    return StackToTrack(track->GetOuterParam(), stack, layersWithTracklet, magFieldinKiloGauss);
  else if (track->GetInnerParam())
    return StackToTrack(track->GetInnerParam(), stack, layersWithTracklet, magFieldinKiloGauss);
  else
    return StackToTrack(track, stack, layersWithTracklet, magFieldinKiloGauss);
}

Bool_t AliTRDonlineTrackMatching::AcceptTrack(const AliESDtrack* esdTrack, const AliESDEvent* esdEvent){

  // returns result ESD track cuts

  if (!esdTrack)
    return kFALSE;

  UInt_t status = esdTrack->GetStatus();

  if (fEsdTrackCutMinimal){
    return ((status & AliESDtrack::kTPCout) > 0);
  }

  // require TPC fit
  if ((fEsdTrackCutRequireTPCrefit) && (!(status & AliESDtrack::kTPCrefit)))
    return kFALSE;

  // require ITS re-fit
  if ((fEsdTrackCutRequireITSrefit) && (!(status & AliESDtrack::kITSrefit)))
    return kFALSE;

  // TPC requirements
  Float_t nCrossedRowsTPC = esdTrack->GetTPCCrossedRows();
  Float_t ratioCrossedRowsOverFindableClustersTPC =
    (esdTrack->GetTPCNclsF() > 0) ? (nCrossedRowsTPC / esdTrack->GetTPCNclsF()) : 1.0;
  Float_t chi2PerClusterTPC =
    (esdTrack->GetTPCclusters(0) > 0) ? (esdTrack->GetTPCchi2()/Float_t(esdTrack->GetTPCclusters(0))) : 100.;

  if (
      (nCrossedRowsTPC < fEsdTrackCutMinTPCrows) ||
      (ratioCrossedRowsOverFindableClustersTPC < fEsdTrackCutMinRatioRowsFindableClusters) ||
      (chi2PerClusterTPC > fEsdTrackCutMaxChi2TPCclusters)
      )
    return kFALSE;

  // ITS requirements
  Float_t chi2PerClusterITS = (esdTrack->GetITSclusters(0) > 0) ? esdTrack->GetITSchi2()/Float_t(esdTrack->GetITSclusters(0)) : 1000.;
  UShort_t clustersInAnyITSlayer = kFALSE;
  for (UShort_t layer = 0; layer < 6; ++layer)
    clustersInAnyITSlayer += (esdTrack->HasPointOnITSLayer(layer) & ((fEsdTrackCutsITSlayerMask >> layer) & 1));

  if ((fEsdTrackCutsITSlayerMask != 0) &&
      ((clustersInAnyITSlayer == 0) || (chi2PerClusterITS >= fEsdTrackCutMaxChi2ITSclusters))
      )
    return kFALSE;

  // geometric requirements
  Float_t impactPos[2], impactCov[3];
  esdTrack->GetImpactParameters(impactPos, impactCov);

  if (TMath::Abs(impactPos[0]) > fEsdTrackCutMaxDCAtoVertexXY)
    return kFALSE;

  if (TMath::Abs(impactPos[1]) > fEsdTrackCutMaxDCAtoVertexZ)
    return kFALSE;

  if (fEsdTrackCutPrim){
    // additional requirements for primary tracks

    const AliESDVertex* vertex = esdEvent->GetPrimaryVertexTracks();
    if ((!vertex) || (!vertex->GetStatus()))
      vertex = esdEvent->GetPrimaryVertexSPD();

    Float_t chi2TPCConstrainedVsGlobal =
      (vertex->GetStatus()) ? esdTrack->GetChi2TPCConstrainedVsGlobal(vertex) : (fEsdTrackVCutsChi2TPCconstrainedVsGlobal + 10.);

    if (chi2TPCConstrainedVsGlobal > fEsdTrackVCutsChi2TPCconstrainedVsGlobal)
      return kFALSE;

    Float_t cutDCAToVertexXYPtDep =
      fEsdTrackCutPtDCAOfs + fEsdTrackCutPtDCACoeff/((TMath::Abs(esdTrack->Pt()) > 0.0001) ? esdTrack->Pt() : 0.0001);

    if (TMath::Abs(impactPos[0]) >= cutDCAToVertexXYPtDep)
      return kFALSE;

  }

  return kTRUE;
}

Bool_t AliTRDonlineTrackMatching::ProcessEvent(AliESDEvent *esdEvent, Bool_t updateRef, Int_t label) {

  // performs track matching for all TRD online tracks of the ESD event

  UInt_t numTrdTracks = esdEvent->GetNumberOfTrdTracks();
  if (numTrdTracks <= 0)
    return kTRUE;

  if (!AliGeomManager::GetGeometry()){
    AliError("Geometry not available! Skipping TRD track matching.");
    return kFALSE;
  }

  if (!fTRDgeo){
    fTRDgeo = new AliTRDgeometry();
  }

  //
  // ESD track selection and sorting by TRD stack
  //

  UInt_t esdTracksByStack[fgkTrdStacks][fgkMaxEsdTracksPerStack];
  UInt_t esdTrackNumByStack[fgkTrdStacks];
  memset(esdTrackNumByStack, 0, fgkTrdStacks*sizeof(UInt_t));

  UInt_t numEsdTracks = esdEvent->GetNumberOfTracks();
#ifdef TRD_TM_DEBUG
  UInt_t numEsdTracksAccepted = 0;
#endif
  Short_t stack;
  UShort_t layers;
  AliESDtrack* esdTrack;

  for (UInt_t iEsdTrack = 0; iEsdTrack < numEsdTracks; ++iEsdTrack){
    esdTrack = esdEvent->GetTrack(iEsdTrack);

    if (!esdTrack){
      AliError("invalid ESD track!");
      continue;
    }

    // track filter here
    if (!AcceptTrack(esdTrack, esdEvent))
      continue;
#ifdef TRD_TM_DEBUG
    else
      numEsdTracksAccepted++;
#endif

    // assign ESD track to TRD stack
    if (StackToTrack(esdTrack, stack, layers, esdEvent->GetMagneticField())){

      if (stack < 0){
#ifdef TRD_TM_DEBUG
	printf("#TRACKMATCHING - invalid stack for ESD track\n");
#endif
	continue;
      }

      // register track in relevant stacks
      Int_t stacksForReg[9] = {-1, -1, -1, -1, -1, -1, -1, -1, -1};
      stacksForReg[0] = stack; // stack hit
      stacksForReg[1] = (stack + 5) % 90; // same stack in next supermodule
      stacksForReg[2] = (stack - 5); // same stack in previous supermodule
      if (stacksForReg[2] < 0)
	stacksForReg[2] += 90;

      switch(TrdLsiSi(stack)){
      case 0:
	// stack 0
	stacksForReg[3] = stack + 1; // next stack in same supermodule
	stacksForReg[4] =  stacksForReg[1] + 1; // next stack in next supermodule
	stacksForReg[5] =  stacksForReg[2] + 1; // next stack in previous supermodule
	break;
      case 1:
      case 2:
      case 3:
	stacksForReg[3] = stack + 1; // next stack in same supermodule
	stacksForReg[4] =  stacksForReg[1] + 1; // next stack in next supermodule
	stacksForReg[5] =  stacksForReg[2] + 1; // next stack in previous supermodule
	stacksForReg[6] = stack - 1; // previous stack in same supermodule
	stacksForReg[7] =  stacksForReg[1] - 1; // previous stack in next supermodule
	stacksForReg[8] =  stacksForReg[2] - 1; // previous stack in previous supermodule
	break;
      case 4:
	stacksForReg[3] = stack - 1; // previous stack in same supermodule
	stacksForReg[4] =  stacksForReg[1] - 1; // previous stack in next supermodule
	stacksForReg[5] =  stacksForReg[2] - 1; // previous stack in previous supermodule
	break;
      default:
	break;
      }

#ifdef TRD_TM_DEBUG
      printf("#TRACKMATCHING - assigned ESD track %d to following TRD stacks:", iEsdTrack);
#endif

      // register for stacks
      for (UShort_t iReg = 0; iReg < 9; ++iReg){
	if (stacksForReg[iReg] < 0)
	  break;

	if (stacksForReg[iReg] >= 90){
	  AliError(Form("invalid stack for registration: %i", stacksForReg[iReg]));
	  continue;
	}

	if (esdTrackNumByStack[stacksForReg[iReg]] < fgkMaxEsdTracksPerStack - 1)
	  esdTracksByStack[stacksForReg[iReg]][esdTrackNumByStack[stacksForReg[iReg]]++] = iEsdTrack;
#ifdef TRD_TM_DEBUG
	else
	  printf("#TRACKMATCHING - maximum number (%d) of ESD tracks per stack reached for S%02d-%d (%d tracks total). Skipping track!\n",
		 fgkMaxEsdTracksPerStack, TrdLsiSec(stacksForReg[iReg]), TrdLsiSi(stacksForReg[iReg]), numEsdTracks);
	printf(" S%02d-%d", TrdLsiSec(stacksForReg[iReg]), TrdLsiSi(stacksForReg[iReg]));
#endif
      }
#ifdef TRD_TM_DEBUG
      printf(" (ESD-ASSIGN)\n");
#endif

//      if (esdTrackNumByStack[stack] >= fgkMaxEsdTracksPerStack){
//#ifdef TRD_TM_DEBUG
// 	printf("#TRACKMATCHING - maximum number (%d) of ESD tracks per stack reached for S%02d-%d (%d tracks total). Skipping track!\n",
// 	       fgkMaxEsdTracksPerStack, TrdLsiSec(stack), TrdLsiSi(stack), numEsdTracks);
//#endif
// 	continue;
//      }
//
//      esdTracksByStack[stack][esdTrackNumByStack[stack]++] = iEsdTrack;
//#ifdef TRD_TM_DEBUG
//      printf("#TRACKMATCHING - assigned ESD track %d to TRD stack S%02d-%d\n",
// 	     iEsdTrack, TrdLsiSec(stack), TrdLsiSi(stack));
//#endif
    }

  } // loop over esd tracks

#ifdef TRD_TM_DEBUG
  printf("#TRACKMATCHING - %d ESD tracks accepted, %d rejected\n",
	 numEsdTracksAccepted, numEsdTracks - numEsdTracksAccepted);
#endif

  //
  // search matching ESD track for each TRD online track
  //
  AliESDTrdTrack* trdTrack;
  Double_t trdPt;
  AliESDtrack* matchCandidate;
  AliESDtrack* matchTrack;
  Int_t matchEsdTrackIndexInStack;
  Double_t matchRating;
  Int_t matchCandidateCount;
  Double_t distY, distZ;

  for (UInt_t iTrdTrack = 0; iTrdTrack < numTrdTracks; ++iTrdTrack){

    trdTrack = esdEvent->GetTrdTrack(iTrdTrack);
    if ((label != -1) &&
	(trdTrack->GetLabel() != label))
      continue;

    if ((trdTrack->GetSector() < 0) || (trdTrack->GetSector() > 17) ||
	(trdTrack->GetStack() < 0) || (trdTrack->GetStack() > 4))
      continue;

    stack = TrdSecSiLsi(trdTrack->GetSector(), trdTrack->GetStack());
    trdPt = (esdEvent->GetMagneticField() > 0.) ? (-1.*trdTrack->Pt()) : trdTrack->Pt();
    matchTrack = NULL;
    matchEsdTrackIndexInStack = -1;
    matchRating = 0.;
    matchCandidateCount = 0;

#ifdef TRD_TM_DEBUG
    printf("#TRACKMATCHING - trying to match TRD online track %d in S%02d-%d\n",
	   iTrdTrack, trdTrack->GetSector(), trdTrack->GetStack());
#endif

    // loop over all esd tracks in the same stack and check distance
    for (UInt_t iEsdTrack = 0; iEsdTrack < esdTrackNumByStack[stack]; ++iEsdTrack){
      matchCandidate = esdEvent->GetTrack(esdTracksByStack[stack][iEsdTrack]);

      if (EstimateTrackDistance(matchCandidate, trdTrack, esdEvent->GetMagneticField(), &distY, &distZ) == 0){
	Double_t rating = RateTrackMatch(distY, distZ, matchCandidate->GetSignedPt(), trdPt);
#ifdef TRD_TM_DEBUG
	printf("#TRACKMATCHING  S%02d-%d  trd %d - esd %d   dy: %.3f    dz: %.3f   r: %.3f    pt e: %.2f  t: %.2f   match: %d\n",
	       trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, iEsdTrack,
	       distY, distZ, rating, matchCandidate->GetSignedPt(), trdPt,
	       (rating >= fMinMatchRating) ? 1 : 0);
#endif
	if (rating > 0.){
	  // possibly matching pair found
	  matchCandidateCount++;
	  if ((matchTrack == NULL) || (rating > matchRating)){
	    // new best match
	    matchTrack = matchCandidate;
	    matchEsdTrackIndexInStack = iEsdTrack;
	    matchRating = rating;
	  }
	}

      } else {
	// estimation of distance failed
#ifdef TRD_TM_DEBUG
	printf("TRACKMATCHING  S%02d-%d  trd %d - esd %d   failed\n",
	       trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, iEsdTrack);
#endif
      }
    } // loop over esd tracks in same stack

    if (fHistMatchRating){
      fHistMatchRating->Fill(matchRating);
    }

    if ((matchTrack) && (matchRating >= fMinMatchRating)){
      AliDebug(1, Form("S%02d-%d  trd %d - esd %d   match!    pt:  %.2f  %.2f",
		       trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, matchEsdTrackIndexInStack,
		       trdPt, matchTrack->GetSignedPt()));
#ifdef TRD_TM_DEBUG
      printf("#TRACKMATCHING  S%02d-%d  trd %d - esd %d   match!    pt:  %.2f  %.2f\n",
	     trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, matchEsdTrackIndexInStack,
	     trdPt, matchTrack->GetSignedPt());
#endif
      if (updateRef)
	trdTrack->SetTrackMatchReference(matchTrack);
    } else {
      if (updateRef)
	trdTrack->SetTrackMatchReference(NULL);
    }

  } // loop over TRD online tracks

  return kTRUE;
}

Bool_t AliTRDonlineTrackMatching::TrackPlaneIntersect(AliExternalTrackParam *trk, Double_t pnt[3], Double_t norm[3], Double_t mag){

  // calculates the intersection point of a track param and a plane defined by point pnt and normal vector norm

  UInt_t its = 0;
  Double_t r = 290.;
  Double_t step = 10.;
  Int_t flag = 0;
  Double_t dist = 0, dist_prev = 0;
  Double_t x[3] = {0., 0., 0.};

  dist = (x[0] - pnt[0]) * norm[0] + (x[1] - pnt[1]) *norm[1] + (x[2] - pnt[2]) * norm[2];

  while(TMath::Abs(dist) > 0.1) {

    trk->GetXYZAt(r, mag, x);

    if ((x[0] * x[0] + x[1] * x[1]) < 100.)  // extrapolation to radius failed
      return kFALSE;

    //distance between current track position and plane
    dist_prev = TMath::Abs(dist);
    dist = (x[0] - pnt[0]) * norm[0] + (x[1] - pnt[1]) * norm[1];
    if ((flag) && (TMath::Abs(dist) > dist_prev)){
      step /= -2.;
    }
    flag=1;
    r += step;
    its++;
    if ((r > 380.) || (r < 100.) || (its > 100) || (TMath::Abs(step) < 0.00001)){
      break;
    }
  }
  for (Int_t i=0; i<3; i++)
    pnt[i] = x[i];

  return kTRUE;
}

Int_t AliTRDonlineTrackMatching::EstimateTrackDistance(AliESDtrack *esd_track, AliESDTrdTrack* gtu_track, Double_t mag, Double_t *ydist, Double_t *zdist){

  // returns an estimate for the spatial distance between TPC offline track and GTU online track

  if ((!esd_track) || (!gtu_track))
    return -3;

  // AssertTRDGeometry();
  if (!fTRDgeo)
    fTRDgeo = new AliTRDgeometry();

  Float_t diff_y = 0;
  Float_t diff_z = 0;
  Int_t nLayers = 0;
  Double_t xtrkl[3];
  Double_t ptrkl[3];
  Double_t ptrkl2[3];
  UInt_t trklDet;
  UShort_t trklLayer;
  UInt_t stack_gtu;
  UShort_t stackInSector;

  for (UShort_t iLayer = 0; iLayer < 6; iLayer++){
    AliESDTrdTracklet* trkl = gtu_track->GetTracklet(iLayer);
    if (trkl){
      trklDet = trkl->GetDetector();
      trklLayer = TrdDetLyr(trklDet);
      stack_gtu = TrdDetLsi(trklDet);
      stackInSector = TrdDetSi(trklDet);

      // local coordinates of the outer end point of the tracklet
      xtrkl[0] = AliTRDgeometry::AnodePos();
      xtrkl[1] = trkl->GetLocalY();

      if(stackInSector == 2){ // corrected version by Felix Muecke
	xtrkl[2] = fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(trkl->GetBinZ()) -
	  (fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowSize(trkl->GetBinZ()))/2. -
	  fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(6);
      } else {
	xtrkl[2] = fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(trkl->GetBinZ()) -
	  (fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowSize(trkl->GetBinZ()))/2. -
	  fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(8);
      }

      // old draft version
      // xtrkl[2] = fTRDgeo->GetPadPlane(trklLayer, (trklDet/6) % 5)->GetRowPos(trkl->GetBinZ()) -
      //  	fTRDgeo->GetPadPlane(trklLayer, (trklDet/6) % 5)->GetRowSize(trkl->GetBinZ()) -
      //  	fTRDgeo->GetPadPlane(trklLayer, (trklDet/6) % 5)->GetRowPos(8);

      // transform to global coordinates
      TGeoHMatrix *matrix = fTRDgeo->GetClusterMatrix(trklDet);
      if (!matrix){
	if ((stack_gtu != 13*5+2) && (stack_gtu != 14*5+2) && (stack_gtu != 15*5+2))
	  AliDebug(1, Form("invalid TRD cluster matrix in EstimateTrackDistance for detector %i", trklDet));
	return -5;
      }
      matrix->LocalToMaster(xtrkl, ptrkl);
      fTRDgeo->RotateBack(gtu_track->GetSector() * 30, ptrkl, ptrkl2);  // ptrkl2 now contains the global position of the outer end point of the tracklet

      // calculate parameterization of plane representing the tracklets layer
      Double_t layer_zero_local[3] = {0., 0.,  0.};
      Double_t layer_zero_global[3], layer_zero_global2[3];

      matrix->LocalToMaster(layer_zero_local, layer_zero_global);
      fTRDgeo->RotateBack(trklDet, layer_zero_global, layer_zero_global2); // layer_zero_global2 points to chamber origin in global coords

      Double_t layer_ref_local[3] = {AliTRDgeometry::AnodePos(), 0.,  0.};
      Double_t layer_ref_global[3], layer_ref_global2[3];

      matrix->LocalToMaster(layer_ref_local, layer_ref_global);
      fTRDgeo->RotateBack(trklDet, layer_ref_global, layer_ref_global2); // layer_ref_global2 points to center anode pos within plane in global coords

      Double_t n0[3] = {layer_ref_global2[0]-layer_zero_global2[0],
			layer_ref_global2[1]-layer_zero_global2[1],
			layer_ref_global2[2]-layer_zero_global2[2]};

      Double_t n_len = TMath::Sqrt(n0[0]*n0[0] + n0[1]*n0[1] + n0[2]*n0[2]);
      if (n_len == 0.){ // This should never happen
	AliError("divison by zero in estimate_track_distance!");
	n_len = 1.;
      }
      Double_t n[3] = {n0[0]/n_len, n0[1]/n_len, n0[2]/n_len}; // normal vector of plane

      const AliExternalTrackParam *trackParam = esd_track->GetOuterParam();
      if (!trackParam) {
	trackParam = esd_track->GetInnerParam();
	if (!trackParam)
	  trackParam = esd_track;
      }

      AliExternalTrackParam *outerTPC = new AliExternalTrackParam(*trackParam);
      Bool_t isects = TrackPlaneIntersect(outerTPC, layer_ref_global2, n, mag); // find intersection point between track and TRD layer
      delete outerTPC;
      outerTPC = NULL;

      if (isects == kFALSE){ // extrapolation fails, because track never reaches the TRD radius
	return -1;
      }

      Double_t m[2] = {ptrkl2[0] - layer_ref_global2[0], ptrkl2[1] - layer_ref_global2[1]};
      Double_t len_m = TMath::Sqrt(m[0]*m[0] + m[1]*m[1]);
      diff_y += len_m;
      diff_z += TMath::Abs(ptrkl2[2] - layer_ref_global2[2]);
      nLayers++;
    }
  }

  if (nLayers > 0){
    *ydist = diff_y / nLayers;
    *zdist = diff_z / nLayers;
    return 0;
  }
  else
    return -4;
}

Double_t AliTRDonlineTrackMatching::PtDiffRel(Double_t refPt, Double_t gtuPt){

  // return relative pt difference

  if (TMath::Abs(refPt) > 0.000001){
    return (gtuPt - refPt) / refPt;
  } else
    return 0.;
}


Double_t AliTRDonlineTrackMatching::RateTrackMatch(Double_t distY, Double_t distZ, Double_t rpt, Double_t gpt){

  // returns a match rating derived from Y and Z distance as well as pt difference

  // maximum limits for spatial distance
  if ((distY > 5.) || (distZ > 20.))
    return 0.;

  // same pt sign required
  if ((rpt * gpt) < 0.)
    return 0.;

  Double_t rating_distY = -0.1 * distY + 1.;
  Double_t rating_distZ = -0.025 * distZ + 1.;
  Double_t rating_ptDiff = 1. - TMath::Abs(PtDiffRel(rpt, gpt));

  if (rating_ptDiff <  0.)
    rating_ptDiff = 0.2;

  Double_t total = rating_distY * rating_distZ * rating_ptDiff;

#ifdef TRD_TM_DEBUG
  if (total > 1.){
    printf("<ERROR> track match rating exceeds limit of 1.0: %.3f", total);
  }
#endif

  return total;
}


void AliTRDonlineTrackMatching::SetEsdTrackDefaultCuts(const char* cutIdent) {

  if (strcmp(cutIdent, "strict") == 0){

#ifdef TRD_TM_DEBUG
    printf("AliTRDonlineTrackMatching -- default track cuts selected");
#endif

    fEsdTrackCutMinimal = kFALSE;
    fEsdTrackCutPrim = kFALSE;

    fEsdTrackCutMinTPCrows = 70;
    fEsdTrackCutRequireTPCrefit = kTRUE;
    fEsdTrackCutMinRatioRowsFindableClusters = 0.8;
    fEsdTrackCutMaxChi2TPCclusters = 4.;
    fEsdTrackVCutsChi2TPCconstrainedVsGlobal = 36.;

    fEsdTrackCutRequireITSrefit = kFALSE;
    fEsdTrackCutMaxChi2ITSclusters = 36.;

    fEsdTrackCutMaxDCAtoVertexXY = 1000.;
    fEsdTrackCutMaxDCAtoVertexZ = 2.;
    fEsdTrackCutsITSlayerMask = 0x0;

    fEsdTrackCutPtDCAOfs = 0.0105;
    fEsdTrackCutPtDCACoeff = 0.0350;
  } else if (strcmp(cutIdent, "minimal") == 0){

#ifdef TRD_TM_DEBUG
    printf("AliTRDonlineTrackMatching -- minimal track cuts selected\n");
#endif

    fEsdTrackCutMinimal = kFALSE;
    fEsdTrackCutPrim = kFALSE;

    fEsdTrackCutMinTPCrows = 70;
    fEsdTrackCutRequireTPCrefit = kTRUE;
    fEsdTrackCutMinRatioRowsFindableClusters = 0.;
    fEsdTrackCutMaxChi2TPCclusters = 100.;
    fEsdTrackVCutsChi2TPCconstrainedVsGlobal = 1000.;

    fEsdTrackCutRequireITSrefit = kFALSE;
    fEsdTrackCutMaxChi2ITSclusters = 0.;

    fEsdTrackCutMaxDCAtoVertexXY = 1000.;
    fEsdTrackCutMaxDCAtoVertexZ = 1000.;
    fEsdTrackCutsITSlayerMask = 0x0;
  } else
    AliErrorClass("invalid cut set");

}
 AliTRDonlineTrackMatching.cxx:1
 AliTRDonlineTrackMatching.cxx:2
 AliTRDonlineTrackMatching.cxx:3
 AliTRDonlineTrackMatching.cxx:4
 AliTRDonlineTrackMatching.cxx:5
 AliTRDonlineTrackMatching.cxx:6
 AliTRDonlineTrackMatching.cxx:7
 AliTRDonlineTrackMatching.cxx:8
 AliTRDonlineTrackMatching.cxx:9
 AliTRDonlineTrackMatching.cxx:10
 AliTRDonlineTrackMatching.cxx:11
 AliTRDonlineTrackMatching.cxx:12
 AliTRDonlineTrackMatching.cxx:13
 AliTRDonlineTrackMatching.cxx:14
 AliTRDonlineTrackMatching.cxx:15
 AliTRDonlineTrackMatching.cxx:16
 AliTRDonlineTrackMatching.cxx:17
 AliTRDonlineTrackMatching.cxx:18
 AliTRDonlineTrackMatching.cxx:19
 AliTRDonlineTrackMatching.cxx:20
 AliTRDonlineTrackMatching.cxx:21
 AliTRDonlineTrackMatching.cxx:22
 AliTRDonlineTrackMatching.cxx:23
 AliTRDonlineTrackMatching.cxx:24
 AliTRDonlineTrackMatching.cxx:25
 AliTRDonlineTrackMatching.cxx:26
 AliTRDonlineTrackMatching.cxx:27
 AliTRDonlineTrackMatching.cxx:28
 AliTRDonlineTrackMatching.cxx:29
 AliTRDonlineTrackMatching.cxx:30
 AliTRDonlineTrackMatching.cxx:31
 AliTRDonlineTrackMatching.cxx:32
 AliTRDonlineTrackMatching.cxx:33
 AliTRDonlineTrackMatching.cxx:34
 AliTRDonlineTrackMatching.cxx:35
 AliTRDonlineTrackMatching.cxx:36
 AliTRDonlineTrackMatching.cxx:37
 AliTRDonlineTrackMatching.cxx:38
 AliTRDonlineTrackMatching.cxx:39
 AliTRDonlineTrackMatching.cxx:40
 AliTRDonlineTrackMatching.cxx:41
 AliTRDonlineTrackMatching.cxx:42
 AliTRDonlineTrackMatching.cxx:43
 AliTRDonlineTrackMatching.cxx:44
 AliTRDonlineTrackMatching.cxx:45
 AliTRDonlineTrackMatching.cxx:46
 AliTRDonlineTrackMatching.cxx:47
 AliTRDonlineTrackMatching.cxx:48
 AliTRDonlineTrackMatching.cxx:49
 AliTRDonlineTrackMatching.cxx:50
 AliTRDonlineTrackMatching.cxx:51
 AliTRDonlineTrackMatching.cxx:52
 AliTRDonlineTrackMatching.cxx:53
 AliTRDonlineTrackMatching.cxx:54
 AliTRDonlineTrackMatching.cxx:55
 AliTRDonlineTrackMatching.cxx:56
 AliTRDonlineTrackMatching.cxx:57
 AliTRDonlineTrackMatching.cxx:58
 AliTRDonlineTrackMatching.cxx:59
 AliTRDonlineTrackMatching.cxx:60
 AliTRDonlineTrackMatching.cxx:61
 AliTRDonlineTrackMatching.cxx:62
 AliTRDonlineTrackMatching.cxx:63
 AliTRDonlineTrackMatching.cxx:64
 AliTRDonlineTrackMatching.cxx:65
 AliTRDonlineTrackMatching.cxx:66
 AliTRDonlineTrackMatching.cxx:67
 AliTRDonlineTrackMatching.cxx:68
 AliTRDonlineTrackMatching.cxx:69
 AliTRDonlineTrackMatching.cxx:70
 AliTRDonlineTrackMatching.cxx:71
 AliTRDonlineTrackMatching.cxx:72
 AliTRDonlineTrackMatching.cxx:73
 AliTRDonlineTrackMatching.cxx:74
 AliTRDonlineTrackMatching.cxx:75
 AliTRDonlineTrackMatching.cxx:76
 AliTRDonlineTrackMatching.cxx:77
 AliTRDonlineTrackMatching.cxx:78
 AliTRDonlineTrackMatching.cxx:79
 AliTRDonlineTrackMatching.cxx:80
 AliTRDonlineTrackMatching.cxx:81
 AliTRDonlineTrackMatching.cxx:82
 AliTRDonlineTrackMatching.cxx:83
 AliTRDonlineTrackMatching.cxx:84
 AliTRDonlineTrackMatching.cxx:85
 AliTRDonlineTrackMatching.cxx:86
 AliTRDonlineTrackMatching.cxx:87
 AliTRDonlineTrackMatching.cxx:88
 AliTRDonlineTrackMatching.cxx:89
 AliTRDonlineTrackMatching.cxx:90
 AliTRDonlineTrackMatching.cxx:91
 AliTRDonlineTrackMatching.cxx:92
 AliTRDonlineTrackMatching.cxx:93
 AliTRDonlineTrackMatching.cxx:94
 AliTRDonlineTrackMatching.cxx:95
 AliTRDonlineTrackMatching.cxx:96
 AliTRDonlineTrackMatching.cxx:97
 AliTRDonlineTrackMatching.cxx:98
 AliTRDonlineTrackMatching.cxx:99
 AliTRDonlineTrackMatching.cxx:100
 AliTRDonlineTrackMatching.cxx:101
 AliTRDonlineTrackMatching.cxx:102
 AliTRDonlineTrackMatching.cxx:103
 AliTRDonlineTrackMatching.cxx:104
 AliTRDonlineTrackMatching.cxx:105
 AliTRDonlineTrackMatching.cxx:106
 AliTRDonlineTrackMatching.cxx:107
 AliTRDonlineTrackMatching.cxx:108
 AliTRDonlineTrackMatching.cxx:109
 AliTRDonlineTrackMatching.cxx:110
 AliTRDonlineTrackMatching.cxx:111
 AliTRDonlineTrackMatching.cxx:112
 AliTRDonlineTrackMatching.cxx:113
 AliTRDonlineTrackMatching.cxx:114
 AliTRDonlineTrackMatching.cxx:115
 AliTRDonlineTrackMatching.cxx:116
 AliTRDonlineTrackMatching.cxx:117
 AliTRDonlineTrackMatching.cxx:118
 AliTRDonlineTrackMatching.cxx:119
 AliTRDonlineTrackMatching.cxx:120
 AliTRDonlineTrackMatching.cxx:121
 AliTRDonlineTrackMatching.cxx:122
 AliTRDonlineTrackMatching.cxx:123
 AliTRDonlineTrackMatching.cxx:124
 AliTRDonlineTrackMatching.cxx:125
 AliTRDonlineTrackMatching.cxx:126
 AliTRDonlineTrackMatching.cxx:127
 AliTRDonlineTrackMatching.cxx:128
 AliTRDonlineTrackMatching.cxx:129
 AliTRDonlineTrackMatching.cxx:130
 AliTRDonlineTrackMatching.cxx:131
 AliTRDonlineTrackMatching.cxx:132
 AliTRDonlineTrackMatching.cxx:133
 AliTRDonlineTrackMatching.cxx:134
 AliTRDonlineTrackMatching.cxx:135
 AliTRDonlineTrackMatching.cxx:136
 AliTRDonlineTrackMatching.cxx:137
 AliTRDonlineTrackMatching.cxx:138
 AliTRDonlineTrackMatching.cxx:139
 AliTRDonlineTrackMatching.cxx:140
 AliTRDonlineTrackMatching.cxx:141
 AliTRDonlineTrackMatching.cxx:142
 AliTRDonlineTrackMatching.cxx:143
 AliTRDonlineTrackMatching.cxx:144
 AliTRDonlineTrackMatching.cxx:145
 AliTRDonlineTrackMatching.cxx:146
 AliTRDonlineTrackMatching.cxx:147
 AliTRDonlineTrackMatching.cxx:148
 AliTRDonlineTrackMatching.cxx:149
 AliTRDonlineTrackMatching.cxx:150
 AliTRDonlineTrackMatching.cxx:151
 AliTRDonlineTrackMatching.cxx:152
 AliTRDonlineTrackMatching.cxx:153
 AliTRDonlineTrackMatching.cxx:154
 AliTRDonlineTrackMatching.cxx:155
 AliTRDonlineTrackMatching.cxx:156
 AliTRDonlineTrackMatching.cxx:157
 AliTRDonlineTrackMatching.cxx:158
 AliTRDonlineTrackMatching.cxx:159
 AliTRDonlineTrackMatching.cxx:160
 AliTRDonlineTrackMatching.cxx:161
 AliTRDonlineTrackMatching.cxx:162
 AliTRDonlineTrackMatching.cxx:163
 AliTRDonlineTrackMatching.cxx:164
 AliTRDonlineTrackMatching.cxx:165
 AliTRDonlineTrackMatching.cxx:166
 AliTRDonlineTrackMatching.cxx:167
 AliTRDonlineTrackMatching.cxx:168
 AliTRDonlineTrackMatching.cxx:169
 AliTRDonlineTrackMatching.cxx:170
 AliTRDonlineTrackMatching.cxx:171
 AliTRDonlineTrackMatching.cxx:172
 AliTRDonlineTrackMatching.cxx:173
 AliTRDonlineTrackMatching.cxx:174
 AliTRDonlineTrackMatching.cxx:175
 AliTRDonlineTrackMatching.cxx:176
 AliTRDonlineTrackMatching.cxx:177
 AliTRDonlineTrackMatching.cxx:178
 AliTRDonlineTrackMatching.cxx:179
 AliTRDonlineTrackMatching.cxx:180
 AliTRDonlineTrackMatching.cxx:181
 AliTRDonlineTrackMatching.cxx:182
 AliTRDonlineTrackMatching.cxx:183
 AliTRDonlineTrackMatching.cxx:184
 AliTRDonlineTrackMatching.cxx:185
 AliTRDonlineTrackMatching.cxx:186
 AliTRDonlineTrackMatching.cxx:187
 AliTRDonlineTrackMatching.cxx:188
 AliTRDonlineTrackMatching.cxx:189
 AliTRDonlineTrackMatching.cxx:190
 AliTRDonlineTrackMatching.cxx:191
 AliTRDonlineTrackMatching.cxx:192
 AliTRDonlineTrackMatching.cxx:193
 AliTRDonlineTrackMatching.cxx:194
 AliTRDonlineTrackMatching.cxx:195
 AliTRDonlineTrackMatching.cxx:196
 AliTRDonlineTrackMatching.cxx:197
 AliTRDonlineTrackMatching.cxx:198
 AliTRDonlineTrackMatching.cxx:199
 AliTRDonlineTrackMatching.cxx:200
 AliTRDonlineTrackMatching.cxx:201
 AliTRDonlineTrackMatching.cxx:202
 AliTRDonlineTrackMatching.cxx:203
 AliTRDonlineTrackMatching.cxx:204
 AliTRDonlineTrackMatching.cxx:205
 AliTRDonlineTrackMatching.cxx:206
 AliTRDonlineTrackMatching.cxx:207
 AliTRDonlineTrackMatching.cxx:208
 AliTRDonlineTrackMatching.cxx:209
 AliTRDonlineTrackMatching.cxx:210
 AliTRDonlineTrackMatching.cxx:211
 AliTRDonlineTrackMatching.cxx:212
 AliTRDonlineTrackMatching.cxx:213
 AliTRDonlineTrackMatching.cxx:214
 AliTRDonlineTrackMatching.cxx:215
 AliTRDonlineTrackMatching.cxx:216
 AliTRDonlineTrackMatching.cxx:217
 AliTRDonlineTrackMatching.cxx:218
 AliTRDonlineTrackMatching.cxx:219
 AliTRDonlineTrackMatching.cxx:220
 AliTRDonlineTrackMatching.cxx:221
 AliTRDonlineTrackMatching.cxx:222
 AliTRDonlineTrackMatching.cxx:223
 AliTRDonlineTrackMatching.cxx:224
 AliTRDonlineTrackMatching.cxx:225
 AliTRDonlineTrackMatching.cxx:226
 AliTRDonlineTrackMatching.cxx:227
 AliTRDonlineTrackMatching.cxx:228
 AliTRDonlineTrackMatching.cxx:229
 AliTRDonlineTrackMatching.cxx:230
 AliTRDonlineTrackMatching.cxx:231
 AliTRDonlineTrackMatching.cxx:232
 AliTRDonlineTrackMatching.cxx:233
 AliTRDonlineTrackMatching.cxx:234
 AliTRDonlineTrackMatching.cxx:235
 AliTRDonlineTrackMatching.cxx:236
 AliTRDonlineTrackMatching.cxx:237
 AliTRDonlineTrackMatching.cxx:238
 AliTRDonlineTrackMatching.cxx:239
 AliTRDonlineTrackMatching.cxx:240
 AliTRDonlineTrackMatching.cxx:241
 AliTRDonlineTrackMatching.cxx:242
 AliTRDonlineTrackMatching.cxx:243
 AliTRDonlineTrackMatching.cxx:244
 AliTRDonlineTrackMatching.cxx:245
 AliTRDonlineTrackMatching.cxx:246
 AliTRDonlineTrackMatching.cxx:247
 AliTRDonlineTrackMatching.cxx:248
 AliTRDonlineTrackMatching.cxx:249
 AliTRDonlineTrackMatching.cxx:250
 AliTRDonlineTrackMatching.cxx:251
 AliTRDonlineTrackMatching.cxx:252
 AliTRDonlineTrackMatching.cxx:253
 AliTRDonlineTrackMatching.cxx:254
 AliTRDonlineTrackMatching.cxx:255
 AliTRDonlineTrackMatching.cxx:256
 AliTRDonlineTrackMatching.cxx:257
 AliTRDonlineTrackMatching.cxx:258
 AliTRDonlineTrackMatching.cxx:259
 AliTRDonlineTrackMatching.cxx:260
 AliTRDonlineTrackMatching.cxx:261
 AliTRDonlineTrackMatching.cxx:262
 AliTRDonlineTrackMatching.cxx:263
 AliTRDonlineTrackMatching.cxx:264
 AliTRDonlineTrackMatching.cxx:265
 AliTRDonlineTrackMatching.cxx:266
 AliTRDonlineTrackMatching.cxx:267
 AliTRDonlineTrackMatching.cxx:268
 AliTRDonlineTrackMatching.cxx:269
 AliTRDonlineTrackMatching.cxx:270
 AliTRDonlineTrackMatching.cxx:271
 AliTRDonlineTrackMatching.cxx:272
 AliTRDonlineTrackMatching.cxx:273
 AliTRDonlineTrackMatching.cxx:274
 AliTRDonlineTrackMatching.cxx:275
 AliTRDonlineTrackMatching.cxx:276
 AliTRDonlineTrackMatching.cxx:277
 AliTRDonlineTrackMatching.cxx:278
 AliTRDonlineTrackMatching.cxx:279
 AliTRDonlineTrackMatching.cxx:280
 AliTRDonlineTrackMatching.cxx:281
 AliTRDonlineTrackMatching.cxx:282
 AliTRDonlineTrackMatching.cxx:283
 AliTRDonlineTrackMatching.cxx:284
 AliTRDonlineTrackMatching.cxx:285
 AliTRDonlineTrackMatching.cxx:286
 AliTRDonlineTrackMatching.cxx:287
 AliTRDonlineTrackMatching.cxx:288
 AliTRDonlineTrackMatching.cxx:289
 AliTRDonlineTrackMatching.cxx:290
 AliTRDonlineTrackMatching.cxx:291
 AliTRDonlineTrackMatching.cxx:292
 AliTRDonlineTrackMatching.cxx:293
 AliTRDonlineTrackMatching.cxx:294
 AliTRDonlineTrackMatching.cxx:295
 AliTRDonlineTrackMatching.cxx:296
 AliTRDonlineTrackMatching.cxx:297
 AliTRDonlineTrackMatching.cxx:298
 AliTRDonlineTrackMatching.cxx:299
 AliTRDonlineTrackMatching.cxx:300
 AliTRDonlineTrackMatching.cxx:301
 AliTRDonlineTrackMatching.cxx:302
 AliTRDonlineTrackMatching.cxx:303
 AliTRDonlineTrackMatching.cxx:304
 AliTRDonlineTrackMatching.cxx:305
 AliTRDonlineTrackMatching.cxx:306
 AliTRDonlineTrackMatching.cxx:307
 AliTRDonlineTrackMatching.cxx:308
 AliTRDonlineTrackMatching.cxx:309
 AliTRDonlineTrackMatching.cxx:310
 AliTRDonlineTrackMatching.cxx:311
 AliTRDonlineTrackMatching.cxx:312
 AliTRDonlineTrackMatching.cxx:313
 AliTRDonlineTrackMatching.cxx:314
 AliTRDonlineTrackMatching.cxx:315
 AliTRDonlineTrackMatching.cxx:316
 AliTRDonlineTrackMatching.cxx:317
 AliTRDonlineTrackMatching.cxx:318
 AliTRDonlineTrackMatching.cxx:319
 AliTRDonlineTrackMatching.cxx:320
 AliTRDonlineTrackMatching.cxx:321
 AliTRDonlineTrackMatching.cxx:322
 AliTRDonlineTrackMatching.cxx:323
 AliTRDonlineTrackMatching.cxx:324
 AliTRDonlineTrackMatching.cxx:325
 AliTRDonlineTrackMatching.cxx:326
 AliTRDonlineTrackMatching.cxx:327
 AliTRDonlineTrackMatching.cxx:328
 AliTRDonlineTrackMatching.cxx:329
 AliTRDonlineTrackMatching.cxx:330
 AliTRDonlineTrackMatching.cxx:331
 AliTRDonlineTrackMatching.cxx:332
 AliTRDonlineTrackMatching.cxx:333
 AliTRDonlineTrackMatching.cxx:334
 AliTRDonlineTrackMatching.cxx:335
 AliTRDonlineTrackMatching.cxx:336
 AliTRDonlineTrackMatching.cxx:337
 AliTRDonlineTrackMatching.cxx:338
 AliTRDonlineTrackMatching.cxx:339
 AliTRDonlineTrackMatching.cxx:340
 AliTRDonlineTrackMatching.cxx:341
 AliTRDonlineTrackMatching.cxx:342
 AliTRDonlineTrackMatching.cxx:343
 AliTRDonlineTrackMatching.cxx:344
 AliTRDonlineTrackMatching.cxx:345
 AliTRDonlineTrackMatching.cxx:346
 AliTRDonlineTrackMatching.cxx:347
 AliTRDonlineTrackMatching.cxx:348
 AliTRDonlineTrackMatching.cxx:349
 AliTRDonlineTrackMatching.cxx:350
 AliTRDonlineTrackMatching.cxx:351
 AliTRDonlineTrackMatching.cxx:352
 AliTRDonlineTrackMatching.cxx:353
 AliTRDonlineTrackMatching.cxx:354
 AliTRDonlineTrackMatching.cxx:355
 AliTRDonlineTrackMatching.cxx:356
 AliTRDonlineTrackMatching.cxx:357
 AliTRDonlineTrackMatching.cxx:358
 AliTRDonlineTrackMatching.cxx:359
 AliTRDonlineTrackMatching.cxx:360
 AliTRDonlineTrackMatching.cxx:361
 AliTRDonlineTrackMatching.cxx:362
 AliTRDonlineTrackMatching.cxx:363
 AliTRDonlineTrackMatching.cxx:364
 AliTRDonlineTrackMatching.cxx:365
 AliTRDonlineTrackMatching.cxx:366
 AliTRDonlineTrackMatching.cxx:367
 AliTRDonlineTrackMatching.cxx:368
 AliTRDonlineTrackMatching.cxx:369
 AliTRDonlineTrackMatching.cxx:370
 AliTRDonlineTrackMatching.cxx:371
 AliTRDonlineTrackMatching.cxx:372
 AliTRDonlineTrackMatching.cxx:373
 AliTRDonlineTrackMatching.cxx:374
 AliTRDonlineTrackMatching.cxx:375
 AliTRDonlineTrackMatching.cxx:376
 AliTRDonlineTrackMatching.cxx:377
 AliTRDonlineTrackMatching.cxx:378
 AliTRDonlineTrackMatching.cxx:379
 AliTRDonlineTrackMatching.cxx:380
 AliTRDonlineTrackMatching.cxx:381
 AliTRDonlineTrackMatching.cxx:382
 AliTRDonlineTrackMatching.cxx:383
 AliTRDonlineTrackMatching.cxx:384
 AliTRDonlineTrackMatching.cxx:385
 AliTRDonlineTrackMatching.cxx:386
 AliTRDonlineTrackMatching.cxx:387
 AliTRDonlineTrackMatching.cxx:388
 AliTRDonlineTrackMatching.cxx:389
 AliTRDonlineTrackMatching.cxx:390
 AliTRDonlineTrackMatching.cxx:391
 AliTRDonlineTrackMatching.cxx:392
 AliTRDonlineTrackMatching.cxx:393
 AliTRDonlineTrackMatching.cxx:394
 AliTRDonlineTrackMatching.cxx:395
 AliTRDonlineTrackMatching.cxx:396
 AliTRDonlineTrackMatching.cxx:397
 AliTRDonlineTrackMatching.cxx:398
 AliTRDonlineTrackMatching.cxx:399
 AliTRDonlineTrackMatching.cxx:400
 AliTRDonlineTrackMatching.cxx:401
 AliTRDonlineTrackMatching.cxx:402
 AliTRDonlineTrackMatching.cxx:403
 AliTRDonlineTrackMatching.cxx:404
 AliTRDonlineTrackMatching.cxx:405
 AliTRDonlineTrackMatching.cxx:406
 AliTRDonlineTrackMatching.cxx:407
 AliTRDonlineTrackMatching.cxx:408
 AliTRDonlineTrackMatching.cxx:409
 AliTRDonlineTrackMatching.cxx:410
 AliTRDonlineTrackMatching.cxx:411
 AliTRDonlineTrackMatching.cxx:412
 AliTRDonlineTrackMatching.cxx:413
 AliTRDonlineTrackMatching.cxx:414
 AliTRDonlineTrackMatching.cxx:415
 AliTRDonlineTrackMatching.cxx:416
 AliTRDonlineTrackMatching.cxx:417
 AliTRDonlineTrackMatching.cxx:418
 AliTRDonlineTrackMatching.cxx:419
 AliTRDonlineTrackMatching.cxx:420
 AliTRDonlineTrackMatching.cxx:421
 AliTRDonlineTrackMatching.cxx:422
 AliTRDonlineTrackMatching.cxx:423
 AliTRDonlineTrackMatching.cxx:424
 AliTRDonlineTrackMatching.cxx:425
 AliTRDonlineTrackMatching.cxx:426
 AliTRDonlineTrackMatching.cxx:427
 AliTRDonlineTrackMatching.cxx:428
 AliTRDonlineTrackMatching.cxx:429
 AliTRDonlineTrackMatching.cxx:430
 AliTRDonlineTrackMatching.cxx:431
 AliTRDonlineTrackMatching.cxx:432
 AliTRDonlineTrackMatching.cxx:433
 AliTRDonlineTrackMatching.cxx:434
 AliTRDonlineTrackMatching.cxx:435
 AliTRDonlineTrackMatching.cxx:436
 AliTRDonlineTrackMatching.cxx:437
 AliTRDonlineTrackMatching.cxx:438
 AliTRDonlineTrackMatching.cxx:439
 AliTRDonlineTrackMatching.cxx:440
 AliTRDonlineTrackMatching.cxx:441
 AliTRDonlineTrackMatching.cxx:442
 AliTRDonlineTrackMatching.cxx:443
 AliTRDonlineTrackMatching.cxx:444
 AliTRDonlineTrackMatching.cxx:445
 AliTRDonlineTrackMatching.cxx:446
 AliTRDonlineTrackMatching.cxx:447
 AliTRDonlineTrackMatching.cxx:448
 AliTRDonlineTrackMatching.cxx:449
 AliTRDonlineTrackMatching.cxx:450
 AliTRDonlineTrackMatching.cxx:451
 AliTRDonlineTrackMatching.cxx:452
 AliTRDonlineTrackMatching.cxx:453
 AliTRDonlineTrackMatching.cxx:454
 AliTRDonlineTrackMatching.cxx:455
 AliTRDonlineTrackMatching.cxx:456
 AliTRDonlineTrackMatching.cxx:457
 AliTRDonlineTrackMatching.cxx:458
 AliTRDonlineTrackMatching.cxx:459
 AliTRDonlineTrackMatching.cxx:460
 AliTRDonlineTrackMatching.cxx:461
 AliTRDonlineTrackMatching.cxx:462
 AliTRDonlineTrackMatching.cxx:463
 AliTRDonlineTrackMatching.cxx:464
 AliTRDonlineTrackMatching.cxx:465
 AliTRDonlineTrackMatching.cxx:466
 AliTRDonlineTrackMatching.cxx:467
 AliTRDonlineTrackMatching.cxx:468
 AliTRDonlineTrackMatching.cxx:469
 AliTRDonlineTrackMatching.cxx:470
 AliTRDonlineTrackMatching.cxx:471
 AliTRDonlineTrackMatching.cxx:472
 AliTRDonlineTrackMatching.cxx:473
 AliTRDonlineTrackMatching.cxx:474
 AliTRDonlineTrackMatching.cxx:475
 AliTRDonlineTrackMatching.cxx:476
 AliTRDonlineTrackMatching.cxx:477
 AliTRDonlineTrackMatching.cxx:478
 AliTRDonlineTrackMatching.cxx:479
 AliTRDonlineTrackMatching.cxx:480
 AliTRDonlineTrackMatching.cxx:481
 AliTRDonlineTrackMatching.cxx:482
 AliTRDonlineTrackMatching.cxx:483
 AliTRDonlineTrackMatching.cxx:484
 AliTRDonlineTrackMatching.cxx:485
 AliTRDonlineTrackMatching.cxx:486
 AliTRDonlineTrackMatching.cxx:487
 AliTRDonlineTrackMatching.cxx:488
 AliTRDonlineTrackMatching.cxx:489
 AliTRDonlineTrackMatching.cxx:490
 AliTRDonlineTrackMatching.cxx:491
 AliTRDonlineTrackMatching.cxx:492
 AliTRDonlineTrackMatching.cxx:493
 AliTRDonlineTrackMatching.cxx:494
 AliTRDonlineTrackMatching.cxx:495
 AliTRDonlineTrackMatching.cxx:496
 AliTRDonlineTrackMatching.cxx:497
 AliTRDonlineTrackMatching.cxx:498
 AliTRDonlineTrackMatching.cxx:499
 AliTRDonlineTrackMatching.cxx:500
 AliTRDonlineTrackMatching.cxx:501
 AliTRDonlineTrackMatching.cxx:502
 AliTRDonlineTrackMatching.cxx:503
 AliTRDonlineTrackMatching.cxx:504
 AliTRDonlineTrackMatching.cxx:505
 AliTRDonlineTrackMatching.cxx:506
 AliTRDonlineTrackMatching.cxx:507
 AliTRDonlineTrackMatching.cxx:508
 AliTRDonlineTrackMatching.cxx:509
 AliTRDonlineTrackMatching.cxx:510
 AliTRDonlineTrackMatching.cxx:511
 AliTRDonlineTrackMatching.cxx:512
 AliTRDonlineTrackMatching.cxx:513
 AliTRDonlineTrackMatching.cxx:514
 AliTRDonlineTrackMatching.cxx:515
 AliTRDonlineTrackMatching.cxx:516
 AliTRDonlineTrackMatching.cxx:517
 AliTRDonlineTrackMatching.cxx:518
 AliTRDonlineTrackMatching.cxx:519
 AliTRDonlineTrackMatching.cxx:520
 AliTRDonlineTrackMatching.cxx:521
 AliTRDonlineTrackMatching.cxx:522
 AliTRDonlineTrackMatching.cxx:523
 AliTRDonlineTrackMatching.cxx:524
 AliTRDonlineTrackMatching.cxx:525
 AliTRDonlineTrackMatching.cxx:526
 AliTRDonlineTrackMatching.cxx:527
 AliTRDonlineTrackMatching.cxx:528
 AliTRDonlineTrackMatching.cxx:529
 AliTRDonlineTrackMatching.cxx:530
 AliTRDonlineTrackMatching.cxx:531
 AliTRDonlineTrackMatching.cxx:532
 AliTRDonlineTrackMatching.cxx:533
 AliTRDonlineTrackMatching.cxx:534
 AliTRDonlineTrackMatching.cxx:535
 AliTRDonlineTrackMatching.cxx:536
 AliTRDonlineTrackMatching.cxx:537
 AliTRDonlineTrackMatching.cxx:538
 AliTRDonlineTrackMatching.cxx:539
 AliTRDonlineTrackMatching.cxx:540
 AliTRDonlineTrackMatching.cxx:541
 AliTRDonlineTrackMatching.cxx:542
 AliTRDonlineTrackMatching.cxx:543
 AliTRDonlineTrackMatching.cxx:544
 AliTRDonlineTrackMatching.cxx:545
 AliTRDonlineTrackMatching.cxx:546
 AliTRDonlineTrackMatching.cxx:547
 AliTRDonlineTrackMatching.cxx:548
 AliTRDonlineTrackMatching.cxx:549
 AliTRDonlineTrackMatching.cxx:550
 AliTRDonlineTrackMatching.cxx:551
 AliTRDonlineTrackMatching.cxx:552
 AliTRDonlineTrackMatching.cxx:553
 AliTRDonlineTrackMatching.cxx:554
 AliTRDonlineTrackMatching.cxx:555
 AliTRDonlineTrackMatching.cxx:556
 AliTRDonlineTrackMatching.cxx:557
 AliTRDonlineTrackMatching.cxx:558
 AliTRDonlineTrackMatching.cxx:559
 AliTRDonlineTrackMatching.cxx:560
 AliTRDonlineTrackMatching.cxx:561
 AliTRDonlineTrackMatching.cxx:562
 AliTRDonlineTrackMatching.cxx:563
 AliTRDonlineTrackMatching.cxx:564
 AliTRDonlineTrackMatching.cxx:565
 AliTRDonlineTrackMatching.cxx:566
 AliTRDonlineTrackMatching.cxx:567
 AliTRDonlineTrackMatching.cxx:568
 AliTRDonlineTrackMatching.cxx:569
 AliTRDonlineTrackMatching.cxx:570
 AliTRDonlineTrackMatching.cxx:571
 AliTRDonlineTrackMatching.cxx:572
 AliTRDonlineTrackMatching.cxx:573
 AliTRDonlineTrackMatching.cxx:574
 AliTRDonlineTrackMatching.cxx:575
 AliTRDonlineTrackMatching.cxx:576
 AliTRDonlineTrackMatching.cxx:577
 AliTRDonlineTrackMatching.cxx:578
 AliTRDonlineTrackMatching.cxx:579
 AliTRDonlineTrackMatching.cxx:580
 AliTRDonlineTrackMatching.cxx:581
 AliTRDonlineTrackMatching.cxx:582
 AliTRDonlineTrackMatching.cxx:583
 AliTRDonlineTrackMatching.cxx:584
 AliTRDonlineTrackMatching.cxx:585
 AliTRDonlineTrackMatching.cxx:586
 AliTRDonlineTrackMatching.cxx:587
 AliTRDonlineTrackMatching.cxx:588
 AliTRDonlineTrackMatching.cxx:589
 AliTRDonlineTrackMatching.cxx:590
 AliTRDonlineTrackMatching.cxx:591
 AliTRDonlineTrackMatching.cxx:592
 AliTRDonlineTrackMatching.cxx:593
 AliTRDonlineTrackMatching.cxx:594
 AliTRDonlineTrackMatching.cxx:595
 AliTRDonlineTrackMatching.cxx:596
 AliTRDonlineTrackMatching.cxx:597
 AliTRDonlineTrackMatching.cxx:598
 AliTRDonlineTrackMatching.cxx:599
 AliTRDonlineTrackMatching.cxx:600
 AliTRDonlineTrackMatching.cxx:601
 AliTRDonlineTrackMatching.cxx:602
 AliTRDonlineTrackMatching.cxx:603
 AliTRDonlineTrackMatching.cxx:604
 AliTRDonlineTrackMatching.cxx:605
 AliTRDonlineTrackMatching.cxx:606
 AliTRDonlineTrackMatching.cxx:607
 AliTRDonlineTrackMatching.cxx:608
 AliTRDonlineTrackMatching.cxx:609
 AliTRDonlineTrackMatching.cxx:610
 AliTRDonlineTrackMatching.cxx:611
 AliTRDonlineTrackMatching.cxx:612
 AliTRDonlineTrackMatching.cxx:613
 AliTRDonlineTrackMatching.cxx:614
 AliTRDonlineTrackMatching.cxx:615
 AliTRDonlineTrackMatching.cxx:616
 AliTRDonlineTrackMatching.cxx:617
 AliTRDonlineTrackMatching.cxx:618
 AliTRDonlineTrackMatching.cxx:619
 AliTRDonlineTrackMatching.cxx:620
 AliTRDonlineTrackMatching.cxx:621
 AliTRDonlineTrackMatching.cxx:622
 AliTRDonlineTrackMatching.cxx:623
 AliTRDonlineTrackMatching.cxx:624
 AliTRDonlineTrackMatching.cxx:625
 AliTRDonlineTrackMatching.cxx:626
 AliTRDonlineTrackMatching.cxx:627
 AliTRDonlineTrackMatching.cxx:628
 AliTRDonlineTrackMatching.cxx:629
 AliTRDonlineTrackMatching.cxx:630
 AliTRDonlineTrackMatching.cxx:631
 AliTRDonlineTrackMatching.cxx:632
 AliTRDonlineTrackMatching.cxx:633
 AliTRDonlineTrackMatching.cxx:634
 AliTRDonlineTrackMatching.cxx:635
 AliTRDonlineTrackMatching.cxx:636
 AliTRDonlineTrackMatching.cxx:637
 AliTRDonlineTrackMatching.cxx:638
 AliTRDonlineTrackMatching.cxx:639
 AliTRDonlineTrackMatching.cxx:640
 AliTRDonlineTrackMatching.cxx:641
 AliTRDonlineTrackMatching.cxx:642
 AliTRDonlineTrackMatching.cxx:643
 AliTRDonlineTrackMatching.cxx:644
 AliTRDonlineTrackMatching.cxx:645
 AliTRDonlineTrackMatching.cxx:646
 AliTRDonlineTrackMatching.cxx:647
 AliTRDonlineTrackMatching.cxx:648
 AliTRDonlineTrackMatching.cxx:649
 AliTRDonlineTrackMatching.cxx:650
 AliTRDonlineTrackMatching.cxx:651
 AliTRDonlineTrackMatching.cxx:652
 AliTRDonlineTrackMatching.cxx:653
 AliTRDonlineTrackMatching.cxx:654
 AliTRDonlineTrackMatching.cxx:655
 AliTRDonlineTrackMatching.cxx:656
 AliTRDonlineTrackMatching.cxx:657
 AliTRDonlineTrackMatching.cxx:658
 AliTRDonlineTrackMatching.cxx:659
 AliTRDonlineTrackMatching.cxx:660
 AliTRDonlineTrackMatching.cxx:661
 AliTRDonlineTrackMatching.cxx:662
 AliTRDonlineTrackMatching.cxx:663
 AliTRDonlineTrackMatching.cxx:664
 AliTRDonlineTrackMatching.cxx:665
 AliTRDonlineTrackMatching.cxx:666
 AliTRDonlineTrackMatching.cxx:667
 AliTRDonlineTrackMatching.cxx:668
 AliTRDonlineTrackMatching.cxx:669
 AliTRDonlineTrackMatching.cxx:670
 AliTRDonlineTrackMatching.cxx:671
 AliTRDonlineTrackMatching.cxx:672
 AliTRDonlineTrackMatching.cxx:673
 AliTRDonlineTrackMatching.cxx:674
 AliTRDonlineTrackMatching.cxx:675
 AliTRDonlineTrackMatching.cxx:676
 AliTRDonlineTrackMatching.cxx:677
 AliTRDonlineTrackMatching.cxx:678
 AliTRDonlineTrackMatching.cxx:679
 AliTRDonlineTrackMatching.cxx:680
 AliTRDonlineTrackMatching.cxx:681
 AliTRDonlineTrackMatching.cxx:682
 AliTRDonlineTrackMatching.cxx:683
 AliTRDonlineTrackMatching.cxx:684
 AliTRDonlineTrackMatching.cxx:685
 AliTRDonlineTrackMatching.cxx:686
 AliTRDonlineTrackMatching.cxx:687
 AliTRDonlineTrackMatching.cxx:688
 AliTRDonlineTrackMatching.cxx:689
 AliTRDonlineTrackMatching.cxx:690
 AliTRDonlineTrackMatching.cxx:691
 AliTRDonlineTrackMatching.cxx:692
 AliTRDonlineTrackMatching.cxx:693
 AliTRDonlineTrackMatching.cxx:694
 AliTRDonlineTrackMatching.cxx:695
 AliTRDonlineTrackMatching.cxx:696
 AliTRDonlineTrackMatching.cxx:697
 AliTRDonlineTrackMatching.cxx:698
 AliTRDonlineTrackMatching.cxx:699
 AliTRDonlineTrackMatching.cxx:700
 AliTRDonlineTrackMatching.cxx:701
 AliTRDonlineTrackMatching.cxx:702
 AliTRDonlineTrackMatching.cxx:703
 AliTRDonlineTrackMatching.cxx:704
 AliTRDonlineTrackMatching.cxx:705
 AliTRDonlineTrackMatching.cxx:706
 AliTRDonlineTrackMatching.cxx:707
 AliTRDonlineTrackMatching.cxx:708
 AliTRDonlineTrackMatching.cxx:709
 AliTRDonlineTrackMatching.cxx:710
 AliTRDonlineTrackMatching.cxx:711
 AliTRDonlineTrackMatching.cxx:712
 AliTRDonlineTrackMatching.cxx:713
 AliTRDonlineTrackMatching.cxx:714
 AliTRDonlineTrackMatching.cxx:715
 AliTRDonlineTrackMatching.cxx:716
 AliTRDonlineTrackMatching.cxx:717
 AliTRDonlineTrackMatching.cxx:718
 AliTRDonlineTrackMatching.cxx:719
 AliTRDonlineTrackMatching.cxx:720
 AliTRDonlineTrackMatching.cxx:721
 AliTRDonlineTrackMatching.cxx:722
 AliTRDonlineTrackMatching.cxx:723
 AliTRDonlineTrackMatching.cxx:724
 AliTRDonlineTrackMatching.cxx:725
 AliTRDonlineTrackMatching.cxx:726
 AliTRDonlineTrackMatching.cxx:727
 AliTRDonlineTrackMatching.cxx:728
 AliTRDonlineTrackMatching.cxx:729
 AliTRDonlineTrackMatching.cxx:730
 AliTRDonlineTrackMatching.cxx:731
 AliTRDonlineTrackMatching.cxx:732
 AliTRDonlineTrackMatching.cxx:733
 AliTRDonlineTrackMatching.cxx:734
 AliTRDonlineTrackMatching.cxx:735
 AliTRDonlineTrackMatching.cxx:736
 AliTRDonlineTrackMatching.cxx:737
 AliTRDonlineTrackMatching.cxx:738
 AliTRDonlineTrackMatching.cxx:739
 AliTRDonlineTrackMatching.cxx:740
 AliTRDonlineTrackMatching.cxx:741
 AliTRDonlineTrackMatching.cxx:742
 AliTRDonlineTrackMatching.cxx:743
 AliTRDonlineTrackMatching.cxx:744
 AliTRDonlineTrackMatching.cxx:745
 AliTRDonlineTrackMatching.cxx:746
 AliTRDonlineTrackMatching.cxx:747
 AliTRDonlineTrackMatching.cxx:748
 AliTRDonlineTrackMatching.cxx:749
 AliTRDonlineTrackMatching.cxx:750
 AliTRDonlineTrackMatching.cxx:751
 AliTRDonlineTrackMatching.cxx:752
 AliTRDonlineTrackMatching.cxx:753
 AliTRDonlineTrackMatching.cxx:754
 AliTRDonlineTrackMatching.cxx:755
 AliTRDonlineTrackMatching.cxx:756
 AliTRDonlineTrackMatching.cxx:757
 AliTRDonlineTrackMatching.cxx:758
 AliTRDonlineTrackMatching.cxx:759
 AliTRDonlineTrackMatching.cxx:760
 AliTRDonlineTrackMatching.cxx:761
 AliTRDonlineTrackMatching.cxx:762
 AliTRDonlineTrackMatching.cxx:763
 AliTRDonlineTrackMatching.cxx:764
 AliTRDonlineTrackMatching.cxx:765
 AliTRDonlineTrackMatching.cxx:766
 AliTRDonlineTrackMatching.cxx:767
 AliTRDonlineTrackMatching.cxx:768
 AliTRDonlineTrackMatching.cxx:769
 AliTRDonlineTrackMatching.cxx:770
 AliTRDonlineTrackMatching.cxx:771
 AliTRDonlineTrackMatching.cxx:772
 AliTRDonlineTrackMatching.cxx:773
 AliTRDonlineTrackMatching.cxx:774
 AliTRDonlineTrackMatching.cxx:775
 AliTRDonlineTrackMatching.cxx:776
 AliTRDonlineTrackMatching.cxx:777
 AliTRDonlineTrackMatching.cxx:778
 AliTRDonlineTrackMatching.cxx:779
 AliTRDonlineTrackMatching.cxx:780
 AliTRDonlineTrackMatching.cxx:781
 AliTRDonlineTrackMatching.cxx:782
 AliTRDonlineTrackMatching.cxx:783
 AliTRDonlineTrackMatching.cxx:784
 AliTRDonlineTrackMatching.cxx:785
 AliTRDonlineTrackMatching.cxx:786
 AliTRDonlineTrackMatching.cxx:787
 AliTRDonlineTrackMatching.cxx:788
 AliTRDonlineTrackMatching.cxx:789
 AliTRDonlineTrackMatching.cxx:790
 AliTRDonlineTrackMatching.cxx:791
 AliTRDonlineTrackMatching.cxx:792
 AliTRDonlineTrackMatching.cxx:793
 AliTRDonlineTrackMatching.cxx:794
 AliTRDonlineTrackMatching.cxx:795
 AliTRDonlineTrackMatching.cxx:796
 AliTRDonlineTrackMatching.cxx:797
 AliTRDonlineTrackMatching.cxx:798
 AliTRDonlineTrackMatching.cxx:799
 AliTRDonlineTrackMatching.cxx:800
 AliTRDonlineTrackMatching.cxx:801
 AliTRDonlineTrackMatching.cxx:802
 AliTRDonlineTrackMatching.cxx:803
 AliTRDonlineTrackMatching.cxx:804