4 //* This file is property of and copyright by the ALICE Project *
5 //* ALICE Experiment at CERN, All rights reserved. *
6 //* See cxx source for full Copyright notice *
8 /// @file AliAnalysisTaskDxHFEParticleSelection.h
9 /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter
11 /// @brief AnalysisTask electron selection for D0 - HFE correlation
14 #ifndef ALIANALYSISTASKDXHFEPARTICLESELECTION_H
15 #define ALIANALYSISTASKDXHFEPARTICLESELECTION_H
17 #include "AliAnalysisTaskSE.h"
20 class AliDxHFEParticleSelection;
21 class AliAnalysisCuts;
26 * @class AliAnalysisTaskDxHFEParticleSelection
27 * Selection task for particles uesd in the D0 - HFE correlation studies
28 * Task performs the selection based on a configured AliDxHFEParticleSelection
31 class AliAnalysisTaskDxHFEParticleSelection : public AliAnalysisTaskSE {
34 AliAnalysisTaskDxHFEParticleSelection(const char* opt="");
36 virtual ~AliAnalysisTaskDxHFEParticleSelection();
43 /// inherited from AliAnalysisTask: connect tree branches at input slots
44 virtual void ConnectInputData(Option_t *option="") {
45 return AliAnalysisTaskSE::ConnectInputData(option);
48 /// inherited from AliAnalysisTaskSE: create output objects
49 virtual void UserCreateOutputObjects();
50 /// inherited from AliAnalysisTaskSE: event processing
51 virtual void UserExec(Option_t*);
52 /// inherited from AliAnalysisTask: called in SlaveTerminate phase for each task
53 virtual void FinishTaskOutput();
54 /// inherited from AliAnalysisTask: final step
55 virtual void Terminate(Option_t*);
57 void SetOption(const char* opt) { fOption = opt; }
58 void SetFillOnlyD0D0bar(Int_t flagfill){fFillOnlyD0D0bar=flagfill;}
59 void SetParticleType(int particle){fParticleType=particle;}
60 virtual void SetUseMC(Bool_t useMC){fUseMC=useMC;}
61 // virtual void SetCuts(AliAnalysisCuts* cuts){fCuts=cuts;}
62 virtual void SetCutList(TList* cuts){fCutList=cuts;}
63 Bool_t GetUseMC() const {return fUseMC;}
68 /// copy constructor prohibited: might change
69 AliAnalysisTaskDxHFEParticleSelection(const AliAnalysisTaskDxHFEParticleSelection&);
70 /// assignment operator prohibited: might change
71 AliAnalysisTaskDxHFEParticleSelection& operator=(const AliAnalysisTaskDxHFEParticleSelection&);
74 int ParseArguments(const char* arguments);
76 TList* fOutput; // list send on output slot 1
77 TString fOption; // option string
78 TList* fCutList; // TList containg cut objects
79 AliAnalysisCuts *fCutsD0; // Cut Object for D0
80 AliDxHFEParticleSelection* fSelector; // selector instance
81 bool fUseMC; // use MC info
82 Int_t fFillOnlyD0D0bar; // flag to set what to fill (0 = both, 1 = D0 only, 2 = D0bar only)
83 TObjArray *fSelectedTracks; // Array for selected Tracks
84 TObjArray *fMCArray; // MC array
85 Int_t fParticleType; // Holds which particle to run on
86 Int_t fSystem; // holds collisions system (0=pp, 1=PbPb(,2=pPb))
87 TString fSelectionParticleOptions; // String to hold options for the particle selection
88 Bool_t fUseKine; // Whether or not to run on MC stack
91 ClassDef(AliAnalysisTaskDxHFEParticleSelection, 4);