]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRawStreamSDD.h
- Adding handling of track info in digits.
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSDD.h
CommitLineData
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
17class AliRawReader;
18
19
20class 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
37 enum {kDDLOffset = 0x200}; // offset for DDL numbers
38 enum {kDDLsNumber = 12}; // number of DDLs in SDD
39 enum {kModulesPerDDL = 22}; // number of modules in each DDL
40
1ba0280f 41
42 protected:
43 static const Int_t fgkDDLModuleMap[kDDLsNumber][kModulesPerDDL]; // mapping DDL/module -> module number
44
45 virtual UInt_t ReadBits();
46 virtual Int_t DecompAmbra(Int_t value) const;
2906f4c2 47
38300302 48 static const UInt_t fgkCodeLength[8]; //code length
2906f4c2 49
50 UInt_t fData; // data read for file
1ba0280f 51 Int_t fSkip; // number of skipped words
52 Int_t fEventId; // event ID from the header
53 Int_t fCarlosId; // carlos ID from the header
54 Int_t fChannel; // current channel
55 Int_t fJitter; // jitter between L0 and pascal stop (x25ns)
56 ULong64_t fChannelData[2]; // packed data for the 2 channels
57 UInt_t fLastBit[2]; // last filled bit in fChannelData
58 UInt_t fChannelCode[2]; // current channel code
59 Bool_t fReadCode[2]; // next bits are code or data
60 UInt_t fReadBits[2]; // number of bits to read
61 Int_t fTimeBin[2]; // current time bin
62 Int_t fAnode[2]; // current anode number
63 Int_t fLowThreshold[2]; // low Carlos threshold
64
2906f4c2 65
1ba0280f 66 ClassDef(AliITSRawStreamSDD, 1) // class for reading ITS SDD raw digits
2906f4c2 67};
68
69#endif