]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSRawStream.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / ITS / AliITSRawStream.h
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                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 ///
10 /// This is a base class for providing access to ITS digits in raw data.
11 ///
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include <TObject.h>
15 #include "AliITSDDLModuleMapSDD.h"
16 #include "AliLog.h"
17
18 class AliRawReader;
19
20
21 class AliITSRawStream: public TObject {
22   public :
23     AliITSRawStream(AliRawReader* rawReader);
24     AliITSRawStream(const AliITSRawStream& stream);
25     AliITSRawStream& operator = (const AliITSRawStream& stream);
26     virtual ~AliITSRawStream() {};
27
28     virtual Bool_t   Next() = 0;
29
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");
40     };
41     virtual void     SetZeroSuppLowThreshold(Int_t /*iMod*/, Int_t /*iSid*/, Int_t /*th*/) {
42       AliError("This method must be implemented in a derived class");
43     };
44     virtual void     SetADCEncoded(Bool_t /*fl*/) {
45       AliError("This method must be implemented in a derived class");
46     };
47
48
49     virtual Int_t     GetCarlosId() const {
50       AliError("This method must be implemented in a derived class");
51       return -1;
52     };
53     virtual Int_t     GetChannel() const {
54       AliError("This method must be implemented in a derived class");
55       return -1;
56     };
57     virtual Int_t     GetJitter()  const {
58       AliError("This method must be implemented in a derived class");
59       return -1;
60     }; 
61
62
63   protected :
64     AliRawReader*    fRawReader;    // object for reading the raw data
65
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)
75                                     //  SSD: strip number
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
79
80     ClassDef(AliITSRawStream, 2) // base class for reading ITS raw digits
81 };
82
83 #endif