]>
Commit | Line | Data |
---|---|---|
50dbca26 | 1 | #ifndef ALIANALYSISTASKQASYM_H |
2 | #define ALIANALYSISTASKQASYM_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id:$ */ | |
9f9631f3 | 7 | |
50dbca26 | 8 | //------------------------------ |
9 | // Analysis task for quality-assurance of central tracking | |
10 | // mainly based on fundamental symmetries | |
11 | // | |
12 | // eva.sicking@cern.ch | |
9f9631f3 | 13 | |
14 | class TH1F; | |
15 | class TH2F; | |
16 | class TList; | |
17 | class TNtuple; | |
18 | ||
19 | class AliESDEvent; | |
20 | class AliESDtrack; | |
21 | class AliESDtrackCuts; | |
22 | ||
23 | ||
24 | #include "AliAnalysisTaskSE.h" | |
9f9631f3 | 25 | |
26 | class AliAnalysisTaskQASym : public AliAnalysisTaskSE { | |
27 | public: | |
28 | AliAnalysisTaskQASym(const char *name = "AliAnalysisTaskQASym"); | |
29 | virtual ~AliAnalysisTaskQASym() {} | |
30 | ||
31 | virtual void UserCreateOutputObjects(); | |
32 | virtual void UserExec(Option_t *option); | |
33 | virtual void Terminate(Option_t *); | |
34 | ||
35 | ||
36 | ||
37 | virtual void SetCuts(AliESDtrackCuts* cuts) | |
38 | {fCuts = cuts;} | |
39 | ||
40 | virtual void SetFieldOn(Bool_t b = kTRUE){fFieldOn = b;} | |
41 | ||
42 | private: | |
43 | ||
44 | ||
50dbca26 | 45 | Bool_t fFieldOn; // field flag |
9f9631f3 | 46 | |
47 | TList *fHists; // List of histos | |
48 | ||
49 | //old | |
50 | TH1F *fHistRECpt; // pt | |
51 | TH1F *fEta; // eta | |
e4ab7356 | 52 | TH2F *fEtaPhi; // eta-phi |
9f9631f3 | 53 | TH1F *fEtaPt; // eta over pt |
54 | TH1F *fQPt; // charge over pt | |
55 | TH1F *fDca; // distance of closest approach | |
56 | TH1F *fqPtRec[7]; // charge over pt divided for ITS layer cases | |
57 | TH1F *fqRec; // reconstrcuted charge | |
58 | TH1F *fsigmaPt; // sigma_pT | |
59 | TH2F *fDcaSigmaPos[7]; // distance of closest approach against sigma_pT | |
60 | TH2F *fDcaSigmaNeg[7]; // distance of closest approach against sigma_pT | |
61 | ||
62 | ||
63 | //positive und negative particles | |
64 | TH1F *fRecPtPos; // pt of pos partice | |
65 | TH1F *fRecPtNeg; // pt of neg particle | |
66 | TH1F *fRecPhiPos; // phi of pos. particle | |
67 | TH1F *fRecPhiNeg; // phi of neg. particle | |
68 | TH1F *fRecEtaPos; // eta of neg. particle | |
69 | TH1F *fRecEtaNeg; // eta of neg. particle | |
70 | TH1F *fRecEtaPtPos; // eta over pt of neg. particle | |
71 | TH1F *fRecEtaPtNeg; // eta over pt of neg. particle | |
72 | TH1F *fRecDcaPos; // distance of closest approach of neg. particle | |
73 | TH1F *fRecDcaNeg; // distance of closest of neg. particle | |
74 | TH1F *fRecDcaNegInv; // invers dca of neg. particle | |
75 | TH1F *fRecDPos; // impact parameter of neg. particle | |
76 | TH1F *fRecDNeg; // impact parameter of neg. particle | |
77 | ||
9f9631f3 | 78 | // two sides of TPC -> Eta/Theta |
50dbca26 | 79 | TH1F *fRecQPtPosEta; // Q x Pt for pos. eta |
80 | TH1F *fRecQPtNegEta; // Q x Pt for neg. eta | |
81 | TH1F *fRecPtPosEta; // Pt for pos. eta | |
82 | TH1F *fRecPtNegEta; // Pt for neg. eta | |
83 | TH1F *fRecPhiPosEta; // phi for pos. eta | |
84 | TH1F *fRecPhiNegEta; // phi for neg. eta | |
85 | TH1F *fRecDcaPosEta; // dca for pos. eta | |
86 | TH1F *fRecDcaNegEta; // dca for neg. eta | |
87 | TH1F *fRecDPosEta; // d for pos. eta | |
88 | TH1F *fRecDNegEta; // d for neg. eta | |
9f9631f3 | 89 | |
9f9631f3 | 90 | // sectors of TPC (with pt>xGeV?), TODO: extent to TPC standalone tracks |
50dbca26 | 91 | TH1F *fRecPtTpcSector[18]; // pt per sector |
92 | TH1F *fRecEtaTpcSector[18]; // eta per sector | |
93 | TH1F *fRecQPtTpcSector[18]; // Qxpt per sector | |
94 | TH1F *fRecEtaPtTpcSector[18]; // eta x pt per sector | |
95 | TH1F *fSignedDcaTpcSector[18]; // dca per sector | |
9f9631f3 | 96 | |
97 | // 7 different case of hit in ITS ladders | |
50dbca26 | 98 | TH1F *fSignDcaPos[7]; // dca for pos. charge |
99 | TH1F *fSignDcaNeg[7]; // dca for neg. charge | |
100 | TH1F *fSignDcaNegInv[7]; // dca for neg. charge | |
101 | TH1F *fPtSigmaPos[7]; // sigma pt for pos. charge | |
102 | TH1F *fPtSigmaNeg[7]; // sigma pt for neg. charge | |
103 | TH1F *fRecPtPosLadder[7]; // pt for pos. charge | |
104 | TH1F *fRecPtNegLadder[7]; // pt for neg. charge | |
105 | TH1F *fRecPhiPosLadder[7]; // phi for pos. charge | |
106 | TH1F *fRecPhiNegLadder[7]; // phi for neg. charge | |
107 | TH1F *fRecEtaPosLadder[7]; // eta for pos. charge | |
108 | TH1F *fRecEtaNegLadder[7]; // eta for neg. charge | |
9f9631f3 | 109 | |
110 | // 2D: all measures as function of z of vertex | |
50dbca26 | 111 | TH2F *fRecPtPosVz; // pt for pos. charge |
112 | TH2F *fRecPtNegVz; // pt for neg. charge | |
113 | TH2F *fRecEtaPosVz; // eta for pos. charge | |
114 | TH2F *fRecEtaNegVz; // eta for neg. charge | |
115 | TH2F *fRecPhiPosVz; // phi for pos. charge | |
116 | TH2F *fRecPhiNegVz; // phi for neg. charge | |
117 | TH2F *fSignedDcaPosVz; // dca for pos. charge | |
118 | TH2F *fSignedDcaNegVz; // dca for neg. charge | |
119 | TH2F *fRecQPtPosEtaVz; // qxpt for pos. charge | |
120 | TH2F *fRecQPtNegEtaVz; // qxpt for neg. charge | |
121 | TH2F *fRecEtaPtPosVz; // etaxpt for pos. charge | |
122 | TH2F *fRecEtaPtNegVz; // etaxpt for neg. charge | |
9f9631f3 | 123 | |
124 | //high | |
50dbca26 | 125 | TH1F * fDeltaPhiAll; // dphi |
126 | TH2F * fDeltaPhiLeading; // dphi rel. to leading | |
127 | TH1F * fDiffDcaD; // delta dca | |
9f9631f3 | 128 | |
129 | //sim | |
50dbca26 | 130 | TH1F * fPhiRec; // phi |
131 | TH1F * fThetaRec; // theta | |
132 | TH1F * fNumber; // n | |
133 | TH1F * fVx; // vx | |
134 | TH1F * fVy; // vy | |
135 | TH1F * fVz; // vz | |
136 | ||
137 | AliESDtrackCuts* fCuts; // List of cuts | |
9f9631f3 | 138 | AliAnalysisTaskQASym(const AliAnalysisTaskQASym&); // not implemented |
139 | AliAnalysisTaskQASym& operator=(const AliAnalysisTaskQASym&); // not implemented | |
140 | ||
141 | ClassDef(AliAnalysisTaskQASym, 1); // Basic QA exploiting symmetries | |
142 | }; | |
143 | ||
144 | #endif |