Test task for Nano and standard AOD
[u/mrichter/AliRoot.git] / PWG / DevNanoAOD / AliAnalysisTaskSpectraAllChNanoAOD.h
1 #ifndef ALIANALYSISTASKSPECTRAALLCHNANOAOD_H
2 #define ALIANALYSISTASKSPECTRAALLCHNANOAOD_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-------------------------------------------------------------------------
7 //                      AliAnalysisTaskSpectraAllChNanoAOD
8 //
9 //
10 //
11 //
12 // Author: Leonardo Milano, CERN
13 //-------------------------------------------------------------------------
14
15 class AliAODEvent;
16 class AliSpectraAODTrackCuts;
17 class AliSpectraAODEventCuts;
18 class AliHelperPID;
19
20 #include "AliAnalysisTaskSE.h"
21
22 class AliAnalysisTaskSpectraAllChNanoAOD : public AliAnalysisTaskSE
23 {
24  public:
25   // constructors
26  AliAnalysisTaskSpectraAllChNanoAOD() : AliAnalysisTaskSE(),
27     fAOD(0x0),
28     fTrackCuts(0x0),
29     fEventCuts(0x0),
30     fHelperPID(0x0),
31     fIsMC(0),
32     fDoDoubleCounting(0),
33     fFillOnlyEvents(0),
34     fCharge(0),
35     fVZEROside(0),
36     fOutput(0x0),
37     fnCentBins(20),
38     fnQvecBins(40),
39     fnNchBins(200)
40       {}
41   AliAnalysisTaskSpectraAllChNanoAOD(const char *name);
42   virtual ~AliAnalysisTaskSpectraAllChNanoAOD() {
43     Printf("calling detructor of AliAnalysisTaskSpectraAllChNanoAOD - To be implemented");
44   }
45   
46   void SetIsMC(Bool_t isMC = kFALSE)    {fIsMC = isMC; };
47   Bool_t GetIsMC()           const           { return fIsMC;};
48  
49   void SetDoDoubleCounting(Bool_t doDoubleCounting = kFALSE)    {fDoDoubleCounting = doDoubleCounting; };
50   Bool_t GetDoDoubleCounting()           const           { return fDoDoubleCounting;};
51  
52   void SetFillOnlyEvents(Bool_t fillOnlyEvents = kFALSE)    {fFillOnlyEvents = fillOnlyEvents; };
53   Bool_t GetFillOnlyEvents()           const           { return fFillOnlyEvents;};
54  
55   void SetCharge(Int_t charge = 0)    {fCharge = charge; };
56   Int_t GetCharge()           const           { return fCharge;};
57   
58   void SetVZEROside(Int_t side = 0)    {fVZEROside = side; };
59   Int_t GetVZEROside()           const           { return fVZEROside;};
60   
61   virtual void   UserCreateOutputObjects();
62   virtual void   UserExec(Option_t *option);
63   virtual void   Terminate(Option_t *);
64   
65   AliSpectraAODTrackCuts      * GetTrackCuts()         {  return fTrackCuts; }
66   AliSpectraAODEventCuts      * GetEventCuts()         {  return fEventCuts; }
67   AliHelperPID                   * GetHelperPID()          { return fHelperPID; }
68   TList                          * GetOutputList()         { return fOutput; }
69   
70   void SetTrackCuts(AliSpectraAODTrackCuts * tc)       { fTrackCuts = tc; }
71   void SetEventCuts(AliSpectraAODEventCuts * vc)       { fEventCuts = vc; }
72   void SetHelperPID(AliHelperPID* pid)                     { fHelperPID = pid; }
73   void SetnCentBins(Int_t val)                             { fnCentBins = val; }
74   void SetnQvecBins(Int_t val)                             { fnQvecBins = val; }
75   void SetnNchBins(Int_t val)                             { fnNchBins = val; }
76
77
78   Int_t GetNanoTrackID(AliVTrack * track) ;
79   
80  private:
81   
82   AliAODEvent                   * fAOD;                         //! AOD object
83   AliSpectraAODTrackCuts      * fTrackCuts;                   // Track Cuts
84   AliSpectraAODEventCuts      * fEventCuts;                   // Event Cuts
85   AliHelperPID                   * fHelperPID;                    // points to class for PID
86   Bool_t                          fIsMC;                         // true if processing MC
87   Bool_t                          fDoDoubleCounting;           // true is double counting for Nsigma accepetd
88   Bool_t                          fFillOnlyEvents;               // if true fill only NSparseHistEv
89   Int_t                            fCharge;                      // charge to be selected
90   Int_t                            fVZEROside;                  // 0: VZERO-A 1: VZERO-C
91   TList                          * fOutput;                     // output list
92   Int_t                            fnCentBins;                  // number of bins for the centrality axis
93   Int_t                            fnQvecBins;                 // number of bins for the q vector axis
94   Int_t                            fnNchBins;                 // number of bins for the Nch axis
95   AliAnalysisTaskSpectraAllChNanoAOD(const AliAnalysisTaskSpectraAllChNanoAOD&);
96   AliAnalysisTaskSpectraAllChNanoAOD& operator=(const AliAnalysisTaskSpectraAllChNanoAOD&);
97   
98   ClassDef(AliAnalysisTaskSpectraAllChNanoAOD, 6);
99 };
100
101 #endif