]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSRawDecoder.h
Runloader is updated when moving to next file (quick fix).
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRawDecoder.h
1 #ifndef ALIPHOSRAWDECODER_H
2 #define ALIPHOSRAWDECODER_H
3 /* Copyright(c) 2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                          */
5
6 /* $Id$ */
7
8 // This class extracts the PHOS "digits" of current event
9 // (amplitude,time, position,gain) from the raw stream 
10 // provided by AliRawReader. See cxx source for use case.
11
12 #include "AliRawReader.h"
13 #include "AliCaloRawStream.h"
14
15 class AliPHOSRawDecoder {
16
17 public:
18
19   AliPHOSRawDecoder();
20   AliPHOSRawDecoder(AliRawReader* rawReader);
21   AliPHOSRawDecoder(const AliPHOSRawDecoder& rawDecoder);
22   AliPHOSRawDecoder& operator = (const AliPHOSRawDecoder& rawDecoder);
23   virtual ~AliPHOSRawDecoder();
24
25   virtual Bool_t NextDigit();
26
27   void SetOldRCUFormat(Bool_t isOldRCU) {fCaloStream->SetOldRCUFormat(isOldRCU);}
28   void SubtractPedestals(Bool_t subtract) {fPedSubtract=subtract;}
29
30   Double_t GetEnergy() { return fEnergy; }
31   Double_t GetTime() { return fTime; }
32   Int_t GetModule() { return fModule; }
33   Int_t GetColumn() { return fColumn; }
34   Int_t GetRow() { return fRow; }
35   Bool_t IsLowGain() { return fCaloStream->IsLowGain(); }
36
37 protected:   
38   
39   AliRawReader* fRawReader;      // raw data reader
40   AliCaloRawStream* fCaloStream; // PHOS/EMCAL raw data stream
41   Bool_t fPedSubtract;           // pedestals subtraction (kTRUE="yes")
42
43 private:
44
45   Double_t fEnergy; // "digit" energy
46   Double_t fTime;   // "digit" time
47   Int_t fModule;    // PHOS module number (1-5)
48   Int_t fColumn;    // column in the module
49   Int_t fRow;       // row
50   
51   ClassDef(AliPHOSRawDecoder,1)
52 };
53
54 #endif