1 #ifndef ALIANALYSISTASKNUCLEIV2_H
2 #define ALIANALYSISTASKNUCLEIV2_H
4 /* See cxx source for full Copyright notice */
6 //-----------------------------------------------------------------
7 // AliAnalysisTaskNucleiv2 class
8 //-----------------------------------------------------------------
17 class AliFlowTrackCuts;
20 class AliFlowCandidateTrack;
21 class AliFlowEventSimple;
23 //class AliCascadeVertexer;
24 #include <AliPIDResponse.h>
26 #include "AliESDtrackCuts.h"
27 #include "AliAnalysisTaskSE.h"
29 class AliAnalysisTaskNucleiv2 : public AliAnalysisTaskSE {
31 // AliAnalysisTaskNucleiv2(const char *datatype);
32 AliAnalysisTaskNucleiv2();
33 AliAnalysisTaskNucleiv2(const char *name);
34 virtual ~AliAnalysisTaskNucleiv2() {}
36 virtual void UserCreateOutputObjects();
37 virtual void UserExec(Option_t *option);
38 virtual void Terminate(Option_t *);
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);
52 TString fAnalysisType; //! "ESD" or "AOD" analysis type
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
58 Double_t fCentralityMin; // lower bound of cenrality bin
59 Double_t fCentralityMax; // upper bound of centrality bin
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
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
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
79 TH2D *EPVzAvsCentrality ;
80 TH2D *EPVzCvsCentrality ;
81 TH2D *EPTPCvsCentrality ;
82 TH2D *EPVzvsCentrality ;
83 TH2D *EPTPCpvsCentrality ;
84 TH2D *EPTPCnvsCentrality ;
86 //------------------------------
88 TProfile *fSubEventDPhiv205;
89 TProfile *fSubEventDPhiv2new05;
91 TProfile *fSubEventDPhiv22040;
92 TProfile *fSubEventDPhiv2new2040;
94 TProfile *fSubEventDPhiv24060;
95 TProfile *fSubEventDPhiv2new4060;
97 TH2F *hCos2DeltaPhiVzAvsCentrality;
98 TH2F *hCos2DeltaPhiVzCvsCentrality;
99 TH2F *hCos2DeltaPhiVzMvsCentrality;
100 TH2F *hCos2DeltaPhiTPCfvsCentrality;
101 TH2F *hCos2DeltaPhiTPCpvsCentrality;
102 TH2F *hCos2DeltaPhiTPCnvsCentrality;
104 //---------------------------------------------------------------------------
105 TH2F *hEvPlaneTPCvsEvPVz05;
106 TH2F *hEvPlaneTPCvsEvPVz075;
107 TH2F *hEvPlaneTPCvsEvPVz1530;
108 TH2F *hEvPlaneTPCvsEvPVz3050;
109 TH2F *hEvPlaneTPCvsEvPVz2040;
110 TH2F *hEvPlaneTPCvsEvPVz4060;
113 // From D meson analysis
115 TH2F *hCos2DeltaPhivsPt075;
116 TH2F *hCos2DeltaPhiVZEROvsPt075;
117 TH2F *hCos2DeltaPhivsPt1530;
118 TH2F *hCos2DeltaPhiVZEROvsPt1530;
119 TH2F *hCos2DeltaPhivsPt3050;
120 TH2F *hCos2DeltaPhiVZEROvsPt3050;
122 TH2F *hCos2DeltaPhivsPt05;
123 TH2F *hCos2DeltaPhiVZEROvsPt05;
124 TH2F *hCos2DeltaPhivsPt2040;
125 TH2F *hCos2DeltaPhiVZEROvsPt2040;
126 TH2F *hCos2DeltaPhivsPt4060;
127 TH2F *hCos2DeltaPhiVZEROvsPt4060;
130 AliESDtrackCuts * fESDtrackCuts;
131 AliESDtrackCuts * fESDtrackCutsEP;
132 AliPIDResponse *fPIDResponse; //! pointer to PID response
134 //_______________________________________________________________________
136 TTree *fNtuple1; //! Some Information on the tracks
138 Double_t tCentrality[2] ; // Centrality + event type
139 Double_t tPulls[3]; // Pulls
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)
147 Double_t trpangleTPC; //rpangleTPC
148 Double_t trpangleVZERO[3]; //rpangleVZERO: V0M, V0A, V0C
150 // MC releted quantities
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
157 //_______________________________________________________________________
159 TTree *fNtuple2; //! MC tree
161 Double_t tCentralityMC;
162 Double_t tVertexCoordMC[3];
163 Double_t tMomentumMC[3]; //pxpypz of the tracks
165 Double_t tPDGCodeMC ;
166 Double_t tPDGCodeMumMC ;
167 Double_t tIsPrimary ;
168 Double_t tIsSecondary[2] ; //from material ; from weak deacy
173 //_______________________________________________________________________
175 AliAnalysisTaskNucleiv2(const AliAnalysisTaskNucleiv2&); // not implemented
176 AliAnalysisTaskNucleiv2& operator=(const AliAnalysisTaskNucleiv2&); // not implemented
178 ClassDef(AliAnalysisTaskNucleiv2, 0);