621479346d679f8640f684b472f72190774b1693
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskPIDqa.h
1 #ifndef ALIANALYSISTASKPIDQA_H
2 #define ALIANALYSISTASKPIDQA_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id: AliAnalysisTaskPIDqa.h 43642 2010-09-17 15:50:04Z wiechula $ */
8 // Author: Jens Wiechula, 24/02/2011
9
10 //==============================================================================
11 //
12 //
13 //
14 //
15 //==============================================================================
16
17 #include <TVectorDfwd.h>
18
19 #ifndef ALIANALYSISTASKSE_H
20 #include "AliAnalysisTaskSE.h"
21 #endif
22
23 class AliPIDResponse;
24 class TList;
25 class AliVEvent;
26 class AliESDv0KineCuts;
27
28 class AliAnalysisTaskPIDqa : public AliAnalysisTaskSE {
29   
30   
31 public:
32   AliAnalysisTaskPIDqa();
33   AliAnalysisTaskPIDqa(const char *name);
34   virtual ~AliAnalysisTaskPIDqa();
35
36   virtual void UserCreateOutputObjects();
37   
38   virtual void UserExec(Option_t */*option*/);
39
40   
41 private: 
42   AliPIDResponse *fPIDResponse;             //! PID response Handler
43   AliESDv0KineCuts *fV0cuts;                //! ESD V0 cuts
44
45   TObjArray *fV0electrons;                  //! array with pointer to identified particles from V0 decays (electrons)
46   TObjArray *fV0pions;                      //! array with pointer to identified particles from V0 decays (pions)
47   TObjArray *fV0kaons;                      //! array with pointer to identified particles from V0 decays (kaons)
48   TObjArray *fV0protons;                    //! array with pointer to identified particles from V0 decays (ptotons)
49
50   TList                 *fListQA;           //! list with all QA histograms
51   TList                 *fListQAits;        //! List with ITS QA histograms
52   TList                 *fListQAitsSA;      //! List with ITS SA QA histograms
53   TList                 *fListQAitsPureSA;  //! List with ITS pure SA QA histograms
54   TList                 *fListQAtpc;        //! List with TPC QA histograms
55   TList                 *fListQAtrd;        //! List with TRD QA histograms
56   TList                 *fListQAtrdNsig;    //! List with TRD QA histograms for Nsigma approach
57   TList                 *fListQAtrdNsigTPCTOF; //! List with TRD QA histograms for Nsigma approach after TPC and TOF selection
58   TList                 *fListQAtof;        //! List with TOF QA histograms
59   TList                 *fListQAt0;         //! List with T0 QA histograms
60   TList                 *fListQAemcal;      //! List with EMCAL QA histograms
61   TList                 *fListQAhmpid;      //! List with EMCAL QA histograms
62   TList                 *fListQAtofhmpid;   //! List with EMCAL QA histograms
63   TList                 *fListQAtpctof;     //! List with combined PID from TPC + TOF
64   TList                 *fListQAV0;         //! List with V0 kine cuts QA histograms
65   TList                 *fListQAinfo;       //! List with information about loaded splines etc.
66
67   
68   void ExecNewRun();
69
70   //qa object initialisation
71   void SetupITSqa();
72   void SetupTPCqa();
73   void SetupTRDqa();
74   void SetupTOFqa();
75   void SetupT0qa();
76   void SetupEMCALqa();
77   void SetupHMPIDqa();
78   void SetupTOFHMPIDqa();
79   void SetupTPCTOFqa();
80   void SetupV0qa();
81   void SetupQAinfo();
82
83   //
84   void FillV0PIDlist();
85   void ClearV0PIDlist();
86   //
87   void FillITSqa();
88   void FillTPCqa();
89   void FillTRDqa();
90   void FillTOFqa();
91   void FillT0qa();
92   void FillEMCALqa();
93   void FillHMPIDqa();
94   void FillTOFHMPIDqa();
95   void FillTPCTOFqa();
96   void FillQAinfo();
97   
98   //
99   void SetRecoInfo();
100   
101   //helper functions
102   TVectorD* MakeLogBinning(Int_t nbinsX, Double_t xmin, Double_t xmax);
103   TVectorD* MakeLinBinning(Int_t nbinsX, Double_t xmin, Double_t xmax);
104   TVectorD* MakeArbitraryBinning(const char* bins);
105   
106   
107   AliAnalysisTaskPIDqa(const AliAnalysisTaskPIDqa &other);
108   AliAnalysisTaskPIDqa& operator=(const AliAnalysisTaskPIDqa &other);
109   
110   ClassDef(AliAnalysisTaskPIDqa,2)  // Task to properly set the PID response functions of all detectors
111 };
112 #endif