Commiting the new analysis examples
[u/mrichter/AliRoot.git] / ITS / AliITSOnlineSPDscanAnalyzer.h
CommitLineData
f0aa5f6c 1#ifndef ALIITSONLINESPDSCANANALYZER_H
2#define ALIITSONLINESPDSCANANALYZER_H
4ee23d3d 3/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
f0aa5f6c 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 calculated. //
14////////////////////////////////////////////////////////////
15
53ae21ce 16#include <TString.h>
f0aa5f6c 17
18class AliITSOnlineSPDscan;
19class AliITSOnlineCalibrationSPDhandler;
20class TGraph;
21class TH2F;
22
23class AliITSOnlineSPDscanAnalyzer {
24
25 public:
53ae21ce 26 AliITSOnlineSPDscanAnalyzer(const Char_t *fileName);
f0aa5f6c 27 AliITSOnlineSPDscanAnalyzer(const AliITSOnlineSPDscanAnalyzer& handle);
28 ~AliITSOnlineSPDscanAnalyzer();
29
30 AliITSOnlineSPDscanAnalyzer& operator=(const AliITSOnlineSPDscanAnalyzer& handle);
31
53ae21ce 32 void SetParam(const Char_t *pname, const Char_t *pval);
33
f0aa5f6c 34 UInt_t GetType() const {return fType;}
35 UInt_t GetDacId() const {return fDacId;}
4ee23d3d 36 UInt_t GetRouterNr() const {return fRouterNr;}
f0aa5f6c 37
38 Int_t GetDelay(UInt_t hs, UInt_t chipNr);
39 Int_t GetMinTh(UInt_t hs, UInt_t chipNr);
40
41 Int_t GetNrNoisyUnima(UInt_t hs, UInt_t chipNr);
42
43 Bool_t ProcessDeadPixels(Char_t *oldCalibDir);
44 Bool_t ProcessNoisyPixels(Char_t *oldCalibDir);
45 Bool_t SaveDeadNoisyPixels(UInt_t module, Char_t *calibDir);
46
47 Bool_t ProcessNrTriggers();
48
49 AliITSOnlineCalibrationSPDhandler* GetOnlineCalibrationHandler(UInt_t module);
50 AliITSOnlineSPDscan* GetOnlineScan() {return fScanObj;}
51 UInt_t GetRouterNr();
52 Bool_t GetHalfStavePresent(UInt_t hs);
53
54 TGraph* GetNrTriggersG();
55 TGraph* GetMeanMultiplicityG(UInt_t hs, UInt_t chipNr);
56 TGraph* GetHitEventEfficiencyG(UInt_t hs, UInt_t chipNr);
57 TH2F* GetHitMapTot(UInt_t step);
58
59
60 private:
61 UInt_t fType; // calib type
62 UInt_t fDacId; // dac id
4ee23d3d 63 UInt_t fRouterNr; // router nr
53ae21ce 64 TString fFileName; // container file name
f0aa5f6c 65 enum calibvals{kMINTH,kMEANTH,kDAC,kUNIMA,kNOISE,kDELAY}; // calib types
66
67 AliITSOnlineSPDscan *fScanObj; // container obj
68 AliITSOnlineCalibrationSPDhandler *fHandler[240]; // calib help objs
69
70 TGraph* fMeanMultiplicity[6][11]; // mean mult graphs
71 TGraph* fHitEventEfficiency[6][11]; // hit event graphs
72 TGraph* fTriggers; // trigger graph
73
74 void Init(); // init
75
76 Bool_t ProcessMeanMultiplicity(); // process mean mult
77 Bool_t ProcessHitEventEfficiency();// process hit event eff
78
79 Int_t FindLastMinThDac(UInt_t hs, UInt_t chipNr); // dac value where fMinIncreaseFromBaseLine reached
80 Int_t FindClosestLowerStep(Float_t dacValueInput); // step closest (lower) to a dacvalue
81 Float_t GetCompareLine(UInt_t step, UInt_t hs, UInt_t chipNr, Float_t basePar2); // line to compare mean mult with
82
83 // dead noisy parameters:
84 Bool_t fOverWrite; // overWrite old dead/noisy or just add new ones to it
85 // noise scan parameters:
86 Float_t fNoiseThreshold; // ratio of allowed hits/triggers
87 UInt_t fNoiseMinimumEvents; // minimum events required to find noisy pixels
88 // min th scan parameters:
89 UInt_t fMinNrStepsBeforeIncrease; // min nr of steps required before fMinIncreaseFromBaseLine reached
90 Float_t fMinIncreaseFromBaseLine; // min increase of mean mult from base line
91 UInt_t fStepDownDacSafe; // nr of steps down to put threshold result (to be on the safe side)
92 Float_t fMaxBaseLineLevel; // maximum value for the base line to compare with
93
94};
95
96#endif