a35d1f73d9c541d3c51d1ed8073a29913dbe488a
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / 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 class AliESDEvent;
31 class AliESDfriend;
32 class AliESDfriendTrack;
33 class AliMCEvent;
34 class AliVEvent;
35 class AliESDtrackCuts;
36 class AliESDtrack;
37
38 class AliPWG4HighPtQATPConly: public AliAnalysisTask {
39
40  public:
41   AliPWG4HighPtQATPConly();
42   AliPWG4HighPtQATPConly(const char *name);
43   ~AliPWG4HighPtQATPConly() {;}
44
45   virtual void   LocalInit();
46   virtual void   ConnectInputData(Option_t *);
47   virtual void   CreateOutputObjects();
48   virtual void   Exec(Option_t *option);
49   Bool_t IsCosmic(const AliESDtrack* track1 = 0x0, Int_t trackNumber = 0, Double_t ptMin = 6.);
50   virtual void   Terminate(Option_t *);
51
52   void SetCutType(Int_t ctype) {fCutType = ctype;}
53   void SetCuts(AliESDtrackCuts* trackCuts) {fTrackCuts = trackCuts;}
54   void SetCutsITS(AliESDtrackCuts* trackCutsITS) {fTrackCutsITS = trackCutsITS;}
55   void SetMaxCosmicAngle(Double_t angle) {fMaxCosmicAngle = angle;}
56
57   Int_t GetCutType() {return fCutType;}
58
59  protected:
60
61  private:
62
63   void InitHistPointers();
64   AliPWG4HighPtQATPConly(const AliPWG4HighPtQATPConly&);
65   AliPWG4HighPtQATPConly& operator=(const AliPWG4HighPtQATPConly&);
66
67   AliESDEvent *fESD;              //! ESD object
68   AliESDfriend *fESDfriend;       //! ESD friend object
69   AliMCEvent *fMC;                //! MC event object
70   Int_t fCutType;                 // Cut Type set in AddTask*
71   AliESDtrackCuts *fTrackCuts;    // TrackCuts for global vs TPConly comparison
72   AliESDtrackCuts *fTrackCutsITS; // TrackCuts including ITSrefit
73   
74   Double_t fMaxCosmicAngle;       // Max deviation from pi (angle between two tracks) in case of cosmic candidate
75
76   TH1F *fNEventAll;                             //! Event counter
77   TH1F *fNEventSel;                             //! Event counter: Selected events for analysis
78   TH1F *fPtAll;                                 //! Pt spectrum all charged particles
79   TH1F *fPtSel;                                 //! Pt spectrum all selected charged particles by fTrackCuts
80   TH2F *fPtAllminPtTPCvsPtAll;                  //! Momentum resolution (global vs TPConly)
81   TH3F *fPtAllminPtTPCvsPtAllEtaPos;            //! Momentum resolution (global vs TPConly) vs Eta for positive particles
82   TH3F *fPtAllminPtTPCvsPtAllEtaNeg;            //! Momentum resolution (global vs TPConly) vs Eta for negative particles
83   TH3F *fPtAllminPtTPCvsPtAllNPointTPC;         //! Momentum resolution vs NPointTPC
84   TH3F *fPtAllminPtTPCvsPtAllNPointTPCS;        //! Momentum resolution vs NPointTPCShared/NPointTPC
85   TH3F *fPtAllminPtTPCvsPtAllDCAR;              //! Momentum resolution vs DCAR
86   TH3F *fPtAllminPtTPCvsPtAllDCAZ;              //! Momentum resolution vs DCAZ
87   TH3F *fPtAllminPtTPCvsPtAllPhi;               //! Momentum resolution vs Phi
88   TH3F *fPtAllminPtTPCvsPtAllNPointITS;         //! Momentum resolution vs NPointITS
89   TH3F *fPtAllminPtTPCvsPtAllNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertes
90   TH3F *fPtAllminPtTPCvsPtAllChi2C;             //! Momentum resolution vs Chi2Constrained
91   TH3F *fPtAllminPtTPCvsPtAllRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
92   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusTPC;   //! Momentum resolution vs Chi2PerNClusTPC
93   TH3F *fPtAllminPtTPCvsPtAllChi2PerNClusITS;   //! Momentum resolution vs Chi2PerNClusITS
94
95   TH3F *fPtAllminPtTPCvsNPointTPCPhi;           //! Momentum resolution vs NPointTPC vs Phi
96   TH3F *fPtAllminPtTPCvsNPointITSPhi;           //! Momentum resolution vs NPointITS vs Phi
97   TH3F *fPtAllminPtTPCvsRel1PtUncertaintyPhi;   //! Momentum resolution vs Rel1PtUncertainty vs Phi
98
99   TH2F *fEtaPhiOutliers;                        //! Eta Phi for outliers in momentum resolution
100  
101   TH1F *fPtSelITSouter;                         //! Pt at ITS outer wall for all selected charged particles by fTrackCuts
102   TH2F *fPtITSouterminPtTPCvsPtAll;                  //! Momentum resolution (global vs ITSouter-TPCinner)
103   TH3F *fPtITSouterminPtTPCvsPtAllEtaPos;            //! Momentum resolution (global vs ITSouter-TPCinner) vs Eta for positive particles
104   TH3F *fPtITSouterminPtTPCvsPtAllEtaNeg;            //! Momentum resolution (global vs ITSouter-TPCinner) vs Eta for negative particles
105   TH3F *fPtITSouterminPtTPCvsPtAllNPointTPC;         //! Momentum resolution vs NPointTPC
106   TH3F *fPtITSouterminPtTPCvsPtAllNPointTPCS;        //! Momentum resolution vs NPointTPCS
107   TH3F *fPtITSouterminPtTPCvsPtAllDCAR;              //! Momentum resolution vs DCAR
108   TH3F *fPtITSouterminPtTPCvsPtAllDCAZ;              //! Momentum resolution vs DCAZ
109   TH3F *fPtITSouterminPtTPCvsPtAllPhi;               //! Momentum resolution vs Phi
110   TH3F *fPtITSouterminPtTPCvsPtAllNPointITS;         //! Momentum resolution vs NPointITS
111   TH3F *fPtITSouterminPtTPCvsPtAllNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertes
112   TH3F *fPtITSouterminPtTPCvsPtAllChi2C;             //! Momentum resolution vs Chi2Constrained
113   TH3F *fPtITSouterminPtTPCvsPtAllRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
114   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusTPC;   //! Momentum resolution vs Chi2PerNClusTPC
115   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITS;   //! Momentum resolution vs Chi2PerNClusITS
116  
117   TH2F *fPtITSouterminPtTPCvsPtAllITSLayer0;                  //! Track has at least 1st SPD layer
118   TH2F *fPtITSouterminPtTPCvsPtAllITSLayer1;                  //! Track has at least 2nd SPD layer and not 1st SPD
119   TH2F *fPtITSouterminPtTPCvsPtAllITSLayer2;                  //! Track has at least 1st SDD layer and not SPD layers
120   TH2F *fPtITSouterminPtTPCvsPtAllITSLayer3;                  //! Track has at least 1st SDD layer and not SPD layers and not 1st SDD
121   TH2F *fPtITSouterminPtTPCvsPtAllITSLayer4;                  //! Track has at least 1st SSD layer and not SPD or SDD layers
122   TH2F *fPtITSouterminPtTPCvsPtAllITSLayer5;                  //! Track has at least 1st SSD layer and not SPD or SDD layers or 1st SSD
123
124   TH2F *fPtITSouterminPtTPCvsPtAllNoSPD;                  //! Track has no signal in SPD layers
125   TH2F *fPtITSouterminPtTPCvsPtAllNoSDD;                  //! Track has no signal in SDD layers
126   TH2F *fPtITSouterminPtTPCvsPtAllNoSSD;                  //! Track has no signal in SSD layers
127
128   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer0;                  //! Track has at least 1st SPD layer
129   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer1;                  //! Track has at least 2nd SPD layer and not 1st SPD
130   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer2;                  //! Track has at least 1st SDD layer and not SPD layers
131   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer3;                  //! Track has at least 1st SDD layer and not SPD layers and not 1st SDD
132   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer4;                  //! Track has at least 1st SSD layer and not SPD or SDD layers
133   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSLayer5;                  //! Track has at least 1st SSD layer and not SPD or SDD layers or 1st SSD
134
135   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSPD;                  //! Track has no signal in SPD layers
136   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSDD;                  //! Track has no signal in SDD layers
137   TH3F *fPtITSouterminPtTPCvsPtAllChi2PerNClusITSNoSSD;                  //! Track has no signal in SSD layers
138
139   TList *fHistList; //! List of Histograms
140   
141   TH1F *fPtAllTPC;     //! Pt spectrum all charged particles
142   TH1F *fPtSelTPC;     //! Pt spectrum all selected charged particles by fTrackCuts
143   TH1F *fPtSelTPCITS;  //! Pt spectrum all selected charged particles by fTrackCutsITS
144   TList *fHistListTPC; //! List of Histograms
145   
146   TH1F *fPtSelITS;                              //! Pt spectrum all selected charged particles by fTrackCutsITS
147   TH2F *fPtITSminPtTPCvsPtITS;                  //! Momentum resolution (global with ITSrefit vs TPConly)
148   TH3F *fPtITSminPtTPCvsPtITSEtaPos;            //! Momentum resolution (global with ITSrefit vs TPConly) vs Eta for positive particles
149   TH3F *fPtITSminPtTPCvsPtITSEtaNeg;            //! Momentum resolution (global with ITSrefit vs TPConly) vs Eta for negative particles
150   TH3F *fPtITSminPtTPCvsPtITSNPointTPC;         //! Momentum resolution vs NPointTPC 
151   TH3F *fPtITSminPtTPCvsPtITSNPointTPCS;        //! Momentum resolution vs NPointTPCS 
152   TH3F *fPtITSminPtTPCvsPtITSDCAR;              //! Momentum resolution vs DCAR
153   TH3F *fPtITSminPtTPCvsPtITSDCAZ;              //! Momentum resolution vs DCAZ
154   TH3F *fPtITSminPtTPCvsPtITSPhi;               //! Momentum resolution vs Phi
155   TH3F *fPtITSminPtTPCvsPtITSNPointITS;         //! Momentum resolution vs NPointITS
156   TH3F *fPtITSminPtTPCvsPtITSNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertex
157   TH3F *fPtITSminPtTPCvsPtITSChi2C;             //! Momentum resolution vs Chi2Constrained
158   TH3F *fPtITSminPtTPCvsPtITSRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
159   TH3F *fPtITSminPtTPCvsPtITSChi2PerNClusTPC;   //! Momentum resolution vs Chi2PerNClusTPC
160   TH3F *fPtITSminPtTPCvsPtITSChi2PerNClusITS;   //! Momentum resolution vs Chi2PerNClusITS
161
162   TH3F *fPtITSminPtTPCvsNPointTPCPhi;           //! Momentum resolution vs NPointTPC vs Phi
163   TH3F *fPtITSminPtTPCvsNPointITSPhi;           //! Momentum resolution vs NPointITS vs Phi
164   TH3F *fPtITSminPtTPCvsRel1PtUncertaintyPhi;   //! Momentum resolution vs Rel1PtUncertainty vs Phi
165
166   TH3F *fPtRel1PtUncertaintyChi2PerClusTPC;     //! Global Pt vs relUncertainty1Pt vs Chi2PerClusTPC
167   TH3F *fPtNPointTPCSChi2PerClusTPC;            //! Global Pt vs NPointTPCShared/NPointTPC vs Chi2PerClusTPC
168   TH3F *fPtNPointTPCSRel1PtUncertainty;         //! Global Pt vs NPointTPCShared/NPointTPC vs relUncertainty1Pt
169   TH3F *fPtRel1PtUncertaintyChi2PerClusTPCSharedSel;     //! Global Pt vs relUncertainty1Pt vs Chi2PerClusTPC for NPointTPCShared/NPointTPC>0.05
170
171   TList *fHistListITS; //! List of Histograms
172
173   TH1F *fPtSignedCosmicCandidates;              //! Cosmic Candidates
174   TH1F *fDeltaPtCosmicCandidates;               //! Cosmic Candidates Delta Pt
175   TH2F *fDeltaPhiSumEta;                        //! Cosmic Candidates Delta Phi vs Sum Eta
176   TH2F *fDCAZCosmicCandidates;                  //! Cosmic Candidates DCAZ track1 vs track2
177   TH2F *fDCARCosmicCandidates;                  //! Cosmic Candidates DCAR track1 vs track2
178   TH1F *fTheta;                                 //! Angle \theta between cosmic candidates in 3D space
179   TH1F *fThetaZoom;                             //! Angle between cosmic candidates in 3D space zoomed into back-to-back region
180   TH3F *fThetaPt1Pt2;                           //! Angle theta vs Pt1 vs Pt2
181   TH3F *fDeltaPhiSumEtaPt1;                     //! Delta Phi vs Sum Eta vs Pt1
182   TH3F *fDeltaPhiSumEtaPt2;                     //! Delta Phi vs Sum Eta vs Pt2
183   TH3F *fThetaDCAZ1DCAZ2;                       //! Angle theta vs DCAZ1 vs DCAZ2
184
185   TList *fHistListCosmics;                      //! List of Histograms for cosmic candidates
186
187   ClassDef(AliPWG4HighPtQATPConly,1) 
188   
189 };
190 #endif