]>
Commit | Line | Data |
---|---|---|
4347b38f | 1 | // -*- mode: c++ -*- |
2 | // | |
3 | // | |
4 | #ifndef ALIFMDRAWSTREAM_H | |
5 | #define ALIFMDRAWSTREAM_H | |
6 | ||
7 | #ifndef ALIALTRORAWSTREAM_H | |
8 | # include <AliAltroRawStream.h> | |
9 | #endif | |
10 | ||
11 | ||
12 | // TPC to FMD translations | |
13 | // | |
14 | // TPC FMD | |
15 | // ----------+----------- | |
16 | // pad+time | strip | |
17 | // row | sector | |
18 | // sector | ring | |
19 | // | |
20 | class AliFMDRawStream : public AliAltroRawStream | |
21 | { | |
22 | private: | |
23 | UShort_t fSampleRate; // # of ALTRO samples per VA1_ALICE clock | |
24 | // UChar_t* fMyData; | |
25 | // Int_t fMyPosition; | |
26 | // Int_t fMyCount; | |
27 | // Int_t fMyBunchLength; | |
28 | Int_t fPrevTime; | |
29 | protected: | |
30 | // UShort_t Get10BitWord(UChar_t* buffer, Int_t position) const; | |
31 | public: | |
32 | AliFMDRawStream(AliRawReader* reader); | |
33 | ||
34 | Short_t Sector() const { return fRow; } | |
35 | Char_t Ring() const { return (fSector == 0 ? 'I' : 'O'); } | |
36 | Short_t Strip() const { return fPad + fTime / fSampleRate; } | |
37 | Short_t PrevSector() const { return fPrevRow; } | |
38 | Char_t PrevRing() const { return (fPrevSector == 0 ? 'I' : 'O'); } | |
39 | Short_t PrevStrip() const { return fPrevPad + fPrevTime/fSampleRate; } | |
40 | ||
41 | Bool_t IsNewRing() const { return (fSector != fPrevSector); } | |
42 | Bool_t IsNewSector() const { return (fRow != fPrevRow) || IsNewRing(); } | |
43 | Bool_t IsNewStrip() const { return(Strip() != PrevStrip())||IsNewSector();} | |
44 | ||
45 | Short_t Count() const { return fSignal; } | |
46 | Short_t SampleRate() const { return fSampleRate; } | |
47 | ||
48 | virtual Bool_t Next(); | |
49 | ||
50 | ClassDef(AliFMDRawStream, 0) // Read raw FMD Altro data | |
51 | }; | |
52 | ||
53 | #endif |