o AliTRDTenderSupply: updates from Markus Fasel
[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;\r
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\r
44 \r
45   TObjArray *fV0electrons;                  //! array with pointer to identified particles from V0 decays (electrons)\r
46   TObjArray *fV0pions;                      //! array with pointer to identified particles from V0 decays (pions)\r
47   TObjArray *fV0kaons;                      //! array with pointer to identified particles from V0 decays (kaons)\r
48   TObjArray *fV0protons;                    //! array with pointer to identified particles from V0 decays (ptotons)\r
49 \r
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                 *fListQAtof;        //! List with TOF QA histograms
57   TList                 *fListQAemcal;      //! List with EMCAL QA histograms
58   TList                 *fListQAhmpid;      //! List with EMCAL QA histograms
59   TList                 *fListQAtofhmpid;   //! List with EMCAL QA histograms
60   TList                 *fListQAtpctof;     //! List with combined PID from TPC + TOF
61   TList                 *fListQAV0;         //! List with V0 kine cuts QA histograms\r
62
63   
64   void ExecNewRun();
65
66   //qa object initialisation
67   void SetupITSqa();
68   void SetupTPCqa();
69   void SetupTRDqa();
70   void SetupTOFqa();
71   void SetupEMCALqa();
72   void SetupHMPIDqa();
73   void SetupTOFHMPIDqa();
74   void SetupTPCTOFqa();
75   void SetupV0qa();\r
76
77   //
78   void FillV0PIDlist();\r
79   void ClearV0PIDlist();\r
80   //\r
81   void FillITSqa();
82   void FillTPCqa();
83   void FillTRDqa();
84   void FillTOFqa();
85   void FillEMCALqa();
86   void FillHMPIDqa();
87   void FillTOFHMPIDqa();
88   void FillTPCTOFqa();
89   
90   //
91   void SetRecoInfo();
92   
93   //helper functions
94   TVectorD* MakeLogBinning(Int_t nbinsX, Double_t xmin, Double_t xmax);
95   TVectorD* MakeLinBinning(Int_t nbinsX, Double_t xmin, Double_t xmax);
96   TVectorD* MakeArbitraryBinning(const char* bins);
97   
98   
99   AliAnalysisTaskPIDqa(const AliAnalysisTaskPIDqa &other);
100   AliAnalysisTaskPIDqa& operator=(const AliAnalysisTaskPIDqa &other);
101   
102   ClassDef(AliAnalysisTaskPIDqa,1)  // Task to properly set the PID response functions of all detectors
103 };
104 #endif