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

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  Decoding data from the TRD raw stream                                 //
//  and translation into ADC values, on-line tracklets and tracks         //
//                                                                        //
//  CRC checks rely on boost, and are enabled only when TRD_RAW_CRC       //
//  is defined                                                            //
//                                                                        //
//  Additional debug features can be enabled by defining TRD_RAW_DEBUG    //
//                                                                        //
//  Author: J. Klein (jochen.klein@cern.ch)                               //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include <cstdio>
#include <cstdarg>

#if defined(TRD_RAW_CRC)
#include <boost/crc.hpp>
#endif

#include "TClonesArray.h"
#include "TTree.h"

#include "AliLog.h"
#include "AliRawReader.h"
#include "AliTRDcalibDB.h"
#include "AliTRDdigitsManager.h"
#include "AliTRDdigitsParam.h"
#include "AliTRDcalibDB.h"
#include "AliTRDmcmSim.h"
#include "AliTRDtrapConfig.h"
#include "AliTRDarrayADC.h"
#include "AliTRDarrayDictionary.h"
#include "AliTRDSignalIndex.h"
#include "AliTRDtrackletWord.h"
#include "AliTRDtrackletMCM.h"
#include "AliESDTrdTrack.h"

#include "AliTRDrawStream.h"

ClassImp(AliTRDrawStream)

// some static information
Int_t AliTRDrawStream::fgMcmOrder[] = {12, 13, 14, 15,
				       8, 9, 10, 11,
				       4, 5, 6, 7,
				       0, 1, 2, 3};
Int_t  AliTRDrawStream::fgRobOrder [] = {0, 1, 2, 3};
const Int_t  AliTRDrawStream::fgkNlinks = 12;
const Int_t  AliTRDrawStream::fgkNstacks = 5;
const Int_t  AliTRDrawStream::fgkNsectors = 18;
const Int_t  AliTRDrawStream::fgkNtriggers = 12;
const UInt_t AliTRDrawStream::fgkDataEndmarker     = 0x00000000;
const UInt_t AliTRDrawStream::fgkTrackletEndmarker = 0x10001000;
const UInt_t AliTRDrawStream::fgkStackEndmarker[] = { 0xe0d01000, 0xe0d10000 };

const char* AliTRDrawStream::fgkErrorMessages[] = {
  "Unknown error",
  "Link monitor active",
  "Event counter mismatch",
  "not a TRD equipment (1024-1041)",
  "Invalid Stack header",
  "Invalid detector number",
  "Invalid pad row",
  "No digits could be retrieved from the digitsmanager",
  "HC header mismatch",
  "HC check bits wrong",
  "Unexpected position in readout stream",
  "Invalid testpattern mode",
  "Testpattern mismatch",
  "Number of timebins changed",
  "ADC mask inconsistent",
  "ADC check bits invalid",
  "Missing ADC data",
  "Missing expected ADC channels",
  "Missing MCM headers",
  "Missing TP data",
  "CRC mismatch"
};

Int_t AliTRDrawStream::fgErrorDebugLevel[] = {
  0,
  0,
  2,
  1,
  0,
  1,
  0,
  1,
  0,
  1,
  2,
  1,
  0,
  1,
  1,
  2,
  1,
  1,
  1,
  0,
  0
};

AliTRDrawStream::ErrorBehav_t AliTRDrawStream::fgErrorBehav[] = {
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kDiscardHC,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kAbort,
  AliTRDrawStream::kAbort,
  AliTRDrawStream::kAbort,
  AliTRDrawStream::kDiscardMCM,
  AliTRDrawStream::kAbort,
  AliTRDrawStream::kDiscardHC,
  AliTRDrawStream::kDiscardHC,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate,
  AliTRDrawStream::kTolerate
};

AliTRDrawStream::AliTRDrawStream(AliRawReader *rawReader) :
  fStoreError(&AliTRDrawStream::ForgetError),
  fRawReader(rawReader),
  fDigitsManager(0x0),
  fDigitsParam(0x0),
  fErrors(0x0),
  fLastError(),
  fErrorFlags(0),
  fStats(),
  fPayloadStart(0x0),
  fPayloadCurr(0x0),
  fPayloadSize(0),
  fNtimebins(-1),
  fLastEvId(-1),
  fCurrSlot(-1),
  fCurrLink(-1),
  fCurrRobPos(-1),
  fCurrMcmPos(-1),
  fCurrEquipmentId(0),
  fCurrSmHeaderSize(0),
  fCurrSmHeaderVersion(0),
  fCurrTrailerReadout(0),
  fCurrTrgHeaderAvail(0),
  fCurrTrgHeaderReadout(0),
  fCurrTrkHeaderAvail(0),
  fCurrStackEndmarkerAvail(0),
  fCurrEvType(0),
  fCurrTriggerEnable(0),
  fCurrTriggerFired(0),
  fCurrTrackEnable(0),
  fCurrTrackletEnable(0),
  fCurrStackMask(0),
#ifdef TRD_RAW_DEBUG
  fCurrL0Count(),
  fCurrL1aCount(),
  fCurrL1rCount(),
  fCurrL2aCount(),
  fCurrL2rCount(),
  fCurrL0offset(),
#endif
  fCurrTrkHeaderIndexWord(0x0),
  fCurrTrkHeaderSize(0x0),
  fCurrTrkFlags(0x0),
  fCurrTrgHeaderIndexWord(0x0),
  fCurrTrgHeaderSize(0x0),
  fCurrTrgFlags(0x0),
  fCurrStackIndexWord(0x0),
  fCurrStackHeaderSize(0x0),
  fCurrStackHeaderVersion(0x0),
  fCurrLinkMask(0x0),
  fCurrCleanCheckout(0x0),
  fCurrBoardId(0x0),
  fCurrHwRev(-1),
  fCurrHwRevTMU(0x0),
  fCurrLinkMonitorFlags(0x0),
  fCurrLinkDataTypeFlags(0x0),
  fCurrLinkDebugFlags(0x0),
  fCurrMatchFlagsSRAM(),
  fCurrMatchFlagsPostBP(),
  fCurrChecksumStack(),
  fCurrChecksumSIU(0),
  fCurrSpecial(-1),
  fCurrMajor(-1),
  fCurrMinor(-1),
  fCurrAddHcWords(-1),
  fCurrSm(-1),
  fCurrStack(-1),
  fCurrLayer(-1),
  fCurrSide(-1),
  fCurrHC(-1),
  fCurrCheck(-1),
  fCurrNtimebins(-1),
  fCurrPtrgCnt(-1),
  fCurrPtrgPhase(-1),
#ifdef TRD_RAW_DEBUG
  fCurrBC(),
#endif
  fNDumpMCMs(0),
  fAdcArray(0x0),
  fSignalIndex(0x0),
  fTracklets(0x0),
  fTracks(0x0),
  fMarkers(0x0)
{
  // default constructor

  fCurrTrkHeaderIndexWord = new UInt_t[fgkNstacks];
  fCurrTrkHeaderSize      = new UInt_t[fgkNstacks];
  fCurrTrkFlags           = new ULong64_t[fgkNsectors*fgkNstacks];
  fCurrTrgHeaderIndexWord = new UInt_t[fgkNtriggers];
  fCurrTrgHeaderSize      = new UInt_t[fgkNtriggers];
  fCurrTrgFlags           = new UInt_t[fgkNsectors];
#ifdef TRD_RAW_DEBUG
  fCurrL0Count            = new UInt_t[fgkNsectors];
  fCurrL1aCount           = new UInt_t[fgkNsectors];
  fCurrL1rCount           = new UInt_t[fgkNsectors];
  fCurrL2aCount           = new UInt_t[fgkNsectors];
  fCurrL2rCount           = new UInt_t[fgkNsectors];
#endif
  fCurrStackIndexWord     = new UInt_t[fgkNstacks];
  fCurrStackHeaderSize    = new UInt_t[fgkNstacks];
  fCurrStackHeaderVersion = new UInt_t[fgkNstacks];
  fCurrLinkMask           = new UInt_t[fgkNstacks];
  fCurrCleanCheckout      = new UInt_t[fgkNstacks];
  fCurrBoardId            = new UInt_t[fgkNstacks];
  fCurrHwRevTMU           = new UInt_t[fgkNstacks];
  fCurrLinkMonitorFlags   = new UInt_t[fgkNsectors * fgkNstacks * fgkNlinks];
  fCurrLinkDataTypeFlags  = new UInt_t[fgkNstacks * fgkNlinks];
  fCurrLinkDebugFlags     = new UInt_t[fgkNstacks * fgkNlinks];
  for (Int_t iSector = 0; iSector < fgkNsectors; iSector++)
    fCurrTrgFlags[iSector] = 0;
  for (Int_t i = 0; i < 100; i++)
    fDumpMCM[i] = 0;

  // setting up the error tree
  fErrors = new TTree("errorStats", "Error statistics");
  fErrors->SetDirectory(0x0);
  fErrors->Branch("error", &fLastError);
  fErrors->SetCircular(1000);
  for (Int_t i = 0; i < 100; i++) {
    fErrorBuffer[i] = 0;
  }

}

AliTRDrawStream::~AliTRDrawStream()
{
  // destructor

  delete fErrors;

  delete [] fCurrTrkHeaderIndexWord;
  delete [] fCurrTrkHeaderSize;
  delete [] fCurrTrkFlags;
  delete [] fCurrTrgHeaderIndexWord;
  delete [] fCurrTrgHeaderSize;
  delete [] fCurrTrgFlags;
  delete [] fCurrStackIndexWord;
  delete [] fCurrStackHeaderSize;
  delete [] fCurrStackHeaderVersion;
  delete [] fCurrLinkMask;
  delete [] fCurrCleanCheckout;
  delete [] fCurrBoardId;
  delete [] fCurrHwRevTMU;
  delete [] fCurrLinkMonitorFlags;
  delete [] fCurrLinkDataTypeFlags;
  delete [] fCurrLinkDebugFlags;
}

Bool_t AliTRDrawStream::ReadEvent()
{
  // read the current event from the raw reader and fill it to the digits manager

  if (!fRawReader) {
    AliError("No raw reader available");
    return kFALSE;
  }

  // some preparations
  fDigitsParam = 0x0;

  // loop over all DDLs
  // data starts with GTU payload, i.e. SM index word
  UChar_t *buffer = 0x0;

  while (fRawReader->ReadNextData(buffer)) {

    fCurrEquipmentId = fRawReader->GetEquipmentId();
    AliDebug(2, Form("equipment: %i", fCurrEquipmentId));

    if (fCurrEquipmentId < kDDLOffset || fCurrEquipmentId > kDDLMax) {
      EquipmentError(kNonTrdEq, "Skipping");
      continue;
    }

    if (fMarkers)
      new ((*fMarkers)[fMarkers->GetEntriesFast()])
	AliTRDrawStreamError(-kSecactive, fCurrEquipmentId - kDDLOffset);

    ReadGTUHeaders((UInt_t*) buffer);

    if (fCurrTrailerReadout)
      ReadGTUTrailer();

#ifdef TRD_RAW_CRC
    boost::crc_optimal<16, 0x8005, 0, 0, false, false>      checksumStack[5];
    boost::crc_optimal<32, 0x04C11DB7, 0, 0, false, false>  checksumSIU;
    checksumSIU.reset();

    // process CDH, replace size with 0xffffffff
    UInt_t temp = 0xffffffff;
    checksumSIU.process_bytes(&temp, sizeof(UInt_t));
    UInt_t *data = (UInt_t*) fRawReader->GetDataHeader();
    checksumSIU.process_bytes(&data[1], 7*sizeof(UInt_t));
    // process payload including everything but the SIU checksum
    checksumSIU.process_bytes(buffer, fRawReader->GetDataSize()-4);

    if (checksumSIU() != fCurrChecksumSIU) {
      EquipmentError(kCRCmismatch, "SIU data - recalc: 0x%08x - 0x%08x", fCurrChecksumSIU, checksumSIU());
    }
#endif

    // loop over all active links
    AliDebug(2, Form("Stack mask 0x%02x", fCurrStackMask));
    for (Int_t iStack = 0; iStack < fgkNstacks; iStack++) {
      fCurrSlot = iStack;
#ifdef TRD_RAW_CRC
      checksumStack[iStack].reset();
#endif

      if ((fCurrStackMask & (1 << fCurrSlot)) == 0)
	continue;

      AliDebug(2, Form("Stack %i, Link mask: 0x%02x", fCurrSlot, fCurrLinkMask[fCurrSlot]));
      for (Int_t iLink = 0; iLink < fgkNlinks; iLink++) {
	fCurrLink = iLink;
	fCurrHC   = (fCurrEquipmentId - kDDLOffset) * fgkNstacks * fgkNlinks +
	  fCurrSlot * fgkNlinks + iLink;
	if ((fCurrLinkMask[fCurrSlot] & (1 << fCurrLink)) == 0)
	  continue;

#ifdef TRD_RAW_CRC
	UInt_t *start = fPayloadCurr;
#endif
	Int_t   size  = 0;

	fErrorFlags = 0;
	// check for link monitor error flag
	if (fCurrLinkMonitorFlags[(((fCurrEquipmentId - kDDLOffset) * fgkNstacks) + fCurrSlot) * fgkNlinks + fCurrLink] != 0) {
	  LinkError(kLinkMonitor);
	  if (fgErrorBehav[kLinkMonitor] == kTolerate)
	    size += ReadLinkData();
	}
	else
	  // read the data from one HC
	  size += ReadLinkData();

	// read all data endmarkers
	size += SeekNextLink();

#ifdef TRD_RAW_CRC
	// always use data for CRC calculation
	// (even if link monitor active)
	UShort_t crc = CalcLinkChecksum(start, size);
	checksumStack[iStack].process_bytes(&crc, sizeof(UShort_t));
#endif
      }
#ifdef TRD_RAW_CRC
      if (fDigitsManager && (checksumStack[iStack]() != fCurrChecksumStack[fCurrEquipmentId - kDDLOffset][iStack])) {
	StackError(kCRCmismatch, "data - recalc: 0x%04x - 0x%04x", fCurrChecksumStack[fCurrEquipmentId - kDDLOffset][iStack], checksumStack[iStack]());
      }
#endif

      // continue with next stack
      SeekNextStack();
    }
  }

  return kTRUE;
}


Bool_t AliTRDrawStream::NextDDL()
{
  // continue reading with the next equipment

  if (!fRawReader)
    return kFALSE;

  fCurrEquipmentId = 0;
  fCurrSlot = 0;
  fCurrLink = 0;

  UChar_t *buffer = 0x0;

  while (fRawReader->ReadNextData(buffer)) {

    fCurrEquipmentId = fRawReader->GetEquipmentId();
    AliDebug(2, Form("equipment: %i", fCurrEquipmentId));

    if (fCurrEquipmentId < kDDLOffset || fCurrEquipmentId > kDDLMax) {
      EquipmentError(kNonTrdEq, "Skipping");
      continue;
    }

    if (fMarkers)
      new ((*fMarkers)[fMarkers->GetEntriesFast()])
	AliTRDrawStreamError(-kSecactive, fCurrEquipmentId - kDDLOffset);

    ReadGTUHeaders((UInt_t*) buffer);

    if (fCurrTrailerReadout)
      ReadGTUTrailer();

    return kTRUE;
  }

  return kFALSE;
}


Int_t AliTRDrawStream::NextChamber(AliTRDdigitsManager *digMgr)
{
  // read the data for the next chamber
  // in case you only want to read the data of a single chamber
  // to read all data ReadEvent(...) is recommended

  fDigitsManager = digMgr;
  fDigitsParam   = 0x0;

  fErrorFlags = 0;

  if (!fRawReader) {
    AliError("No raw reader available");
    return -1;
  }

  while (fCurrSlot < 0 || fCurrSlot >= fgkNstacks) {
    if (!NextDDL()) {
      fCurrSlot = -1;
      return -1;
    }
    while ((fCurrSlot < fgkNstacks) &&
	   (((fCurrStackMask & (1 << fCurrSlot)) == 0) ||
	    ((fCurrLinkMask[fCurrSlot] & (1 << fCurrLink))) == 0)) {
      if ((fCurrStackMask & (1 << fCurrSlot)) == 0) {
	++fCurrSlot;
	fCurrSlot = 0;
	continue;
      }
      fCurrLink++;
      if (fCurrLink >= fgkNlinks) {
	SeekNextStack();
	fCurrLink = 0;
	fCurrSlot++;
      }
    }
  }

  AliDebug(2, Form("Stack %i, Link %i, mask: 0x%02x", fCurrSlot, fCurrLink, fCurrLinkMask[fCurrSlot]));
  fCurrHC   = (fCurrEquipmentId - kDDLOffset) * fgkNlinks * fgkNstacks +
    fCurrSlot * fgkNlinks + fCurrLink;

  if (fCurrLinkMonitorFlags[(((fCurrEquipmentId - kDDLOffset) * fgkNstacks) + fCurrSlot) * fgkNlinks + fCurrLink] != 0) {
    LinkError(kLinkMonitor);
    if (fgErrorBehav[kLinkMonitor] == kTolerate)
      ReadLinkData();
  }
  else
    // read the data from one HC
    ReadLinkData();

  // read all data endmarkers
  SeekNextLink();

  if (fCurrLink % 2 == 0) {
    // if we just read the A-side HC then also check the B-side
    fCurrLink++;
    fCurrHC++;
    if (fCurrLinkMask[fCurrSlot] & (1 << fCurrLink)) {
      if (fCurrLinkMonitorFlags[(((fCurrEquipmentId - kDDLOffset) * fgkNstacks) + fCurrSlot) * fgkNlinks + fCurrLink] != 0) {
	LinkError(kLinkMonitor);
	if (fgErrorBehav[kLinkMonitor] == kTolerate)
	  ReadLinkData();
      }
      else {
	ReadLinkData();
      }
      SeekNextLink();
    }
  }

  do {
    if ((fCurrStackMask & (1 << fCurrSlot)) == 0) {
      fCurrLink = 0;
      fCurrSlot++;
    }
    else {
      fCurrLink++;
      if (fCurrLink >= fgkNlinks) {
	SeekNextStack();
	fCurrLink = 0;
	fCurrSlot++;
      }
    }
  } while ((fCurrSlot < fgkNstacks) &&
	   (((fCurrStackMask & (1 << fCurrSlot)) == 0) ||
	    ((fCurrLinkMask[fCurrSlot] & (1 << fCurrLink))) == 0));

  // return chamber information from HC if it is valid
  // otherwise return information from link position
  if (fCurrSm < 0 || fCurrSm >= fgkNsectors || fCurrStack < 0 || fCurrStack >= fgkNstacks || fCurrLayer < 0 || fCurrLayer >= fgkNlinks/2)
    return ((fCurrEquipmentId-kDDLOffset) + fCurrSlot * fgkNlinks/2 + fCurrLink/2);
  else
    return (fCurrSm * fgkNstacks*fgkNlinks/2 + fCurrStack * fgkNlinks/2 + fCurrLayer);
}


Int_t AliTRDrawStream::ReadGTUHeaders(UInt_t *buffer)
{
  // check the data source and read the headers

  if (fCurrEquipmentId >= kDDLOffset && fCurrEquipmentId <= kDDLMax) {
    // this is ROC data

    // setting the pointer to data and current reading position
    fPayloadCurr = fPayloadStart = buffer;
    fPayloadSize = fRawReader->GetDataSize() / sizeof(UInt_t);
    fStats.fStatsSector[fCurrEquipmentId - kDDLOffset].fBytes = fRawReader->GetDataSize();
    AliDebug(2, Form("Read buffer of size: %i", fRawReader->GetDataSize()));

    AliDebug(1, DumpRaw("raw data", fPayloadCurr, TMath::Min(fPayloadSize, 1000)));

    // read SM header
    if (ReadSmHeader() < 0) {
      AliError(Form("Reading SM header failed, skipping this DDL %i", fCurrEquipmentId));
      return -1;
    }

    // read tracking headers (if available)
    if (fCurrTrkHeaderAvail) {
      for (Int_t iStack = 0; iStack < fgkNstacks; iStack++) {
	if ((fCurrStackMask & (1 << iStack)) != 0)
	  ReadTrackingHeader(iStack);
      }
    }

    // read trigger header(s) (if available)
    if (fCurrTrgHeaderAvail)
      ReadTriggerHeaders();

    // read stack header
    for (Int_t iStack = 0; iStack < fgkNstacks; iStack++) {
      if ((fCurrStackMask & (1 << iStack)) != 0)
	ReadStackHeader(iStack);
    }

    return 0;
  }
  else
    return -1;
}

Int_t AliTRDrawStream::ReadSmHeader()
{
  // read the SMU index header at the current reading position
  // and store the information in the corresponding variables

  if (fPayloadCurr - fPayloadStart >= fPayloadSize - 1) {
    EquipmentError(kUnknown, "SM Header incomplete");
    return -1;
  }

  fCurrTrgFlags[fCurrEquipmentId-kDDLOffset] = 0;

  fCurrSmHeaderSize           = ((*fPayloadCurr) >> 16) & 0xffff;
  fCurrSmHeaderVersion        = ((*fPayloadCurr) >> 12) &    0xf;
  fCurrTrackEnable            = ((*fPayloadCurr) >>  6) &    0x1;
  fCurrTrackletEnable         = ((*fPayloadCurr) >>  5) &    0x1;
  fCurrStackMask              = ((*fPayloadCurr)      ) &   0x1f;
  fCurrHwRev                  = (fPayloadCurr[1] >> 12) & 0xffff;
  fCurrStackEndmarkerAvail    = 0;

  switch (fCurrSmHeaderVersion) {
  case 0xb:
    fCurrTrailerReadout = 0;
    fCurrTrgHeaderAvail = 0;
    fCurrEvType = 0;
    fCurrTrkHeaderAvail = 0;

    DecodeGTUtracks();
    break;

  case 0xc:
    fCurrTrailerReadout = ((*fPayloadCurr) >> 10) &    0x1;
    fCurrTrgHeaderAvail = 1;
    fCurrTrgHeaderReadout = ((*fPayloadCurr) >>  9) &    0x1;
    fCurrEvType         = ((*fPayloadCurr) >>  7) &    0x3;
    fCurrTrkHeaderAvail = fCurrTrackEnable;
    fCurrTriggerEnable  = (fPayloadCurr[2] >>  8) &  0xfff;
    fCurrTriggerFired   = (fPayloadCurr[2] >>  20) &  0xfff;
    fCurrTrgFlags[fCurrEquipmentId-kDDLOffset] = fCurrTriggerFired;
    break;

  case 0xd:
    fCurrTrailerReadout = ((*fPayloadCurr) >> 10) &    0x1;
    fCurrTrgHeaderAvail = 1;
    fCurrTrgHeaderReadout = ((*fPayloadCurr) >>  9) &    0x1;
    fCurrEvType         = ((*fPayloadCurr) >>  7) &    0x3;
    fCurrTrkHeaderAvail = fCurrTrackEnable;
    fCurrTriggerEnable  = (fPayloadCurr[2] >>  8) &  0xfff;
    fCurrTriggerFired   = (fPayloadCurr[2] >>  20) &  0xfff;
    fCurrTrgFlags[fCurrEquipmentId-kDDLOffset] = fCurrTriggerFired;
    fCurrStackEndmarkerAvail    = 1;
#ifdef TRD_RAW_DEBUG
    if (fCurrSmHeaderSize > 7) {
      fCurrL0Count[fCurrEquipmentId-kDDLOffset]  = fPayloadCurr[3];
      fCurrL1aCount[fCurrEquipmentId-kDDLOffset] = fPayloadCurr[4];
      fCurrL1rCount[fCurrEquipmentId-kDDLOffset] = fPayloadCurr[5];
      fCurrL2aCount[fCurrEquipmentId-kDDLOffset] = fPayloadCurr[6];
      fCurrL2rCount[fCurrEquipmentId-kDDLOffset] = fPayloadCurr[7];
    }
#endif
    break;

  default:
    AliError(Form("unknown SM header version: 0x%x", fCurrSmHeaderVersion));
  }

  AliDebug(5, Form("SM header: size: %i, version: %i, track enable: %i, tracklet enable: %i, stack mask: %2x, trailer: %i, trgheader: %i, trkheader: %i",
		   fCurrSmHeaderSize,
		   fCurrSmHeaderVersion,
		   fCurrTrackEnable,
		   fCurrTrackletEnable,
		   fCurrStackMask,
		   fCurrTrailerReadout,
		   fCurrTrgHeaderAvail,
		   fCurrTrkHeaderAvail ));

  // jump to the first word after the SM header
  fPayloadCurr += fCurrSmHeaderSize + 1;

  return fCurrSmHeaderSize + 1;
}

Int_t AliTRDrawStream::DecodeGTUtracks()
{
  // decode GTU track words
  // this depends on the hardware revision of the SMU

  Int_t sector = fCurrEquipmentId-kDDLOffset;

  if ((sector < 0) || (sector > 17)) {
    AliError(Form("Invalid sector %i for GTU tracks", sector));
    return -1;
  }

  AliDebug(1, DumpRaw(Form("GTU tracks in sector %2i (hw rev %i)", sector, fCurrHwRev),
		      fPayloadCurr + 4, 10, 0xffe0ffff));

  fCurrTrgFlags[sector] = 0;

  if (fCurrHwRev < 1772) {
    UInt_t    fastWord;		// fast trigger word
    ULong64_t trackWord = 0;	// extended track word
    Int_t stack = 0;
    Int_t idx = 0;
    for (UInt_t iWord = 4; iWord < fCurrSmHeaderSize; iWord++) {
      if (fPayloadCurr[iWord] == 0x10000000) { // stack boundary marker
        stack++;
        idx = 0;
      }
      else {
        if ((idx == 0) &&
	    ((fPayloadCurr[iWord] & 0xfffff0f0) == 0x13370000)) {
	  fastWord = fPayloadCurr[iWord];
	  fCurrTrgFlags[sector] |= 1 << (stack+11); // assume tracking done if fast word sent
	  AliDebug(1, Form("stack %i: fast trigger word: 0x%08x", stack, fastWord));
	  continue;
        }
        else if ((idx & 0x1) == 0x1) {
	  trackWord |= ((ULong64_t) fPayloadCurr[iWord]) << 32;
	  AliDebug(1,Form("track debug word: 0x%016llx", trackWord));
	  if (fTracks) {
	    AliESDTrdTrack *trk = new ((*fTracks)[fTracks->GetEntriesFast()])
	      AliESDTrdTrack();

	    trk->SetSector(sector);
	    trk->SetStack((trackWord >> 60) & 0x7);
	    trk->SetA(0);
	    trk->SetB(0);
	    trk->SetPID(0);
	    trk->SetLayerMask((trackWord >> 16) & 0x3f);
	    trk->SetTrackletIndex((trackWord >> 22) & 0x3f, 0);
	    trk->SetTrackletIndex((trackWord >> 28) & 0x3f, 1);
	    trk->SetTrackletIndex((trackWord >> 34) & 0x3f, 2);
	    trk->SetTrackletIndex((trackWord >> 40) & 0x3f, 3);
	    trk->SetTrackletIndex((trackWord >> 46) & 0x3f, 4);
	    trk->SetTrackletIndex((trackWord >> 52) & 0x3f, 5);

	    trk->SetFlags(0);
	    trk->SetReserved(0);
	    trk->SetLabel(-3);

	    Float_t pt = (((Int_t) (trackWord & 0xffff) ^ 0x8000) - 0x8000)/128.;
	    if (TMath::Abs(pt) > 0.1) {
	      trk->SetA((Int_t) (0.15*51625./100./pt / 160e-4 * 2));
	    }
	  }
	}
        else {
	  trackWord = fPayloadCurr[iWord];
        }
        idx++;
      }
    }
  }
  else if (fCurrHwRev < 1804) {
    UInt_t    fastWord;		// fast trigger word
    ULong64_t trackWord = 0;	// extended track word
    Int_t stack = 0;
    Int_t idx = 0;
    for (UInt_t iWord = 4; iWord < fCurrSmHeaderSize; iWord++) {
      if (fPayloadCurr[iWord] == 0xffe0ffff) { // stack boundary marker
        stack++;
        idx = 0;
      }
      else {
        if ((idx == 0) &&
	    ((fPayloadCurr[iWord] & 0xfffff0f0) == 0x13370000)) {
	  fastWord = fPayloadCurr[iWord];
	  fCurrTrgFlags[sector] |= 1 << (stack+11); // assume tracking done if fast word sent
	  AliDebug(1, Form("stack %i: fast trigger word: 0x%08x", stack, fastWord));
	  continue;
        }
        else if ((idx & 0x1) == 0x1) {
	  trackWord |= ((ULong64_t) fPayloadCurr[iWord]) << 32;
	  AliDebug(1, Form("track debug word: 0x%016llx", trackWord));
	  if (fTracks) {
	    AliESDTrdTrack *trk = new ((*fTracks)[fTracks->GetEntriesFast()])
	      AliESDTrdTrack();

	    trk->SetSector(fCurrEquipmentId-kDDLOffset);
	    trk->SetStack((trackWord >> 60) & 0x7);
	    trk->SetA(0);
	    trk->SetB(0);
	    trk->SetPID(0);
	    trk->SetLayerMask((trackWord >> 16) & 0x3f);
	    trk->SetTrackletIndex((trackWord >> 22) & 0x3f, 0);
	    trk->SetTrackletIndex((trackWord >> 28) & 0x3f, 1);
	    trk->SetTrackletIndex((trackWord >> 34) & 0x3f, 2);
	    trk->SetTrackletIndex((trackWord >> 40) & 0x3f, 3);
	    trk->SetTrackletIndex((trackWord >> 46) & 0x3f, 4);
	    trk->SetTrackletIndex((trackWord >> 52) & 0x3f, 5);

	    trk->SetFlags(0);
	    trk->SetReserved(0);
	    trk->SetLabel(-3);

	    Float_t pt = (((Int_t) (trackWord & 0xffff) ^ 0x8000) - 0x8000)/128.;
	    if (TMath::Abs(pt) > 0.1) {
	      trk->SetA((Int_t) (-0.15*51625./100./pt / 160e-4 * 2));
	    }
	  }
        }
        else {
	  trackWord = fPayloadCurr[iWord];
        }
        idx++;
      }
    }
  }
  else if (fCurrHwRev < 1819) {
    UInt_t    fastWord;		// fast trigger word
    ULong64_t trackWord = 0;	// extended track word
    Int_t stack = 0;
    Int_t idx = 0;
    for (UInt_t iWord = 4; iWord < fCurrSmHeaderSize; iWord++) {
      if (fPayloadCurr[iWord] == 0xffe0ffff) { // stack boundary marker
	stack++;
	idx = 0;
      }
      else {
	if ((idx == 0) &&
	    ((fPayloadCurr[iWord] & 0xfffff0f0) == 0x13370000)) {
	  fastWord = fPayloadCurr[iWord];
	  if (fastWord & (1 << 13))
	    fCurrTrgFlags[sector] |= 1 << (stack+11);
	  AliDebug(1, Form("stack %i: fast trigger word: 0x%08x", stack, fastWord));
	  continue;
	}
	else if ((idx & 0x1) == 0x1) {
	  trackWord |= ((ULong64_t) fPayloadCurr[iWord]) << 32;
	  AliDebug(1, Form("track debug word: 0x%016llx", trackWord));

	  if (fTracks) {
	    AliESDTrdTrack *trk = new ((*fTracks)[fTracks->GetEntriesFast()])
	      AliESDTrdTrack();

	    trk->SetSector(fCurrEquipmentId-kDDLOffset);
	    trk->SetStack((trackWord >> 60) & 0x7);
	    trk->SetA(0);
	    trk->SetB(0);
	    // trk->SetPt(((trackWord & 0xffff) ^ 0x8000) - 0x8000);
	    trk->SetPID(0);
	    trk->SetLayerMask((trackWord >> 16) & 0x3f);
	    trk->SetTrackletIndex((trackWord >> 22) & 0x3f, 0);
	    trk->SetTrackletIndex((trackWord >> 28) & 0x3f, 1);
	    trk->SetTrackletIndex((trackWord >> 34) & 0x3f, 2);
	    trk->SetTrackletIndex((trackWord >> 40) & 0x3f, 3);
	    trk->SetTrackletIndex((trackWord >> 46) & 0x3f, 4);
	    trk->SetTrackletIndex((trackWord >> 52) & 0x3f, 5);

	    trk->SetFlags(0);
	    trk->SetReserved(0);
	    trk->SetLabel(-3);

	    Float_t pt = (((Int_t) (trackWord & 0xffff) ^ 0x8000) - 0x8000)/128.;
	    if (TMath::Abs(pt) > 0.1) {
	      trk->SetA((Int_t) (0.15*51625./100./trk->Pt() / 160e-4 * 2));
	    }
	  }
	}
	else {
	  trackWord = fPayloadCurr[iWord];
	}
	idx++;
      }
    }
  }
  else if (fCurrHwRev < 1860) {
    UInt_t    fastWord;		// fast trigger word
    ULong64_t trackWord = 0;	// extended track word
    Int_t stack = 0;
    Int_t idx = 0;
    Bool_t upperWord = kFALSE;
    Int_t word = 0;
    for (UInt_t iWord = 4; iWord < fCurrSmHeaderSize; iWord++) {
      if (fPayloadCurr[iWord] == 0xffe0ffff) { // stack boundary marker
        stack++;
        idx = 0;
	upperWord = kFALSE;
      }
      else {
	// assemble the 32-bit words out of 16-bit blocks
	if (upperWord) {
	  word |= (fPayloadCurr[iWord] & 0xffff0000);
	  upperWord = kFALSE;
	}
	else {
	  // lower word is read first
	  word = (fPayloadCurr[iWord] & 0xffff0000) >> 16;
	  upperWord = kTRUE;
	  continue;
	}

        if ((word & 0xffff0008) == 0x13370008) {
	  fastWord = word;
	  AliDebug(1, Form("stack %i: fast track word: 0x%08x", stack, fastWord));
	  if (fastWord & (1 << 13))
	    fCurrTrgFlags[sector] |= 1 << (stack+11);
	  continue;
        }
        else if ((idx & 0x1) == 0x1) {
	  trackWord |= ((ULong64_t) word) << 32;
	  AliDebug(1, Form("track debug word: 0x%016llx", trackWord));
	  if (fTracks) {
	    AliESDTrdTrack *trk = new ((*fTracks)[fTracks->GetEntriesFast()])
	      AliESDTrdTrack();

	    trk->SetSector(fCurrEquipmentId-kDDLOffset);
	    trk->SetStack((trackWord >> 60) & 0x7);
	    trk->SetA(0);
	    trk->SetB(0);
	    trk->SetPID(0);
	    trk->SetLayerMask((trackWord >> 16) & 0x3f);
	    trk->SetTrackletIndex((trackWord >> 22) & 0x3f, 0);
	    trk->SetTrackletIndex((trackWord >> 28) & 0x3f, 1);
	    trk->SetTrackletIndex((trackWord >> 34) & 0x3f, 2);
	    trk->SetTrackletIndex((trackWord >> 40) & 0x3f, 3);
	    trk->SetTrackletIndex((trackWord >> 46) & 0x3f, 4);
	    trk->SetTrackletIndex((trackWord >> 52) & 0x3f, 5);

	    trk->SetFlags(0);
	    trk->SetReserved(0);
	    trk->SetLabel(-3);

	    Float_t pt = (((Int_t) (trackWord & 0xffff) ^ 0x8000) - 0x8000)/128.;
	    if (TMath::Abs(pt) > 0.1) {
	      trk->SetA((Int_t) (0.15*51625./100./pt / 160e-4 * 2));
	    }
	  }
        }
        else {
	  trackWord = word;
        }
        idx++;
      }
    }

  }
  else {
    ULong64_t trackWord = 0; // this is the debug word
    Int_t stack = 0;
    Int_t idx = 0;
    Bool_t upperWord = kFALSE;
    Int_t word = 0;
    for (UInt_t iWord = 4; iWord < fCurrSmHeaderSize; iWord++) {
      if (fPayloadCurr[iWord] == 0xffe0ffff) {
        stack++;
        idx = 0;
	upperWord = kFALSE;
      }
      else {
	// assemble the 32-bit words out of 16-bit blocks
	if (upperWord) {
	  word |= (fPayloadCurr[iWord] & 0xffff0000);
	  upperWord = kFALSE;
	}
	else {
	  // lower word is read first
	  word = (fPayloadCurr[iWord] & 0xffff0000) >> 16;
	  upperWord = kTRUE;
	  continue;
	}

        if ((word & 0xffff0008) == 0x13370008) {
	  AliDebug(1, Form("stack %i: fast track word: 0x%08x", stack, word));
	  continue;
        }
        else if ((word & 0xffff0010) == 0x13370010) {
	  AliDebug(1, Form("stack %i: tracking done word: 0x%08x", stack, word));
	  fCurrTrgFlags[sector] |= 1 << (stack+11);
	  continue;
	}
        else if ((idx & 0x1) == 0x1) {
	  trackWord |= ((ULong64_t) word) << 32;
	  AliDebug(1, Form("track debug word: 0x%16llx", trackWord));
	  if (fTracks) {
	    AliESDTrdTrack *trk = new ((*fTracks)[fTracks->GetEntriesFast()])
	      AliESDTrdTrack();
	    trk->SetSector(fCurrEquipmentId-kDDLOffset);
	    trk->SetStack((trackWord >> 60) & 0x7);
	    trk->SetA(0);
	    trk->SetB(0);
	    trk->SetPID(0);
	    trk->SetLayerMask((trackWord >> 16) & 0x3f);
	    trk->SetTrackletIndex((trackWord >> 22) & 0x3f, 0);
	    trk->SetTrackletIndex((trackWord >> 28) & 0x3f, 1);
	    trk->SetTrackletIndex((trackWord >> 34) & 0x3f, 2);
	    trk->SetTrackletIndex((trackWord >> 40) & 0x3f, 3);
	    trk->SetTrackletIndex((trackWord >> 46) & 0x3f, 4);
	    trk->SetTrackletIndex((trackWord >> 52) & 0x3f, 5);

	    trk->SetFlags(0);
	    trk->SetReserved(0);
	    trk->SetLabel(-3);

	    Float_t pt = (((Int_t) (trackWord & 0xffff) ^ 0x8000) - 0x8000)/128.;
	    if (TMath::Abs(pt) > 0.1) {
	      trk->SetA(-(Int_t) (0.15*51625./100./pt / 160e-4 * 2));
	    }
	  }
        }
        else {
	  trackWord = word;
        }
        idx++;
      }
    }
  }
  return 0;
}

Int_t AliTRDrawStream::ReadTrackingHeader(Int_t stack)
{
  // read the tracking information and store it for the given stack

  // index word

  fCurrTrkHeaderIndexWord[stack] = *fPayloadCurr;
  fCurrTrkHeaderSize[stack]      = ((*fPayloadCurr) >> 16) & 0x3ff;

  AliDebug(1, Form("tracking header index word: 0x%08x, size: %i (hw rev: %i)",
		   fCurrTrkHeaderIndexWord[stack], fCurrTrkHeaderSize[stack], fCurrHwRev));
  Int_t trackingTime = *fPayloadCurr & 0x3ff;

  fCurrTrgFlags[fCurrEquipmentId-kDDLOffset] |= ((fCurrTrkHeaderIndexWord[stack] >> 10) & 0x1) << (22 + stack);
  fPayloadCurr++;

  // data words
  ULong64_t trackWord = 0;
  Int_t idx = 0;
  Int_t trackIndex = fTracks ? fTracks->GetEntriesFast() : -1;

  for (UInt_t iWord = 0; iWord < fCurrTrkHeaderSize[stack]; iWord++) {

    if (!(idx & 0x1)) {
      // first part of 64-bit word
      trackWord = fPayloadCurr[iWord];
    }
    else {
      trackWord |= ((ULong64_t) fPayloadCurr[iWord]) << 32;

      if (trackWord & (1ul << 63)) {
	if ((trackWord & (0x3ful << 56)) != 0) {
	  // track word
	  AliDebug(2, Form("track word: 0x%016llx", trackWord));

	  if (fTracks) {
	    AliESDTrdTrack *trk = new ((*fTracks)[fTracks->GetEntriesFast()])
	      AliESDTrdTrack();

	    trk->SetSector(fCurrEquipmentId-kDDLOffset);
	    trk->SetLayerMask((trackWord >> 56) & 0x3f);
	    trk->SetA( (((trackWord >> 38) & 0x3ffff) ^ 0x20000) - 0x20000);
	    trk->SetB( (((trackWord >> 20) & 0x3ffff) ^ 0x20000) - 0x20000);
	    trk->SetC( (((trackWord >> 8)  &  0xffff) ^  0x8000) -  0x8000);
	    trk->SetPID((trackWord >>  0) & 0xff);
	    trk->SetStack(stack);
	    trk->SetLabel(-3);

	    // now compare the track word with the one generated from the ESD information
	    if (trackWord != trk->GetTrackWord(0)) {
	      AliError(Form("track word 0x%016llx does not match the read one 0x%016llx",
			    trk->GetTrackWord(0), trackWord));
	    }
	  }
	}
	else {
	  // done marker (so far only used to set trigger flag)
	  fCurrTrgFlags[fCurrEquipmentId-kDDLOffset] |= 1 << (27 + stack);
	  fCurrTrkFlags[(fCurrEquipmentId-kDDLOffset)*fgkNstacks + stack] = trackWord;

	  AliDebug(2, Form("tracking done marker: 0x%016llx, trigger flags: 0x%08x",
			   trackWord, fCurrTrgFlags[fCurrEquipmentId-kDDLOffset]));
	  AliDebug(2, Form("seg / stack / first / last / done / index : %i %i %lli %lli %lli %i",
			   fCurrEquipmentId - kDDLOffset, stack,
			   (trackWord >> 20) & 0x3ff,
			   (trackWord >> 10) & 0x3ff,
			   (trackWord >>  0) & 0x3ff,
			   trackingTime));
	}
      }
      else {
	// extended track word
	AliDebug(2, Form("extended track word: 0x%016llx", trackWord));

	if (fTracks) {
	  AliESDTrdTrack *trk = (AliESDTrdTrack*) (*fTracks)[trackIndex];

	  trk->SetFlags((trackWord >> 52) & 0x7ff);
	  trk->SetFlagsTiming((trackWord >> 51) & 0x1);
	  trk->SetReserved((trackWord >> 49) & 0x3);
	  trk->SetY((trackWord >> 36) & 0x1fff);
	  trk->SetTrackletIndex((trackWord >>  0) & 0x3f, 0);
	  trk->SetTrackletIndex((trackWord >>  6) & 0x3f, 1);
	  trk->SetTrackletIndex((trackWord >> 12) & 0x3f, 2);
	  trk->SetTrackletIndex((trackWord >> 18) & 0x3f, 3);
	  trk->SetTrackletIndex((trackWord >> 24) & 0x3f, 4);
	  trk->SetTrackletIndex((trackWord >> 30) & 0x3f, 5);

	  if (trk->GetFlagsTiming() == 0) {
	    AliError(Form("*** track not in time: 0x%016llx", trk->GetExtendedTrackWord(0)));
	  }

	  if (trackWord != trk->GetExtendedTrackWord(0)) {
	    AliError(Form("extended track word 0x%016llx does not match the read one 0x%016llx",
			  trk->GetExtendedTrackWord(0), trackWord));
	    }

	  trackIndex++;
	}
      }
    }
    idx++;
  }

  fPayloadCurr += fCurrTrkHeaderSize[stack];

  return fCurrTrkHeaderSize[stack];
}

Int_t AliTRDrawStream::ReadTriggerHeaders()
{
  // read all trigger headers present

  AliDebug(1, Form("trigger mask: 0x%03x, fired: 0x%03x\n",
		   fCurrTriggerEnable, fCurrTriggerFired));
  // loop over potential trigger blocks
  for (Int_t iTrigger = 0; iTrigger < fgkNtriggers; iTrigger++) {
    // check for trigger enable
    if (fCurrTriggerEnable & (1 << iTrigger)) {
      // check for readout mode and trigger fired
      if ((fCurrTrgHeaderReadout == 0) || (fCurrTriggerFired & (1 << iTrigger))) {
	// index word
	AliDebug(1, Form("trigger index word %i: 0x%08x\n", iTrigger, *fPayloadCurr));
	fCurrTrgHeaderIndexWord[iTrigger] = *fPayloadCurr;
	fCurrTrgHeaderSize[iTrigger]      = ((*fPayloadCurr) >> 16) & 0x3ff;
	if (iTrigger == 7) {
	  // timeout trigger, use to extract tracking time
	  fCurrTrgFlags[fCurrEquipmentId-kDDLOffset] |= (*fPayloadCurr & 0x3ff) << 12;
	}

	fPayloadCurr++;
	// data words
	fPayloadCurr += fCurrTrgHeaderSize[iTrigger];
      }
    }
  }

  return 0;
}

Int_t AliTRDrawStream::ReadStackHeader(Int_t stack)
{
  // read the stack header
  // and store the information in the corresponding variables

  fCurrStackIndexWord[stack]     = *fPayloadCurr;
  fCurrStackHeaderSize[stack]    = (((*fPayloadCurr) >> 16) & 0xffff) + 1;
  fCurrStackHeaderVersion[stack] = ((*fPayloadCurr) >> 12) & 0xf;
  fCurrLinkMask[stack]           = (*fPayloadCurr) & 0xfff;

  // dumping stack header
  AliDebug(1, DumpRaw(Form("stack %i header", stack), fPayloadCurr, fCurrStackHeaderSize[stack]));

  if (fPayloadCurr - fPayloadStart >= fPayloadSize - (Int_t) fCurrStackHeaderSize[stack]) {
    EquipmentError(kStackHeaderInvalid, "Stack index header %i incomplete", stack);
    // dumping stack header
    AliError(DumpRaw(Form("stack %i header", stack), fPayloadCurr, fCurrStackHeaderSize[stack]));

    return -1;
  }

  switch (fCurrStackHeaderVersion[stack]) {
  case 0xa:
  case 0xb:
    if (fCurrStackHeaderSize[stack] < 8) {
      LinkError(kStackHeaderInvalid, "Stack header smaller than expected!");
      return -1;
    }

    fCurrCleanCheckout[stack] = fPayloadCurr[1] & 0x1;
    fCurrBoardId[stack]       = (fPayloadCurr[1] >> 8) & 0xff;
    fCurrHwRevTMU[stack]      = (fPayloadCurr[1] >> 16) & 0xffff;

    for (Int_t iLayer = 0; iLayer < 6; iLayer++) {
      // A side
      fCurrLinkMonitorFlags  [((fCurrEquipmentId - kDDLOffset) * fgkNstacks + stack) *fgkNlinks + iLayer*2] = fPayloadCurr[iLayer+2] & 0xf;
      fCurrLinkDataTypeFlags [stack * fgkNlinks + iLayer*2]      = (fPayloadCurr[iLayer+2] >> 4) & 0x3;
      fCurrLinkDebugFlags    [stack * fgkNlinks + iLayer*2]      = (fPayloadCurr[iLayer+2] >> 12) & 0xf;
      // B side
      fCurrLinkMonitorFlags  [((fCurrEquipmentId - kDDLOffset) * fgkNstacks + stack) *fgkNlinks + iLayer*2 + 1] = (fPayloadCurr[iLayer+2] >> 16) & 0xf;
      fCurrLinkDataTypeFlags [stack * fgkNlinks + iLayer*2 + 1]  = (fPayloadCurr[iLayer+2] >> 20) & 0x3;
      fCurrLinkDebugFlags    [stack * fgkNlinks + iLayer*2 + 1]  = (fPayloadCurr[iLayer+2] >> 28) & 0xf;
    }
    break;

  default:
    EquipmentError(kStackHeaderInvalid, "Invalid Stack Header version %x", fCurrStackHeaderVersion[stack]);
  }

  fPayloadCurr += fCurrStackHeaderSize[stack];

  return fCurrStackHeaderSize[stack];
}

Int_t AliTRDrawStream::ReadGTUTrailer()
{
  // read the SM trailer containing CRCs from various stages

  UInt_t* trailer = fPayloadStart + fPayloadSize -1;

  // look for the trailer index word from the end
  for (Int_t iWord = 0; iWord < fPayloadSize-2; iWord++) {
    if ((fPayloadStart[fPayloadSize-3-iWord] == fgkStackEndmarker[0]) &&
	(fPayloadStart[fPayloadSize-2-iWord] == fgkStackEndmarker[1]) &&
	((fPayloadStart[fPayloadSize-1-iWord] & 0xfff) == 0xf51)) {
      trailer = fPayloadStart + fPayloadSize - 1 - iWord;
      break;
    }
  }

  if (((*trailer) & 0xfff) == 0xf51) {
    UInt_t trailerIndexWord = (*trailer);
    Int_t trailerSize = (trailerIndexWord >> 16) & 0xffff;
    // Int_t trailerVersion = (trailerIndexWord >> 12) & 0xf;
    AliDebug(2, DumpRaw("GTU trailer", trailer, trailerSize+1));
    // parse the trailer
    if (trailerSize >= 4) {
      // match flags from GTU
      fCurrMatchFlagsSRAM[fCurrEquipmentId-kDDLOffset]     = (trailer[1] >>  0) &    0x1f;
      fCurrMatchFlagsPostBP[fCurrEquipmentId-kDDLOffset]   = (trailer[1] >>  5) &    0x1f;
      // individual checksums
      fCurrChecksumStack[fCurrEquipmentId - kDDLOffset][0]   = (trailer[1] >> 16) &  0xffff;
      fCurrChecksumStack[fCurrEquipmentId - kDDLOffset][1]   = (trailer[2] >>  0) &  0xffff;
      fCurrChecksumStack[fCurrEquipmentId - kDDLOffset][2]   = (trailer[2] >> 16) &  0xffff;
      fCurrChecksumStack[fCurrEquipmentId - kDDLOffset][3]   = (trailer[3] >>  0) &  0xffff;
      fCurrChecksumStack[fCurrEquipmentId - kDDLOffset][4]   = (trailer[3] >> 16) &  0xffff;
      fCurrChecksumSIU        = trailer[trailerSize];

      if ((fCurrMatchFlagsSRAM[fCurrEquipmentId-kDDLOffset] & fCurrStackMask) != fCurrStackMask)
	EquipmentError(kCRCmismatch, "CRC mismatch SRAM: 0x%02x", fCurrMatchFlagsSRAM[fCurrEquipmentId-kDDLOffset]);
      if ((fCurrMatchFlagsPostBP[fCurrEquipmentId-kDDLOffset] & fCurrStackMask) != fCurrStackMask)
	EquipmentError(kCRCmismatch, "CRC mismatch BP: 0x%02x", fCurrMatchFlagsPostBP[fCurrEquipmentId-kDDLOffset]);

    }
    else {
      LinkError(kUnknown, "Invalid GTU trailer");
    }
  }
  else
    EquipmentError(kUnknown, "trailer index marker mismatch");

  return 0;
}

Int_t AliTRDrawStream::ReadLinkData()
{
  // read the data in one link (one HC) until the data endmarker is reached
  // returns the number of words read!

  Int_t count = 0;
  UInt_t* startPosLink = fPayloadCurr;

  AliDebug(1, DumpRaw(Form("link data from seg %2i slot %i link %2i", fCurrEquipmentId-kDDLOffset, fCurrSlot, fCurrLink),
		      fPayloadCurr, TMath::Min((Int_t) (fPayloadSize - (fPayloadCurr-fPayloadStart)), 100), 0x00000000));

  if (fMarkers)
    new ((*fMarkers)[fMarkers->GetEntriesFast()])
      AliTRDrawStreamError(-kHCactive, fCurrEquipmentId-kDDLOffset, fCurrSlot, fCurrLink);

  if (fErrorFlags & kDiscardHC)
    return count;

  if (fCurrTrackletEnable) {
    count += ReadTracklets();
    if (fErrorFlags & kDiscardHC)
      return count;
  }

  AliDebug(1, DumpRaw("HC header", fPayloadCurr, 4, 0x00000000));
  count += ReadHcHeader();
  if (fErrorFlags & kDiscardHC)
    return count;

  Int_t det = fCurrSm * 30 + fCurrStack * 6 + fCurrLayer;

  if (det > -1 && det < 540) {

    // ----- check which kind of data -----
    if (fCurrMajor & 0x40) {
      if ((fCurrMajor & 0x7) == 0x7) {
	AliDebug(1, "This is a config event");
	UInt_t *startPos = fPayloadCurr;
	while (fPayloadCurr - fPayloadStart < fPayloadSize &&
	       *fPayloadCurr != fgkDataEndmarker)
	  fPayloadCurr++;
	count += fPayloadCurr - startPos;

	// feeding TRAP config
	AliTRDtrapConfig *trapcfg = AliTRDcalibDB::Instance()->GetTrapConfig();
	AliTRDmcmSim::ReadPackedConfig(trapcfg, fCurrHC, startPos, fPayloadCurr - startPos);
      }
      else {
	Int_t tpmode = fCurrMajor & 0x7;
	AliDebug(1, Form("Checking testpattern (mode %i) data", tpmode));
	count += ReadTPData(tpmode);
      }
    }
    else {
      // reading real data
      if (fDigitsManager) {
	if ((fAdcArray = fDigitsManager->GetDigits(det))) {
	  //fAdcArray->Expand();
	  if (fAdcArray->GetNtime() != fCurrNtimebins)
	    fAdcArray->Allocate(16, 144, fCurrNtimebins);
	}
	else {
	  LinkError(kNoDigits);
	}

	if (!fDigitsParam) {
	  fDigitsParam = fDigitsManager->GetDigitsParam();
	}
	if (fDigitsParam) {
	  fDigitsParam->SetPretriggerPhase(det, fCurrPtrgPhase);
	  fDigitsParam->SetNTimeBins(det, fCurrNtimebins);
	  fDigitsParam->SetADCbaseline(det, 10);
	}

	if (fDigitsManager->UsesDictionaries()) {
	  fDigitsManager->GetDictionary(det, 0)->Reset();
	  fDigitsManager->GetDictionary(det, 1)->Reset();
	  fDigitsManager->GetDictionary(det, 2)->Reset();
	}

	if ((fSignalIndex = fDigitsManager->GetIndexes(det))) {
	  fSignalIndex->SetSM(fCurrSm);
	  fSignalIndex->SetStack(fCurrStack);
	  fSignalIndex->SetLayer(fCurrLayer);
	  fSignalIndex->SetDetNumber(det);
	  if (!fSignalIndex->IsAllocated())
	    fSignalIndex->Allocate(16, 144, fCurrNtimebins);
	}

	if (fCurrMajor & 0x20) {
	  AliDebug(1, "This is a zs event");
	  count += ReadZSData();
	}
	else {
	  AliDebug(1, "This is a nozs event");
	  count += ReadNonZSData();
	}
      }
      else {
	// just read until data endmarkers
	while (fPayloadCurr - fPayloadStart < fPayloadSize &&
	       *fPayloadCurr != fgkDataEndmarker)
	  fPayloadCurr++;
      }
    }
  }
  else {
    LinkError(kInvalidDetector, "%i", det);
    while (fPayloadCurr - fPayloadStart < fPayloadSize &&
	   *fPayloadCurr != fgkDataEndmarker)
      fPayloadCurr++;
  }

  if (fCurrSm > -1 && fCurrSm < 18) {
    fStats.fStatsSector[fCurrSm].fStatsHC[fCurrHC%60].fBytes     += (fPayloadCurr - startPosLink) * sizeof(UInt_t);
    fStats.fStatsSector[fCurrSm].fStatsHC[fCurrHC%60].fBytesRead += count * sizeof(UInt_t);
    fStats.fStatsSector[fCurrSm].fBytesRead                      += count * sizeof(UInt_t);
    fStats.fBytesRead                                            += count * sizeof(UInt_t);
  }

  if ((fErrorFlags & kDiscardHC) && fAdcArray)
    fAdcArray->SetDataInvalid(); // invalidate the data

  return count;
}

Int_t AliTRDrawStream::ReadTracklets()
{
  // read the tracklets from one HC

  Int_t nTracklets = 0;

  UInt_t *start = fPayloadCurr;
  while (*(fPayloadCurr) != fgkTrackletEndmarker &&
	 *(fPayloadCurr) != fgkStackEndmarker[0] &&
	 *(fPayloadCurr) != fgkStackEndmarker[1] &&
	 fPayloadCurr - fPayloadStart < (fPayloadSize - 1)) {
    ++nTracklets;
    if (fTracklets)
      new ((*fTracklets)[fTracklets->GetEntriesFast()]) AliTRDtrackletWord(*(fPayloadCurr), fCurrHC);

    fPayloadCurr++;
  }

  if (nTracklets > 0) {
    AliDebug(1, Form("Found %i tracklets in %i %i %i (ev. %i)", nTracklets,
		     (fCurrEquipmentId-kDDLOffset), fCurrSlot, fCurrLink, fRawReader->GetEventIndex()));
    if (fCurrSm > -1 && fCurrSm < 18) {
      fStats.fStatsSector[fCurrSm].fStatsHC[fCurrHC%60].fNTracklets += nTracklets;
      fStats.fStatsSector[fCurrSm].fNTracklets                      += nTracklets;
    }
  }

  // loop over remaining tracklet endmarkers
  while ((*(fPayloadCurr) == fgkTrackletEndmarker &&
	  fPayloadCurr - fPayloadStart < fPayloadSize))
    fPayloadCurr++;

  return fPayloadCurr - start;
}

Int_t AliTRDrawStream::ReadHcHeader()
{
  // read and parse the HC header of one HC
  // and store the information in the corresponding variables

  AliDebug(1, Form("HC header: 0x%08x", *fPayloadCurr));
  UInt_t *start = fPayloadCurr;
  // check not to be at the data endmarker
  if (*fPayloadCurr == fgkDataEndmarker ||
      *(fPayloadCurr) == fgkStackEndmarker[0] ||
      *(fPayloadCurr) == fgkStackEndmarker[1]) {
    LinkError(kHCmismatch, "found endmarker where HC header should be");
    return 0;
  }

  fCurrSpecial    = (*fPayloadCurr >> 31) & 0x1;
  fCurrMajor      = (*fPayloadCurr >> 24) & 0x7f;
  fCurrMinor      = (*fPayloadCurr >> 17) & 0x7f;
  fCurrAddHcWords = (*fPayloadCurr >> 14) & 0x7;
  fCurrSm         = (*fPayloadCurr >> 9) & 0x1f;
  fCurrLayer      = (*fPayloadCurr >> 6) & 0x7;
  fCurrStack      = (*fPayloadCurr >> 3) & 0x7;
  fCurrSide       = (*fPayloadCurr >> 2) & 0x1;
  fCurrCheck      = (*fPayloadCurr) & 0x3;

  if ((fCurrSm != (((Int_t) fCurrEquipmentId) - kDDLOffset)) ||
      (fCurrStack != fCurrSlot) ||
      (fCurrLayer != fCurrLink / 2) ||
      (fCurrSide != fCurrLink % 2)) {
    LinkError(kHCmismatch,
	      "HC: %i, %i, %i, %i\n 0x%08x 0x%08x 0x%08x 0x%08x",
	      fCurrSm, fCurrStack, fCurrLayer, fCurrSide,
	      fPayloadCurr[0], fPayloadCurr[1], fPayloadCurr[2], fPayloadCurr[3]);
  }
  if (fCurrCheck != 0x1) {
    LinkError(kHCcheckFailed);
  }

  if (fCurrAddHcWords > 0) {
    fCurrNtimebins = (fPayloadCurr[1] >> 26) & 0x3f;
#ifdef TRD_RAW_DEBUG
    fCurrBC[fCurrHC] = (fPayloadCurr[1] >> 10) & 0xffff;
#endif
    fCurrPtrgCnt = (fPayloadCurr[1] >> 6) & 0xf;
    fCurrPtrgPhase = (fPayloadCurr[1] >> 2) & 0xf;
  }

  fPayloadCurr += 1 + fCurrAddHcWords;

  return (fPayloadCurr - start);
}

Int_t AliTRDrawStream::ReadTPData(Int_t mode)
{
  // testing of testpattern 1 to 3 (hardcoded), 0 missing
  // evcnt checking missing
  Int_t cpu = 0;
  Int_t cpufromchannel[] = {0, 0, 0, 0, 0,  1, 1, 1, 1, 1,  2, 2, 2, 2, 2,  3, 3, 3, 3, 3, 3};
  Int_t evno  = -1;
  Int_t evcnt = 0;
  Int_t count = 0;
  Int_t mcmcount = -1;
  Int_t wordcount = 0;
  Int_t channelcount = 0;
  UInt_t expword = 0;
  UInt_t expadcval = 0;
  UInt_t diff = 0;
  Int_t lastmcmpos = -1;
  Int_t lastrobpos = -1;

  UInt_t* start = fPayloadCurr;

  while (*(fPayloadCurr) != fgkDataEndmarker &&
	 fPayloadCurr - fPayloadStart < fPayloadSize - 1) {

    // ----- Checking MCM Header -----
    AliDebug(2, DumpMcmHeader("MCM header: ", *fPayloadCurr));
    UInt_t *startPosMCM = fPayloadCurr;
    mcmcount++;

    // ----- checking for proper readout order - ROB -----
    fCurrRobPos = ROB(*fPayloadCurr);
    if (GetROBReadoutPos(ROB(*fPayloadCurr) / 2) >= lastrobpos) {
      if (GetROBReadoutPos(ROB(*fPayloadCurr) / 2) > lastrobpos)
	lastmcmpos = -1;
      lastrobpos = GetROBReadoutPos(ROB(*fPayloadCurr) / 2);
    }
    else {
      ROBError(kPosUnexp, Form("#%i after #%i in readout order", GetROBReadoutPos(ROB(*fPayloadCurr) / 2), lastrobpos));
    }

    // ----- checking for proper readout order - MCM -----
    fCurrMcmPos = MCM(*fPayloadCurr);
    if (GetMCMReadoutPos(MCM(*fPayloadCurr)) > lastmcmpos) {
      lastmcmpos = GetMCMReadoutPos(MCM(*fPayloadCurr));
    }
    else {
      MCMError(kPosUnexp, Form("#%i after #%i in readout order", GetMCMReadoutPos(MCM(*fPayloadCurr)), lastmcmpos));
    }

    if (EvNo(*fPayloadCurr) != (evno & 0xfffff)) {
      if (evno == -1) {
	evno = EvNo(*fPayloadCurr);
      }
      else {
	MCMError(kEvCntMismatch, "%i <-> %i", evno, EvNo(*fPayloadCurr));
#ifdef TRD_RAW_DEBUG
	if (fCurrL0offset[fCurrHC/2] != 0)
	  LinkError(kEvCntMismatch, "offset for %i %i %i changed from %i to %i = %i - %i",
		    fCurrEquipmentId, fCurrSlot, fCurrLink/2, fCurrL0offset[fCurrHC/2],
		    EvNo(*fPayloadCurr) - fCurrL0Count[fCurrEquipmentId-kDDLOffset],
		    EvNo(*fPayloadCurr), fCurrL0Count[fCurrEquipmentId-kDDLOffset]);
	fCurrL0offset[fCurrHC/2] = EvNo(*fPayloadCurr) - fCurrL0Count[fCurrEquipmentId-kDDLOffset];
	evno = fCurrL0Count[fCurrEquipmentId-kDDLOffset] + fCurrL0offset[fCurrHC/2];
#endif
      }
    }

    fPayloadCurr++;

    evcnt = 0x3f & *fPayloadCurr >> 26;
    cpu = -1;
    channelcount = 0;
    while (channelcount < 21) {
      count = 0;
      if (cpu != cpufromchannel[channelcount]) {
	cpu = cpufromchannel[channelcount];
	expadcval = (1 << 9) | (fCurrRobPos << 6) | (fCurrMcmPos << 2) | cpu;
	wordcount = 0;
      }

      while (count < 10) {
	if (*fPayloadCurr == fgkDataEndmarker) {
	  MCMError(kMissTpData);
	  return (fPayloadCurr - start);
	}

	if (channelcount % 2 == 0)
	  expword = 0x3;
	else
	  expword = 0x2;

	if (mode == 1) {
	  // ----- TP 1 -----
	  expword |= expadcval << 2;
	  expadcval = ( (expadcval << 1) | ( ( (expadcval >> 9) ^ (expadcval >> 6) ) & 1) ) & 0x3FF;
	  expword |= expadcval << 12;
	  expadcval = ( (expadcval << 1) | ( ( (expadcval >> 9) ^ (expadcval >> 6) ) & 1) ) & 0x3FF;
	  expword |= expadcval << 22;
	  expadcval = ( (expadcval << 1) | ( ( (expadcval >> 9) ^ (expadcval >> 6) ) & 1) ) & 0x3FF;
	}
	else if (mode == 2) {
	  // ----- TP 2 ------
	  expword = ((0x3f & evcnt) << 26) | ((fCurrSm + 1) << 21) | ((fCurrLayer + 1) << 18) |
	    ((fCurrStack + 1) << 15) |
	    (fCurrRobPos << 12) | (fCurrMcmPos << 8) | (cpu << 6) | (wordcount + 1);
	}
	else if (mode == 3) {
	  // ----- TP 3 -----
	  expword = ((0xfff & evcnt) << 20) | (fCurrSm << 15) | (fCurrLink/2 << 12) | (fCurrStack << 9) |
	    (fCurrRobPos << 6) | (fCurrMcmPos << 2) | (cpu << 0);
	}
	else {
	  expword = 0;
	  LinkError(kTPmodeInvalid, "Just reading");
	}

	diff = *fPayloadCurr ^ expword;
	AliDebug(11, Form("Comparing ch %2i, word %2i (cpu %i): 0x%08x <-> 0x%08x",
			  channelcount, wordcount, cpu, *fPayloadCurr, expword));

	if (diff != 0) {
	  MCMError(kTPmismatch,
		   "Seen 0x%08x, expected 0x%08x, diff: 0x%08x, 0x%04x, 0x%02x - word %2i (cpu %i, ch %i)",
		   *fPayloadCurr, expword, diff,
		   0xffff & (diff | diff >> 16),
		   0xff & (diff | diff >> 8 | diff >> 16 | diff >> 24),
		   wordcount, cpu, channelcount);;
	}
	fPayloadCurr++;
	count++;
	wordcount++;
	if (*fPayloadCurr == fgkDataEndmarker)
	  return (fPayloadCurr - start);
      }
      channelcount++;
    }
    // continue with next MCM

    if (IsDumping() && DumpingMCM(fCurrHC/2, fCurrRobPos, fCurrMcmPos)) {
      AliInfo(DumpRaw(Form("Event %i: Det %3i ROB %i MCM %2i", fRawReader->GetEventIndex(), fCurrHC/2, fCurrRobPos, fCurrMcmPos),
		      startPosMCM, fPayloadCurr - startPosMCM));
    }

  }
  return fPayloadCurr - start;
}


Int_t AliTRDrawStream::ReadZSData()
{
  // read the zs data from one link from the current reading position

  UInt_t *start = fPayloadCurr;

  Int_t mcmcount = 0;
  Int_t mcmcountExp = fCurrStack == 2 ? 48 : 64;
  Int_t channelcount = 0;
  Int_t channelcountExp = 0;
  Int_t channelcountMax = 0;
  Int_t timebins;
  Int_t currentTimebin = 0;
  Int_t adcwc = 0;
  Int_t evno = -1;
  Int_t lastmcmpos = -1;
  Int_t lastrobpos = -1;

  if (fCurrNtimebins != fNtimebins) {
    if (fNtimebins > 0)
      LinkError(kNtimebinsChanged,
		"No. of timebins changed from %i to %i", fNtimebins, fCurrNtimebins);
    fNtimebins = fCurrNtimebins;
  }

  timebins = fNtimebins;

  while (*(fPayloadCurr) != fgkDataEndmarker &&
	 *(fPayloadCurr) != fgkStackEndmarker[0] &&
	 *(fPayloadCurr) != fgkStackEndmarker[1] &&
	 fPayloadCurr - fPayloadStart < fPayloadSize) {

    // ----- Checking MCM Header -----
    AliDebug(2, DumpMcmHeader("MCM header: ", *fPayloadCurr));
    UInt_t *startPosMCM = fPayloadCurr;

    // ----- checking for proper readout order - ROB -----
    fCurrRobPos = ROB(*fPayloadCurr);
    if (GetROBReadoutPos(ROB(*fPayloadCurr) / 2) >= lastrobpos) {
      if (GetROBReadoutPos(ROB(*fPayloadCurr) / 2) > lastrobpos)
	lastmcmpos = -1;
      lastrobpos = GetROBReadoutPos(ROB(*fPayloadCurr) / 2);
    }
    else {
      ROBError(kPosUnexp, Form("#%i after #%i and #%i in readout order",
			       GetROBReadoutPos(ROB(*fPayloadCurr) / 2), lastrobpos, GetROBReadoutPos(fCurrRobPos)));
    }

    // ----- checking for proper readout order - MCM -----
    fCurrMcmPos = MCM(*fPayloadCurr);
    if (GetMCMReadoutPos(MCM(*fPayloadCurr)) > lastmcmpos) {
      lastmcmpos = GetMCMReadoutPos(MCM(*fPayloadCurr));
    }
    else {
      MCMError(kPosUnexp, Form("#%i after #%i and #%i in readout order",
			       GetMCMReadoutPos(MCM(*fPayloadCurr)), lastmcmpos, GetMCMReadoutPos(fCurrMcmPos)));
    }

#ifdef TRD_RAW_DEBUG
    if (fCurrL0Count[fCurrEquipmentId-kDDLOffset] > 0) {
      evno = fCurrL0Count[fCurrEquipmentId-kDDLOffset] + fCurrL0offset[fCurrHC/2];
    }
    fCurrEvCount[fCurrEquipmentId-kDDLOffset] = EvNo(*fPayloadCurr);
#endif

    if (EvNo(*fPayloadCurr) != (evno & 0xfffff)) {
      if (evno == -1) {
	evno = EvNo(*fPayloadCurr);
      }
      else {
	MCMError(kEvCntMismatch, "exp <-> SM: %i <-> %i", evno & 0xfffff, EvNo(*fPayloadCurr));
#ifdef TRD_RAW_DEBUG
	Int_t prevOffset = fCurrL0offset[fCurrHC/2];
	fCurrL0offset[fCurrHC/2] = (- fCurrL0Count[fCurrEquipmentId-kDDLOffset] + EvNo(*fPayloadCurr)) % (1 << 20);
	if (fCurrL0offset[fCurrHC/2] < 0)
	  fCurrL0offset[fCurrHC/2] += 0xfffff;
	evno = (fCurrL0Count[fCurrEquipmentId-kDDLOffset] + fCurrL0offset[fCurrHC/2]) & 0xfffff;
	if (prevOffset != 0)
	  LinkError(kEvCntMismatch, "offset for %i %i %i changed from %i to %i = %i - %i",
		    fCurrEquipmentId, fCurrSlot, fCurrLink/2,
		    prevOffset,
		    fCurrL0offset[fCurrHC/2],
		    fCurrL0Count[fCurrEquipmentId-kDDLOffset],
		    EvNo(*fPayloadCurr));
#endif
      }
    }
    Int_t adccoloff = AdcColOffset(*fPayloadCurr);
    Int_t padcoloff = PadColOffset(*fPayloadCurr);
    Int_t row = Row(*fPayloadCurr);
    fPayloadCurr++;

    if ((row > 11) && (fCurrStack == 2)) {
      MCMError(kInvalidPadRow, "Data in padrow > 11 for stack 2");
    }

    if (fErrorFlags & (kDiscardHC | kDiscardDDL))
      break;

    // ----- Reading ADC channels -----
    AliDebug(2, DumpAdcMask("ADC mask: ", *fPayloadCurr));

    // ----- analysing the ADC mask -----
    channelcount = 0;
    channelcountExp = GetNActiveChannelsFromMask(*fPayloadCurr);
    channelcountMax = GetNActiveChannels(*fPayloadCurr);
    Int_t channelmask = GetActiveChannels(*fPayloadCurr);
    Int_t channelno = -1;
    fPayloadCurr++;

    if (channelcountExp != channelcountMax) {
      if (channelcountExp > channelcountMax) {
	Int_t temp = channelcountExp;
	channelcountExp = channelcountMax;
	channelcountMax = temp;
      }
      while (channelcountExp < channelcountMax && channelcountExp < 21 &&
	     fPayloadCurr - fPayloadStart < fPayloadSize - 10 * channelcountExp - 1) {
	MCMError(kAdcMaskInconsistent,
		 "Possible MCM-H: 0x%08x, possible ADC-mask: 0x%08x",
		 *(fPayloadCurr + 10 * channelcountExp),
		 *(fPayloadCurr + 10 * channelcountExp + 1) );
	if (!CouldBeMCMhdr( *(fPayloadCurr + 10 * channelcountExp)) && !CouldBeADCmask( *(fPayloadCurr + 10 * channelcountExp + 1)))
	  channelcountExp++;
	else {
	  break;
	}
      }
      MCMError(kAdcMaskInconsistent,
	       "Inconsistency in no. of active channels: Counter: %i, Mask: %i, chosen: %i!",
	       GetNActiveChannels(fPayloadCurr[-1]), GetNActiveChannelsFromMask(fPayloadCurr[-1]), channelcountExp);
    }
    AliDebug(2, Form("expecting %i active channels, %i timebins", channelcountExp, fCurrNtimebins));

    // ----- reading marked ADC channels -----
    while (channelcount < channelcountExp && *(fPayloadCurr) != fgkDataEndmarker) {
      if (channelno < 20)
	channelno++;
      while (channelno < 20 && (channelmask & 1 << channelno) == 0)
	channelno++;

      if (fCurrNtimebins > 30) {
	currentTimebin = ((*fPayloadCurr >> 2) & 0x3f);
	timebins = ((*fPayloadCurr >> 8) & 0xf) * 3;
      }
      else {
	currentTimebin = 0;
      }

      adcwc = 0;
      Int_t nADCwords = (timebins + 2) / 3;
      AliDebug(3, Form("Now reading %i words for channel %2i", nADCwords, channelno));
      Int_t adccol = adccoloff - channelno;
      Int_t padcol = padcoloff - channelno;
//      if (adccol < 3 || adccol > 165)
//	AliInfo(Form("writing channel %i of det %3i %i:%2i to adcrow/-col: %i/%i padcol: %i",
//		     channelno, fCurrHC/2, fCurrRobPos, fCurrMcmPos, row, adccol, padcol));

      while ((adcwc < nADCwords) &&
	     (*(fPayloadCurr) != fgkDataEndmarker) &&
	     (fPayloadCurr - fPayloadStart < fPayloadSize)) {
	int check = 0x3 & *fPayloadCurr;
	if (channelno % 2 != 0)	{ // odd channel
	  if (check != 0x2 && channelno < 21) {
	    MCMError(kAdcCheckInvalid,
		     "%i for %2i. ADC word in odd channel %i",
		     check, adcwc+1, channelno);
	  }
	}
	else {			// even channel
	  if (check != 0x3 && channelno < 21) {
	    MCMError(kAdcCheckInvalid,
		     "%i for %2i. ADC word in even channel %i",
		     check, adcwc+1, channelno);
	  }
	}

	if ((fErrorFlags & kDiscardMCM) == 0) {
	  // filling the actual timebin data
	  int tb2 = 0x3ff & (*fPayloadCurr >> 22);
	  int tb1 = 0x3ff & (*fPayloadCurr >> 12);
	  int tb0 = 0x3ff & (*fPayloadCurr >>  2);
	  if (adcwc != 0 || fCurrNtimebins <= 30)
	    fAdcArray->SetDataByAdcCol(row, adccol, currentTimebin++, tb0);
	  else
	    tb0 = -1;
	  if (currentTimebin < fCurrNtimebins)
	    fAdcArray->SetDataByAdcCol(row, adccol, currentTimebin++, tb1);
	  if (currentTimebin < fCurrNtimebins)
	    fAdcArray->SetDataByAdcCol(row, adccol, currentTimebin++, tb2);
	}

	adcwc++;
	fPayloadCurr++;
      }

      if (adcwc != nADCwords)
	MCMError(kAdcDataAbort);

      // adding index
      if (padcol > 0 && padcol < 144) {
	fSignalIndex->AddIndexRC(row, padcol);
      }

      channelcount++;
    }

    if (fCurrSm > -1 && fCurrSm < 18) {
      fStats.fStatsSector[fCurrSm].fStatsHC[fCurrHC%60].fNChannels += channelcount;
      fStats.fStatsSector[fCurrSm].fNChannels                      += channelcount;
    }
    if (channelcount != channelcountExp)
      MCMError(kAdcChannelsMiss);

    mcmcount++;
    if (fCurrSm > -1 && fCurrSm < 18) {
      fStats.fStatsSector[fCurrSm].fStatsHC[fCurrHC%60].fNMCMs++;
      fStats.fStatsSector[fCurrSm].fNMCMs++;
    }

    if (IsDumping() && DumpingMCM(fCurrHC/2, fCurrRobPos, fCurrMcmPos)) {
      AliInfo(DumpRaw(Form("Event %i: Det %3i ROB %i MCM %2i", fRawReader->GetEventIndex(), fCurrHC/2, fCurrRobPos, fCurrMcmPos),
		      startPosMCM, fPayloadCurr - startPosMCM));
    }

    // continue with next MCM
  }

  // check for missing MCMs (if header suppression is inactive)
  if (((fCurrMajor & 0x1) == 0) && (mcmcount != mcmcountExp)) {
    LinkError(kMissMcmHeaders,
	      "No. of MCM headers %i not as expected: %i",
	      mcmcount, mcmcountExp);
  }

  return (fPayloadCurr - start);
}

Int_t AliTRDrawStream::ReadNonZSData()
{
  // read the non-zs data from one link from the current reading position

  UInt_t *start = fPayloadCurr;

  Int_t mcmcount = 0;
  Int_t mcmcountExp = fCurrStack == 2 ? 48 : 64;
  Int_t channelcount = 0;
  Int_t channelcountExp = 0;
  Int_t timebins;
  Int_t currentTimebin = 0;
  Int_t adcwc = 0;
  Int_t evno = -1;
  Int_t lastmcmpos = -1;
  Int_t lastrobpos = -1;

  if (fCurrNtimebins != fNtimebins) {
    if (fNtimebins > 0)
      LinkError(kNtimebinsChanged,
		"No. of timebins changed from %i to %i", fNtimebins, fCurrNtimebins);
    fNtimebins = fCurrNtimebins;
  }

  timebins = fNtimebins;

  while (*(fPayloadCurr) != fgkDataEndmarker &&
	 fPayloadCurr - fPayloadStart < fPayloadSize - 2) {

    // ----- Checking MCM Header -----
    AliDebug(2, Form("MCM header: 0x%08x", *fPayloadCurr));

    // ----- checking for proper readout order - ROB -----
    fCurrRobPos = ROB(*fPayloadCurr);
    if (GetROBReadoutPos(ROB(*fPayloadCurr) / 2) >= lastrobpos) {
      if (GetROBReadoutPos(ROB(*fPayloadCurr) / 2) > lastrobpos)
	lastmcmpos = -1;
      lastrobpos = GetROBReadoutPos(ROB(*fPayloadCurr) / 2);
    }
    else {
      ROBError(kPosUnexp, Form("#%i after #%i in readout order", GetROBReadoutPos(ROB(*fPayloadCurr) / 2), lastrobpos));
    }

    // ----- checking for proper readout order - MCM -----
    fCurrMcmPos = MCM(*fPayloadCurr);
    if (GetMCMReadoutPos(MCM(*fPayloadCurr)) > lastmcmpos) {
      lastmcmpos = GetMCMReadoutPos(MCM(*fPayloadCurr));
    }
    else {
      MCMError(kPosUnexp, Form("#%i after #%i in readout order", GetMCMReadoutPos(MCM(*fPayloadCurr)), lastmcmpos));
    }

    if (EvNo(*fPayloadCurr) != (evno & 0xfffff)) {
      if (evno == -1) {
	evno = EvNo(*fPayloadCurr);
      }
      else {
	MCMError(kEvCntMismatch, "%i <-> %i", evno, EvNo(*fPayloadCurr));
#ifdef TRD_RAW_DEBUG
	if (fCurrL0offset[fCurrHC/2] != 0)
	  LinkError(kEvCntMismatch, "offset for %i %i %i changed from %i to %i = %i - %i",
		    fCurrEquipmentId, fCurrSlot, fCurrLink/2, fCurrL0offset[fCurrHC/2],
		    EvNo(*fPayloadCurr) - fCurrL0Count[fCurrEquipmentId-kDDLOffset],
		    EvNo(*fPayloadCurr), fCurrL0Count[fCurrEquipmentId-kDDLOffset]);
	fCurrL0offset[fCurrHC/2] = EvNo(*fPayloadCurr) - fCurrL0Count[fCurrEquipmentId-kDDLOffset];
	evno = fCurrL0Count[fCurrEquipmentId-kDDLOffset] + fCurrL0offset[fCurrHC/2];
#endif
      }
    }

    channelcount = 0;
    channelcountExp = 21;
    int channelno = -1;

    Int_t adccoloff = AdcColOffset(*fPayloadCurr);
    Int_t padcoloff = PadColOffset(*fPayloadCurr);
    Int_t row = Row(*fPayloadCurr);
    fPayloadCurr++;

    if ((row > 11) && (fCurrStack == 2)) {
      MCMError(kInvalidPadRow, "Data in padrow > 11 for stack 2");
    }

    if (fErrorFlags & (kDiscardHC | kDiscardDDL))
      break;

    // ----- reading marked ADC channels -----
    while (channelcount < channelcountExp &&
	   *(fPayloadCurr) != fgkDataEndmarker) {
      if (channelno < 20)
	channelno++;

      currentTimebin = 0;

      adcwc = 0;
      Int_t nADCwords = (timebins + 2) / 3;
      AliDebug(2, Form("Now looking %i words", nADCwords));
      Int_t adccol = adccoloff - channelno;
      Int_t padcol = padcoloff - channelno;
      while ((adcwc < nADCwords) &&
	     (*(fPayloadCurr) != fgkDataEndmarker) &&
	     (fPayloadCurr - fPayloadStart < fPayloadSize)) {
	int check = 0x3 & *fPayloadCurr;
	if (channelno % 2 != 0)	{ // odd channel
	  if (check != 0x2 && channelno < 21) {
	    MCMError(kAdcCheckInvalid,
		     "%i for %2i. ADC word in odd channel %i",
		     check, adcwc+1, channelno);
	  }
	}
	else {			// even channel
	  if (check != 0x3 && channelno < 21) {
	    MCMError(kAdcCheckInvalid,
		     "%i for %2i. ADC word in even channel %i",
		     check, adcwc+1, channelno);
	  }
	}

	if ((fErrorFlags & kDiscardMCM) == 0) {
	  // filling the actual timebin data
	  int tb2 = 0x3ff & (*fPayloadCurr >> 22);
	  int tb1 = 0x3ff & (*fPayloadCurr >> 12);
	  int tb0 = 0x3ff & (*fPayloadCurr >>  2);
	  if (adcwc != 0 || fCurrNtimebins <= 30)
	    fAdcArray->SetDataByAdcCol(row, adccol, currentTimebin++, tb0);
	  else
	    tb0 = -1;
	  if (currentTimebin < fCurrNtimebins)
	    fAdcArray->SetDataByAdcCol(row, adccol, currentTimebin++, tb1);
	  if (currentTimebin < fCurrNtimebins)
	    fAdcArray->SetDataByAdcCol(row, adccol, currentTimebin++, tb2);
	}

	adcwc++;
	fPayloadCurr++;
      }

      if (adcwc != nADCwords)
	MCMError(kAdcDataAbort);

      // adding index
      if (padcol > 0 && padcol < 144) {
	fSignalIndex->AddIndexRC(row, padcol);
      }

      channelcount++;
    }

    if (channelcount != channelcountExp)
      MCMError(kAdcChannelsMiss);
    mcmcount++;
    // continue with next MCM
  }

  // check for missing MCMs (if header suppression is inactive)
  if (mcmcount != mcmcountExp) {
    LinkError(kMissMcmHeaders,
	      "%i not as expected: %i", mcmcount, mcmcountExp);
  }

  return (fPayloadCurr - start);
}

#ifdef TRD_RAW_CRC
UShort_t AliTRDrawStream::CalcLinkChecksum(UInt_t *data, Int_t size)
{
  // calculate the CRC for the data from this link
  // must not change the pointers to the data

  // always count two endmarkers
  Int_t nEndmarkers = 0;
  for (Int_t i = 0; i < size; i++) {
    if (data[size-1 - i] != fgkDataEndmarker)
      break;
    nEndmarkers++;
  }

  size = size - (nEndmarkers-2);

  boost::crc_optimal<16, 0x8005, 0, 0, false, false> checksumLink;

  checksumLink.reset();
  checksumLink.process_bytes(data, size*sizeof(UInt_t));
  return checksumLink();
}
#else
UShort_t AliTRDrawStream::CalcLinkChecksum(UInt_t * /* data */, Int_t /* size */)
{
  // checksum calculation relies on boost,
  // we return 0 if we cannot calculate it

  AliError("Checksum calculation relies on boost CRC implementation!");

  return 0;
}
#endif

Int_t AliTRDrawStream::SeekNextStack()
{
  // proceed in raw data stream till the next stack

  if (!fCurrStackEndmarkerAvail)
    return 0;

  UInt_t *start = fPayloadCurr;

  // read until data endmarkers
  while ((fPayloadCurr - fPayloadStart < fPayloadSize-1) &&
	 ((fPayloadCurr[0] != fgkStackEndmarker[0]) ||
	  (fPayloadCurr[1] != fgkStackEndmarker[1])))
    fPayloadCurr++;

  if ((fPayloadCurr - start) != 0)
    StackError(kUnknown, "skipped %i words to reach stack endmarker", fPayloadCurr - start);

  AliDebug(2, Form("stack endmarker: 0x%08x 0x%08x", fPayloadCurr[0], fPayloadCurr[1]));

  // goto next stack
  fPayloadCurr++;
  fPayloadCurr++;

  return (fPayloadCurr-start);
}

Int_t AliTRDrawStream::SeekNextLink()
{
  // proceed in raw data stream till the next link

  UInt_t *start = fPayloadCurr;

  // read until data endmarkers
  while (fPayloadCurr - fPayloadStart < fPayloadSize &&
	 ((fPayloadCurr[0] != fgkStackEndmarker[0]) ||
	  (fPayloadCurr[1] != fgkStackEndmarker[1])) &&
	 *fPayloadCurr != fgkDataEndmarker)
    fPayloadCurr++;

  // read all data endmarkers
  while (fPayloadCurr - fPayloadStart < fPayloadSize &&
	 *fPayloadCurr == fgkDataEndmarker)
    fPayloadCurr++;

  return (fPayloadCurr - start);
}


void AliTRDrawStream::EquipmentError(ErrorCode_t err, const char *const msg, ...)
{
  // register error according to error code on equipment level
  // and return the corresponding error message

  fLastError.fSector = fCurrEquipmentId - kDDLOffset;
  fLastError.fStack  = -1;
  fLastError.fLink   = -1;
  fLastError.fRob    = -1;
  fLastError.fMcm    = -1;
  fLastError.fError  = err;
  (this->*fStoreError)();

  va_list ap;
  if (fgErrorDebugLevel[err] > 10)
    AliDebug(fgErrorDebugLevel[err],
	     Form("Event %6i: Eq. %2d - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  else
    AliError(Form("Event %6i: Eq. %2d - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  fErrorFlags |= fgErrorBehav[err];
}


void AliTRDrawStream::StackError(ErrorCode_t err, const char *const msg, ...)
{
  // register error according to error code on stack level
  // and return the corresponding error message

  fLastError.fSector = fCurrEquipmentId - kDDLOffset;
  fLastError.fStack  = fCurrSlot;
  fLastError.fLink   = -1;
  fLastError.fRob    = -1;
  fLastError.fMcm    = -1;
  fLastError.fError  = err;
  (this->*fStoreError)();

  va_list ap;
  if (fgErrorDebugLevel[err] > 0)
    AliDebug(fgErrorDebugLevel[err],
	     Form("Event %6i: Eq. %2d S %i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  else
    AliError(Form("Event %6i: Eq. %2d S %i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  fErrorFlags |= fgErrorBehav[err];
}


void AliTRDrawStream::LinkError(ErrorCode_t err, const char *const msg, ...)
{
  // register error according to error code on link level
  // and return the corresponding error message

  fLastError.fSector = fCurrEquipmentId - kDDLOffset;
  fLastError.fStack  = fCurrSlot;
  fLastError.fLink   = fCurrLink;
  fLastError.fRob    = -1;
  fLastError.fMcm    = -1;
  fLastError.fError  = err;
  (this->*fStoreError)();

  va_list ap;
  if (fgErrorDebugLevel[err] > 0)
    AliDebug(fgErrorDebugLevel[err],
	     Form("Event %6i: Eq. %2d S %i l %2i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fCurrLink, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  else
    AliError(Form("Event %6i: Eq. %2d S %i l %2i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fCurrLink, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  fErrorFlags |= fgErrorBehav[err];
}


void AliTRDrawStream::ROBError(ErrorCode_t err, const char *const msg, ...)
{
  // register error according to error code on ROB level
  // and return the corresponding error message

  fLastError.fSector = fCurrEquipmentId - kDDLOffset;
  fLastError.fStack  = fCurrSlot;
  fLastError.fLink   = fCurrLink;
  fLastError.fRob    = fCurrRobPos;
  fLastError.fMcm    = -1;
  fLastError.fError  = err;
  (this->*fStoreError)();

  va_list ap;
  if (fgErrorDebugLevel[err] > 0)
    AliDebug(fgErrorDebugLevel[err],
	     Form("Event %6i: Eq. %2d S %i l %2i ROB %i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fCurrLink, fCurrRobPos, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  else
    AliError(Form("Event %6i: Eq. %2d S %i l %2i ROB %i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fCurrLink, fCurrRobPos, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  fErrorFlags |= fgErrorBehav[err];
}


void AliTRDrawStream::MCMError(ErrorCode_t err, const char *const msg, ...)
{
  // register error according to error code on MCM level
  // and return the corresponding error message

  fLastError.fSector = fCurrEquipmentId - kDDLOffset;
  fLastError.fStack  = fCurrSlot;
  fLastError.fLink   = fCurrLink;
  fLastError.fRob    = fCurrRobPos;
  fLastError.fMcm    = fCurrMcmPos;
  fLastError.fError  = err;
  (this->*fStoreError)();

  va_list ap;
  if (fgErrorDebugLevel[err] > 0)
    AliDebug(fgErrorDebugLevel[err],
	     Form("Event %6i: Eq. %2d S %i l %2i ROB %i MCM %2i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fCurrLink, fCurrRobPos, fCurrMcmPos, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  else
    AliError(Form("Event %6i: Eq. %2d S %i l %2i ROB %i MCM %2i - %s : %s",
		  fRawReader->GetEventIndex(), fCurrEquipmentId, fCurrSlot, fCurrLink, fCurrRobPos, fCurrMcmPos, fgkErrorMessages[err],
		  (va_start(ap, msg), vsprintf(fErrorBuffer, msg, ap), va_end(ap), fErrorBuffer) ));
  fErrorFlags |= fgErrorBehav[err];
}

const char* AliTRDrawStream::GetErrorMessage(ErrorCode_t errCode)
{
  // return the error message for the given error code

  if (errCode > 0 && errCode < kLastErrorCode)
    return fgkErrorMessages[errCode];
  else
    return "";
}

void AliTRDrawStream::AliTRDrawStats::ClearStats()
{
  // clear statistics (includes clearing sector-wise statistics)

  fBytesRead = 0;
  for (Int_t iSector = 0; iSector < 18; iSector++) {
    fStatsSector[iSector].ClearStats();
  }

}

void AliTRDrawStream::AliTRDrawStats::AliTRDrawStatsSector::ClearStats()
{
  // clear statistics (includes clearing HC-wise statistics)

  fBytes = 0;
  fBytesRead = 0;
  fNTracklets = 0;
  fNMCMs = 0;
  fNChannels = 0;

  for (Int_t iHC = 0; iHC < 60; iHC++) {
    fStatsHC[iHC].ClearStats();
  }
}

void AliTRDrawStream::AliTRDrawStats::AliTRDrawStatsSector::AliTRDrawStatsHC::ClearStats()
{
  // clear statistics

  fBytes = 0;
  fBytesRead = 0;
  fNTracklets = 0;
  fNMCMs = 0;
  fNChannels = 0;
}

void AliTRDrawStream::SetDumpMCM(Int_t det, Int_t rob, Int_t mcm, Bool_t dump)
{
  // mark MCM for dumping of raw data

  if (dump) {
    fDumpMCM[fNDumpMCMs++] = (det << 7) | (rob << 4) | mcm;
  }
  else {
    Int_t iMCM;
    for (iMCM = 0; iMCM < fNDumpMCMs; iMCM++) {
      if (fDumpMCM[iMCM] == ((det << 7) | (rob << 4) | mcm)) {
	fNDumpMCMs--;
	break;
      }
    }
    for ( ; iMCM < fNDumpMCMs; iMCM++) {
      fDumpMCM[iMCM] = fDumpMCM[iMCM+1];
    }
  }
}

Bool_t AliTRDrawStream::DumpingMCM(Int_t det, Int_t rob, Int_t mcm)  const
{
  // check if MCM data should be dumped

  for (Int_t iMCM = 0; iMCM < fNDumpMCMs; iMCM++) {
    if (fDumpMCM[iMCM] == ((det << 7) | (rob << 4) | mcm)) {
      return kTRUE;
    }
  }
  return kFALSE;
}

TString AliTRDrawStream::DumpRaw(TString title, const UInt_t *start, Int_t length, UInt_t endmarker)
{
  // dump raw data

  title += "\n";
  for (Int_t pos = 0; pos < length; pos += 4) {
    if ((start[pos+0] != endmarker) && pos+0 < length)
      if ((start[pos+1] != endmarker && pos+1 < length))
	if ((start[pos+2] != endmarker && pos+2 < length))
	  if ((start[pos+3] != endmarker && pos+3 < length))
	    title += Form("   0x%08x 0x%08x 0x%08x 0x%08x\n",
			  start[pos+0], start[pos+1], start[pos+2], start[pos+3]);
	  else {
	    title += Form("   0x%08x 0x%08x 0x%08x 0x%08x\n",
			  start[pos+0], start[pos+1], start[pos+2], start[pos+3]);
	    return title;
	  }
	else {
	  title += Form("   0x%08x 0x%08x 0x%08x\n",
			start[pos+0], start[pos+1], start[pos+2]);
	  return title;
	}
      else {
	title += Form("   0x%08x 0x%08x\n",
		      start[pos+0], start[pos+1]);
	return title;
      }
    else {
      title += Form("   0x%08x\n",
		    start[pos+0]);
      return title;
    }
  }
  return title;
}

TString AliTRDrawStream::DumpMcmHeader(TString title, UInt_t word)
{
  title += Form("0x%08x -> ROB: %i, MCM: %2i",
		word, ROB(word), MCM(word));
  return title;
}

TString AliTRDrawStream::DumpAdcMask(TString title, UInt_t word)
{
  title += Form("0x%08x -> #ch : %2i, 0x%06x (%2i ch)",
		word, GetNActiveChannels(word), GetActiveChannels(word), GetNActiveChannelsFromMask(word));
  return title;
}

AliTRDrawStream::AliTRDrawStreamError::AliTRDrawStreamError(Int_t error, Int_t sector, Int_t stack, Int_t link, Int_t rob, Int_t mcm) :
  fError(error),
  fSector(sector),
  fStack(stack),
  fLink(link),
  fRob(rob),
  fMcm(mcm)
{
  // ctor

}

void AliTRDrawStream::SortTracklets(TClonesArray *trklArray, TList &sortedTracklets, Int_t *indices)
{
  // sort tracklets for referencing from GTU tracks

  if (!trklArray)
    return;

  Int_t nTracklets = trklArray->GetEntriesFast();

  Int_t lastHC = -1;
  for (Int_t iTracklet = 0; iTracklet < nTracklets; iTracklet++) {
    AliTRDtrackletBase *trkl = (AliTRDtrackletBase*) ((*trklArray)[iTracklet]);
    Int_t hc = trkl->GetHCId();
    if ((hc < 0) || (hc >= 1080)) {
      AliErrorClass(Form("HC for tracklet: 0x%08x out of range: %i", trkl->GetTrackletWord(), trkl->GetHCId()));
      continue;
    }
    AliDebugClass(5, Form("hc: %4i : 0x%08x z: %2i", hc, trkl->GetTrackletWord(), trkl->GetZbin()));
    if (hc != lastHC) {
      AliDebugClass(2, Form("set tracklet index for HC %i to %i", hc, iTracklet));
      indices[hc] = iTracklet + 1;
      lastHC = hc;
    }
  }

  for (Int_t iDet = 0; iDet < 540; iDet++) {
    Int_t trklIndexA = indices[2*iDet + 0] - 1;
    Int_t trklIndexB = indices[2*iDet + 1] - 1;
    Int_t trklIndex  = sortedTracklets.GetEntries();
    AliTRDtrackletBase *trklA = trklIndexA > -1 ? (AliTRDtrackletBase*) ((*trklArray)[trklIndexA]) : 0x0;
    AliTRDtrackletBase *trklB = trklIndexB > -1 ? (AliTRDtrackletBase*) ((*trklArray)[trklIndexB]) : 0x0;
    AliTRDtrackletBase *trklNext = 0x0;
    while (trklA != 0x0 || trklB != 0x0) {
      AliDebugClass(5, Form("det %i - A: %i/%i -> %p, B: %i/%i -> %p",
		       iDet, trklIndexA, nTracklets, trklA, trklIndexB, nTracklets, trklB));
      if (trklA == 0x0) {
	trklNext = trklB;
	trklIndexB++;
	trklB = trklIndexB < nTracklets ? (AliTRDtrackletBase*) ((*trklArray)[trklIndexB]) : 0x0;
	if (trklB && trklB->GetHCId() != 2*iDet + 1)
	  trklB = 0x0;
      }
      else if (trklB == 0x0) {
	trklNext = trklA;
	trklIndexA++;
	trklA = trklIndexA < nTracklets ? (AliTRDtrackletBase*) ((*trklArray)[trklIndexA]) : 0x0;
	if (trklA && trklA->GetHCId() != 2*iDet)
	  trklA = 0x0;
      }
      else {
	if (trklA->GetZbin() <= trklB->GetZbin()) {
	  trklNext = trklA;
	  trklIndexA++;
	  trklA = trklIndexA < nTracklets ? (AliTRDtrackletBase*) ((*trklArray)[trklIndexA]) : 0x0;
	  if (trklA && trklA->GetHCId() != 2*iDet)
	    trklA = 0x0;
	}
	else {
	  trklNext = trklB;
	  trklIndexB++;
	  trklB = trklIndexB < nTracklets ? (AliTRDtrackletBase*) ((*trklArray)[trklIndexB]) : 0x0;
	  if (trklB && trklB->GetHCId() != 2*iDet + 1)
	    trklB = 0x0;
	}
      }
      if (trklNext) {
	sortedTracklets.Add(trklNext);

      }
    }

    // updating tracklet indices as in output
    if (sortedTracklets.GetEntries() != trklIndex) {
      indices[2*iDet + 0] = trklIndex;
      indices[2*iDet + 1] = sortedTracklets.GetEntries();
    } else {
      indices[2*iDet + 0] = indices[2*iDet + 1] = -1;
    }
  }
}

void AliTRDrawStream::AssignTracklets(AliESDTrdTrack *trdTrack, Int_t *trackletIndex, Int_t refIndex[6])
{
  UInt_t mask  = trdTrack->GetLayerMask();
  UInt_t stack = trdTrack->GetStack();

  for (Int_t iLayer = 0; iLayer < 6; iLayer++) {
    refIndex[iLayer] = -1;

    if (mask & (1 << iLayer)) {

      Int_t det = trdTrack->GetSector()*30 + stack*6 + iLayer;
      Int_t idx = trdTrack->GetTrackletIndex(iLayer);

      if ((det < 0) || (det > 539)) {
	AliErrorClass(Form("Invalid detector no. from track: %i", 2*det));
	continue;
      }
      if (trackletIndex[2*det] >= 0) {
	if ((trackletIndex[2*det] + idx > -1) &&
	    (trackletIndex[2*det] + idx < trackletIndex[2*det+1])) {
	  refIndex[iLayer] = trackletIndex[2*det] + idx;
	} else {
	  AliErrorClass(Form("Requested tracklet index %i out of range", idx));
	}
      } else {
	AliErrorClass(Form("Non-existing tracklets requested in det %i", det));
      }
    }
  }
}
 AliTRDrawStream.cxx:1
 AliTRDrawStream.cxx:2
 AliTRDrawStream.cxx:3
 AliTRDrawStream.cxx:4
 AliTRDrawStream.cxx:5
 AliTRDrawStream.cxx:6
 AliTRDrawStream.cxx:7
 AliTRDrawStream.cxx:8
 AliTRDrawStream.cxx:9
 AliTRDrawStream.cxx:10
 AliTRDrawStream.cxx:11
 AliTRDrawStream.cxx:12
 AliTRDrawStream.cxx:13
 AliTRDrawStream.cxx:14
 AliTRDrawStream.cxx:15
 AliTRDrawStream.cxx:16
 AliTRDrawStream.cxx:17
 AliTRDrawStream.cxx:18
 AliTRDrawStream.cxx:19
 AliTRDrawStream.cxx:20
 AliTRDrawStream.cxx:21
 AliTRDrawStream.cxx:22
 AliTRDrawStream.cxx:23
 AliTRDrawStream.cxx:24
 AliTRDrawStream.cxx:25
 AliTRDrawStream.cxx:26
 AliTRDrawStream.cxx:27
 AliTRDrawStream.cxx:28
 AliTRDrawStream.cxx:29
 AliTRDrawStream.cxx:30
 AliTRDrawStream.cxx:31
 AliTRDrawStream.cxx:32
 AliTRDrawStream.cxx:33
 AliTRDrawStream.cxx:34
 AliTRDrawStream.cxx:35
 AliTRDrawStream.cxx:36
 AliTRDrawStream.cxx:37
 AliTRDrawStream.cxx:38
 AliTRDrawStream.cxx:39
 AliTRDrawStream.cxx:40
 AliTRDrawStream.cxx:41
 AliTRDrawStream.cxx:42
 AliTRDrawStream.cxx:43
 AliTRDrawStream.cxx:44
 AliTRDrawStream.cxx:45
 AliTRDrawStream.cxx:46
 AliTRDrawStream.cxx:47
 AliTRDrawStream.cxx:48
 AliTRDrawStream.cxx:49
 AliTRDrawStream.cxx:50
 AliTRDrawStream.cxx:51
 AliTRDrawStream.cxx:52
 AliTRDrawStream.cxx:53
 AliTRDrawStream.cxx:54
 AliTRDrawStream.cxx:55
 AliTRDrawStream.cxx:56
 AliTRDrawStream.cxx:57
 AliTRDrawStream.cxx:58
 AliTRDrawStream.cxx:59
 AliTRDrawStream.cxx:60
 AliTRDrawStream.cxx:61
 AliTRDrawStream.cxx:62
 AliTRDrawStream.cxx:63
 AliTRDrawStream.cxx:64
 AliTRDrawStream.cxx:65
 AliTRDrawStream.cxx:66
 AliTRDrawStream.cxx:67
 AliTRDrawStream.cxx:68
 AliTRDrawStream.cxx:69
 AliTRDrawStream.cxx:70
 AliTRDrawStream.cxx:71
 AliTRDrawStream.cxx:72
 AliTRDrawStream.cxx:73
 AliTRDrawStream.cxx:74
 AliTRDrawStream.cxx:75
 AliTRDrawStream.cxx:76
 AliTRDrawStream.cxx:77
 AliTRDrawStream.cxx:78
 AliTRDrawStream.cxx:79
 AliTRDrawStream.cxx:80
 AliTRDrawStream.cxx:81
 AliTRDrawStream.cxx:82
 AliTRDrawStream.cxx:83
 AliTRDrawStream.cxx:84
 AliTRDrawStream.cxx:85
 AliTRDrawStream.cxx:86
 AliTRDrawStream.cxx:87
 AliTRDrawStream.cxx:88
 AliTRDrawStream.cxx:89
 AliTRDrawStream.cxx:90
 AliTRDrawStream.cxx:91
 AliTRDrawStream.cxx:92
 AliTRDrawStream.cxx:93
 AliTRDrawStream.cxx:94
 AliTRDrawStream.cxx:95
 AliTRDrawStream.cxx:96
 AliTRDrawStream.cxx:97
 AliTRDrawStream.cxx:98
 AliTRDrawStream.cxx:99
 AliTRDrawStream.cxx:100
 AliTRDrawStream.cxx:101
 AliTRDrawStream.cxx:102
 AliTRDrawStream.cxx:103
 AliTRDrawStream.cxx:104
 AliTRDrawStream.cxx:105
 AliTRDrawStream.cxx:106
 AliTRDrawStream.cxx:107
 AliTRDrawStream.cxx:108
 AliTRDrawStream.cxx:109
 AliTRDrawStream.cxx:110
 AliTRDrawStream.cxx:111
 AliTRDrawStream.cxx:112
 AliTRDrawStream.cxx:113
 AliTRDrawStream.cxx:114
 AliTRDrawStream.cxx:115
 AliTRDrawStream.cxx:116
 AliTRDrawStream.cxx:117
 AliTRDrawStream.cxx:118
 AliTRDrawStream.cxx:119
 AliTRDrawStream.cxx:120
 AliTRDrawStream.cxx:121
 AliTRDrawStream.cxx:122
 AliTRDrawStream.cxx:123
 AliTRDrawStream.cxx:124
 AliTRDrawStream.cxx:125
 AliTRDrawStream.cxx:126
 AliTRDrawStream.cxx:127
 AliTRDrawStream.cxx:128
 AliTRDrawStream.cxx:129
 AliTRDrawStream.cxx:130
 AliTRDrawStream.cxx:131
 AliTRDrawStream.cxx:132
 AliTRDrawStream.cxx:133
 AliTRDrawStream.cxx:134
 AliTRDrawStream.cxx:135
 AliTRDrawStream.cxx:136
 AliTRDrawStream.cxx:137
 AliTRDrawStream.cxx:138
 AliTRDrawStream.cxx:139
 AliTRDrawStream.cxx:140
 AliTRDrawStream.cxx:141
 AliTRDrawStream.cxx:142
 AliTRDrawStream.cxx:143
 AliTRDrawStream.cxx:144
 AliTRDrawStream.cxx:145
 AliTRDrawStream.cxx:146
 AliTRDrawStream.cxx:147
 AliTRDrawStream.cxx:148
 AliTRDrawStream.cxx:149
 AliTRDrawStream.cxx:150
 AliTRDrawStream.cxx:151
 AliTRDrawStream.cxx:152
 AliTRDrawStream.cxx:153
 AliTRDrawStream.cxx:154
 AliTRDrawStream.cxx:155
 AliTRDrawStream.cxx:156
 AliTRDrawStream.cxx:157
 AliTRDrawStream.cxx:158
 AliTRDrawStream.cxx:159
 AliTRDrawStream.cxx:160
 AliTRDrawStream.cxx:161
 AliTRDrawStream.cxx:162
 AliTRDrawStream.cxx:163
 AliTRDrawStream.cxx:164
 AliTRDrawStream.cxx:165
 AliTRDrawStream.cxx:166
 AliTRDrawStream.cxx:167
 AliTRDrawStream.cxx:168
 AliTRDrawStream.cxx:169
 AliTRDrawStream.cxx:170
 AliTRDrawStream.cxx:171
 AliTRDrawStream.cxx:172
 AliTRDrawStream.cxx:173
 AliTRDrawStream.cxx:174
 AliTRDrawStream.cxx:175
 AliTRDrawStream.cxx:176
 AliTRDrawStream.cxx:177
 AliTRDrawStream.cxx:178
 AliTRDrawStream.cxx:179
 AliTRDrawStream.cxx:180
 AliTRDrawStream.cxx:181
 AliTRDrawStream.cxx:182
 AliTRDrawStream.cxx:183
 AliTRDrawStream.cxx:184
 AliTRDrawStream.cxx:185
 AliTRDrawStream.cxx:186
 AliTRDrawStream.cxx:187
 AliTRDrawStream.cxx:188
 AliTRDrawStream.cxx:189
 AliTRDrawStream.cxx:190
 AliTRDrawStream.cxx:191
 AliTRDrawStream.cxx:192
 AliTRDrawStream.cxx:193
 AliTRDrawStream.cxx:194
 AliTRDrawStream.cxx:195
 AliTRDrawStream.cxx:196
 AliTRDrawStream.cxx:197
 AliTRDrawStream.cxx:198
 AliTRDrawStream.cxx:199
 AliTRDrawStream.cxx:200
 AliTRDrawStream.cxx:201
 AliTRDrawStream.cxx:202
 AliTRDrawStream.cxx:203
 AliTRDrawStream.cxx:204
 AliTRDrawStream.cxx:205
 AliTRDrawStream.cxx:206
 AliTRDrawStream.cxx:207
 AliTRDrawStream.cxx:208
 AliTRDrawStream.cxx:209
 AliTRDrawStream.cxx:210
 AliTRDrawStream.cxx:211
 AliTRDrawStream.cxx:212
 AliTRDrawStream.cxx:213
 AliTRDrawStream.cxx:214
 AliTRDrawStream.cxx:215
 AliTRDrawStream.cxx:216
 AliTRDrawStream.cxx:217
 AliTRDrawStream.cxx:218
 AliTRDrawStream.cxx:219
 AliTRDrawStream.cxx:220
 AliTRDrawStream.cxx:221
 AliTRDrawStream.cxx:222
 AliTRDrawStream.cxx:223
 AliTRDrawStream.cxx:224
 AliTRDrawStream.cxx:225
 AliTRDrawStream.cxx:226
 AliTRDrawStream.cxx:227
 AliTRDrawStream.cxx:228
 AliTRDrawStream.cxx:229
 AliTRDrawStream.cxx:230
 AliTRDrawStream.cxx:231
 AliTRDrawStream.cxx:232
 AliTRDrawStream.cxx:233
 AliTRDrawStream.cxx:234
 AliTRDrawStream.cxx:235
 AliTRDrawStream.cxx:236
 AliTRDrawStream.cxx:237
 AliTRDrawStream.cxx:238
 AliTRDrawStream.cxx:239
 AliTRDrawStream.cxx:240
 AliTRDrawStream.cxx:241
 AliTRDrawStream.cxx:242
 AliTRDrawStream.cxx:243
 AliTRDrawStream.cxx:244
 AliTRDrawStream.cxx:245
 AliTRDrawStream.cxx:246
 AliTRDrawStream.cxx:247
 AliTRDrawStream.cxx:248
 AliTRDrawStream.cxx:249
 AliTRDrawStream.cxx:250
 AliTRDrawStream.cxx:251
 AliTRDrawStream.cxx:252
 AliTRDrawStream.cxx:253
 AliTRDrawStream.cxx:254
 AliTRDrawStream.cxx:255
 AliTRDrawStream.cxx:256
 AliTRDrawStream.cxx:257
 AliTRDrawStream.cxx:258
 AliTRDrawStream.cxx:259
 AliTRDrawStream.cxx:260
 AliTRDrawStream.cxx:261
 AliTRDrawStream.cxx:262
 AliTRDrawStream.cxx:263
 AliTRDrawStream.cxx:264
 AliTRDrawStream.cxx:265
 AliTRDrawStream.cxx:266
 AliTRDrawStream.cxx:267
 AliTRDrawStream.cxx:268
 AliTRDrawStream.cxx:269
 AliTRDrawStream.cxx:270
 AliTRDrawStream.cxx:271
 AliTRDrawStream.cxx:272
 AliTRDrawStream.cxx:273
 AliTRDrawStream.cxx:274
 AliTRDrawStream.cxx:275
 AliTRDrawStream.cxx:276
 AliTRDrawStream.cxx:277
 AliTRDrawStream.cxx:278
 AliTRDrawStream.cxx:279
 AliTRDrawStream.cxx:280
 AliTRDrawStream.cxx:281
 AliTRDrawStream.cxx:282
 AliTRDrawStream.cxx:283
 AliTRDrawStream.cxx:284
 AliTRDrawStream.cxx:285
 AliTRDrawStream.cxx:286
 AliTRDrawStream.cxx:287
 AliTRDrawStream.cxx:288
 AliTRDrawStream.cxx:289
 AliTRDrawStream.cxx:290
 AliTRDrawStream.cxx:291
 AliTRDrawStream.cxx:292
 AliTRDrawStream.cxx:293
 AliTRDrawStream.cxx:294
 AliTRDrawStream.cxx:295
 AliTRDrawStream.cxx:296
 AliTRDrawStream.cxx:297
 AliTRDrawStream.cxx:298
 AliTRDrawStream.cxx:299
 AliTRDrawStream.cxx:300
 AliTRDrawStream.cxx:301
 AliTRDrawStream.cxx:302
 AliTRDrawStream.cxx:303
 AliTRDrawStream.cxx:304
 AliTRDrawStream.cxx:305
 AliTRDrawStream.cxx:306
 AliTRDrawStream.cxx:307
 AliTRDrawStream.cxx:308
 AliTRDrawStream.cxx:309
 AliTRDrawStream.cxx:310
 AliTRDrawStream.cxx:311
 AliTRDrawStream.cxx:312
 AliTRDrawStream.cxx:313
 AliTRDrawStream.cxx:314
 AliTRDrawStream.cxx:315
 AliTRDrawStream.cxx:316
 AliTRDrawStream.cxx:317
 AliTRDrawStream.cxx:318
 AliTRDrawStream.cxx:319
 AliTRDrawStream.cxx:320
 AliTRDrawStream.cxx:321
 AliTRDrawStream.cxx:322
 AliTRDrawStream.cxx:323
 AliTRDrawStream.cxx:324
 AliTRDrawStream.cxx:325
 AliTRDrawStream.cxx:326
 AliTRDrawStream.cxx:327
 AliTRDrawStream.cxx:328
 AliTRDrawStream.cxx:329
 AliTRDrawStream.cxx:330
 AliTRDrawStream.cxx:331
 AliTRDrawStream.cxx:332
 AliTRDrawStream.cxx:333
 AliTRDrawStream.cxx:334
 AliTRDrawStream.cxx:335
 AliTRDrawStream.cxx:336
 AliTRDrawStream.cxx:337
 AliTRDrawStream.cxx:338
 AliTRDrawStream.cxx:339
 AliTRDrawStream.cxx:340
 AliTRDrawStream.cxx:341
 AliTRDrawStream.cxx:342
 AliTRDrawStream.cxx:343
 AliTRDrawStream.cxx:344
 AliTRDrawStream.cxx:345
 AliTRDrawStream.cxx:346
 AliTRDrawStream.cxx:347
 AliTRDrawStream.cxx:348
 AliTRDrawStream.cxx:349
 AliTRDrawStream.cxx:350
 AliTRDrawStream.cxx:351
 AliTRDrawStream.cxx:352
 AliTRDrawStream.cxx:353
 AliTRDrawStream.cxx:354
 AliTRDrawStream.cxx:355
 AliTRDrawStream.cxx:356
 AliTRDrawStream.cxx:357
 AliTRDrawStream.cxx:358
 AliTRDrawStream.cxx:359
 AliTRDrawStream.cxx:360
 AliTRDrawStream.cxx:361
 AliTRDrawStream.cxx:362
 AliTRDrawStream.cxx:363
 AliTRDrawStream.cxx:364
 AliTRDrawStream.cxx:365
 AliTRDrawStream.cxx:366
 AliTRDrawStream.cxx:367
 AliTRDrawStream.cxx:368
 AliTRDrawStream.cxx:369
 AliTRDrawStream.cxx:370
 AliTRDrawStream.cxx:371
 AliTRDrawStream.cxx:372
 AliTRDrawStream.cxx:373
 AliTRDrawStream.cxx:374
 AliTRDrawStream.cxx:375
 AliTRDrawStream.cxx:376
 AliTRDrawStream.cxx:377
 AliTRDrawStream.cxx:378
 AliTRDrawStream.cxx:379
 AliTRDrawStream.cxx:380
 AliTRDrawStream.cxx:381
 AliTRDrawStream.cxx:382
 AliTRDrawStream.cxx:383
 AliTRDrawStream.cxx:384
 AliTRDrawStream.cxx:385
 AliTRDrawStream.cxx:386
 AliTRDrawStream.cxx:387
 AliTRDrawStream.cxx:388
 AliTRDrawStream.cxx:389
 AliTRDrawStream.cxx:390
 AliTRDrawStream.cxx:391
 AliTRDrawStream.cxx:392
 AliTRDrawStream.cxx:393
 AliTRDrawStream.cxx:394
 AliTRDrawStream.cxx:395
 AliTRDrawStream.cxx:396
 AliTRDrawStream.cxx:397
 AliTRDrawStream.cxx:398
 AliTRDrawStream.cxx:399
 AliTRDrawStream.cxx:400
 AliTRDrawStream.cxx:401
 AliTRDrawStream.cxx:402
 AliTRDrawStream.cxx:403
 AliTRDrawStream.cxx:404
 AliTRDrawStream.cxx:405
 AliTRDrawStream.cxx:406
 AliTRDrawStream.cxx:407
 AliTRDrawStream.cxx:408
 AliTRDrawStream.cxx:409
 AliTRDrawStream.cxx:410
 AliTRDrawStream.cxx:411
 AliTRDrawStream.cxx:412
 AliTRDrawStream.cxx:413
 AliTRDrawStream.cxx:414
 AliTRDrawStream.cxx:415
 AliTRDrawStream.cxx:416
 AliTRDrawStream.cxx:417
 AliTRDrawStream.cxx:418
 AliTRDrawStream.cxx:419
 AliTRDrawStream.cxx:420
 AliTRDrawStream.cxx:421
 AliTRDrawStream.cxx:422
 AliTRDrawStream.cxx:423
 AliTRDrawStream.cxx:424
 AliTRDrawStream.cxx:425
 AliTRDrawStream.cxx:426
 AliTRDrawStream.cxx:427
 AliTRDrawStream.cxx:428
 AliTRDrawStream.cxx:429
 AliTRDrawStream.cxx:430
 AliTRDrawStream.cxx:431
 AliTRDrawStream.cxx:432
 AliTRDrawStream.cxx:433
 AliTRDrawStream.cxx:434
 AliTRDrawStream.cxx:435
 AliTRDrawStream.cxx:436
 AliTRDrawStream.cxx:437
 AliTRDrawStream.cxx:438
 AliTRDrawStream.cxx:439
 AliTRDrawStream.cxx:440
 AliTRDrawStream.cxx:441
 AliTRDrawStream.cxx:442
 AliTRDrawStream.cxx:443
 AliTRDrawStream.cxx:444
 AliTRDrawStream.cxx:445
 AliTRDrawStream.cxx:446
 AliTRDrawStream.cxx:447
 AliTRDrawStream.cxx:448
 AliTRDrawStream.cxx:449
 AliTRDrawStream.cxx:450
 AliTRDrawStream.cxx:451
 AliTRDrawStream.cxx:452
 AliTRDrawStream.cxx:453
 AliTRDrawStream.cxx:454
 AliTRDrawStream.cxx:455
 AliTRDrawStream.cxx:456
 AliTRDrawStream.cxx:457
 AliTRDrawStream.cxx:458
 AliTRDrawStream.cxx:459
 AliTRDrawStream.cxx:460
 AliTRDrawStream.cxx:461
 AliTRDrawStream.cxx:462
 AliTRDrawStream.cxx:463
 AliTRDrawStream.cxx:464
 AliTRDrawStream.cxx:465
 AliTRDrawStream.cxx:466
 AliTRDrawStream.cxx:467
 AliTRDrawStream.cxx:468
 AliTRDrawStream.cxx:469
 AliTRDrawStream.cxx:470
 AliTRDrawStream.cxx:471
 AliTRDrawStream.cxx:472
 AliTRDrawStream.cxx:473
 AliTRDrawStream.cxx:474
 AliTRDrawStream.cxx:475
 AliTRDrawStream.cxx:476
 AliTRDrawStream.cxx:477
 AliTRDrawStream.cxx:478
 AliTRDrawStream.cxx:479
 AliTRDrawStream.cxx:480
 AliTRDrawStream.cxx:481
 AliTRDrawStream.cxx:482
 AliTRDrawStream.cxx:483
 AliTRDrawStream.cxx:484
 AliTRDrawStream.cxx:485
 AliTRDrawStream.cxx:486
 AliTRDrawStream.cxx:487
 AliTRDrawStream.cxx:488
 AliTRDrawStream.cxx:489
 AliTRDrawStream.cxx:490
 AliTRDrawStream.cxx:491
 AliTRDrawStream.cxx:492
 AliTRDrawStream.cxx:493
 AliTRDrawStream.cxx:494
 AliTRDrawStream.cxx:495
 AliTRDrawStream.cxx:496
 AliTRDrawStream.cxx:497
 AliTRDrawStream.cxx:498
 AliTRDrawStream.cxx:499
 AliTRDrawStream.cxx:500
 AliTRDrawStream.cxx:501
 AliTRDrawStream.cxx:502
 AliTRDrawStream.cxx:503
 AliTRDrawStream.cxx:504
 AliTRDrawStream.cxx:505
 AliTRDrawStream.cxx:506
 AliTRDrawStream.cxx:507
 AliTRDrawStream.cxx:508
 AliTRDrawStream.cxx:509
 AliTRDrawStream.cxx:510
 AliTRDrawStream.cxx:511
 AliTRDrawStream.cxx:512
 AliTRDrawStream.cxx:513
 AliTRDrawStream.cxx:514
 AliTRDrawStream.cxx:515
 AliTRDrawStream.cxx:516
 AliTRDrawStream.cxx:517
 AliTRDrawStream.cxx:518
 AliTRDrawStream.cxx:519
 AliTRDrawStream.cxx:520
 AliTRDrawStream.cxx:521
 AliTRDrawStream.cxx:522
 AliTRDrawStream.cxx:523
 AliTRDrawStream.cxx:524
 AliTRDrawStream.cxx:525
 AliTRDrawStream.cxx:526
 AliTRDrawStream.cxx:527
 AliTRDrawStream.cxx:528
 AliTRDrawStream.cxx:529
 AliTRDrawStream.cxx:530
 AliTRDrawStream.cxx:531
 AliTRDrawStream.cxx:532
 AliTRDrawStream.cxx:533
 AliTRDrawStream.cxx:534
 AliTRDrawStream.cxx:535
 AliTRDrawStream.cxx:536
 AliTRDrawStream.cxx:537
 AliTRDrawStream.cxx:538
 AliTRDrawStream.cxx:539
 AliTRDrawStream.cxx:540
 AliTRDrawStream.cxx:541
 AliTRDrawStream.cxx:542
 AliTRDrawStream.cxx:543
 AliTRDrawStream.cxx:544
 AliTRDrawStream.cxx:545
 AliTRDrawStream.cxx:546
 AliTRDrawStream.cxx:547
 AliTRDrawStream.cxx:548
 AliTRDrawStream.cxx:549
 AliTRDrawStream.cxx:550
 AliTRDrawStream.cxx:551
 AliTRDrawStream.cxx:552
 AliTRDrawStream.cxx:553
 AliTRDrawStream.cxx:554
 AliTRDrawStream.cxx:555
 AliTRDrawStream.cxx:556
 AliTRDrawStream.cxx:557
 AliTRDrawStream.cxx:558
 AliTRDrawStream.cxx:559
 AliTRDrawStream.cxx:560
 AliTRDrawStream.cxx:561
 AliTRDrawStream.cxx:562
 AliTRDrawStream.cxx:563
 AliTRDrawStream.cxx:564
 AliTRDrawStream.cxx:565
 AliTRDrawStream.cxx:566
 AliTRDrawStream.cxx:567
 AliTRDrawStream.cxx:568
 AliTRDrawStream.cxx:569
 AliTRDrawStream.cxx:570
 AliTRDrawStream.cxx:571
 AliTRDrawStream.cxx:572
 AliTRDrawStream.cxx:573
 AliTRDrawStream.cxx:574
 AliTRDrawStream.cxx:575
 AliTRDrawStream.cxx:576
 AliTRDrawStream.cxx:577
 AliTRDrawStream.cxx:578
 AliTRDrawStream.cxx:579
 AliTRDrawStream.cxx:580
 AliTRDrawStream.cxx:581
 AliTRDrawStream.cxx:582
 AliTRDrawStream.cxx:583
 AliTRDrawStream.cxx:584
 AliTRDrawStream.cxx:585
 AliTRDrawStream.cxx:586
 AliTRDrawStream.cxx:587
 AliTRDrawStream.cxx:588
 AliTRDrawStream.cxx:589
 AliTRDrawStream.cxx:590
 AliTRDrawStream.cxx:591
 AliTRDrawStream.cxx:592
 AliTRDrawStream.cxx:593
 AliTRDrawStream.cxx:594
 AliTRDrawStream.cxx:595
 AliTRDrawStream.cxx:596
 AliTRDrawStream.cxx:597
 AliTRDrawStream.cxx:598
 AliTRDrawStream.cxx:599
 AliTRDrawStream.cxx:600
 AliTRDrawStream.cxx:601
 AliTRDrawStream.cxx:602
 AliTRDrawStream.cxx:603
 AliTRDrawStream.cxx:604
 AliTRDrawStream.cxx:605
 AliTRDrawStream.cxx:606
 AliTRDrawStream.cxx:607
 AliTRDrawStream.cxx:608
 AliTRDrawStream.cxx:609
 AliTRDrawStream.cxx:610
 AliTRDrawStream.cxx:611
 AliTRDrawStream.cxx:612
 AliTRDrawStream.cxx:613
 AliTRDrawStream.cxx:614
 AliTRDrawStream.cxx:615
 AliTRDrawStream.cxx:616
 AliTRDrawStream.cxx:617
 AliTRDrawStream.cxx:618
 AliTRDrawStream.cxx:619
 AliTRDrawStream.cxx:620
 AliTRDrawStream.cxx:621
 AliTRDrawStream.cxx:622
 AliTRDrawStream.cxx:623
 AliTRDrawStream.cxx:624
 AliTRDrawStream.cxx:625
 AliTRDrawStream.cxx:626
 AliTRDrawStream.cxx:627
 AliTRDrawStream.cxx:628
 AliTRDrawStream.cxx:629
 AliTRDrawStream.cxx:630
 AliTRDrawStream.cxx:631
 AliTRDrawStream.cxx:632
 AliTRDrawStream.cxx:633
 AliTRDrawStream.cxx:634
 AliTRDrawStream.cxx:635
 AliTRDrawStream.cxx:636
 AliTRDrawStream.cxx:637
 AliTRDrawStream.cxx:638
 AliTRDrawStream.cxx:639
 AliTRDrawStream.cxx:640
 AliTRDrawStream.cxx:641
 AliTRDrawStream.cxx:642
 AliTRDrawStream.cxx:643
 AliTRDrawStream.cxx:644
 AliTRDrawStream.cxx:645
 AliTRDrawStream.cxx:646
 AliTRDrawStream.cxx:647
 AliTRDrawStream.cxx:648
 AliTRDrawStream.cxx:649
 AliTRDrawStream.cxx:650
 AliTRDrawStream.cxx:651
 AliTRDrawStream.cxx:652
 AliTRDrawStream.cxx:653
 AliTRDrawStream.cxx:654
 AliTRDrawStream.cxx:655
 AliTRDrawStream.cxx:656
 AliTRDrawStream.cxx:657
 AliTRDrawStream.cxx:658
 AliTRDrawStream.cxx:659
 AliTRDrawStream.cxx:660
 AliTRDrawStream.cxx:661
 AliTRDrawStream.cxx:662
 AliTRDrawStream.cxx:663
 AliTRDrawStream.cxx:664
 AliTRDrawStream.cxx:665
 AliTRDrawStream.cxx:666
 AliTRDrawStream.cxx:667
 AliTRDrawStream.cxx:668
 AliTRDrawStream.cxx:669
 AliTRDrawStream.cxx:670
 AliTRDrawStream.cxx:671
 AliTRDrawStream.cxx:672
 AliTRDrawStream.cxx:673
 AliTRDrawStream.cxx:674
 AliTRDrawStream.cxx:675
 AliTRDrawStream.cxx:676
 AliTRDrawStream.cxx:677
 AliTRDrawStream.cxx:678
 AliTRDrawStream.cxx:679
 AliTRDrawStream.cxx:680
 AliTRDrawStream.cxx:681
 AliTRDrawStream.cxx:682
 AliTRDrawStream.cxx:683
 AliTRDrawStream.cxx:684
 AliTRDrawStream.cxx:685
 AliTRDrawStream.cxx:686
 AliTRDrawStream.cxx:687
 AliTRDrawStream.cxx:688
 AliTRDrawStream.cxx:689
 AliTRDrawStream.cxx:690
 AliTRDrawStream.cxx:691
 AliTRDrawStream.cxx:692
 AliTRDrawStream.cxx:693
 AliTRDrawStream.cxx:694
 AliTRDrawStream.cxx:695
 AliTRDrawStream.cxx:696
 AliTRDrawStream.cxx:697
 AliTRDrawStream.cxx:698
 AliTRDrawStream.cxx:699
 AliTRDrawStream.cxx:700
 AliTRDrawStream.cxx:701
 AliTRDrawStream.cxx:702
 AliTRDrawStream.cxx:703
 AliTRDrawStream.cxx:704
 AliTRDrawStream.cxx:705
 AliTRDrawStream.cxx:706
 AliTRDrawStream.cxx:707
 AliTRDrawStream.cxx:708
 AliTRDrawStream.cxx:709
 AliTRDrawStream.cxx:710
 AliTRDrawStream.cxx:711
 AliTRDrawStream.cxx:712
 AliTRDrawStream.cxx:713
 AliTRDrawStream.cxx:714
 AliTRDrawStream.cxx:715
 AliTRDrawStream.cxx:716
 AliTRDrawStream.cxx:717
 AliTRDrawStream.cxx:718
 AliTRDrawStream.cxx:719
 AliTRDrawStream.cxx:720
 AliTRDrawStream.cxx:721
 AliTRDrawStream.cxx:722
 AliTRDrawStream.cxx:723
 AliTRDrawStream.cxx:724
 AliTRDrawStream.cxx:725
 AliTRDrawStream.cxx:726
 AliTRDrawStream.cxx:727
 AliTRDrawStream.cxx:728
 AliTRDrawStream.cxx:729
 AliTRDrawStream.cxx:730
 AliTRDrawStream.cxx:731
 AliTRDrawStream.cxx:732
 AliTRDrawStream.cxx:733
 AliTRDrawStream.cxx:734
 AliTRDrawStream.cxx:735
 AliTRDrawStream.cxx:736
 AliTRDrawStream.cxx:737
 AliTRDrawStream.cxx:738
 AliTRDrawStream.cxx:739
 AliTRDrawStream.cxx:740
 AliTRDrawStream.cxx:741
 AliTRDrawStream.cxx:742
 AliTRDrawStream.cxx:743
 AliTRDrawStream.cxx:744
 AliTRDrawStream.cxx:745
 AliTRDrawStream.cxx:746
 AliTRDrawStream.cxx:747
 AliTRDrawStream.cxx:748
 AliTRDrawStream.cxx:749
 AliTRDrawStream.cxx:750
 AliTRDrawStream.cxx:751
 AliTRDrawStream.cxx:752
 AliTRDrawStream.cxx:753
 AliTRDrawStream.cxx:754
 AliTRDrawStream.cxx:755
 AliTRDrawStream.cxx:756
 AliTRDrawStream.cxx:757
 AliTRDrawStream.cxx:758
 AliTRDrawStream.cxx:759
 AliTRDrawStream.cxx:760
 AliTRDrawStream.cxx:761
 AliTRDrawStream.cxx:762
 AliTRDrawStream.cxx:763
 AliTRDrawStream.cxx:764
 AliTRDrawStream.cxx:765
 AliTRDrawStream.cxx:766
 AliTRDrawStream.cxx:767
 AliTRDrawStream.cxx:768
 AliTRDrawStream.cxx:769
 AliTRDrawStream.cxx:770
 AliTRDrawStream.cxx:771
 AliTRDrawStream.cxx:772
 AliTRDrawStream.cxx:773
 AliTRDrawStream.cxx:774
 AliTRDrawStream.cxx:775
 AliTRDrawStream.cxx:776
 AliTRDrawStream.cxx:777
 AliTRDrawStream.cxx:778
 AliTRDrawStream.cxx:779
 AliTRDrawStream.cxx:780
 AliTRDrawStream.cxx:781
 AliTRDrawStream.cxx:782
 AliTRDrawStream.cxx:783
 AliTRDrawStream.cxx:784
 AliTRDrawStream.cxx:785
 AliTRDrawStream.cxx:786
 AliTRDrawStream.cxx:787
 AliTRDrawStream.cxx:788
 AliTRDrawStream.cxx:789
 AliTRDrawStream.cxx:790
 AliTRDrawStream.cxx:791
 AliTRDrawStream.cxx:792
 AliTRDrawStream.cxx:793
 AliTRDrawStream.cxx:794
 AliTRDrawStream.cxx:795
 AliTRDrawStream.cxx:796
 AliTRDrawStream.cxx:797
 AliTRDrawStream.cxx:798
 AliTRDrawStream.cxx:799
 AliTRDrawStream.cxx:800
 AliTRDrawStream.cxx:801
 AliTRDrawStream.cxx:802
 AliTRDrawStream.cxx:803
 AliTRDrawStream.cxx:804
 AliTRDrawStream.cxx:805
 AliTRDrawStream.cxx:806
 AliTRDrawStream.cxx:807
 AliTRDrawStream.cxx:808
 AliTRDrawStream.cxx:809
 AliTRDrawStream.cxx:810
 AliTRDrawStream.cxx:811
 AliTRDrawStream.cxx:812
 AliTRDrawStream.cxx:813
 AliTRDrawStream.cxx:814
 AliTRDrawStream.cxx:815
 AliTRDrawStream.cxx:816
 AliTRDrawStream.cxx:817
 AliTRDrawStream.cxx:818
 AliTRDrawStream.cxx:819
 AliTRDrawStream.cxx:820
 AliTRDrawStream.cxx:821
 AliTRDrawStream.cxx:822
 AliTRDrawStream.cxx:823
 AliTRDrawStream.cxx:824
 AliTRDrawStream.cxx:825
 AliTRDrawStream.cxx:826
 AliTRDrawStream.cxx:827
 AliTRDrawStream.cxx:828
 AliTRDrawStream.cxx:829
 AliTRDrawStream.cxx:830
 AliTRDrawStream.cxx:831
 AliTRDrawStream.cxx:832
 AliTRDrawStream.cxx:833
 AliTRDrawStream.cxx:834
 AliTRDrawStream.cxx:835
 AliTRDrawStream.cxx:836
 AliTRDrawStream.cxx:837
 AliTRDrawStream.cxx:838
 AliTRDrawStream.cxx:839
 AliTRDrawStream.cxx:840
 AliTRDrawStream.cxx:841
 AliTRDrawStream.cxx:842
 AliTRDrawStream.cxx:843
 AliTRDrawStream.cxx:844
 AliTRDrawStream.cxx:845
 AliTRDrawStream.cxx:846
 AliTRDrawStream.cxx:847
 AliTRDrawStream.cxx:848
 AliTRDrawStream.cxx:849
 AliTRDrawStream.cxx:850
 AliTRDrawStream.cxx:851
 AliTRDrawStream.cxx:852
 AliTRDrawStream.cxx:853
 AliTRDrawStream.cxx:854
 AliTRDrawStream.cxx:855
 AliTRDrawStream.cxx:856
 AliTRDrawStream.cxx:857
 AliTRDrawStream.cxx:858
 AliTRDrawStream.cxx:859
 AliTRDrawStream.cxx:860
 AliTRDrawStream.cxx:861
 AliTRDrawStream.cxx:862
 AliTRDrawStream.cxx:863
 AliTRDrawStream.cxx:864
 AliTRDrawStream.cxx:865
 AliTRDrawStream.cxx:866
 AliTRDrawStream.cxx:867
 AliTRDrawStream.cxx:868
 AliTRDrawStream.cxx:869
 AliTRDrawStream.cxx:870
 AliTRDrawStream.cxx:871
 AliTRDrawStream.cxx:872
 AliTRDrawStream.cxx:873
 AliTRDrawStream.cxx:874
 AliTRDrawStream.cxx:875
 AliTRDrawStream.cxx:876
 AliTRDrawStream.cxx:877
 AliTRDrawStream.cxx:878
 AliTRDrawStream.cxx:879
 AliTRDrawStream.cxx:880
 AliTRDrawStream.cxx:881
 AliTRDrawStream.cxx:882
 AliTRDrawStream.cxx:883
 AliTRDrawStream.cxx:884
 AliTRDrawStream.cxx:885
 AliTRDrawStream.cxx:886
 AliTRDrawStream.cxx:887
 AliTRDrawStream.cxx:888
 AliTRDrawStream.cxx:889
 AliTRDrawStream.cxx:890
 AliTRDrawStream.cxx:891
 AliTRDrawStream.cxx:892
 AliTRDrawStream.cxx:893
 AliTRDrawStream.cxx:894
 AliTRDrawStream.cxx:895
 AliTRDrawStream.cxx:896
 AliTRDrawStream.cxx:897
 AliTRDrawStream.cxx:898
 AliTRDrawStream.cxx:899
 AliTRDrawStream.cxx:900
 AliTRDrawStream.cxx:901
 AliTRDrawStream.cxx:902
 AliTRDrawStream.cxx:903
 AliTRDrawStream.cxx:904
 AliTRDrawStream.cxx:905
 AliTRDrawStream.cxx:906
 AliTRDrawStream.cxx:907
 AliTRDrawStream.cxx:908
 AliTRDrawStream.cxx:909
 AliTRDrawStream.cxx:910
 AliTRDrawStream.cxx:911
 AliTRDrawStream.cxx:912
 AliTRDrawStream.cxx:913
 AliTRDrawStream.cxx:914
 AliTRDrawStream.cxx:915
 AliTRDrawStream.cxx:916
 AliTRDrawStream.cxx:917
 AliTRDrawStream.cxx:918
 AliTRDrawStream.cxx:919
 AliTRDrawStream.cxx:920
 AliTRDrawStream.cxx:921
 AliTRDrawStream.cxx:922
 AliTRDrawStream.cxx:923
 AliTRDrawStream.cxx:924
 AliTRDrawStream.cxx:925
 AliTRDrawStream.cxx:926
 AliTRDrawStream.cxx:927
 AliTRDrawStream.cxx:928
 AliTRDrawStream.cxx:929
 AliTRDrawStream.cxx:930
 AliTRDrawStream.cxx:931
 AliTRDrawStream.cxx:932
 AliTRDrawStream.cxx:933
 AliTRDrawStream.cxx:934
 AliTRDrawStream.cxx:935
 AliTRDrawStream.cxx:936
 AliTRDrawStream.cxx:937
 AliTRDrawStream.cxx:938
 AliTRDrawStream.cxx:939
 AliTRDrawStream.cxx:940
 AliTRDrawStream.cxx:941
 AliTRDrawStream.cxx:942
 AliTRDrawStream.cxx:943
 AliTRDrawStream.cxx:944
 AliTRDrawStream.cxx:945
 AliTRDrawStream.cxx:946
 AliTRDrawStream.cxx:947
 AliTRDrawStream.cxx:948
 AliTRDrawStream.cxx:949
 AliTRDrawStream.cxx:950
 AliTRDrawStream.cxx:951
 AliTRDrawStream.cxx:952
 AliTRDrawStream.cxx:953
 AliTRDrawStream.cxx:954
 AliTRDrawStream.cxx:955
 AliTRDrawStream.cxx:956
 AliTRDrawStream.cxx:957
 AliTRDrawStream.cxx:958
 AliTRDrawStream.cxx:959
 AliTRDrawStream.cxx:960
 AliTRDrawStream.cxx:961
 AliTRDrawStream.cxx:962
 AliTRDrawStream.cxx:963
 AliTRDrawStream.cxx:964
 AliTRDrawStream.cxx:965
 AliTRDrawStream.cxx:966
 AliTRDrawStream.cxx:967
 AliTRDrawStream.cxx:968
 AliTRDrawStream.cxx:969
 AliTRDrawStream.cxx:970
 AliTRDrawStream.cxx:971
 AliTRDrawStream.cxx:972
 AliTRDrawStream.cxx:973
 AliTRDrawStream.cxx:974
 AliTRDrawStream.cxx:975
 AliTRDrawStream.cxx:976
 AliTRDrawStream.cxx:977
 AliTRDrawStream.cxx:978
 AliTRDrawStream.cxx:979
 AliTRDrawStream.cxx:980
 AliTRDrawStream.cxx:981
 AliTRDrawStream.cxx:982
 AliTRDrawStream.cxx:983
 AliTRDrawStream.cxx:984
 AliTRDrawStream.cxx:985
 AliTRDrawStream.cxx:986
 AliTRDrawStream.cxx:987
 AliTRDrawStream.cxx:988
 AliTRDrawStream.cxx:989
 AliTRDrawStream.cxx:990
 AliTRDrawStream.cxx:991
 AliTRDrawStream.cxx:992
 AliTRDrawStream.cxx:993
 AliTRDrawStream.cxx:994
 AliTRDrawStream.cxx:995
 AliTRDrawStream.cxx:996
 AliTRDrawStream.cxx:997
 AliTRDrawStream.cxx:998
 AliTRDrawStream.cxx:999
 AliTRDrawStream.cxx:1000
 AliTRDrawStream.cxx:1001
 AliTRDrawStream.cxx:1002
 AliTRDrawStream.cxx:1003
 AliTRDrawStream.cxx:1004
 AliTRDrawStream.cxx:1005
 AliTRDrawStream.cxx:1006
 AliTRDrawStream.cxx:1007
 AliTRDrawStream.cxx:1008
 AliTRDrawStream.cxx:1009
 AliTRDrawStream.cxx:1010
 AliTRDrawStream.cxx:1011
 AliTRDrawStream.cxx:1012
 AliTRDrawStream.cxx:1013
 AliTRDrawStream.cxx:1014
 AliTRDrawStream.cxx:1015
 AliTRDrawStream.cxx:1016
 AliTRDrawStream.cxx:1017
 AliTRDrawStream.cxx:1018
 AliTRDrawStream.cxx:1019
 AliTRDrawStream.cxx:1020
 AliTRDrawStream.cxx:1021
 AliTRDrawStream.cxx:1022
 AliTRDrawStream.cxx:1023
 AliTRDrawStream.cxx:1024
 AliTRDrawStream.cxx:1025
 AliTRDrawStream.cxx:1026
 AliTRDrawStream.cxx:1027
 AliTRDrawStream.cxx:1028
 AliTRDrawStream.cxx:1029
 AliTRDrawStream.cxx:1030
 AliTRDrawStream.cxx:1031
 AliTRDrawStream.cxx:1032
 AliTRDrawStream.cxx:1033
 AliTRDrawStream.cxx:1034
 AliTRDrawStream.cxx:1035
 AliTRDrawStream.cxx:1036
 AliTRDrawStream.cxx:1037
 AliTRDrawStream.cxx:1038
 AliTRDrawStream.cxx:1039
 AliTRDrawStream.cxx:1040
 AliTRDrawStream.cxx:1041
 AliTRDrawStream.cxx:1042
 AliTRDrawStream.cxx:1043
 AliTRDrawStream.cxx:1044
 AliTRDrawStream.cxx:1045
 AliTRDrawStream.cxx:1046
 AliTRDrawStream.cxx:1047
 AliTRDrawStream.cxx:1048
 AliTRDrawStream.cxx:1049
 AliTRDrawStream.cxx:1050
 AliTRDrawStream.cxx:1051
 AliTRDrawStream.cxx:1052
 AliTRDrawStream.cxx:1053
 AliTRDrawStream.cxx:1054
 AliTRDrawStream.cxx:1055
 AliTRDrawStream.cxx:1056
 AliTRDrawStream.cxx:1057
 AliTRDrawStream.cxx:1058
 AliTRDrawStream.cxx:1059
 AliTRDrawStream.cxx:1060
 AliTRDrawStream.cxx:1061
 AliTRDrawStream.cxx:1062
 AliTRDrawStream.cxx:1063
 AliTRDrawStream.cxx:1064
 AliTRDrawStream.cxx:1065
 AliTRDrawStream.cxx:1066
 AliTRDrawStream.cxx:1067
 AliTRDrawStream.cxx:1068
 AliTRDrawStream.cxx:1069
 AliTRDrawStream.cxx:1070
 AliTRDrawStream.cxx:1071
 AliTRDrawStream.cxx:1072
 AliTRDrawStream.cxx:1073
 AliTRDrawStream.cxx:1074
 AliTRDrawStream.cxx:1075
 AliTRDrawStream.cxx:1076
 AliTRDrawStream.cxx:1077
 AliTRDrawStream.cxx:1078
 AliTRDrawStream.cxx:1079
 AliTRDrawStream.cxx:1080
 AliTRDrawStream.cxx:1081
 AliTRDrawStream.cxx:1082
 AliTRDrawStream.cxx:1083
 AliTRDrawStream.cxx:1084
 AliTRDrawStream.cxx:1085
 AliTRDrawStream.cxx:1086
 AliTRDrawStream.cxx:1087
 AliTRDrawStream.cxx:1088
 AliTRDrawStream.cxx:1089
 AliTRDrawStream.cxx:1090
 AliTRDrawStream.cxx:1091
 AliTRDrawStream.cxx:1092
 AliTRDrawStream.cxx:1093
 AliTRDrawStream.cxx:1094
 AliTRDrawStream.cxx:1095
 AliTRDrawStream.cxx:1096
 AliTRDrawStream.cxx:1097
 AliTRDrawStream.cxx:1098
 AliTRDrawStream.cxx:1099
 AliTRDrawStream.cxx:1100
 AliTRDrawStream.cxx:1101
 AliTRDrawStream.cxx:1102
 AliTRDrawStream.cxx:1103
 AliTRDrawStream.cxx:1104
 AliTRDrawStream.cxx:1105
 AliTRDrawStream.cxx:1106
 AliTRDrawStream.cxx:1107
 AliTRDrawStream.cxx:1108
 AliTRDrawStream.cxx:1109
 AliTRDrawStream.cxx:1110
 AliTRDrawStream.cxx:1111
 AliTRDrawStream.cxx:1112
 AliTRDrawStream.cxx:1113
 AliTRDrawStream.cxx:1114
 AliTRDrawStream.cxx:1115
 AliTRDrawStream.cxx:1116
 AliTRDrawStream.cxx:1117
 AliTRDrawStream.cxx:1118
 AliTRDrawStream.cxx:1119
 AliTRDrawStream.cxx:1120
 AliTRDrawStream.cxx:1121
 AliTRDrawStream.cxx:1122
 AliTRDrawStream.cxx:1123
 AliTRDrawStream.cxx:1124
 AliTRDrawStream.cxx:1125
 AliTRDrawStream.cxx:1126
 AliTRDrawStream.cxx:1127
 AliTRDrawStream.cxx:1128
 AliTRDrawStream.cxx:1129
 AliTRDrawStream.cxx:1130
 AliTRDrawStream.cxx:1131
 AliTRDrawStream.cxx:1132
 AliTRDrawStream.cxx:1133
 AliTRDrawStream.cxx:1134
 AliTRDrawStream.cxx:1135
 AliTRDrawStream.cxx:1136
 AliTRDrawStream.cxx:1137
 AliTRDrawStream.cxx:1138
 AliTRDrawStream.cxx:1139
 AliTRDrawStream.cxx:1140
 AliTRDrawStream.cxx:1141
 AliTRDrawStream.cxx:1142
 AliTRDrawStream.cxx:1143
 AliTRDrawStream.cxx:1144
 AliTRDrawStream.cxx:1145
 AliTRDrawStream.cxx:1146
 AliTRDrawStream.cxx:1147
 AliTRDrawStream.cxx:1148
 AliTRDrawStream.cxx:1149
 AliTRDrawStream.cxx:1150
 AliTRDrawStream.cxx:1151
 AliTRDrawStream.cxx:1152
 AliTRDrawStream.cxx:1153
 AliTRDrawStream.cxx:1154
 AliTRDrawStream.cxx:1155
 AliTRDrawStream.cxx:1156
 AliTRDrawStream.cxx:1157
 AliTRDrawStream.cxx:1158
 AliTRDrawStream.cxx:1159
 AliTRDrawStream.cxx:1160
 AliTRDrawStream.cxx:1161
 AliTRDrawStream.cxx:1162
 AliTRDrawStream.cxx:1163
 AliTRDrawStream.cxx:1164
 AliTRDrawStream.cxx:1165
 AliTRDrawStream.cxx:1166
 AliTRDrawStream.cxx:1167
 AliTRDrawStream.cxx:1168
 AliTRDrawStream.cxx:1169
 AliTRDrawStream.cxx:1170
 AliTRDrawStream.cxx:1171
 AliTRDrawStream.cxx:1172
 AliTRDrawStream.cxx:1173
 AliTRDrawStream.cxx:1174
 AliTRDrawStream.cxx:1175
 AliTRDrawStream.cxx:1176
 AliTRDrawStream.cxx:1177
 AliTRDrawStream.cxx:1178
 AliTRDrawStream.cxx:1179
 AliTRDrawStream.cxx:1180
 AliTRDrawStream.cxx:1181
 AliTRDrawStream.cxx:1182
 AliTRDrawStream.cxx:1183
 AliTRDrawStream.cxx:1184
 AliTRDrawStream.cxx:1185
 AliTRDrawStream.cxx:1186
 AliTRDrawStream.cxx:1187
 AliTRDrawStream.cxx:1188
 AliTRDrawStream.cxx:1189
 AliTRDrawStream.cxx:1190
 AliTRDrawStream.cxx:1191
 AliTRDrawStream.cxx:1192
 AliTRDrawStream.cxx:1193
 AliTRDrawStream.cxx:1194
 AliTRDrawStream.cxx:1195
 AliTRDrawStream.cxx:1196
 AliTRDrawStream.cxx:1197
 AliTRDrawStream.cxx:1198
 AliTRDrawStream.cxx:1199
 AliTRDrawStream.cxx:1200
 AliTRDrawStream.cxx:1201
 AliTRDrawStream.cxx:1202
 AliTRDrawStream.cxx:1203
 AliTRDrawStream.cxx:1204
 AliTRDrawStream.cxx:1205
 AliTRDrawStream.cxx:1206
 AliTRDrawStream.cxx:1207
 AliTRDrawStream.cxx:1208
 AliTRDrawStream.cxx:1209
 AliTRDrawStream.cxx:1210
 AliTRDrawStream.cxx:1211
 AliTRDrawStream.cxx:1212
 AliTRDrawStream.cxx:1213
 AliTRDrawStream.cxx:1214
 AliTRDrawStream.cxx:1215
 AliTRDrawStream.cxx:1216
 AliTRDrawStream.cxx:1217
 AliTRDrawStream.cxx:1218
 AliTRDrawStream.cxx:1219
 AliTRDrawStream.cxx:1220
 AliTRDrawStream.cxx:1221
 AliTRDrawStream.cxx:1222
 AliTRDrawStream.cxx:1223
 AliTRDrawStream.cxx:1224
 AliTRDrawStream.cxx:1225
 AliTRDrawStream.cxx:1226
 AliTRDrawStream.cxx:1227
 AliTRDrawStream.cxx:1228
 AliTRDrawStream.cxx:1229
 AliTRDrawStream.cxx:1230
 AliTRDrawStream.cxx:1231
 AliTRDrawStream.cxx:1232
 AliTRDrawStream.cxx:1233
 AliTRDrawStream.cxx:1234
 AliTRDrawStream.cxx:1235
 AliTRDrawStream.cxx:1236
 AliTRDrawStream.cxx:1237
 AliTRDrawStream.cxx:1238
 AliTRDrawStream.cxx:1239
 AliTRDrawStream.cxx:1240
 AliTRDrawStream.cxx:1241
 AliTRDrawStream.cxx:1242
 AliTRDrawStream.cxx:1243
 AliTRDrawStream.cxx:1244
 AliTRDrawStream.cxx:1245
 AliTRDrawStream.cxx:1246
 AliTRDrawStream.cxx:1247
 AliTRDrawStream.cxx:1248
 AliTRDrawStream.cxx:1249
 AliTRDrawStream.cxx:1250
 AliTRDrawStream.cxx:1251
 AliTRDrawStream.cxx:1252
 AliTRDrawStream.cxx:1253
 AliTRDrawStream.cxx:1254
 AliTRDrawStream.cxx:1255
 AliTRDrawStream.cxx:1256
 AliTRDrawStream.cxx:1257
 AliTRDrawStream.cxx:1258
 AliTRDrawStream.cxx:1259
 AliTRDrawStream.cxx:1260
 AliTRDrawStream.cxx:1261
 AliTRDrawStream.cxx:1262
 AliTRDrawStream.cxx:1263
 AliTRDrawStream.cxx:1264
 AliTRDrawStream.cxx:1265
 AliTRDrawStream.cxx:1266
 AliTRDrawStream.cxx:1267
 AliTRDrawStream.cxx:1268
 AliTRDrawStream.cxx:1269
 AliTRDrawStream.cxx:1270
 AliTRDrawStream.cxx:1271
 AliTRDrawStream.cxx:1272
 AliTRDrawStream.cxx:1273
 AliTRDrawStream.cxx:1274
 AliTRDrawStream.cxx:1275
 AliTRDrawStream.cxx:1276
 AliTRDrawStream.cxx:1277
 AliTRDrawStream.cxx:1278
 AliTRDrawStream.cxx:1279
 AliTRDrawStream.cxx:1280
 AliTRDrawStream.cxx:1281
 AliTRDrawStream.cxx:1282
 AliTRDrawStream.cxx:1283
 AliTRDrawStream.cxx:1284
 AliTRDrawStream.cxx:1285
 AliTRDrawStream.cxx:1286
 AliTRDrawStream.cxx:1287
 AliTRDrawStream.cxx:1288
 AliTRDrawStream.cxx:1289
 AliTRDrawStream.cxx:1290
 AliTRDrawStream.cxx:1291
 AliTRDrawStream.cxx:1292
 AliTRDrawStream.cxx:1293
 AliTRDrawStream.cxx:1294
 AliTRDrawStream.cxx:1295
 AliTRDrawStream.cxx:1296
 AliTRDrawStream.cxx:1297
 AliTRDrawStream.cxx:1298
 AliTRDrawStream.cxx:1299
 AliTRDrawStream.cxx:1300
 AliTRDrawStream.cxx:1301
 AliTRDrawStream.cxx:1302
 AliTRDrawStream.cxx:1303
 AliTRDrawStream.cxx:1304
 AliTRDrawStream.cxx:1305
 AliTRDrawStream.cxx:1306
 AliTRDrawStream.cxx:1307
 AliTRDrawStream.cxx:1308
 AliTRDrawStream.cxx:1309
 AliTRDrawStream.cxx:1310
 AliTRDrawStream.cxx:1311
 AliTRDrawStream.cxx:1312
 AliTRDrawStream.cxx:1313
 AliTRDrawStream.cxx:1314
 AliTRDrawStream.cxx:1315
 AliTRDrawStream.cxx:1316
 AliTRDrawStream.cxx:1317
 AliTRDrawStream.cxx:1318
 AliTRDrawStream.cxx:1319
 AliTRDrawStream.cxx:1320
 AliTRDrawStream.cxx:1321
 AliTRDrawStream.cxx:1322
 AliTRDrawStream.cxx:1323
 AliTRDrawStream.cxx:1324
 AliTRDrawStream.cxx:1325
 AliTRDrawStream.cxx:1326
 AliTRDrawStream.cxx:1327
 AliTRDrawStream.cxx:1328
 AliTRDrawStream.cxx:1329
 AliTRDrawStream.cxx:1330
 AliTRDrawStream.cxx:1331
 AliTRDrawStream.cxx:1332
 AliTRDrawStream.cxx:1333
 AliTRDrawStream.cxx:1334
 AliTRDrawStream.cxx:1335
 AliTRDrawStream.cxx:1336
 AliTRDrawStream.cxx:1337
 AliTRDrawStream.cxx:1338
 AliTRDrawStream.cxx:1339
 AliTRDrawStream.cxx:1340
 AliTRDrawStream.cxx:1341
 AliTRDrawStream.cxx:1342
 AliTRDrawStream.cxx:1343
 AliTRDrawStream.cxx:1344
 AliTRDrawStream.cxx:1345
 AliTRDrawStream.cxx:1346
 AliTRDrawStream.cxx:1347
 AliTRDrawStream.cxx:1348
 AliTRDrawStream.cxx:1349
 AliTRDrawStream.cxx:1350
 AliTRDrawStream.cxx:1351
 AliTRDrawStream.cxx:1352
 AliTRDrawStream.cxx:1353
 AliTRDrawStream.cxx:1354
 AliTRDrawStream.cxx:1355
 AliTRDrawStream.cxx:1356
 AliTRDrawStream.cxx:1357
 AliTRDrawStream.cxx:1358
 AliTRDrawStream.cxx:1359
 AliTRDrawStream.cxx:1360
 AliTRDrawStream.cxx:1361
 AliTRDrawStream.cxx:1362
 AliTRDrawStream.cxx:1363
 AliTRDrawStream.cxx:1364
 AliTRDrawStream.cxx:1365
 AliTRDrawStream.cxx:1366
 AliTRDrawStream.cxx:1367
 AliTRDrawStream.cxx:1368
 AliTRDrawStream.cxx:1369
 AliTRDrawStream.cxx:1370
 AliTRDrawStream.cxx:1371
 AliTRDrawStream.cxx:1372
 AliTRDrawStream.cxx:1373
 AliTRDrawStream.cxx:1374
 AliTRDrawStream.cxx:1375
 AliTRDrawStream.cxx:1376
 AliTRDrawStream.cxx:1377
 AliTRDrawStream.cxx:1378
 AliTRDrawStream.cxx:1379
 AliTRDrawStream.cxx:1380
 AliTRDrawStream.cxx:1381
 AliTRDrawStream.cxx:1382
 AliTRDrawStream.cxx:1383
 AliTRDrawStream.cxx:1384
 AliTRDrawStream.cxx:1385
 AliTRDrawStream.cxx:1386
 AliTRDrawStream.cxx:1387
 AliTRDrawStream.cxx:1388
 AliTRDrawStream.cxx:1389
 AliTRDrawStream.cxx:1390
 AliTRDrawStream.cxx:1391
 AliTRDrawStream.cxx:1392
 AliTRDrawStream.cxx:1393
 AliTRDrawStream.cxx:1394
 AliTRDrawStream.cxx:1395
 AliTRDrawStream.cxx:1396
 AliTRDrawStream.cxx:1397
 AliTRDrawStream.cxx:1398
 AliTRDrawStream.cxx:1399
 AliTRDrawStream.cxx:1400
 AliTRDrawStream.cxx:1401
 AliTRDrawStream.cxx:1402
 AliTRDrawStream.cxx:1403
 AliTRDrawStream.cxx:1404
 AliTRDrawStream.cxx:1405
 AliTRDrawStream.cxx:1406
 AliTRDrawStream.cxx:1407
 AliTRDrawStream.cxx:1408
 AliTRDrawStream.cxx:1409
 AliTRDrawStream.cxx:1410
 AliTRDrawStream.cxx:1411
 AliTRDrawStream.cxx:1412
 AliTRDrawStream.cxx:1413
 AliTRDrawStream.cxx:1414
 AliTRDrawStream.cxx:1415
 AliTRDrawStream.cxx:1416
 AliTRDrawStream.cxx:1417
 AliTRDrawStream.cxx:1418
 AliTRDrawStream.cxx:1419
 AliTRDrawStream.cxx:1420
 AliTRDrawStream.cxx:1421
 AliTRDrawStream.cxx:1422
 AliTRDrawStream.cxx:1423
 AliTRDrawStream.cxx:1424
 AliTRDrawStream.cxx:1425
 AliTRDrawStream.cxx:1426
 AliTRDrawStream.cxx:1427
 AliTRDrawStream.cxx:1428
 AliTRDrawStream.cxx:1429
 AliTRDrawStream.cxx:1430
 AliTRDrawStream.cxx:1431
 AliTRDrawStream.cxx:1432
 AliTRDrawStream.cxx:1433
 AliTRDrawStream.cxx:1434
 AliTRDrawStream.cxx:1435
 AliTRDrawStream.cxx:1436
 AliTRDrawStream.cxx:1437
 AliTRDrawStream.cxx:1438
 AliTRDrawStream.cxx:1439
 AliTRDrawStream.cxx:1440
 AliTRDrawStream.cxx:1441
 AliTRDrawStream.cxx:1442
 AliTRDrawStream.cxx:1443
 AliTRDrawStream.cxx:1444
 AliTRDrawStream.cxx:1445
 AliTRDrawStream.cxx:1446
 AliTRDrawStream.cxx:1447
 AliTRDrawStream.cxx:1448
 AliTRDrawStream.cxx:1449
 AliTRDrawStream.cxx:1450
 AliTRDrawStream.cxx:1451
 AliTRDrawStream.cxx:1452
 AliTRDrawStream.cxx:1453
 AliTRDrawStream.cxx:1454
 AliTRDrawStream.cxx:1455
 AliTRDrawStream.cxx:1456
 AliTRDrawStream.cxx:1457
 AliTRDrawStream.cxx:1458
 AliTRDrawStream.cxx:1459
 AliTRDrawStream.cxx:1460
 AliTRDrawStream.cxx:1461
 AliTRDrawStream.cxx:1462
 AliTRDrawStream.cxx:1463
 AliTRDrawStream.cxx:1464
 AliTRDrawStream.cxx:1465
 AliTRDrawStream.cxx:1466
 AliTRDrawStream.cxx:1467
 AliTRDrawStream.cxx:1468
 AliTRDrawStream.cxx:1469
 AliTRDrawStream.cxx:1470
 AliTRDrawStream.cxx:1471
 AliTRDrawStream.cxx:1472
 AliTRDrawStream.cxx:1473
 AliTRDrawStream.cxx:1474
 AliTRDrawStream.cxx:1475
 AliTRDrawStream.cxx:1476
 AliTRDrawStream.cxx:1477
 AliTRDrawStream.cxx:1478
 AliTRDrawStream.cxx:1479
 AliTRDrawStream.cxx:1480
 AliTRDrawStream.cxx:1481
 AliTRDrawStream.cxx:1482
 AliTRDrawStream.cxx:1483
 AliTRDrawStream.cxx:1484
 AliTRDrawStream.cxx:1485
 AliTRDrawStream.cxx:1486
 AliTRDrawStream.cxx:1487
 AliTRDrawStream.cxx:1488
 AliTRDrawStream.cxx:1489
 AliTRDrawStream.cxx:1490
 AliTRDrawStream.cxx:1491
 AliTRDrawStream.cxx:1492
 AliTRDrawStream.cxx:1493
 AliTRDrawStream.cxx:1494
 AliTRDrawStream.cxx:1495
 AliTRDrawStream.cxx:1496
 AliTRDrawStream.cxx:1497
 AliTRDrawStream.cxx:1498
 AliTRDrawStream.cxx:1499
 AliTRDrawStream.cxx:1500
 AliTRDrawStream.cxx:1501
 AliTRDrawStream.cxx:1502
 AliTRDrawStream.cxx:1503
 AliTRDrawStream.cxx:1504
 AliTRDrawStream.cxx:1505
 AliTRDrawStream.cxx:1506
 AliTRDrawStream.cxx:1507
 AliTRDrawStream.cxx:1508
 AliTRDrawStream.cxx:1509
 AliTRDrawStream.cxx:1510
 AliTRDrawStream.cxx:1511
 AliTRDrawStream.cxx:1512
 AliTRDrawStream.cxx:1513
 AliTRDrawStream.cxx:1514
 AliTRDrawStream.cxx:1515
 AliTRDrawStream.cxx:1516
 AliTRDrawStream.cxx:1517
 AliTRDrawStream.cxx:1518
 AliTRDrawStream.cxx:1519
 AliTRDrawStream.cxx:1520
 AliTRDrawStream.cxx:1521
 AliTRDrawStream.cxx:1522
 AliTRDrawStream.cxx:1523
 AliTRDrawStream.cxx:1524
 AliTRDrawStream.cxx:1525
 AliTRDrawStream.cxx:1526
 AliTRDrawStream.cxx:1527
 AliTRDrawStream.cxx:1528
 AliTRDrawStream.cxx:1529
 AliTRDrawStream.cxx:1530
 AliTRDrawStream.cxx:1531
 AliTRDrawStream.cxx:1532
 AliTRDrawStream.cxx:1533
 AliTRDrawStream.cxx:1534
 AliTRDrawStream.cxx:1535
 AliTRDrawStream.cxx:1536
 AliTRDrawStream.cxx:1537
 AliTRDrawStream.cxx:1538
 AliTRDrawStream.cxx:1539
 AliTRDrawStream.cxx:1540
 AliTRDrawStream.cxx:1541
 AliTRDrawStream.cxx:1542
 AliTRDrawStream.cxx:1543
 AliTRDrawStream.cxx:1544
 AliTRDrawStream.cxx:1545
 AliTRDrawStream.cxx:1546
 AliTRDrawStream.cxx:1547
 AliTRDrawStream.cxx:1548
 AliTRDrawStream.cxx:1549
 AliTRDrawStream.cxx:1550
 AliTRDrawStream.cxx:1551
 AliTRDrawStream.cxx:1552
 AliTRDrawStream.cxx:1553
 AliTRDrawStream.cxx:1554
 AliTRDrawStream.cxx:1555
 AliTRDrawStream.cxx:1556
 AliTRDrawStream.cxx:1557
 AliTRDrawStream.cxx:1558
 AliTRDrawStream.cxx:1559
 AliTRDrawStream.cxx:1560
 AliTRDrawStream.cxx:1561
 AliTRDrawStream.cxx:1562
 AliTRDrawStream.cxx:1563
 AliTRDrawStream.cxx:1564
 AliTRDrawStream.cxx:1565
 AliTRDrawStream.cxx:1566
 AliTRDrawStream.cxx:1567
 AliTRDrawStream.cxx:1568
 AliTRDrawStream.cxx:1569
 AliTRDrawStream.cxx:1570
 AliTRDrawStream.cxx:1571
 AliTRDrawStream.cxx:1572
 AliTRDrawStream.cxx:1573
 AliTRDrawStream.cxx:1574
 AliTRDrawStream.cxx:1575
 AliTRDrawStream.cxx:1576
 AliTRDrawStream.cxx:1577
 AliTRDrawStream.cxx:1578
 AliTRDrawStream.cxx:1579
 AliTRDrawStream.cxx:1580
 AliTRDrawStream.cxx:1581
 AliTRDrawStream.cxx:1582
 AliTRDrawStream.cxx:1583
 AliTRDrawStream.cxx:1584
 AliTRDrawStream.cxx:1585
 AliTRDrawStream.cxx:1586
 AliTRDrawStream.cxx:1587
 AliTRDrawStream.cxx:1588
 AliTRDrawStream.cxx:1589
 AliTRDrawStream.cxx:1590
 AliTRDrawStream.cxx:1591
 AliTRDrawStream.cxx:1592
 AliTRDrawStream.cxx:1593
 AliTRDrawStream.cxx:1594
 AliTRDrawStream.cxx:1595
 AliTRDrawStream.cxx:1596
 AliTRDrawStream.cxx:1597
 AliTRDrawStream.cxx:1598
 AliTRDrawStream.cxx:1599
 AliTRDrawStream.cxx:1600
 AliTRDrawStream.cxx:1601
 AliTRDrawStream.cxx:1602
 AliTRDrawStream.cxx:1603
 AliTRDrawStream.cxx:1604
 AliTRDrawStream.cxx:1605
 AliTRDrawStream.cxx:1606
 AliTRDrawStream.cxx:1607
 AliTRDrawStream.cxx:1608
 AliTRDrawStream.cxx:1609
 AliTRDrawStream.cxx:1610
 AliTRDrawStream.cxx:1611
 AliTRDrawStream.cxx:1612
 AliTRDrawStream.cxx:1613
 AliTRDrawStream.cxx:1614
 AliTRDrawStream.cxx:1615
 AliTRDrawStream.cxx:1616
 AliTRDrawStream.cxx:1617
 AliTRDrawStream.cxx:1618
 AliTRDrawStream.cxx:1619
 AliTRDrawStream.cxx:1620
 AliTRDrawStream.cxx:1621
 AliTRDrawStream.cxx:1622
 AliTRDrawStream.cxx:1623
 AliTRDrawStream.cxx:1624
 AliTRDrawStream.cxx:1625
 AliTRDrawStream.cxx:1626
 AliTRDrawStream.cxx:1627
 AliTRDrawStream.cxx:1628
 AliTRDrawStream.cxx:1629
 AliTRDrawStream.cxx:1630
 AliTRDrawStream.cxx:1631
 AliTRDrawStream.cxx:1632
 AliTRDrawStream.cxx:1633
 AliTRDrawStream.cxx:1634
 AliTRDrawStream.cxx:1635
 AliTRDrawStream.cxx:1636
 AliTRDrawStream.cxx:1637
 AliTRDrawStream.cxx:1638
 AliTRDrawStream.cxx:1639
 AliTRDrawStream.cxx:1640
 AliTRDrawStream.cxx:1641
 AliTRDrawStream.cxx:1642
 AliTRDrawStream.cxx:1643
 AliTRDrawStream.cxx:1644
 AliTRDrawStream.cxx:1645
 AliTRDrawStream.cxx:1646
 AliTRDrawStream.cxx:1647
 AliTRDrawStream.cxx:1648
 AliTRDrawStream.cxx:1649
 AliTRDrawStream.cxx:1650
 AliTRDrawStream.cxx:1651
 AliTRDrawStream.cxx:1652
 AliTRDrawStream.cxx:1653
 AliTRDrawStream.cxx:1654
 AliTRDrawStream.cxx:1655
 AliTRDrawStream.cxx:1656
 AliTRDrawStream.cxx:1657
 AliTRDrawStream.cxx:1658
 AliTRDrawStream.cxx:1659
 AliTRDrawStream.cxx:1660
 AliTRDrawStream.cxx:1661
 AliTRDrawStream.cxx:1662
 AliTRDrawStream.cxx:1663
 AliTRDrawStream.cxx:1664
 AliTRDrawStream.cxx:1665
 AliTRDrawStream.cxx:1666
 AliTRDrawStream.cxx:1667
 AliTRDrawStream.cxx:1668
 AliTRDrawStream.cxx:1669
 AliTRDrawStream.cxx:1670
 AliTRDrawStream.cxx:1671
 AliTRDrawStream.cxx:1672
 AliTRDrawStream.cxx:1673
 AliTRDrawStream.cxx:1674
 AliTRDrawStream.cxx:1675
 AliTRDrawStream.cxx:1676
 AliTRDrawStream.cxx:1677
 AliTRDrawStream.cxx:1678
 AliTRDrawStream.cxx:1679
 AliTRDrawStream.cxx:1680
 AliTRDrawStream.cxx:1681
 AliTRDrawStream.cxx:1682
 AliTRDrawStream.cxx:1683
 AliTRDrawStream.cxx:1684
 AliTRDrawStream.cxx:1685
 AliTRDrawStream.cxx:1686
 AliTRDrawStream.cxx:1687
 AliTRDrawStream.cxx:1688
 AliTRDrawStream.cxx:1689
 AliTRDrawStream.cxx:1690
 AliTRDrawStream.cxx:1691
 AliTRDrawStream.cxx:1692
 AliTRDrawStream.cxx:1693
 AliTRDrawStream.cxx:1694
 AliTRDrawStream.cxx:1695
 AliTRDrawStream.cxx:1696
 AliTRDrawStream.cxx:1697
 AliTRDrawStream.cxx:1698
 AliTRDrawStream.cxx:1699
 AliTRDrawStream.cxx:1700
 AliTRDrawStream.cxx:1701
 AliTRDrawStream.cxx:1702
 AliTRDrawStream.cxx:1703
 AliTRDrawStream.cxx:1704
 AliTRDrawStream.cxx:1705
 AliTRDrawStream.cxx:1706
 AliTRDrawStream.cxx:1707
 AliTRDrawStream.cxx:1708
 AliTRDrawStream.cxx:1709
 AliTRDrawStream.cxx:1710
 AliTRDrawStream.cxx:1711
 AliTRDrawStream.cxx:1712
 AliTRDrawStream.cxx:1713
 AliTRDrawStream.cxx:1714
 AliTRDrawStream.cxx:1715
 AliTRDrawStream.cxx:1716
 AliTRDrawStream.cxx:1717
 AliTRDrawStream.cxx:1718
 AliTRDrawStream.cxx:1719
 AliTRDrawStream.cxx:1720
 AliTRDrawStream.cxx:1721
 AliTRDrawStream.cxx:1722
 AliTRDrawStream.cxx:1723
 AliTRDrawStream.cxx:1724
 AliTRDrawStream.cxx:1725
 AliTRDrawStream.cxx:1726
 AliTRDrawStream.cxx:1727
 AliTRDrawStream.cxx:1728
 AliTRDrawStream.cxx:1729
 AliTRDrawStream.cxx:1730
 AliTRDrawStream.cxx:1731
 AliTRDrawStream.cxx:1732
 AliTRDrawStream.cxx:1733
 AliTRDrawStream.cxx:1734
 AliTRDrawStream.cxx:1735
 AliTRDrawStream.cxx:1736
 AliTRDrawStream.cxx:1737
 AliTRDrawStream.cxx:1738
 AliTRDrawStream.cxx:1739
 AliTRDrawStream.cxx:1740
 AliTRDrawStream.cxx:1741
 AliTRDrawStream.cxx:1742
 AliTRDrawStream.cxx:1743
 AliTRDrawStream.cxx:1744
 AliTRDrawStream.cxx:1745
 AliTRDrawStream.cxx:1746
 AliTRDrawStream.cxx:1747
 AliTRDrawStream.cxx:1748
 AliTRDrawStream.cxx:1749
 AliTRDrawStream.cxx:1750
 AliTRDrawStream.cxx:1751
 AliTRDrawStream.cxx:1752
 AliTRDrawStream.cxx:1753
 AliTRDrawStream.cxx:1754
 AliTRDrawStream.cxx:1755
 AliTRDrawStream.cxx:1756
 AliTRDrawStream.cxx:1757
 AliTRDrawStream.cxx:1758
 AliTRDrawStream.cxx:1759
 AliTRDrawStream.cxx:1760
 AliTRDrawStream.cxx:1761
 AliTRDrawStream.cxx:1762
 AliTRDrawStream.cxx:1763
 AliTRDrawStream.cxx:1764
 AliTRDrawStream.cxx:1765
 AliTRDrawStream.cxx:1766
 AliTRDrawStream.cxx:1767
 AliTRDrawStream.cxx:1768
 AliTRDrawStream.cxx:1769
 AliTRDrawStream.cxx:1770
 AliTRDrawStream.cxx:1771
 AliTRDrawStream.cxx:1772
 AliTRDrawStream.cxx:1773
 AliTRDrawStream.cxx:1774
 AliTRDrawStream.cxx:1775
 AliTRDrawStream.cxx:1776
 AliTRDrawStream.cxx:1777
 AliTRDrawStream.cxx:1778
 AliTRDrawStream.cxx:1779
 AliTRDrawStream.cxx:1780
 AliTRDrawStream.cxx:1781
 AliTRDrawStream.cxx:1782
 AliTRDrawStream.cxx:1783
 AliTRDrawStream.cxx:1784
 AliTRDrawStream.cxx:1785
 AliTRDrawStream.cxx:1786
 AliTRDrawStream.cxx:1787
 AliTRDrawStream.cxx:1788
 AliTRDrawStream.cxx:1789
 AliTRDrawStream.cxx:1790
 AliTRDrawStream.cxx:1791
 AliTRDrawStream.cxx:1792
 AliTRDrawStream.cxx:1793
 AliTRDrawStream.cxx:1794
 AliTRDrawStream.cxx:1795
 AliTRDrawStream.cxx:1796
 AliTRDrawStream.cxx:1797
 AliTRDrawStream.cxx:1798
 AliTRDrawStream.cxx:1799
 AliTRDrawStream.cxx:1800
 AliTRDrawStream.cxx:1801
 AliTRDrawStream.cxx:1802
 AliTRDrawStream.cxx:1803
 AliTRDrawStream.cxx:1804
 AliTRDrawStream.cxx:1805
 AliTRDrawStream.cxx:1806
 AliTRDrawStream.cxx:1807
 AliTRDrawStream.cxx:1808
 AliTRDrawStream.cxx:1809
 AliTRDrawStream.cxx:1810
 AliTRDrawStream.cxx:1811
 AliTRDrawStream.cxx:1812
 AliTRDrawStream.cxx:1813
 AliTRDrawStream.cxx:1814
 AliTRDrawStream.cxx:1815
 AliTRDrawStream.cxx:1816
 AliTRDrawStream.cxx:1817
 AliTRDrawStream.cxx:1818
 AliTRDrawStream.cxx:1819
 AliTRDrawStream.cxx:1820
 AliTRDrawStream.cxx:1821
 AliTRDrawStream.cxx:1822
 AliTRDrawStream.cxx:1823
 AliTRDrawStream.cxx:1824
 AliTRDrawStream.cxx:1825
 AliTRDrawStream.cxx:1826
 AliTRDrawStream.cxx:1827
 AliTRDrawStream.cxx:1828
 AliTRDrawStream.cxx:1829
 AliTRDrawStream.cxx:1830
 AliTRDrawStream.cxx:1831
 AliTRDrawStream.cxx:1832
 AliTRDrawStream.cxx:1833
 AliTRDrawStream.cxx:1834
 AliTRDrawStream.cxx:1835
 AliTRDrawStream.cxx:1836
 AliTRDrawStream.cxx:1837
 AliTRDrawStream.cxx:1838
 AliTRDrawStream.cxx:1839
 AliTRDrawStream.cxx:1840
 AliTRDrawStream.cxx:1841
 AliTRDrawStream.cxx:1842
 AliTRDrawStream.cxx:1843
 AliTRDrawStream.cxx:1844
 AliTRDrawStream.cxx:1845
 AliTRDrawStream.cxx:1846
 AliTRDrawStream.cxx:1847
 AliTRDrawStream.cxx:1848
 AliTRDrawStream.cxx:1849
 AliTRDrawStream.cxx:1850
 AliTRDrawStream.cxx:1851
 AliTRDrawStream.cxx:1852
 AliTRDrawStream.cxx:1853
 AliTRDrawStream.cxx:1854
 AliTRDrawStream.cxx:1855
 AliTRDrawStream.cxx:1856
 AliTRDrawStream.cxx:1857
 AliTRDrawStream.cxx:1858
 AliTRDrawStream.cxx:1859
 AliTRDrawStream.cxx:1860
 AliTRDrawStream.cxx:1861
 AliTRDrawStream.cxx:1862
 AliTRDrawStream.cxx:1863
 AliTRDrawStream.cxx:1864
 AliTRDrawStream.cxx:1865
 AliTRDrawStream.cxx:1866
 AliTRDrawStream.cxx:1867
 AliTRDrawStream.cxx:1868
 AliTRDrawStream.cxx:1869
 AliTRDrawStream.cxx:1870
 AliTRDrawStream.cxx:1871
 AliTRDrawStream.cxx:1872
 AliTRDrawStream.cxx:1873
 AliTRDrawStream.cxx:1874
 AliTRDrawStream.cxx:1875
 AliTRDrawStream.cxx:1876
 AliTRDrawStream.cxx:1877
 AliTRDrawStream.cxx:1878
 AliTRDrawStream.cxx:1879
 AliTRDrawStream.cxx:1880
 AliTRDrawStream.cxx:1881
 AliTRDrawStream.cxx:1882
 AliTRDrawStream.cxx:1883
 AliTRDrawStream.cxx:1884
 AliTRDrawStream.cxx:1885
 AliTRDrawStream.cxx:1886
 AliTRDrawStream.cxx:1887
 AliTRDrawStream.cxx:1888
 AliTRDrawStream.cxx:1889
 AliTRDrawStream.cxx:1890
 AliTRDrawStream.cxx:1891
 AliTRDrawStream.cxx:1892
 AliTRDrawStream.cxx:1893
 AliTRDrawStream.cxx:1894
 AliTRDrawStream.cxx:1895
 AliTRDrawStream.cxx:1896
 AliTRDrawStream.cxx:1897
 AliTRDrawStream.cxx:1898
 AliTRDrawStream.cxx:1899
 AliTRDrawStream.cxx:1900
 AliTRDrawStream.cxx:1901
 AliTRDrawStream.cxx:1902
 AliTRDrawStream.cxx:1903
 AliTRDrawStream.cxx:1904
 AliTRDrawStream.cxx:1905
 AliTRDrawStream.cxx:1906
 AliTRDrawStream.cxx:1907
 AliTRDrawStream.cxx:1908
 AliTRDrawStream.cxx:1909
 AliTRDrawStream.cxx:1910
 AliTRDrawStream.cxx:1911
 AliTRDrawStream.cxx:1912
 AliTRDrawStream.cxx:1913
 AliTRDrawStream.cxx:1914
 AliTRDrawStream.cxx:1915
 AliTRDrawStream.cxx:1916
 AliTRDrawStream.cxx:1917
 AliTRDrawStream.cxx:1918
 AliTRDrawStream.cxx:1919
 AliTRDrawStream.cxx:1920
 AliTRDrawStream.cxx:1921
 AliTRDrawStream.cxx:1922
 AliTRDrawStream.cxx:1923
 AliTRDrawStream.cxx:1924
 AliTRDrawStream.cxx:1925
 AliTRDrawStream.cxx:1926
 AliTRDrawStream.cxx:1927
 AliTRDrawStream.cxx:1928
 AliTRDrawStream.cxx:1929
 AliTRDrawStream.cxx:1930
 AliTRDrawStream.cxx:1931
 AliTRDrawStream.cxx:1932
 AliTRDrawStream.cxx:1933
 AliTRDrawStream.cxx:1934
 AliTRDrawStream.cxx:1935
 AliTRDrawStream.cxx:1936
 AliTRDrawStream.cxx:1937
 AliTRDrawStream.cxx:1938
 AliTRDrawStream.cxx:1939
 AliTRDrawStream.cxx:1940
 AliTRDrawStream.cxx:1941
 AliTRDrawStream.cxx:1942
 AliTRDrawStream.cxx:1943
 AliTRDrawStream.cxx:1944
 AliTRDrawStream.cxx:1945
 AliTRDrawStream.cxx:1946
 AliTRDrawStream.cxx:1947
 AliTRDrawStream.cxx:1948
 AliTRDrawStream.cxx:1949
 AliTRDrawStream.cxx:1950
 AliTRDrawStream.cxx:1951
 AliTRDrawStream.cxx:1952
 AliTRDrawStream.cxx:1953
 AliTRDrawStream.cxx:1954
 AliTRDrawStream.cxx:1955
 AliTRDrawStream.cxx:1956
 AliTRDrawStream.cxx:1957
 AliTRDrawStream.cxx:1958
 AliTRDrawStream.cxx:1959
 AliTRDrawStream.cxx:1960
 AliTRDrawStream.cxx:1961
 AliTRDrawStream.cxx:1962
 AliTRDrawStream.cxx:1963
 AliTRDrawStream.cxx:1964
 AliTRDrawStream.cxx:1965
 AliTRDrawStream.cxx:1966
 AliTRDrawStream.cxx:1967
 AliTRDrawStream.cxx:1968
 AliTRDrawStream.cxx:1969
 AliTRDrawStream.cxx:1970
 AliTRDrawStream.cxx:1971
 AliTRDrawStream.cxx:1972
 AliTRDrawStream.cxx:1973
 AliTRDrawStream.cxx:1974
 AliTRDrawStream.cxx:1975
 AliTRDrawStream.cxx:1976
 AliTRDrawStream.cxx:1977
 AliTRDrawStream.cxx:1978
 AliTRDrawStream.cxx:1979
 AliTRDrawStream.cxx:1980
 AliTRDrawStream.cxx:1981
 AliTRDrawStream.cxx:1982
 AliTRDrawStream.cxx:1983
 AliTRDrawStream.cxx:1984
 AliTRDrawStream.cxx:1985
 AliTRDrawStream.cxx:1986
 AliTRDrawStream.cxx:1987
 AliTRDrawStream.cxx:1988
 AliTRDrawStream.cxx:1989
 AliTRDrawStream.cxx:1990
 AliTRDrawStream.cxx:1991
 AliTRDrawStream.cxx:1992
 AliTRDrawStream.cxx:1993
 AliTRDrawStream.cxx:1994
 AliTRDrawStream.cxx:1995
 AliTRDrawStream.cxx:1996
 AliTRDrawStream.cxx:1997
 AliTRDrawStream.cxx:1998
 AliTRDrawStream.cxx:1999
 AliTRDrawStream.cxx:2000
 AliTRDrawStream.cxx:2001
 AliTRDrawStream.cxx:2002
 AliTRDrawStream.cxx:2003
 AliTRDrawStream.cxx:2004
 AliTRDrawStream.cxx:2005
 AliTRDrawStream.cxx:2006
 AliTRDrawStream.cxx:2007
 AliTRDrawStream.cxx:2008
 AliTRDrawStream.cxx:2009
 AliTRDrawStream.cxx:2010
 AliTRDrawStream.cxx:2011
 AliTRDrawStream.cxx:2012
 AliTRDrawStream.cxx:2013
 AliTRDrawStream.cxx:2014
 AliTRDrawStream.cxx:2015
 AliTRDrawStream.cxx:2016
 AliTRDrawStream.cxx:2017
 AliTRDrawStream.cxx:2018
 AliTRDrawStream.cxx:2019
 AliTRDrawStream.cxx:2020
 AliTRDrawStream.cxx:2021
 AliTRDrawStream.cxx:2022
 AliTRDrawStream.cxx:2023
 AliTRDrawStream.cxx:2024
 AliTRDrawStream.cxx:2025
 AliTRDrawStream.cxx:2026
 AliTRDrawStream.cxx:2027
 AliTRDrawStream.cxx:2028
 AliTRDrawStream.cxx:2029
 AliTRDrawStream.cxx:2030
 AliTRDrawStream.cxx:2031
 AliTRDrawStream.cxx:2032
 AliTRDrawStream.cxx:2033
 AliTRDrawStream.cxx:2034
 AliTRDrawStream.cxx:2035
 AliTRDrawStream.cxx:2036
 AliTRDrawStream.cxx:2037
 AliTRDrawStream.cxx:2038
 AliTRDrawStream.cxx:2039
 AliTRDrawStream.cxx:2040
 AliTRDrawStream.cxx:2041
 AliTRDrawStream.cxx:2042
 AliTRDrawStream.cxx:2043
 AliTRDrawStream.cxx:2044
 AliTRDrawStream.cxx:2045
 AliTRDrawStream.cxx:2046
 AliTRDrawStream.cxx:2047
 AliTRDrawStream.cxx:2048
 AliTRDrawStream.cxx:2049
 AliTRDrawStream.cxx:2050
 AliTRDrawStream.cxx:2051
 AliTRDrawStream.cxx:2052
 AliTRDrawStream.cxx:2053
 AliTRDrawStream.cxx:2054
 AliTRDrawStream.cxx:2055
 AliTRDrawStream.cxx:2056
 AliTRDrawStream.cxx:2057
 AliTRDrawStream.cxx:2058
 AliTRDrawStream.cxx:2059
 AliTRDrawStream.cxx:2060
 AliTRDrawStream.cxx:2061
 AliTRDrawStream.cxx:2062
 AliTRDrawStream.cxx:2063
 AliTRDrawStream.cxx:2064
 AliTRDrawStream.cxx:2065
 AliTRDrawStream.cxx:2066
 AliTRDrawStream.cxx:2067
 AliTRDrawStream.cxx:2068
 AliTRDrawStream.cxx:2069
 AliTRDrawStream.cxx:2070
 AliTRDrawStream.cxx:2071
 AliTRDrawStream.cxx:2072
 AliTRDrawStream.cxx:2073
 AliTRDrawStream.cxx:2074
 AliTRDrawStream.cxx:2075
 AliTRDrawStream.cxx:2076
 AliTRDrawStream.cxx:2077
 AliTRDrawStream.cxx:2078
 AliTRDrawStream.cxx:2079
 AliTRDrawStream.cxx:2080
 AliTRDrawStream.cxx:2081
 AliTRDrawStream.cxx:2082
 AliTRDrawStream.cxx:2083
 AliTRDrawStream.cxx:2084
 AliTRDrawStream.cxx:2085
 AliTRDrawStream.cxx:2086
 AliTRDrawStream.cxx:2087
 AliTRDrawStream.cxx:2088
 AliTRDrawStream.cxx:2089
 AliTRDrawStream.cxx:2090
 AliTRDrawStream.cxx:2091
 AliTRDrawStream.cxx:2092
 AliTRDrawStream.cxx:2093
 AliTRDrawStream.cxx:2094
 AliTRDrawStream.cxx:2095
 AliTRDrawStream.cxx:2096
 AliTRDrawStream.cxx:2097
 AliTRDrawStream.cxx:2098
 AliTRDrawStream.cxx:2099
 AliTRDrawStream.cxx:2100
 AliTRDrawStream.cxx:2101
 AliTRDrawStream.cxx:2102
 AliTRDrawStream.cxx:2103
 AliTRDrawStream.cxx:2104
 AliTRDrawStream.cxx:2105
 AliTRDrawStream.cxx:2106
 AliTRDrawStream.cxx:2107
 AliTRDrawStream.cxx:2108
 AliTRDrawStream.cxx:2109
 AliTRDrawStream.cxx:2110
 AliTRDrawStream.cxx:2111
 AliTRDrawStream.cxx:2112
 AliTRDrawStream.cxx:2113
 AliTRDrawStream.cxx:2114
 AliTRDrawStream.cxx:2115
 AliTRDrawStream.cxx:2116
 AliTRDrawStream.cxx:2117
 AliTRDrawStream.cxx:2118
 AliTRDrawStream.cxx:2119
 AliTRDrawStream.cxx:2120
 AliTRDrawStream.cxx:2121
 AliTRDrawStream.cxx:2122
 AliTRDrawStream.cxx:2123
 AliTRDrawStream.cxx:2124
 AliTRDrawStream.cxx:2125
 AliTRDrawStream.cxx:2126
 AliTRDrawStream.cxx:2127
 AliTRDrawStream.cxx:2128
 AliTRDrawStream.cxx:2129
 AliTRDrawStream.cxx:2130
 AliTRDrawStream.cxx:2131
 AliTRDrawStream.cxx:2132
 AliTRDrawStream.cxx:2133
 AliTRDrawStream.cxx:2134
 AliTRDrawStream.cxx:2135
 AliTRDrawStream.cxx:2136
 AliTRDrawStream.cxx:2137
 AliTRDrawStream.cxx:2138
 AliTRDrawStream.cxx:2139
 AliTRDrawStream.cxx:2140
 AliTRDrawStream.cxx:2141
 AliTRDrawStream.cxx:2142
 AliTRDrawStream.cxx:2143
 AliTRDrawStream.cxx:2144
 AliTRDrawStream.cxx:2145
 AliTRDrawStream.cxx:2146
 AliTRDrawStream.cxx:2147
 AliTRDrawStream.cxx:2148
 AliTRDrawStream.cxx:2149
 AliTRDrawStream.cxx:2150
 AliTRDrawStream.cxx:2151
 AliTRDrawStream.cxx:2152
 AliTRDrawStream.cxx:2153
 AliTRDrawStream.cxx:2154
 AliTRDrawStream.cxx:2155
 AliTRDrawStream.cxx:2156
 AliTRDrawStream.cxx:2157
 AliTRDrawStream.cxx:2158
 AliTRDrawStream.cxx:2159
 AliTRDrawStream.cxx:2160
 AliTRDrawStream.cxx:2161
 AliTRDrawStream.cxx:2162
 AliTRDrawStream.cxx:2163
 AliTRDrawStream.cxx:2164
 AliTRDrawStream.cxx:2165
 AliTRDrawStream.cxx:2166
 AliTRDrawStream.cxx:2167
 AliTRDrawStream.cxx:2168
 AliTRDrawStream.cxx:2169
 AliTRDrawStream.cxx:2170
 AliTRDrawStream.cxx:2171
 AliTRDrawStream.cxx:2172
 AliTRDrawStream.cxx:2173
 AliTRDrawStream.cxx:2174
 AliTRDrawStream.cxx:2175
 AliTRDrawStream.cxx:2176
 AliTRDrawStream.cxx:2177
 AliTRDrawStream.cxx:2178
 AliTRDrawStream.cxx:2179
 AliTRDrawStream.cxx:2180
 AliTRDrawStream.cxx:2181
 AliTRDrawStream.cxx:2182
 AliTRDrawStream.cxx:2183
 AliTRDrawStream.cxx:2184
 AliTRDrawStream.cxx:2185
 AliTRDrawStream.cxx:2186
 AliTRDrawStream.cxx:2187
 AliTRDrawStream.cxx:2188
 AliTRDrawStream.cxx:2189
 AliTRDrawStream.cxx:2190
 AliTRDrawStream.cxx:2191
 AliTRDrawStream.cxx:2192
 AliTRDrawStream.cxx:2193
 AliTRDrawStream.cxx:2194
 AliTRDrawStream.cxx:2195
 AliTRDrawStream.cxx:2196
 AliTRDrawStream.cxx:2197
 AliTRDrawStream.cxx:2198
 AliTRDrawStream.cxx:2199
 AliTRDrawStream.cxx:2200
 AliTRDrawStream.cxx:2201
 AliTRDrawStream.cxx:2202
 AliTRDrawStream.cxx:2203
 AliTRDrawStream.cxx:2204
 AliTRDrawStream.cxx:2205
 AliTRDrawStream.cxx:2206
 AliTRDrawStream.cxx:2207
 AliTRDrawStream.cxx:2208
 AliTRDrawStream.cxx:2209
 AliTRDrawStream.cxx:2210
 AliTRDrawStream.cxx:2211
 AliTRDrawStream.cxx:2212
 AliTRDrawStream.cxx:2213
 AliTRDrawStream.cxx:2214
 AliTRDrawStream.cxx:2215
 AliTRDrawStream.cxx:2216
 AliTRDrawStream.cxx:2217
 AliTRDrawStream.cxx:2218
 AliTRDrawStream.cxx:2219
 AliTRDrawStream.cxx:2220
 AliTRDrawStream.cxx:2221
 AliTRDrawStream.cxx:2222
 AliTRDrawStream.cxx:2223
 AliTRDrawStream.cxx:2224
 AliTRDrawStream.cxx:2225
 AliTRDrawStream.cxx:2226
 AliTRDrawStream.cxx:2227
 AliTRDrawStream.cxx:2228
 AliTRDrawStream.cxx:2229
 AliTRDrawStream.cxx:2230
 AliTRDrawStream.cxx:2231
 AliTRDrawStream.cxx:2232
 AliTRDrawStream.cxx:2233
 AliTRDrawStream.cxx:2234
 AliTRDrawStream.cxx:2235
 AliTRDrawStream.cxx:2236
 AliTRDrawStream.cxx:2237
 AliTRDrawStream.cxx:2238
 AliTRDrawStream.cxx:2239
 AliTRDrawStream.cxx:2240
 AliTRDrawStream.cxx:2241
 AliTRDrawStream.cxx:2242
 AliTRDrawStream.cxx:2243
 AliTRDrawStream.cxx:2244
 AliTRDrawStream.cxx:2245
 AliTRDrawStream.cxx:2246
 AliTRDrawStream.cxx:2247
 AliTRDrawStream.cxx:2248
 AliTRDrawStream.cxx:2249
 AliTRDrawStream.cxx:2250
 AliTRDrawStream.cxx:2251
 AliTRDrawStream.cxx:2252
 AliTRDrawStream.cxx:2253
 AliTRDrawStream.cxx:2254
 AliTRDrawStream.cxx:2255
 AliTRDrawStream.cxx:2256
 AliTRDrawStream.cxx:2257
 AliTRDrawStream.cxx:2258
 AliTRDrawStream.cxx:2259
 AliTRDrawStream.cxx:2260
 AliTRDrawStream.cxx:2261
 AliTRDrawStream.cxx:2262
 AliTRDrawStream.cxx:2263
 AliTRDrawStream.cxx:2264
 AliTRDrawStream.cxx:2265
 AliTRDrawStream.cxx:2266
 AliTRDrawStream.cxx:2267
 AliTRDrawStream.cxx:2268
 AliTRDrawStream.cxx:2269
 AliTRDrawStream.cxx:2270
 AliTRDrawStream.cxx:2271
 AliTRDrawStream.cxx:2272
 AliTRDrawStream.cxx:2273
 AliTRDrawStream.cxx:2274
 AliTRDrawStream.cxx:2275
 AliTRDrawStream.cxx:2276
 AliTRDrawStream.cxx:2277
 AliTRDrawStream.cxx:2278
 AliTRDrawStream.cxx:2279
 AliTRDrawStream.cxx:2280
 AliTRDrawStream.cxx:2281
 AliTRDrawStream.cxx:2282
 AliTRDrawStream.cxx:2283
 AliTRDrawStream.cxx:2284
 AliTRDrawStream.cxx:2285
 AliTRDrawStream.cxx:2286
 AliTRDrawStream.cxx:2287
 AliTRDrawStream.cxx:2288
 AliTRDrawStream.cxx:2289
 AliTRDrawStream.cxx:2290
 AliTRDrawStream.cxx:2291
 AliTRDrawStream.cxx:2292
 AliTRDrawStream.cxx:2293
 AliTRDrawStream.cxx:2294
 AliTRDrawStream.cxx:2295
 AliTRDrawStream.cxx:2296
 AliTRDrawStream.cxx:2297
 AliTRDrawStream.cxx:2298
 AliTRDrawStream.cxx:2299
 AliTRDrawStream.cxx:2300
 AliTRDrawStream.cxx:2301
 AliTRDrawStream.cxx:2302
 AliTRDrawStream.cxx:2303
 AliTRDrawStream.cxx:2304
 AliTRDrawStream.cxx:2305
 AliTRDrawStream.cxx:2306
 AliTRDrawStream.cxx:2307
 AliTRDrawStream.cxx:2308
 AliTRDrawStream.cxx:2309
 AliTRDrawStream.cxx:2310
 AliTRDrawStream.cxx:2311
 AliTRDrawStream.cxx:2312
 AliTRDrawStream.cxx:2313
 AliTRDrawStream.cxx:2314
 AliTRDrawStream.cxx:2315
 AliTRDrawStream.cxx:2316
 AliTRDrawStream.cxx:2317
 AliTRDrawStream.cxx:2318
 AliTRDrawStream.cxx:2319
 AliTRDrawStream.cxx:2320
 AliTRDrawStream.cxx:2321
 AliTRDrawStream.cxx:2322
 AliTRDrawStream.cxx:2323
 AliTRDrawStream.cxx:2324
 AliTRDrawStream.cxx:2325
 AliTRDrawStream.cxx:2326
 AliTRDrawStream.cxx:2327
 AliTRDrawStream.cxx:2328
 AliTRDrawStream.cxx:2329
 AliTRDrawStream.cxx:2330
 AliTRDrawStream.cxx:2331
 AliTRDrawStream.cxx:2332
 AliTRDrawStream.cxx:2333
 AliTRDrawStream.cxx:2334
 AliTRDrawStream.cxx:2335
 AliTRDrawStream.cxx:2336
 AliTRDrawStream.cxx:2337
 AliTRDrawStream.cxx:2338
 AliTRDrawStream.cxx:2339
 AliTRDrawStream.cxx:2340
 AliTRDrawStream.cxx:2341
 AliTRDrawStream.cxx:2342
 AliTRDrawStream.cxx:2343
 AliTRDrawStream.cxx:2344
 AliTRDrawStream.cxx:2345
 AliTRDrawStream.cxx:2346
 AliTRDrawStream.cxx:2347
 AliTRDrawStream.cxx:2348
 AliTRDrawStream.cxx:2349
 AliTRDrawStream.cxx:2350
 AliTRDrawStream.cxx:2351
 AliTRDrawStream.cxx:2352
 AliTRDrawStream.cxx:2353
 AliTRDrawStream.cxx:2354
 AliTRDrawStream.cxx:2355
 AliTRDrawStream.cxx:2356
 AliTRDrawStream.cxx:2357
 AliTRDrawStream.cxx:2358
 AliTRDrawStream.cxx:2359
 AliTRDrawStream.cxx:2360
 AliTRDrawStream.cxx:2361
 AliTRDrawStream.cxx:2362
 AliTRDrawStream.cxx:2363
 AliTRDrawStream.cxx:2364
 AliTRDrawStream.cxx:2365
 AliTRDrawStream.cxx:2366
 AliTRDrawStream.cxx:2367
 AliTRDrawStream.cxx:2368
 AliTRDrawStream.cxx:2369
 AliTRDrawStream.cxx:2370
 AliTRDrawStream.cxx:2371
 AliTRDrawStream.cxx:2372
 AliTRDrawStream.cxx:2373
 AliTRDrawStream.cxx:2374
 AliTRDrawStream.cxx:2375
 AliTRDrawStream.cxx:2376
 AliTRDrawStream.cxx:2377
 AliTRDrawStream.cxx:2378
 AliTRDrawStream.cxx:2379
 AliTRDrawStream.cxx:2380
 AliTRDrawStream.cxx:2381
 AliTRDrawStream.cxx:2382
 AliTRDrawStream.cxx:2383
 AliTRDrawStream.cxx:2384
 AliTRDrawStream.cxx:2385
 AliTRDrawStream.cxx:2386
 AliTRDrawStream.cxx:2387
 AliTRDrawStream.cxx:2388
 AliTRDrawStream.cxx:2389
 AliTRDrawStream.cxx:2390
 AliTRDrawStream.cxx:2391
 AliTRDrawStream.cxx:2392
 AliTRDrawStream.cxx:2393
 AliTRDrawStream.cxx:2394
 AliTRDrawStream.cxx:2395
 AliTRDrawStream.cxx:2396
 AliTRDrawStream.cxx:2397
 AliTRDrawStream.cxx:2398
 AliTRDrawStream.cxx:2399
 AliTRDrawStream.cxx:2400
 AliTRDrawStream.cxx:2401
 AliTRDrawStream.cxx:2402
 AliTRDrawStream.cxx:2403
 AliTRDrawStream.cxx:2404
 AliTRDrawStream.cxx:2405
 AliTRDrawStream.cxx:2406
 AliTRDrawStream.cxx:2407
 AliTRDrawStream.cxx:2408
 AliTRDrawStream.cxx:2409
 AliTRDrawStream.cxx:2410
 AliTRDrawStream.cxx:2411
 AliTRDrawStream.cxx:2412
 AliTRDrawStream.cxx:2413
 AliTRDrawStream.cxx:2414
 AliTRDrawStream.cxx:2415
 AliTRDrawStream.cxx:2416
 AliTRDrawStream.cxx:2417
 AliTRDrawStream.cxx:2418
 AliTRDrawStream.cxx:2419
 AliTRDrawStream.cxx:2420
 AliTRDrawStream.cxx:2421
 AliTRDrawStream.cxx:2422
 AliTRDrawStream.cxx:2423
 AliTRDrawStream.cxx:2424
 AliTRDrawStream.cxx:2425
 AliTRDrawStream.cxx:2426
 AliTRDrawStream.cxx:2427
 AliTRDrawStream.cxx:2428
 AliTRDrawStream.cxx:2429
 AliTRDrawStream.cxx:2430
 AliTRDrawStream.cxx:2431
 AliTRDrawStream.cxx:2432
 AliTRDrawStream.cxx:2433
 AliTRDrawStream.cxx:2434
 AliTRDrawStream.cxx:2435
 AliTRDrawStream.cxx:2436
 AliTRDrawStream.cxx:2437
 AliTRDrawStream.cxx:2438
 AliTRDrawStream.cxx:2439
 AliTRDrawStream.cxx:2440
 AliTRDrawStream.cxx:2441
 AliTRDrawStream.cxx:2442
 AliTRDrawStream.cxx:2443
 AliTRDrawStream.cxx:2444
 AliTRDrawStream.cxx:2445
 AliTRDrawStream.cxx:2446
 AliTRDrawStream.cxx:2447
 AliTRDrawStream.cxx:2448
 AliTRDrawStream.cxx:2449
 AliTRDrawStream.cxx:2450
 AliTRDrawStream.cxx:2451
 AliTRDrawStream.cxx:2452
 AliTRDrawStream.cxx:2453
 AliTRDrawStream.cxx:2454
 AliTRDrawStream.cxx:2455
 AliTRDrawStream.cxx:2456
 AliTRDrawStream.cxx:2457
 AliTRDrawStream.cxx:2458
 AliTRDrawStream.cxx:2459
 AliTRDrawStream.cxx:2460
 AliTRDrawStream.cxx:2461
 AliTRDrawStream.cxx:2462
 AliTRDrawStream.cxx:2463
 AliTRDrawStream.cxx:2464
 AliTRDrawStream.cxx:2465
 AliTRDrawStream.cxx:2466
 AliTRDrawStream.cxx:2467
 AliTRDrawStream.cxx:2468
 AliTRDrawStream.cxx:2469
 AliTRDrawStream.cxx:2470
 AliTRDrawStream.cxx:2471
 AliTRDrawStream.cxx:2472
 AliTRDrawStream.cxx:2473