]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGHF/correlationHF/AliAnalysisTaskDxHFEParticleSelection.h
mall bugfixes (Hege)
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliAnalysisTaskDxHFEParticleSelection.h
... / ...
CommitLineData
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
20class AliDxHFEParticleSelection;
21class AliAnalysisCuts;
22class TList;
23class 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 */
31class 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