]>
Commit | Line | Data |
---|---|---|
1 | //-*- Mode: C++ -*- | |
2 | // $Id$ | |
3 | ||
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 * | |
7 | ||
8 | /// @file AliAnalysisTaskDxHFEParticleSelection.h | |
9 | /// @author Sedat Altinpinar, Hege Erdal, Matthias Richter | |
10 | /// @date 2012-03-19 | |
11 | /// @brief AnalysisTask electron selection for D0 - HFE correlation | |
12 | /// | |
13 | ||
14 | #ifndef ALIANALYSISTASKDXHFEPARTICLESELECTION_H | |
15 | #define ALIANALYSISTASKDXHFEPARTICLESELECTION_H | |
16 | ||
17 | #include "AliAnalysisTaskSE.h" | |
18 | #include "TString.h" | |
19 | ||
20 | class AliDxHFEParticleSelection; | |
21 | class AliAnalysisCuts; | |
22 | class TList; | |
23 | class TObjArray; | |
24 | ||
25 | /** | |
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 | |
29 | * instance. | |
30 | */ | |
31 | class AliAnalysisTaskDxHFEParticleSelection : public AliAnalysisTaskSE { | |
32 | public: | |
33 | /// constructor | |
34 | AliAnalysisTaskDxHFEParticleSelection(const char* opt=""); | |
35 | /// destructor | |
36 | virtual ~AliAnalysisTaskDxHFEParticleSelection(); | |
37 | ||
38 | enum { | |
39 | kD0=0, | |
40 | kElectron=1 | |
41 | }; | |
42 | ||
43 | /// inherited from AliAnalysisTask: connect tree branches at input slots | |
44 | virtual void ConnectInputData(Option_t *option="") { | |
45 | return AliAnalysisTaskSE::ConnectInputData(option); | |
46 | } | |
47 | ||
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*); | |
56 | ||
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;} | |
64 | ||
65 | protected: | |
66 | ||
67 | private: | |
68 | /// copy constructor prohibited: might change | |
69 | AliAnalysisTaskDxHFEParticleSelection(const AliAnalysisTaskDxHFEParticleSelection&); | |
70 | /// assignment operator prohibited: might change | |
71 | AliAnalysisTaskDxHFEParticleSelection& operator=(const AliAnalysisTaskDxHFEParticleSelection&); | |
72 | ||
73 | int DefineSlots(); | |
74 | int ParseArguments(const char* arguments); | |
75 | ||
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 | |
89 | ||
90 | ||
91 | ClassDef(AliAnalysisTaskDxHFEParticleSelection, 4); | |
92 | }; | |
93 | ||
94 | #endif |