1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
4 /* $Id: AliAnalysisTaskPi0V2.h 45956 2010-12-10 12:55:37Z agheata $ */
5 /* AliAnalysisTaskPi0V2.h
7 * Template task producing a P_t spectrum and pseudorapidity distribution.
8 * Includes explanations of physics and primary track selections
10 * Based on tutorial example from offline pages
11 * Edited by Arvinder Palaha
13 #ifndef ALIANALYSISTASKPI0V2_H
14 #define ALIANALYSISTASKPI0V2_H
20 class AliESDCaloCluster;
22 class AliESDtrackCuts;
28 class AliCalorimeterUtils;
29 class AliCaloTrackReader;
32 #ifndef ALIANALYSISTASKSE_H
33 #include "AliAnalysisTaskSE.h"
36 class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
38 AliAnalysisTaskPi0V2();
39 AliAnalysisTaskPi0V2(const char *name);
40 virtual ~AliAnalysisTaskPi0V2();
42 virtual void UserCreateOutputObjects();
43 virtual void UserExec(Option_t *option);
44 virtual void Terminate(Option_t *);
45 Double_t GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax) const;
46 Double_t GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const;
47 Bool_t IsWithinFiducialVolume(Short_t id) const;
48 Bool_t IsGoodCluster(const AliVCluster *c) const;
49 Bool_t IsGoodClusterV1(const AliVCluster *c) const;
50 Bool_t IsGoodPion(const TLorentzVector& p1, const TLorentzVector& p2) const;
51 void FillPion(const TLorentzVector& p1, const TLorentzVector& p2, Double_t EPV0r, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC);
52 void FillCluster(const TLorentzVector& p1, Double_t EPV0r, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC, AliVCluster *c);
53 void GetMom(TLorentzVector& p, const AliVCluster *c, Double_t *vertex);
54 void SetEventMethod(Double_t e ) { fEvtSelect =e ;}
55 void SetVtxCut(Double_t v ) { fVtxCut =v ;}
56 void SetClusNcell(Double_t c ) { fNcellCut =c ;}
57 void SetClusE(Double_t e ) { fECut =e ;}
58 void SetClusEta(Double_t e ) { fEtaCut =e ;}
59 void SetClusM02(Double_t m ) { fM02Cut =m ;}
60 void SetDrCut(Double_t m ) { fDrCut =m ;}
61 void SetPi0Asy(Double_t a ) { fPi0AsyCut =a ;}
62 void SetTracksName(const char *n) { fTracksName =n ;}
63 void SetTrigClass(const char *n) { fTrigClass =n ;}
64 void SetV1ClusName(const char *n) { fV1ClusName =n ;}
65 void SetV2ClusName(const char *n) { fV2ClusName =n ;}
66 Int_t ConvertToInternalRunNumber(Int_t n);
68 void SetIsV1Clus(Bool_t e) { isV1Clus =e ;}
73 TList *fOutput; //! Output list
74 AliESDEvent *fESD; //!ESD object
75 TString fTracksName; // name of track collection
76 TString fV1ClusName; // name of V1 Clus collection
77 TString fV2ClusName; // name of V1 Clus collection
78 TString fTrigClass; // trigger class name for event selection
79 TClonesArray *fTracks; //! pico tracks specific for Skim ESD
80 TClonesArray *fV1Clus; //! Cluster Array for V1
81 TClonesArray *fV2Clus; //! Cluster Array for V2
82 Int_t fRunNumber; //! Run numbers
83 Double_t fEvtSelect; // 1 = MB+Semi+Central, 2 = MB+Semi, 3 = MB;
84 Double_t fVtxCut; // vertex cut
85 Double_t fNcellCut; // N cells Cut
86 Double_t fECut; // Cluster E cut
87 Double_t fEtaCut; // Cluster Eta Cut
88 Double_t fM02Cut; // Cluster long axis cut
89 Double_t fDrCut; // Cluster long axis cut
90 Bool_t fPi0AsyCut; // pion Asymetry cut 0=off 1=on
91 Bool_t isV1Clus; // pion Asymetry cut 0=off 1=on
92 Double_t fCentrality; //! Centrality
93 Double_t fEPTPC; //! Evt plane TPC
94 Double_t fEPTPCreso; //! resolution of TPC method
95 Double_t fEPV0; //! EP V0
96 Double_t fEPV0A; //! EP V0A
97 Double_t fEPV0C; //! EP V0C
98 Double_t fEPV0Ar; //! EP V0A reduced
99 Double_t fEPV0Cr; //! EP V0C reduced
100 Double_t fEPV0r; //! EP V0 reduced
101 Double_t fEPV0AR4; //! EP V0A ring4 only
102 Double_t fEPV0AR5; //! EP V0A ring5 only
103 Double_t fEPV0AR6; //! EP V0A ring6 only
104 Double_t fEPV0AR7; //! EP V0A ring7 only
105 Double_t fEPV0CR0; //! EP V0C ring0 only
106 Double_t fEPV0CR1; //! EP V0C ring1 only
107 Double_t fEPV0CR2; //! EP V0C ring2 only
108 Double_t fEPV0CR3; //! EP V0C ring3 only
111 TH1F *hAllcentV0; //!
112 TH1F *hAllcentV0r; //!
113 TH1F *hAllcentV0A; //!
114 TH1F *hAllcentV0C; //!
115 TH1F *hAllcentTPC; //!
117 TH2F *h2DcosV0r; //! QA for cos(Phi) V0r vs Run NUmber
118 TH2F *h2DsinV0r; //! QA for cos(Phi) V0r vs Run NUmber
126 TH2F *hEPTPC; //! 2-D histo EPTPC vs cent
127 TH2F *hresoTPC; //! 2-D histo TPC resolution vs cent
128 TH2F *hEPV0; //! 2-D histo EPV0 vs cent
129 TH2F *hEPV0A; //! 2-D histo EPV0A vs cent
130 TH2F *hEPV0C; //! 2-D histo EPV0C vs cent
131 TH2F *hEPV0Ar; //! 2-D histo EPV0Ar vs cent
132 TH2F *hEPV0Cr; //! 2-D histo EPV0Cr vs cent
133 TH2F *hEPV0r; //! 2-D histo EPV0r vs cent
134 TH2F *hEPV0AR4; //! 2-D histo EPV0AR4 vs cent
135 TH2F *hEPV0AR7; //! 2-D histo EPV0AR7 vs cent
136 TH2F *hEPV0CR0; //! 2-D histo EPV0AR0 vs cent
137 TH2F *hEPV0CR3; //! 2-D histo EPV0AR3 vs cent
139 TH2F *hdifV0Ar_V0Cr; //! 2-D histo diff V0Ar, V0Cr vs cent
140 TH2F *hdifV0A_V0CR0; //! 2-D histo diff V0A, V0CR0 vs cent
141 TH2F *hdifV0A_V0CR3; //! 2-D histo diff V0A, V0CR3 vs cent
142 TH2F *hdifV0ACR0_V0CR3; //! 2-D histo diff V0CR0, V0CR3 vs cent
143 TH2F *hdifV0C_V0AR4; //! 2-D histo diff V0C, V0AR4 vs cent
144 TH2F *hdifV0C_V0AR7; //! 2-D histo diff V0C, V0AR7 vs cent
145 TH2F *hdifV0AR4_V0AR7; //! 2-D histo diff V0AR7, V0AR4 vs cent
147 TH2F *hdifV0A_V0C; //! 2-D histo diff V0A - V0C
148 TH2F *hdifV0A_TPC; //! 2-D histo diff V0A - TPC
149 TH2F *hdifV0C_TPC; //! 2-D histo diff V0C - TPC
150 TH2F *hdifV0C_V0A; //! 2-D histo diff V0C - V0A
152 TH2F *hM02vsPtA; //! 2-D histo clus M02 vs Pt before cut
153 TH2F *hM02vsPtB; //! 2-D histo clus M02 vs Pt after cut
154 TH2F *hClusDxDZA; //! 2-D histo clus Dx vs Dz before
155 TH2F *hClusDxDZB; //! 2-D histo clus Dx vs Dz after
157 TH3F *hdifEMC_EPV0; //! 3-D histo dif phi in EMC with EPV0
158 TH3F *hdifEMC_EPV0A; //! 3-D histo dif phi in EMC with EPV0A
159 TH3F *hdifEMC_EPV0C; //! 3-D histo dif phi in EMC with EPV0C
161 TH3F *hdifful_EPV0; //! 3-D histo dif phi in full with EPV0
162 TH3F *hdifful_EPV0A; //! 3-D histo dif phi in full with EPV0A
163 TH3F *hdifful_EPV0C; //! 3-D histo dif phi in full with EPV0C
165 TH3F *hdifout_EPV0; //! 3-D histo dif phi out EMC with EPV0
166 TH3F *hdifout_EPV0A; //! 3-D histo dif phi out EMC with EPV0A
167 TH3F *hdifout_EPV0C; //! 3-D histo dif phi out EMC with EPV0C
169 TH3F *hdifEMC_EPTPC; //! 3-D histo dif phi in EMC with EPTPC
170 TH3F *hdifful_EPTPC; //! 3-D histo dif phi in full with EPTPC
171 TH3F *hdifout_EPTPC; //! 3-D histo dif phi out EMC with EPTPC
173 THnSparse *fClusterPbV0;
174 THnSparse *fClusterPbV0A;
175 THnSparse *fClusterPbV0C;
176 THnSparse *fClusterPbTPC;
178 THnSparse *fHEPV0r; //! Flow 4-D Histo
179 THnSparse *fHEPV0A; //! Flow 4-D Histo
180 THnSparse *fHEPV0C; //! Flow 4-D Histo
181 THnSparse *fHEPTPC; //! Flow 4-D Histo
185 AliAnalysisTaskPi0V2(const AliAnalysisTaskPi0V2&); // not implemented
186 AliAnalysisTaskPi0V2& operator=(const AliAnalysisTaskPi0V2&); // not implemented
188 ClassDef(AliAnalysisTaskPi0V2, 5); // example of analysis