fix coverity
[u/mrichter/AliRoot.git] / PWG1 / AliAnalysisTaskQASym.h
CommitLineData
ddc7ef22 1// Analysis task for basic QA exploiting symmetries
2//of global, TPC, and ITS tracks
3
8d49bc89 4#ifndef ALIANALYSISTASKQASYM_H
5#define ALIANALYSISTASKQASYM_H
9f9631f3 6
7
8class TH1F;
9class TH2F;
1d55ca60 10class TH3F;
9f9631f3 11class TList;
9f9631f3 12
13class AliESDEvent;
14class AliESDtrack;
15class AliESDtrackCuts;
16
17
18#include "AliAnalysisTaskSE.h"
1d55ca60 19#include "TFile.h"
9f9631f3 20
21class AliAnalysisTaskQASym : public AliAnalysisTaskSE {
22 public:
1d55ca60 23 AliAnalysisTaskQASym(const char *name = "AliAnalysisTaskQASym");
24 virtual ~AliAnalysisTaskQASym() {}
25
26 virtual void UserCreateOutputObjects();
27 virtual void UserExec(Option_t *option);
28 virtual void Terminate(Option_t *);
1c91c6a4 29 virtual void SetTrackType(Int_t type) {fTrackType = type;} // set the track type: global, its and tpc
b676e981 30 virtual void SetStandAloneTrack(Bool_t standAlone = kFALSE) {fStandAlone = standAlone;} //needed for ITS tracks
1c91c6a4 31
32 virtual void SetNChargedRange(Int_t low = 0, Int_t high=1.0*1e7)//set multiplicity region of analysis
33 // in order to compare different trigger settings
34 {
35 fLow = low;
36 fHigh = high;
37 }
9f9631f3 38
1d55ca60 39 virtual void SetCuts(AliESDtrackCuts* cuts)
40 {fCuts = cuts;}
41
42 virtual void SetFieldOn(Bool_t b = kTRUE){fFieldOn = b;}
43
9f9631f3 44
45 private:
46
8d49bc89 47 Int_t fTrackType; // track type
1c91c6a4 48 Bool_t fStandAlone; // needed for ITS tracks
49 Int_t fLow; // low Ncharges cut
50 Int_t fHigh; // high Ncharges cut
8d49bc89 51 Bool_t fFieldOn; // field status
9f9631f3 52
53 TList *fHists; // List of histos
54
55 //old
56 TH1F *fHistRECpt; // pt
57 TH1F *fEta; // eta
1c91c6a4 58
59 TH1F *fEtaWidth; // eta of tracks in Nch range (fLow <= Ncharged <= fHigh)
60 TH1F *fPhiWidth; // phi of tracks in Nch range (fLow <= Ncharged <= fHigh)
61 TH1F *fDcaWidth; // dca of tracks in Nch range (fLow <= Ncharged <= fHigh)
62 TH1F *fPtWidth; // pt of tracks in Nch range (fLow <= Ncharged <= fHigh)
63
e4ab7356 64 TH2F *fEtaPhi; // eta-phi
9f9631f3 65 TH1F *fEtaPt; // eta over pt
66 TH1F *fQPt; // charge over pt
67 TH1F *fDca; // distance of closest approach
d379ad51 68 TH1F *fDcaZ; // distance of closest approach
9f9631f3 69 TH1F *fqRec; // reconstrcuted charge
ddc7ef22 70 TH1F *fSigmaPtHist; // sigma_pT
1d55ca60 71
72 //positive und negative tracks
73 TH1F *fRecPtPos; // pt of pos tracks
74 TH1F *fRecPtNeg; // pt of neg tracks
75 TH1F *fRecPhiPos; // phi of pos. tracks
76 TH1F *fRecPhiNeg; // phi of neg. tracks
77 TH1F *fRecEtaPos; // eta of neg. tracks
78 TH1F *fRecEtaNeg; // eta of neg. tracks
79 TH1F *fRecEtaPtPos; // eta over pt of neg. tracks
80 TH1F *fRecEtaPtNeg; // eta over pt of neg. tracks
81 TH1F *fRecDcaPos; // distance of closest approach of neg. tracks
82 TH1F *fRecDcaNeg; // distance of closest of neg. tracks
83 TH1F *fRecDcaNegInv; // invers dca of neg. tracks
84 TH1F *fRecDPos; // impact parameter of neg. tracks
85 TH1F *fRecDNeg; // impact parameter of neg. tracks
9f9631f3 86
9f9631f3 87 // two sides of TPC -> Eta/Theta
1d55ca60 88 TH1F *fRecQPtPosEta; //charge/pT for pos. eta
89 TH1F *fRecQPtNegEta; //charge/pT for neg. eta
90 TH1F *fRecPtPosEta; //pT for pos. eta
91 TH1F *fRecPtNegEta; //pT for neg. eta
92 TH1F *fRecPhiPosEta; //phi for pos. eta
93 TH1F *fRecPhiNegEta; //phi for neg. eta
94 TH1F *fRecDcaPosEta; //dca for pos. eta
95 TH1F *fRecDcaNegEta; //dca for neg. eta
96 TH1F *fRecDPosEta; //d for pos. eta
97 TH1F *fRecDNegEta; //d for neg. eta
98
99 // 2D: all measures as function of z of first trackpoint
100 TH2F *fRecPtPosVz; //pt-zfirst of pos tracks
8d49bc89 101 TH2F *fRecPtNegVz; //pt-zfirst of neg tracks
1d55ca60 102 TH2F *fRecEtaPosVz; //eta-zfirst of pos tracks
103 TH2F *fRecEtaNegVz; //eta-zfirst of neg tracks
104 TH2F *fRecPhiPosVz; //phi-zfirst of pos tracks
105 TH2F *fRecPhiNegVz; //phi-zfirst of neg tracks
106 TH2F *fSignedDcaPosVz; //dca-zfirst of pos tracks
107 TH2F *fSignedDcaNegVz; //dca-zfirst of neg tracks
108 TH2F *fRecQPtPosEtaVz; //charge/pT-zfirst of pos tracks
109 TH2F *fRecQPtNegEtaVz; //charge/pT-zfirst of neg tracks
110 TH2F *fRecEtaPtPosVz; //eta/pT-zfirst of pos tracks
111 TH2F *fRecEtaPtNegVz; //eta/pT-zfirst of neg tracks
9f9631f3 112
9f9631f3 113
114 //high
1d55ca60 115 TH1F * fDeltaPhiAll; // phiLeaingTracks-phiOthers
116 TH2F * fDeltaPhiLeading; // phiLeaingTracks-phiOthers vs. phiLeading
117 TH1F * fDiffDcaD; // d-dca
9f9631f3 118
119 //sim
1d55ca60 120 TH1F * fPhiRec; //phi
121 TH1F * fThetaRec; //theta
122 TH1F * fNumber; //Number of tracks per event
ddc7ef22 123 TH1F * fNumberAfterCut; //Number of tracks per event after cuts
1d55ca60 124 TH1F * fVx; // x of first track point
125 TH1F * fVy; // y of first track point
126 TH1F * fVz; // z of first track point
ddc7ef22 127 TH1F * fNVertexSPD; //number of vertices SPD
128 TH1F * fNVertexTracks; //number of vertices of Tracks
1d55ca60 129
130 //new
131 TH2F *fRecDcaPosPhi; //dca-phi for pos.
132 TH2F *fRecDcaNegPhi; //dca-phi for neg.
133 TH2F *fRecPtPosPhi; //pt-phi for pos.
134 TH2F *fRecPtNegPhi; //pt-phi for neg.
135 TH2F *fRecEtaPosPhi; //eta-phi for pos.
136 TH2F *fRecEtaNegPhi; //eta-phi for neg.
137 TH2F *fRecQPtPhi; //charge/pt-phi
138 TH2F *fRecEtaPtPosPhi; //eta/pt-phi for neg.
139 TH2F *fRecEtaPtNegPhi; //eta/pt-phi for pos.
140
141 TH1F *fRecPtPosEtaPos; //pt for pos tracks and pos eta
142 TH1F *fRecPtNegEtaPos; //pt for neg tracks and pos eta
143 TH1F *fRecPtPosEtaNeg; //pt for pos tracks and neg eta
144 TH1F *fRecPtNegEtaNeg; //pt for neg tracks and neg eta
145
146 TH1F *fRec1PtPosEtaPos; //1/pt for pos tracks and pos eta
147 TH1F *fRec1PtNegEtaPos; //1/pt for neg tracks and pos eta
148 TH1F *fRec1PtPosEtaNeg; //1/pt for pos tracks and neg eta
149 TH1F *fRec1PtNegEtaNeg; //1/pt for neg tracks and neg eta
150
151 TH1F *fRecPhiPosEtaPos; //phi for pos tracks and pos eta
152 TH1F *fRecPhiNegEtaPos; //phi for neg tracks and pos eta
153 TH1F *fRecPhiPosEtaNeg; //phi for pos tracks and neg eta
154 TH1F *fRecPhiNegEtaNeg; //phi for neg tracks and neg eta
155
156 TH2F *fRecDcaPosPhiEtaPos; //dca-phi for pos tracks and pos eta
157 TH2F *fRecDcaNegPhiEtaPos; //dca-phi for neg tracks and pos eta
158 TH2F *fRecDcaPosPhiEtaNeg; //dca-phi for pos tracks and neg eta
159 TH2F *fRecDcaNegPhiEtaNeg; //dca-phi for neg tracks and neg eta
160
98a5f582 161 TH2F *fRecDcaPosPtEtaPos; //dca-pt for pos tracks and pos eta
162 TH2F *fRecDcaNegPtEtaPos; //dca-pt for neg tracks and pos eta
163 TH2F *fRecDcaPosPtEtaNeg; //dca-pt for pos tracks and neg eta
164 TH2F *fRecDcaNegPtEtaNeg; //dca-pt for neg tracks and neg eta
165
1d55ca60 166 TH2F *fRecPtPosPhiEtaPos; //pt-phi for pos tracks and pos eta
167 TH2F *fRecPtNegPhiEtaPos; //pt-phi for neg tracks and pos eta
168 TH2F *fRecPtPosPhiEtaNeg; //pt-phi for pos tracks and neg eta
169 TH2F *fRecPtNegPhiEtaNeg; //pt-phi for neg tracks and neg eta
170
8ae6f5d0 171 // TH3F *fRecDcaPhiPtPosEtaPos; //dca-pt-phi for pos tracks and pos eta
172 // TH3F *fRecDcaPhiPtNegEtaPos; //dca-pt-phi for neg tracks and pos eta
173 // TH3F *fRecDcaPhiPtPosEtaNeg; //dca-pt-phi for pos tracks and neg eta
174 // TH3F *fRecDcaPhiPtNegEtaNeg; //dca-pt-phi for neg tracks and neg eta
1d55ca60 175
8d49bc89 176 TH2F *fEtavPt; // eta vs pt
ddc7ef22 177 TH2F *fPhivPt; // phi vs pt
178
8d49bc89 179 TH2F *fCompareTPCparam; // TPC param
ddc7ef22 180
8d49bc89 181 TH1F *fITSlayer; // ITS layer
ddc7ef22 182 TH2F *fITSlayerEta; // ITS layer vs eta
183 TH2F *fITSlayerPhi; // ITS layer vs phi
1d55ca60 184
8d49bc89 185 AliESDtrackCuts* fCuts; // List of cuts
1d55ca60 186
d379ad51 187 // four different vertex types: primary, spd, tracks, tpc
188 TH1F * fVertexX[4]; // x of vertex
189 TH1F * fVertexY[4]; // y of vertex
190 TH1F * fVertexZ[4]; // z of vertex
191
1d55ca60 192 // sectors of TPC
193 TH1F *fRecPtTpcSector[18]; //pt for TPC sectors
194 TH1F *fRecEtaTpcSector[18]; //eta for TPC sectors
195 TH1F *fRecQPtTpcSector[18]; //charge/pt for TPC sectors
196 TH1F *fRecEtaPtTpcSector[18]; //eta/pt for TPC sectors
197 TH1F *fSignedDcaTpcSector[18]; //dca for TPC sectors
198
199
200 // 7 different case of hit in ITS ladders
201 TH1F *fRecPtPosLadder[7]; //pt for pos tracks
202 TH1F *fRecPtNegLadder[7]; //pt for neg tracks
203 TH1F *fRecPhiPosLadder[7]; //phi for pos tracks
204 TH1F *fRecPhiNegLadder[7]; //phi for neg tracks
205 TH1F *fRecEtaPosLadder[7]; //eta for pos tracks
206 TH1F *fRecEtaNegLadder[7]; //eta for neg tracks
207 TH1F *fSignDcaPos[7]; //dca for pos tracks
208 TH1F *fSignDcaNeg[7]; //dca for neg tracks
209 TH1F *fSignDcaNegInv[7]; //-dca for neg tracks
210 TH1F *fPtSigmaPos[7]; //sigma_pT for pos tracks
211 TH1F *fPtSigmaNeg[7]; //sigma_pT for neg tracks
212 TH1F *fqPtRec[7]; // charge/pt
213 TH2F *fDcaSigmaPos[7]; // dca - sigma_pT for pos tracks
214 TH2F *fDcaSigmaNeg[7]; // dca - sigma_pT for neg tracks
215
1c91c6a4 216 TH1F *fEtaBinPt[3][2]; // eta histogram for different pt bins and different charges
217 TH1F *fPhiBinPt[3][2]; // phi histogram for different pt bins and different charges
218 TH1F *fDcaBinPt[3][2]; // dca histogram for different pt bins and different charges
219 TH2F *fEtaPhiBinPt[3][2]; // eta-phi histogram for different pt bins and different charges
220
1d55ca60 221
222
223
224
9f9631f3 225 AliAnalysisTaskQASym(const AliAnalysisTaskQASym&); // not implemented
226 AliAnalysisTaskQASym& operator=(const AliAnalysisTaskQASym&); // not implemented
227
228 ClassDef(AliAnalysisTaskQASym, 1); // Basic QA exploiting symmetries
229};
230
231#endif