Got rid of class template AliFMD<Type> on request of Federico, who
[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 public:
26   AliFMDRawStream(AliRawReader* reader, UShort_t sampleRate=0);
27
28   Short_t Sector()      const { return fRow; }
29   Char_t  Ring()        const { return (fSector == 0 ? 'I' : 'O'); }
30   Short_t Strip()       const { return fPad + fTime / fSampleRate; }
31   Short_t Sample()      const { return fTime % fSampleRate; }
32   Short_t PrevSector()  const { return fPrevRow; }
33   Char_t  PrevRing()    const { return (fPrevSector == 0 ? 'I' : 'O'); }
34   Short_t PrevStrip()   const { return fPrevPad + fPrevTime/fSampleRate; }
35     
36   Bool_t  IsNewRing()   const { return (fSector != fPrevSector); }
37   Bool_t  IsNewSector() const { return (fRow != fPrevRow) || IsNewRing(); }
38   Bool_t  IsNewStrip()  const { return(Strip() != PrevStrip())||IsNewSector();}
39     
40   Short_t Count()       const { return fSignal; }
41   Short_t SampleRate()  const { return fSampleRate; }
42   
43   virtual Bool_t   Next();
44   
45 private:
46   UShort_t fSampleRate;         // # of ALTRO samples per VA1_ALICE clock
47   Int_t    fPrevTime;           // Last time bin
48   Bool_t   fExplicitSampleRate; // True if the sample rate was set externally
49   
50   ClassDef(AliFMDRawStream, 0) // Read raw FMD Altro data 
51 };
52
53 #endif
54 //____________________________________________________________________
55 //
56 // Local Variables:
57 //   mode: C++
58 // End:
59 //
60 // EOF
61 //