]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSOnlineSPDscanAnalyzer.h
New class which is used by the SPD online detector algorithm (Henrik)
[u/mrichter/AliRoot.git] / ITS / AliITSOnlineSPDscanAnalyzer.h
1 #ifndef ALIITSONLINESPDSCANANALYZER_H
2 #define ALIITSONLINESPDSCANANALYZER_H
3
4 ////////////////////////////////////////////////////////////
5 // Author: Henrik Tydesjo                                 //
6 // This class is used in the detector algorithm framework //
7 // to process the data stored in special container files  //
8 // (see AliITSOnlineSPDscan). For instance, minimum       //
9 // threshold values can be calculated.                    //
10 ////////////////////////////////////////////////////////////
11
12 #include <Rtypes.h>
13
14 class AliITSOnlineSPDscan;
15 class AliITSOnlineCalibrationSPDhandler;
16 class TGraph;
17 class TH2F;
18
19 class AliITSOnlineSPDscanAnalyzer {
20
21  public:
22   AliITSOnlineSPDscanAnalyzer(Char_t *fileName);
23   AliITSOnlineSPDscanAnalyzer(const AliITSOnlineSPDscanAnalyzer& handle);
24   ~AliITSOnlineSPDscanAnalyzer();
25
26   AliITSOnlineSPDscanAnalyzer& operator=(const AliITSOnlineSPDscanAnalyzer& handle);
27
28   UInt_t     GetType() const {return fType;}
29   UInt_t     GetDacId() const {return fDacId;}
30
31   Int_t      GetDelay(UInt_t hs, UInt_t chipNr);
32   Int_t      GetMinTh(UInt_t hs, UInt_t chipNr);
33   
34   Int_t      GetNrNoisyUnima(UInt_t hs, UInt_t chipNr);
35
36   Bool_t     ProcessDeadPixels(Char_t *oldCalibDir);
37   Bool_t     ProcessNoisyPixels(Char_t *oldCalibDir);
38   Bool_t     SaveDeadNoisyPixels(UInt_t module, Char_t *calibDir);
39
40   Bool_t     ProcessNrTriggers();
41
42   AliITSOnlineCalibrationSPDhandler* GetOnlineCalibrationHandler(UInt_t module);
43   AliITSOnlineSPDscan* GetOnlineScan() {return fScanObj;}
44   UInt_t     GetRouterNr();
45   Bool_t     GetHalfStavePresent(UInt_t hs);
46
47   TGraph*    GetNrTriggersG();
48   TGraph*    GetMeanMultiplicityG(UInt_t hs, UInt_t chipNr);
49   TGraph*    GetHitEventEfficiencyG(UInt_t hs, UInt_t chipNr);
50   TH2F*      GetHitMapTot(UInt_t step);
51
52
53  private:
54   UInt_t               fType;           // calib type
55   UInt_t               fDacId;          // dac id
56   Char_t               fFileName[100];  // container file name
57   enum                 calibvals{kMINTH,kMEANTH,kDAC,kUNIMA,kNOISE,kDELAY};  // calib types
58
59   AliITSOnlineSPDscan               *fScanObj;      // container obj
60   AliITSOnlineCalibrationSPDhandler *fHandler[240]; // calib help objs
61
62   TGraph*    fMeanMultiplicity[6][11];   // mean mult graphs
63   TGraph*    fHitEventEfficiency[6][11]; // hit event graphs
64   TGraph*    fTriggers;                  // trigger graph
65
66   void       Init();                     // init
67
68   Bool_t     ProcessMeanMultiplicity();  // process mean mult
69   Bool_t     ProcessHitEventEfficiency();// process hit event eff
70
71   Int_t      FindLastMinThDac(UInt_t hs, UInt_t chipNr);  // dac value where fMinIncreaseFromBaseLine reached
72   Int_t      FindClosestLowerStep(Float_t dacValueInput); // step closest (lower) to a dacvalue 
73   Float_t    GetCompareLine(UInt_t step, UInt_t hs, UInt_t chipNr, Float_t basePar2); // line to compare mean mult with
74
75   // dead noisy parameters:
76   Bool_t     fOverWrite;          // overWrite old dead/noisy or just add new ones to it
77   // noise scan parameters:
78   Float_t    fNoiseThreshold;     // ratio of allowed hits/triggers
79   UInt_t     fNoiseMinimumEvents; // minimum events required to find noisy pixels
80   // min th scan parameters:
81   UInt_t     fMinNrStepsBeforeIncrease; // min nr of steps required before fMinIncreaseFromBaseLine reached
82   Float_t    fMinIncreaseFromBaseLine;  // min increase of mean mult from base line
83   UInt_t     fStepDownDacSafe;          // nr of steps down to put threshold result (to be on the safe side)
84   Float_t    fMaxBaseLineLevel;         // maximum value for the base line to compare with
85
86 };
87
88 #endif