c6030844426248455eecd5b05d131d869e776ab9
[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 TH2F;
13 class TGraph;
14 class AliITSOnlineSDDCMN : public AliITSOnlineSDD {
15
16  public:
17   AliITSOnlineSDDCMN();
18   AliITSOnlineSDDCMN(Int_t mod, Int_t sid);
19   virtual ~AliITSOnlineSDDCMN();
20   void Reset();
21   void AddEvent(TH2F* hrawd);
22   void ValidateAnodes();
23   void ReadBaselines();
24
25   void SetMinNoise(Float_t ns=0.001){fMinCorrNoise=ns;}
26   void SetMaxNoise(Float_t ns=9.){fMaxCorrNoise=ns;}
27   void SetNSigmaNoise(Float_t ns=4.){fNSigmaNoise=ns;}
28
29   Bool_t IsAnodeGood(Int_t iAnode)const{ return fGoodAnode[iAnode];}
30   Float_t GetAnodeBaseline(Int_t iAnode) const{ return fBaseline[iAnode];}
31   Float_t GetAnodeRawNoise(Int_t iAnode) const{ return fRawNoise[iAnode];}
32   Float_t GetAnodeCommonMode(Int_t iAnode) const{ return fCMN[iAnode];}
33   Float_t GetAnodeCorrNoise(Int_t iAnode) const{
34     if(fNEvents>0) return fSumCorrNoise[iAnode]/fNEvents;
35     else return 0;
36   }
37
38   Float_t CalcMeanNoise() const;
39   Int_t GetNEvents() const {return fNEvents;}
40   void WriteToASCII();
41   Bool_t WriteToROOT(TFile *fil);
42
43  protected:
44
45  private:
46   Int_t fNEvents;                    // number of events
47   Bool_t fGoodAnode[fgkNAnodes];     // anode quality: good(1) - bad (0)
48   Float_t fBaseline[fgkNAnodes];     // array of anode baselines
49   Float_t fRawNoise[fgkNAnodes];     // array of anode raw noise
50   Float_t fSumCorrNoise[fgkNAnodes]; // corrected noise summed over events
51   Float_t fCMN[fgkNAnodes];          // common mode noise coeff.
52   Float_t fMinCorrNoise;             // Cut value for minimum corrected noise
53   Float_t fMaxCorrNoise;             // Cut value for maximum corrected noise
54   Float_t fNSigmaNoise;              // Cut value for corrected noise (n*sigma)
55
56   ClassDef(AliITSOnlineSDDCMN,1);
57 };
58 #endif