]>
Commit | Line | Data |
---|---|---|
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 | ||
8 | class TH1F; | |
9 | class TH2F; | |
1d55ca60 | 10 | class TH3F; |
9f9631f3 | 11 | class TList; |
9f9631f3 | 12 | |
13 | class AliESDEvent; | |
14 | class AliESDtrack; | |
15 | class AliESDtrackCuts; | |
16 | ||
17 | ||
18 | #include "AliAnalysisTaskSE.h" | |
1d55ca60 | 19 | #include "TFile.h" |
9f9631f3 | 20 | |
21 | class 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 |