]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/misc/AliL3AltroMemHandler.h
Merged HLT tag v1-2 with ALIROOT tag v3-09-Release.
[u/mrichter/AliRoot.git] / HLT / misc / AliL3AltroMemHandler.h
1 // @(#) $Id$
2
3 #ifndef ALIL3ALTROMEMHANDLER_H
4 #define ALIL3ALTROMEMHANDLER_H
5
6 #include "AliL3RootTypes.h"
7
8 //Maximum size of Altro packet equals 1000 bit
9 #define ALTRO_PACKET_SIZE 125
10
11 //Maximum 10 bit data to be stored in one packet
12 #define MAX_VALS 94
13
14 //Maximum size of array to store whole pad
15 #define ALTRO_SIZE (100*ALTRO_PACKET_SIZE)
16
17 class AliL3AltroMemHandler {
18
19   public: 
20
21    AliL3AltroMemHandler();
22    void Write(UShort_t row, UChar_t pad, UShort_t time, UShort_t charge);
23    Bool_t Read(UShort_t &row, UChar_t &pad, UShort_t &time, UShort_t &charge);
24    Bool_t ReadSequence(UShort_t &row, UChar_t &pad, UShort_t &time, UChar_t &n, UShort_t **charges);
25    void WriteFinal();
26
27    Bool_t SetASCIIOutput(FILE *file);
28    Bool_t SetBinaryOutput(FILE *file);
29    Bool_t SetASCIIInput(FILE *file);
30    Bool_t SetBinaryInput(FILE *file);
31
32   private:
33
34    UShort_t altromem[ALTRO_SIZE];
35    UShort_t times_per_pad[1024];
36    UShort_t charges_per_pad[1024];
37
38    FILE *fInBinary;  //!
39    FILE *fOutBinary; //!
40    UShort_t lrow;
41    UChar_t lpad;
42    UShort_t rrow;  //read row
43    UChar_t rpad;   //read pad
44    UShort_t rtime; //read time
45    UShort_t counter;  //total counter
46    UShort_t tcounter; //time counter
47    UShort_t pcounter; //packet counter
48    UShort_t rcounter; //read counter
49    UShort_t scounter; //sequence counter
50    Bool_t flag; //Binary File?
51
52    void Clear();
53    void ClearRead();
54    void Add(UShort_t charge, UShort_t time);
55    void MakeAltroPackets();
56    void AddTrailer();
57    void Write();
58
59    ClassDef(AliL3AltroMemHandler,1)
60 };
61
62 #endif
63
64
65
66
67
68