]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/AliComparisonRes.h
- Move to the new attaching cluster to tracklet procedure in the stand
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonRes.h
CommitLineData
3baa4bfd 1#ifndef ALICOMPARISONRES_H
2#define ALICOMPARISONRES_H
3
4//------------------------------------------------------------------------------
5// Class to keep information from comparison of
6// reconstructed and MC particle tracks (TPC resolution).
7//
8// Author: J.Otwinowski 04/02/2008
9//------------------------------------------------------------------------------
10
11class TFile;
12class AliMCInfo;
13class AliESDRecInfo;
14class AliESDEvent;
15class AliESD;
16class AliESDfriend;
17class AliMCInfoCuts;
18class AliRecInfoCuts;
19class TH1I;
20class TH3F;
21class TH3;
22class TProfile;
23class TProfile2D;
24class TString;
25class AliESDVertex;
26
27#include "TNamed.h"
28#include "AliComparisonObject.h"
29
30class AliComparisonRes : public AliComparisonObject {
31public :
32 AliComparisonRes();
33 virtual ~AliComparisonRes();
34
35 // Init data members
36 virtual void Init();
37
38 // Execute analysis
39 virtual void Exec(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
40
41 // Merge output objects (needed by PROOF)
42 virtual Long64_t Merge(TCollection* list);
43
44 // Analyse output histograms
45 virtual void Analyse();
46
47 // Get analysis folder
48 virtual TFolder* GetAnalysisFolder() {return fAnalysisFolder;}
49
50 // Process events
51 void ProcessConstrained(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
52 void Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
53
54 // Create folder for analysed histograms
55 TFolder *CreateFolder(TString folder = "folderRes",TString title = "Analysed Resolution histograms");
56
b4126c69 57 // Export objects to folder
58 TFolder *ExportToFolder(TObjArray * array=0);
59
3baa4bfd 60 // Selection cuts
61 void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}
62 void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;}
63
64 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
65 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
66
67 static TH1F* MakeResol(TH2F * his, Int_t integ, Bool_t type);
68
35771050 69 // getters
70 TH3F *GetMCVertex() { return fMCVertex; }
71 TH3F *GetRecVertex() { return fRecVertex; }
72
73 TH3F *GetPhiTanPtTPC() { return fPhiTanPtTPC; }
74 TH3F *GetPhiTanPtTPCITS() { return fPhiTanPtTPCITS; }
75
76 TH2F *GetPtResolTPC() { return fPtResolTPC; }
77 TH2F *GetPtPullTPC() { return fPtPullTPC; }
78 TH2F *GetPhiResolTanTPC() { return fPhiResolTanTPC; }
79 TH2F *GetTanResolTanTPC() { return fTanResolTanTPC; }
80 TH2F *GetPhiPullTanTPC() { return fPhiPullTanTPC; }
81 TH2F *GetTanPullTanTPC() { return fTanPullTanTPC; }
82
83 TH2F *GetPtResolTPCITS() { return fPtResolTPCITS; }
84 TH2F *GetPtPullTPCITS() { return fPtPullTPCITS; }
85 TH2F *GetPhiResolTanTPCITS() { return fPhiResolTanTPCITS; }
86 TH2F *GetTanResolTanTPCITS() { return fTanResolTanTPCITS; }
87 TH2F *GetPhiPullTanTPCITS() { return fPhiPullTanTPCITS; }
88 TH2F *GetTanPullTanTPCITS() { return fTanPullTanTPCITS; }
89
90 //
91 // Resolution constrained param
92 //
93 TH2F *GetCPhiResolTan() { return fCPhiResolTan; }
94 TH2F *GetCTanResolTan() { return fCTanResolTan; }
95 TH2F *GetCPtResolTan() { return fCPtResolTan; }
96 TH2F *GetCPhiPullTan() { return fCPhiPullTan; }
97 TH2F *GetCTanPullTan() { return fCTanPullTan; }
98 TH2F *GetCPtPullTan() { return fCPtPullTan; }
99
100 //
101 // Histograms for track resolution parameterisation
102 //
103 TH2F *Get1Pt2ResolS1PtTPC() { return f1Pt2ResolS1PtTPC; }
104 TH2F *Get1Pt2ResolS1PtTPCITS() { return f1Pt2ResolS1PtTPCITS; }
105 TH2F *GetYResolS1PtTPC() { return fYResolS1PtTPC; }
106 TH2F *GetYResolS1PtTPCITS() { return fYResolS1PtTPCITS; }
107 TH2F *GetZResolS1PtTPC() { return fZResolS1PtTPC; }
108 TH2F *GetZResolS1PtTPCITS() { return fZResolS1PtTPCITS; }
109 TH2F *GetPhiResolS1PtTPC() { return fPhiResolS1PtTPC; }
110 TH2F *GetPhiResolS1PtTPCITS() { return fPhiResolS1PtTPCITS; }
111 TH2F *GetThetaResolS1PtTPC() { return fThetaResolS1PtTPC; }
112 TH2F *GetThetaResolS1PtTPCITS(){ return fThetaResolS1PtTPCITS; }
113
114 // constrained
115 //
116 TH2F *GetC1Pt2ResolS1PtTPC() { return fC1Pt2ResolS1PtTPC; }
117 TH2F *GetC1Pt2ResolS1PtTPCITS() { return fC1Pt2ResolS1PtTPCITS; }
118 TH2F *GetCYResolS1PtTPC() { return fCYResolS1PtTPC; }
119 TH2F *GetCYResolS1PtTPCITS() { return fCYResolS1PtTPCITS; }
120 TH2F *GetCZResolS1PtTPC() { return fCZResolS1PtTPC; }
121 TH2F *GetCZResolS1PtTPCITS() { return fCZResolS1PtTPCITS; }
122 TH2F *GetCPhiResolS1PtTPC() { return fCPhiResolS1PtTPC; }
123 TH2F *GetCPhiResolS1PtTPCITS() { return fCPhiResolS1PtTPCITS; }
124 TH2F *GetCThetaResolS1PtTPC() { return fCThetaResolS1PtTPC; }
125 TH2F *GetCThetaResolS1PtTPCITS(){ return fCThetaResolS1PtTPCITS; }
3baa4bfd 126
127private:
128 //
129 // Control histograms
130 //
35771050 131
132 TH3F *fMCVertex; //-> MC primary vertex
133 TH3F *fRecVertex; //-> Reconstructed primary vertex
134
135 TH3F *fPhiTanPtTPC; //-> phi vs tantheta vs pt
136 TH3F *fPhiTanPtTPCITS; //-> phi vs tantheta vs pt
137
138 // TPC only
139 TH2F *fPtResolTPC; //-> pt resolution
140 TH2F *fPtPullTPC; //-> pt pull
141 TH2F *fPhiResolTanTPC; //-> angular resolution
142 TH2F *fTanResolTanTPC; //-> angular resolution
143 TH2F *fPhiPullTanTPC; //-> angular resolution
144 TH2F *fTanPullTanTPC; //-> angular resolution
145
146 // TPC+ITS
147 TH2F *fPtResolTPCITS; //-> pt resolution
148 TH2F *fPtPullTPCITS; //-> pt pull
149 TH2F *fPhiResolTanTPCITS; //-> angular resolution
150 TH2F *fTanResolTanTPCITS; //-> angular resolution
151 TH2F *fPhiPullTanTPCITS; //-> angular resolution
152 TH2F *fTanPullTanTPCITS; //-> angular resolution
3baa4bfd 153
154 //
155 // Resolution constrained param
156 //
157 TH2F *fCPhiResolTan; //-> angular resolution - constrained
158 TH2F *fCTanResolTan; //-> angular resolution - constrained
159 TH2F *fCPtResolTan; //-> pt resolution - constrained
160 TH2F *fCPhiPullTan; //-> angular resolution - constrained
161 TH2F *fCTanPullTan; //-> angular resolution - constrained
162 TH2F *fCPtPullTan; //-> pt resolution - constrained
163
164 //
165 // Histograms for track resolution parameterisation
166 //
167
168 TH2F* f1Pt2ResolS1PtTPC; //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs sqrt(1/pt) (TPC)
169 TH2F* f1Pt2ResolS1PtTPCITS; //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs sqrt(1/pt) (TPC+ITS)
170 TH2F* fYResolS1PtTPC; //-> (mcy-y)/(0.2+1/pt) vs sqrt(1/pt) (TPC)
171 TH2F* fYResolS1PtTPCITS; //-> (mcy-y)/(0.2+1/pt) vs sqrt(1/pt) (TPC + ITS)
172 TH2F* fZResolS1PtTPC; //-> (mcz-z)/(0.2+1/pt) vs sqrt(1/pt) (TPC)
173 TH2F* fZResolS1PtTPCITS; //-> (mcz-z)/(0.2+1/pt) vs sqrt(1/pt) (TPC+ITS)
174 TH2F* fPhiResolS1PtTPC; //-> (mcphi-phi)/(0.1+1/pt) vs sqrt(1/pt) (TPC)
175 TH2F* fPhiResolS1PtTPCITS; //-> (mcphi-phi)/(0.1+1/pt) vs sqrt(1/pt) (TPC+ITS)
176 TH2F* fThetaResolS1PtTPC; //-> (mctheta-theta)/(0.1+1/pt) vs sqrt(1/pt) (TPC)
177 TH2F* fThetaResolS1PtTPCITS; //-> (mctheta-theta)/(0.1+1/pt) vs sqrt(1/pt) (TPC+ITS)
178
179 // constrained
180 TH2F* fC1Pt2ResolS1PtTPC; //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs sqrt(1/pt) (TPC)
181 TH2F* fC1Pt2ResolS1PtTPCITS; //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs sqrt(1/pt) (TPC+ITS)
182 TH2F* fCYResolS1PtTPC; //-> (mcy-y)/(0.2+1/pt) vs sqrt(1/pt) (TPC)
183 TH2F* fCYResolS1PtTPCITS; //-> (mcy-y)/(0.2+1/pt) vs sqrt(1/pt) (TPC + ITS)
184 TH2F* fCZResolS1PtTPC; //-> (mcz-z)/(0.2+1/pt) vs sqrt(1/pt) (TPC)
185 TH2F* fCZResolS1PtTPCITS; //-> (mcz-z)/(0.2+1/pt) vs sqrt(1/pt) (TPC+ITS)
186 TH2F* fCPhiResolS1PtTPC; //-> (mcphi-phi)/(0.1+1/pt) vs sqrt(1/pt) (TPC)
187 TH2F* fCPhiResolS1PtTPCITS; //-> (mcphi-phi)/(0.1+1/pt) vs sqrt(1/pt) (TPC+ITS)
188 TH2F* fCThetaResolS1PtTPC; //-> (mctheta-theta)/(0.1+1/pt) vs sqrt(1/pt) (TPC)
189 TH2F* fCThetaResolS1PtTPCITS; //-> (mctheta-theta)/(0.1+1/pt) vs sqrt(1/pt) (TPC+ITS)
190
3baa4bfd 191 // Global cuts objects
192 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
193 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
194
195 // analysis folder
196 TFolder *fAnalysisFolder; // folder for analysed histograms
197
198 AliComparisonRes(const AliComparisonRes&); // not implemented
199 AliComparisonRes& operator=(const AliComparisonRes&); // not implemented
200
201 ClassDef(AliComparisonRes,1);
202};
203
204#endif