Updated treatment of TOF PID in QA task (Francesco+Pietro)
[u/mrichter/AliRoot.git] / PWGJE / AliPWG4HighPtQATPConly.h
1  /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //-----------------------------------------------------------------------
17 // This class compares the global reconstruction with the TPConly reconstruction
18 // Author : Marta Verweij - UU
19 //-----------------------------------------------------------------------
20
21 #ifndef ALIPWG4HIGHPTQATPCONLY_H
22 #define ALIPWG4HIGHPTQATPCONLY_H
23
24 #include "AliAnalysisTask.h"
25
26 class TH1F;
27 class TH2F;
28 class TH3F;
29 class TList;
30
31 class AliESDEvent;
32 class AliESDfriend;
33 class AliESDfriendTrack;
34 class AliVEvent;
35 class AliESDtrackCuts;
36 class AliESDtrack;
37 class AliESDVertex;
38
39 class AliPWG4HighPtQATPConly: public AliAnalysisTask {
40
41  public:
42   AliPWG4HighPtQATPConly();
43   AliPWG4HighPtQATPConly(const char *name);
44   ~AliPWG4HighPtQATPConly() {;}
45
46   virtual void   LocalInit();
47   virtual void   ConnectInputData(Option_t *);
48   virtual void   CreateOutputObjects();
49   virtual void   Exec(Option_t *option);
50   virtual void   Terminate(Option_t *);
51
52   Bool_t SelectEvent();    //decides if event is used for analysis
53
54   void SetCutType(Int_t ctype) {fCutType = ctype;}
55   void SetCuts(AliESDtrackCuts* trackCuts) {fTrackCuts = trackCuts;}
56   void SetCutsITS(AliESDtrackCuts* trackCutsITS) {fTrackCutsITS = trackCutsITS;}
57   void SetPtMax(Float_t ptmax) {fPtMax = ptmax;}
58
59   Int_t GetCutType() {return fCutType;}
60   Float_t GetPtMax()           {return fPtMax;}
61
62  protected:
63
64  private:
65
66   void InitHistPointers();
67   AliPWG4HighPtQATPConly(const AliPWG4HighPtQATPConly&);
68   AliPWG4HighPtQATPConly& operator=(const AliPWG4HighPtQATPConly&);
69
70   AliESDEvent  *fESD;              //! ESD object
71   AliESDfriend *fESDfriend;        //! ESD friend object
72
73   const AliESDVertex   *fVtx;     //! vertex object
74
75   Int_t fCutType;                 // Cut Type set in AddTask*
76   AliESDtrackCuts *fTrackCuts;    // TrackCuts for global vs TPConly comparison
77   AliESDtrackCuts *fTrackCutsITS; // TrackCuts including ITSrefit
78
79   Float_t fPtMax;                 // Maximum pT for histograms
80   
81   TH1F *fNEventAll;                             //! Event counter
82   TH1F *fNEventSel;                             //! Event counter: Selected events for analysis
83   TH1F *fNEventReject;                          //! Book keeping of reason of rejecting events
84
85   TH1F *fPtAll;                                 //! Pt spectrum all charged particles
86   TH1F *fPtSel;                                 //! Pt spectrum all selected charged particles by fTrackCuts
87   TH2F *fPtAllminPtTPCvsPtAll;                  //! Momentum resolution (global vs TPConly)
88   TH3F *fPtAllminPtTPCvsPtAllEtaPos;            //! Momentum resolution (global vs TPConly) vs Eta for positive particles
89   TH3F *fPtAllminPtTPCvsPtAllEtaNeg;            //! Momentum resolution (global vs TPConly) vs Eta for negative particles
90   TH3F *fPtAllminPtTPCvsPtAllNPointTPC;         //! Momentum resolution vs NPointTPC
91   TH3F *fPtAllminPtTPCvsPtAllDCAR;              //! Momentum resolution vs DCAR
92   TH3F *fPtAllminPtTPCvsPtAllDCAZ;              //! Momentum resolution vs DCAZ
93   TH3F *fPtAllminPtTPCvsPtAllPhi;               //! Momentum resolution vs Phi
94   TH3F *fPtAllminPtTPCvsPtAllNPointITS;         //! Momentum resolution vs NPointITS
95   TH3F *fPtAllminPtTPCvsPtAllNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertes
96   TH3F *fPtAllminPtTPCvsPtAllChi2C;             //! Momentum resolution vs Chi2Constrained
97   TH3F *fPtAllminPtTPCvsPtAllRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
98   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusTPC;   //! Momentum resolution vs Chi2PerNClusTPC
99   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITS;   //! Momentum resolution vs Chi2PerNClusITS
100
101   TH3F *fPtAllminPtTPCvsNPointTPCPhi;           //! Momentum resolution vs NPointTPC vs Phi
102   TH3F *fPtAllminPtTPCvsNPointITSPhi;           //! Momentum resolution vs NPointITS vs Phi
103   TH3F *fPtAllminPtTPCvsRel1PtUncertaintyPhi;   //! Momentum resolution vs Rel1PtUncertainty vs Phi
104
105   TH2F *fEtaPhiOutliers;                        //! Eta Phi for outliers in momentum resolution
106  
107   TH1F *fPtSelITSouter;                              //! Pt at ITS outer wall for all selected charged particles by fTrackCuts
108   TH2F *fPtITSouterminPtTPCvsPtAll;                  //! Momentum resolution (global vs ITSouter-TPCinner)
109   TH3F *fPtITSouterminPtTPCvsPtAllEtaPos;            //! Momentum resolution (global vs ITSouter-TPCinner) vs Eta for positive particles
110   TH3F *fPtITSouterminPtTPCvsPtAllEtaNeg;            //! Momentum resolution (global vs ITSouter-TPCinner) vs Eta for negative particles
111   TH3F *fPtITSouterminPtTPCvsPtAllNPointTPC;         //! Momentum resolution vs NPointTPC
112   TH3F *fPtITSouterminPtTPCvsPtAllDCAR;              //! Momentum resolution vs DCAR
113   TH3F *fPtITSouterminPtTPCvsPtAllDCAZ;              //! Momentum resolution vs DCAZ
114   TH3F *fPtITSouterminPtTPCvsPtAllPhi;               //! Momentum resolution vs Phi
115   TH3F *fPtITSouterminPtTPCvsPtAllNPointITS;         //! Momentum resolution vs NPointITS
116   TH3F *fPtITSouterminPtTPCvsPtAllNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertes
117   TH3F *fPtITSouterminPtTPCvsPtAllChi2C;             //! Momentum resolution vs Chi2Constrained
118   TH3F *fPtITSouterminPtTPCvsPtAllRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
119   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC;   //! Momentum resolution vs Chi2PerNClusTPC
120   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITS;   //! Momentum resolution vs Chi2PerNClusITS
121  
122   TH2F *fPtAllminPtTPCvsPtAllITSLayer0;              //! Track has at least 1st SPD layer
123   TH2F *fPtAllminPtTPCvsPtAllITSLayer1;              //! Track has at least 2nd SPD layer and not 1st SPD
124   TH2F *fPtAllminPtTPCvsPtAllITSLayer2;              //! Track has at least 1st SDD layer and not SPD layers
125   TH2F *fPtAllminPtTPCvsPtAllITSLayer3;              //! Track has at least 1st SDD layer and not SPD layers and not 1st SDD
126   TH2F *fPtAllminPtTPCvsPtAllITSLayer4;              //! Track has at least 1st SSD layer and not SPD or SDD layers
127   TH2F *fPtAllminPtTPCvsPtAllITSLayer5;              //! Track has at least 1st SSD layer and not SPD or SDD layers or 1st SSD
128
129   TH2F *fPtAllminPtTPCvsPtAllNoSPD;                  //! Track has no signal in SPD layers
130   TH2F *fPtAllminPtTPCvsPtAllNoSDD;                  //! Track has no signal in SDD layers
131   TH2F *fPtAllminPtTPCvsPtAllNoSSD;                  //! Track has no signal in SSD layers
132
133   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer0;  //! Track has at least 1st SPD layer
134   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer1;  //! Track has at least 2nd SPD layer and not 1st SPD
135   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer2;  //! Track has at least 1st SDD layer and not SPD layers
136   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer3;  //! Track has at least 1st SDD layer and not SPD layers and not 1st SDD
137   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer4;  //! Track has at least 1st SSD layer and not SPD or SDD layers
138   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSLayer5;  //! Track has at least 1st SSD layer and not SPD or SDD layers or 1st SSD
139
140   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSPD;   //! Track has no signal in SPD layers
141   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSDD;   //! Track has no signal in SDD layers
142   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITSNoSSD;   //! Track has no signal in SSD layers
143
144   TList *fHistList; //! List of Histograms
145   
146   TH1F *fPtAllTPC;     //! Pt spectrum all charged particles
147   TH1F *fPtSelTPC;     //! Pt spectrum all selected charged particles by fTrackCuts
148   TH1F *fPtSelTPCITS;  //! Pt spectrum all selected charged particles by fTrackCutsITS
149   TList *fHistListTPC; //! List of Histograms
150   
151   TH1F *fPtSelITS;                              //! Pt spectrum all selected charged particles by fTrackCutsITS
152   TH2F *fPtITSminPtTPCvsPtITS;                  //! Momentum resolution (global with ITSrefit vs TPConly)
153   TH3F *fPtITSminPtTPCvsPtITSEtaPos;            //! Momentum resolution (global with ITSrefit vs TPConly) vs Eta for positive particles
154   TH3F *fPtITSminPtTPCvsPtITSEtaNeg;            //! Momentum resolution (global with ITSrefit vs TPConly) vs Eta for negative particles
155   TH3F *fPtITSminPtTPCvsPtITSNPointTPC;         //! Momentum resolution vs NPointTPC 
156   TH3F *fPtITSminPtTPCvsPtITSDCAR;              //! Momentum resolution vs DCAR
157   TH3F *fPtITSminPtTPCvsPtITSDCAZ;              //! Momentum resolution vs DCAZ
158   TH3F *fPtITSminPtTPCvsPtITSPhi;               //! Momentum resolution vs Phi
159   TH3F *fPtITSminPtTPCvsPtITSNPointITS;         //! Momentum resolution vs NPointITS
160   TH3F *fPtITSminPtTPCvsPtITSNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertex
161   TH3F *fPtITSminPtTPCvsPtITSChi2C;             //! Momentum resolution vs Chi2Constrained
162   TH3F *fPtITSminPtTPCvsPtITSRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
163   TH3F *fPtITSminPtTPCvsPtITSChi2PerNClusTPC;   //! Momentum resolution vs Chi2PerNClusTPC
164   TH3F *fPtITSminPtTPCvsPtITSChi2PerNClusITS;   //! Momentum resolution vs Chi2PerNClusITS
165
166   TH3F *fPtITSminPtTPCvsNPointTPCPhi;           //! Momentum resolution vs NPointTPC vs Phi
167   TH3F *fPtITSminPtTPCvsNPointITSPhi;           //! Momentum resolution vs NPointITS vs Phi
168   TH3F *fPtITSminPtTPCvsRel1PtUncertaintyPhi;   //! Momentum resolution vs Rel1PtUncertainty vs Phi
169
170   TH3F *fPtRel1PtUncertaintyChi2PerClusTPC;     //! Global Pt vs relUncertainty1Pt vs Chi2PerClusTPC
171
172   TList *fHistListITS; //! List of Histograms
173
174   ClassDef(AliPWG4HighPtQATPConly,1) 
175   
176 };
177 #endif