]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliAnalysisTaskQASym.h
use Terminate function for producing summary plots (Markus)
[u/mrichter/AliRoot.git] / PWG1 / AliAnalysisTaskQASym.h
1 #ifndef AliAnalysisTaskQASym_cxx
2 #define AliAnalysisTaskQASym_cxx
3  
4
5 class TH1F;
6 class TH2F;
7 class TH3F;
8 class TList;
9 class TNtuple;
10
11 class AliESDEvent;
12 class AliESDtrack;
13 class AliESDtrackCuts;
14
15
16 #include "AliAnalysisTaskSE.h"
17 #include "TFile.h"
18 #include "TNtuple.h"
19
20 class AliAnalysisTaskQASym : public AliAnalysisTaskSE {
21  public:
22   AliAnalysisTaskQASym(const char *name = "AliAnalysisTaskQASym");
23   virtual ~AliAnalysisTaskQASym() {}
24   
25   virtual void   UserCreateOutputObjects();
26   virtual void   UserExec(Option_t *option);
27   virtual void   Terminate(Option_t *);
28   virtual void   SetTrackType(Int_t type) {fTrackType = type;}  
29   virtual void   SetStandAloneTrack(Bool_t standAlone = kFALSE) {fStandAlone = standAlone;}  //needed for ITS tracks
30   
31   
32   virtual void   SetCuts(AliESDtrackCuts* cuts)
33      {fCuts = cuts;}
34
35   virtual void   SetFieldOn(Bool_t b = kTRUE){fFieldOn = b;} 
36
37   
38  private:
39
40   Int_t       fTrackType;
41   Int_t       fStandAlone; // needed for ITS tracks
42   Bool_t      fFieldOn;
43
44   TList       *fHists;          // List of histos
45
46   //old
47   TH1F        *fHistRECpt;      // pt 
48   TH1F        *fEta;            // eta
49   TH2F        *fEtaPhi;         // eta-phi
50   TH1F        *fEtaPt;          // eta over pt 
51   TH1F        *fQPt;            // charge over pt 
52   TH1F        *fDca;            // distance of closest approach
53   TH1F        *fqRec;           // reconstrcuted charge
54   TH1F        *fsigmaPt;        // sigma_pT
55
56    //positive und negative tracks
57   TH1F        *fRecPtPos;      // pt of pos tracks
58   TH1F        *fRecPtNeg;      // pt of neg tracks
59   TH1F        *fRecPhiPos;     // phi of pos. tracks
60   TH1F        *fRecPhiNeg;     // phi of neg. tracks
61   TH1F        *fRecEtaPos;     // eta of neg. tracks
62   TH1F        *fRecEtaNeg;     // eta of neg. tracks
63   TH1F        *fRecEtaPtPos;   // eta over pt of neg. tracks
64   TH1F        *fRecEtaPtNeg;   // eta over pt of neg. tracks
65   TH1F        *fRecDcaPos;     // distance of closest approach of neg. tracks
66   TH1F        *fRecDcaNeg;     // distance of closest of neg. tracks
67   TH1F        *fRecDcaNegInv;  // invers dca of neg. tracks
68   TH1F        *fRecDPos;       // impact parameter of neg. tracks
69   TH1F        *fRecDNeg;       // impact parameter of neg. tracks
70
71   // two sides of TPC -> Eta/Theta
72   TH1F        *fRecQPtPosEta;   //charge/pT for pos. eta
73   TH1F        *fRecQPtNegEta;   //charge/pT for neg. eta
74   TH1F        *fRecPtPosEta;    //pT        for pos. eta
75   TH1F        *fRecPtNegEta;    //pT        for neg. eta
76   TH1F        *fRecPhiPosEta;   //phi       for pos. eta
77   TH1F        *fRecPhiNegEta;   //phi       for neg. eta
78   TH1F        *fRecDcaPosEta;   //dca       for pos. eta
79   TH1F        *fRecDcaNegEta;   //dca       for neg. eta
80   TH1F        *fRecDPosEta;     //d         for pos. eta
81   TH1F        *fRecDNegEta;     //d         for neg. eta
82
83   // 2D: all measures as function of z of first trackpoint 
84   TH2F        *fRecPtPosVz;     //pt-zfirst of pos tracks
85   TH2F        *fRecPtNegVz;      //pt-zfirst of neg tracks
86   TH2F        *fRecEtaPosVz;    //eta-zfirst of pos tracks
87   TH2F        *fRecEtaNegVz;    //eta-zfirst of neg tracks
88   TH2F        *fRecPhiPosVz;    //phi-zfirst of pos tracks
89   TH2F        *fRecPhiNegVz;    //phi-zfirst of neg tracks
90   TH2F        *fSignedDcaPosVz; //dca-zfirst of pos tracks
91   TH2F        *fSignedDcaNegVz; //dca-zfirst of neg tracks
92   TH2F        *fRecQPtPosEtaVz; //charge/pT-zfirst of pos tracks
93   TH2F        *fRecQPtNegEtaVz; //charge/pT-zfirst of neg tracks
94   TH2F        *fRecEtaPtPosVz;  //eta/pT-zfirst of pos tracks
95   TH2F        *fRecEtaPtNegVz;  //eta/pT-zfirst of neg tracks
96
97
98   //high
99   TH1F * fDeltaPhiAll;         // phiLeaingTracks-phiOthers
100   TH2F * fDeltaPhiLeading;     // phiLeaingTracks-phiOthers vs. phiLeading
101   TH1F * fDiffDcaD;            // d-dca
102
103   //sim
104   TH1F * fPhiRec;              //phi
105   TH1F * fThetaRec;            //theta
106   TH1F * fNumber;              //Number of tracks per event
107   TH1F * fVx;                  // x of first track point
108   TH1F * fVy;                  // y of first track point
109   TH1F * fVz;                  // z of first track point
110   TH1F * fVertexX;             // x of vertex
111   TH1F * fVertexY;             // y of vertex
112   TH1F * fVertexZ;             // z of vertex
113   TNtuple * test;
114
115   //new
116   TH2F        *fRecDcaPosPhi;     //dca-phi for pos.
117   TH2F        *fRecDcaNegPhi;     //dca-phi for neg.
118   TH2F        *fRecPtPosPhi;      //pt-phi for pos.
119   TH2F        *fRecPtNegPhi;      //pt-phi for neg.
120   TH2F        *fRecEtaPosPhi;     //eta-phi for pos.
121   TH2F        *fRecEtaNegPhi;     //eta-phi for neg.
122   TH2F        *fRecQPtPhi;        //charge/pt-phi
123   TH2F        *fRecEtaPtPosPhi;   //eta/pt-phi for neg.
124   TH2F        *fRecEtaPtNegPhi;   //eta/pt-phi for pos.
125
126   TH1F        *fRecPtPosEtaPos;   //pt for pos tracks and pos eta
127   TH1F        *fRecPtNegEtaPos;   //pt for neg tracks and pos eta
128   TH1F        *fRecPtPosEtaNeg;   //pt for pos tracks and neg eta
129   TH1F        *fRecPtNegEtaNeg;   //pt for neg tracks and neg eta
130
131   TH1F        *fRec1PtPosEtaPos;   //1/pt for pos tracks and pos eta
132   TH1F        *fRec1PtNegEtaPos;   //1/pt for neg tracks and pos eta
133   TH1F        *fRec1PtPosEtaNeg;   //1/pt for pos tracks and neg eta
134   TH1F        *fRec1PtNegEtaNeg;   //1/pt for neg tracks and neg eta
135
136   TH1F        *fRecPhiPosEtaPos;   //phi for pos tracks and pos eta
137   TH1F        *fRecPhiNegEtaPos;   //phi for neg tracks and pos eta
138   TH1F        *fRecPhiPosEtaNeg;   //phi for pos tracks and neg eta
139   TH1F        *fRecPhiNegEtaNeg;   //phi for neg tracks and neg eta
140
141   TH2F        *fRecDcaPosPhiEtaPos;  //dca-phi for pos tracks and pos eta
142   TH2F        *fRecDcaNegPhiEtaPos;  //dca-phi for neg tracks and pos eta
143   TH2F        *fRecDcaPosPhiEtaNeg;  //dca-phi for pos tracks and neg eta
144   TH2F        *fRecDcaNegPhiEtaNeg;  //dca-phi for neg tracks and neg eta
145
146   TH2F        *fRecDcaPosPtEtaPos;  //dca-pt for pos tracks and pos eta
147   TH2F        *fRecDcaNegPtEtaPos;  //dca-pt for neg tracks and pos eta
148   TH2F        *fRecDcaPosPtEtaNeg;  //dca-pt for pos tracks and neg eta
149   TH2F        *fRecDcaNegPtEtaNeg;  //dca-pt for neg tracks and neg eta
150
151   TH2F        *fRecPtPosPhiEtaPos;  //pt-phi for pos tracks and pos eta
152   TH2F        *fRecPtNegPhiEtaPos;  //pt-phi for neg tracks and pos eta 
153   TH2F        *fRecPtPosPhiEtaNeg;  //pt-phi for pos tracks and neg eta
154   TH2F        *fRecPtNegPhiEtaNeg;  //pt-phi for neg tracks and neg eta
155
156   //  TH3F        *fRecDcaPhiPtPosEtaPos; //dca-pt-phi for pos tracks and pos eta
157   //  TH3F        *fRecDcaPhiPtNegEtaPos; //dca-pt-phi for neg tracks and pos eta
158   //  TH3F        *fRecDcaPhiPtPosEtaNeg; //dca-pt-phi for pos tracks and neg eta
159   //  TH3F        *fRecDcaPhiPtNegEtaNeg; //dca-pt-phi for neg tracks and neg eta
160
161   TH2F        *fEtavPt;
162   TH2F        *fCompareTPCparam;
163   TH1F        *fITSlayer;
164
165   Double_t  sdca;
166   Float_t xy, z, xvertexcor, yvertexcor;
167   AliESDtrackCuts* fCuts;                      // List of cuts
168
169   // sectors of TPC 
170   TH1F        *fRecPtTpcSector[18];     //pt for TPC sectors
171   TH1F        *fRecEtaTpcSector[18];    //eta for TPC sectors
172   TH1F        *fRecQPtTpcSector[18];    //charge/pt for TPC sectors
173   TH1F        *fRecEtaPtTpcSector[18];  //eta/pt for TPC sectors
174   TH1F        *fSignedDcaTpcSector[18]; //dca for TPC sectors
175
176
177   // 7 different case of hit in ITS ladders
178   TH1F        *fRecPtPosLadder[7];  //pt for pos tracks
179   TH1F        *fRecPtNegLadder[7];  //pt for neg tracks
180   TH1F        *fRecPhiPosLadder[7]; //phi for pos tracks
181   TH1F        *fRecPhiNegLadder[7]; //phi for neg tracks
182   TH1F        *fRecEtaPosLadder[7]; //eta for pos tracks
183   TH1F        *fRecEtaNegLadder[7]; //eta for neg tracks
184   TH1F        *fSignDcaPos[7];      //dca for pos tracks
185   TH1F        *fSignDcaNeg[7];      //dca for neg tracks
186   TH1F        *fSignDcaNegInv[7];   //-dca for neg tracks
187   TH1F        *fPtSigmaPos[7];      //sigma_pT for pos tracks
188   TH1F        *fPtSigmaNeg[7];      //sigma_pT for neg tracks
189   TH1F        *fqPtRec[7];          // charge/pt 
190   TH2F        *fDcaSigmaPos[7];     // dca - sigma_pT for pos tracks
191   TH2F        *fDcaSigmaNeg[7];     // dca - sigma_pT for neg tracks
192
193   
194   
195
196
197   AliAnalysisTaskQASym(const AliAnalysisTaskQASym&); // not implemented
198   AliAnalysisTaskQASym& operator=(const AliAnalysisTaskQASym&); // not implemented
199   
200   ClassDef(AliAnalysisTaskQASym, 1); // Basic QA exploiting symmetries
201 };
202
203 #endif