ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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.                  *
**************************************************************************/

//--------------------------------------------------------------------//
//                                                                    //
// AliTOFtrackerV1 Class                                              //
// Task: Perform association of the ESD tracks to TOF Clusters        //
// and Update ESD track with associated TOF Cluster parameters        //
//                                                                    //
// -- Authors : S. Arcelli, C. Zampolli (Bologna University and INFN) //
// -- Contacts: Annalisa.De.Caro@cern.ch                              //
// --         : Chiara.Zampolli@bo.infn.it                            //
// --         : Silvia.Arcelli@bo.infn.it                             //
//                                                                    //
//--------------------------------------------------------------------//

#include <Rtypes.h>
#include <TROOT.h>

#include <TClonesArray.h>
#include <TObjArray.h>
#include <TTree.h>
#include <TFile.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TSeqCollection.h>

#include "AliESDtrack.h"
#include "AliESDEvent.h"
#include "AliESDpid.h"
#include "AliLog.h"
#include "AliTrackPointArray.h"
#include "AliGeomManager.h"
#include "AliCDBManager.h"

#include "AliTOFRecoParam.h"
#include "AliTOFReconstructor.h"
#include "AliTOFcluster.h"
#include "AliTOFGeometry.h"
#include "AliTOFtrackerV1.h"
#include "AliTOFtrack.h"

//extern TROOT *gROOT;

ClassImp(AliTOFtrackerV1)

//_____________________________________________________________________________
AliTOFtrackerV1::AliTOFtrackerV1():
  fkRecoParam(0x0),
  fN(0),
  fNseeds(0),
  fNseedsTOF(0),
  fngoodmatch(0),
  fnbadmatch(0),
  fnunmatch(0),
  fnmatch(0),
  fTracks(new TClonesArray("AliTOFtrack")),
  fSeeds(new TObjArray(100)),
  fHDigClusMap(0x0),
  fHDigNClus(0x0),
  fHDigClusTime(0x0),
  fHDigClusToT(0x0),
  fHRecNClus(0x0),
  fHRecChi2(0x0),
  fHRecDistZ(0x0),
  fHRecSigYVsP(0x0),
  fHRecSigZVsP(0x0),
  fHRecSigYVsPWin(0x0),
  fHRecSigZVsPWin(0x0)
 { 
   //AliTOFtrackerV1 main Ctor

   for (Int_t ii=0; ii<kMaxCluster; ii++) fClusters[ii]=0x0;

   InitCheckHists();

}
//_____________________________________________________________________________
AliTOFtrackerV1::~AliTOFtrackerV1() {
  //
  // Dtor
  //

  SaveCheckHists();

  if(!(AliCDBManager::Instance()->GetCacheFlag())){
    delete fkRecoParam;
  }
  delete fHDigClusMap;
  delete fHDigNClus;
  delete fHDigClusTime;
  delete fHDigClusToT;
  delete fHRecNClus;
  delete fHRecChi2;
  delete fHRecDistZ;
  delete fHRecSigYVsP;
  delete fHRecSigZVsP;
  delete fHRecSigYVsPWin;
  delete fHRecSigZVsPWin;
  if (fTracks){
    fTracks->Delete();
    delete fTracks;
    fTracks=0x0;
  }
  if (fSeeds){
    fSeeds->Delete();
    delete fSeeds;
    fSeeds=0x0;
  }


  for (Int_t ii=0; ii<kMaxCluster; ii++)
    if (fClusters[ii]) fClusters[ii]->Delete();

}
//_____________________________________________________________________________
void AliTOFtrackerV1::GetPidSettings(AliESDpid *esdPID) {
  // 
  // Sets TOF resolution from RecoParams
  //
  if (fkRecoParam)
    esdPID->GetTOFResponse().SetTimeResolution(fkRecoParam->GetTimeResolution());
  else
    AliWarning("fkRecoParam not yet set; cannot set PID settings");
}
//_____________________________________________________________________________
Int_t AliTOFtrackerV1::PropagateBack(AliESDEvent * const event) {
  //
  // Gets seeds from ESD event and Match with TOF Clusters
  //

  if (fN==0) {
    AliInfo("No TOF recPoints to be matched with reconstructed tracks");
    return 0;
  }

  // initialize RecoParam for current event
  AliDebug(1,"Initializing params for TOF");

  fkRecoParam = AliTOFReconstructor::GetRecoParam();  // instantiate reco param from STEER...

  if (fkRecoParam == 0x0) { 
    AliFatal("No Reco Param found for TOF!!!");
  }
  //fkRecoParam->Dump();
  //if(fkRecoParam->GetApplyPbPbCuts())fkRecoParam=fkRecoParam->GetPbPbparam();
  //fkRecoParam->PrintParameters();

  //Initialise some counters

  fNseeds=0;
  fNseedsTOF=0;
  fngoodmatch=0;
  fnbadmatch=0;
  fnunmatch=0;
  fnmatch=0;

  Int_t ntrk=event->GetNumberOfTracks();
  fNseeds = ntrk;

  //Load ESD tracks into a local Array of ESD Seeds
  for (Int_t i=0; i<fNseeds; i++){
    fSeeds->AddLast(event->GetTrack(i));
    event->GetTrack(i)->SetESDEvent(event);
  }

  //Prepare ESD tracks candidates for TOF Matching
  CollectESD();

  if (fNseeds==0 || fNseedsTOF==0) {
    AliInfo("No seeds to try TOF match");
    return 0;
  }

  //Matching Step
  MatchTracks();

  AliInfo(Form("Number of matched tracks = %d (good = %d, bad = %d)",fnmatch,fngoodmatch,fnbadmatch));

  //Update the matched ESD tracks

  for (Int_t i=0; i<ntrk; i++) {
    AliESDtrack *t=event->GetTrack(i);
    AliESDtrack *seed =(AliESDtrack*)fSeeds->At(i);

    if ( (seed->GetStatus()&AliESDtrack::kTOFin)!=0 ) {
      t->SetStatus(AliESDtrack::kTOFin);
      //if(seed->GetTOFsignal()>0){
      if ( (seed->GetStatus()&AliESDtrack::kTOFout)!=0 ) {
	t->SetStatus(AliESDtrack::kTOFout);
	t->SetTOFsignal(seed->GetTOFsignal());
	t->SetTOFcluster(seed->GetTOFcluster());
	t->SetTOFsignalToT(seed->GetTOFsignalToT());
	t->SetTOFsignalRaw(seed->GetTOFsignalRaw());
	t->SetTOFsignalDz(seed->GetTOFsignalDz());
	t->SetTOFsignalDx(seed->GetTOFsignalDx());
	t->SetTOFDeltaBC(seed->GetTOFDeltaBC());
	t->SetTOFL0L1(seed->GetTOFL0L1());
	t->SetTOFCalChannel(seed->GetTOFCalChannel());
	Int_t tlab[3]; seed->GetTOFLabel(tlab);
	t->SetTOFLabel(tlab);

	Double_t alphaA = (Double_t)t->GetAlpha();
	Double_t xA = (Double_t)t->GetX();
	Double_t yA = (Double_t)t->GetY();
	Double_t zA = (Double_t)t->GetZ();
	Double_t p1A = (Double_t)t->GetSnp();
	Double_t p2A = (Double_t)t->GetTgl();
	Double_t p3A = (Double_t)t->GetSigned1Pt();
	const Double_t *covA = (Double_t*)t->GetCovariance();

	// Make attention, please:
	//      AliESDtrack::fTOFInfo array does not be stored in the AliESDs.root file
	//      it is there only for a check during the reconstruction step.
	Float_t info[10]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
	seed->GetTOFInfo(info);
	t->SetTOFInfo(info);
	AliDebug(2,Form(" distance=%f; residual in the pad reference frame: dX=%f, dZ=%f", info[0],info[1],info[2]));

	// Check done:
	//       by calling the AliESDtrack::UpdateTrackParams,
	//       the current track parameters are changed
	//       and it could cause refit problems.
	//       We need to update only the following track parameters:
        //            the track length and expected times.
	//       Removed AliESDtrack::UpdateTrackParams call
	//       Called AliESDtrack::SetIntegratedTimes(...) and
	//       AliESDtrack::SetIntegratedLength() routines.
	/*
	  AliTOFtrack *track = new AliTOFtrack(*seed);
	  t->UpdateTrackParams(track,AliESDtrack::kTOFout); // to be checked - AdC
	  delete track;
	  Double_t time[AliPID::kSPECIESC]; t->GetIntegratedTimes(time);
	*/

	Double_t time[AliPID::kSPECIESC]; seed->GetIntegratedTimes(time,AliPID::kSPECIESC);
	t->SetIntegratedTimes(time);

	Double_t length =  seed->GetIntegratedLength();
	t->SetIntegratedLength(length);

	Double_t alphaB = (Double_t)t->GetAlpha();
	Double_t xB = (Double_t)t->GetX();
	Double_t yB = (Double_t)t->GetY();
	Double_t zB = (Double_t)t->GetZ();
	Double_t p1B = (Double_t)t->GetSnp();
	Double_t p2B = (Double_t)t->GetTgl();
	Double_t p3B = (Double_t)t->GetSigned1Pt();
	const Double_t *covB = (Double_t*)t->GetCovariance();
	AliDebug(3,"Track params -now(before)-:");
	AliDebug(3,Form("    X: %f(%f), Y: %f(%f), Z: %f(%f) --- alpha: %f(%f)",
			xB,xA,
			yB,yA,
			zB,zA,
			alphaB,alphaA));
	AliDebug(3,Form("    p1: %f(%f), p2: %f(%f), p3: %f(%f)",
			p1B,p1A,
			p2B,p2A,
			p3B,p3A));
	AliDebug(3,Form("    cov1: %f(%f), cov2: %f(%f), cov3: %f(%f)"
			" cov4: %f(%f), cov5: %f(%f), cov6: %f(%f)"
			" cov7: %f(%f), cov8: %f(%f), cov9: %f(%f)"
			" cov10: %f(%f), cov11: %f(%f), cov12: %f(%f)"
			" cov13: %f(%f), cov14: %f(%f), cov15: %f(%f)",
			covB[0],covA[0],
			covB[1],covA[1],
			covB[2],covA[2],
			covB[3],covA[3],
			covB[4],covA[4],
			covB[5],covA[5],
			covB[6],covA[6],
			covB[7],covA[7],
			covB[8],covA[8],
			covB[9],covA[9],
			covB[10],covA[10],
			covB[11],covA[11],
			covB[12],covA[12],
			covB[13],covA[13],
			covB[14],covA[14]
			));
	AliDebug(2,Form(" TOF params: %6d  %f %f %f %f %f  %6d %3d  %f",
			i,
			t->GetTOFsignalRaw(),
			t->GetTOFsignal(),
			t->GetTOFsignalToT(),
			t->GetTOFsignalDz(),
			t->GetTOFsignalDx(),
			t->GetTOFCalChannel(),
			t->GetTOFcluster(),
			t->GetIntegratedLength()));
	AliDebug(2,Form(" %f %f %f %f %f %f %f %f %f",
			time[0], time[1], time[2], time[3], time[4], time[5], time[6], time[7], time[8]));
      }
    }
  }

  fSeeds->Clear();
  fTracks->Delete();
  return 0;
  
}
//_________________________________________________________________________
void AliTOFtrackerV1::CollectESD() {
   //prepare the set of ESD tracks to be matched to clusters in TOF

  Int_t seedsTOF1=0;
  Int_t seedsTOF3=0;
  Int_t seedsTOF2=0;
 
  TClonesArray &aTOFTrack = *fTracks;
  for (Int_t i=0; i<fNseeds; i++) {

    AliESDtrack *t =(AliESDtrack*)fSeeds->At(i);
    if ((t->GetStatus()&AliESDtrack::kTPCout)==0)continue;

    AliTOFtrack *track = new AliTOFtrack(*t); // New
    Float_t x = (Float_t)track->GetX(); //New

    // TRD 'good' tracks
    if ( ( (t->GetStatus()&AliESDtrack::kTRDout)!=0 ) )  {

      AliDebug(1,Form(" Before propagation till inner TOF radius, ESDtrackLength=%f, TOFtrackLength=%f",t->GetIntegratedLength(),track->GetIntegratedLength()));

      // TRD 'good' tracks, already propagated at 371 cm
      if ( x >= AliTOFGeometry::Rmin() ) {

	if ( track->PropagateToInnerTOF() ) {

	  AliDebug(1,Form(" TRD propagated track till rho = %fcm."
			  " And then the track has been propagated till rho = %fcm.",
			  x, (Float_t)track->GetX()));

	  track->SetSeedIndex(i);
	  t->UpdateTrackParams(track,AliESDtrack::kTOFin);
	  new(aTOFTrack[fNseedsTOF]) AliTOFtrack(*track);
	  fNseedsTOF++;
	  seedsTOF1++;

	  AliDebug(1,Form(" After propagation till inner TOF radius, ESDtrackLength=%f, TOFtrackLength=%f",t->GetIntegratedLength(),track->GetIntegratedLength()));
	}
	delete track;

      }
      else { // TRD 'good' tracks, propagated rho<371cm

	if  ( track->PropagateToInnerTOF() ) {

	  AliDebug(1,Form(" TRD propagated track till rho = %fcm."
			  " And then the track has been propagated till rho = %fcm.",
			  x, (Float_t)track->GetX()));

	  track->SetSeedIndex(i);
	  t->UpdateTrackParams(track,AliESDtrack::kTOFin);
	  new(aTOFTrack[fNseedsTOF]) AliTOFtrack(*track);
	  fNseedsTOF++;
	  seedsTOF3++;

	  AliDebug(1,Form(" After propagation till inner TOF radius, ESDtrackLength=%f, TOFtrackLength=%f",t->GetIntegratedLength(),track->GetIntegratedLength()));
	}
	delete track;

      }

    }

    else { // Propagate the rest of TPCbp

      AliDebug(1,Form(" Before propagation till inner TOF radius, ESDtrackLength=%f, TOFtrackLength=%f",t->GetIntegratedLength(),track->GetIntegratedLength()));

      if ( track->PropagateToInnerTOF() ) {

	AliDebug(1,Form(" TRD propagated track till rho = %fcm."
			" And then the track has been propagated till rho = %fcm.",
			x, (Float_t)track->GetX()));

      	track->SetSeedIndex(i);
	t->UpdateTrackParams(track,AliESDtrack::kTOFin);
 	new(aTOFTrack[fNseedsTOF]) AliTOFtrack(*track);
	fNseedsTOF++;
	seedsTOF2++;
      }
      delete track;
    }
  }

  AliInfo(Form("Number of TOF seeds = %d (kTRDout371 = %d, kTRDoutLess371 = %d, !kTRDout = %d)",fNseedsTOF,seedsTOF1,seedsTOF3,seedsTOF2));

  // Sort according uncertainties on track position 
  fTracks->Sort();

}
//_________________________________________________________________________
void AliTOFtrackerV1::MatchTracks( ){
  //
  //Match ESD tracks to clusters in TOF
  //


  // Parameters regulating the reconstruction
  Float_t dY=AliTOFGeometry::XPad(); 
  Float_t dZ=AliTOFGeometry::ZPad(); 

  const Float_t kTimeOffset = 0.; // time offset for tracking algorithm [ps]

  const Int_t kncmax = 100;
  Float_t sensRadius = fkRecoParam->GetSensRadius();
  Float_t scaleFact   = fkRecoParam->GetWindowScaleFact();
  Float_t dyMax=fkRecoParam->GetWindowSizeMaxY(); 
  Float_t dzMax=fkRecoParam->GetWindowSizeMaxZ();
  Double_t maxChi2=fkRecoParam->GetMaxChi2();
  Bool_t timeWalkCorr    = fkRecoParam->GetTimeWalkCorr();
  AliDebug(1,"++++++++++++++TOF Reconstruction Parameters:++++++++++++");
  AliDebug(1,Form("TOF sens radius: %f",sensRadius));
  AliDebug(1,Form("TOF Window scale factor: %f",scaleFact));
  AliDebug(1,Form("TOF Window max dy: %f",dyMax));
  AliDebug(1,Form("TOF Window max dz: %f",dzMax));
  AliDebug(1,Form("TOF Max Chi2: %f",maxChi2));
  AliDebug(1,Form("Time Walk Correction? : %d",timeWalkCorr));   
  AliDebug(1,"++++++++++++++++++++++++++++++++++++++++++++++++++++++++");

  //The matching loop
  for (Int_t iseed=0; iseed<fNseedsTOF; iseed++) {

    AliTOFtrack *track =(AliTOFtrack*)fTracks->UncheckedAt(iseed);
    AliESDtrack *t =(AliESDtrack*)fSeeds->At(track->GetSeedIndex());
    //if ( t->GetTOFsignal()>0. ) continue;
    if ( (t->GetStatus()&AliESDtrack::kTOFout)!=0 ) continue;
    AliTOFtrack *trackTOFin = new AliTOFtrack(*track);
     
    // Determine a window around the track
    Double_t x,par[5]; trackTOFin->GetExternalParameters(x,par);
    Double_t cov[15]; trackTOFin->GetExternalCovariance(cov);

    if (cov[0]<0. || cov[2]<0.) {
      AliWarning(Form("Very strange track (%d)! At least one of its covariance matrix diagonal elements is negative!",iseed));
      //delete trackTOFin;
      //continue;
    }

    Double_t z    = par[1];   
    Double_t dz   = scaleFact*3.*TMath::Sqrt(TMath::Abs(cov[2])+dZ*dZ/12.);
    Double_t dphi = scaleFact*3.*TMath::Sqrt(TMath::Abs(cov[0])+dY*dY/12.)/sensRadius; 

    Double_t phi=TMath::ATan2(par[0],x) + trackTOFin->GetAlpha();
    if (phi<-TMath::Pi())phi+=2*TMath::Pi();
    if (phi>=TMath::Pi())phi-=2*TMath::Pi();

    //upper limit on window's size.
    if (dz> dzMax) dz=dzMax;
    if (dphi*sensRadius> dyMax) dphi=dyMax/sensRadius;

    // find the clusters inside the selected window 
    Int_t nc=0;
    AliTOFcluster *clusters[kncmax]; // pointers to the clusters in the window
    Int_t index[kncmax];//to keep track of the cluster index
    for (Int_t k=FindClusterIndex(z-dz); k<fN; k++) {  
      AliTOFcluster *c=fClusters[k];
      //      if(nc>kncmax)break; /* R+ fix (buffer overflow) */
      if (nc>=kncmax) {
 	AliWarning("No more matchable clusters can be stored! Please, increase the corresponding vectors size.");
	break; /* R+ fix (buffer overflow protection) */
      }
      if (c->GetZ() > z+dz) break;
      if (c->IsUsed()) continue;      
      if (!c->GetStatus()) {
	AliDebug(1,"Cluster in channel declared bad!");
	continue; // skip bad channels as declared in OCDB  
      }
      Float_t xyz[3]; c->GetGlobalXYZ(xyz);
      Double_t clPhi=TMath::ATan2(xyz[1],xyz[0]);
      Double_t dph=TMath::Abs(clPhi-phi);
      if (dph>TMath::Pi()) dph-=2.*TMath::Pi();
      if (TMath::Abs(dph)>dphi) continue;
      clusters[nc]=c;
      index[nc] = k;      
      nc++;  
    }

    AliDebug(1,Form(" Number of matchable TOF clusters for the track number %d: %d",iseed,nc));

    //start propagation: go to the average TOF pad middle plane at ~379.5 cm

    // First of all, propagate the track...
    Float_t xTOF = sensRadius;
    if (!(trackTOFin->PropagateTo(xTOF))) {
      delete trackTOFin;
      continue;
    }

    // ...and then, if necessary, rotate the track
    Double_t ymax = xTOF*TMath::Tan(0.5*AliTOFGeometry::GetAlpha());
    Double_t ysect = trackTOFin->GetY();
    if (ysect > ymax) {
      if (!(trackTOFin->Rotate(AliTOFGeometry::GetAlpha()))) {
	delete trackTOFin;
	continue;
      }
    } else if (ysect <-ymax) {
      if (!(trackTOFin->Rotate(-AliTOFGeometry::GetAlpha()))) {
	delete trackTOFin;
	continue;
      }
    }


    AliTOFcluster *bestCluster=0;
    Double_t bestChi2=maxChi2; 
    Int_t idclus=-1;
    //    for (Int_t i=0; i<nc; i++){ /* R+ fix (unsafe) */
    for (Int_t i=0; i<nc && i<kncmax; i++){ /* R+ fix (buffer overflow protection) */
      AliTOFcluster *c=clusters[i];  // one of the preselected clusters     
      Double_t chi2=trackTOFin->GetPredictedChi2((AliCluster3D*)c); 
      if (chi2 >= bestChi2) continue;
      bestChi2=chi2;
      bestCluster=c;
      idclus=index[i];
    }
    
    if (!bestCluster) {  // no matching , go to the next track 
      AliDebug(1,Form("No track points for the track number %d",iseed));
      fnunmatch++;
      delete trackTOFin;
      continue;
    }

    fnmatch++;
    AliDebug(1,Form(" Matched TOF cluster %d for the track number %d",idclus,iseed));

    AliDebug(3, Form("%7i     %7i     %10i     %10i  %10i  %10i      %7i",
		     iseed,
		     fnmatch-1,
		     TMath::Abs(trackTOFin->GetLabel()),
		     bestCluster->GetLabel(0), 
		     bestCluster->GetLabel(1), 
		     bestCluster->GetLabel(2),
		     idclus)); // AdC

    bestCluster->Use(); 
    if (
	(bestCluster->GetLabel(0)==TMath::Abs(trackTOFin->GetLabel()))
	||
	(bestCluster->GetLabel(1)==TMath::Abs(trackTOFin->GetLabel()))
	||
	(bestCluster->GetLabel(2)==TMath::Abs(trackTOFin->GetLabel()))
	) {
      fngoodmatch++;
       AliDebug(2,Form(" track label good %5d",trackTOFin->GetLabel()));

    } else {
      fnbadmatch++;
      AliDebug(2,Form(" track label bad %5d",trackTOFin->GetLabel()));
    }

    //Propagate the track to the best matched cluster
    if (!(trackTOFin->PropagateTo(bestCluster))) {
      delete trackTOFin;
      continue;
    }

    // If necessary, rotate the track
    Double_t yATxMax = trackTOFin->GetX()*TMath::Tan(0.5*AliTOFGeometry::GetAlpha());
    Double_t yATx = trackTOFin->GetY();
    if (yATx > yATxMax) {
      if (!(trackTOFin->Rotate(AliTOFGeometry::GetAlpha()))) {
	delete trackTOFin;
	continue;
      }
    } else if (yATx <-yATxMax) {
      if (!(trackTOFin->Rotate(-AliTOFGeometry::GetAlpha()))) {
	delete trackTOFin;
	continue;
      }
    }

    // Fill the track residual histograms.
    FillResiduals(trackTOFin,bestCluster,kFALSE);

    //now take the local distance in Z from the pad center for time walk correction
    Float_t tiltangle = AliTOFGeometry::GetAngles(bestCluster->GetDetInd(1),bestCluster->GetDetInd(2))*TMath::DegToRad();
    Double_t dzTW=trackTOFin->GetZ()-bestCluster->GetZ(); // in cm - in the ALICE RF -
    dzTW/=TMath::Cos(tiltangle); // from ALICE/tracking RF to pad RF (1)
    dzTW=-dzTW; // from ALICE/tracking RF to pad RF (2)
    if (tiltangle!=0.) AliDebug(3,Form(" rho_track = %f --- rho_cluster = %f ",trackTOFin->GetX(),bestCluster->GetX()));

    //update the ESD track and delete the TOFtrack
    t->UpdateTrackParams(trackTOFin,AliESDtrack::kTOFout);

    //  Store quantities to be used in the TOF Calibration
    Float_t tToT=AliTOFGeometry::ToTBinWidth()*bestCluster->GetToT()*1E-3; // in ns
    t->SetTOFsignalToT(tToT);
    Float_t rawTime=AliTOFGeometry::TdcBinWidth()*bestCluster->GetTDCRAW()+kTimeOffset; // RAW time,in ps
    t->SetTOFsignalRaw(rawTime);
    t->SetTOFsignalDz(dzTW);

    Float_t deltaY = trackTOFin->GetY()-bestCluster->GetY();
    t->SetTOFsignalDx(deltaY);

    t->SetTOFDeltaBC(bestCluster->GetDeltaBC());
    t->SetTOFL0L1(bestCluster->GetL0L1Latency());

    Float_t distR = (trackTOFin->GetX()-bestCluster->GetX())*
      (trackTOFin->GetX()-bestCluster->GetX());
    distR+=deltaY*deltaY;
    distR+=dzTW*dzTW;
    distR = TMath::Sqrt(distR);
    Float_t info[10] = {distR, deltaY, static_cast<Float_t>(dzTW),
			0.,0.,0.,0.,0.,0.,0.};
    t->SetTOFInfo(info);

    Int_t ind[5];
    ind[0]=bestCluster->GetDetInd(0);
    ind[1]=bestCluster->GetDetInd(1);
    ind[2]=bestCluster->GetDetInd(2);
    ind[3]=bestCluster->GetDetInd(3);
    ind[4]=bestCluster->GetDetInd(4);
    Int_t calindex = AliTOFGeometry::GetIndex(ind);
    t->SetTOFCalChannel(calindex);

    // keep track of the track labels in the matched cluster
    Int_t tlab[3];
    tlab[0]=bestCluster->GetLabel(0);
    tlab[1]=bestCluster->GetLabel(1);
    tlab[2]=bestCluster->GetLabel(2);
    AliDebug(3,Form(" tdc time of the matched track %6d = ",bestCluster->GetTDC()));    
    Double_t tof=AliTOFGeometry::TdcBinWidth()*bestCluster->GetTDC()+kTimeOffset; // in ps
    AliDebug(3,Form(" tof time of the matched track: %f = ",tof));
    Double_t tofcorr=tof;
    if(timeWalkCorr)tofcorr=CorrectTimeWalk(dzTW,tof);
    AliDebug(3,Form(" tof time of the matched track, after TW corr: %f = ",tofcorr));    
    //Set TOF time signal and pointer to the matched cluster
    t->SetTOFsignal(tofcorr);
    t->SetTOFcluster(idclus); // pointing to the recPoints tree
    t->SetTOFLabel(tlab);

    AliDebug(3,Form(" Setting TOF raw time: %f  z distance: %f  corrected time: %f",rawTime,dzTW,tofcorr));

    Double_t mom=t->GetP();
    AliDebug(3,Form(" Momentum for track %d -> %f", iseed,mom));
    // Fill Reco-QA histos for Reconstruction
    fHRecNClus->Fill(nc);
    fHRecChi2->Fill(bestChi2);
    fHRecDistZ->Fill(dzTW);
    if (cov[0]>=0.)
      fHRecSigYVsP->Fill(mom,TMath::Sqrt(cov[0]));
    else
      fHRecSigYVsP->Fill(mom,-TMath::Sqrt(-cov[0]));
    if (cov[2]>=0.)
      fHRecSigZVsP->Fill(mom,TMath::Sqrt(cov[2]));
    else
      fHRecSigZVsP->Fill(mom,-TMath::Sqrt(-cov[2]));
    fHRecSigYVsPWin->Fill(mom,dphi*sensRadius);
    fHRecSigZVsPWin->Fill(mom,dz);

    // Fill Tree for on-the-fly offline Calibration
    // no longer there - all info is in the ESDs now

    delete trackTOFin;

  }

}
//_________________________________________________________________________
Int_t AliTOFtrackerV1::LoadClusters(TTree *cTree) {
  //--------------------------------------------------------------------
  //This function loads the TOF clusters
  //--------------------------------------------------------------------

  Int_t npadX = AliTOFGeometry::NpadX();
  Int_t npadZ = AliTOFGeometry::NpadZ();
  Int_t nStripA = AliTOFGeometry::NStripA();
  Int_t nStripB = AliTOFGeometry::NStripB();
  Int_t nStripC = AliTOFGeometry::NStripC();

  TBranch *branch=cTree->GetBranch("TOF");
  if (!branch) { 
    AliError("can't get the branch with the TOF clusters !");
    return 1;
  }

  static TClonesArray dummy("AliTOFcluster",10000);
  dummy.Clear();
  TClonesArray *clusters=&dummy;
  branch->SetAddress(&clusters);

  cTree->GetEvent(0);
  Int_t nc=clusters->GetEntriesFast();
  fHDigNClus->Fill(nc);

  AliInfo(Form("Number of clusters: %d",nc));

  for (Int_t i=0; i<nc; i++) {
    AliTOFcluster *c=(AliTOFcluster*)clusters->UncheckedAt(i);
//PH    fClusters[i]=new AliTOFcluster(*c); fN++;
    fClusters[i]=c; fN++;

  // Fill Digits QA histos
 
    Int_t isector = c->GetDetInd(0);
    Int_t iplate = c->GetDetInd(1);
    Int_t istrip = c->GetDetInd(2);
    Int_t ipadX = c->GetDetInd(4);
    Int_t ipadZ = c->GetDetInd(3);

    Float_t time =(AliTOFGeometry::TdcBinWidth()*c->GetTDC())*1E-3; // in ns
    Float_t tot = (AliTOFGeometry::TdcBinWidth()*c->GetToT())*1E-3;//in ns
 
    Int_t stripOffset = 0;
    switch (iplate) {
    case 0:
      stripOffset = 0;
      break;
    case 1:
      stripOffset = nStripC;
      break;
    case 2:
      stripOffset = nStripC+nStripB;
      break;
    case 3:
      stripOffset = nStripC+nStripB+nStripA;
      break;
    case 4:
      stripOffset = nStripC+nStripB+nStripA+nStripB;
      break;
    default:
      AliError(Form("Wrong plate number in TOF (%d) !",iplate));
      break;
    };
    Int_t zindex=npadZ*(istrip+stripOffset)+(ipadZ+1);
    Int_t phiindex=npadX*isector+ipadX+1;
    fHDigClusMap->Fill(zindex,phiindex);
    fHDigClusTime->Fill(time);
    fHDigClusToT->Fill(tot);
  }


  return 0;
}
//_________________________________________________________________________
void AliTOFtrackerV1::UnloadClusters() {
  //--------------------------------------------------------------------
  //This function unloads TOF clusters
  //--------------------------------------------------------------------
  for (Int_t i=0; i<fN; i++) {
//PH    delete fClusters[i];
    fClusters[i] = 0x0;
  }
  fN=0;
}

//_________________________________________________________________________
Int_t AliTOFtrackerV1::FindClusterIndex(Double_t z) const {
  //--------------------------------------------------------------------
  // This function returns the index of the nearest cluster 
  //--------------------------------------------------------------------
  //MOD
  //Here we need to get the Z in the tracking system

  if (fN==0) return 0;
  if (z <= fClusters[0]->GetZ()) return 0;
  if (z > fClusters[fN-1]->GetZ()) return fN;
  Int_t b=0, e=fN-1, m=(b+e)/2;
  for (; b<e; m=(b+e)/2) {
    if (z > fClusters[m]->GetZ()) b=m+1;
    else e=m; 
  }
  return m;
}

//_________________________________________________________________________
Bool_t AliTOFtrackerV1::GetTrackPoint(Int_t index, AliTrackPoint& p) const
{
  // Get track space point with index i
  // Coordinates are in the global system
  AliTOFcluster *cl = fClusters[index];
  Float_t xyz[3];
  cl->GetGlobalXYZ(xyz);
  Float_t phi=TMath::ATan2(xyz[1],xyz[0]);
  Float_t phiangle = (Int_t(phi*TMath::RadToDeg()/20.)+0.5)*20.*TMath::DegToRad();
  Float_t sinphi = TMath::Sin(phiangle), cosphi = TMath::Cos(phiangle);
  Float_t tiltangle = AliTOFGeometry::GetAngles(cl->GetDetInd(1),cl->GetDetInd(2))*TMath::DegToRad();
  Float_t sinth = TMath::Sin(tiltangle), costh = TMath::Cos(tiltangle);
  Float_t sigmay2 = AliTOFGeometry::XPad()*AliTOFGeometry::XPad()/12.;
  Float_t sigmaz2 = AliTOFGeometry::ZPad()*AliTOFGeometry::ZPad()/12.;
  Float_t cov[6];
  cov[0] = sinphi*sinphi*sigmay2 + cosphi*cosphi*sinth*sinth*sigmaz2;
  cov[1] = -sinphi*cosphi*sigmay2 + sinphi*cosphi*sinth*sinth*sigmaz2;
  cov[2] = -cosphi*sinth*costh*sigmaz2;
  cov[3] = cosphi*cosphi*sigmay2 + sinphi*sinphi*sinth*sinth*sigmaz2;
  cov[4] = -sinphi*sinth*costh*sigmaz2;
  cov[5] = costh*costh*sigmaz2;
  p.SetXYZ(xyz[0],xyz[1],xyz[2],cov);

  // Detector numbering scheme
  Int_t nSector = AliTOFGeometry::NSectors();
  Int_t nPlate  = AliTOFGeometry::NPlates();
  Int_t nStripA = AliTOFGeometry::NStripA();
  Int_t nStripB = AliTOFGeometry::NStripB();
  Int_t nStripC = AliTOFGeometry::NStripC();

  Int_t isector = cl->GetDetInd(0);
  if (isector >= nSector)
    AliError(Form("Wrong sector number in TOF (%d) !",isector));
  Int_t iplate = cl->GetDetInd(1);
  if (iplate >= nPlate)
    AliError(Form("Wrong plate number in TOF (%d) !",iplate));
  Int_t istrip = cl->GetDetInd(2);

  Int_t stripOffset = 0;
  switch (iplate) {
  case 0:
    stripOffset = 0;
    break;
  case 1:
    stripOffset = nStripC;
    break;
  case 2:
    stripOffset = nStripC+nStripB;
    break;
  case 3:
    stripOffset = nStripC+nStripB+nStripA;
    break;
  case 4:
    stripOffset = nStripC+nStripB+nStripA+nStripB;
    break;
  default:
    AliError(Form("Wrong plate number in TOF (%d) !",iplate));
    break;
  };

  Int_t idet = (2*(nStripC+nStripB)+nStripA)*isector +
               stripOffset +
               istrip;
  UShort_t volid = AliGeomManager::LayerToVolUID(AliGeomManager::kTOF,idet);
  p.SetVolumeID((UShort_t)volid);
  return kTRUE;
}
//_________________________________________________________________________
void AliTOFtrackerV1::InitCheckHists() {

  //Init histos for Digits/Reco QA and Calibration

  TDirectory *dir = gDirectory;
  TFile *logFileTOF = 0;

  TSeqCollection *list = gROOT->GetListOfFiles();
  int n = list->GetEntries();
  Bool_t isThere=kFALSE;
  for(int i=0; i<n; i++) {
    logFileTOF = (TFile*)list->At(i);
    if (strstr(logFileTOF->GetName(), "TOFQA.root")){
      isThere=kTRUE;
      break;
    } 
  }

  if(!isThere)logFileTOF = new TFile( "TOFQA.root","RECREATE");
  logFileTOF->cd(); 

  //Digits "QA" 
  fHDigClusMap = new TH2F("TOFDig_ClusMap", "",182,0.5,182.5,864, 0.5,864.5);  
  fHDigNClus = new TH1F("TOFDig_NClus", "",200,0.5,200.5);  
  fHDigClusTime = new TH1F("TOFDig_ClusTime", "",2000,0.,200.);  
  fHDigClusToT = new TH1F("TOFDig_ClusToT", "",500,0.,100);  

  //Reco "QA"
  fHRecNClus =new TH1F("TOFRec_NClusW", "",50,0.5,50.5);
  fHRecDistZ=new TH1F("TOFRec_DistZ", "",50,0.5,10.5);
  fHRecChi2=new TH1F("TOFRec_Chi2", "",100,0.,10.);
  fHRecSigYVsP=new TH2F("TOFDig_SigYVsP", "",40,0.,4.,100, 0.,5.);
  fHRecSigZVsP=new TH2F("TOFDig_SigZVsP", "",40,0.,4.,100, 0.,5.);
  fHRecSigYVsPWin=new TH2F("TOFDig_SigYVsPWin", "",40,0.,4.,100, 0.,50.);
  fHRecSigZVsPWin=new TH2F("TOFDig_SigZVsPWin", "",40,0.,4.,100, 0.,50.);

  dir->cd();

}

//_________________________________________________________________________
void AliTOFtrackerV1::SaveCheckHists() {

  //write histos for Digits/Reco QA and Calibration

  TDirectory *dir = gDirectory;
  //TFile *logFile = 0;
  TFile *logFileTOF = 0;

  TSeqCollection *list = gROOT->GetListOfFiles();
  int n = list->GetEntries();
  /*
  for(int i=0; i<n; i++) {
    logFile = (TFile*)list->At(i);
    if (strstr(logFile->GetName(), "AliESDs.root")) break;
  }
  */
  Bool_t isThere=kFALSE;
  for(int i=0; i<n; i++) {
    logFileTOF = (TFile*)list->At(i);
    if (strstr(logFileTOF->GetName(), "TOFQA.root")){
      isThere=kTRUE;
      break;
    } 
  }
   
  if(!isThere) {
	  AliError(Form("File TOFQA.root not found!! not wring histograms...."));
	  return;
  }
  //logFile->cd();
  logFileTOF->cd();
  fHDigClusMap->Write(fHDigClusMap->GetName(), TObject::kOverwrite);
  fHDigNClus->Write(fHDigNClus->GetName(), TObject::kOverwrite);
  fHDigClusTime->Write(fHDigClusTime->GetName(), TObject::kOverwrite);
  fHDigClusToT->Write(fHDigClusToT->GetName(), TObject::kOverwrite);
  fHRecNClus->Write(fHRecNClus->GetName(), TObject::kOverwrite);
  fHRecChi2->Write(fHRecChi2->GetName(), TObject::kOverwrite);
  fHRecDistZ->Write(fHRecDistZ->GetName(), TObject::kOverwrite);
  fHRecSigYVsP->Write(fHRecSigYVsP->GetName(), TObject::kOverwrite);
  fHRecSigZVsP->Write(fHRecSigZVsP->GetName(), TObject::kOverwrite);
  fHRecSigYVsPWin->Write(fHRecSigYVsPWin->GetName(), TObject::kOverwrite);
  fHRecSigZVsPWin->Write(fHRecSigZVsPWin->GetName(), TObject::kOverwrite);
  //logFile->Flush();  
  logFileTOF->Flush();  

  dir->cd();

  }
//_________________________________________________________________________
Float_t AliTOFtrackerV1::CorrectTimeWalk( Float_t dist, Float_t tof) const {

  //dummy, for the moment
  Float_t tofcorr=0.;
  if(dist<AliTOFGeometry::ZPad()*0.5){
    tofcorr=tof;
    //place here the actual correction
  }else{
    tofcorr=tof; 
  } 
  return tofcorr;
}
//_________________________________________________________________________
Float_t AliTOFtrackerV1::GetTimeZerofromT0(const AliESDEvent * const event) const {

  //Returns TimeZero as measured by T0 detector

  return event->GetT0();
}
//_________________________________________________________________________
Float_t AliTOFtrackerV1::GetTimeZerofromTOF(AliESDEvent * /*event*/) const {

  //dummy, for the moment. T0 algorithm using tracks on TOF
  {
    //place T0 algo here...
  }
  return 0.;
}
//_________________________________________________________________________

void AliTOFtrackerV1::FillClusterArray(TObjArray* arr) const
{
  //
  // Returns the TOF cluster array
  //

  if (fN==0)
    arr = 0x0;
  else
    for (Int_t i=0; i<fN; ++i) arr->Add(fClusters[i]);

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