]>
Commit | Line | Data |
---|---|---|
f72219cb | 1 | #ifndef ALITPCCALIBGAINMULT_H |
2 | #define ALITPCCALIBGAINMULT_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | #include "AliTPCcalibBase.h" | |
8 | #include "AliTPCCalPad.h" | |
9 | #include "TH3F.h" | |
10 | #include "TF1.h" | |
11 | #include "THnSparse.h" | |
6feb400f | 12 | #include "TMatrixD.h" |
13 | #include "TVectorD.h" | |
f72219cb | 14 | class TH1F; |
15 | class TList; | |
16 | class AliESDEvent; | |
17 | class AliESDtrack; | |
18 | class AliTPCseed; | |
19 | ||
20 | #include "TTreeStream.h" | |
21 | ||
22 | ||
23 | class AliTPCcalibGainMult:public AliTPCcalibBase { | |
24 | public: | |
25 | AliTPCcalibGainMult(); | |
26 | AliTPCcalibGainMult(const Text_t *name, const Text_t *title); | |
27 | virtual ~AliTPCcalibGainMult(); | |
6feb400f | 28 | void SetBBParam(TVectorD * param) {fBBParam=param;} |
29 | // virtual void Terminate(); | |
f72219cb | 30 | // |
31 | virtual void Process(AliESDEvent *event); | |
6feb400f | 32 | virtual void ProcessV0s(AliESDEvent *event); |
33 | virtual void ProcessCosmic(const AliESDEvent *event); | |
34 | virtual void ProcessKinks(const AliESDEvent *event); | |
35 | virtual void ProcessTOF(const AliESDEvent *event); | |
36 | virtual void DumpHPT(const AliESDEvent *event); | |
f72219cb | 37 | virtual Long64_t Merge(TCollection *li); |
38 | virtual void Analyze(); | |
6feb400f | 39 | void DumpTrack(AliESDtrack * track, AliESDfriendTrack *ftrack, AliTPCseed * seed, Int_t index); |
f72219cb | 40 | // |
41 | TH1F * GetHistNTracks() const {return fHistNTracks;}; | |
42 | TH1F * GetHistClusterShape() const {return fHistClusterShape;}; | |
43 | TH3F * GetHistQA() const {return fHistQA;}; | |
44 | // | |
45 | THnSparseF * GetHistGainSector() const {return fHistGainSector;}; | |
46 | THnSparseF * GetHistPadEqual() const {return fHistPadEqual;}; | |
6feb400f | 47 | THnSparseF * GetHistGainMult() const {return fHistGainMult;}; |
48 | THnSparseF * GetHistdEdxMap() const { return fHistdEdxMap;} // 4D dedx histogram | |
49 | THnSparseF * GetHistdEdxMax() const { return fHistdEdxMax;} // 4D dedx histogram | |
50 | THnSparseF * GetHistdEdxTot() const { return fHistdEdxTot;} // 4D dedx histogram | |
51 | TTree * GetdEdxTree() const {return fdEdxTree;} // tree for the later minimization | |
52 | ||
7e3e1a9c | 53 | TGraphErrors* GetGainPerChamber(Int_t padRegion=1, Bool_t plotQA=kFALSE); |
f72219cb | 54 | // |
55 | void SetMIPvalue(Float_t mip){fMIP = mip;}; | |
56 | void SetLowerTrunc(Float_t lowerTrunc){fLowerTrunc = lowerTrunc;}; | |
57 | void SetUpperTrunc(Float_t upperTrunc){fUpperTrunc = upperTrunc;}; | |
58 | void SetUseMax(Bool_t useMax){fUseMax = useMax;}; | |
59 | // | |
60 | // | |
f72219cb | 61 | void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);}; |
62 | void Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);} | |
63 | // | |
19f63078 | 64 | void MakeLookup(THnSparse * hist, Char_t * outputFile); |
65 | // | |
f72219cb | 66 | void UpdateGainMap(); |
67 | void UpdateClusterParam(); | |
68 | ||
afa85729 | 69 | Double_t GetEntries() const {return fHistGainSector->GetEntries();} |
70 | ||
71 | static void SetMergeEntriesCut(Double_t c) {fgMergeEntriesCut=c;} | |
f72219cb | 72 | |
73 | private: | |
afa85729 | 74 | static Double_t fgMergeEntriesCut; //maximal number of entries for merging -can be modified via setter |
75 | ||
f72219cb | 76 | // |
77 | // parameter specifications | |
78 | // | |
79 | Float_t fMIP; // MIP position to be in fMIP | |
80 | Float_t fLowerTrunc; // lower truncation for dEdx | |
81 | Float_t fUpperTrunc; // upper truncation for dEdx | |
82 | // | |
83 | Bool_t fUseMax; // flag if Qmax or Qtot should be used | |
84 | // | |
85 | // histograms | |
86 | // | |
87 | TH1F *fHistNTracks; // histogram showing number of ESD tracks per event | |
88 | TH1F *fHistClusterShape; // histogram to check the cluster shape | |
89 | TH3F *fHistQA; // dE/dx histogram showing the final spectrum | |
90 | // | |
91 | THnSparseF * fHistGainSector; // histogram which shows MIP peak for each of the 3x36 sectors (pad region) | |
92 | THnSparseF * fHistPadEqual; // histogram for the equalization of the gain in the different pad regions -> pass0 | |
93 | THnSparseF * fHistGainMult; // histogram which shows decrease of MIP signal as a function | |
6feb400f | 94 | TMatrixD *fPIDMatrix; //! custom PID matrix |
95 | // | |
96 | THnSparseF * fHistdEdxMap; // 4D dedx histogram - per sector/phi | |
97 | THnSparseF * fHistdEdxMax; // 5D dedx histogram - per 1/dedx, tan(theta), tan(phi), mult, pad-type | |
98 | THnSparseF * fHistdEdxTot; // 5D dedx histogram - per 1/dedx, tan(theta), tan(phi), mult, pad-type | |
99 | TTree * fdEdxTree; // tree for the later minimization | |
100 | TVectorD *fBBParam; // BetheBloch parameterization used for the dedx expected calculation | |
f72219cb | 101 | // |
102 | AliTPCcalibGainMult(const AliTPCcalibGainMult&); | |
103 | AliTPCcalibGainMult& operator=(const AliTPCcalibGainMult&); | |
104 | ||
6feb400f | 105 | ClassDef(AliTPCcalibGainMult, 2); |
f72219cb | 106 | }; |
107 | ||
108 | #endif | |
109 | ||
110 |