6727e2db |
1 | #ifndef ALIITSONLINESPDPHYSANALYZER_H |
2 | #define ALIITSONLINESPDPHYSANALYZER_H |
3 | /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | |
6 | //////////////////////////////////////////////////////////// |
7 | // Author: Henrik Tydesjo // |
8 | // This class is used in the detector algorithm framework // |
9 | // to process the data stored in special container files // |
10 | // (see AliITSOnlineSPDphys). // |
11 | //////////////////////////////////////////////////////////// |
12 | |
13 | #include <TString.h> |
14 | |
15 | class AliITSOnlineSPDphys; |
16 | class AliITSOnlineCalibrationSPDhandler; |
17 | class TGraph; |
18 | class TH2F; |
19 | |
20 | class AliITSOnlineSPDphysAnalyzer { |
21 | |
22 | public: |
6ddf3d66 |
23 | AliITSOnlineSPDphysAnalyzer(const Char_t *fileName, AliITSOnlineCalibrationSPDhandler* handler, Bool_t readFromGridFile=kFALSE); |
6727e2db |
24 | AliITSOnlineSPDphysAnalyzer(AliITSOnlineSPDphys* physObj, AliITSOnlineCalibrationSPDhandler* handler); |
25 | AliITSOnlineSPDphysAnalyzer(const AliITSOnlineSPDphysAnalyzer& handle); |
26 | ~AliITSOnlineSPDphysAnalyzer(); |
27 | |
28 | AliITSOnlineSPDphysAnalyzer& operator=(const AliITSOnlineSPDphysAnalyzer& handle); |
29 | |
30 | void SetCalibHandler(AliITSOnlineCalibrationSPDhandler *handler) {fHandler=handler;} |
31 | void SetParam(const Char_t *pname, const Char_t *pval); |
32 | void ReadParamsFromLocation(const Char_t *dirName); |
33 | |
34 | UInt_t ProcessDeadPixels(); |
35 | UInt_t ProcessNoisyPixels(); |
36 | |
37 | UInt_t GetNrEnoughStatChips(); |
38 | UInt_t GetNrDeadChips(); |
39 | UInt_t GetNrInefficientChips(); |
40 | UInt_t GetNrNeedsMoreStatChips(); |
41 | |
42 | AliITSOnlineSPDphys* GetOnlinePhys() {return fPhysObj;} |
43 | UInt_t GetEqNr() const; |
44 | UInt_t GetNrEvents() const; |
45 | |
46 | TH2F* GetHitMapTot(); |
47 | TH2F* GetHitMapChip(UInt_t hs, UInt_t chip); |
48 | |
49 | private: |
50 | TString fFileName; // container file name |
51 | enum calibvals{kMINTH,kMEANTH,kDAC,kUNIMA,kNOISE,kDELAY}; // calib types |
52 | AliITSOnlineSPDphys *fPhysObj; // container obj |
53 | AliITSOnlineCalibrationSPDhandler *fHandler; // calib helper obj |
6ddf3d66 |
54 | void Init(Bool_t readFromGridFile=kFALSE); // initialization |
6727e2db |
55 | void Exponent(Double_t &val, Int_t &valExp) const; |
56 | |
57 | UInt_t fNrEnoughStatChips; // nr of enough stat chips |
58 | UInt_t fNrDeadChips; // nr of dead chips |
59 | UInt_t fNrInefficientChips; // nr of inefficient chips |
60 | |
61 | Double_t fNrEqHits; // total nr of hits for associated eq |
62 | Bool_t fbDeadProcessed; // flag to tell if ProcessDeadPixels has been called |
63 | |
64 | // dead noisy parameters: |
65 | Double_t fThreshNoisy; // at what confidence level do we search for noisy |
6727e2db |
66 | Double_t fThreshDead; // at what confidence level do we search for dead |
6727e2db |
67 | UInt_t fMinEventsForNoisy; // min nr of events required to try noisy algorithm |
68 | UInt_t fMinEventsForDead; // min nr of events required to try dead algorithm |
69 | Float_t fDefinitelyNoisyRatio; // if a pixel fires more than this ratio of the events, it must be noisy |
70 | Double_t fMinNrEqHitsForDeadChips; // minimum nr of hits for eq to assign dead chip |
71 | Double_t fRatioToMeanForInefficientChip; // ratio to mean nr of hits per chip to assign ineff. chip |
72 | |
73 | |
74 | }; |
75 | |
76 | #endif |