72bdac29928c411fa93b7d125463865a946f4821
[u/mrichter/AliRoot.git] / prod / acrcaf / qa_pp / AliAnalysisTaskQASym.h
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:$ */
7  
8 //------------------------------
9 // Analysis task for quality-assurance of central tracking
10 // mainly based on fundamental symmetries 
11 //
12 // eva.sicking@cern.ch
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"
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  
45   Bool_t      fFieldOn;         // field flag
46
47   TList       *fHists;          // List of histos
48
49   //old
50   TH1F        *fHistRECpt;      // pt 
51   TH1F        *fEta;            // eta
52   TH2F        *fEtaPhi;         // eta-phi
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
78   // two sides of TPC -> Eta/Theta
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
89
90   // sectors of TPC (with pt>xGeV?), TODO: extent to TPC standalone tracks
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
96
97   // 7 different case of hit in ITS ladders
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
109
110   // 2D: all measures as function of z of vertex
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
123
124   //high
125   TH1F * fDeltaPhiAll;                   // dphi
126   TH2F * fDeltaPhiLeading;               // dphi rel. to leading
127   TH1F * fDiffDcaD;                      // delta dca
128
129   //sim
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
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