1 #ifndef ALIITSRAWSTREAM_H
2 #define ALIITSRAWSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ///////////////////////////////////////////////////////////////////////////////
10 /// This is a base class for providing access to ITS digits in raw data.
12 ///////////////////////////////////////////////////////////////////////////////
15 #include "AliITSDDLModuleMapSDD.h"
21 class AliITSRawStream: public TObject {
23 AliITSRawStream(AliRawReader* rawReader);
24 AliITSRawStream(const AliITSRawStream& stream);
25 AliITSRawStream& operator = (const AliITSRawStream& stream);
26 virtual ~AliITSRawStream() {};
28 virtual Bool_t Next() = 0;
30 Int_t GetModuleID() const {return fModuleID;};
31 Int_t GetPrevModuleID() const {return fPrevModuleID;};
32 Bool_t IsNewModule() const {return fModuleID != fPrevModuleID;};
33 Int_t GetCoord1() const {return fCoord1;};
34 Int_t GetCoord2() const {return fCoord2;};
35 Int_t GetSignal() const {return fSignal;};
36 virtual Bool_t IsCompletedModule() const {return fCompletedModule;};
37 virtual Bool_t IsCompletedDDL() const {return fCompletedDDL;};
38 virtual void SetDDLModuleMap(AliITSDDLModuleMapSDD* /*ddlsdd*/){
39 AliError("This method must be implemented in a derived class");
41 virtual void SetZeroSuppLowThreshold(Int_t /*iMod*/, Int_t /*iSid*/, Int_t /*th*/) {
42 AliError("This method must be implemented in a derived class");
44 virtual void SetADCEncoded(Bool_t /*fl*/) {
45 AliError("This method must be implemented in a derived class");
49 virtual Int_t GetCarlosId() const {
50 AliError("This method must be implemented in a derived class");
53 virtual Int_t GetChannel() const {
54 AliError("This method must be implemented in a derived class");
57 virtual Int_t GetJitter() const {
58 AliError("This method must be implemented in a derived class");
64 AliRawReader* fRawReader; // object for reading the raw data
66 Int_t fModuleID; // index of current module
67 Int_t fPrevModuleID; // index of previous module
68 Int_t fCoord1; // current 1st coordinate
69 // SPD: column cell number (z)
70 // SDD: anode cell number (z)
71 // SSD: N/P, flag for side
72 Int_t fCoord2; // current 2nd coordinate
73 // SPD: row cell number (y)
74 // SDD: time bin number (y)
76 Int_t fSignal; // signal in ADC counts
77 Bool_t fCompletedModule; // set to kTRUE when all data from a module (SDD) are read
78 Bool_t fCompletedDDL; // set to kTRUE when all data from a DDL (SDD) are read
80 ClassDef(AliITSRawStream, 2) // base class for reading ITS raw digits