]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraBoth.h
Adding the code for a spectra task which can run on ESD and AOD files
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliAnalysisTaskSpectraBoth.h
1 #ifndef ALIANALYSISTASKSPECTRABOTH_H\r
2 #define ALIANALYSISTASKSPECTRABOTH_H\r
3 \r
4 /*  See cxx source for full Copyright notice */\r
5 \r
6 //-------------------------------------------------------------------------\r
7 //                      AliAnalysisTaskSpectraBoth\r
8 //\r
9 //\r
10 //\r
11 //\r
12 // Author: Michele Floris, CERN\r
13 //-------------------------------------------------------------------------\r
14 \r
15 class TH1F;\r
16 class TH2F;\r
17 class AliVEvent;\r
18 class AliSpectraBothHistoManager;\r
19 class AliSpectraBothTrackCuts;\r
20 class AliSpectraBothEventCuts;\r
21 class AliSpectraBothPID;\r
22 class AliESDtrackCuts;\r
23 #include "AliSpectraBothHistoManager.h"\r
24 #include "AliAnalysisTaskSE.h"\r
25 #include "AliESDtrackCuts.h"\r
26 \r
27 class AliAnalysisTaskSpectraBoth : public AliAnalysisTaskSE\r
28 {\r
29 public:\r
30 \r
31    // constructors\r
32   AliAnalysisTaskSpectraBoth() : AliAnalysisTaskSE(), fAOD(0), fHistMan(0), fTrackCuts(0), fEventCuts(0), fPID(0), fIsMC(0), fNRebin(0),fUseMinSigma(0),fCuts(0),fdotheMCLoopAfterEventCuts(0)\r
33  {}\r
34   AliAnalysisTaskSpectraBoth(const char *name);\r
35    virtual ~AliAnalysisTaskSpectraBoth() {}\r
36 \r
37    void SetIsMC(Bool_t isMC = kFALSE)    {fIsMC = isMC; };\r
38    Bool_t GetIsMC()           const           { return fIsMC;};\r
39 \r
40    virtual void   UserCreateOutputObjects();\r
41    virtual void   UserExec(Option_t *option);\r
42    virtual void   Terminate(Option_t *);\r
43 \r
44    AliSpectraBothHistoManager * GetHistoManager()         {  return fHistMan; }\r
45    AliSpectraBothTrackCuts * GetTrackCuts()         {  return fTrackCuts; }\r
46    AliSpectraBothEventCuts * GetEventCuts()         {  return fEventCuts; }\r
47    AliSpectraBothPID * GetPID()         {  return fPID; }\r
48    \r
49    void SetTrackCuts(AliSpectraBothTrackCuts * tc)   {   fTrackCuts = tc;   }\r
50    void SetEventCuts(AliSpectraBothEventCuts * vc)   {   fEventCuts = vc;   }\r
51    void SetPID      (AliSpectraBothPID      * pid)   {   fPID       = pid;  }\r
52    void SetNRebin(Int_t nreb){fNRebin=nreb;}\r
53    void SetUseMinSigma (Bool_t flag) {fUseMinSigma=flag;}\r
54    Int_t   GetNRebin() const {return fNRebin;}\r
55    void SetAliESDtrackCuts(AliESDtrackCuts*  cuts ){fCuts=cuts;}\r
56    void SetdotheMCLoopAfterEventCuts (Bool_t flag) {fdotheMCLoopAfterEventCuts=flag;}\r
57    Bool_t GetdotheMCLoopAfterEventCuts () const {return fdotheMCLoopAfterEventCuts;}\r
58 private:\r
59 \r
60    AliVEvent           * fAOD;         //! AOD object\r
61    AliSpectraBothHistoManager      * fHistMan;       // Histogram Manager\r
62    AliSpectraBothTrackCuts      * fTrackCuts;     // Track Cuts\r
63    AliSpectraBothEventCuts      * fEventCuts;     // Event Cuts\r
64    AliSpectraBothPID             * fPID;// PID class\r
65    Bool_t          fIsMC;// true if processing MC\r
66    Int_t      fNRebin; //rebin of histos\r
67    Bool_t fUseMinSigma; // if true use min sigma \r
68      AliESDtrackCuts *fCuts; // ESD track cuts \r
69     Bool_t fdotheMCLoopAfterEventCuts; // if true first check the ESD event cuts than loop over MC info , if flase other approach     \r
70 \r
71    AliAnalysisTaskSpectraBoth(const AliAnalysisTaskSpectraBoth&);\r
72    AliAnalysisTaskSpectraBoth& operator=(const AliAnalysisTaskSpectraBoth&);\r
73 \r
74    ClassDef(AliAnalysisTaskSpectraBoth, 2);\r
75 };\r
76 \r
77 #endif\r