]>
Commit | Line | Data |
---|---|---|
2906f4c2 | 1 | #ifndef ALIITSRAWSTREAMSDD_H |
2 | #define ALIITSRAWSTREAMSDD_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 | /// | |
1ba0280f | 10 | /// This class provides access to ITS SDD digits in raw data |
11 | /// (default=simulated data). | |
2906f4c2 | 12 | /// |
13 | /////////////////////////////////////////////////////////////////////////////// | |
14 | ||
15 | #include "AliITSRawStream.h" | |
16 | ||
17 | class AliRawReader; | |
18 | ||
19 | ||
20 | class AliITSRawStreamSDD: public AliITSRawStream { | |
21 | public : | |
22 | AliITSRawStreamSDD(AliRawReader* rawReader); | |
23 | virtual ~AliITSRawStreamSDD() {}; | |
24 | ||
25 | virtual Bool_t Next(); | |
26 | ||
1ba0280f | 27 | virtual Int_t GetAnode() const {return fCoord1;} |
28 | virtual Int_t GetTime() const {return fCoord2;} | |
29 | virtual Int_t GetChannel() const {return fChannel;} | |
30 | virtual Int_t ReadJitter() {return 0;} | |
31 | ||
32 | virtual void SetLowCarlosThreshold(Int_t th, Int_t i) {fLowThreshold[i]=th;} | |
33 | ||
34 | static Int_t GetModuleNumber(UInt_t iDDL, UInt_t iModule) | |
35 | {return fgkDDLModuleMap[iDDL][iModule];} | |
2906f4c2 | 36 | |
2906f4c2 | 37 | enum {kDDLsNumber = 12}; // number of DDLs in SDD |
38 | enum {kModulesPerDDL = 22}; // number of modules in each DDL | |
39 | ||
1ba0280f | 40 | |
41 | protected: | |
42 | static const Int_t fgkDDLModuleMap[kDDLsNumber][kModulesPerDDL]; // mapping DDL/module -> module number | |
43 | ||
44 | virtual UInt_t ReadBits(); | |
45 | virtual Int_t DecompAmbra(Int_t value) const; | |
2906f4c2 | 46 | |
38300302 | 47 | static const UInt_t fgkCodeLength[8]; //code length |
2906f4c2 | 48 | |
49 | UInt_t fData; // data read for file | |
1ba0280f | 50 | Int_t fSkip; // number of skipped words |
51 | Int_t fEventId; // event ID from the header | |
52 | Int_t fCarlosId; // carlos ID from the header | |
53 | Int_t fChannel; // current channel | |
54 | Int_t fJitter; // jitter between L0 and pascal stop (x25ns) | |
55 | ULong64_t fChannelData[2]; // packed data for the 2 channels | |
56 | UInt_t fLastBit[2]; // last filled bit in fChannelData | |
57 | UInt_t fChannelCode[2]; // current channel code | |
58 | Bool_t fReadCode[2]; // next bits are code or data | |
59 | UInt_t fReadBits[2]; // number of bits to read | |
60 | Int_t fTimeBin[2]; // current time bin | |
61 | Int_t fAnode[2]; // current anode number | |
62 | Int_t fLowThreshold[2]; // low Carlos threshold | |
63 | ||
2906f4c2 | 64 | |
1ba0280f | 65 | ClassDef(AliITSRawStreamSDD, 1) // class for reading ITS SDD raw digits |
2906f4c2 | 66 | }; |
67 | ||
68 | #endif |