Line data Source code
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 *fListQAtpcBasic; //! Sub-list with TPC QA histograms - basic
56 : TList *fListQAtpcMCtruth; //! Sub-list with TPC QA histograms - only MC truth identified particles
57 : // TList *fListQAtpcHybrid; //! Sub-list with TPC QA histograms - the "hybrid" scenario -> not used and commented for now
58 : // TList *fListQAtpcOROChigh;//! Sub-list with TPC QA histograms - the "OROChigh" scenario -> not used and commented for now
59 : TList *fListQAtpcV0; //! Sub-list with TPC QA histograms - V0s
60 : TList *fListQAtrd; //! List with TRD QA histograms
61 : TList *fListQAtrdNsig; //! List with TRD QA histograms for Nsigma approach
62 : TList *fListQAtrdNsigTPCTOF; //! List with TRD QA histograms for Nsigma approach after TPC and TOF selection
63 : TList *fListQAtof; //! List with TOF QA histograms
64 : TList *fListQAt0; //! List with T0 QA histograms
65 : TList *fListQAemcal; //! List with EMCAL QA histograms
66 : TList *fListQAhmpid; //! List with EMCAL QA histograms
67 : TList *fListQAtofhmpid; //! List with EMCAL QA histograms
68 : TList *fListQAtpctof; //! List with combined PID from TPC + TOF
69 : TList *fListQAV0; //! List with V0 kine cuts QA histograms
70 : TList *fListQAinfo; //! List with information about loaded splines etc.
71 :
72 :
73 : void ExecNewRun();
74 :
75 : //qa object initialisation
76 : void SetupITSqa();
77 : void SetupTPCqa(Bool_t fillMC, Bool_t fill11h, Bool_t fillV0);
78 : void SetupTRDqa();
79 : void SetupTOFqa();
80 : void SetupT0qa();
81 : void SetupEMCALqa();
82 : void SetupHMPIDqa();
83 : void SetupTOFHMPIDqa();
84 : void SetupTPCTOFqa();
85 : void SetupV0qa();
86 : void SetupQAinfo();
87 :
88 : //
89 : void FillV0PIDlist();
90 : void ClearV0PIDlist();
91 : //
92 : void FillITSqa();
93 : void FillTPCqa();
94 : void FillTRDqa();
95 : void FillTOFqa();
96 : void FillT0qa();
97 : void FillEMCALqa();
98 : void FillHMPIDqa();
99 : void FillTOFHMPIDqa();
100 : void FillTPCTOFqa();
101 : void FillQAinfo();
102 :
103 : // Adding TPC Histograms - called in SetupTPCqa
104 : void AddTPCHistogramsSignal(TList *sublist, const char *scenario, Int_t scnumber);
105 : void AddTPCHistogramsNsigma(TList *sublist, const char *scenario, Int_t scnumber);
106 :
107 : // Fill TPC Histograms - called in FillTPCqa
108 : void FillTPCHistogramsSignal(TList *sublist, Int_t scenario, AliVTrack *track, Int_t nTracks);
109 : void FillTPCHistogramsNsigma(TList *sublist, Int_t scenario, AliVTrack *track, Int_t nTracks);
110 :
111 : //
112 : void SetRecoInfo();
113 :
114 : //helper functions
115 : TVectorD* MakeLogBinning(Int_t nbinsX, Double_t xmin, Double_t xmax);
116 : TVectorD* MakeLinBinning(Int_t nbinsX, Double_t xmin, Double_t xmax);
117 : TVectorD* MakeArbitraryBinning(const char* bins);
118 :
119 :
120 : AliAnalysisTaskPIDqa(const AliAnalysisTaskPIDqa &other);
121 : AliAnalysisTaskPIDqa& operator=(const AliAnalysisTaskPIDqa &other);
122 :
123 170 : ClassDef(AliAnalysisTaskPIDqa,2) // Task to properly set the PID response functions of all detectors
124 : };
125 : #endif
|