]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/AliFMDRawStream.h
Moved mode lines to end of files
[u/mrichter/AliRoot.git] / FMD / AliFMDRawStream.h
1 #ifndef ALIFMDRAWSTREAM_H
2 #define ALIFMDRAWSTREAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved. 
5  *
6  * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7  *
8  * See cxx source for full Copyright notice                               
9  */
10 #ifndef ALIALTRORAWSTREAM_H
11 # include <AliAltroRawStream.h>
12 #endif 
13
14
15 // TPC to FMD translations 
16 // 
17 //    TPC                FMD
18 //    ----------+-----------
19 //    pad+time  |      strip
20 //    row       |     sector
21 //    sector    |       ring
22 // 
23 class AliFMDRawStream : public AliAltroRawStream 
24 {
25 private:
26   UShort_t fSampleRate; // # of ALTRO samples per VA1_ALICE clock
27   Int_t    fPrevTime;   // Last time bin
28 public:
29   AliFMDRawStream(AliRawReader* reader);
30
31   Short_t Sector()      const { return fRow; }
32   Char_t  Ring()        const { return (fSector == 0 ? 'I' : 'O'); }
33   Short_t Strip()       const { return fPad + fTime / fSampleRate; }
34   Short_t PrevSector()  const { return fPrevRow; }
35   Char_t  PrevRing()    const { return (fPrevSector == 0 ? 'I' : 'O'); }
36   Short_t PrevStrip()   const { return fPrevPad + fPrevTime/fSampleRate; }
37
38   Bool_t  IsNewRing()   const { return (fSector != fPrevSector); }
39   Bool_t  IsNewSector() const { return (fRow != fPrevRow) || IsNewRing(); }
40   Bool_t  IsNewStrip()  const { return(Strip() != PrevStrip())||IsNewSector();}
41     
42   Short_t Count()      const { return fSignal; }
43   Short_t SampleRate() const { return fSampleRate; }
44   
45   virtual Bool_t   Next();
46   
47   ClassDef(AliFMDRawStream, 0) // Read raw FMD Altro data 
48 };
49
50 #endif
51 //____________________________________________________________________
52 //
53 // Local Variables:
54 //   mode: C++
55 // End:
56 //
57 // EOF
58 //