Working on the electron cut
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / multPbPb / AliAnalysisTaskMultPbTracks.h
1 #ifndef ALIANALYSISTASKMULTPBTRACKS_H
2 #define ALIANALYSISTASKMULTPBTRACKS_H
3
4 #include "AliAnalysisTaskSE.h"
5 #include "AliESDtrackCuts.h" // if I don't include this, nothing compiles
6
7 //-------------------------------------------------------------------------
8 //                      AliAnalysisTaskMultPbTracks
9 // 
10 // 
11 //
12 //
13 // Author: Michele Floris, CERN
14 //-------------------------------------------------------------------------
15
16
17 class AliESDEvent;
18 class AliESDtrackCuts;
19 class AliAnalysisMultPbCentralitySelector;
20 class AliAnalysisMultPbTrackHistoManager;
21 class AliTriggerAnalysis;
22 class AliPIDResponse;
23
24 class AliAnalysisTaskMultPbTracks : public AliAnalysisTaskSE {
25
26 public:
27
28   AliAnalysisTaskMultPbTracks();
29   AliAnalysisTaskMultPbTracks(const char * name);
30   AliAnalysisTaskMultPbTracks(const AliAnalysisTaskMultPbTracks& obj) ;
31   ~AliAnalysisTaskMultPbTracks();
32   void SetTrackCuts(AliESDtrackCuts * cuts) { fTrackCuts = cuts;}
33   void SetCentralitySelector(AliAnalysisMultPbCentralitySelector * centr) { fCentrSelector=centr;}
34   void SetTPCOnly(Bool_t flag=kTRUE) {fIsTPCOnly=flag;}
35   // void SetCentralityBin(Int_t bin = 0) { fCentrBin = bin; }
36   // void SetCentralityEstimator(const char * centr) { fCentralityEstimator = centr; }
37
38   void SetIsMC(Bool_t flag=kTRUE) { fIsMC = flag;}
39   AliAnalysisMultPbTrackHistoManager * GetHistoManager() { return fHistoManager;}
40   Bool_t IsPhysicalPrimaryAndTransportBit(Int_t ipart) ;
41   Bool_t IsElectron(AliESDtrack *  esdTrack);
42   void RejectElectrons(Bool_t rejElectron) { fRejectElectrons = rejElectron;}
43   void SetOfflineTrigger(UInt_t mask) { fOfflineTrigger = mask; }
44
45   virtual void   UserCreateOutputObjects();
46   virtual void   UserExec(Option_t *option);
47   virtual void   Terminate(Option_t *);
48   
49   
50
51 private:
52
53   //
54   AliESDEvent *  fESD;    //! ESD object  AliVEvent*     fEvent;
55   //  TList * fListHisto;     // list of output object
56   AliAnalysisMultPbTrackHistoManager  * fHistoManager; // wrapper for the list, takes care of merging + histo booking and getters
57   AliAnalysisMultPbCentralitySelector * fCentrSelector; // centrality selector
58   // Int_t fCentrBin; // centrality bin selected (5% XS percentiles)
59   // TString fCentralityEstimator; // Name of the centrality estimator, for AliESDCentrality
60   AliESDtrackCuts * fTrackCuts; // track cuts
61   AliESDtrackCuts * fTrackCutsNoDCA; // copy of the previous one, but with no DCA cuts
62   UInt_t fOfflineTrigger ; // offline trigger mask
63   Bool_t fIsMC; // true if processing montecarlo
64   Bool_t fIsTPCOnly; // if you only want to use TPC tracks
65   AliTriggerAnalysis * fTriggerAnalysis; // for offline triggers
66   AliPIDResponse *fPIDResponse;     //! PID response object
67   Bool_t fRejectElectrons; // reject electrons
68
69   AliAnalysisTaskMultPbTracks& operator=(const AliAnalysisTaskMultPbTracks& task);
70   
71   ClassDef(AliAnalysisTaskMultPbTracks, 3)
72
73
74 };
75
76 #endif