3 #ifndef ALIL3RAWDATAFILEHANDLER_H
4 #define ALIL3RAWDATAFILEHANDLER_H
6 #include "AliL3MemHandler.h"
8 class AliL3RawDataFileHandler:public AliL3MemHandler {
13 ifstream *fInRawPed;//!
16 //found in mapping file
17 UInt_t fNChannels; //number of channels
18 Byte_t *fRow;//! //store the channeln to row mapping
19 Byte_t *fPad;//! //store the channel to pad mapping
20 Short_t **fRowPad;//! //store the row-and-pad to channel mapping
22 Int_t fRowMinUsed; //min row val (found from mapping)
23 Int_t fRowMaxUsed; //max row val (found from mapping)
24 Int_t fPadMinUsed; //min pad val (found from mapping)
25 Int_t fPadMaxUsed; //max pad val (found from mapping)
26 Int_t fNPads[159]; //pads used (found from mapping)
27 Int_t fNTimeBins; //stored in data header
29 Short_t **fPedestals;//! pedestal values, if not used, fPedVal is used
30 Short_t fPedVal; //ped val if not used per channel
32 Short_t **fCharges;//! charge values read from pointer or from file
34 Bool_t fConvert; //convert big/little
35 Int_t Convert4(Int_t i) const; //big2little and vice versa
36 Short_t Convert2(Short_t i) const; //big2little and vice versa
39 AliL3RawDataFileHandler();
40 virtual ~AliL3RawDataFileHandler();
42 void FreeAll(); //like AliL3MemHandler::Free() or AliL3FileHandler::FreeDigitsTree
44 Bool_t SetRawInput(Char_t *name);
45 Bool_t SetRawInput(STDIF *file);
49 Int_t ReadRawInputPointer(const Char_t *ptr);
51 Short_t** GetRawData(Int_t &channels, Int_t & timebins);
53 Bool_t SetRawOutput(Char_t *name);
54 Bool_t SetRawOutput(STDOF *file);
55 void CloseRawOutput();
56 Int_t StoreRawData(Short_t **charges);
58 Bool_t SetMappingFile(Char_t *name);
59 Bool_t SetMappingFile(FILE *file);
60 void CloseMappingFile();
61 Int_t ReadMappingFile();
63 Bool_t SetRawPedestalsInput(Char_t *name);
64 Bool_t SetRawPedestalsInput(STDIF *file);
65 void CloseRawPedestalsInput();
66 Int_t ReadRawPedestalsInput();
68 void SetBig2Little(Bool_t b){fConvert=b;}
69 void SetPedVal(Short_t val){fPedVal=val;}
71 Int_t GetRowMinUsed() const {return fRowMinUsed;} //smallest row number used in the test
72 Int_t GetRowMaxUsed() const {return fRowMaxUsed;} //hightest row number used in the test
73 Int_t GetPadMinUsed() const {return fPadMinUsed;}
74 Int_t GetPadMaxUsed() const {return fPadMaxUsed;}
75 Short_t GetPedVal() const {return fPedVal;}
76 Int_t GetNChannels() const {return fNChannels;}
78 AliL3DigitRowData* RawData2Memory(UInt_t &nrow,Int_t event=-1);
79 Bool_t RawData2CompBinary(Int_t event=-1);
81 ClassDef(AliL3RawDataFileHandler,1) //RawData Filehandler class