f7f33dec |
1 | #ifndef ALITPCCALIBCOSMIC_H |
2 | #define ALITPCCALIBCOSMIC_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" |
d6920632 |
8 | #include "AliTPCCalPad.h" |
54b76c13 |
9 | #include "TH2F.h" |
f7f33dec |
10 | class TH1F; |
f7f33dec |
11 | class TList; |
12 | class AliESDEvent; |
54b76c13 |
13 | class AliESDtrack; |
91fd44c9 |
14 | class THnSparse; |
f7f33dec |
15 | |
16 | #include "TTreeStream.h" |
17 | |
18 | |
19 | class AliTPCcalibCosmic:public AliTPCcalibBase { |
20 | public: |
21 | AliTPCcalibCosmic(); |
22 | AliTPCcalibCosmic(const Text_t *name, const Text_t *title); |
23 | virtual ~AliTPCcalibCosmic(); |
24 | |
54b76c13 |
25 | virtual void Process(AliESDEvent *event); |
26 | virtual Long64_t Merge(TCollection *li); |
27 | virtual void Analyze(); |
91fd44c9 |
28 | void Add(const AliTPCcalibCosmic* cosmic); |
54b76c13 |
29 | // |
860b3d93 |
30 | // |
91fd44c9 |
31 | void Init(); |
54b76c13 |
32 | void FindPairs(AliESDEvent *event); |
33 | Bool_t IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1); |
54b76c13 |
34 | static void CalculateBetheParams(TH2F *hist, Double_t * initialParam); |
35 | static Double_t CalculateMIPvalue(TH1F * hist); |
860b3d93 |
36 | AliExternalTrackParam *MakeTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1); |
15e48021 |
37 | AliExternalTrackParam *MakeCombinedTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1); |
38 | |
860b3d93 |
39 | void UpdateTrack(AliExternalTrackParam &track0, const AliExternalTrackParam &track1); |
91fd44c9 |
40 | // |
a390f11f |
41 | void FillHistoPerformance(AliExternalTrackParam *par0, AliExternalTrackParam *par1, AliExternalTrackParam *inner0, AliExternalTrackParam *inner1, AliTPCseed *seed0, AliTPCseed *seed1, AliExternalTrackParam *param0Combined); |
42 | void MaterialBudgetDump(AliExternalTrackParam *par0, AliExternalTrackParam *par1, AliExternalTrackParam *inner0, AliExternalTrackParam *inner1, AliTPCseed *seed0, AliTPCseed *seed1, AliExternalTrackParam *param0Combined, AliExternalTrackParam *param1Combined); |
91fd44c9 |
43 | |
44 | |
54b76c13 |
45 | // |
76273318 |
46 | TH1F * GetHistNTracks() const {return fHistNTracks;}; |
47 | TH1F * GetHistClusters() const {return fClusters;}; |
48 | TH2F * GetHistAcorde()const {return fModules;}; |
49 | TH1F * GetHistPt() const {return fHistPt;}; |
50 | TH2F * GetHistDeDx() const {return fDeDx;}; |
51 | TH1F * GetHistMIP() const {return fDeDxMIP;}; |
54b76c13 |
52 | // |
76273318 |
53 | Double_t GetMIPvalue()const {return fMIPvalue;}; |
54b76c13 |
54 | // |
55 | static void BinLogX(TH1 * h); // method for correct histogram binning |
91fd44c9 |
56 | static void BinLogX(THnSparse * h, Int_t axisDim); // method for correct histogram binning |
54b76c13 |
57 | |
76273318 |
58 | void Process(AliESDtrack *track, Int_t runNo=-1) {AliTPCcalibBase::Process(track,runNo);}; |
59 | void Process(AliTPCseed *track) {return AliTPCcalibBase::Process(track);} |
91fd44c9 |
60 | |
61 | // |
62 | // Performance histograms |
63 | // |
64 | THnSparse *fHistoDelta[6]; // histograms of tracking performance delta |
65 | THnSparse *fHistoPull[6]; // histograms of tracking performance pull |
8a92e133 |
66 | THnSparse *fHistodEdxMax[4]; // histograms of dEdx perfomance - max charge |
67 | THnSparse *fHistodEdxTot[4]; // histograms of dEdx perfomance - tot charge |
54b76c13 |
68 | |
69 | private: |
91fd44c9 |
70 | |
54b76c13 |
71 | void FillAcordeHist(AliESDtrack *upperTrack); |
72 | |
91fd44c9 |
73 | |
74 | |
54b76c13 |
75 | TH1F *fHistNTracks; // histogram showing number of ESD tracks per event |
76 | TH1F *fClusters; // histogram showing the number of clusters per track |
77 | TH2F *fModules; // 2d histogram of tracks which are propagated to the ACORDE scintillator array |
78 | TH1F *fHistPt; // Pt histogram of reconstructed tracks |
79 | TH2F *fDeDx; // dEdx spectrum showing the different particle types |
80 | TH1F *fDeDxMIP; // TPC signal close to the MIP region of muons 0.4 < p < 0.45 GeV |
81 | |
82 | Double_t fMIPvalue; // MIP value calculated via a fit to fDeDxMIP |
108953e9 |
83 | // |
9b27d39b |
84 | // cuts |
85 | // |
86 | Float_t fCutMaxD; // maximal distance in rfi ditection |
a6dc0cf6 |
87 | Float_t fCutMaxDz; // maximal distance in z ditection |
9b27d39b |
88 | Float_t fCutTheta; // maximal distance in theta ditection |
89 | Float_t fCutMinDir; // direction vector products |
54b76c13 |
90 | |
f7f33dec |
91 | AliTPCcalibCosmic(const AliTPCcalibCosmic&); |
92 | AliTPCcalibCosmic& operator=(const AliTPCcalibCosmic&); |
93 | |
8a92e133 |
94 | ClassDef(AliTPCcalibCosmic, 2); |
f7f33dec |
95 | }; |
96 | |
97 | #endif |
98 | |