1 // Analysis task for basic QA exploiting symmetries
2 //of global, TPC, and ITS tracks
4 #ifndef ALIANALYSISTASKQASYM_H
5 #define ALIANALYSISTASKQASYM_H
15 class AliESDtrackCuts;
18 #include "AliAnalysisTaskSE.h"
21 class AliAnalysisTaskQASym : public AliAnalysisTaskSE {
23 AliAnalysisTaskQASym(const char *name = "AliAnalysisTaskQASym");
24 virtual ~AliAnalysisTaskQASym() {}
26 virtual void UserCreateOutputObjects();
27 virtual void UserExec(Option_t *option);
28 virtual void Terminate(Option_t *);
29 virtual void SetTrackType(Int_t type) {fTrackType = type;}
30 virtual void SetStandAloneTrack(Bool_t standAlone = kFALSE) {fStandAlone = standAlone;} //needed for ITS tracks
33 virtual void SetCuts(AliESDtrackCuts* cuts)
36 virtual void SetFieldOn(Bool_t b = kTRUE){fFieldOn = b;}
41 Int_t fTrackType; // track type
42 Int_t fStandAlone; // needed for ITS tracks
43 Bool_t fFieldOn; // field status
45 TList *fHists; // List of histos
48 TH1F *fHistRECpt; // pt
50 TH2F *fEtaPhi; // eta-phi
51 TH1F *fEtaPt; // eta over pt
52 TH1F *fQPt; // charge over pt
53 TH1F *fDca; // distance of closest approach
54 TH1F *fqRec; // reconstrcuted charge
55 TH1F *fSigmaPtHist; // sigma_pT
57 //positive und negative tracks
58 TH1F *fRecPtPos; // pt of pos tracks
59 TH1F *fRecPtNeg; // pt of neg tracks
60 TH1F *fRecPhiPos; // phi of pos. tracks
61 TH1F *fRecPhiNeg; // phi of neg. tracks
62 TH1F *fRecEtaPos; // eta of neg. tracks
63 TH1F *fRecEtaNeg; // eta of neg. tracks
64 TH1F *fRecEtaPtPos; // eta over pt of neg. tracks
65 TH1F *fRecEtaPtNeg; // eta over pt of neg. tracks
66 TH1F *fRecDcaPos; // distance of closest approach of neg. tracks
67 TH1F *fRecDcaNeg; // distance of closest of neg. tracks
68 TH1F *fRecDcaNegInv; // invers dca of neg. tracks
69 TH1F *fRecDPos; // impact parameter of neg. tracks
70 TH1F *fRecDNeg; // impact parameter of neg. tracks
72 // two sides of TPC -> Eta/Theta
73 TH1F *fRecQPtPosEta; //charge/pT for pos. eta
74 TH1F *fRecQPtNegEta; //charge/pT for neg. eta
75 TH1F *fRecPtPosEta; //pT for pos. eta
76 TH1F *fRecPtNegEta; //pT for neg. eta
77 TH1F *fRecPhiPosEta; //phi for pos. eta
78 TH1F *fRecPhiNegEta; //phi for neg. eta
79 TH1F *fRecDcaPosEta; //dca for pos. eta
80 TH1F *fRecDcaNegEta; //dca for neg. eta
81 TH1F *fRecDPosEta; //d for pos. eta
82 TH1F *fRecDNegEta; //d for neg. eta
84 // 2D: all measures as function of z of first trackpoint
85 TH2F *fRecPtPosVz; //pt-zfirst of pos tracks
86 TH2F *fRecPtNegVz; //pt-zfirst of neg tracks
87 TH2F *fRecEtaPosVz; //eta-zfirst of pos tracks
88 TH2F *fRecEtaNegVz; //eta-zfirst of neg tracks
89 TH2F *fRecPhiPosVz; //phi-zfirst of pos tracks
90 TH2F *fRecPhiNegVz; //phi-zfirst of neg tracks
91 TH2F *fSignedDcaPosVz; //dca-zfirst of pos tracks
92 TH2F *fSignedDcaNegVz; //dca-zfirst of neg tracks
93 TH2F *fRecQPtPosEtaVz; //charge/pT-zfirst of pos tracks
94 TH2F *fRecQPtNegEtaVz; //charge/pT-zfirst of neg tracks
95 TH2F *fRecEtaPtPosVz; //eta/pT-zfirst of pos tracks
96 TH2F *fRecEtaPtNegVz; //eta/pT-zfirst of neg tracks
100 TH1F * fDeltaPhiAll; // phiLeaingTracks-phiOthers
101 TH2F * fDeltaPhiLeading; // phiLeaingTracks-phiOthers vs. phiLeading
102 TH1F * fDiffDcaD; // d-dca
105 TH1F * fPhiRec; //phi
106 TH1F * fThetaRec; //theta
107 TH1F * fNumber; //Number of tracks per event
108 TH1F * fNumberAfterCut; //Number of tracks per event after cuts
109 TH1F * fVx; // x of first track point
110 TH1F * fVy; // y of first track point
111 TH1F * fVz; // z of first track point
112 TH1F * fVertexX; // x of vertex
113 TH1F * fVertexY; // y of vertex
114 TH1F * fVertexZ; // z of vertex
115 TH1F * fNVertexSPD; //number of vertices SPD
116 TH1F * fNVertexTracks; //number of vertices of Tracks
119 TH2F *fRecDcaPosPhi; //dca-phi for pos.
120 TH2F *fRecDcaNegPhi; //dca-phi for neg.
121 TH2F *fRecPtPosPhi; //pt-phi for pos.
122 TH2F *fRecPtNegPhi; //pt-phi for neg.
123 TH2F *fRecEtaPosPhi; //eta-phi for pos.
124 TH2F *fRecEtaNegPhi; //eta-phi for neg.
125 TH2F *fRecQPtPhi; //charge/pt-phi
126 TH2F *fRecEtaPtPosPhi; //eta/pt-phi for neg.
127 TH2F *fRecEtaPtNegPhi; //eta/pt-phi for pos.
129 TH1F *fRecPtPosEtaPos; //pt for pos tracks and pos eta
130 TH1F *fRecPtNegEtaPos; //pt for neg tracks and pos eta
131 TH1F *fRecPtPosEtaNeg; //pt for pos tracks and neg eta
132 TH1F *fRecPtNegEtaNeg; //pt for neg tracks and neg eta
134 TH1F *fRec1PtPosEtaPos; //1/pt for pos tracks and pos eta
135 TH1F *fRec1PtNegEtaPos; //1/pt for neg tracks and pos eta
136 TH1F *fRec1PtPosEtaNeg; //1/pt for pos tracks and neg eta
137 TH1F *fRec1PtNegEtaNeg; //1/pt for neg tracks and neg eta
139 TH1F *fRecPhiPosEtaPos; //phi for pos tracks and pos eta
140 TH1F *fRecPhiNegEtaPos; //phi for neg tracks and pos eta
141 TH1F *fRecPhiPosEtaNeg; //phi for pos tracks and neg eta
142 TH1F *fRecPhiNegEtaNeg; //phi for neg tracks and neg eta
144 TH2F *fRecDcaPosPhiEtaPos; //dca-phi for pos tracks and pos eta
145 TH2F *fRecDcaNegPhiEtaPos; //dca-phi for neg tracks and pos eta
146 TH2F *fRecDcaPosPhiEtaNeg; //dca-phi for pos tracks and neg eta
147 TH2F *fRecDcaNegPhiEtaNeg; //dca-phi for neg tracks and neg eta
149 TH2F *fRecDcaPosPtEtaPos; //dca-pt for pos tracks and pos eta
150 TH2F *fRecDcaNegPtEtaPos; //dca-pt for neg tracks and pos eta
151 TH2F *fRecDcaPosPtEtaNeg; //dca-pt for pos tracks and neg eta
152 TH2F *fRecDcaNegPtEtaNeg; //dca-pt for neg tracks and neg eta
154 TH2F *fRecPtPosPhiEtaPos; //pt-phi for pos tracks and pos eta
155 TH2F *fRecPtNegPhiEtaPos; //pt-phi for neg tracks and pos eta
156 TH2F *fRecPtPosPhiEtaNeg; //pt-phi for pos tracks and neg eta
157 TH2F *fRecPtNegPhiEtaNeg; //pt-phi for neg tracks and neg eta
159 // TH3F *fRecDcaPhiPtPosEtaPos; //dca-pt-phi for pos tracks and pos eta
160 // TH3F *fRecDcaPhiPtNegEtaPos; //dca-pt-phi for neg tracks and pos eta
161 // TH3F *fRecDcaPhiPtPosEtaNeg; //dca-pt-phi for pos tracks and neg eta
162 // TH3F *fRecDcaPhiPtNegEtaNeg; //dca-pt-phi for neg tracks and neg eta
164 TH2F *fEtavPt; // eta vs pt
165 TH2F *fPhivPt; // phi vs pt
167 TH2F *fCompareTPCparam; // TPC param
169 TH1F *fITSlayer; // ITS layer
170 TH2F *fITSlayerEta; // ITS layer vs eta
171 TH2F *fITSlayerPhi; // ITS layer vs phi
173 AliESDtrackCuts* fCuts; // List of cuts
176 TH1F *fRecPtTpcSector[18]; //pt for TPC sectors
177 TH1F *fRecEtaTpcSector[18]; //eta for TPC sectors
178 TH1F *fRecQPtTpcSector[18]; //charge/pt for TPC sectors
179 TH1F *fRecEtaPtTpcSector[18]; //eta/pt for TPC sectors
180 TH1F *fSignedDcaTpcSector[18]; //dca for TPC sectors
183 // 7 different case of hit in ITS ladders
184 TH1F *fRecPtPosLadder[7]; //pt for pos tracks
185 TH1F *fRecPtNegLadder[7]; //pt for neg tracks
186 TH1F *fRecPhiPosLadder[7]; //phi for pos tracks
187 TH1F *fRecPhiNegLadder[7]; //phi for neg tracks
188 TH1F *fRecEtaPosLadder[7]; //eta for pos tracks
189 TH1F *fRecEtaNegLadder[7]; //eta for neg tracks
190 TH1F *fSignDcaPos[7]; //dca for pos tracks
191 TH1F *fSignDcaNeg[7]; //dca for neg tracks
192 TH1F *fSignDcaNegInv[7]; //-dca for neg tracks
193 TH1F *fPtSigmaPos[7]; //sigma_pT for pos tracks
194 TH1F *fPtSigmaNeg[7]; //sigma_pT for neg tracks
195 TH1F *fqPtRec[7]; // charge/pt
196 TH2F *fDcaSigmaPos[7]; // dca - sigma_pT for pos tracks
197 TH2F *fDcaSigmaNeg[7]; // dca - sigma_pT for neg tracks
203 AliAnalysisTaskQASym(const AliAnalysisTaskQASym&); // not implemented
204 AliAnalysisTaskQASym& operator=(const AliAnalysisTaskQASym&); // not implemented
206 ClassDef(AliAnalysisTaskQASym, 1); // Basic QA exploiting symmetries