]>
Commit | Line | Data |
---|---|---|
489dce1b | 1 | #ifndef ALITPCCALIBTIMEGAIN_H |
2 | #define ALITPCCALIBTIMEGAIN_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 "TH2F.h" | |
9 | #include "TF1.h" | |
10 | #include "TArrayD.h" | |
11 | #include "TObjArray.h" | |
12 | ||
13 | class TH1F; | |
14 | class TH3F; | |
15 | class TH2F; | |
16 | class THnSparse; | |
17 | class TList; | |
18 | class AliESDEvent; | |
19 | class AliESDtrack; | |
20 | class AliTPCcalibLaser; | |
21 | ||
22 | #include "TTreeStream.h" | |
23 | ||
24 | ||
25 | class AliTPCcalibTimeGain:public AliTPCcalibBase { | |
26 | public: | |
27 | AliTPCcalibTimeGain(); | |
28 | AliTPCcalibTimeGain(const Text_t *name, const Text_t *title, UInt_t StartTime, UInt_t EndTime, Int_t deltaIntegrationTimeGain); | |
29 | virtual ~AliTPCcalibTimeGain(); | |
30 | // | |
31 | virtual void Process(AliESDEvent *event); | |
32 | virtual Long64_t Merge(TCollection *li); | |
33 | virtual void Analyze(); | |
34 | // | |
35 | void CalculateBetheAlephParams(TH2F *hist, Double_t * ini); | |
36 | static void BinLogX(THnSparse *h, Int_t axisDim); | |
37 | static void BinLogX(TH1 *h); | |
38 | static TGraph * FitSlices(THnSparse *h, Int_t axisDim1, Int_t axisDim2, Int_t minEntries); | |
39 | // | |
40 | THnSparse * GetHistGainTime(){return (THnSparse*) fHistGainTime;}; | |
41 | TGraph * GetGraphGainVsTime(){return fGainVsTime;}; | |
42 | TH2F * GetHistDeDxTotal(){return (TH2F*) fHistDeDxTotal;}; | |
43 | // | |
44 | void SetMIP(Float_t MIP){fMIP = MIP;}; | |
45 | void SetLowerTrunc(Float_t LowerTrunc){fLowerTrunc = LowerTrunc;}; | |
46 | void SetUpperTrunc(Float_t UpperTrunc){fUpperTrunc = UpperTrunc;}; | |
47 | void SetUseShapeNorm(Bool_t UseShapeNorm){fUseShapeNorm = UseShapeNorm;}; | |
48 | void SetUsePosNorm(Bool_t UsePosNorm){fUsePosNorm = UsePosNorm;}; | |
49 | void SetUsePadNorm(Int_t UsePadNorm){fUsePadNorm = UsePadNorm;}; | |
50 | void SetIsCosmic(Bool_t IsCosmic){fIsCosmic = IsCosmic;}; | |
51 | ||
52 | private: | |
53 | // | |
54 | THnSparse * fHistGainTime; // dEdx vs. time, type, Driftlength, momentum P | |
55 | TGraph * fGainVsTime; // multiplication factor vs. time | |
56 | TH2F * fHistDeDxTotal; // dEdx vs. momentum for quality assurance | |
57 | // | |
58 | Float_t fIntegrationTimeDeDx; // required statistics for each dEdx time bin | |
59 | // | |
60 | Float_t fMIP; // rough MIP position in order to have scalable histograms | |
61 | // | |
62 | Float_t fLowerTrunc; // lower truncation of dE/dx ; at most 5% | |
63 | Float_t fUpperTrunc; // upper truncation of dE/dx ; ca. 70% | |
64 | Bool_t fUseShapeNorm; // use empirical correction of dependencies | |
65 | Bool_t fUsePosNorm; // charge correction (analytical?) | |
66 | Int_t fUsePadNorm; // normalization of pad geometries | |
67 | // | |
68 | Bool_t fIsCosmic; // kTRUE if the analyzed runs are contain cosmic events | |
69 | // | |
70 | AliTPCcalibTimeGain(const AliTPCcalibTimeGain&); | |
71 | AliTPCcalibTimeGain& operator=(const AliTPCcalibTimeGain&); | |
72 | void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);}; | |
73 | void Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);} | |
74 | ||
75 | ClassDef(AliTPCcalibTimeGain, 1); | |
76 | }; | |
77 | ||
78 | #endif | |
79 | ||
80 |