]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDRawStream.h
Complete rewrite of the FMD code.
[u/mrichter/AliRoot.git] / FMD / AliFMDRawStream.h
CommitLineData
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//
20class AliFMDRawStream : public AliAltroRawStream
21{
22private:
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;
29protected:
30 // UShort_t Get10BitWord(UChar_t* buffer, Int_t position) const;
31public:
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