]>
Commit | Line | Data |
---|---|---|
1 | #ifndef AliHMPIDCalib_h | |
2 | #define AliHMPIDCalib_h | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | // Class of HMPID to manage digits ---> pads | |
7 | //. | |
8 | //. | |
9 | //. | |
10 | ||
11 | //#include "TTreePlayer.h" | |
12 | //#include <TTree.h> | |
13 | #include <TH1.h> | |
14 | #include <TH2.h> | |
15 | //#include <TH1S.h> | |
16 | #include <TMath.h> | |
17 | #include <TFile.h> | |
18 | #include "AliHMPIDParam.h" | |
19 | #include "AliHMPIDRawStream.h" | |
20 | ||
21 | class TFile; | |
22 | class AliHMPIDCalib: public TObject { | |
23 | ||
24 | ||
25 | public: | |
26 | AliHMPIDCalib(); | |
27 | virtual ~AliHMPIDCalib(); | |
28 | void Init(); | |
29 | void FillPedestal(Int_t pad,Int_t q); //absolute pad number and the charge of the pad | |
30 | void FillErrors(Int_t nDDL,Int_t nErrType, Int_t nErr); //Fill the errors from RawStream | |
31 | void FillDDLCnt(Int_t iddl,Int_t inDDL, Int_t outDDL); //Fill the errors from RawStream | |
32 | Bool_t CalcPedestal(Int_t nDDL, Char_t* name, Int_t nEv); //number of the DDL, name of the output file and the number of events processed | |
33 | Bool_t WriteErrors(Int_t nDDL, Char_t* name, Int_t nEv); //number of the DDL, name of the output file and the number of events processed | |
34 | void InitHisto(Int_t q,Int_t histocnt,Char_t* name); //Init the pad histograms | |
35 | void FillHisto(Int_t histocnt,Int_t q); //Fill the ADC histograms | |
36 | void InitFile(Int_t inVal); //Init the ADC histo output file (one per LDC or one per DDL) | |
37 | void CloseFile(); //Close the file | |
38 | void SetRunParams(ULong_t runNum,Int_t timeStamp, Int_t ldcId); //Set Run Parameters such as Run Number, TimeStamp, LDCid | |
39 | void SetSigCut(Int_t nSigCut) { fSigCut=nSigCut;} //Set Sigma Cuts from Setter | |
40 | void SetSigCutFromFile(Char_t* name); //Set Sigma Cuts from File | |
41 | void SetWriteHistoPads(Bool_t isOn) {fWritePads=isOn;} //Set wether ADC histos of pads are written or not | |
42 | void SetWriteHistoPads(Bool_t isOn,Bool_t isLarge,Int_t nDDL) {fWritePads=isOn;fLargeHisto=isLarge;fSelectDDL=nDDL;} //Set wether ADC histos of pads are written or not | |
43 | Bool_t GetWritePads() const{return fWritePads;} //Set wether ADC histos of pads are written or not | |
44 | Bool_t GetLargePads() const{return fLargeHisto;} //Set wether ADC histos of pads are written or not | |
45 | Bool_t GetSelectedDDL() const{return fSelectDDL;} //Set wether ADC histos of pads are written or not | |
46 | protected: | |
47 | ||
48 | Bool_t *faddl; //check is ddl is filled | |
49 | Float_t ****fsq; //Sum of pad Q | |
50 | Float_t ****fsq2; //Sum of pad Q^2 | |
51 | Int_t ****fnpc; //# of the pad was called with non zero charge | |
52 | Int_t ****fpedQ0; //Check how many times a pad gives 0 charge in pedestal runs | |
53 | Int_t **fErr; // Store the numner of errors for a given error type and a given DDL | |
54 | TH1I **fPadAdc; //Charge distribution for pads | |
55 | Bool_t *fIsPad; //Check if the ADC histo for the pad is booked or not | |
56 | TFile *fFile; //ADC histo output file (one per LDC) | |
57 | UInt_t fLdcId; //Ldc ID | |
58 | UInt_t fTimeStamp; //Time Stamp | |
59 | Int_t fRunNum; //Run Number | |
60 | Int_t fSigCut; //n. of pedestal distribution sigmas used to create zero suppresion table | |
61 | Bool_t fWritePads; //Select wether to write ADC pad histograms or not | |
62 | Int_t *fnDDLInStream; // if the DDL is in the raw data | |
63 | Int_t *fnDDLOutStream; // if the DDL is in the raw data | |
64 | Bool_t fLargeHisto; //Default is kFALSE.if kTRUE then write large pad histograms with 4093 bins!!!! Only if you have 2GB of RAM!!! | |
65 | Int_t fSelectDDL; //Select the DDL to write for the in the large histograms. Only ONE at one time! | |
66 | ||
67 | private: | |
68 | AliHMPIDCalib(const AliHMPIDCalib& c); //dummy copy constructor | |
69 | AliHMPIDCalib &operator=(const AliHMPIDCalib& c); //dummy assignment operator | |
70 | ||
71 | ClassDef(AliHMPIDCalib,3) //HMPID calibration and pedestal class | |
72 | }; | |
73 | #endif |