]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.h
Added three new histograms for resolution + modified thnsparse branch definition
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Hypernuclei / AliAnalysisTaskNucleiv2.h
1 #ifndef ALIANALYSISTASKNUCLEIV2_H
2 #define ALIANALYSISTASKNUCLEIV2_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-----------------------------------------------------------------
7 //                 AliAnalysisTaskNucleiv2 class
8 //-----------------------------------------------------------------
9
10 class TList;
11 class TH1F;
12 class TH2F;
13 class TH3F;
14 class TProfile;
15 class TNtuple;
16 class AliESDcascade;
17 class AliFlowTrackCuts;
18 class AliFlowTrack;
19 class AliFlowEvent;
20 class AliFlowCandidateTrack;
21 class AliFlowEventSimple;
22
23 //class AliCascadeVertexer; 
24 #include <AliPIDResponse.h>
25 #include "TString.h"
26 #include "AliESDtrackCuts.h"
27 #include "AliAnalysisTaskSE.h"
28
29 class AliAnalysisTaskNucleiv2 : public AliAnalysisTaskSE {
30  public:
31   //  AliAnalysisTaskNucleiv2(const char *datatype);
32   AliAnalysisTaskNucleiv2();
33   AliAnalysisTaskNucleiv2(const char *name);
34   virtual ~AliAnalysisTaskNucleiv2() {}
35   
36   virtual void  UserCreateOutputObjects();
37   virtual void  UserExec(Option_t *option);
38   virtual void  Terminate(Option_t *);
39   
40   void    SetCollidingSystems(Short_t collidingSystems = 0) {fCollidingSystems = collidingSystems;}
41   void    SetAnalysisType(const char* analysisType)         {fAnalysisType = analysisType;}
42   void    SetDataType(const char* dataType)                 {fDataType = dataType;}
43   void    SetFillTree(Bool_t ifFill)                        {fFillNtuple = ifFill;}
44   void    SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax); //select centrality
45   Float_t GetEventPlaneForCandidate(AliESDtrack* track0, const TVector2* q,AliEventplane *pl, const TVector2* qsub1, const TVector2* qsub2);
46   template <typename T> void           SetNullCuts(T* aod);
47   void    PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const;
48   Float_t GetPhi0Pi(Float_t phi);
49   void    Initialize();
50  private:
51   
52   TString  fAnalysisType;             //! "ESD" or "AOD" analysis type  
53   
54   Short_t  fCollidingSystems;         //! 0 = pp collisions or 1 = AA collisions
55   TString  fDataType;                 //! "REAL" or "SIM" data type     
56   Bool_t   fFillNtuple;               //! fill or not the tree  
57   
58   Double_t fCentralityMin;            // lower bound of cenrality bin
59   Double_t fCentralityMax;            // upper bound of centrality bin
60
61   AliFlowTrackCuts     *fCutsRP; // track cuts for reference particles
62   AliFlowTrackCuts     *fNullCuts; // dummy cuts for flow event tracks
63   AliFlowEvent         *fFlowEvent; //! flow events 
64   TList *fListHist;                //! List of  histograms
65  
66   TH1F  *fHistEventMultiplicity;           //! event multiplicity
67   TH2F  *fHistTrackMultiplicity;           //! track multiplicity
68   TH2F  *fHistTrackMultiplicityCentral;    //! track multiplicity
69   TH2F  *fHistTrackMultiplicitySemiCentral;//! track multiplicity
70   TH2F  *fHistTrackMultiplicityMB;         //! track multiplicity
71
72   TH2F  *fhBB;                             //! ScatterPlot Total
73   TH2F  *fhBBDeu;                          //! ScatterPlot Total
74   TH2F  *fhPtDeu;                          //! correctet vs non correcter d pt
75   TH2F  *fhTOF;                            //! ScatterPlot Total TOF
76   TH1F  *fhMassTOF;                        //! Mass Distribution TOF
77   
78   //From Flow Analysis
79   TH2D *EPVzAvsCentrality  ; 
80   TH2D *EPVzCvsCentrality  ; 
81   TH2D *EPTPCvsCentrality  ; 
82   TH2D *EPVzvsCentrality   ; 
83   TH2D *EPTPCpvsCentrality ; 
84   TH2D *EPTPCnvsCentrality ; 
85   
86   //------------------------------
87   
88   TProfile *fSubEventDPhiv205; 
89   TProfile *fSubEventDPhiv2new05;
90   
91   TProfile *fSubEventDPhiv22040; 
92   TProfile *fSubEventDPhiv2new2040;
93   
94   TProfile *fSubEventDPhiv24060; 
95   TProfile *fSubEventDPhiv2new4060;
96  
97   TH2F *hCos2DeltaPhiVzAvsCentrality;
98   TH2F *hCos2DeltaPhiVzCvsCentrality;
99   TH2F *hCos2DeltaPhiVzMvsCentrality;
100   TH2F *hCos2DeltaPhiTPCfvsCentrality;
101   TH2F *hCos2DeltaPhiTPCpvsCentrality;
102   TH2F *hCos2DeltaPhiTPCnvsCentrality;
103  
104   //---------------------------------------------------------------------------
105   TH2F *hEvPlaneTPCvsEvPVz05;                      
106   TH2F *hEvPlaneTPCvsEvPVz075; 
107   TH2F *hEvPlaneTPCvsEvPVz1530;
108   TH2F *hEvPlaneTPCvsEvPVz3050;                      
109   TH2F *hEvPlaneTPCvsEvPVz2040;                      
110   TH2F *hEvPlaneTPCvsEvPVz4060;                      
111   
112   
113   // From D meson analysis
114
115   TH2F *hCos2DeltaPhivsPt075;                      
116   TH2F *hCos2DeltaPhiVZEROvsPt075;                 
117   TH2F *hCos2DeltaPhivsPt1530;                      
118   TH2F *hCos2DeltaPhiVZEROvsPt1530;                 
119   TH2F *hCos2DeltaPhivsPt3050;                      
120   TH2F *hCos2DeltaPhiVZEROvsPt3050;                 
121  
122   TH2F *hCos2DeltaPhivsPt05;                      
123   TH2F *hCos2DeltaPhiVZEROvsPt05;                 
124   TH2F *hCos2DeltaPhivsPt2040;                      
125   TH2F *hCos2DeltaPhiVZEROvsPt2040;                 
126   TH2F *hCos2DeltaPhivsPt4060;                      
127   TH2F *hCos2DeltaPhiVZEROvsPt4060;                 
128   
129   
130   AliESDtrackCuts * fESDtrackCuts; 
131   AliESDtrackCuts * fESDtrackCutsEP; 
132   AliPIDResponse *fPIDResponse;   //! pointer to PID response
133
134   //_______________________________________________________________________
135
136   TTree *fNtuple1;                //! Some Information on the tracks
137     
138   Double_t tCentrality[2] ;       // Centrality + event type
139   Double_t tPulls[3];             // Pulls
140  
141   Double_t tMomentum[4];          //pxpypz of the tracks +  corrected pt for d
142   Double_t tDCA[2];               //dcaXY and dcaZ of the track
143   Int_t    tisTOF[2];             //isTOF, isOuterTPCwall   
144   Double_t tTOFtrack[3];          //poutTPC,timeTOF,trackLenghtTOF;
145   Int_t    tCharge;               //Charge of the Track (Pos or Neg)
146   Double_t tPhi;                  //Phi 
147   Double_t trpangleTPC;           //rpangleTPC
148   Double_t trpangleVZERO[3];      //rpangleVZERO: V0M, V0A, V0C
149   
150   // MC releted quantities
151
152   Double_t tPDGCode;              //PDG code ptc
153   Double_t tPDGCodeMum;           //PDG code mother ptc
154   Double_t tIsPrimaryTr;
155   Double_t tIsSecondaryTr[2];     //from material ; from weak deacy 
156   
157   //_______________________________________________________________________
158   
159   TTree *fNtuple2;                  //! MC tree
160
161   Double_t tCentralityMC;
162   Double_t tVertexCoordMC[3];
163   Double_t tMomentumMC[3];          //pxpypz of the tracks
164
165   Double_t tPDGCodeMC      ;
166   Double_t tPDGCodeMumMC   ;
167   Double_t tIsPrimary      ;
168   Double_t tIsSecondary[2] ;      //from material ; from weak deacy 
169   Double_t tEtaMC          ;
170   Double_t tPtMC           ;
171   Double_t tYMC            ;
172
173   //_______________________________________________________________________
174  
175   AliAnalysisTaskNucleiv2(const AliAnalysisTaskNucleiv2&);            // not implemented
176   AliAnalysisTaskNucleiv2& operator=(const AliAnalysisTaskNucleiv2&); // not implemented
177   
178   ClassDef(AliAnalysisTaskNucleiv2, 0);
179 };
180
181 #endif