New methods for retrieving QA histograms + coding conventions (F.Prino)
[u/mrichter/AliRoot.git] / ITS / AliITSOnlineSDDCMN.h
1 #ifndef ALIITSONLINESDDCMN_H
2 #define ALIITSONLINESDDCMN_H
3
4 ///////////////////////////////////////////////////////////////////
5 //                                                               //
6 // Class used for SDD noise corrected for common mode analysis   //
7 // Origin: F.Prino, Torino, prino@to.infn.it                     //
8 //                                                               //
9 ///////////////////////////////////////////////////////////////////
10 #include "AliITSOnlineSDD.h"
11
12 class TH1F;
13 class TH2F;
14 class TGraph;
15 class AliITSOnlineSDDCMN : public AliITSOnlineSDD {
16
17  public:
18   AliITSOnlineSDDCMN();
19   AliITSOnlineSDDCMN(Int_t mod, Int_t sid);
20   virtual ~AliITSOnlineSDDCMN();
21   void Reset();
22   void AddEvent(TH2F* hrawd);
23   void ValidateAnodes();
24   void ReadBaselines();
25
26   void SetMinNoise(Float_t ns=0.001){fMinCorrNoise=ns;}
27   void SetMaxNoise(Float_t ns=9.){fMaxCorrNoise=ns;}
28   void SetNSigmaNoise(Float_t ns=4.){fNSigmaNoise=ns;}
29
30   Bool_t IsAnodeGood(Int_t iAnode)const{ return fGoodAnode[iAnode];}
31   Float_t GetAnodeBaseline(Int_t iAnode) const{ return fBaseline[iAnode];}
32   Float_t GetAnodeRawNoise(Int_t iAnode) const{ return fRawNoise[iAnode];}
33   Float_t GetAnodeCommonMode(Int_t iAnode) const{ return fCMN[iAnode];}
34   Float_t GetAnodeCorrNoise(Int_t iAnode) const{
35     if(fNEvents>0) return fSumCorrNoise[iAnode]/fNEvents;
36     else return 0;
37   }
38
39   Float_t CalcMeanNoise() const;
40   Int_t GetNEvents() const {return fNEvents;}
41   
42   TH1F* GetBaselineAnodeHisto() const;
43   TH1F* GetRawNoiseAnodeHisto() const;
44   TH1F* GetCorrNoiseAnodeHisto() const;
45   TH1F* GetBaselineHisto() const;
46   TH1F* GetRawNoiseHisto() const;
47   TH1F* GetCorrNoiseHisto() const;
48
49   void WriteToASCII();
50   Bool_t WriteToROOT(TFile *fil);
51
52  protected:
53
54  private:
55   Int_t fNEvents;                    // number of events
56   Bool_t fGoodAnode[fgkNAnodes];     // anode quality: good(1) - bad (0)
57   Float_t fBaseline[fgkNAnodes];     // array of anode baselines
58   Float_t fRawNoise[fgkNAnodes];     // array of anode raw noise
59   Float_t fSumCorrNoise[fgkNAnodes]; // corrected noise summed over events
60   Float_t fCMN[fgkNAnodes];          // common mode noise coeff.
61   Float_t fMinCorrNoise;             // Cut value for minimum corrected noise
62   Float_t fMaxCorrNoise;             // Cut value for maximum corrected noise
63   Float_t fNSigmaNoise;              // Cut value for corrected noise (n*sigma)
64
65   ClassDef(AliITSOnlineSDDCMN,1);
66 };
67 #endif