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

///////////////////////////////////////////////////////////////////////////////
///
/// This class provides access to CTP DDL raw data.
///
/// The raw data format is taken form the trigger TDR.
/// The meaning of the trigger class and cluster masks
/// are given in the trigger description file (in /data)
/// and in the AliCentralTrigger class.
///
///////////////////////////////////////////////////////////////////////////////

#include "AliCTPRawStream.h"
#include "AliRawReader.h"
#include "AliLog.h"
#include "AliDAQ.h"
#include "AliTriggerIR.h"

ClassImp(AliCTPRawStream)

//_____________________________________________________________________________
AliCTPRawStream::AliCTPRawStream(AliRawReader* rawReader) :
  fIRArray("AliTriggerIR",3),
  fOrbit(0),
  fBC(0),
  fL0TriggerInputs(0),
  fL1TriggerInputs(0),
  fL2TriggerInputs(0),
  fClassMask(0),
  fClassMaskNext50(0),
  fClusterMask(0),
  fRawReader(rawReader)
{
  // create an object to read CTP raw data
  //
  // select the raw data corresponding to
  // the CTP detector id
  fRawReader->Reset();
  AliDebug(1,Form("Selecting raw data for detector %d",AliDAQ::DetectorID("TRG")));
  fRawReader->Select("TRG");
}

//_____________________________________________________________________________
AliCTPRawStream::AliCTPRawStream(const AliCTPRawStream& stream) :
  TObject(stream),
  fIRArray("AliTriggerIR",3),
  fOrbit(0),
  fBC(0),
  fL0TriggerInputs(0),
  fL1TriggerInputs(0),
  fL2TriggerInputs(0),
  fClassMask(0),
  fClassMaskNext50(0),
  fClusterMask(0),
  fRawReader(NULL)
{
  // Copy constructor
  AliFatal("Copy constructor not implemented");
}

//_____________________________________________________________________________
AliCTPRawStream& AliCTPRawStream::operator = (const AliCTPRawStream& 
					      /* stream */)
{
  AliFatal("Assignment operator not implemented");
  return *this;
}

//_____________________________________________________________________________
AliCTPRawStream::~AliCTPRawStream()
{
  // destructor
  fIRArray.Delete();
}

//_____________________________________________________________________________
void AliCTPRawStream::Reset()
{
  // reset raw stream params
  fIRArray.Clear();

  fClassMask = fClusterMask = 0;
  fClassMaskNext50 = 0;

  if (fRawReader) fRawReader->Reset();
}

//_____________________________________________________________________________
Bool_t AliCTPRawStream::Next()
{
  // read the whole CTP raw data stream
  // return kFALSE in case of error

  UChar_t *data = NULL;

  // CTP raw data does not contain CDH
  fRawReader->RequireHeader(kFALSE);

  if (!fRawReader->ReadNextData(data)) {
    fRawReader->RequireHeader(kTRUE);
    return kFALSE;
  }

  if ((fRawReader->GetDataSize()) < 32 ||
      ((fRawReader->GetDataSize() % 4) != 0)) {
    AliError(Form("Wrong CTP raw data size: %d",fRawReader->GetDataSize()));
    fRawReader->RequireHeader(kTRUE);
    return kFALSE;
  }

  fBC = data[0];
  fBC |= (data[1] & 0xF) << 8;

  fOrbit = data[4] << 12;
  fOrbit |= (data[5] & 0xF) << 20;
  fOrbit |= data[8];
  fOrbit |= (data[9] & 0xF) << 8;

  // 4th word bit 12= version, check here.
  UInt_t version=data[13] & 0x10;

  if(version == 0){
   return GetPayloadRun1(data);
  } 
  else{
   return GetPayloadRun2(data);
  } 
} 
Bool_t AliCTPRawStream::GetPayloadRun2(UChar_t *data)
{
  fClusterMask = data[12]&0xef;

  fClassMaskNext50 =  ((ULong64_t)data[16] & 0xf) << 46;   // 100..97

  fClassMaskNext50 |= ((ULong64_t)data[21] & 0xF) << 42;   // 96..93
  fClassMaskNext50 |= (ULong64_t)data[20] << 34;           // 92..85

  fClassMaskNext50 |= ((ULong64_t)data[25] & 0xF) << 30;   //84..81
  fClassMaskNext50 |= (ULong64_t)data[24] << 22;           //80..73

  fClassMaskNext50 |= ((ULong64_t)data[29] & 0xF) << 18;   //72..69
  fClassMaskNext50 |= (ULong64_t)data[28] << 10;           //68..61   

  fClassMaskNext50 |= ((ULong64_t)data[33] & 0xf ) << 6;   //60..57
  fClassMaskNext50 |= ((ULong64_t)data[32] & 0xfc )>> 2;   //56..51
  fClassMask        = ((ULong64_t)data[32] & 0x3 ) << 48;  //50..49

  fClassMask |= ((ULong64_t)data[37] & 0xf) << 44;         //48..45
  fClassMask |= (ULong64_t)data[36]  << 36;                //44..37

  fClassMask |= ((ULong64_t)data[41] & 0xf) << 32;         //36..33
  fClassMask |= (ULong64_t)data[40]  << 24;                //32..25

  fClassMask |= ((ULong64_t)data[45] & 0xf) << 20;         //24..21
  fClassMask |= (ULong64_t)data[44]  << 12;                //20..13

  fClassMask |= ((ULong64_t)data[49] & 0xf) << 8;         //12..9
  fClassMask |= (ULong64_t)data[48]  << 0;                //8..1

  if (fRawReader->GetDataSize() == 52) {
    AliDebug(1,"No trigger input and interaction records found");
    fRawReader->RequireHeader(kTRUE);
    return kTRUE;
  }

  // Read detector trigger inputs
  if (fRawReader->GetDataSize() < 72) {
    AliError(Form("Wrong CTP raw data size: %d",fRawReader->GetDataSize()));
    fRawReader->RequireHeader(kTRUE);
    return kFALSE;
  }

  fL0TriggerInputs = data[52] << 12;
  fL0TriggerInputs |= (data[53] & 0xF) << 20;
  fL0TriggerInputs |= data[56];
  fL0TriggerInputs |= (data[57] & 0xF) << 8;

  fL1TriggerInputs = data[60] << 12;
  fL1TriggerInputs |= (data[61] & 0xF) << 20;
  fL1TriggerInputs |= data[64];
  fL1TriggerInputs |= (data[65] & 0xF) << 8;

  fL2TriggerInputs = data[68] << 12;
  fL2TriggerInputs |= (data[69] & 0xF) << 20;

  if (fRawReader->GetDataSize() == 72) {
    AliDebug(1,"No interaction records found");
    fRawReader->RequireHeader(kTRUE);
    return kTRUE;
  }

  // Read IRs
  Int_t iword = 52;
  UChar_t level = 0;
  UInt_t *irdata = NULL;
  UInt_t irsize = 0;
  UInt_t orbit = 0;
  Bool_t incomplete = kFALSE, transerr = kFALSE;
  while (iword < fRawReader->GetDataSize()) {
    if (data[iword+1] & 0x80) {
      UChar_t flag = ((data[iword+1] >> 4) & 0x3);
      if (flag == 0) {
	if (irdata) {
	  new (fIRArray[fIRArray.GetEntriesFast()])
	    AliTriggerIR(orbit,irsize,irdata,incomplete,transerr);
	  irdata = NULL; irsize = 0;
	}
	level = 1;
	orbit = data[iword] << 12;
	orbit |= (data[iword+1] & 0xF) << 20;
	transerr = ((data[iword+1] >> 6) & 0x1);
	iword += 4;
	continue;
      }
      else if (flag == 3) {
	if (level == 1) {
	  level = 2;
	  orbit |= data[iword];
	  orbit |= ((data[iword+1] & 0xF) << 8);
	  iword += 4;
	  AliDebug(1,Form("Orbit=0x%x\n",orbit));
	  continue;
	}
      }
      UShort_t bc = data[iword];
      bc |= ((data[iword+1] & 0xF) << 8);
      AliDebug(1,Form("BC=0x%x\n",bc));
      if (bc == 0xFFF) {
	incomplete = kTRUE;
      }
      else {
	if (level == 2) {
	  level = 3;
	  irdata = (UInt_t *)&data[iword];
	  irsize = 0;
	}
	if (level == 3) {
	  irsize++;
	}
      }
    }
    else
      AliWarning(Form("Invalid interaction record (%d %d)",iword,fRawReader->GetDataSize()));

    iword += 4;
  }

  if (irdata) {
    new (fIRArray[fIRArray.GetEntriesFast()])
      AliTriggerIR(orbit,irsize,irdata,incomplete,transerr);
    irdata = NULL; irsize = 0;
  }

  // Restore the raw-reader state!!
  fRawReader->RequireHeader(kTRUE);
 return kTRUE;
}
Bool_t AliCTPRawStream::GetPayloadRun1(UChar_t *data)
{
  fClusterMask = data[12] >> 2;

  fClassMask =  ((ULong64_t)data[12] & 0x3) << 48;

  fClassMask |= (ULong64_t)data[16] << 36;
  fClassMask |= ((ULong64_t)data[17] & 0xF) << 44;

  fClassMask |= (ULong64_t)data[20] << 24;
  fClassMask |= ((ULong64_t)data[21] & 0xF) << 32;

  fClassMask |= (ULong64_t)data[24] << 12;
  fClassMask |= ((ULong64_t)data[25] & 0xF) << 20;

  fClassMask |= (ULong64_t)data[28];
  fClassMask |= ((ULong64_t)data[29] & 0xF) << 8;

  if (fRawReader->GetDataSize() == 32) {
    AliDebug(1,"No trigger input and interaction records found");
    fRawReader->RequireHeader(kTRUE);
    return kTRUE;
  }

  // Read detector trigger inputs
  if (fRawReader->GetDataSize() < 52) {
    AliError(Form("Wrong CTP raw data size: %d",fRawReader->GetDataSize()));
    fRawReader->RequireHeader(kTRUE);
    return kFALSE;
  }

  fL0TriggerInputs = data[32] << 12;
  fL0TriggerInputs |= (data[33] & 0xF) << 20;
  fL0TriggerInputs |= data[36];
  fL0TriggerInputs |= (data[37] & 0xF) << 8;

  fL1TriggerInputs = data[40] << 12;
  fL1TriggerInputs |= (data[41] & 0xF) << 20;
  fL1TriggerInputs |= data[44];
  fL1TriggerInputs |= (data[45] & 0xF) << 8;

  fL2TriggerInputs = data[48] << 12;
  fL2TriggerInputs |= (data[49] & 0xF) << 20;

  if (fRawReader->GetDataSize() == 52) {
    AliDebug(1,"No interaction records found");
    fRawReader->RequireHeader(kTRUE);
    return kTRUE;
  }

  // Read IRs
  Int_t iword = 52;
  UChar_t level = 0;
  UInt_t *irdata = NULL;
  UInt_t irsize = 0;
  UInt_t orbit = 0;
  Bool_t incomplete = kFALSE, transerr = kFALSE;
  while (iword < fRawReader->GetDataSize()) {
    if (data[iword+1] & 0x80) {
      UChar_t flag = ((data[iword+1] >> 4) & 0x3);
      if (flag == 0) {
	if (irdata) {
	  new (fIRArray[fIRArray.GetEntriesFast()])
	    AliTriggerIR(orbit,irsize,irdata,incomplete,transerr);
	  irdata = NULL; irsize = 0;
	}
	level = 1;
	orbit = data[iword] << 12;
	orbit |= (data[iword+1] & 0xF) << 20;
	transerr = ((data[iword+1] >> 6) & 0x1);
	iword += 4;
	continue;
      }
      else if (flag == 3) {
	if (level == 1) {
	  level = 2;
	  orbit |= data[iword];
	  orbit |= ((data[iword+1] & 0xF) << 8);
	  iword += 4;
	  AliDebug(1,Form("Orbit=0x%x\n",orbit));
	  continue;
	}
      }
      UShort_t bc = data[iword];
      bc |= ((data[iword+1] & 0xF) << 8);
      AliDebug(1,Form("BC=0x%x\n",bc));
      if (bc == 0xFFF) {
	incomplete = kTRUE;
      }
      else {
	if (level == 2) {
	  level = 3;
	  irdata = (UInt_t *)&data[iword];
	  irsize = 0;
	}
	if (level == 3) {
	  irsize++;
	}
      }
    }
    else
      AliWarning(Form("Invalid interaction record (%d %d)",iword,fRawReader->GetDataSize()));

    iword += 4;
  }

  if (irdata) {
    new (fIRArray[fIRArray.GetEntriesFast()])
      AliTriggerIR(orbit,irsize,irdata,incomplete,transerr);
    irdata = NULL; irsize = 0;
  }

  // Restore the raw-reader state!!
  fRawReader->RequireHeader(kTRUE);

  return kTRUE;
}

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