LCOV - code coverage report
Current view: top level - ITS/ITSrec - AliITSOnlineSDDCMN.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 19 5.3 %
Date: 2016-06-14 17:26:59 Functions: 1 22 4.5 %

          Line data    Source code
       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           0 : class AliITSOnlineSDDCMN : public AliITSOnlineSDD {
      16             : 
      17             :  public:
      18             :   AliITSOnlineSDDCMN();
      19             :   AliITSOnlineSDDCMN(Int_t nddl, Int_t ncarlos, Int_t sid);
      20             :   virtual ~AliITSOnlineSDDCMN();
      21             :   void Reset();
      22             :   TH2F* GetCleanEvent(const TH2F* hrawd) const;
      23             :   void AddEvent(TH2F* hrawd);
      24             :   void ValidateAnodes();
      25             :   void ValidateModule();
      26             :   void ReadBaselines();
      27             : 
      28           0 :   void SetMinNoise(Float_t ns=0.001){fMinCorrNoise=ns;}
      29           0 :   void SetMaxNoise(Float_t ns=9.){fMaxCorrNoise=ns;}
      30           0 :   void SetNSigmaNoise(Float_t ns=4.){fNSigmaNoise=ns;}
      31           0 :   void SetMinNumGoodAnForGoodMod(Int_t cut=16){fMinNumGoodAnForGoodMod=cut;}
      32           0 :   void SetCutOnGoodAnodeClusterSize(Int_t clu=5){fMinClusterOfGoodAn=clu;}
      33             : 
      34           0 :   Bool_t IsAnodeGood(Int_t iAnode)const{ return fGoodAnode[iAnode];}
      35             :   Int_t CountGoodAnodes() const{
      36             :     Int_t nGdAn=0;
      37           0 :     for(Int_t ian=0;ian<fgkNAnodes;ian++) if(fGoodAnode[ian]) nGdAn++;  
      38           0 :     return nGdAn;
      39             :   }
      40             : 
      41           0 :   Float_t GetAnodeBaseline(Int_t iAnode) const{ return fBaseline[iAnode];}
      42           0 :   Int_t GetAnodeEqualizedBaseline(Int_t iAnode) const{ return fEqBaseline[iAnode];}
      43           0 :   Int_t GetAnodeBaselineOffset(Int_t iAnode) const{ return fOffsetBaseline[iAnode];}
      44           0 :   Float_t GetAnodeRawNoise(Int_t iAnode) const{ return fRawNoise[iAnode];}
      45           0 :   Float_t GetAnodeCommonMode(Int_t iAnode) const{ return fCMN[iAnode];}
      46             :   Float_t GetAnodeCorrNoise(Int_t iAnode) const{
      47           0 :     if(fNEvents>0) return fSumCorrNoise[iAnode]/fNEvents;
      48           0 :     else return 0;
      49           0 :   }
      50             : 
      51             :   Float_t CalcMeanNoise() const;
      52           0 :   Int_t GetNEvents() const {return fNEvents;}
      53             :   
      54             :   TH1F* GetBaselineAnodeHisto() const;
      55             :   TH1F* GetRawNoiseAnodeHisto() const;
      56             :   TH1F* GetCorrNoiseAnodeHisto() const;
      57             :   TH1F* GetCMNCoefAnodeHisto() const;
      58             :   TH1F* GetStatusAnodeHisto() const;
      59             :   TH1F* GetBaselineHisto() const;
      60             :   TH1F* GetRawNoiseHisto() const;
      61             :   TH1F* GetCorrNoiseHisto() const;
      62             : 
      63             :   void WriteToASCII();
      64             :   Bool_t WriteToROOT(TFile *fil);
      65             : 
      66             :  protected:
      67             : 
      68             :  private:
      69             :   Int_t fNEvents;                    // number of events
      70             :   Int_t fLowThreshold;             // low threshold for zero supp.
      71             :   Int_t fHighThreshold;            // high threshold for zero supp.
      72             :   Bool_t fGoodAnode[fgkNAnodes];     // anode quality: good(1) - bad (0)
      73             :   Float_t fBaseline[fgkNAnodes];     // array of anode baselines
      74             :   Int_t fEqBaseline[fgkNAnodes];     // array of anode baselines after equalization
      75             :   Int_t fOffsetBaseline[fgkNAnodes]; // array of offsets for baseline equal.
      76             :   Float_t fRawNoise[fgkNAnodes];     // array of anode raw noise
      77             :   Float_t fSumCorrNoise[fgkNAnodes]; // corrected noise summed over events
      78             :   Float_t fCMN[fgkNAnodes];          // common mode noise coeff.
      79             :   Float_t fMinCorrNoise;             // Cut value for minimum corrected noise
      80             :   Float_t fMaxCorrNoise;             // Cut value for maximum corrected noise
      81             :   Float_t fNSigmaNoise;              // Cut value for corrected noise (n*sigma)
      82             :   Int_t   fMinNumGoodAnForGoodMod;   // Min. n. good anodes to tag mod as good
      83             :   Int_t   fMinClusterOfGoodAn;       // Min. n. of adjacent good anodes
      84             : 
      85         116 :   ClassDef(AliITSOnlineSDDCMN,4);
      86             : };
      87             : #endif

Generated by: LCOV version 1.11