AliPhysics  d565ceb (d565ceb)
AliAnalysisTaskQASym.h
Go to the documentation of this file.
1 // Analysis task for basic QA exploiting symmetries
2 //of global, TPC, and ITS tracks
3 
4 #ifndef ALIANALYSISTASKQASYM_H
5 #define ALIANALYSISTASKQASYM_H
6 
7 
8 class TH1F;
9 class TH2F;
10 class TH3F;
11 class TList;
12 
13 class AliESDEvent;
14 class AliESDtrack;
15 class AliESDtrackCuts;
16 
17 
18 #include "AliAnalysisTaskSE.h"
19 #include "TFile.h"
20 
22  public:
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 *);
29  virtual void SetTrackType(Int_t type) {fTrackType = type;} // set the track type: global, its and tpc
30  virtual void SetStandAloneTrack(Bool_t standAlone = kFALSE) {fStandAlone = standAlone;} //needed for ITS tracks
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  }
38 
39  virtual void SetCuts(AliESDtrackCuts* cuts)
40  {fCuts = cuts;}
41 
42  virtual void SetFieldOn(Bool_t b = kTRUE){fFieldOn = b;}
43 
44 
45  private:
46 
47  Int_t fTrackType; // track type
48  Bool_t fStandAlone; // needed for ITS tracks
49  Int_t fLow; // low Ncharges cut
50  Int_t fHigh; // high Ncharges cut
51  Bool_t fFieldOn; // field status
52 
53  TList *fHists; // List of histos
54 
55  //old
56  TH1F *fHistRECpt; // pt
57  TH1F *fEta; // eta
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 
64  TH2F *fEtaPhi; // eta-phi
65  TH1F *fEtaPt; // eta over pt
66  TH1F *fQPt; // charge over pt
67  TH1F *fDca; // distance of closest approach
68  TH1F *fDcaZ; // distance of closest approach
69  TH1F *fqRec; // reconstrcuted charge
70  TH1F *fSigmaPtHist; // sigma_pT
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
86 
87  // two sides of TPC -> Eta/Theta
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
101  TH2F *fRecPtNegVz; //pt-zfirst of neg tracks
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
112 
113 
114  //high
115  TH1F * fDeltaPhiAll; // phiLeaingTracks-phiOthers
116  TH2F * fDeltaPhiLeading; // phiLeaingTracks-phiOthers vs. phiLeading
117  TH1F * fDiffDcaD; // d-dca
118 
119  //sim
120  TH1F * fPhiRec; //phi
121  TH1F * fThetaRec; //theta
122  TH1F * fNumber; //Number of tracks per event
123  TH1F * fNumberAfterCut; //Number of tracks per event after cuts
124  TH1F * fVx; // x of first track point
125  TH1F * fVy; // y of first track point
126  TH1F * fVz; // z of first track point
127  TH1F * fNVertexSPD; //number of vertices SPD
128  TH1F * fNVertexTracks; //number of vertices of Tracks
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 
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 
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 
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
175 
176  TH2F *fEtavPt; // eta vs pt
177  TH2F *fPhivPt; // phi vs pt
178 
179  TH2F *fCompareTPCparam; // TPC param
180 
181  TH1F *fITSlayer; // ITS layer
182  TH2F *fITSlayerEta; // ITS layer vs eta
183  TH2F *fITSlayerPhi; // ITS layer vs phi
184 
185  AliESDtrackCuts* fCuts; // List of cuts
186 
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 
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 
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 
221 
222 
223 
224 
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
Definition: External.C:260
virtual void SetTrackType(Int_t type)
Definition: External.C:236
virtual void SetNChargedRange(Int_t low=0, Int_t high=1.0 *1e7)
int Int_t
Definition: External.C:63
AliAnalysisTaskQASym & operator=(const AliAnalysisTaskQASym &)
virtual void UserExec(Option_t *option)
virtual void SetCuts(AliESDtrackCuts *cuts)
virtual void SetFieldOn(Bool_t b=kTRUE)
const char Option_t
Definition: External.C:48
AliAnalysisTaskQASym(const char *name="AliAnalysisTaskQASym")
bool Bool_t
Definition: External.C:53
virtual void UserCreateOutputObjects()
virtual void Terminate(Option_t *)
virtual void SetStandAloneTrack(Bool_t standAlone=kFALSE)