]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraAllChAOD.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliAnalysisTaskSpectraAllChAOD.h
1 #ifndef ALIANALYSISTASKSPECTRAALLCHAOD_H
2 #define ALIANALYSISTASKSPECTRAALLCHAOD_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-------------------------------------------------------------------------
7 //                      AliAnalysisTaskSpectraAllChAOD
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 AliAnalysisTaskSpectraAllChAOD : public AliAnalysisTaskSE
23 {
24  public:
25   // constructors
26  AliAnalysisTaskSpectraAllChAOD() : 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     fIsQvecCalibMode(0),
41     fQvecUpperLim(100),
42     fIsAOD160(1),
43     fnDCABins(60),
44     fDCAmin(-3),
45     fDCAmax(3),
46     fDCAzCut(0),
47     fQst(1),
48     fQtrk(0),
49     fQgenType(0),
50     fDoCentrSystCentrality(0)
51       {}
52   AliAnalysisTaskSpectraAllChAOD(const char *name);
53   virtual ~AliAnalysisTaskSpectraAllChAOD() {
54     Printf("calling detructor of AliAnalysisTaskSpectraAllChAOD - To be implemented");
55   }
56   
57   void SetIsMC(Bool_t isMC = kFALSE)    {fIsMC = isMC; };
58   Bool_t GetIsMC()           const           { return fIsMC;};
59  
60   void SetDoDoubleCounting(Bool_t doDoubleCounting = kFALSE)    {fDoDoubleCounting = doDoubleCounting; };
61   Bool_t GetDoDoubleCounting()           const           { return fDoDoubleCounting;};
62  
63   void SetFillOnlyEvents(Bool_t fillOnlyEvents = kFALSE)    {fFillOnlyEvents = fillOnlyEvents; };
64   Bool_t GetFillOnlyEvents()           const           { return fFillOnlyEvents;};
65  
66   void SetCharge(Int_t charge = 0)    {fCharge = charge; };
67   Int_t GetCharge()           const           { return fCharge;};
68   
69   void SetVZEROside(Int_t side = 0)    {fVZEROside = side; };
70   Int_t GetVZEROside()           const           { return fVZEROside;};
71   
72   virtual void   UserCreateOutputObjects();
73   virtual void   UserExec(Option_t *option);
74   virtual void   Terminate(Option_t *);
75   
76   AliSpectraAODTrackCuts      * GetTrackCuts()         {  return fTrackCuts; }
77   AliSpectraAODEventCuts      * GetEventCuts()         {  return fEventCuts; }
78   AliHelperPID                   * GetHelperPID()          { return fHelperPID; }
79   TList                          * GetOutputList()         { return fOutput; }
80   
81   void SetTrackCuts(AliSpectraAODTrackCuts * tc)       { fTrackCuts = tc; }
82   void SetEventCuts(AliSpectraAODEventCuts * vc)       { fEventCuts = vc; }
83   void SetHelperPID(AliHelperPID* pid)                     { fHelperPID = pid; }
84   void SetnCentBins(Int_t val)                             { fnCentBins = val; }
85   void SetnQvecBins(Int_t val)                             { fnQvecBins = val; }
86   void SetnNchBins(Int_t val)                             { fnNchBins = val; }
87   void SetQvecCalibMode(Bool_t mode)                  { fIsQvecCalibMode = mode; }
88   void SetQvecUpperLimit(Double_t val)                { fQvecUpperLim = val; }
89   
90   void SetIsAOD160(Bool_t aod)                        { fIsAOD160 = aod; }
91   void SetnDCABin(Int_t val)                          { fnDCABins = val; } 
92   void SetDCAmin(Double_t val)                        { fDCAmin = val; }
93   void SetDCAmax(Double_t val)                        { fDCAmax = val; }
94   Bool_t GetDCA(const AliAODTrack* trk, Double_t * p);
95   void SetDCAzCut(Double_t val)                        { fDCAzCut = val; }
96   
97   void SetQStack(Int_t val) { fQst = val ; } // type==0 q-reco - type==1 qgen
98   void SetQTrack(Int_t val) { fQtrk = val ; } // type==0 q-reco - type==1 qgen
99   void SetQgenType(Int_t val) { fQgenType = val ; } // type==0 qgen from tracks - type==1 qgen from vzero
100   
101   void SetDoCentrSystCentrality(Bool_t val) { fDoCentrSystCentrality = val; } //enable systematic for centrality
102
103  private:
104   
105   AliAODEvent                   * fAOD;                         //! AOD object
106   AliSpectraAODTrackCuts      * fTrackCuts;                   // Track Cuts
107   AliSpectraAODEventCuts      * fEventCuts;                   // Event Cuts
108   AliHelperPID                   * fHelperPID;                    // points to class for PID
109   Bool_t                          fIsMC;                         // true if processing MC
110   Bool_t                          fDoDoubleCounting;           // true is double counting for Nsigma accepetd
111   Bool_t                          fFillOnlyEvents;               // if true fill only NSparseHistEv
112   Int_t                            fCharge;                      // charge to be selected
113   Int_t                            fVZEROside;                  // 0: VZERO-A 1: VZERO-C
114   TList                          * fOutput;                     // output list
115   Int_t                            fnCentBins;                  // number of bins for the centrality axis
116   Int_t                            fnQvecBins;                 // number of bins for the q vector axis
117   Int_t                            fnNchBins;                 // number of bins for the Nch axis
118   Bool_t                           fIsQvecCalibMode;          //calib mode for Qvector percentile
119   Double_t                         fQvecUpperLim;             //Upper limit for Qvector
120   Bool_t                           fIsAOD160;              // enable DCA for AOD160
121   Int_t                            fnDCABins;              // number of bins for DCA axis
122   Double_t                         fDCAmin;                // min DCA value
123   Double_t                         fDCAmax;                // max DCA value
124   Double_t                         fDCAzCut;               //cut on DCA z
125   
126   Int_t fQst; // type==0 q-reco - type==1 qgen
127   Int_t fQtrk; // type==0 q-reco - type==1 qgen
128   Int_t fQgenType; // type==0 qgen from tracks - type==1 qgen from vzero
129   
130   Bool_t fDoCentrSystCentrality; //systematic check on centrality estimation
131   
132   AliAnalysisTaskSpectraAllChAOD(const AliAnalysisTaskSpectraAllChAOD&);
133   AliAnalysisTaskSpectraAllChAOD& operator=(const AliAnalysisTaskSpectraAllChAOD&);
134   
135   ClassDef(AliAnalysisTaskSpectraAllChAOD, 12);
136 };
137
138 #endif