3 #ifndef ALIANALYSISTASKNETPARTICLE_H
4 #define ALIANALYSISTASKNETPARTICLE_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
10 * Class for NetParticle Distributions
12 * Authors: Jochen Thaeder <jochen@thaeder.de>
13 * Michael Weber <m.weber@cern.ch>
16 #include "AliAnalysisTaskSE.h"
18 #include "THnSparse.h"
20 #include "AliAnalysisNetParticleHelper.h"
21 #include "AliAnalysisNetParticleEffCont.h"
22 #include "AliAnalysisNetParticleDCA.h"
23 #include "AliAnalysisNetParticleDistribution.h"
24 #include "AliAnalysisNetParticleQA.h"
27 class AliESDInputHandler;
29 class AliAODInputHandler;
35 class AliAnalysisTaskNetParticle : public AliAnalysisTaskSE {
39 AliAnalysisTaskNetParticle(const char *name = "AliAnalysisTaskNetParticle");
40 virtual ~AliAnalysisTaskNetParticle();
43 * ---------------------------------------------------------------------------------
45 * ---------------------------------------------------------------------------------
48 virtual void UserCreateOutputObjects();
49 virtual void UserExec(Option_t *option);
50 virtual void Terminate(Option_t *);
53 * ---------------------------------------------------------------------------------
55 * ---------------------------------------------------------------------------------
58 /** Initialize Task */
62 * ---------------------------------------------------------------------------------
64 * ---------------------------------------------------------------------------------
67 void SetIsMC() {fIsMC = kTRUE;}
68 void SetIsAOD(Bool_t b) {fIsAOD = b;}
70 void SetESDTrackCutMode(Int_t i) {fESDTrackCutMode = i;}
71 void SetModeEffCreation(Int_t i) {fModeEffCreation = i;}
72 void SetModeDCACreation(Int_t i) {fModeDCACreation = i;}
73 void SetModeDistCreation(Int_t i) {fModeDistCreation = i;}
74 void SetModeQACreation(Int_t i) {fModeQACreation = i;}
76 void SetEtaMax(Float_t f) {fEtaMax = f;}
77 void SetEtaMaxEff(Float_t f) {fEtaMaxEff = f;}
78 void SetPtRange(Float_t f1, Float_t f2) {fPtRange[0] = f1; fPtRange[1] = f2;}
79 void SetPtRangeEff(Float_t f1, Float_t f2) {fPtRangeEff[0] = f1; fPtRangeEff[1] = f2;}
81 void SetTrackFilterBit(Int_t i) {fAODtrackCutBit = i;}
83 void SetNetParticleHelper(AliAnalysisNetParticleHelper *helper) {
89 ///////////////////////////////////////////////////////////////////////////////////
93 AliAnalysisTaskNetParticle(const AliAnalysisTaskNetParticle&); // not implemented
94 AliAnalysisTaskNetParticle& operator=(const AliAnalysisTaskNetParticle&); // not implemented
97 * ---------------------------------------------------------------------------------
98 * Setup/Reset Methods - private
99 * ---------------------------------------------------------------------------------
105 /** Setup ESD Event */
106 Int_t SetupESDEvent();
108 /** Setup AOD Event */
109 Int_t SetupAODEvent();
111 /** Setup MC Event */
112 Int_t SetupMCEvent();
118 * ---------------------------------------------------------------------------------
120 * ---------------------------------------------------------------------------------
123 AliAnalysisNetParticleHelper *fHelper; // Helper class
124 AliAnalysisNetParticleEffCont *fEffCont; //! Efficiency and Contamination class
125 AliAnalysisNetParticleDCA *fDCA; //! DCA class
126 AliAnalysisNetParticleDistribution *fDist; //! Distributions class
127 AliAnalysisNetParticleQA *fQA; //! QA class
129 // --- OutLists ----------------------------------------------------------
130 TList *fOutList; //! Ptr to output data container
131 TList *fOutListEff; //! Ptr to output data container - efficiency
132 TList *fOutListCont; //! Ptr to output data container - contamination
133 TList *fOutListDCA; //! Ptr to output data container - DCA
134 TList *fOutListQA; //! Ptr to output data container - QA
136 // --- ESD only ----------------------------------------------------------
137 AliESDEvent *fESD; //! Ptr to ESD event
138 AliESDInputHandler *fESDHandler; //! Ptr to ESD Handler
139 // -----------------------------------------------------------------------
140 AliESDtrackCuts *fESDTrackCutsBase; //! ESD cuts - base settings
141 AliESDtrackCuts *fESDTrackCuts; //! ESD cuts
142 AliESDtrackCuts *fESDTrackCutsBkg; //! ESD cuts for Bkg
143 AliESDtrackCuts *fESDTrackCutsEff; //! ESD cuts for efficiency determination -> larger pt Range
145 // --- AOD only ----------------------------------------------------------
146 AliAODEvent *fAOD; //! Ptr to AOD event
147 AliAODInputHandler *fAODHandler; //! Ptr to AOD Handler
149 // --- Flags -------------------------------------------------------------
150 Bool_t fIsMC; // Is MC event
151 Bool_t fIsAOD; // analysis mode : 0 = ESDs | 1 = AODs
152 Int_t fESDTrackCutMode; // ESD track cut mode : 0 = clean | 1 = dirty
153 Int_t fModeEffCreation ; // Correction creation mode : 1 = on | 0 = off
154 Int_t fModeDCACreation; // DCA creation mode : 1 = on | 0 = off
155 Int_t fModeDistCreation; // Dist creation mode : 1 = on | 0 = off
156 Int_t fModeQACreation; // QA creation mode : 1 = on | 0 = off
158 // --- MC only -----------------------------------------------------------
159 AliMCEvent *fMCEvent; //! Ptr to MC event
160 AliStack *fMCStack; //! Ptr to MC stack
161 // -----------------------------------------------------------------------
162 Float_t fEtaMax; // Max, absolut eta
163 Float_t fEtaMaxEff; // Max, absolut eta for efficiency
164 Float_t fPtRange[2]; // Array of pt [min,max]
165 Float_t fPtRangeEff[2]; // Array of pt [min,max] for efficiency
166 // -----------------------------------------------------------------------
167 Int_t fAODtrackCutBit; // Track filter bit for AOD tracks
168 // =======================================================================
171 ClassDef(AliAnalysisTaskNetParticle, 1);