LCOV - code coverage report
Current view: top level - ITS/ITSrec - AliITSOnlineSPDscanAnalyzer.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 14 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 14 0.0 %

          Line data    Source code
       1             : #ifndef ALIITSONLINESPDSCANANALYZER_H
       2             : #define ALIITSONLINESPDSCANANALYZER_H
       3             : /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : /* $Id$ */
       7             : 
       8             : ////////////////////////////////////////////////////////////
       9             : // Author: Henrik Tydesjo                                 //
      10             : // This class is used in the detector algorithm framework //
      11             : // to process the data stored in special container files  //
      12             : // (see AliITSOnlineSPDscan). For instance, minimum       //
      13             : // threshold values can be extracted.                     //
      14             : ////////////////////////////////////////////////////////////
      15             : 
      16             : #include <TString.h>
      17             : #include <TH1F.h>
      18             : 
      19             : class AliITSOnlineSPDscan;
      20             : class AliITSOnlineCalibrationSPDhandler;
      21             : class TGraph;
      22             : class TH2F;
      23             : class TArrayI;
      24             : 
      25             : class AliITSOnlineSPDscanAnalyzer {
      26             : 
      27             :  public:
      28             :   AliITSOnlineSPDscanAnalyzer(const Char_t *fileName, AliITSOnlineCalibrationSPDhandler *handler, Bool_t readFromGridFile=kFALSE);
      29             :   AliITSOnlineSPDscanAnalyzer(const AliITSOnlineSPDscanAnalyzer& handle);
      30             :   ~AliITSOnlineSPDscanAnalyzer();
      31             : 
      32             :   AliITSOnlineSPDscanAnalyzer& operator=(const AliITSOnlineSPDscanAnalyzer& handle);
      33             : 
      34             :   Bool_t     IsChipPresent(UInt_t hs, UInt_t chipNr);
      35           0 :   Bool_t     IsOverWriteSet() const {return fOverWrite;}
      36           0 :   void       SetCalibHandler(AliITSOnlineCalibrationSPDhandler * const handler) {fHandler=handler;}
      37             :   void       SetParam(const Char_t *pname, const Char_t *pval);
      38             :   void       ReadParamsFromLocation(const Char_t *dirName);
      39             : 
      40           0 :   UInt_t     GetType() const {return fType;}
      41           0 :   UInt_t     GetDacId() const {return fDacId;}
      42             :   
      43             :   Int_t      GetDelay(UInt_t hs, UInt_t chipNr);
      44             :   Int_t      GetMinTh(UInt_t hs, UInt_t chipNr);
      45             :   TArrayI    GetMeanTh(UInt_t hs, UInt_t chipNr);
      46             :   
      47             :   Int_t      GetNrNoisyUnima(UInt_t hs, UInt_t chipNr);
      48             : 
      49             :   Bool_t     ProcessUniformity();
      50             :   Bool_t     ProcessDeadPixels();
      51             :   Bool_t     ProcessNoisyPixels();
      52             : 
      53             :   Bool_t     ProcessNrTriggers();
      54             : 
      55           0 :   AliITSOnlineSPDscan* GetOnlineScan() const {return fScanObj;}
      56             :   UInt_t     GetRouterNr();
      57             :   Bool_t     GetHalfStavePresent(UInt_t hs);
      58             : 
      59             :   TGraph*    GetNrTriggersG();
      60             :   TGraph*    GetMeanMultiplicityG(UInt_t hs, UInt_t chipNr);
      61             :   TGraph*    GetHitEventEfficiencyG(UInt_t hs, UInt_t chipNr);
      62             :   TH2F*      GetHitMapTot(UInt_t step);
      63             :   TH2F*      GetPhysicalHitMapTot(UInt_t step);
      64             :   TH2F*      GetHitMapChip(UInt_t step, UInt_t hs, UInt_t chip);
      65             : 
      66           0 :   Float_t    GetTPeff() const {return fTPeff;}
      67           0 :   TH1F*      GetTPeffHS() const {return fTPeffHS;}
      68           0 :   TH1F*      GetTPeffChip(UInt_t hs) const {return fTPeffChip[hs];}
      69           0 :   Float_t    GetDeadPixel() const {return fDeadPixel;}
      70           0 :   TH1F*      GetDeadPixelHS() const {return fDeadPixelHS;}
      71           0 :   TH1F*      GetDeadPixelChip(UInt_t hs) const {return fDeadPixelChip[hs];}
      72           0 :   Float_t    GetNoisyPixel() const {return fNoisyPixel;}
      73           0 :   TH1F*      GetNoisyPixelHS() const {return fNoisyPixelHS;}
      74           0 :   TH1F*      GetNoisyPixelChip(UInt_t hs) const {return fNoisyPixelChip[hs];}
      75             : 
      76             :  private:
      77             :   UInt_t               fType;           // calib type
      78             :   UInt_t               fDacId;          // dac id
      79             :   TString              fFileName;       // container file name
      80             :   enum                 calibvals{kMINTH,kMEANTH,kDAC,kUNIMA,kNOISE,kDELAY};  // calib types
      81             : 
      82             :   AliITSOnlineSPDscan               *fScanObj;  // container obj
      83             :   AliITSOnlineCalibrationSPDhandler *fHandler;  // calib helper obj
      84             :   Bool_t     fbModuleScanned[240];        // is module used in scan?
      85             : 
      86             :   TGraph*    fMeanMultiplicity[6][11];   // mean mult graphs
      87             :   TGraph*    fHitEventEfficiency[6][11]; // hit event graphs
      88             :   TGraph*    fTriggers;                  // trigger graph
      89             : 
      90             :   // uniformity scan analysis:
      91             :   Float_t    fTPeff;                     // number of good pixels [%] (for full router)
      92             :   TH1F*      fTPeffHS;                   // 6 bin histogram, number good pixels [%] (for each hs)
      93             :   TH1F*      fTPeffChip[6];              // 10 bin histograms, number good pixels [%] (for each chip)
      94             :   Float_t    fDeadPixel;                 // number of dead pixels [%] (for full router)
      95             :   TH1F*      fDeadPixelHS;               // 6 bin histogram, number dead pixels [%] (for each hs)
      96             :   TH1F*      fDeadPixelChip[6];          // 10 bin histograms, number dead pixels [%] (for each chip)
      97             :   Float_t    fNoisyPixel;                // number of 'noisy' pixels [%] (for full router)
      98             :   TH1F*      fNoisyPixelHS;              // 6 bin histogram, number 'noisy' pixels [%] (for each hs)
      99             :   TH1F*      fNoisyPixelChip[6];         // 10 bin histograms, number 'noisy' pixels [%] (for each chip)
     100             :   
     101             :   void       Init(Bool_t readFromGridFile=kFALSE);                     // init
     102             : 
     103             :   void       CreateUniformityHistograms(); // method to create all histograms to be filled by 'ProcessUniformity'
     104             :   void       DeleteUniformityHistograms(); // method to delete all histograms used by uniformity scan analysis
     105             : 
     106             :   Bool_t     ProcessMeanMultiplicity();  // process mean mult
     107             :   Bool_t     ProcessHitEventEfficiency();// process hit event eff
     108             : 
     109             :   Int_t      FindLastMinThDac(UInt_t hs, UInt_t chipNr);  // dac value where fMinIncreaseFromBaseLine reached
     110             :   Int_t      FindClosestLowerStep(Float_t dacValueInput); // step closest (lower) to a dacvalue 
     111             :   Float_t    GetCompareLine(UInt_t step, UInt_t hs, UInt_t chipNr, Float_t basePar2); // line to compare mean mult with
     112             : 
     113             :   // dead noisy parameters:
     114             :   Bool_t     fOverWrite;          // overWrite old dead/noisy or just add new ones to it
     115             :   // noise scan parameters:
     116             :   Float_t    fNoiseThreshold;     // ratio of allowed hits/triggers
     117             :   UInt_t     fNoiseMinimumEvents; // minimum events required to find noisy pixels
     118             :   // min th scan parameters:
     119             :   UInt_t     fMinNrStepsBeforeIncrease; // min nr of steps required before fMinIncreaseFromBaseLine reached
     120             :   Float_t    fMinIncreaseFromBaseLine;  // min increase of mean mult from base line
     121             :   UInt_t     fStepDownDacSafe;          // nr of steps down to put threshold result (to be on the safe side)
     122             :   Float_t    fMaxBaseLineLevel;         // maximum value for the base line to compare with
     123             : 
     124             : 
     125             : 
     126             : };
     127             : 
     128             : #endif
     129             : 
     130             : 

Generated by: LCOV version 1.11