1 #ifndef ALIITSONLINESPDSCANANALYZER_H
2 #define ALIITSONLINESPDSCANANALYZER_H
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 ////////////////////////////////////////////////////////////
14 class AliITSOnlineSPDscan;
15 class AliITSOnlineCalibrationSPDhandler;
19 class AliITSOnlineSPDscanAnalyzer {
22 AliITSOnlineSPDscanAnalyzer(Char_t *fileName);
23 AliITSOnlineSPDscanAnalyzer(const AliITSOnlineSPDscanAnalyzer& handle);
24 ~AliITSOnlineSPDscanAnalyzer();
26 AliITSOnlineSPDscanAnalyzer& operator=(const AliITSOnlineSPDscanAnalyzer& handle);
28 UInt_t GetType() const {return fType;}
29 UInt_t GetDacId() const {return fDacId;}
31 Int_t GetDelay(UInt_t hs, UInt_t chipNr);
32 Int_t GetMinTh(UInt_t hs, UInt_t chipNr);
34 Int_t GetNrNoisyUnima(UInt_t hs, UInt_t chipNr);
36 Bool_t ProcessDeadPixels(Char_t *oldCalibDir);
37 Bool_t ProcessNoisyPixels(Char_t *oldCalibDir);
38 Bool_t SaveDeadNoisyPixels(UInt_t module, Char_t *calibDir);
40 Bool_t ProcessNrTriggers();
42 AliITSOnlineCalibrationSPDhandler* GetOnlineCalibrationHandler(UInt_t module);
43 AliITSOnlineSPDscan* GetOnlineScan() {return fScanObj;}
45 Bool_t GetHalfStavePresent(UInt_t hs);
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);
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
59 AliITSOnlineSPDscan *fScanObj; // container obj
60 AliITSOnlineCalibrationSPDhandler *fHandler[240]; // calib help objs
62 TGraph* fMeanMultiplicity[6][11]; // mean mult graphs
63 TGraph* fHitEventEfficiency[6][11]; // hit event graphs
64 TGraph* fTriggers; // trigger graph
68 Bool_t ProcessMeanMultiplicity(); // process mean mult
69 Bool_t ProcessHitEventEfficiency();// process hit event eff
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
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