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: AliTRDgtuTMU.cxx 28397 2008-09-02 09:33:00Z cblume $ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  Track Matching Unit (TMU) simulation                                  //
//                                                                        //
//  Author: J. Klein (Jochen.Klein@cern.ch)                               //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include "TTree.h"
#include "TList.h"
#include "TVectorD.h"
#include "TMath.h"

#include "AliESDEvent.h"
#include "AliESDTrdTrack.h"

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

#include "AliTRDgtuParam.h"
#include "AliTRDgtuTMU.h"
#include "AliTRDtrackGTU.h"

ClassImp(AliTRDgtuTMU)

AliTRDgtuTMU::AliTRDgtuTMU(Int_t stack, Int_t sector) :
  TObject(),
  fTracklets(0x0),
  fTrackletsPostInput(0x0),
  fZChannelTracklets(0x0),
  fTrackArray(new TClonesArray("AliTRDtrackGTU", 50)),
  fTracks(0x0),
  fGtuParam(0x0),
  fStack(-1),
  fSector(-1)
{
  // constructor which initializes the position information of the TMU

  fGtuParam = AliTRDgtuParam::Instance();

  // store tracklets per link
  fTracklets = new TObjArray*[fGtuParam->GetNLinks()];
  for (Int_t iLink = 0; iLink < fGtuParam->GetNLinks(); iLink++) {
    fTracklets[iLink] = new TObjArray();
  }

  // tracklets after input units per layer
  fTrackletsPostInput = new TObjArray*[fGtuParam->GetNLayers()];
  fZChannelTracklets = new TList*[fGtuParam->GetNLayers()];
  for (Int_t layer = 0;  layer <  fGtuParam->GetNLayers(); layer++) {
    fZChannelTracklets[layer] = new TList[fGtuParam->GetNZChannels()];
    fTrackletsPostInput[layer] = new TObjArray();
  }

  fTracks = new TList*[fGtuParam->GetNZChannels()];
  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
      fTracks[zch] = new TList[fGtuParam->GetNRefLayers()];
  }

  if (stack > -1)
      SetStack(stack);
  if (sector > -1)
      SetSector(sector);
}

AliTRDgtuTMU::~AliTRDgtuTMU()
{
  // destructor

  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
    delete [] fTracks[zch];
  }
  delete [] fTracks;
  delete fTrackArray;

  for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
    delete [] fZChannelTracklets[layer];
    delete fTrackletsPostInput[layer];
  }
  delete [] fZChannelTracklets;
  delete [] fTrackletsPostInput;

  for (Int_t iLink = 0; iLink < fGtuParam->GetNLinks(); iLink++) {
    delete fTracklets[iLink];
  }
  delete [] fTracklets;
}

Bool_t AliTRDgtuTMU::SetSector(Int_t sector)
{
  // set the sector

  if (sector > -1 && sector < fGtuParam->GetGeo()->Nsector() ) {
    fSector = sector;
    return kTRUE;
  }

  AliError(Form("Invalid sector given: %i", sector));
  return kFALSE;
}

Bool_t AliTRDgtuTMU::SetStack(Int_t stack)
{
  // Set the stack (necessary for tracking)

  if (stack > -1 && stack < fGtuParam->GetGeo()->Nstack() ) {
    fStack = stack;
    return kTRUE;
  }

  AliError(Form("Invalid stack given: %i", stack));
  return kFALSE;
}

Bool_t AliTRDgtuTMU::Reset()
{
  // delete all tracks

  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
    for (Int_t reflayeridx = 0; reflayeridx < fGtuParam->GetNRefLayers(); reflayeridx++) {
      fTracks[zch][reflayeridx].Clear();
    }
  }

  fTrackArray->Delete();

  // delete all added tracklets
  for (Int_t iLink = 0; iLink < fGtuParam->GetNLinks(); iLink++) {
    fTracklets[iLink]->Clear();
  }
  for (Int_t layer = 0; layer < fGtuParam->GetNLinks()/2; layer++) {
    fTrackletsPostInput[layer]->Clear();
    for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
      fZChannelTracklets[layer][zch].Clear();
  }

  fSector = -1;
  fStack = -1;

  return kTRUE;
}

Bool_t AliTRDgtuTMU::AddTracklet(AliTRDtrackletGTU *tracklet, Int_t link)
{
  // add a tracklet on the given link

  fTracklets[link]->Add(tracklet);
  return kTRUE;
}


Bool_t AliTRDgtuTMU::RunTMU(TList *ListOfTracks, AliESDEvent *esd, Int_t outLabel)
{
  // performs the analysis as in a TMU module of the GTU, i. e.
  // track matching
  // calculation of track parameteres (pt, deflection, ???)

  if (fStack < 0 || fSector < 0) {
    AliError("No valid stack/sector set for this TMU! No tracking!");
    return kFALSE;
  }

  // ----- Input units -----
  AliDebug(1,"--------- Running Input units ----------");
  for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
    if (!RunInputUnit(layer)) {
      AliError(Form("Input unit in layer %i failed", layer));
      return kFALSE;
    }
  }

  // ----- Z-channel units -----
  AliDebug(1,"--------- Running Z-channel units ----------");
  for (Int_t layer = 0;  layer <  fGtuParam->GetNLayers(); layer++) {
    if (!RunZChannelUnit(layer)) {
      AliError(Form("Z-Channel unit in layer %i failed", layer));
      return kFALSE;
    }
  }

  // ----- track finding -----
  AliDebug(1,"--------- Running tracking units ----------");
  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
    if (!RunTrackFinder(zch, ListOfTracks)) {
      AliError(Form("Track Finder in z-channel %i failed", zch));
      return kFALSE;
    }
  }

  // ----- Track Merging -----
  if (!RunTrackMerging(ListOfTracks)) {
    AliError("Track merging failed");
    return kFALSE;
  }

  // ----- track reconstruction -----
  if (!RunTrackReconstruction(ListOfTracks)) {
    AliError("Track reconstruction failed");
    return kFALSE;
  }

  // ----- label calculation and ESD storage -----
  TIter next(ListOfTracks);
  while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) next()) {
    if (outLabel == -1)
      trk->CookLabel();
    else
      trk->SetLabel(outLabel);
    if (esd) {
      AliESDTrdTrack *trdtrack = trk->CreateTrdTrack();
      esd->AddTrdTrack(trdtrack);
      delete trdtrack;
    }
  }

  return kTRUE;
}

Bool_t AliTRDgtuTMU::RunInputUnit(Int_t layer)
{
  // precalculations for the tracking and reconstruction

  Int_t iTrkl0 = 0; // A-side tracklet
  Int_t iTrkl1 = 0; // B-side tracklet

  Int_t nTracklets = 0;
  while ((!fGtuParam->GetLimitNoTracklets() ||
	  (nTracklets < fGtuParam->GetMaxNoTracklets())) &&
	 ((iTrkl0 < fTracklets[2*layer + 0]->GetEntriesFast()) ||
	  (iTrkl1 < fTracklets[2*layer + 1]->GetEntriesFast()))) {
    if (iTrkl1 >= fTracklets[2*layer + 1]->GetEntriesFast()) {
      fTrackletsPostInput[layer]->AddLast(fTracklets[2*layer + 0]->At(iTrkl0));
      iTrkl0++;
    }
    else {
      if (iTrkl0 >= fTracklets[2*layer + 0]->GetEntriesFast()) {
	fTrackletsPostInput[layer]->AddLast(fTracklets[2*layer + 1]->At(iTrkl1));
	iTrkl1++;
      }
      else {
	if (((AliTRDtrackletGTU*) fTracklets[2*layer + 1]->At(iTrkl1))->GetZbin() <
	    ((AliTRDtrackletGTU*) fTracklets[2*layer + 0]->At(iTrkl0))->GetZbin()) {
	  fTrackletsPostInput[layer]->AddLast(fTracklets[2*layer + 1]->At(iTrkl1));
	  iTrkl1++;

	}
	else {
	  fTrackletsPostInput[layer]->AddLast(fTracklets[2*layer + 0]->At(iTrkl0));
	  iTrkl0++;
	}
      }
    }
    ++nTracklets;
  }

  TIter next(fTrackletsPostInput[layer]);

  while ( AliTRDtrackletGTU *trk = (AliTRDtrackletGTU*) next() ) {
    trk->SetIndex(fTrackletsPostInput[layer]->IndexOf(trk));

    Int_t alpha = (trk->GetYbin() >> fGtuParam->GetBitExcessY()) * fGtuParam->GetCiAlpha(layer);
    alpha = ( 2 * trk->GetdY() - (alpha >> fGtuParam->GetBitExcessAlpha()) + 1 ) >> 1;
    // wrapping projected alpha as in hardware
    if ((alpha < -64) || (alpha > 63))
      AliDebug(1, Form("alpha out of range: %i", alpha));
    alpha = alpha & 0x7f;
    if (alpha & 0x40)
      trk->SetAlpha(0xffffffc0 | alpha);
    else
      trk->SetAlpha(alpha);

    Int_t yproj = trk->GetdY() * (fGtuParam->GetCiYProj(layer));
    yproj = ( ( ( (yproj >> fGtuParam->GetBitExcessYProj()) + trk->GetYbin() ) >> 2) + 1) >> 1;
    trk->SetYProj(yproj);

    trk->SetYPrime(trk->GetYbin() + fGtuParam->GetYt(fStack, layer, trk->GetZbin()));

    AliDebug(10, Form("0x%08x: idx: %3i, z: %2i, y: %5i, dy: %3i, y': %5i, y_proj: %5i, alpha: %3i, pid: %3i, c: %5i, yt: %5i",
		      trk->GetTrackletWord(), trk->GetIndex(), trk->GetZbin(), trk->GetYbin(), trk->GetdY(), trk->GetYPrime(),
		      trk->GetYProj(), trk->GetAlpha(), trk->GetPID(),
		      fGtuParam->GetCiYProj(layer), fGtuParam->GetYt(fStack, layer, trk->GetZbin()) ));
  }
  return kTRUE;
}

Bool_t AliTRDgtuTMU::RunZChannelUnit(Int_t layer)
{
  // run the z-channel unit

  TIter next(fTrackletsPostInput[layer]);

  while (AliTRDtrackletGTU *trk = (AliTRDtrackletGTU*) next()) {
    for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
      if (fGtuParam->IsInZChannel(fStack, layer, zch, trk->GetZbin()) ) {
	trk->SetSubChannel(zch, fGtuParam->GetZSubchannel(fStack, layer, zch, trk->GetZbin()) );

	TIter nexttrkl(&fZChannelTracklets[layer][zch], kIterBackward);
	AliTRDtrackletGTU *t = 0x0;
	while ((t = (AliTRDtrackletGTU*) nexttrkl.Next())) {
	  if (t->GetSubChannel(zch) < trk->GetSubChannel(zch) ||
	      ((t->GetSubChannel(zch) == trk->GetSubChannel(zch)) && (t->GetYProj() < trk->GetYProj())) ) {
	    break;
	  }
	}
	if (t)
	  fZChannelTracklets[layer][zch].AddAfter(t, trk);
	else
	  fZChannelTracklets[layer][zch].AddFirst(trk);
      }
    }
    AliDebug(10, Form("stack %d, layer %2d: 0x%08x Z(2..0)=%i/%i/%i",
		      fStack, layer, trk->GetTrackletWord(),
		      fGtuParam->IsInZChannel(fStack, layer, 2, trk->GetZbin()) ? trk->GetSubChannel(2) : -1,
		      fGtuParam->IsInZChannel(fStack, layer, 1, trk->GetZbin()) ? trk->GetSubChannel(1) : -1,
		      fGtuParam->IsInZChannel(fStack, layer, 0, trk->GetZbin()) ? trk->GetSubChannel(0) : -1
		      ));
  }
  return kTRUE;
}

Bool_t AliTRDgtuTMU::RunTrackFinder(Int_t zch, TList* /* ListOfTracks */)
{
  // run the track finding

   Int_t 	*notr = new Int_t[fGtuParam->GetNLayers()];
   Int_t 	*ptrA = new Int_t[fGtuParam->GetNLayers()];
   Int_t 	*ptrB = new Int_t[fGtuParam->GetNLayers()];

   Bool_t 	*bHitA 	   = new Bool_t[fGtuParam->GetNLayers()];
   Bool_t 	*bHitB 	   = new Bool_t[fGtuParam->GetNLayers()];
   Bool_t 	*bAligned  = new Bool_t[fGtuParam->GetNLayers()];
   Bool_t 	*bAlignedA = new Bool_t[fGtuParam->GetNLayers()];
   Bool_t 	*bAlignedB = new Bool_t[fGtuParam->GetNLayers()];
   Bool_t 	*bDone 	   = new Bool_t[fGtuParam->GetNLayers()];
   Bool_t 	 ready;

   Int_t 	*inc 	  = new Int_t[fGtuParam->GetNLayers()];
   Int_t 	*incprime = new Int_t[fGtuParam->GetNLayers()];

// ----- signals within current layer -----
   Int_t 	yPlus;
   Int_t 	yMinus;
   Int_t 	ybPlus;
   Int_t 	ybMinus;
   Int_t 	alphaPlus;
   Int_t 	alphaMinus;
   Int_t 	nHits;
   Int_t 	nUnc;
   Int_t 	nWayBeyond;

   AliTRDtrackletGTU 	*trkRA 	= 0x0;	// reference tracklet A
   AliTRDtrackletGTU 	*trkRB 	= 0x0;	// reference tracklet B
   AliTRDtrackletGTU 	*trkA  	= 0x0;	// tracklet A in current layer
   AliTRDtrackletGTU 	*trkB  	= 0x0;	// tracklet B in current layer
/*
   AliTRDtrackletGTU 	*trkEnd = new AliTRDtrackletGTU();
   for (Int_t i = 0; i < fGtuParam->GetNZChannels(); i++)
       trkEnd->SetSubChannel(i, 7);
   trkEnd->SetYProj(0);
   trkEnd->SetAlpha(0);
*/

   for (Int_t refLayerIdx = 0; refLayerIdx < fGtuParam->GetNRefLayers(); refLayerIdx++) {
     Int_t reflayer = fGtuParam->GetRefLayer(refLayerIdx);
     AliDebug(5,Form("Tracking for z-channel: %i, reflayer: %i", zch, reflayer));

     ready = kFALSE; // ready if all channels done

//      for (Int_t iLayer = 0; iLayer < fGtuParam->GetNLayers(); iLayer++) {
//        for (Int_t iTrkl = 0; iTrkl < fZChannelTracklets[iLayer][zch].GetEntries(); iTrkl++) {
// 	 printf("%4i/%4i(%i,%i) ",
// 		((AliTRDtrackletGTU*) fZChannelTracklets[iLayer][zch].At(iTrkl))->GetYProj(),
// 		((AliTRDtrackletGTU*) fZChannelTracklets[iLayer][zch].At(iTrkl))->GetAlpha(),
// 		((AliTRDtrackletGTU*) fZChannelTracklets[iLayer][zch].At(iTrkl))->GetIndex(),
// 		((AliTRDtrackletGTU*) fZChannelTracklets[iLayer][zch].At(iTrkl))->GetSubChannel(zch)
// 		);
//        }
//        printf("\n");
//      }

     for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
       notr[layer] = fZChannelTracklets[layer][zch].GetEntries();
       ptrA[layer] = 0; // notr[layer] > 0 ? 0 : -1;
       ptrB[layer] = 1; // notr[layer] > 1 ? 1 : -1;

// not necessary here
//       bDone[layer] = (ptrB[layer] >= notr[layer] - 1); // trkB is last one
//       bDone[layer] = (notr[layer] <= 0);
//       ready = ready && bDone[layer];

       if (reflayer == 1)
	 AliDebug(5,Form("in layer: %i (zchannel = %i) there are: %i tracklets", layer, zch, notr[layer]));
     }

     if (ptrA[reflayer] < 0 && ptrB[reflayer] < 0)
       continue;

     while (!ready) {
       // ----- reference tracklets -----
       trkRA = 0x0;
       trkRB = 0x0;
       if (0 <= ptrA[reflayer] && ptrA[reflayer] < notr[reflayer])
	 trkRA = (AliTRDtrackletGTU*) fZChannelTracklets[reflayer][zch].At(ptrA[reflayer]);
       else  {
	 AliDebug(10,Form("No valid tracklet in the reference at ptr: %i! Nothing done!", ptrA[reflayer]));
	 break;
       }

       if (0 <= ptrB[reflayer] && ptrB[reflayer] < notr[reflayer])
	 trkRB = (AliTRDtrackletGTU*) fZChannelTracklets[reflayer][zch].At(ptrB[reflayer]);

       yPlus  	  = trkRA->GetYProj() + fGtuParam->GetDeltaY();
       yMinus 	  = trkRA->GetYProj() - fGtuParam->GetDeltaY();
       alphaPlus  = trkRA->GetAlpha() + fGtuParam->GetDeltaAlpha();
       alphaMinus = trkRA->GetAlpha() - fGtuParam->GetDeltaAlpha();
       if (trkRB) {
	 ybPlus 	  = trkRB->GetYProj() + fGtuParam->GetDeltaY();
	 ybMinus 	  = trkRB->GetYProj() - fGtuParam->GetDeltaY();
       }
       else { // irrelevant (should be, is it?)
	 ybPlus 	  = trkRA->GetYProj() + fGtuParam->GetDeltaY();
	 ybMinus 	  = trkRA->GetYProj() - fGtuParam->GetDeltaY();
       }

       nHits 	  = 0;
       nUnc 	  = 0;
       nWayBeyond = 0;

       for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
	 bHitA[layer] = bHitB[layer] = bAligned[layer] = kFALSE;
	 inc[layer] = incprime[layer] = 0;

	 if (layer == reflayer) {
	   bHitA[layer] = kTRUE;
	   bAligned[layer] = kTRUE;
	   nHits++;
	   continue;
	 }

	 trkA = 0x0;
	 trkB = 0x0;
	 if (0 <= ptrA[layer] && ptrA[layer] < notr[layer])
	   trkA = (AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrA[layer]);
	 if (0 <= ptrB[layer] && ptrB[layer] < notr[layer])
	   trkB = (AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrB[layer]);

	 bAlignedA[layer] = kFALSE;
	 bAlignedB[layer] = kFALSE;

	 if (trkA) {
	   bHitA[layer] = ( !(trkA->GetSubChannel(zch) < trkRA->GetSubChannel(zch) || (trkA->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkA->GetYProj() < yMinus) ) &&
			    !(trkA->GetSubChannel(zch) > trkRA->GetSubChannel(zch) || (trkA->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkA->GetYProj() > yPlus)  ) &&
			    !(trkA->GetAlpha() < alphaMinus) &&
			    !(trkA->GetAlpha() > alphaPlus) );
	   bAlignedA[layer] = !(trkA->GetSubChannel(zch) < trkRA->GetSubChannel(zch) || (trkA->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkA->GetYProj() < yMinus) );
	 }
	 else {
	   bHitA[layer] = 0;
	   bAlignedA[layer] = kTRUE;
	 }

	 if (trkB) {
	   bHitB[layer] = ( !(trkB->GetSubChannel(zch) < trkRA->GetSubChannel(zch) || (trkB->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkB->GetYProj() < yMinus) ) &&
			    !(trkB->GetSubChannel(zch) > trkRA->GetSubChannel(zch) || (trkB->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkB->GetYProj() > yPlus) ) &&
			    !(trkB->GetAlpha() < alphaMinus) &&
			    !(trkB->GetAlpha() > alphaPlus) );
	   bAlignedB[layer] = (trkB->GetSubChannel(zch) > trkRA->GetSubChannel(zch) || (trkB->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkB->GetYProj() > yPlus) );
	 }
	 else {
	   bHitB[layer] = 0;
	   bAlignedB[layer] = kTRUE;
	 }

	 bAligned[layer] = bAlignedA[layer] || bAlignedB[layer]; //???
//	 bAligned[layer] = bAlignedA[layer]; //???

	 if (bAligned[layer] && (bHitA[layer] || bHitB[layer]) )
	   nHits++;
	 else if (!bAligned[layer] )
	   nUnc++;
	 if (trkRB) {
	   if (trkA) {
	     if ((trkA->GetSubChannel(zch) > trkRB->GetSubChannel(zch)) || (trkA->GetSubChannel(zch) == trkRB->GetSubChannel(zch) && trkA->GetYProj() > ybPlus) )
	       nWayBeyond++;
	   }
	   else
	     nWayBeyond++;
	 }

	 //  pre-calculation for the layer shifting (alignment w. r. t. trkRB)
	 if (trkA) {
	     if(trkRB) {
		 if ((trkA->GetSubChannel(zch) < trkRB->GetSubChannel(zch)) || (trkA->GetSubChannel(zch) == trkRB->GetSubChannel(zch) && trkA->GetYProj() < ybMinus )) // could trkA be aligned for trkRB
		     incprime[layer] = 1;
		 else
		     incprime[layer] = 0;
	     }
	     else
		 incprime[layer] = 1;

	     if (trkB) {
		 if (trkRB) {
		     if ((trkB->GetSubChannel(zch) < trkRB->GetSubChannel(zch)) || (trkB->GetSubChannel(zch) == trkRB->GetSubChannel(zch) && trkB->GetYProj() < ybMinus )) // could trkB be aligned for trkRB
			 incprime[layer] = 2;
		 }
		 else
		     incprime[layer] = 2;
	     }
	 }
       } // end of loop over layers

       AliDebug(5,Form("logic calculation finished, Nhits: %i %s",
		       nHits, (nHits >= 4) ? "-> track found" : ""));

       if (nHits >= 4) {
	 // ----- track registration -----
	 AliTRDtrackGTU *track = new ((*fTrackArray)[fTrackArray->GetEntriesFast()]) AliTRDtrackGTU();
	 track->SetSector(fSector);
	 track->SetStack(fStack);
	 for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++ ) {
	   if (bHitA[layer] || layer == reflayer)
	     track->AddTracklet((AliTRDtrackletGTU* ) fZChannelTracklets[layer][zch].At(ptrA[layer]), layer );
	   else if (bHitB[layer])
	     track->AddTracklet((AliTRDtrackletGTU* ) fZChannelTracklets[layer][zch].At(ptrB[layer]), layer );
	 }

	 Bool_t registerTrack = kTRUE;
	 for (Int_t layerIdx = refLayerIdx-1; layerIdx >= 0; layerIdx--) {
           if (track->IsTrackletInLayer(fGtuParam->GetRefLayer(layerIdx))) {
             if ((track->GetTracklet(fGtuParam->GetRefLayer(layerIdx)))->GetSubChannel(zch) > 0) {
               AliDebug(1,"Not registered");
		 registerTrack = kFALSE;
             }
           }
	 }
	 if (registerTrack) {
	     track->SetZChannel(zch);
	     track->SetRefLayerIdx(refLayerIdx);
	     fTracks[zch][refLayerIdx].Add(track);
	 }
       }

       if ( (nUnc != 0) && (nUnc + nHits >= 4) ) // could this position of the reference layer give some track //??? special check in case of hit?
	  inc[reflayer] = 0;
       else if (nWayBeyond > 2) // no track possible for both reference tracklets
	 inc[reflayer] = 2;
       else
	 inc[reflayer] = 1;

       if (inc[reflayer] != 0) // reflayer is shifted
	 for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
	   if (layer == reflayer)
	     continue;
	   inc[layer] = incprime[layer];
	 }
       else { // reflayer is not shifted
	 for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
	   if (layer == reflayer || notr[layer] == 0)
	     continue;
	   inc[layer] = 0;
	   trkA = 0x0;
	   trkB = 0x0;
	   if (0 <= ptrA[layer] && ptrA[layer] < notr[layer])
	     trkA = (AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrA[layer]);

	   if (0 <= ptrB[layer] && ptrB[layer] < notr[layer])
	     trkB = (AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrB[layer]);

	   if (trkA) {
	     if ( !(trkA->GetSubChannel(zch) < trkRA->GetSubChannel(zch) || (trkA->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkA->GetYProj() < yMinus) ) &&
		  !(trkA->GetSubChannel(zch) > trkRA->GetSubChannel(zch) || (trkA->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkA->GetYProj() > yPlus ) ) )  // trkA could hit trkRA
	     // if ( !(trkA->GetSubChannel(zch) < trkRA->GetSubChannel(zch) || (trkA->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkA->GetYProj() < yMinus) ) )
		   inc[layer] = 0;
	       else if (trkB) {
		   if ( trkB->GetSubChannel(zch) < trkRA->GetSubChannel(zch) || (trkB->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkB->GetYProj() < yMinus) )
		       inc[layer] = 2;
		   else if ( !(trkB->GetSubChannel(zch) > trkRA->GetSubChannel(zch) || (trkB->GetSubChannel(zch) == trkRA->GetSubChannel(zch) && trkB->GetYProj() > yPlus) ) )
		       inc[layer] = 1;
		   else
		       inc[layer] = incprime[layer];
	       }
	       else
		   inc[layer] = incprime[layer];
	   }
	 }
       }

       ready = kTRUE;
       for (Int_t layer = fGtuParam->GetNLayers()-1; layer >= 0; layer--) {

	 bDone[layer] = ptrB[layer] < 0 || ptrB[layer] >= notr[layer];
	 ready = ready && bDone[layer];

	 if (inc[layer] != 0 && ptrA[layer] >= notr[layer])
	   AliError(Form("Invalid increment: %i at ptrA: %i, notr: %i", inc[layer], ptrA[layer], notr[layer]));

//	 AliInfo(Form("Shifting layer: %i, notr: %i, ptrA: %i, ptrB: %i, inc: %i", layer, notr[layer], ptrA[layer], ptrB[layer], inc[layer]));
	 AliDebug(10,Form("    Layer: %i   %2i(%2i, %2i, %4i, %3i)%s%s   %2i(%2i, %2i, %4i, %3i)%s%s   +%i   %s  (no: %i)",
			  layer,
			  ptrA[layer],
			  (0 <= ptrA[layer] && ptrA[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrA[layer]))->GetIndex() : -1,
			  (0 <= ptrA[layer] && ptrA[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrA[layer]))->GetSubChannel(zch) : -1,
			  (0 <= ptrA[layer] && ptrA[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrA[layer]))->GetYProj() : -1,
			  (0 <= ptrA[layer] && ptrA[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrA[layer]))->GetAlpha() : -1,
			  bHitA[layer] ? "*" : " ", bAlignedA[layer] ? "+" : " ",
			  ptrB[layer],
			  (0 <= ptrB[layer] && ptrB[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrB[layer]))->GetIndex() : -1,
			  (0 <= ptrB[layer] && ptrB[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrB[layer]))->GetSubChannel(zch) : -1,
			  (0 <= ptrB[layer] && ptrB[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrB[layer]))->GetYProj() : -1,
			  (0 <= ptrB[layer] && ptrB[layer] < notr[layer]) ? ((AliTRDtrackletGTU*) fZChannelTracklets[layer][zch].At(ptrB[layer]))->GetAlpha() : -1,
			  bHitB[layer] ? "*" : " ", bAlignedB[layer] ? "+" : " ",
			  inc[layer], bDone[layer] ? "done" : "    ", notr[layer]));
 	 ptrA[layer] += inc[layer];
	 ptrB[layer] += inc[layer];
       }

     } // end of while
   } // end of loop over reflayer

   delete [] bHitA;
   delete [] bHitB;
   delete [] bAligned;
   delete [] bDone;
   delete [] inc;
   delete [] incprime;
   delete [] bAlignedA;
   delete [] bAlignedB;
   delete [] notr;
   delete [] ptrA;
   delete [] ptrB;

   return kTRUE;
}

Bool_t AliTRDgtuTMU::RunTrackMerging(TList* ListOfTracks)
{
    TList **tracksRefMerged = new TList*[fGtuParam->GetNZChannels()];
    TList **tracksRefUnique = new TList*[fGtuParam->GetNZChannels()];

    for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
	tracksRefMerged[zch] = new TList;
	tracksRefUnique[zch] = new TList;
    }

    TList *tracksZMergedStage0 = new TList;
    TList *tracksZUniqueStage0 = new TList;

    TList **tracksZSplitted = new TList*[2];
    for (Int_t i = 0; i < 2; i++)
	tracksZSplitted[i] = new TList;

    TList *tracksZMergedStage1 = new TList;

    AliTRDtrackGTU **trkInRefLayer = new AliTRDtrackGTU*[fGtuParam->GetNRefLayers()];

    // Bool_t done = kFALSE;
    Int_t minIdx = 0;
    AliTRDtrackGTU *trkStage0 = 0x0;

    for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
        // ----- Merging and Unification in Reflayers (seed_merger) -----
	do {
	  // done = kTRUE;
	    trkStage0 = 0x0;
	    for (Int_t refLayerIdx = 0; refLayerIdx < fGtuParam->GetNRefLayers(); refLayerIdx++) {
		trkInRefLayer[refLayerIdx] = (AliTRDtrackGTU*) fTracks[zch][refLayerIdx].First();
		if (trkInRefLayer[refLayerIdx] == 0) {
		    continue;
		}
		else if (trkStage0 == 0x0 ) {
		    trkStage0 = trkInRefLayer[refLayerIdx];
		    minIdx = refLayerIdx;
		    // done = kFALSE;
		}
		else if ( (trkInRefLayer[refLayerIdx]->GetZSubChannel() < trkStage0->GetZSubChannel()) ||
			  ((trkInRefLayer[refLayerIdx]->GetZSubChannel() == trkStage0->GetZSubChannel()) &&
			   ((trkInRefLayer[refLayerIdx]->GetYapprox() >> 3) < (trkStage0->GetYapprox() >> 3)) ) ) {
		    minIdx = refLayerIdx;
		    trkStage0 = trkInRefLayer[refLayerIdx];
		    // done = kFALSE;
		}
	    }
            if (!trkStage0)
              break;
	    tracksRefMerged[zch]->Add(trkStage0);
	    fTracks[zch][minIdx].RemoveFirst();
	} while (trkStage0 != 0);

	Uniquifier(tracksRefMerged[zch], tracksRefUnique[zch]);

	AliDebug(2, Form("zchannel %i", zch));
	TIter trackRefMerged(tracksRefMerged[zch]);
	while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) trackRefMerged())
	  AliDebug(2, Form("track ref layer %i : %i %i %i %i %i %i, y=%i, z_idx=%i",
			   AliTRDgtuParam::GetRefLayer(trk->GetRefLayerIdx()),
			   trk->GetTrackletIndex(5),
			   trk->GetTrackletIndex(4),
			   trk->GetTrackletIndex(3),
			   trk->GetTrackletIndex(2),
			   trk->GetTrackletIndex(1),
			   trk->GetTrackletIndex(0),
			   trk->GetYapprox() >> 3,
			   trk->GetZSubChannel()));
	AliDebug(2, "uniquified:");
	TIter trackRefUnique(tracksRefUnique[zch]);
	while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) trackRefUnique())
	  AliDebug(2, Form("track ref layer %i : %i %i %i %i %i %i, y=%i, z_idx=%i",
			   AliTRDgtuParam::GetRefLayer(trk->GetRefLayerIdx()),
			   trk->GetTrackletIndex(5),
			   trk->GetTrackletIndex(4),
			   trk->GetTrackletIndex(3),
			   trk->GetTrackletIndex(2),
			   trk->GetTrackletIndex(1),
			   trk->GetTrackletIndex(0),
			   trk->GetYapprox() >> 3,
			   trk->GetZSubChannel()));
    }

// ----- Merging in zchannels - 1st stage -----

    if (AliTRDgtuParam::GetUseGTUmerge()) {
      Int_t notEmpty;
      do {
	Bool_t lowerThan[3] = { kFALSE, kFALSE, kFALSE };
	AliTRDtrackGTU *trk[3] = { 0x0, 0x0, 0x0 };
	for (Int_t iChannel = 0; iChannel < fGtuParam->GetNZChannels(); ++iChannel)
	  trk[iChannel] = (AliTRDtrackGTU*) tracksRefUnique[iChannel]->First();

	for (Int_t iChannel = 0; iChannel < fGtuParam->GetNZChannels(); ++iChannel) {
	  AliTRDtrackGTU *trk1 = trk[iChannel];
	  AliTRDtrackGTU *trk2 = trk[(iChannel + 1) % 3];
	  if (trk1 && trk2) {
	    Int_t sortnum1 = (trk1->GetZChannel() + 3 * trk1->GetZSubChannel()) / 2 - 1;
	    Int_t sortnum2 = (trk2->GetZChannel() + 3 * trk2->GetZSubChannel()) / 2 - 1;
	    AliDebug(5, Form("comparing tracks %i - %i: %i - %i",
			     trk1->GetZChannel(), trk2->GetZChannel(),
			     sortnum1, sortnum2));
	    if ( (sortnum1 < sortnum2) ||
		 ((sortnum1 == sortnum2) &&
		  ((trk1->GetYapprox() >> 3) < (trk2->GetYapprox() >> 3)) ) ) {
	      lowerThan[iChannel] = kTRUE;
	    }
	  }
	}

	notEmpty = (trk[2] ? (1 << 2) : 0) |
	  (trk[1] ? (1 << 1) : 0) |
	  (trk[0] ? (1 << 0) : 0);
	Int_t pop = -1;

	switch (notEmpty) {
	  // one track only
	case 0x1:
	  pop = 0;
	  break;
	case 0x2:
	  pop = 1;
	  break;
	case 0x4:
	  pop = 2;
	  break;

	  // two tracks
	case 0x3:
	  if (lowerThan[0])
	    pop = 0;
	  else
	    pop = 1;
	  break;
	case 0x5:
	  if (lowerThan[2])
	    pop = 2;
	  else
	    pop = 0;
	  break;
	case 0x6:
	  if (lowerThan[1])
	    pop = 1;
	  else
	    pop = 2;
	  break;

	  // three tracks
	case 0x7:
	  if (lowerThan[0]) {
	    if (lowerThan[2])
	      pop = 2;
	    else
	      pop = 0;
	  } else {
	    if (lowerThan[1])
	      pop = 1;
	    else
	      pop = 2;
	  }
	  break;

	  // no tracks
	default:
	  // nop
	  ;
	}

	if (pop > -1) {
	  tracksZMergedStage0->Add(trk[pop]);
	  tracksRefUnique[pop]->RemoveFirst();
	}
      } while (notEmpty);
    }
    else {
      // there is still a difference between this implementation and
      // the hardware algorithm, only for expert use

      do {
	// done = kTRUE;
	trkStage0 = 0x0;
	// compare tracks from all adjacent zchannels
	// (including comparison of channels 2 and 0)
        for (Int_t i = fGtuParam->GetNZChannels() - 1; i > -1; i--) {
	  Int_t zch = i % 3;
	  AliTRDtrackGTU *trk = (AliTRDtrackGTU*) tracksRefUnique[zch]->First();
	  if (trk == 0) {
	    continue;
	  }
	  else if (trkStage0 == 0x0 ) {
	    trkStage0 = trk;
	    minIdx = zch;
	    // done = kFALSE;
	  }
	  else {
	    Int_t sortnum1 = (trk->GetZChannel() + 3 * trk->GetZSubChannel()) / 2 - 1;
	    Int_t sortnum2 = (trkStage0->GetZChannel() + 3 * trkStage0->GetZSubChannel()) / 2 - 1;
	    AliDebug(5, Form("comparing tracks %i - %i: %i - %i",
			     trk->GetZChannel(), trkStage0->GetZChannel(),
			     sortnum1, sortnum2));
	    if ( (sortnum1 < sortnum2) ||
		 ((sortnum1 == sortnum2) &&
		  ((trk->GetYapprox() >> 3) < (trkStage0->GetYapprox() >> 3)) ) ) {
	      minIdx = zch;
	      trkStage0 = trk;
	      // done = kFALSE;
	    }
	  }
	}

	if (!trkStage0)
          break;
	tracksZMergedStage0->Add(trkStage0);
	tracksRefUnique[minIdx]->RemoveFirst();
      } while (trkStage0 != 0);
    }

    Uniquifier(tracksZMergedStage0, tracksZUniqueStage0);

    AliDebug(2, "stage 0:");
    TIter trackZMergedStage0(tracksZMergedStage0);
    while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) trackZMergedStage0())
      AliDebug(2, Form("track ref layer %i : %i %i %i %i %i %i, y=%i, zch=%i idx=%i",
		       AliTRDgtuParam::GetRefLayer(trk->GetRefLayerIdx()),
		       trk->GetTrackletIndex(5),
		       trk->GetTrackletIndex(4),
		       trk->GetTrackletIndex(3),
		       trk->GetTrackletIndex(2),
		       trk->GetTrackletIndex(1),
		       trk->GetTrackletIndex(0),
		       trk->GetYapprox() >> 3,
		       trk->GetZChannel(),
		       trk->GetZSubChannel()));

    AliDebug(2, "uniquified:");
    TIter trackZUniqueStage0(tracksZUniqueStage0);
    while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) trackZUniqueStage0())
      AliDebug(2, Form("track ref layer %i : %i %i %i %i %i %i, y=%i, zch=%i idx=%i",
		       AliTRDgtuParam::GetRefLayer(trk->GetRefLayerIdx()),
		       trk->GetTrackletIndex(5),
		       trk->GetTrackletIndex(4),
		       trk->GetTrackletIndex(3),
		       trk->GetTrackletIndex(2),
		       trk->GetTrackletIndex(1),
		       trk->GetTrackletIndex(0),
		       trk->GetYapprox() >> 3,
		       trk->GetZChannel(),
		       trk->GetZSubChannel()));

// ----- Splitting in z -----

    TIter next(tracksZUniqueStage0);
    while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) next()) {
      if ((trk->GetZChannel() < 0) ||
	  (trk->GetZChannel() > 2) ||
	  (trk->GetZSubChannel() < 0) ||
	  (trk->GetZSubChannel() > 6)) {
	AliError(Form("track with invalid z-channel information at %p: zch = %i, subchannel = %i",
		      trk, trk->GetZChannel(), trk->GetZSubChannel()));
	trk->Dump();
      }
      Int_t idx = (trk->GetZChannel() + 3 * (trk->GetZSubChannel() - 1)) % 2;
      if ((idx < 0) || (idx > 1)) {
	AliError(Form("invalid index %i null", idx));
	trk->Dump();
	continue;
      }
      if (!tracksZSplitted[idx]) {
	AliError(Form("array pointer %i null", idx));
	continue;
      }
      tracksZSplitted[idx]->Add(trk);
    }

    for (Int_t i = 0; i < 2; i++) {
      AliDebug(2, Form("split %i:", i));
      TIter trackZSplit(tracksZSplitted[i]);
      while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) trackZSplit())
	AliDebug(2, Form("track ref layer %i : %i %i %i %i %i %i, y=%i, zch=%i idx=%i",
			 AliTRDgtuParam::GetRefLayer(trk->GetRefLayerIdx()),
			 trk->GetTrackletIndex(5),
			 trk->GetTrackletIndex(4),
			 trk->GetTrackletIndex(3),
			 trk->GetTrackletIndex(2),
			 trk->GetTrackletIndex(1),
			 trk->GetTrackletIndex(0),
			 trk->GetYapprox() >> 3,
			 trk->GetZChannel(),
			 trk->GetZSubChannel()));
    }

// ----- Merging in zchanels - 2nd stage -----

    do {
      // done = kTRUE;
	trkStage0 = 0x0;
	for (Int_t i = 1; i >= 0; i--) {
	    AliTRDtrackGTU *trk = (AliTRDtrackGTU*) tracksZSplitted[i]->First();
	    if (trk == 0) {
		continue;
	    }
	    else if (trkStage0 == 0x0 ) {
		trkStage0 = trk;
		minIdx = i;
		// done = kFALSE;
	    }
	    else if (  (((trk->GetZChannel() + 3 * (trk->GetZSubChannel() - 1)) / 2) <  ((trkStage0->GetZChannel() + 3 * (trkStage0->GetZSubChannel() - 1)) / 2)) ||
		      ((((trk->GetZChannel() + 3 * (trk->GetZSubChannel() - 1)) / 2) == ((trkStage0->GetZChannel() + 3 * (trkStage0->GetZSubChannel() - 1)) / 2)) &&
		       ((trk->GetYapprox() >> 3) < (trkStage0->GetYapprox() >> 3)) ) ) {
		minIdx = i;
		trkStage0 = trk;
		// done = kFALSE;
	    }
	}

        if (!trkStage0)
          break;
	tracksZMergedStage1->Add(trkStage0);
	tracksZSplitted[minIdx]->RemoveFirst();
    } while (trkStage0 != 0);

    Uniquifier(tracksZMergedStage1, ListOfTracks);

    AliDebug(2, "merged:");
    TIter trackZMergedStage1(tracksZMergedStage1);
    while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) trackZMergedStage1())
      AliDebug(2, Form("track ref layer %i : %i %i %i %i %i %i, y=%i, zch=%i idx=%i",
		       AliTRDgtuParam::GetRefLayer(trk->GetRefLayerIdx()),
		       trk->GetTrackletIndex(5),
		       trk->GetTrackletIndex(4),
		       trk->GetTrackletIndex(3),
		       trk->GetTrackletIndex(2),
		       trk->GetTrackletIndex(1),
		       trk->GetTrackletIndex(0),
		       trk->GetYapprox() >> 3,
		       trk->GetZChannel(),
		       trk->GetZSubChannel()));

    AliDebug(2, "uniquified:");
    TIter track(ListOfTracks);
    while (AliTRDtrackGTU *trk = (AliTRDtrackGTU*) track())
      AliDebug(2, Form("track ref layer %i : %i %i %i %i %i %i, y=%i, zch=%i idx=%i",
		       AliTRDgtuParam::GetRefLayer(trk->GetRefLayerIdx()),
		       trk->GetTrackletIndex(5),
		       trk->GetTrackletIndex(4),
		       trk->GetTrackletIndex(3),
		       trk->GetTrackletIndex(2),
		       trk->GetTrackletIndex(1),
		       trk->GetTrackletIndex(0),
		       trk->GetYapprox() >> 3,
		       trk->GetZChannel(),
		       trk->GetZSubChannel()));

    // cleaning up
    for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++) {
      delete tracksRefMerged[zch];
      delete tracksRefUnique[zch];
    }
    delete [] tracksRefMerged;
    delete [] tracksRefUnique;


    delete tracksZMergedStage0;
    delete tracksZUniqueStage0;

    for (Int_t i = 0; i < 2; i++)
      delete tracksZSplitted[i];
    delete [] tracksZSplitted;

    delete tracksZMergedStage1;

    delete [] trkInRefLayer;

    return kTRUE;
}

Bool_t AliTRDgtuTMU::RunTrackReconstruction(TList* ListOfTracks)
{
  // run the track reconstruction for all tracks in the list

  TIter next(ListOfTracks);
  while (AliTRDtrackGTU *track = (AliTRDtrackGTU*) next()) {
    CalculateTrackParams(track);
    CalculatePID(track);
    AliDebug(1, Form("track with pid = %i", track->GetPID()));
  }
  return kTRUE;
}

Bool_t AliTRDgtuTMU::CalculatePID(AliTRDtrackGTU *track)
{
  // calculate PID for the given track
  if (!track) {
    AliError("No track to calculate!");
    return kFALSE;
  }

  if (AliTRDgtuParam::GetUseGTUconst()) {
    // averaging as in GTU
    AliDebug(1, "using GTU constants for PID calculation");
    ULong64_t coeff;

    // selection of coefficient for averaging
    switch(track->GetTrackletMask()){
    case 0x3f:
      // 6 tracklets
      coeff=0x5558; // approx. 1/6
      break;

    case 0x3e:
    case 0x3d:
    case 0x3b:
    case 0x37:
    case 0x2f:
    case 0x1f:
      // 5 tracklets
      coeff=0x6666; // approx. 1/5
      break;

    default:
      // 4 tracklets
      coeff=0x8000; // = 0.25
    }
    coeff &= 0x1ffff; // 17-bit constant

    ULong64_t sum = 0;
    Int_t i = 0;
    for (Int_t iLayer = 0; iLayer < fGtuParam->GetNLayers(); iLayer++) {
      if ((track->GetTrackletMask() >> iLayer) & 1) {
	sum += track->GetTracklet(iLayer)->GetPID();
	++i;
      }
    }

    Float_t av = 1./i * sum;
    sum = sum & 0x7ff;
    ULong64_t prod   = (sum * coeff) & 0xfffffffffull;
    ULong64_t prodFinal = ((prod >> 17) + ((prod >> 16) & 1)) & 0xff;

    if (TMath::Abs((prodFinal & 0xff) - av) > 0.5)
      AliError(Form("problem with PID averaging (hw <-> ar): %3lli <-> %4.1f", prodFinal & 0xff, av));
    track->SetPID(prodFinal & 0xff);

    return kTRUE;
  }
  else {

    // simple averaging
    Int_t nTracklets = 0;
    Int_t pidSum = 0;
    for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
      if (!track->IsTrackletInLayer(layer)) {
	continue;
      }
      AliTRDtrackletGTU *trk = track->GetTracklet(layer);
      pidSum += trk->GetPID();
      nTracklets++;
    }

    if (nTracklets>0)
      track->SetPID(pidSum/nTracklets);
    else
      AliError("Track without contributing tracklets, no PID assigned");

    return kTRUE;
  }
}

Bool_t AliTRDgtuTMU::CalculateTrackParams(AliTRDtrackGTU *track)
{
  // calculate the track parameters

  if (!track) {
    AliError("No track to calculate!");
    return kFALSE;
  }

  Int_t a = 0;
  Float_t b = 0;
  Float_t c = 0;
  Float_t x1;
  Float_t x2;

  AliDebug(5,Form("There are %i tracklets in this track.", track->GetNTracklets()));

  for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
    if (!track->IsTrackletInLayer(layer)) {
      continue;
    }
    AliTRDtrackletGTU *trk = track->GetTracklet(layer);
    if (!trk) {
      AliError(Form("Could not get tracklet in layer %i\n", layer));
      continue;
    }
    AliDebug(10,Form("  layer %i trk yprime: %6i, aki: %6i", layer, trk->GetYPrime(),
		     fGtuParam->GetAki(track->GetTrackletMask(), layer)));
    a += (((fGtuParam->GetAki(track->GetTrackletMask(), layer) * trk->GetYPrime()) >> 7) + 1) >> 1;
    b += fGtuParam->GetBki(track->GetTrackletMask(), layer) * trk->GetYPrime() * fGtuParam->GetBinWidthY();
    c += fGtuParam->GetCki(track->GetTrackletMask(), layer) * trk->GetYPrime() * fGtuParam->GetBinWidthY();
  }
  if (a < 0)
      a += 3;
  a = a >> 2;

  track->SetFitParams(a << 2, b, c);

  fGtuParam->GetIntersectionPoints(track->GetTrackletMask(), x1, x2);

  AliDebug(5,Form("  Track parameters: a16 = %i, a18 = %i, b = %f, c = %f, x1 = %f, x2 = %f, pt = %f (trkl mask: %i)",
		  a, a << 2, b, c, x1, x2, track->GetPt(), track->GetTrackletMask()));

  return kTRUE;
}


Bool_t AliTRDgtuTMU::Uniquifier(const TList *inlist, TList *outlist)
{
  // remove multiple occurences of the same track

    TIter next(inlist);
    AliTRDtrackGTU *trkStage0 = 0x0;
    AliTRDtrackGTU *trkStage1 = 0x0;

    do {
        trkStage0 = (AliTRDtrackGTU*) next();

	Bool_t tracksEqual = kFALSE;
	if (trkStage0 != 0 && trkStage1 != 0) {
	    for (Int_t layer = 0; layer < fGtuParam->GetNLayers(); layer++) {
		if (trkStage0->GetTrackletIndex(layer) != -1 && trkStage0->GetTrackletIndex(layer) == trkStage1->GetTrackletIndex(layer)) {
		    tracksEqual = kTRUE;
		    break;
		}
	    }
	}

	if (tracksEqual) {
	  if (trkStage0->GetNTracklets() >= trkStage1->GetNTracklets())
	    trkStage1 = trkStage0;
	}
	else {
	    if (trkStage1 != 0x0)
		outlist->Add(trkStage1);
	    trkStage1 = trkStage0;
	}

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