ROOT logo
#include <limits>

#include "TObject.h"
#include "TList.h"
#include "TMath.h"
#include "Math/Minimizer.h"

#include "AliLog.h"
#include "AliVTrdTracklet.h"
#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"

#include "AliTRDtrackOnline.h"

AliTRDgeometry *AliTRDtrackOnline::fgGeometry = new AliTRDgeometry();

AliTRDtrackOnline::AliTRDtrackOnline() :
  TObject(),
  fNTracklets(0),
  fTracklets(),
  fTrackParametrizations(),
  fErrorY(0.05)
{

}


AliTRDtrackOnline::~AliTRDtrackOnline()
{

}


void AliTRDtrackOnline::AddTracklet(AliVTrdTracklet *trkl)
{
  if (fNTracklets == fgkMaxTracklets)
    return;
  else
    fTracklets[fNTracklets++] = trkl;
}


Bool_t AliTRDtrackOnline::Fit(ROOT::Math::Minimizer *minim)
{
  // fit all attached parametrizations

  Bool_t minSuccess = kFALSE;

  if (minim) {
    minSuccess = kTRUE;

    TIter param(&fTrackParametrizations);

    while (AliTRDtrackParametrization *par = (AliTRDtrackParametrization*) param()) {

      AliTRDtrackResiduals res(this, par);
      minim->Clear();
      minim->SetFunction(res);
      par->SetParams(minim);
      minSuccess &= minim->Minimize();
      par->GetParams(minim);
    }
  }

  return minSuccess;
}


AliTRDtrackPosition AliTRDtrackOnline::ExtrapolateToLayer(Int_t /* layer */)
{
  Int_t maxLayer = -1;
  AliVTrdTracklet *trklBest = 0x0;
  for (Int_t iTracklet = fNTracklets-1; iTracklet > -1; iTracklet--) {
    AliVTrdTracklet *trkl = (AliVTrdTracklet*) fTracklets[iTracklet];
    if (trkl->GetDetector() % 6 >= maxLayer) {
      maxLayer = trkl->GetDetector() % 6;
      trklBest = trkl;
    }
  }
  if (trklBest)
    return AliTRDtrackPosition(trklBest->GetLocalY(), GetZ(trklBest));
  else {
    AliFatal("No tracklet in this track");
    return AliTRDtrackPosition(std::numeric_limits<float>::quiet_NaN(), std::numeric_limits<float>::quiet_NaN());
  }
}


void AliTRDtrackOnline::Print(Option_t* /* option */) const
{
  printf("track with %i tracklets:\n", GetNTracklets());
  for (Int_t iTracklet = 0; iTracklet < fNTracklets; iTracklet++) {
    printf("  0x%08x %i %4.1f %4.1f\n",
	   ((AliVTrdTracklet*) fTracklets[iTracklet])->GetTrackletWord(),
	   ((AliVTrdTracklet*) fTracklets[iTracklet])->GetDetector() % 6,
	   ((AliVTrdTracklet*) fTracklets[iTracklet])->GetLocalY(),
	   GetZ((AliVTrdTracklet*) fTracklets[iTracklet]));
  }
  TIter next(&fTrackParametrizations);
  while (AliTRDtrackParametrization *param = (AliTRDtrackParametrization*) next()) {
    param->Print();
  }
}

AliTRDtrackPosition::AliTRDtrackPosition(Float_t y, Float_t z, Float_t dy) :
  TObject(),
  fY(y),
  fZ(z),
  fDy(dy)
{

}

AliTRDtrackPosition::~AliTRDtrackPosition()
{

}

Float_t AliTRDtrackPosition::Distance(AliVTrdTracklet *trkl) const
{
  return TMath::Hypot(trkl->GetLocalY() - fY, AliTRDtrackOnline::GetZ(trkl) - fZ);
}


AliTRDtrackParametrization::AliTRDtrackParametrization(const char* name, const char* title) :
  TNamed(name, title),
  fFitGood(kFALSE)
{

}

AliTRDtrackParametrizationStraightLine::AliTRDtrackParametrizationStraightLine() :
  AliTRDtrackParametrization("straight line", "straight line"),
  fOffsetY(0),
  fSlopeY(0),
  fOffsetZ(0),
  fSlopeZ(0)
{

}

AliTRDtrackParametrizationStraightLine::AliTRDtrackParametrizationStraightLine(Double_t offsetY, Double_t slopeY,
									       Double_t offsetZ, Double_t slopeZ) :
  AliTRDtrackParametrization("straight line", Form("straight line: y = %4.2f + %4.2f * x, z = %4.2f + %4.2f *x",
						   offsetY, slopeY, offsetZ, slopeZ)),
  fOffsetY(offsetY),
  fSlopeY(slopeY),
  fOffsetZ(offsetZ),
  fSlopeZ(slopeZ)
{

}

void AliTRDtrackParametrizationStraightLine::SetParams(ROOT::Math::Minimizer * minim)
{
  minim->SetVariable(0, "offsety", 0., 0.1);
  minim->SetVariable(1, "slopey", 0., 0.1);
  // minim->SetVariable(2, "offsetz", 0., 0.1);
  minim->SetFixedVariable(2, "offsetz", 0.);
  minim->SetVariable(3, "slopez", 0., 0.1);
}

void AliTRDtrackParametrizationStraightLine::GetParams(ROOT::Math::Minimizer * minim)
{
  fOffsetY = minim->X()[0];
  fSlopeY  = minim->X()[1];
  fOffsetZ = minim->X()[2];
  fSlopeZ  = minim->X()[3];
}

void AliTRDtrackParametrizationStraightLine::SetValues(const Double_t *par)
{
  fOffsetY = par[0];
  fSlopeY  = par[1];
  fOffsetZ = par[2];
  fSlopeZ  = par[3];
}

AliTRDtrackPosition AliTRDtrackParametrizationStraightLine::ExtrapolateToLayer(Int_t layer)
{
  Float_t y = fOffsetY + fSlopeY * AliTRDtrackOnline::fgGeometry->GetTime0(layer);
  Float_t z = fOffsetZ + fSlopeZ * AliTRDtrackOnline::fgGeometry->GetTime0(layer);
  return AliTRDtrackPosition(y, z, fSlopeY*3.);
}

AliTRDtrackPosition AliTRDtrackParametrizationStraightLine::ExtrapolateToX(Float_t x)
{
  Float_t y = fOffsetY + fSlopeY * x;
  Float_t z = fOffsetZ + fSlopeZ * x;
  return AliTRDtrackPosition(y, z, fSlopeY*3.);
}

void AliTRDtrackParametrizationStraightLine::Print(Option_t * /* option */) const
{
  printf("straight line: offsetY = %4.1f, slopeY = %4.1f; offsetZ = %4.1f, slopeZ = %4.1f\n",
	 fOffsetY, fSlopeY, fOffsetZ, fSlopeZ);
}

AliTRDtrackParametrizationCurved::AliTRDtrackParametrizationCurved() :
  AliTRDtrackParametrization("helix", "helix"),
  fRadiusInv(0.),
  fOffsetY(0.),
  fOffsetZ(0.),
  fSlopeZ(0.),
  fOffsetX(300.)
{

}


void AliTRDtrackParametrizationCurved::SetParams(ROOT::Math::Minimizer * minim)
{
  minim->SetVariable(0, "offsety", 0., 0.1);
  minim->SetVariable(1, "invradius", 0., 0.1);
  // minim->SetVariable(2, "offsetz", 1., 0.1);
  minim->SetFixedVariable(2, "offsetz", 0.);
  minim->SetVariable(3, "slopez", 0., 0.1);
}


void AliTRDtrackParametrizationCurved::GetParams(ROOT::Math::Minimizer * minim)
{
  this->SetValues(minim->X());
}


void AliTRDtrackParametrizationCurved::SetValues(const Double_t *par)
{
  fOffsetY    = par[0];
  fRadiusInv  = par[1];
  fOffsetZ    = par[2];
  fSlopeZ     = par[3];
}

AliTRDtrackPosition AliTRDtrackParametrizationCurved::ExtrapolateToLayer(Int_t layer)
{
  return ExtrapolateToX(AliTRDtrackOnline::fgGeometry->GetTime0(layer));
}

AliTRDtrackPosition AliTRDtrackParametrizationCurved::ExtrapolateToX(Float_t x)
{
  Double_t yext1 = GetY(x);
  Double_t yext2 = GetY(x + 3.);

  Double_t zext = fOffsetZ + fSlopeZ * x;

  return AliTRDtrackPosition(yext1, zext, yext2-yext1);
}

Float_t AliTRDtrackParametrizationCurved::GetY(Float_t x)
{
 Double_t yext = 0.;
  // use Taylor expansion for small 1/R
  if (TMath::Abs(fRadiusInv) < 1.) {
    // offset
    yext  = fOffsetY * x/fOffsetX;
    // linear term
    yext += - (fOffsetX - x) * x * fRadiusInv /
      (2 * (fOffsetX*1./TMath::Sqrt(fOffsetX*fOffsetX + fOffsetY*fOffsetY)) *
       (fOffsetX*1./TMath::Sqrt(fOffsetX*fOffsetX + fOffsetY*fOffsetY)) *
       (fOffsetX*1./TMath::Sqrt(fOffsetX*fOffsetX + fOffsetY*fOffsetY)));
  }
  else {
    Double_t disc = 1./(fOffsetX*fOffsetX + fOffsetY*fOffsetY) - fRadiusInv*fRadiusInv/4.;
    if (disc < 0) {
      AliError("Discriminant < 0");
      return 1000.;
    }
    yext = TMath::Sqrt(disc) -
      TMath::Sqrt((fRadiusInv*fOffsetY/2. + fOffsetX * TMath::Sqrt(disc)) *
		  (fRadiusInv*fOffsetY/2. + fOffsetX * TMath::Sqrt(disc)) /
		  (fOffsetX*fOffsetX) -
		  fRadiusInv*fRadiusInv/(fOffsetX*fOffsetX)* x*x +
		  fRadiusInv*fRadiusInv/fOffsetX * x +
		  2 * fRadiusInv * fOffsetY * (x - fOffsetX)/(fOffsetX*fOffsetX) * TMath::Sqrt(disc));
    yext = fOffsetY/2. - fOffsetX * yext / fRadiusInv;
  }

  return yext;
}

void AliTRDtrackParametrizationCurved::Print(Option_t * /* option */) const
{
  printf("helix curve: 1/R = %f, y = %4.1f\n", fRadiusInv, fOffsetY);
}


AliTRDtrackResiduals::AliTRDtrackResiduals(const AliTRDtrackOnline *track, AliTRDtrackParametrization *param) :
  ROOT::Math::IBaseFunctionMultiDim(),
  fTrack(track),
  fParam(param)
{

}

AliTRDtrackResiduals::AliTRDtrackResiduals(const AliTRDtrackResiduals &rhs) :
  ROOT::Math::IBaseFunctionMultiDim(rhs),
  fTrack(rhs.fTrack),
  fParam(rhs.fParam)
{

}

AliTRDtrackResiduals& AliTRDtrackResiduals::operator=(const AliTRDtrackResiduals &rhs)
{
  if (&rhs != this) {
    ROOT::Math::IBaseFunctionMultiDim::operator=(rhs);
    fTrack = rhs.fTrack;
    fParam = rhs.fParam;
  }

  return *this;
}

AliTRDtrackResiduals* AliTRDtrackResiduals::Clone() const
{
  return new AliTRDtrackResiduals(*this);
}

Double_t AliTRDtrackResiduals::DoEval(const Double_t *par) const
{
  // calculate chi2 for the given values for the parametrization

  // initialisation
  Float_t deltaY = 0.;
  Float_t deltaZ = 0.;
  Float_t chi2 = 0.;

  // actually set the values for the parametrization
  fParam->SetValues(par);

  // loop over all contributing tracklets
  for (Int_t iTracklet = 0; iTracklet < fTrack->GetNTracklets(); iTracklet++) {
    AliVTrdTracklet *trkl = fTrack->GetTracklet(iTracklet);

    // Int_t layer = trkl->GetDetector() % 6;

    AliTRDtrackPosition pos = fParam->ExtrapolateToX(AliTRDtrackOnline::GetX(trkl));
    Float_t yext = pos.GetY();
    Float_t zext = pos.GetZ();

    AliTRDpadPlane *pp = fgGeometry->GetPadPlane(trkl->GetDetector());
    Float_t zlen = 0.5 * pp->GetRowSize(trkl->GetBinZ());
    Float_t zpad = AliTRDtrackOnline::GetZ(trkl);
    Float_t zrel = zext - zpad;
    if (zrel > zlen)
      zrel = zlen;
    else if (zrel < -zlen)
      zrel = -zlen;

    Float_t ycorr = trkl->GetLocalY() + TMath::Tan(TMath::Pi()/180.*pp->GetTiltingAngle()) * zrel;

    deltaY = ycorr - yext;
    deltaZ = zpad  - zext;
    deltaY /= fTrack->GetErrorY();
    deltaZ /= pp->GetRowSize(trkl->GetBinZ()) / TMath::Sqrt(12.);
    // printf("for tracklet %i: deltaY = %f, deltaZ = %f\n", iTracklet, deltaY, deltaZ);

    chi2 += deltaY*deltaY + deltaZ*deltaZ;
  }

//   printf("chi2 = %f\n", chi2);
  return chi2;
}
 AliTRDtrackOnline.cxx:1
 AliTRDtrackOnline.cxx:2
 AliTRDtrackOnline.cxx:3
 AliTRDtrackOnline.cxx:4
 AliTRDtrackOnline.cxx:5
 AliTRDtrackOnline.cxx:6
 AliTRDtrackOnline.cxx:7
 AliTRDtrackOnline.cxx:8
 AliTRDtrackOnline.cxx:9
 AliTRDtrackOnline.cxx:10
 AliTRDtrackOnline.cxx:11
 AliTRDtrackOnline.cxx:12
 AliTRDtrackOnline.cxx:13
 AliTRDtrackOnline.cxx:14
 AliTRDtrackOnline.cxx:15
 AliTRDtrackOnline.cxx:16
 AliTRDtrackOnline.cxx:17
 AliTRDtrackOnline.cxx:18
 AliTRDtrackOnline.cxx:19
 AliTRDtrackOnline.cxx:20
 AliTRDtrackOnline.cxx:21
 AliTRDtrackOnline.cxx:22
 AliTRDtrackOnline.cxx:23
 AliTRDtrackOnline.cxx:24
 AliTRDtrackOnline.cxx:25
 AliTRDtrackOnline.cxx:26
 AliTRDtrackOnline.cxx:27
 AliTRDtrackOnline.cxx:28
 AliTRDtrackOnline.cxx:29
 AliTRDtrackOnline.cxx:30
 AliTRDtrackOnline.cxx:31
 AliTRDtrackOnline.cxx:32
 AliTRDtrackOnline.cxx:33
 AliTRDtrackOnline.cxx:34
 AliTRDtrackOnline.cxx:35
 AliTRDtrackOnline.cxx:36
 AliTRDtrackOnline.cxx:37
 AliTRDtrackOnline.cxx:38
 AliTRDtrackOnline.cxx:39
 AliTRDtrackOnline.cxx:40
 AliTRDtrackOnline.cxx:41
 AliTRDtrackOnline.cxx:42
 AliTRDtrackOnline.cxx:43
 AliTRDtrackOnline.cxx:44
 AliTRDtrackOnline.cxx:45
 AliTRDtrackOnline.cxx:46
 AliTRDtrackOnline.cxx:47
 AliTRDtrackOnline.cxx:48
 AliTRDtrackOnline.cxx:49
 AliTRDtrackOnline.cxx:50
 AliTRDtrackOnline.cxx:51
 AliTRDtrackOnline.cxx:52
 AliTRDtrackOnline.cxx:53
 AliTRDtrackOnline.cxx:54
 AliTRDtrackOnline.cxx:55
 AliTRDtrackOnline.cxx:56
 AliTRDtrackOnline.cxx:57
 AliTRDtrackOnline.cxx:58
 AliTRDtrackOnline.cxx:59
 AliTRDtrackOnline.cxx:60
 AliTRDtrackOnline.cxx:61
 AliTRDtrackOnline.cxx:62
 AliTRDtrackOnline.cxx:63
 AliTRDtrackOnline.cxx:64
 AliTRDtrackOnline.cxx:65
 AliTRDtrackOnline.cxx:66
 AliTRDtrackOnline.cxx:67
 AliTRDtrackOnline.cxx:68
 AliTRDtrackOnline.cxx:69
 AliTRDtrackOnline.cxx:70
 AliTRDtrackOnline.cxx:71
 AliTRDtrackOnline.cxx:72
 AliTRDtrackOnline.cxx:73
 AliTRDtrackOnline.cxx:74
 AliTRDtrackOnline.cxx:75
 AliTRDtrackOnline.cxx:76
 AliTRDtrackOnline.cxx:77
 AliTRDtrackOnline.cxx:78
 AliTRDtrackOnline.cxx:79
 AliTRDtrackOnline.cxx:80
 AliTRDtrackOnline.cxx:81
 AliTRDtrackOnline.cxx:82
 AliTRDtrackOnline.cxx:83
 AliTRDtrackOnline.cxx:84
 AliTRDtrackOnline.cxx:85
 AliTRDtrackOnline.cxx:86
 AliTRDtrackOnline.cxx:87
 AliTRDtrackOnline.cxx:88
 AliTRDtrackOnline.cxx:89
 AliTRDtrackOnline.cxx:90
 AliTRDtrackOnline.cxx:91
 AliTRDtrackOnline.cxx:92
 AliTRDtrackOnline.cxx:93
 AliTRDtrackOnline.cxx:94
 AliTRDtrackOnline.cxx:95
 AliTRDtrackOnline.cxx:96
 AliTRDtrackOnline.cxx:97
 AliTRDtrackOnline.cxx:98
 AliTRDtrackOnline.cxx:99
 AliTRDtrackOnline.cxx:100
 AliTRDtrackOnline.cxx:101
 AliTRDtrackOnline.cxx:102
 AliTRDtrackOnline.cxx:103
 AliTRDtrackOnline.cxx:104
 AliTRDtrackOnline.cxx:105
 AliTRDtrackOnline.cxx:106
 AliTRDtrackOnline.cxx:107
 AliTRDtrackOnline.cxx:108
 AliTRDtrackOnline.cxx:109
 AliTRDtrackOnline.cxx:110
 AliTRDtrackOnline.cxx:111
 AliTRDtrackOnline.cxx:112
 AliTRDtrackOnline.cxx:113
 AliTRDtrackOnline.cxx:114
 AliTRDtrackOnline.cxx:115
 AliTRDtrackOnline.cxx:116
 AliTRDtrackOnline.cxx:117
 AliTRDtrackOnline.cxx:118
 AliTRDtrackOnline.cxx:119
 AliTRDtrackOnline.cxx:120
 AliTRDtrackOnline.cxx:121
 AliTRDtrackOnline.cxx:122
 AliTRDtrackOnline.cxx:123
 AliTRDtrackOnline.cxx:124
 AliTRDtrackOnline.cxx:125
 AliTRDtrackOnline.cxx:126
 AliTRDtrackOnline.cxx:127
 AliTRDtrackOnline.cxx:128
 AliTRDtrackOnline.cxx:129
 AliTRDtrackOnline.cxx:130
 AliTRDtrackOnline.cxx:131
 AliTRDtrackOnline.cxx:132
 AliTRDtrackOnline.cxx:133
 AliTRDtrackOnline.cxx:134
 AliTRDtrackOnline.cxx:135
 AliTRDtrackOnline.cxx:136
 AliTRDtrackOnline.cxx:137
 AliTRDtrackOnline.cxx:138
 AliTRDtrackOnline.cxx:139
 AliTRDtrackOnline.cxx:140
 AliTRDtrackOnline.cxx:141
 AliTRDtrackOnline.cxx:142
 AliTRDtrackOnline.cxx:143
 AliTRDtrackOnline.cxx:144
 AliTRDtrackOnline.cxx:145
 AliTRDtrackOnline.cxx:146
 AliTRDtrackOnline.cxx:147
 AliTRDtrackOnline.cxx:148
 AliTRDtrackOnline.cxx:149
 AliTRDtrackOnline.cxx:150
 AliTRDtrackOnline.cxx:151
 AliTRDtrackOnline.cxx:152
 AliTRDtrackOnline.cxx:153
 AliTRDtrackOnline.cxx:154
 AliTRDtrackOnline.cxx:155
 AliTRDtrackOnline.cxx:156
 AliTRDtrackOnline.cxx:157
 AliTRDtrackOnline.cxx:158
 AliTRDtrackOnline.cxx:159
 AliTRDtrackOnline.cxx:160
 AliTRDtrackOnline.cxx:161
 AliTRDtrackOnline.cxx:162
 AliTRDtrackOnline.cxx:163
 AliTRDtrackOnline.cxx:164
 AliTRDtrackOnline.cxx:165
 AliTRDtrackOnline.cxx:166
 AliTRDtrackOnline.cxx:167
 AliTRDtrackOnline.cxx:168
 AliTRDtrackOnline.cxx:169
 AliTRDtrackOnline.cxx:170
 AliTRDtrackOnline.cxx:171
 AliTRDtrackOnline.cxx:172
 AliTRDtrackOnline.cxx:173
 AliTRDtrackOnline.cxx:174
 AliTRDtrackOnline.cxx:175
 AliTRDtrackOnline.cxx:176
 AliTRDtrackOnline.cxx:177
 AliTRDtrackOnline.cxx:178
 AliTRDtrackOnline.cxx:179
 AliTRDtrackOnline.cxx:180
 AliTRDtrackOnline.cxx:181
 AliTRDtrackOnline.cxx:182
 AliTRDtrackOnline.cxx:183
 AliTRDtrackOnline.cxx:184
 AliTRDtrackOnline.cxx:185
 AliTRDtrackOnline.cxx:186
 AliTRDtrackOnline.cxx:187
 AliTRDtrackOnline.cxx:188
 AliTRDtrackOnline.cxx:189
 AliTRDtrackOnline.cxx:190
 AliTRDtrackOnline.cxx:191
 AliTRDtrackOnline.cxx:192
 AliTRDtrackOnline.cxx:193
 AliTRDtrackOnline.cxx:194
 AliTRDtrackOnline.cxx:195
 AliTRDtrackOnline.cxx:196
 AliTRDtrackOnline.cxx:197
 AliTRDtrackOnline.cxx:198
 AliTRDtrackOnline.cxx:199
 AliTRDtrackOnline.cxx:200
 AliTRDtrackOnline.cxx:201
 AliTRDtrackOnline.cxx:202
 AliTRDtrackOnline.cxx:203
 AliTRDtrackOnline.cxx:204
 AliTRDtrackOnline.cxx:205
 AliTRDtrackOnline.cxx:206
 AliTRDtrackOnline.cxx:207
 AliTRDtrackOnline.cxx:208
 AliTRDtrackOnline.cxx:209
 AliTRDtrackOnline.cxx:210
 AliTRDtrackOnline.cxx:211
 AliTRDtrackOnline.cxx:212
 AliTRDtrackOnline.cxx:213
 AliTRDtrackOnline.cxx:214
 AliTRDtrackOnline.cxx:215
 AliTRDtrackOnline.cxx:216
 AliTRDtrackOnline.cxx:217
 AliTRDtrackOnline.cxx:218
 AliTRDtrackOnline.cxx:219
 AliTRDtrackOnline.cxx:220
 AliTRDtrackOnline.cxx:221
 AliTRDtrackOnline.cxx:222
 AliTRDtrackOnline.cxx:223
 AliTRDtrackOnline.cxx:224
 AliTRDtrackOnline.cxx:225
 AliTRDtrackOnline.cxx:226
 AliTRDtrackOnline.cxx:227
 AliTRDtrackOnline.cxx:228
 AliTRDtrackOnline.cxx:229
 AliTRDtrackOnline.cxx:230
 AliTRDtrackOnline.cxx:231
 AliTRDtrackOnline.cxx:232
 AliTRDtrackOnline.cxx:233
 AliTRDtrackOnline.cxx:234
 AliTRDtrackOnline.cxx:235
 AliTRDtrackOnline.cxx:236
 AliTRDtrackOnline.cxx:237
 AliTRDtrackOnline.cxx:238
 AliTRDtrackOnline.cxx:239
 AliTRDtrackOnline.cxx:240
 AliTRDtrackOnline.cxx:241
 AliTRDtrackOnline.cxx:242
 AliTRDtrackOnline.cxx:243
 AliTRDtrackOnline.cxx:244
 AliTRDtrackOnline.cxx:245
 AliTRDtrackOnline.cxx:246
 AliTRDtrackOnline.cxx:247
 AliTRDtrackOnline.cxx:248
 AliTRDtrackOnline.cxx:249
 AliTRDtrackOnline.cxx:250
 AliTRDtrackOnline.cxx:251
 AliTRDtrackOnline.cxx:252
 AliTRDtrackOnline.cxx:253
 AliTRDtrackOnline.cxx:254
 AliTRDtrackOnline.cxx:255
 AliTRDtrackOnline.cxx:256
 AliTRDtrackOnline.cxx:257
 AliTRDtrackOnline.cxx:258
 AliTRDtrackOnline.cxx:259
 AliTRDtrackOnline.cxx:260
 AliTRDtrackOnline.cxx:261
 AliTRDtrackOnline.cxx:262
 AliTRDtrackOnline.cxx:263
 AliTRDtrackOnline.cxx:264
 AliTRDtrackOnline.cxx:265
 AliTRDtrackOnline.cxx:266
 AliTRDtrackOnline.cxx:267
 AliTRDtrackOnline.cxx:268
 AliTRDtrackOnline.cxx:269
 AliTRDtrackOnline.cxx:270
 AliTRDtrackOnline.cxx:271
 AliTRDtrackOnline.cxx:272
 AliTRDtrackOnline.cxx:273
 AliTRDtrackOnline.cxx:274
 AliTRDtrackOnline.cxx:275
 AliTRDtrackOnline.cxx:276
 AliTRDtrackOnline.cxx:277
 AliTRDtrackOnline.cxx:278
 AliTRDtrackOnline.cxx:279
 AliTRDtrackOnline.cxx:280
 AliTRDtrackOnline.cxx:281
 AliTRDtrackOnline.cxx:282
 AliTRDtrackOnline.cxx:283
 AliTRDtrackOnline.cxx:284
 AliTRDtrackOnline.cxx:285
 AliTRDtrackOnline.cxx:286
 AliTRDtrackOnline.cxx:287
 AliTRDtrackOnline.cxx:288
 AliTRDtrackOnline.cxx:289
 AliTRDtrackOnline.cxx:290
 AliTRDtrackOnline.cxx:291
 AliTRDtrackOnline.cxx:292
 AliTRDtrackOnline.cxx:293
 AliTRDtrackOnline.cxx:294
 AliTRDtrackOnline.cxx:295
 AliTRDtrackOnline.cxx:296
 AliTRDtrackOnline.cxx:297
 AliTRDtrackOnline.cxx:298
 AliTRDtrackOnline.cxx:299
 AliTRDtrackOnline.cxx:300
 AliTRDtrackOnline.cxx:301
 AliTRDtrackOnline.cxx:302
 AliTRDtrackOnline.cxx:303
 AliTRDtrackOnline.cxx:304
 AliTRDtrackOnline.cxx:305
 AliTRDtrackOnline.cxx:306
 AliTRDtrackOnline.cxx:307
 AliTRDtrackOnline.cxx:308
 AliTRDtrackOnline.cxx:309
 AliTRDtrackOnline.cxx:310
 AliTRDtrackOnline.cxx:311
 AliTRDtrackOnline.cxx:312
 AliTRDtrackOnline.cxx:313
 AliTRDtrackOnline.cxx:314
 AliTRDtrackOnline.cxx:315
 AliTRDtrackOnline.cxx:316
 AliTRDtrackOnline.cxx:317
 AliTRDtrackOnline.cxx:318
 AliTRDtrackOnline.cxx:319
 AliTRDtrackOnline.cxx:320
 AliTRDtrackOnline.cxx:321
 AliTRDtrackOnline.cxx:322
 AliTRDtrackOnline.cxx:323
 AliTRDtrackOnline.cxx:324
 AliTRDtrackOnline.cxx:325
 AliTRDtrackOnline.cxx:326
 AliTRDtrackOnline.cxx:327
 AliTRDtrackOnline.cxx:328
 AliTRDtrackOnline.cxx:329
 AliTRDtrackOnline.cxx:330
 AliTRDtrackOnline.cxx:331
 AliTRDtrackOnline.cxx:332
 AliTRDtrackOnline.cxx:333
 AliTRDtrackOnline.cxx:334
 AliTRDtrackOnline.cxx:335
 AliTRDtrackOnline.cxx:336
 AliTRDtrackOnline.cxx:337
 AliTRDtrackOnline.cxx:338
 AliTRDtrackOnline.cxx:339
 AliTRDtrackOnline.cxx:340
 AliTRDtrackOnline.cxx:341
 AliTRDtrackOnline.cxx:342
 AliTRDtrackOnline.cxx:343
 AliTRDtrackOnline.cxx:344
 AliTRDtrackOnline.cxx:345
 AliTRDtrackOnline.cxx:346
 AliTRDtrackOnline.cxx:347
 AliTRDtrackOnline.cxx:348
 AliTRDtrackOnline.cxx:349
 AliTRDtrackOnline.cxx:350
 AliTRDtrackOnline.cxx:351
 AliTRDtrackOnline.cxx:352
 AliTRDtrackOnline.cxx:353
 AliTRDtrackOnline.cxx:354
 AliTRDtrackOnline.cxx:355
 AliTRDtrackOnline.cxx:356
 AliTRDtrackOnline.cxx:357
 AliTRDtrackOnline.cxx:358
 AliTRDtrackOnline.cxx:359
 AliTRDtrackOnline.cxx:360
 AliTRDtrackOnline.cxx:361
 AliTRDtrackOnline.cxx:362
 AliTRDtrackOnline.cxx:363
 AliTRDtrackOnline.cxx:364