TOF QA Task (F. Bellini)
[u/mrichter/AliRoot.git] / RAW / AliAltroBufferV3.h
1 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 /////////////////////////////////////////////////////
5 // Class used for read-write the ALTRO data format //
6 /////////////////////////////////////////////////////
7
8 /*This class is an interface between the altro format file and the 
9   user, and can be used in write or read mode
10   In the write mode a new altro file is created and filled using the method FillBuffer().
11   The name of the file is specified as parameter in the constructor as well as the type mode.
12   In the Read mode the specified file is open and the values can be read using the
13   methods GetNext() and GetNextBackWord().
14   The first method is used to read the file forward while the second is used to read backward 
15 */
16
17 #ifndef AliALTROBUFFERV3_H
18 #define AliALTROBUFFERV3_H
19
20 #include "AliAltroBuffer.h"
21
22 class AliAltroBufferV3: public AliAltroBuffer {
23  public:
24   AliAltroBufferV3(const char* fileName, AliAltroMapping *mapping = NULL);
25   virtual ~AliAltroBufferV3();
26
27   virtual void  FillBuffer(Int_t val);
28   //this method stores a word into the buffer
29
30   virtual void  WriteTrailer(Int_t wordsNumber, Short_t hwAddress); 
31   //this method is used to write the trailer
32
33   virtual UChar_t WriteRCUTrailer(Int_t rcuId);
34   //this method is used to write the RCU trailer
35
36   enum { kMaxWords = 1024 };
37
38  protected:
39   void          ReverseAndWrite();
40   //this method reverse the altro data order and write the buffer to the file
41
42   AliAltroBufferV3(const AliAltroBufferV3& source);
43   AliAltroBufferV3& operator = (const AliAltroBufferV3& source);
44
45   UShort_t fArray[kMaxWords]; // Temporary array needed in reverting data order
46   Int_t    fN;                // Size of the temporary array
47
48   ClassDef(AliAltroBufferV3,0)  // Interface to the Altro format
49 };
50
51 #endif