Net Particle fluctuation task including efficiency correction (by Jochen Thaeder)
[u/mrichter/AliRoot.git] / PWGCF / EBYE / NetParticle / AliAnalysisTaskNetParticle.h
CommitLineData
cb68eb1d 1//-*- Mode: C++ -*-
2
3#ifndef ALIANALYSISTASKNETPARTICLE_H
4#define ALIANALYSISTASKNETPARTICLE_H
5
6/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
8
9// Task for NetParticle Distributions
10// Authors: Jochen Thaeder <jochen@thaeder.de>
11
12#include "AliAnalysisTaskSE.h"
13#include "TList.h"
14#include "THnSparse.h"
15
16#include "AliAnalysisNetParticleHelper.h"
17#include "AliAnalysisNetParticleEffCont.h"
18#include "AliAnalysisNetParticleDCA.h"
19#include "AliAnalysisNetParticleDistribution.h"
20
21class AliESDEvent;
22class AliESDInputHandler;
23class AliMCEvent;
24class AliStack;
25class AliPIDResponse;
26class AliESDResponse;
27
28class AliAnalysisTaskNetParticle : public AliAnalysisTaskSE {
29
30 public:
31
32 /*
33 * ---------------------------------------------------------------------------------
34 * Constructor / Destructor
35 * ---------------------------------------------------------------------------------
36 */
37
38 AliAnalysisTaskNetParticle(const char *name = "AliAnalysisTaskNetParticle");
39 virtual ~AliAnalysisTaskNetParticle();
40
41 /*
42 * ---------------------------------------------------------------------------------
43 * Task Methods
44 * ---------------------------------------------------------------------------------
45 */
46
47 virtual void UserCreateOutputObjects();
48 virtual void UserExec(Option_t *option);
49 virtual void Terminate(Option_t *);
50
51 /*
52 * ---------------------------------------------------------------------------------
53 * Public Methods
54 * ---------------------------------------------------------------------------------
55 */
56
57 /** Initialize Task */
58 Int_t Initialize();
59
60 /*
61 * ---------------------------------------------------------------------------------
62 * Setter
63 * ---------------------------------------------------------------------------------
64 */
65
66 void SetIsMC() {fIsMC = kTRUE;}
67 void SetUseQATHnSparse(Bool_t b) {fUseQATHnSparse = b;}
68
69 void SetESDTrackCutMode(Int_t i) {fESDTrackCutMode = i;}
70 void SetModeEffCreation(Int_t i) {fModeEffCreation = i;}
71 void SetModeDCACreation(Int_t i) {fModeDCACreation = i;}
72 void SetModeDistCreation(Int_t i) {fModeDistCreation = i;}
73
74 void SetEtaMax(Float_t f) {fEtaMax = f;}
75 void SetPtRange(Float_t f1, Float_t f2) {fPtRange[0] = f1; fPtRange[1] = f2;}
76 void SetPtRangeEff(Float_t f1, Float_t f2) {fPtRangeEff[0] = f1; fPtRangeEff[1] = f2;}
77
78 /*
79 * ---------------------------------------------------------------------------------
80 * Setter - Pass-Through
81 * ---------------------------------------------------------------------------------
82 */
83
84 void SetCentralityBinMax(Int_t d) {fHelper->SetCentralityBinMax(d);}
85 void SetVertexZMax(Float_t f) {fHelper->SetVertexZMax(f);}
86
87 void SetRapidityMax(Float_t f) {fHelper->SetRapidityMax(f);}
88 void SetMinTrackLengthMC(Float_t f) {fHelper->SetMinTrackLengthMC(f);}
89 void SetNSigmaMaxCdd(Float_t f) {fHelper->SetNSigmaMaxCdd(f);}
90 void SetNSigmaMaxCzz(Float_t f) {fHelper->SetNSigmaMaxCzz(f);}
91
92 void SetParticleSpecies(AliPID::EParticleType pid) {fHelper->SetParticleSpecies(pid);}
93 void SetControlParticleSpecies(Int_t pdgCode, Bool_t isNeutral, const Char_t *name) {
94 fHelper->SetControlParticleSpecies(pdgCode, isNeutral, name);
95 }
96
97 void SetNSigmaMaxTPC(Float_t f) {fHelper->SetNSigmaMaxTPC(f);}
98 void SetNSigmaMaxTOF(Float_t f) {fHelper->SetNSigmaMaxTOF(f);}
99 void SetMinPtForTOFRequired(Float_t f) {fHelper->SetMinPtForTOFRequired(f);}
100
101 ///////////////////////////////////////////////////////////////////////////////////
102
103 private:
104
105 AliAnalysisTaskNetParticle(const AliAnalysisTaskNetParticle&); // not implemented
106 AliAnalysisTaskNetParticle& operator=(const AliAnalysisTaskNetParticle&); // not implemented
107
108 /*
109 * ---------------------------------------------------------------------------------
110 * Setup/Reset Methods - private
111 * ---------------------------------------------------------------------------------
112 */
113
114 /** Setup Event */
115 Int_t SetupEvent();
116
117 /** Setup ESD Event */
118 Int_t SetupESDEvent();
119
120 /** Setup MC Event */
121 Int_t SetupMCEvent();
122
123 /** Reset Event */
124 void ResetEvent();
125
126 /*
127 * ---------------------------------------------------------------------------------
128 * Members - private
129 * ---------------------------------------------------------------------------------
130 */
131
132 AliAnalysisNetParticleHelper *fHelper; //! Helper class
133 AliAnalysisNetParticleEffCont *fEffCont; //! Efficiency and Contamination class
134 AliAnalysisNetParticleDCA *fDCA; //! DCA class
135 AliAnalysisNetParticleDistribution *fDist; //! Distributions class
136
137 // --- OutLists ----------------------------------------------------------
138
139 TList *fOutList; //! Ptr to output data container
140 TList *fOutListEff; //! Ptr to output data container - efficiency
141 TList *fOutListCont; //! Ptr to output data container - contamination
142 TList *fOutListDCA; //! Ptr to output data container - DCA
143 TList *fOutListQA; //! Ptr to QA output data container
144
145 // --- ESD only ----------------------------------------------------------
146
147 AliESDEvent *fESD; //! Ptr to ESD event
148 AliESDInputHandler *fESDHandler; //! Ptr to ESD Handler
149
150 AliESDtrackCuts *fESDTrackCutsBase; //! ESD cuts - base settings
151 AliESDtrackCuts *fESDTrackCuts; //! ESD cuts
152 AliESDtrackCuts *fESDTrackCutsBkg; //! ESD cuts for Bkg
153 AliESDtrackCuts *fESDTrackCutsEff; //! ESD cuts for efficiency determination -> larger pt Range
154
155 // --- Flags -------------------------------------------------------------
156
157 Bool_t fIsMC; // Is MC event
158 Int_t fESDTrackCutMode; // ESD track cut mode : 0 = clean | 1 dirty
159 Int_t fModeEffCreation ; // Correction creation mode : 1 = on | 0 = off
160 Int_t fModeDCACreation; // DCA creation mode : 1 = on | 0 = off
161 Int_t fModeDistCreation; // Dist creation mode : 1 = on | 0 = off
162
163 // --- MC only -----------------------------------------------------------
164
165 AliMCEvent *fMCEvent; //! Ptr to MC event
166 AliStack *fMCStack; //! Ptr to MC stack
167
168 // -----------------------------------------------------------------------
169
170 THnSparseF *fHnQA; // THnSparseF : tracks for QA
171 Float_t fUseQATHnSparse; // Usage of THnSparse for QA
172
173 // -----------------------------------------------------------------------
174
175 Float_t fEtaMax; // Max, absolut eta
176 Float_t *fPtRange; // Array of pt [min,max]
177 Float_t *fPtRangeEff; // Array of pt [min,max] for efficiency
178
179 // -----------------------------------------------------------------------
180
181 ClassDef(AliAnalysisTaskNetParticle, 1);
182};
183
184#endif