Line data Source code
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:
23 : AliITSOnlineSPDphysAnalyzer(const Char_t *fileName, AliITSOnlineCalibrationSPDhandler* handler, Bool_t readFromGridFile=kFALSE);
24 : AliITSOnlineSPDphysAnalyzer(AliITSOnlineSPDphys* physObj, AliITSOnlineCalibrationSPDhandler* handler);
25 : AliITSOnlineSPDphysAnalyzer(const AliITSOnlineSPDphysAnalyzer& handle);
26 : ~AliITSOnlineSPDphysAnalyzer();
27 :
28 : AliITSOnlineSPDphysAnalyzer& operator=(const AliITSOnlineSPDphysAnalyzer& handle);
29 :
30 0 : 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 ProcessDead();
35 : UInt_t ProcessDeadPixels();
36 : UInt_t ProcessNoisyPixels();
37 : UInt_t ProcessNoisyPixelsFast();
38 : UInt_t ProcessNoisyPixels(UInt_t eq, UInt_t nrEvts);
39 :
40 : UInt_t GetNrEnoughStatChips();
41 : UInt_t GetNrDeadChips();
42 : UInt_t GetNrInefficientChips();
43 : UInt_t GetNrNeedsMoreStatChips();
44 :
45 0 : AliITSOnlineSPDphys* GetOnlinePhys() {return fPhysObj;}
46 : UInt_t GetEqNr() const;
47 : UInt_t GetNrEvents() const;
48 :
49 : TH2F* GetHitMapTot();
50 : TH2F* GetPhysicalHitMapTot();
51 : TH2F* GetHitMapChip(UInt_t hs, UInt_t chip);
52 :
53 : private:
54 : TString fFileName; // container file name
55 : enum calibvals{kMINTH,kMEANTH,kDAC,kUNIMA,kNOISE,kDELAY}; // calib types
56 : AliITSOnlineSPDphys *fPhysObj; // container obj
57 : AliITSOnlineCalibrationSPDhandler *fHandler; // calib helper obj
58 : void Init(Bool_t readFromGridFile=kFALSE); // initialization
59 : void Exponent(Double_t &val, Int_t &valExp) const;
60 :
61 : UInt_t fNrEnoughStatChips; // nr of enough stat chips
62 : UInt_t fNrDeadChips; // nr of dead chips
63 : UInt_t fNrInefficientChips; // nr of inefficient chips
64 :
65 : Double_t fNrEqHits; // total nr of hits for associated eq
66 : Bool_t fbDeadProcessed; // flag to tell if ProcessDeadPixels has been called
67 :
68 : // dead noisy parameters:
69 : Double_t fThreshNoisy; // at what confidence level do we search for noisy
70 : Double_t fThreshDead; // at what confidence level do we search for dead
71 : UInt_t fMinEventsForNoisy; // min nr of events required to try noisy algorithm
72 : UInt_t fMinEventsForDead; // min nr of events required to try dead algorithm
73 : Float_t fDefinitelyNoisyRatio; // if a pixel fires more than this ratio of the events, it must be noisy
74 : Double_t fMinNrEqHitsForDeadChips; // minimum nr of hits for eq to assign dead chip
75 : Double_t fRatioToMeanForInefficientChip; // ratio to mean nr of hits per chip to assign ineff. chip
76 :
77 :
78 : };
79 :
80 : #endif
|