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.                  *
 **************************************************************************/

/* $Id$ */

/////////////////////////////////////////////////////////////////////////////
//                                                                         //
// AliTOFtrack class                                                       //
//                                                                         //
// Authors: Bologna-CERN-ITEP-Salerno Group                                //
//                                                                         //
// Description: class for handling ESD extracted tracks for TOF matching.  //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////

#include "AliESDtrack.h" 
#include "AliTracker.h" 

#include "AliTOFGeometry.h"
#include "AliTOFtrack.h" 

ClassImp(AliTOFtrack)

//_____________________________________________________________________________
AliTOFtrack::AliTOFtrack() : 
  AliKalmanTrack(),
  fSeedInd(-1),
  fSeedLab(-1)
{
  //
  // Default constructor.
  //
}                                

//_____________________________________________________________________________
AliTOFtrack::AliTOFtrack(const AliTOFtrack& t) : 
  AliKalmanTrack(t),
  fSeedInd(t.fSeedInd),
  fSeedLab(t.fSeedLab) 
{
  //
  // Copy constructor.
  //
}                                

//____________________________________________________________________________
AliTOFtrack& AliTOFtrack::operator=(const AliESDtrack& t)
{
  // ass. op.
  SetLabel(t.GetLabel());
  SetChi2(0.);
  SetMass(t.GetMassForTracking());

  Set(t.GetX(),t.GetAlpha(),t.GetParameter(),t.GetCovariance());

  if ((t.GetStatus()&AliESDtrack::kTIME) == 0) return *this;
  StartTimeIntegral();
  Double_t times[10]; 
  for(Int_t isp=0;isp<AliPID::kSPECIESC;isp++){
    times[isp] = t.GetIntegratedTimesOld(isp); // in ps
  }

  SetIntegratedTimes(times);
  SetIntegratedLength(t.GetIntegratedLengthOld());

  return *this;

}

//_____________________________________________________________________________
AliTOFtrack::AliTOFtrack(const AliESDtrack& t) :
  AliKalmanTrack(), 
  fSeedInd(-1),
  fSeedLab(-1) 
{
  //
  // Constructor from AliESDtrack
  //
  SetLabel(t.GetLabel());
  SetChi2(0.);
  SetMass(t.GetMassForTracking());

  Set(t.GetX(),t.GetAlpha(),t.GetParameter(),t.GetCovariance());

  if ((t.GetStatus()&AliESDtrack::kTIME) == 0) return;
  StartTimeIntegral();
  Double_t times[10]; 
  for(Int_t isp=0;isp<AliPID::kSPECIESC;isp++){
    times[isp] = t.GetIntegratedTimesOld(isp); // in ps
  }

  SetIntegratedTimes(times);
  SetIntegratedLength(t.GetIntegratedLengthOld());

}              

//____________________________________________________________________________
AliTOFtrack& AliTOFtrack::operator=(const AliTOFtrack &/*source*/)
{
  // ass. op.

  return *this;

}

//_____________________________________________________________________________
Bool_t AliTOFtrack::PropagateTo(Double_t xk,Double_t /*x0*/,Double_t /*rho*/)
 {
  //
  // Propagates a track of particle with mass=pm to a reference plane 
  // defined by x=xk through media of density=rho and radiationLength=x0
  //

  if (xk == GetX()) return kTRUE;
  
  Double_t oldX=GetX();//, oldY=GetY(), oldZ=GetZ();
  Double_t start[3], end[3], mparam[7];

  /* get start position */
  GetXYZ(start);

  /* propagate the track */
  Double_t b[3];GetBxByBz(b);
  if (!AliExternalTrackParam::PropagateToBxByBz(xk,b)) return kFALSE;
  // OLD used code
  //Double_t bz=GetBz();
  //if (!AliExternalTrackParam::PropagateTo(xk,bz)) return kFALSE;

  /* get end position */
  GetXYZ(end);

  /* add time step to integral */
#if 0 /*** OLD ***/
  Double_t d = TMath::Sqrt((GetX()-oldX)*(GetX()-oldX) + 
                           (GetY()-oldY)*(GetY()-oldY) + 
                           (GetZ()-oldZ)*(GetZ()-oldZ));
  if (IsStartedTimeIntegral() && GetX()>oldX) AddTimeStep(d);
#endif
  Double_t d = TMath::Sqrt((end[0]-start[0])*(end[0]-start[0]) + 
                           (end[1]-start[1])*(end[1]-start[1]) + 
                           (end[2]-start[2])*(end[2]-start[2]));
  if (IsStartedTimeIntegral() && GetX()>oldX) AddTimeStep(d);

  /* get material budget from tracker */
  AliTracker::MeanMaterialBudget(start, end, mparam);
  Double_t xTimesRho = mparam[4]*mparam[0];
  if (oldX < xk) { // CZ
    xTimesRho = -xTimesRho; // it should be negative in case of outward
                            // propagation (--> energy decreases)
  } // CZ
  Double_t xOverX0   = mparam[1];

  /* correct for mean material */
  if (!AliExternalTrackParam::CorrectForMeanMaterial(xOverX0,xTimesRho,GetMass())) return kFALSE;


#if 0 /*** OLD ***/
  if (!AliExternalTrackParam::CorrectForMaterial(d*rho/x0,x0,GetMass())) 
     return kFALSE;
#endif

  /*
  //Energy losses************************
  if((5940*beta2/(1-beta2+1e-10) - beta2) < 0){return 0;}

  Double_t dE=0.153e-3/beta2*(log(5940*beta2/(1-beta2+1e-10)) - beta2)*d*rho;
  //
  // suspicious part - think about it ?
  Double_t kinE =  TMath::Sqrt(p2);
  if (dE>0.8*kinE) dE = 0.8*kinE;  //      
  if (dE<0)        dE = 0.0;       // not valid region for Bethe bloch 
  */

  return kTRUE;            
}     

//_____________________________________________________________________________
Bool_t AliTOFtrack::PropagateToInnerTOF()
{
  // Propagates a track of particle with mass=pm to a reference plane 
  // defined by x=xk through media of density=rho and radiationLength=x0

  //const Double_t kAlphac  = TMath::Pi()/9.0; // 20 degree
  const Double_t kAlphac  = AliTOFGeometry::GetAlpha(); // 20 degree
  const Double_t kTalphac = TMath::Tan(kAlphac*0.5);

  //const Double_t kStepSize = 0.1; // [cm] Step size
  const Double_t kStepSize = 0.5; // [cm] Step size

  Double_t x = GetX();
  //Double_t bz = GetBz();

  //Double_t xyz0[3];
  //Double_t xyz1[3];
  //Double_t y;
  //Double_t z;

  Int_t nsteps = (Int_t)((AliTOFGeometry::Rmin()-x)/kStepSize);
  for (Int_t istep=0; istep<nsteps; istep++){

    // Critical alpha  - cross sector indication

    Double_t dir = (GetX() > AliTOFGeometry::Rmin()) ? -1.0 : 1.0;

    x = GetX()+dir*kStepSize;
    if ( x<GetX() && GetX()<AliTOFGeometry::Rmin()) {
      AliDebug(1,Form("Track doesn't reach rho=%f",AliTOFGeometry::Rmin()));
      return kFALSE;
    }

    //GetXYZ(xyz0);
    //bz = GetBz();
    //GetXYZAt(x,bz,xyz1);
    //AliExternalTrackParam::GetYAt(x,bz,y);
    //AliExternalTrackParam::GetZAt(x,bz,z);
 
    if (!(PropagateTo(x,0.,0.))) { /* passing 0.,0. as arguments since now
				      this method queries TGeo for material budget
				   */
      return kFALSE;
    }
    
    if (GetY() >  GetX()*kTalphac) {
      if (!(Rotate(kAlphac))) return kFALSE;
    } else if (GetY() < -GetX()*kTalphac) {
      if (!(Rotate(-kAlphac))) return kFALSE;
    }

  }

  //Bool_t check = PropagateTo(AliTOFGeometry::RinTOF());
  Bool_t check = PropagateTo(AliTOFGeometry::RinTOF(),0.,0.); /* passing 0.,0. as arguments since now
								 this method queries TGeo for material budget
							      */

  if (!check) return kFALSE;

  if (GetY() >  GetX()*kTalphac) {
    if (!(Rotate(kAlphac))) return kFALSE;
  } else if (GetY() < -GetX()*kTalphac) {
    if (!(Rotate(-kAlphac))) return kFALSE;
  }

  return kTRUE;
  
}     

//_____________________________________________________________________________
Bool_t AliTOFtrack::PropagateToInnerTOFold()
{
  // Propagates a track of particle with mass=pm to a reference plane 
  // defined by x=xk through media of density=rho and radiationLength=x0


  Double_t ymax=AliTOFGeometry::RinTOF()*TMath::Tan(0.5*AliTOFGeometry::GetAlpha());
  Bool_t skip = kFALSE;
  Double_t y=GetYat(AliTOFGeometry::RinTOF(),skip);
  if (skip) {
    return kFALSE;
  }
  if (y > ymax) {
    if (!Rotate(AliTOFGeometry::GetAlpha())) return kFALSE;
  } else if (y <-ymax) {
    if (!Rotate(-AliTOFGeometry::GetAlpha())) return kFALSE;
  }
  
  Double_t x = GetX();
  Int_t nsteps=Int_t((AliTOFGeometry::Rmin()-x)/0.5); // 0.5 cm Steps
  for (Int_t istep=0;istep<nsteps;istep++){
    Float_t xp = x+istep*0.5; 
    //    GetPropagationParameters(param);  
    if (!(PropagateTo(xp,0.,0.))) { /* passing 0.,0. as arguments since now
				       this method queries TGeo for material budget
				    */
      return kFALSE;
    }
    
  }
  
  if (!(PropagateTo(AliTOFGeometry::RinTOF()))) return kFALSE;

  return kTRUE;
  
}     

//_________________________________________________________________________
Double_t AliTOFtrack::GetPredictedChi2(const AliCluster3D *c) const {
  //
  // Estimate the chi2 of the space point "c" with its cov. matrix elements
  //

  Double_t p[3]={c->GetX(), c->GetY(), c->GetZ()};
  Double_t covyz[3]={c->GetSigmaY2(), c->GetSigmaYZ(), c->GetSigmaZ2()};
  Double_t covxyz[3]={c->GetSigmaX2(), c->GetSigmaXY(), c->GetSigmaXZ()};
  return AliExternalTrackParam::GetPredictedChi2(p, covyz, covxyz);
}
//_________________________________________________________________________
Bool_t AliTOFtrack::PropagateTo(const AliCluster3D *c) {
  //
  // Propagates a track to the plane containing cluster 'c'
  //
  Double_t oldX=GetX(), oldY=GetY(), oldZ=GetZ();
  Double_t p[3]={c->GetX(), c->GetY(), c->GetZ()};
  Double_t covyz[3]={c->GetSigmaY2(), c->GetSigmaYZ(), c->GetSigmaZ2()};
  Double_t covxyz[3]={c->GetSigmaX2(), c->GetSigmaXY(), c->GetSigmaXZ()};
  Double_t bz=GetBz();
  if (!AliExternalTrackParam::PropagateTo(p, covyz, covxyz, bz)) return kFALSE;
  if (IsStartedTimeIntegral()) {
    Double_t d = TMath::Sqrt((GetX()-oldX)*(GetX()-oldX) +
			     (GetY()-oldY)*(GetY()-oldY) +
			     (GetZ()-oldZ)*(GetZ()-oldZ));
    if (GetX()<oldX) d=-d;
    AddTimeStep(d);

  }

  if (GetY() >  GetX()*TMath::Tan(0.5*AliTOFGeometry::GetAlpha())) {
    if (!(Rotate(AliTOFGeometry::GetAlpha()))) return kFALSE;
  } else if (GetY() < -GetX()*TMath::Tan(0.5*AliTOFGeometry::GetAlpha())) {
    if (!(Rotate(-AliTOFGeometry::GetAlpha()))) return kFALSE;
  }

  return kTRUE;
}
//_________________________________________________________________________
Double_t AliTOFtrack::GetYat(Double_t xk, Bool_t & skip) const {     
//-----------------------------------------------------------------
// This function calculates the Y-coordinate of a track at the plane x=xk.
// Needed for matching with the TOF (I.Belikov)
//-----------------------------------------------------------------
     Double_t y=0.;
     skip=(!GetYAt(xk,GetBz(),y));
     return y;
}

//_____________________________________________________________________________
Int_t AliTOFtrack::Compare(const TObject *o) const {
  //-----------------------------------------------------------------
  // This function compares tracks according to the their curvature
  //-----------------------------------------------------------------
  AliTOFtrack *t=(AliTOFtrack*)o;
  Double_t co=t->GetSigmaY2()*t->GetSigmaZ2();
  Double_t c =GetSigmaY2()*GetSigmaZ2();
  if (c>co) return 1;
  else if (c<co) return -1;
  return 0;
}


//_____________________________________________________________________________
void AliTOFtrack::GetPropagationParameters(Double_t *param) {

 //Get average medium density, x0 while propagating the track

  //For TRD holes description
  /*
  Double_t thetamin = (90.-31.1) * TMath::Pi()/180.;
  Double_t thetamax = (90.+31.1) * TMath::Pi()/180.;

  Double_t zmin = -55.;
  Double_t zmax =  55.;
  */

  // Detector inner/outer radii
  Double_t rTPC    = 261.53;
  Double_t rTPCTRD = 294.5;
  Double_t rTRD    = 369.1;

  // Medium parameters
  Double_t x0TPC = 40.;
  Double_t rhoTPC =0.06124;

  Double_t x0Air = 36.66;
  Double_t rhoAir =1.2931e-3;

  Double_t x0TRD = 171.7;
  Double_t rhoTRD =0.33;

  //  Int_t isec = GetSector();
  Double_t r[3]; GetXYZ(r);
  //  Float_t thetatr = TMath::ATan2(TMath::Sqrt(r[0]*r[0]+r[1]*r[1]),r[2]);

  /*
  if(holes){
    if (isec == 0 || isec == 1 || isec == 2 ) {
      if( thetatr>=thetamin && thetatr<=thetamax){ 
	x0TRD= x0Air;
	rhoTRD = rhoAir;
      }
    }
    if (isec == 11 || isec == 12 || isec == 13 || isec == 14 || isec == 15 ) {
      if( r[2]>=zmin && r[2]<=zmax){ 
	x0TRD= x0Air;
	rhoTRD = rhoAir;
      }
    }
  }
  */
  if(GetX() <= rTPC)
    {param[0]=x0TPC;param[1]=rhoTPC;}
  else if(GetX() > rTPC &&  GetX() < rTPCTRD)
    {param[0]=x0Air;param[1]=rhoAir;}
  else if(GetX() >= rTPCTRD &&  GetX() < rTRD)
    {param[0]=x0TRD;param[1]=rhoTRD;}
  else if(GetX() >= rTRD )
    {param[0]=x0Air;param[1]=rhoAir;}
}
 AliTOFtrack.cxx:1
 AliTOFtrack.cxx:2
 AliTOFtrack.cxx:3
 AliTOFtrack.cxx:4
 AliTOFtrack.cxx:5
 AliTOFtrack.cxx:6
 AliTOFtrack.cxx:7
 AliTOFtrack.cxx:8
 AliTOFtrack.cxx:9
 AliTOFtrack.cxx:10
 AliTOFtrack.cxx:11
 AliTOFtrack.cxx:12
 AliTOFtrack.cxx:13
 AliTOFtrack.cxx:14
 AliTOFtrack.cxx:15
 AliTOFtrack.cxx:16
 AliTOFtrack.cxx:17
 AliTOFtrack.cxx:18
 AliTOFtrack.cxx:19
 AliTOFtrack.cxx:20
 AliTOFtrack.cxx:21
 AliTOFtrack.cxx:22
 AliTOFtrack.cxx:23
 AliTOFtrack.cxx:24
 AliTOFtrack.cxx:25
 AliTOFtrack.cxx:26
 AliTOFtrack.cxx:27
 AliTOFtrack.cxx:28
 AliTOFtrack.cxx:29
 AliTOFtrack.cxx:30
 AliTOFtrack.cxx:31
 AliTOFtrack.cxx:32
 AliTOFtrack.cxx:33
 AliTOFtrack.cxx:34
 AliTOFtrack.cxx:35
 AliTOFtrack.cxx:36
 AliTOFtrack.cxx:37
 AliTOFtrack.cxx:38
 AliTOFtrack.cxx:39
 AliTOFtrack.cxx:40
 AliTOFtrack.cxx:41
 AliTOFtrack.cxx:42
 AliTOFtrack.cxx:43
 AliTOFtrack.cxx:44
 AliTOFtrack.cxx:45
 AliTOFtrack.cxx:46
 AliTOFtrack.cxx:47
 AliTOFtrack.cxx:48
 AliTOFtrack.cxx:49
 AliTOFtrack.cxx:50
 AliTOFtrack.cxx:51
 AliTOFtrack.cxx:52
 AliTOFtrack.cxx:53
 AliTOFtrack.cxx:54
 AliTOFtrack.cxx:55
 AliTOFtrack.cxx:56
 AliTOFtrack.cxx:57
 AliTOFtrack.cxx:58
 AliTOFtrack.cxx:59
 AliTOFtrack.cxx:60
 AliTOFtrack.cxx:61
 AliTOFtrack.cxx:62
 AliTOFtrack.cxx:63
 AliTOFtrack.cxx:64
 AliTOFtrack.cxx:65
 AliTOFtrack.cxx:66
 AliTOFtrack.cxx:67
 AliTOFtrack.cxx:68
 AliTOFtrack.cxx:69
 AliTOFtrack.cxx:70
 AliTOFtrack.cxx:71
 AliTOFtrack.cxx:72
 AliTOFtrack.cxx:73
 AliTOFtrack.cxx:74
 AliTOFtrack.cxx:75
 AliTOFtrack.cxx:76
 AliTOFtrack.cxx:77
 AliTOFtrack.cxx:78
 AliTOFtrack.cxx:79
 AliTOFtrack.cxx:80
 AliTOFtrack.cxx:81
 AliTOFtrack.cxx:82
 AliTOFtrack.cxx:83
 AliTOFtrack.cxx:84
 AliTOFtrack.cxx:85
 AliTOFtrack.cxx:86
 AliTOFtrack.cxx:87
 AliTOFtrack.cxx:88
 AliTOFtrack.cxx:89
 AliTOFtrack.cxx:90
 AliTOFtrack.cxx:91
 AliTOFtrack.cxx:92
 AliTOFtrack.cxx:93
 AliTOFtrack.cxx:94
 AliTOFtrack.cxx:95
 AliTOFtrack.cxx:96
 AliTOFtrack.cxx:97
 AliTOFtrack.cxx:98
 AliTOFtrack.cxx:99
 AliTOFtrack.cxx:100
 AliTOFtrack.cxx:101
 AliTOFtrack.cxx:102
 AliTOFtrack.cxx:103
 AliTOFtrack.cxx:104
 AliTOFtrack.cxx:105
 AliTOFtrack.cxx:106
 AliTOFtrack.cxx:107
 AliTOFtrack.cxx:108
 AliTOFtrack.cxx:109
 AliTOFtrack.cxx:110
 AliTOFtrack.cxx:111
 AliTOFtrack.cxx:112
 AliTOFtrack.cxx:113
 AliTOFtrack.cxx:114
 AliTOFtrack.cxx:115
 AliTOFtrack.cxx:116
 AliTOFtrack.cxx:117
 AliTOFtrack.cxx:118
 AliTOFtrack.cxx:119
 AliTOFtrack.cxx:120
 AliTOFtrack.cxx:121
 AliTOFtrack.cxx:122
 AliTOFtrack.cxx:123
 AliTOFtrack.cxx:124
 AliTOFtrack.cxx:125
 AliTOFtrack.cxx:126
 AliTOFtrack.cxx:127
 AliTOFtrack.cxx:128
 AliTOFtrack.cxx:129
 AliTOFtrack.cxx:130
 AliTOFtrack.cxx:131
 AliTOFtrack.cxx:132
 AliTOFtrack.cxx:133
 AliTOFtrack.cxx:134
 AliTOFtrack.cxx:135
 AliTOFtrack.cxx:136
 AliTOFtrack.cxx:137
 AliTOFtrack.cxx:138
 AliTOFtrack.cxx:139
 AliTOFtrack.cxx:140
 AliTOFtrack.cxx:141
 AliTOFtrack.cxx:142
 AliTOFtrack.cxx:143
 AliTOFtrack.cxx:144
 AliTOFtrack.cxx:145
 AliTOFtrack.cxx:146
 AliTOFtrack.cxx:147
 AliTOFtrack.cxx:148
 AliTOFtrack.cxx:149
 AliTOFtrack.cxx:150
 AliTOFtrack.cxx:151
 AliTOFtrack.cxx:152
 AliTOFtrack.cxx:153
 AliTOFtrack.cxx:154
 AliTOFtrack.cxx:155
 AliTOFtrack.cxx:156
 AliTOFtrack.cxx:157
 AliTOFtrack.cxx:158
 AliTOFtrack.cxx:159
 AliTOFtrack.cxx:160
 AliTOFtrack.cxx:161
 AliTOFtrack.cxx:162
 AliTOFtrack.cxx:163
 AliTOFtrack.cxx:164
 AliTOFtrack.cxx:165
 AliTOFtrack.cxx:166
 AliTOFtrack.cxx:167
 AliTOFtrack.cxx:168
 AliTOFtrack.cxx:169
 AliTOFtrack.cxx:170
 AliTOFtrack.cxx:171
 AliTOFtrack.cxx:172
 AliTOFtrack.cxx:173
 AliTOFtrack.cxx:174
 AliTOFtrack.cxx:175
 AliTOFtrack.cxx:176
 AliTOFtrack.cxx:177
 AliTOFtrack.cxx:178
 AliTOFtrack.cxx:179
 AliTOFtrack.cxx:180
 AliTOFtrack.cxx:181
 AliTOFtrack.cxx:182
 AliTOFtrack.cxx:183
 AliTOFtrack.cxx:184
 AliTOFtrack.cxx:185
 AliTOFtrack.cxx:186
 AliTOFtrack.cxx:187
 AliTOFtrack.cxx:188
 AliTOFtrack.cxx:189
 AliTOFtrack.cxx:190
 AliTOFtrack.cxx:191
 AliTOFtrack.cxx:192
 AliTOFtrack.cxx:193
 AliTOFtrack.cxx:194
 AliTOFtrack.cxx:195
 AliTOFtrack.cxx:196
 AliTOFtrack.cxx:197
 AliTOFtrack.cxx:198
 AliTOFtrack.cxx:199
 AliTOFtrack.cxx:200
 AliTOFtrack.cxx:201
 AliTOFtrack.cxx:202
 AliTOFtrack.cxx:203
 AliTOFtrack.cxx:204
 AliTOFtrack.cxx:205
 AliTOFtrack.cxx:206
 AliTOFtrack.cxx:207
 AliTOFtrack.cxx:208
 AliTOFtrack.cxx:209
 AliTOFtrack.cxx:210
 AliTOFtrack.cxx:211
 AliTOFtrack.cxx:212
 AliTOFtrack.cxx:213
 AliTOFtrack.cxx:214
 AliTOFtrack.cxx:215
 AliTOFtrack.cxx:216
 AliTOFtrack.cxx:217
 AliTOFtrack.cxx:218
 AliTOFtrack.cxx:219
 AliTOFtrack.cxx:220
 AliTOFtrack.cxx:221
 AliTOFtrack.cxx:222
 AliTOFtrack.cxx:223
 AliTOFtrack.cxx:224
 AliTOFtrack.cxx:225
 AliTOFtrack.cxx:226
 AliTOFtrack.cxx:227
 AliTOFtrack.cxx:228
 AliTOFtrack.cxx:229
 AliTOFtrack.cxx:230
 AliTOFtrack.cxx:231
 AliTOFtrack.cxx:232
 AliTOFtrack.cxx:233
 AliTOFtrack.cxx:234
 AliTOFtrack.cxx:235
 AliTOFtrack.cxx:236
 AliTOFtrack.cxx:237
 AliTOFtrack.cxx:238
 AliTOFtrack.cxx:239
 AliTOFtrack.cxx:240
 AliTOFtrack.cxx:241
 AliTOFtrack.cxx:242
 AliTOFtrack.cxx:243
 AliTOFtrack.cxx:244
 AliTOFtrack.cxx:245
 AliTOFtrack.cxx:246
 AliTOFtrack.cxx:247
 AliTOFtrack.cxx:248
 AliTOFtrack.cxx:249
 AliTOFtrack.cxx:250
 AliTOFtrack.cxx:251
 AliTOFtrack.cxx:252
 AliTOFtrack.cxx:253
 AliTOFtrack.cxx:254
 AliTOFtrack.cxx:255
 AliTOFtrack.cxx:256
 AliTOFtrack.cxx:257
 AliTOFtrack.cxx:258
 AliTOFtrack.cxx:259
 AliTOFtrack.cxx:260
 AliTOFtrack.cxx:261
 AliTOFtrack.cxx:262
 AliTOFtrack.cxx:263
 AliTOFtrack.cxx:264
 AliTOFtrack.cxx:265
 AliTOFtrack.cxx:266
 AliTOFtrack.cxx:267
 AliTOFtrack.cxx:268
 AliTOFtrack.cxx:269
 AliTOFtrack.cxx:270
 AliTOFtrack.cxx:271
 AliTOFtrack.cxx:272
 AliTOFtrack.cxx:273
 AliTOFtrack.cxx:274
 AliTOFtrack.cxx:275
 AliTOFtrack.cxx:276
 AliTOFtrack.cxx:277
 AliTOFtrack.cxx:278
 AliTOFtrack.cxx:279
 AliTOFtrack.cxx:280
 AliTOFtrack.cxx:281
 AliTOFtrack.cxx:282
 AliTOFtrack.cxx:283
 AliTOFtrack.cxx:284
 AliTOFtrack.cxx:285
 AliTOFtrack.cxx:286
 AliTOFtrack.cxx:287
 AliTOFtrack.cxx:288
 AliTOFtrack.cxx:289
 AliTOFtrack.cxx:290
 AliTOFtrack.cxx:291
 AliTOFtrack.cxx:292
 AliTOFtrack.cxx:293
 AliTOFtrack.cxx:294
 AliTOFtrack.cxx:295
 AliTOFtrack.cxx:296
 AliTOFtrack.cxx:297
 AliTOFtrack.cxx:298
 AliTOFtrack.cxx:299
 AliTOFtrack.cxx:300
 AliTOFtrack.cxx:301
 AliTOFtrack.cxx:302
 AliTOFtrack.cxx:303
 AliTOFtrack.cxx:304
 AliTOFtrack.cxx:305
 AliTOFtrack.cxx:306
 AliTOFtrack.cxx:307
 AliTOFtrack.cxx:308
 AliTOFtrack.cxx:309
 AliTOFtrack.cxx:310
 AliTOFtrack.cxx:311
 AliTOFtrack.cxx:312
 AliTOFtrack.cxx:313
 AliTOFtrack.cxx:314
 AliTOFtrack.cxx:315
 AliTOFtrack.cxx:316
 AliTOFtrack.cxx:317
 AliTOFtrack.cxx:318
 AliTOFtrack.cxx:319
 AliTOFtrack.cxx:320
 AliTOFtrack.cxx:321
 AliTOFtrack.cxx:322
 AliTOFtrack.cxx:323
 AliTOFtrack.cxx:324
 AliTOFtrack.cxx:325
 AliTOFtrack.cxx:326
 AliTOFtrack.cxx:327
 AliTOFtrack.cxx:328
 AliTOFtrack.cxx:329
 AliTOFtrack.cxx:330
 AliTOFtrack.cxx:331
 AliTOFtrack.cxx:332
 AliTOFtrack.cxx:333
 AliTOFtrack.cxx:334
 AliTOFtrack.cxx:335
 AliTOFtrack.cxx:336
 AliTOFtrack.cxx:337
 AliTOFtrack.cxx:338
 AliTOFtrack.cxx:339
 AliTOFtrack.cxx:340
 AliTOFtrack.cxx:341
 AliTOFtrack.cxx:342
 AliTOFtrack.cxx:343
 AliTOFtrack.cxx:344
 AliTOFtrack.cxx:345
 AliTOFtrack.cxx:346
 AliTOFtrack.cxx:347
 AliTOFtrack.cxx:348
 AliTOFtrack.cxx:349
 AliTOFtrack.cxx:350
 AliTOFtrack.cxx:351
 AliTOFtrack.cxx:352
 AliTOFtrack.cxx:353
 AliTOFtrack.cxx:354
 AliTOFtrack.cxx:355
 AliTOFtrack.cxx:356
 AliTOFtrack.cxx:357
 AliTOFtrack.cxx:358
 AliTOFtrack.cxx:359
 AliTOFtrack.cxx:360
 AliTOFtrack.cxx:361
 AliTOFtrack.cxx:362
 AliTOFtrack.cxx:363
 AliTOFtrack.cxx:364
 AliTOFtrack.cxx:365
 AliTOFtrack.cxx:366
 AliTOFtrack.cxx:367
 AliTOFtrack.cxx:368
 AliTOFtrack.cxx:369
 AliTOFtrack.cxx:370
 AliTOFtrack.cxx:371
 AliTOFtrack.cxx:372
 AliTOFtrack.cxx:373
 AliTOFtrack.cxx:374
 AliTOFtrack.cxx:375
 AliTOFtrack.cxx:376
 AliTOFtrack.cxx:377
 AliTOFtrack.cxx:378
 AliTOFtrack.cxx:379
 AliTOFtrack.cxx:380
 AliTOFtrack.cxx:381
 AliTOFtrack.cxx:382
 AliTOFtrack.cxx:383
 AliTOFtrack.cxx:384
 AliTOFtrack.cxx:385
 AliTOFtrack.cxx:386
 AliTOFtrack.cxx:387
 AliTOFtrack.cxx:388
 AliTOFtrack.cxx:389
 AliTOFtrack.cxx:390
 AliTOFtrack.cxx:391
 AliTOFtrack.cxx:392
 AliTOFtrack.cxx:393
 AliTOFtrack.cxx:394
 AliTOFtrack.cxx:395
 AliTOFtrack.cxx:396
 AliTOFtrack.cxx:397
 AliTOFtrack.cxx:398
 AliTOFtrack.cxx:399
 AliTOFtrack.cxx:400
 AliTOFtrack.cxx:401
 AliTOFtrack.cxx:402
 AliTOFtrack.cxx:403
 AliTOFtrack.cxx:404
 AliTOFtrack.cxx:405
 AliTOFtrack.cxx:406
 AliTOFtrack.cxx:407
 AliTOFtrack.cxx:408
 AliTOFtrack.cxx:409
 AliTOFtrack.cxx:410
 AliTOFtrack.cxx:411
 AliTOFtrack.cxx:412
 AliTOFtrack.cxx:413
 AliTOFtrack.cxx:414
 AliTOFtrack.cxx:415
 AliTOFtrack.cxx:416
 AliTOFtrack.cxx:417
 AliTOFtrack.cxx:418
 AliTOFtrack.cxx:419