masking threshold values were too high - now they are lower - we have only 9 bits
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDCalib.h
21f61e25 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 */
6// Class of HMPID to manage digits ---> pads
3e60bb92 10
11//#include "TTreePlayer.h"
12//#include <TTree.h>
21f61e25 13#include <TH1.h>
0f1281b2 14#include <TH2.h>
606697a8 15//#include <TH1S.h>
3e60bb92 16#include <TMath.h>
3c8e86a0 17#include <TFile.h>
cdd8604a 18#include <TString.h>
2ac899f2 19#include <THnSparse.h>
0f1281b2 20#include "AliHMPIDParam.h"
21#include "AliHMPIDRawStream.h"
21f61e25 22
3c8e86a0 23class TFile;
21f61e25 24class AliHMPIDCalib: public TObject {
28 AliHMPIDCalib();
29 virtual ~AliHMPIDCalib();
30 void Init();
0f1281b2 31 void FillPedestal(Int_t pad,Int_t q); //absolute pad number and the charge of the pad
3c8e86a0 32 void FillErrors(Int_t nDDL,Int_t nErrType, Int_t nErr); //Fill the errors from RawStream
ee812b5b 33 void FillDDLCnt(Int_t iddl,Int_t inDDL, Int_t outDDL); //Fill the errors from RawStream
4969a7fa 34 Bool_t CalcPedestal(Int_t nDDL, Char_t* name, Char_t *name2,Int_t nEv); //number of the DDL, name of the output file and the number of events processed
cdd8604a 35
3c8e86a0 36 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
3c8e86a0 37 void SetRunParams(ULong_t runNum,Int_t timeStamp, Int_t ldcId); //Set Run Parameters such as Run Number, TimeStamp, LDCid
b38ac33a 38 void SetSigCut(Int_t nSigCut) { fSigCut=nSigCut;} //Set Sigma Cuts from Setter
4969a7fa 39 void SetSigCutFromFile(TString name); //Set Sigma Cuts from File
2ac899f2 40 void SetDeadChannelMapFromFile(TString name);
41 Bool_t GetSelectedDDL() const {return fSelectDDL;} //Set wether ADC histos of pads are written or not
42 TH2F *GetPedMeanMap(Int_t iDDL) {return fPedMeanMap[iDDL];}
43 TH2F *GetPedSigMap(Int_t iDDL) {return fPedSigMap[iDDL];}
44 TH1F *GetPedMean(Int_t iChFee) {return f1DPedMean[iChFee];}
45 TH1F *GetPedSigma(Int_t iChFee) {return f1DPedSigma[iChFee];}
46 THnSparse *GetDeadMap() {return fDeadMap;}
21f61e25 47protected:
3c8e86a0 48
ee812b5b 49 Bool_t *faddl; //check is ddl is filled
50 Float_t ****fsq; //Sum of pad Q
51 Float_t ****fsq2; //Sum of pad Q^2
52 Int_t ****fnpc; //# of the pad was called with non zero charge
53 Int_t ****fpedQ0; //Check how many times a pad gives 0 charge in pedestal runs
54 Int_t **fErr; // Store the numner of errors for a given error type and a given DDL
55 TH1I **fPadAdc; //Charge distribution for pads
56 Bool_t *fIsPad; //Check if the ADC histo for the pad is booked or not
57 TFile *fFile; //ADC histo output file (one per LDC)
58 UInt_t fLdcId; //Ldc ID
59 UInt_t fTimeStamp; //Time Stamp
60 Int_t fRunNum; //Run Number
61 Int_t fSigCut; //n. of pedestal distribution sigmas used to create zero suppresion table
ee812b5b 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!
2ac899f2 66 THnSparse *fDeadMap; //Dead Channel Map
67 TH2F **fPedMeanMap; //2D mean pedestal map to export to AMORE
68 TH2F **fPedSigMap; //2D pedestal sigma map to export to AMORE
69 TH1F **f1DPedMean; //1D mean pedestal map to export to AMORE
70 TH1F **f1DPedSigma; //1D pedestal sigma map to export to AMORE
72 private:
74 AliHMPIDCalib(const AliHMPIDCalib& c); //dummy copy constructor
75 AliHMPIDCalib &operator=(const AliHMPIDCalib& c); //dummy assignment operator
77 ClassDef(AliHMPIDCalib,4) //HMPID calibration and pedestal class
21f61e25 78};
4969a7fa 80