ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
///
/// This class provides access to beam test ITS SSD digits in raw data.
//  Modified by Enrico Fragiacomo, October 2004, for beamtest analysis
///
///////////////////////////////////////////////////////////////////////////////

#include "AliITSRawStreamSSDv1.h"
#include "AliRawReader.h"

ClassImp(AliITSRawStreamSSDv1)


AliITSRawStreamSSDv1::AliITSRawStreamSSDv1(AliRawReader* rawReader) :
  AliITSRawStreamSSD(rawReader),
fADModule(0),
fADC(0){
// create an object to read ITS SSD raw digits

  fRawReader->SelectEquipment(17,102,102);
}


Bool_t AliITSRawStreamSSDv1::Next()
{
// read the next raw digit
// returns kFALSE if there is no digit left

  Int_t seq=0;

  fPrevModuleID = fModuleID;

  if (!fRawReader->ReadNextInt(fData)) return kFALSE;

  fADModule = (fData >> 27) & 0x0000000F;
  fADC       = (fData >> 23) & 0x0000000F;

  // seq 0 (first 768 strips) or 1 are obtained from fCoord2
  fCoord2    = (fData >> 12) & 0x000007FF;
  seq    = (fCoord2 >= 768) ? 1 : 0; 
  if(seq) fCoord2 = 1535 - fCoord2;

  if((fCoord2<0)||(fCoord2>=768)) return kFALSE;

  // ADModule 2 -> layer 5
  // fCoord1 is set according to the cabling map
  if(fADModule==2) {
    if ((fADC==0)&&(seq==0)) {fModuleID = 10; fCoord1=1;}
    else if ((fADC==0)&&(seq==1)) {fModuleID = 11; fCoord1=1;}
    else if ((fADC==1)&&(seq==0)) {fModuleID = 11; fCoord1=0;}
    else if ((fADC==1)&&(seq==1)) {fModuleID = 10; fCoord1=0;}
  }
  // ADModule 6 -> layer 6
  // fCoord1 is set according to the cabling map
  else if(fADModule==6) {
    if ((fADC==0)&&(seq==0)) {fModuleID = 12; fCoord1=0;}
    else if ((fADC==0)&&(seq==1)) {fModuleID = 13; fCoord1=0;}
    else if ((fADC==1)&&(seq==0)) {fModuleID = 13; fCoord1=1;}
    else if ((fADC==1)&&(seq==1)) {fModuleID = 12; fCoord1=1;}
  }

  fSignal    = (fData & 0x00000FFF);

  if(fSignal>=2048) fSignal-=4096;

  return kTRUE;
}

 AliITSRawStreamSSDv1.cxx:1
 AliITSRawStreamSSDv1.cxx:2
 AliITSRawStreamSSDv1.cxx:3
 AliITSRawStreamSSDv1.cxx:4
 AliITSRawStreamSSDv1.cxx:5
 AliITSRawStreamSSDv1.cxx:6
 AliITSRawStreamSSDv1.cxx:7
 AliITSRawStreamSSDv1.cxx:8
 AliITSRawStreamSSDv1.cxx:9
 AliITSRawStreamSSDv1.cxx:10
 AliITSRawStreamSSDv1.cxx:11
 AliITSRawStreamSSDv1.cxx:12
 AliITSRawStreamSSDv1.cxx:13
 AliITSRawStreamSSDv1.cxx:14
 AliITSRawStreamSSDv1.cxx:15
 AliITSRawStreamSSDv1.cxx:16
 AliITSRawStreamSSDv1.cxx:17
 AliITSRawStreamSSDv1.cxx:18
 AliITSRawStreamSSDv1.cxx:19
 AliITSRawStreamSSDv1.cxx:20
 AliITSRawStreamSSDv1.cxx:21
 AliITSRawStreamSSDv1.cxx:22
 AliITSRawStreamSSDv1.cxx:23
 AliITSRawStreamSSDv1.cxx:24
 AliITSRawStreamSSDv1.cxx:25
 AliITSRawStreamSSDv1.cxx:26
 AliITSRawStreamSSDv1.cxx:27
 AliITSRawStreamSSDv1.cxx:28
 AliITSRawStreamSSDv1.cxx:29
 AliITSRawStreamSSDv1.cxx:30
 AliITSRawStreamSSDv1.cxx:31
 AliITSRawStreamSSDv1.cxx:32
 AliITSRawStreamSSDv1.cxx:33
 AliITSRawStreamSSDv1.cxx:34
 AliITSRawStreamSSDv1.cxx:35
 AliITSRawStreamSSDv1.cxx:36
 AliITSRawStreamSSDv1.cxx:37
 AliITSRawStreamSSDv1.cxx:38
 AliITSRawStreamSSDv1.cxx:39
 AliITSRawStreamSSDv1.cxx:40
 AliITSRawStreamSSDv1.cxx:41
 AliITSRawStreamSSDv1.cxx:42
 AliITSRawStreamSSDv1.cxx:43
 AliITSRawStreamSSDv1.cxx:44
 AliITSRawStreamSSDv1.cxx:45
 AliITSRawStreamSSDv1.cxx:46
 AliITSRawStreamSSDv1.cxx:47
 AliITSRawStreamSSDv1.cxx:48
 AliITSRawStreamSSDv1.cxx:49
 AliITSRawStreamSSDv1.cxx:50
 AliITSRawStreamSSDv1.cxx:51
 AliITSRawStreamSSDv1.cxx:52
 AliITSRawStreamSSDv1.cxx:53
 AliITSRawStreamSSDv1.cxx:54
 AliITSRawStreamSSDv1.cxx:55
 AliITSRawStreamSSDv1.cxx:56
 AliITSRawStreamSSDv1.cxx:57
 AliITSRawStreamSSDv1.cxx:58
 AliITSRawStreamSSDv1.cxx:59
 AliITSRawStreamSSDv1.cxx:60
 AliITSRawStreamSSDv1.cxx:61
 AliITSRawStreamSSDv1.cxx:62
 AliITSRawStreamSSDv1.cxx:63
 AliITSRawStreamSSDv1.cxx:64
 AliITSRawStreamSSDv1.cxx:65
 AliITSRawStreamSSDv1.cxx:66
 AliITSRawStreamSSDv1.cxx:67
 AliITSRawStreamSSDv1.cxx:68
 AliITSRawStreamSSDv1.cxx:69
 AliITSRawStreamSSDv1.cxx:70
 AliITSRawStreamSSDv1.cxx:71
 AliITSRawStreamSSDv1.cxx:72
 AliITSRawStreamSSDv1.cxx:73
 AliITSRawStreamSSDv1.cxx:74
 AliITSRawStreamSSDv1.cxx:75
 AliITSRawStreamSSDv1.cxx:76
 AliITSRawStreamSSDv1.cxx:77
 AliITSRawStreamSSDv1.cxx:78
 AliITSRawStreamSSDv1.cxx:79
 AliITSRawStreamSSDv1.cxx:80
 AliITSRawStreamSSDv1.cxx:81
 AliITSRawStreamSSDv1.cxx:82
 AliITSRawStreamSSDv1.cxx:83
 AliITSRawStreamSSDv1.cxx:84