Line data Source code
1 : #ifndef ALIPHOSCPVRAWDIGIPRODUCER_H
2 : #define ALIPHOSCPVRAWDIGIPRODUCER_H
3 :
4 : // This class produces CPV digits from raw data stream of one event
5 : // Raw data is supplied by the object AliRawReader,
6 : // then AliPHOSCpvRawDigiProducer decodes CPV data and converts is to AliPHOSDigits.
7 : //!
8 : // Author: Mikhail Stolpovskiy, mikhail.stolpovskiy@cern.ch
9 : // modified by Sergey.Evdokimov@cern.ch 30 July 2014
10 :
11 : #include "TObject.h"
12 : #include "TH1I.h"
13 : #include "TH2I.h"
14 :
15 : #include "AliAltroMapping.h"
16 : #include "AliRawReaderDate.h"
17 : #include "AliPHOSCpvParam.h"
18 : #include "AliPHOSCalibData.h"
19 :
20 : class AliPHOSCpvRawStream;
21 : class AliPHOSDigit ;
22 : class AliPHOSGeometry ;
23 : class AliPHOSCalibData;
24 :
25 0 : class AliPHOSCpvRawDigiProducer: public TObject {
26 :
27 : public:
28 :
29 : AliPHOSCpvRawDigiProducer() ;
30 : AliPHOSCpvRawDigiProducer(AliRawReader * rawReader); // creates an AliPHOSCpvRawStream(rawReader) object to read data
31 :
32 : virtual ~AliPHOSCpvRawDigiProducer();
33 : void SetPermanentBadMap(TH2I* badMap,int iDDL);
34 : Bool_t LoadPedFiles(); //returns true if ok. Must be called when you process a phys run
35 : //If ped files are loaded, then MakeDigits returns digits with
36 : //substruct pedestals from ADCs
37 :
38 : Bool_t LoadNewEvent(AliRawReader * rawReader); // returns true, if ok
39 : void SetTurbo(Bool_t turbo); // if turbo==true then do read without error checking
40 0 : Bool_t GetTurbo() const {return fTurbo;}
41 :
42 : void MakeDigits(TClonesArray * digits) const; // digits is an array of AliPHOSCpvPHOSDigit objects
43 0 : TH1I * GetErrorsHist() const { return fhErrors; } // takes histogram of errors from AliPHOSCpvRawStream
44 :
45 8 : void SetCpvMinAmp(Int_t cpvMin) { fCpvMinE=cpvMin; } // thresholds would be ped + fCpvMinE
46 :
47 8 : void SetCalibData(AliPHOSCalibData* cd){fCalibData = cd;}
48 : protected:
49 : void CreateErrHist(); // initialize histogram of errors
50 : private:
51 : AliPHOSGeometry * fGeom ; //! PHOS geometry
52 : Bool_t fTurbo; // if true, then read without error checking
53 : Int_t fCpvMinE ; // minimum energy of digit (ADC)
54 : AliPHOSCpvRawStream * fRawStream; //! Raw data stream
55 :
56 : TH1I * fhErrors; // ! histogram of errors
57 : TH2I* fPermanentBadMap[2*AliPHOSCpvParam::kNDDL];
58 :
59 : Int_t ** fPed[2][2*AliPHOSCpvParam::kNDDL]; // pedestals ped[0][iddl][x][y] = pedestal; ped[1][iddl][x][y] = N*sigma (N was used while creating ped files)
60 : Bool_t fPedFilesRLoaded;
61 :
62 : AliPHOSCalibData* fCalibData;
63 :
64 30 : ClassDef(AliPHOSCpvRawDigiProducer,2);
65 : };
66 :
67 : #endif
|