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 */
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.
12 #include "AliCaloRawStream.h"
16 class AliPHOSCalibData ;
18 class AliPHOSRawDecoder {
23 AliPHOSRawDecoder(AliRawReader* rawReader, AliAltroMapping **mapping = NULL);
24 AliPHOSRawDecoder(const AliPHOSRawDecoder& rawDecoder);
25 AliPHOSRawDecoder& operator = (const AliPHOSRawDecoder& rawDecoder);
26 virtual ~AliPHOSRawDecoder();
28 virtual Bool_t NextDigit();
30 void SubtractPedestals(Bool_t subtract) {fPedSubtract=subtract;}
31 void SetAmpOffset(Int_t extPed=5){fAmpOffset=extPed ;}
33 Double_t GetEnergy() const { return fEnergy; }
34 Double_t GetTime() const { return fTime; }
35 Double_t GetSampleQuality() const {return fQuality ;}
36 Double_t GetPedestalRMS() const {return fPedestalRMS ;}
37 Int_t GetModule() const { return fModule; }
38 Int_t GetColumn() const { return fColumn; }
39 Int_t GetRow() const { return fRow; }
40 Bool_t IsLowGain() const { return fLowGainFlag; }
41 Bool_t IsOverflow() const { return fOverflow ;}
43 const AliRawReader* GetRawReader() const { return fRawReader; }
44 void SetCalibData(AliPHOSCalibData * cdata){ fCalibData=cdata ;}
48 AliRawReader* fRawReader; // raw data reader
49 AliCaloRawStream* fCaloStream; // PHOS/EMCAL raw data stream
50 Bool_t fPedSubtract; // pedestals subtraction (kTRUE="yes")
53 Double_t fEnergy; // "digit" energy
54 Double_t fTime; // "digit" time
55 Double_t fQuality ; //Sample quality
56 Double_t fPedestalRMS; //calciulated RMS of pedestal (non-ZS runs)
57 Int_t fAmpOffset ; //Pedestal offset from ALTRO chips
58 Int_t fModule; // PHOS module number (1-5)
59 Int_t fColumn; // column in the module
61 Int_t fNewModule; // PHOS module number (1-5) of keeped sample
62 Int_t fNewColumn; // column in the module of keeped sample
63 Int_t fNewRow; // row of keeped sample
64 Int_t fNewAmp ; //Keeped amp
65 Int_t fNewTime ; //Time of keeped sample
66 Bool_t fLowGainFlag; //True if sample read from Low Gain
67 Bool_t fNewLowGainFlag; // fLowGainFlag of keeped sample
68 Bool_t fOverflow ; //Wether there was overflow
69 TArrayI* fSamples; // array of samples
70 TArrayI* fTimes ; // array of times corresponding to samples
71 AliPHOSCalibData * fCalibData ; //! Calibration database if avalable
74 ClassDef(AliPHOSRawDecoder,2)