]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/QATasks/AliAnalysisTaskQAHighPtDeDx.h
Final TOF DAs
[u/mrichter/AliRoot.git] / PWGLF / QATasks / AliAnalysisTaskQAHighPtDeDx.h
CommitLineData
bb6f433c 1#ifndef ALIANALYSISTASKQAHIGHPTDEDX_H
2#define ALIANALYSISTASKQAHIGHPTDEDX_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4* See cxx source for full Copyright notice */
5/* $Id$ */
6
7
8// ROOT includes
9#include <TList.h>
10#include <TH1.h>
11#include <TProfile.h>
12#include <TTreeStream.h>
13#include <TRandom.h>
14#include <TObject.h>
15
16// AliRoot includes
17#include <AliAnalysisTaskSE.h>
18#include <AliESDEvent.h>
19#include <AliAODEvent.h>
20#include <AliMCEvent.h>
21#include <AliAnalysisFilter.h>
22#include <AliStack.h>
23#include <AliGenEventHeader.h>
24#include <AliVHeader.h>
25#include <AliAODMCParticle.h>
26#include <AliESDtrackCuts.h>
27
28
29
30class AliAnalysisTaskQAHighPtDeDx : public AliAnalysisTaskSE {
31 public:
32
b5c45a25 33
34 AliAnalysisTaskQAHighPtDeDx();
35 AliAnalysisTaskQAHighPtDeDx(const char *name);
36 virtual ~AliAnalysisTaskQAHighPtDeDx();
37
38
39
40
41
42
43 //AliAnalysisTaskQAHighPtDeDx(const char *name="<default name>");
44 //virtual ~AliAnalysisTaskQAHighPtDeDx() { /*if (fOutputList) delete fOutputList;*/}//;
bb6f433c 45
46 virtual void UserCreateOutputObjects();
47 virtual void UserExec(Option_t *option);
48
49 Bool_t GetAnalysisMC() { return fAnalysisMC; }
50 Double_t GetVtxCut() { return fVtxCut; }
51 Double_t GetEtaCut() { return fEtaCut; }
52 //Double_t GetMinPt() { return fMinPt; }
53 //Int_t GetTreeOption() { return fTreeOption; }
54
55 virtual void SetTrigger(UInt_t ktriggerInt) {ftrigBit = ktriggerInt;}
56 virtual void SetTrackFilterGolden(AliAnalysisFilter* trackF) {fTrackFilterGolden = trackF;}
57 virtual void SetTrackFilterTPC(AliAnalysisFilter* trackF) {fTrackFilterTPC = trackF;}
58 virtual void SetCentralityEstimator(const char * centEst) {fCentEst = centEst;}
59 virtual void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
60 virtual void SetAnalysisMC(Bool_t isMC) {fAnalysisMC = isMC;}
61 virtual void SetVtxCut(Double_t vtxCut){fVtxCut = vtxCut;}
62 virtual void SetEtaCut(Double_t etaCut){fEtaCut = etaCut;}
63 virtual void SetPileUpRej(Bool_t isrej) {fPileUpRej = isrej;}
64 virtual void SetMinCent(Float_t minvalc) {fMinCent = minvalc;}
65 virtual void SetMaxCent(Float_t maxvalc) {fMaxCent = maxvalc;}
66 virtual void SetStoreMcIn(Bool_t value) {fStoreMcIn = value;}
67 virtual void SetAnalysisPbPb(Bool_t isanaPbPb) {fAnalysisPbPb = isanaPbPb;}
68
69 private:
70 virtual Float_t GetVertex(const AliVEvent* event) const;
71 virtual void AnalyzeESD(AliESDEvent* esd);
72 virtual void AnalyzeAOD(AliAODEvent* aod);
73 virtual void ProduceArrayTrksESD(AliESDEvent* event);
74 virtual void ProduceArrayV0ESD(AliESDEvent* event);
75 virtual void ProduceArrayTrksAOD(AliAODEvent* event);
76 virtual void ProduceArrayV0AOD(AliAODEvent* event);
77 Short_t GetPidCode(Int_t pdgCode) const;
78 void ProcessMCTruthESD();
79 void ProcessMCTruthAOD();
80
81 Short_t GetPythiaEventProcessType(Int_t pythiaType);
82 Short_t GetDPMjetEventProcessType(Int_t dpmJetType);
83 ULong64_t GetEventIdAsLong(AliVHeader* header) const;
84
85 TParticle* FindPrimaryMother(AliStack* stack, Int_t label);
86 Int_t FindPrimaryMotherLabel(AliStack* stack, Int_t label);
87
88 AliAODMCParticle* FindPrimaryMotherAOD(AliAODMCParticle* startParticle);
89
90 TParticle* FindPrimaryMotherV0(AliStack* stack, Int_t label);
91 Int_t FindPrimaryMotherLabelV0(AliStack* stack, Int_t label, Int_t& nSteps);
92 Bool_t PhiCut(Double_t pt, Double_t phi, Double_t q, Float_t mag, TF1* phiCutLow, TF1* phiCutHigh);
93
94
95 AliAODMCParticle* FindPrimaryMotherAODV0(AliAODMCParticle* startParticle, Int_t& nSteps);
96
97
98
99 static const Double_t fgkClight; // Speed of light (cm/ps)
100
101 AliESDEvent* fESD; //! ESD object
102 AliAODEvent* fAOD; //! AOD object
103 AliMCEvent* fMC; //! MC object
104 AliStack* fMCStack; //! MC ESD stack
105 TClonesArray* fMCArray; //! MC array for AOD
106 AliAnalysisFilter* fTrackFilterGolden; // Track Filter, set 2010 with golden cuts
107 AliAnalysisFilter* fTrackFilterTPC; // track filter for TPC only tracks
108 TString fCentEst; // V0A , V0M,
109 TString fAnalysisType; // "ESD" or "AOD"
110 Bool_t fAnalysisMC; // Real(kFALSE) or MC(kTRUE) flag
111 Bool_t fAnalysisPbPb; // true you want to analyze PbPb data, false for pp
112 UInt_t ftrigBit;
113 TRandom* fRandom; //! random number generator
114 Bool_t fPileUpRej; // kTRUE is pile-up is rejected
115
116
117
118 //
119 // Cuts and options
120 //
121
122 Double_t fVtxCut; // Vtx cut on z position in cm
123 Double_t fEtaCut; // Eta cut used to select particles
124 Float_t fMinCent; //minimum centrality
125 Float_t fMaxCent; //maximum centrality
126 Bool_t fStoreMcIn; // Store MC input tracks
127 //
128 // Help variables
129 //
130 Short_t fMcProcessType; // -1=invalid, 0=data, 1=ND, 2=SD, 3=DD
131 Short_t fTriggeredEventMB; // 1 = triggered, 0 = not trigged (MC only)
132 Short_t fVtxStatus; // -1 = no vtx, 0 = outside cut, 1 = inside cut
133 Float_t fZvtx; // z vertex
134 Float_t fZvtxMC; // z vertex MC (truth)
135 Int_t fRun; // run no
136 ULong64_t fEventId; // unique event id
137
138 //
139 // Output objects
140 //
141 TList* fListOfObjects; //! Output list of objects
142 TH1I* fEvents; //! No of accepted events
143 TH1I* fVtx; //! Event vertex info
144 TH1F* fVtxMC; //! Event vertex info for ALL MC events
145 TH1F* fVtxBeforeCuts; //! Vertex z dist before cuts
146 TH1F* fVtxAfterCuts; //! Vertex z dist after cuts
147 TH1F* fn1;
148 TH1F* fcent;
149
150 TH2D *hMIPVsEta;
151 TProfile *pMIPVsEta;
152 TH2D *hMIPVsEtaV0s;
153 TProfile *pMIPVsEtaV0s;
154 TH2D *hPlateauVsEta;
155 TProfile *pPlateauVsEta;
156 TH2D *hPhi;
157
158 TH2D *hMIPVsNch[9];
159 TProfile *pMIPVsNch[9];
160
161 TH2D *hMIPVsPhi[9];
162 TProfile *pMIPVsPhi[9];
163 TH2D *hPlateauVsPhi[9];
164 TProfile *pPlateauVsPhi[9];
165
166 TH2D* histPiV0[9];
b5c45a25 167 TH1D* histpPiV0[9];
168
bb6f433c 169 TH2D* histPV0[9];
b5c45a25 170 TH1D* histpPV0[9];
bb6f433c 171
172 TH2D* histAllCh[9];
b5c45a25 173
bb6f433c 174 TH2D* histPiTof[9];
b5c45a25 175 TH1D* histpPiTof[9];
176
bb6f433c 177 TH2D* histEV0[9];
b5c45a25 178
bb6f433c 179 TH1D* hMcIn[7][9];
180 TH1D* hMcOut[7][9];
181
b5c45a25 182 AliAnalysisTaskQAHighPtDeDx(const AliAnalysisTaskQAHighPtDeDx&); // not implemented
183 AliAnalysisTaskQAHighPtDeDx& operator=(const AliAnalysisTaskQAHighPtDeDx&); // not implemented
bb6f433c 184
185 //TTree* fTree; //! Debug tree
186
187 ClassDef(AliAnalysisTaskQAHighPtDeDx, 1); //Analysis task for high pt analysis
188};
189
190#endif