]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRawStreamSDDBeamTest.h
changes to include AliPerformanceMach component (Michael Knichel)
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSDDBeamTest.h
CommitLineData
e2662f55 1#ifndef ALIITSRAWSTREAMSDDBEAMTEST_H
2#define ALIITSRAWSTREAMSDDBEAMTEST_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 class provides access to ITS SDD digits in raw data
11/// (default=simulated data).
12///////////////////////////////////////////////////////////////////////////////
13
14#include "AliITSRawStream.h"
15
16class AliRawReader;
17
18
19class AliITSRawStreamSDDBeamTest: public AliITSRawStream {
20 public :
21 AliITSRawStreamSDDBeamTest(AliRawReader* rawReader);
22
23 virtual ~AliITSRawStreamSDDBeamTest(){};
24
25 virtual Bool_t Next();
26
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 GetCarlosId() const {return fCarlosId;}
31 virtual Int_t GetEventId() const {return fEventId;}
32
33 virtual Int_t ReadJitter(){
34 AliError("Method implemented in only for Nov04 beam test");
35 fJitter=0;
36 return fJitter;
37 }
38 virtual void SetLowCarlosThreshold(Int_t th, Int_t i)
39 {fLowThreshold[i]=th;}
40
41 protected:
42 virtual UInt_t ReadBits();
43 virtual Int_t DecompAmbra(Int_t value) const;
44
45 enum {kModulesPerDDL = 12}; // number of modules in each DDL
46
47 static const UInt_t fgkCodeLength[8]; //code length
48
49 UInt_t fData; // data read for file
50 Int_t fSkip; // counter of header words to be skipped
51 Int_t fEventId; // event ID from header
52 Int_t fCarlosId; // carlos ID
53 Int_t fChannel; // current channel
54 Int_t fJitter; // jitter between L0 and pascal stop (x25ns)
55 ULong64_t fChannelData[kModulesPerDDL][2];// packed data for the 2 channels
56 UInt_t fLastBit[kModulesPerDDL][2]; // last filled bit in fChannelData
57 UInt_t fChannelCode[kModulesPerDDL][2];// current channel code
58 Bool_t fReadCode[kModulesPerDDL][2]; // next bits are code or data
59 UInt_t fReadBits[kModulesPerDDL][2]; // number of bits to read
60
61 Int_t fLowThreshold[2]; // carlos low threshold
62 Int_t fTimeBin[kModulesPerDDL][2]; // current timebin [ncarlos][nchannels]
63 Int_t fAnode[kModulesPerDDL][2]; // current anode [ncarlos][nchannels]
64
65 ClassDef(AliITSRawStreamSDDBeamTest, 1) // class for reading ITS SDD raw digits from beam tests
66};
67
68#endif