]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskV2AllChAOD.h
Config for the train (one more).
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliAnalysisTaskV2AllChAOD.h
1 #ifndef ALIANALYSISTASKV2ALLCHAOD_H
2 #define ALIANALYSISTASKV2ALLCHAOD_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-------------------------------------------------------------------------
7 //                      AliAnalysisTaskV2AllChAOD
8 //
9 //
10 //
11 //
12 // Author: Leonardo Milano, CERN
13 //-------------------------------------------------------------------------
14
15 class AliAODEvent;
16 class AliSpectraAODTrackCuts;
17 class AliSpectraAODEventCuts;
18
19 #include "AliAnalysisTaskSE.h"
20 #include <TProfile.h>
21
22 class AliAnalysisTaskV2AllChAOD : public AliAnalysisTaskSE
23 {
24  public:
25   // constructors
26  AliAnalysisTaskV2AllChAOD() : AliAnalysisTaskSE(),
27     fAOD(0x0),
28     fTrackCuts(0x0),
29     fEventCuts(0x0),
30     fIsMC(0),
31     fCharge(0),
32     fVZEROside(0),
33     fOutput(0x0),
34     fOutput_lq(0x0),
35     fOutput_sq(0x0),
36     fnCentBins(20),
37     fnQvecBins(40),
38     fIsQvecCalibMode(0),
39     fQvecUpperLim(100),
40     fCutLargeQperc(9.),
41     fCutSmallQperc(10.),
42     fEtaGapMin(-0.5),
43     fEtaGapMax(0.5),
44     fTrkBit(272),
45     fEtaCut(0.8),
46     fMinPt(0),
47     fMaxPt(20.0),
48     fMinTPCNcls(70),
49     fResSP(0),
50     fEta_vs_Phi_bef(0),
51     fEta_vs_Phi(0),
52     fResSP_lq(0),
53     fResSP_sq(0)
54       {}
55   AliAnalysisTaskV2AllChAOD(const char *name);
56   virtual ~AliAnalysisTaskV2AllChAOD() {
57     Printf("calling detructor of AliAnalysisTaskV2AllChAOD - To be implemented");
58   }
59   
60   void SetIsMC(Bool_t isMC = kFALSE)    {fIsMC = isMC; };
61   Bool_t GetIsMC()           const           { return fIsMC;};
62  
63   void SetCharge(Int_t charge = 0)    {fCharge = charge; };
64   Int_t GetCharge()           const           { return fCharge;};
65   
66   void SetVZEROside(Int_t side = 0)    {fVZEROside = side; };
67   Int_t GetVZEROside()           const           { return fVZEROside;};
68   
69   virtual void   UserCreateOutputObjects();
70   virtual void   UserExec(Option_t *option);
71   virtual void   Terminate(Option_t *);
72   
73   AliSpectraAODTrackCuts      * GetTrackCuts()         {  return fTrackCuts; }
74   AliSpectraAODEventCuts      * GetEventCuts()         {  return fEventCuts; }
75   TList                          * GetOutputList()         { return fOutput; }
76   
77   void SetTrackCuts(AliSpectraAODTrackCuts * tc)       { fTrackCuts = tc; }
78   void SetEventCuts(AliSpectraAODEventCuts * vc)       { fEventCuts = vc; }
79   void SetnCentBins(Int_t val)                             { fnCentBins = val; }
80   void SetnQvecBins(Int_t val)                             { fnQvecBins = val; }
81   void SetQvecCalibMode(Bool_t mode)                  { fIsQvecCalibMode = mode; }
82   void SetQvecUpperLimit(Double_t val)                { fQvecUpperLim = val; }
83   
84   void SetTrackBits(UInt_t TrackBits) {fTrkBit=TrackBits;}
85   void SetEtaCut(Double_t val) {fEtaCut=val;}
86   void SetMinPt(Double_t val) {fMinPt=val;}
87   void SetMaxPt(Double_t val) {fMaxPt=val;}
88   void SetMinTPCNcls(Double_t val) {fMinTPCNcls=val;}
89   
90   Bool_t GetDCA(const AliAODTrack* trk, Double_t * p);
91
92   void     SetEtaGap(Float_t etamin,Float_t etamax)   { fEtaGapMin = etamin; fEtaGapMax = etamax; }
93   
94  private:
95   
96   AliAODEvent                   * fAOD;                         //! AOD object
97   AliSpectraAODTrackCuts      * fTrackCuts;                   // Track Cuts
98   AliSpectraAODEventCuts      * fEventCuts;                   // Event Cuts
99   Bool_t                          fIsMC;                         // true if processing MC
100   Int_t                            fCharge;                      // charge to be selected
101   Int_t                            fVZEROside;                  // 0: VZERO-A 1: VZERO-C
102   TList                          * fOutput;                     // output list
103   TList                          * fOutput_lq;                  // output list large Q
104   TList                          * fOutput_sq;                  // output list small Q
105   Int_t                            fnCentBins;                  // number of bins for the centrality axis
106   Int_t                            fnQvecBins;                 // number of bins for the q vector axis
107   Bool_t                           fIsQvecCalibMode;          //calib mode for Qvector percentile
108   Double_t                         fQvecUpperLim;             //Upper limit for Qvector
109   
110   Int_t                            fCutLargeQperc; // cut on 10% large Q-vec events
111   Int_t                            fCutSmallQperc; // cut on 10% small Q-vec events
112   
113   Double_t fEtaGapMin;
114   Double_t fEtaGapMax;
115   
116   UInt_t    fTrkBit;
117   Double_t  fEtaCut;
118   Double_t  fMinPt;
119   Double_t  fMaxPt;
120   Double_t  fMinTPCNcls;
121   
122   //output object
123   TProfile*     fResSP;             //! resolution
124   TH2F*         fEta_vs_Phi_bef;        //! eta vs phi distribution before sub events cut 
125   TH2F*         fEta_vs_Phi;            //! eta vs phi distribution after sub events cut 
126   TProfile*     fv2SPGap1A[9];         //! v2{2} eta gap 1 for all events
127   TProfile*     fv2SPGap1B[9];         //! v2{2} eta gap 1 for all events
128
129   TProfile*     fSinGap1Aq[9];      //! <sin> vs pT gap 1
130   TProfile*     fCosGap1Aq[9];      //! <cos> vs pT gap 1
131   TProfile*     fSinGap1Bq[9];      //! <sin> vs pT gap 1
132   TProfile*     fCosGap1Bq[9];      //! <cos> vs pT gap 1
133   
134   TProfile*     fSinGap1A[9];      //! <sin> vs pT gap 1
135   TProfile*     fCosGap1A[9];      //! <cos> vs pT gap 1
136   TProfile*     fSinGap1B[9];      //! <sin> vs pT gap 1
137   TProfile*     fCosGap1B[9];      //! <cos> vs pT gap 1
138
139   //large q
140   TProfile*     fResSP_lq;             //! resolution
141   TProfile*     fv2SPGap1A_lq[9];         //! v2{2} eta gap 1 for all events
142   TProfile*     fv2SPGap1B_lq[9];         //! v2{2} eta gap 1 for all events
143   TProfile*     fSinGap1Aq_lq[9];      //! <sin> vs pT gap 1
144   TProfile*     fCosGap1Aq_lq[9];      //! <cos> vs pT gap 1
145   TProfile*     fSinGap1Bq_lq[9];      //! <sin> vs pT gap 1
146   TProfile*     fCosGap1Bq_lq[9];      //! <cos> vs pT gap 1
147   TProfile*     fSinGap1A_lq[9];      //! <sin> vs pT gap 1
148   TProfile*     fCosGap1A_lq[9];      //! <cos> vs pT gap 1
149   TProfile*     fSinGap1B_lq[9];      //! <sin> vs pT gap 1
150   TProfile*     fCosGap1B_lq[9];      //! <cos> vs pT gap 1
151   
152   //small q
153   TProfile*     fResSP_sq;             //! resolution
154   TProfile*     fv2SPGap1A_sq[9];         //! v2{2} eta gap 1 for all events
155   TProfile*     fv2SPGap1B_sq[9];         //! v2{2} eta gap 1 for all events
156   TProfile*     fSinGap1Aq_sq[9];      //! <sin> vs pT gap 1
157   TProfile*     fCosGap1Aq_sq[9];      //! <cos> vs pT gap 1
158   TProfile*     fSinGap1Bq_sq[9];      //! <sin> vs pT gap 1
159   TProfile*     fCosGap1Bq_sq[9];      //! <cos> vs pT gap 1
160   TProfile*     fSinGap1A_sq[9];      //! <sin> vs pT gap 1
161   TProfile*     fCosGap1A_sq[9];      //! <cos> vs pT gap 1
162   TProfile*     fSinGap1B_sq[9];      //! <sin> vs pT gap 1
163   TProfile*     fCosGap1B_sq[9];      //! <cos> vs pT gap 1
164   
165   AliAnalysisTaskV2AllChAOD(const AliAnalysisTaskV2AllChAOD&);
166   AliAnalysisTaskV2AllChAOD& operator=(const AliAnalysisTaskV2AllChAOD&);
167   
168   ClassDef(AliAnalysisTaskV2AllChAOD, 3);
169 };
170
171 #endif