-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
/* $Id: AliAnalysisTaskPi0V2.h 45956 2010-12-10 12:55:37Z agheata $ */
-/* AliAnalysisTaskPi0V2.h
- *
- * Template task producing a P_t spectrum and pseudorapidity distribution.
- * Includes explanations of physics and primary track selections
- *
- * Based on tutorial example from offline pages
- * Edited by Arvinder Palaha
- */
+
#ifndef ALIANALYSISTASKPI0V2_H
#define ALIANALYSISTASKPI0V2_H
class THnSparse;
class TClonesArray;
class TString;
-class AliCaloPID;
-class AliCalorimeterUtils;
-class AliCaloTrackReader;
-
+class TProfile;
+class AliOADBContainer;
+class AliEPFlattener;
#ifndef ALIANALYSISTASKSE_H
#include "AliAnalysisTaskSE.h"
Bool_t IsGoodCluster(const AliVCluster *c) const;
Bool_t IsGoodClusterV1(const AliVCluster *c) const;
Bool_t IsGoodPion(const TLorentzVector& p1, const TLorentzVector& p2) const;
- void FillPion(const TLorentzVector& p1, const TLorentzVector& p2, Double_t EPV0r, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC);
- void FillCluster(const TLorentzVector& p1, Double_t EPV0r, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC, AliVCluster *c);
+ void FillPion(const TLorentzVector& p1, const TLorentzVector& p2, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC);
+ void FillCluster(const TLorentzVector& p1, Double_t EPV0r, Double_t EPV0C, Double_t EPTPC, AliVCluster *c);
void GetMom(TLorentzVector& p, const AliVCluster *c, Double_t *vertex);
- void SetEventMethod(Double_t e ) { fEvtSelect =e ;}
void SetVtxCut(Double_t v ) { fVtxCut =v ;}
void SetClusNcell(Double_t c ) { fNcellCut =c ;}
void SetClusE(Double_t e ) { fECut =e ;}
void SetV2ClusName(const char *n) { fV2ClusName =n ;}
Int_t ConvertToInternalRunNumber(Int_t n);
void FillEPQA();
- void SetIsV1Clus(Bool_t e) { isV1Clus =e ;}
+ void SetIsV1Clus(Bool_t e) { isV1Clus =e ;}
+ void SetIsPHOSCali(Bool_t e) { isPhosCali =e ;}
+ void SetIsCentFlat(Bool_t e) { isCentFlat =e ;}
+ void SetIsFullHist(Bool_t e) { isFullHist =e ;}
+ void SetFlatteningData(); // phos flattening
+ Double_t ApplyFlattening(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening
+ Double_t ApplyFlatteningV0A(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening
+ Double_t ApplyFlatteningV0C(Double_t phi, Double_t c) ; //Apply centrality-dependent flattening
private:
TList *fOutput; //! Output list
AliESDEvent *fESD; //!ESD object
+ AliAODEvent *fAOD; //!AOD object
TString fTracksName; // name of track collection
TString fV1ClusName; // name of V1 Clus collection
TString fV2ClusName; // name of V1 Clus collection
TClonesArray *fV1Clus; //! Cluster Array for V1
TClonesArray *fV2Clus; //! Cluster Array for V2
Int_t fRunNumber; //! Run numbers
- Double_t fEvtSelect; // 1 = MB+Semi+Central, 2 = MB+Semi, 3 = MB;
+ Int_t fInterRunNumber; //! Run numbers
Double_t fVtxCut; // vertex cut
Double_t fNcellCut; // N cells Cut
Double_t fECut; // Cluster E cut
Double_t fEtaCut; // Cluster Eta Cut
Double_t fM02Cut; // Cluster long axis cut
- Double_t fDrCut; // Cluster long axis cut
+ Double_t fDrCut; // Cluster long axis cut
Bool_t fPi0AsyCut; // pion Asymetry cut 0=off 1=on
Bool_t isV1Clus; // pion Asymetry cut 0=off 1=on
+ Bool_t isPhosCali; // use Phos flattening
+ Bool_t isCentFlat; // use the centrality flatten
+ Bool_t isFullHist; // remove some histo to save memory
Double_t fCentrality; //! Centrality
Double_t fEPTPC; //! Evt plane TPC
Double_t fEPTPCreso; //! resolution of TPC method
Double_t fEPV0CR3; //! EP V0C ring3 only
TH1F *hEvtCount; //!
- TH1F *hAllcentV0; //!
- TH1F *hAllcentV0r; //!
- TH1F *hAllcentV0A; //!
- TH1F *hAllcentV0C; //!
- TH1F *hAllcentTPC; //!
+ TH1F *hCent; //!
- TH2F *h2DcosV0r; //! QA for cos(Phi) V0r vs Run NUmber
- TH2F *h2DsinV0r; //! QA for cos(Phi) V0r vs Run NUmber
- TH2F *h2DcosV0A; //!
- TH2F *h2DsinV0A; //!
- TH2F *h2DcosV0C; //!
- TH2F *h2DsinV0C; //!
- TH2F *h2DcosTPC; //!
- TH2F *h2DsinTPC; //!
+ TProfile *h2DcosV0A; //!
+ TProfile *h2DsinV0A; //!
+ TProfile *h2DcosV0C; //!
+ TProfile *h2DsinV0C; //!
+ TProfile *h2DcosTPC; //!
+ TProfile *h2DsinTPC; //!
TH2F *hEPTPC; //! 2-D histo EPTPC vs cent
TH2F *hresoTPC; //! 2-D histo TPC resolution vs cent
TH2F *hEPV0CR0; //! 2-D histo EPV0AR0 vs cent
TH2F *hEPV0CR3; //! 2-D histo EPV0AR3 vs cent
+ TH2F *hEPTPCCor; //! 2-D histo EPTPC vs cent after PHOS Correct
+ TH2F *hEPV0ACor; //! 2-D histo EPV0A vs cent after PHOS Correct
+ TH2F *hEPV0CCor; //! 2-D histo EPV0C vs cent after PHOS Correct
+
TH2F *hdifV0Ar_V0Cr; //! 2-D histo diff V0Ar, V0Cr vs cent
TH2F *hdifV0A_V0CR0; //! 2-D histo diff V0A, V0CR0 vs cent
TH2F *hdifV0A_V0CR3; //! 2-D histo diff V0A, V0CR3 vs cent
TH2F *hClusDxDZA; //! 2-D histo clus Dx vs Dz before
TH2F *hClusDxDZB; //! 2-D histo clus Dx vs Dz after
- TH3F *hdifEMC_EPV0; //! 3-D histo dif phi in EMC with EPV0
TH3F *hdifEMC_EPV0A; //! 3-D histo dif phi in EMC with EPV0A
TH3F *hdifEMC_EPV0C; //! 3-D histo dif phi in EMC with EPV0C
- TH3F *hdifful_EPV0; //! 3-D histo dif phi in full with EPV0
TH3F *hdifful_EPV0A; //! 3-D histo dif phi in full with EPV0A
TH3F *hdifful_EPV0C; //! 3-D histo dif phi in full with EPV0C
- TH3F *hdifout_EPV0; //! 3-D histo dif phi out EMC with EPV0
TH3F *hdifout_EPV0A; //! 3-D histo dif phi out EMC with EPV0A
TH3F *hdifout_EPV0C; //! 3-D histo dif phi out EMC with EPV0C
- TH3F *hdifEMC_EPTPC; //! 3-D histo dif phi in EMC with EPTPC
- TH3F *hdifful_EPTPC; //! 3-D histo dif phi in full with EPTPC
- TH3F *hdifout_EPTPC; //! 3-D histo dif phi out EMC with EPTPC
+ TH3F *hCv2EMC_EPV0A; //! 3-D histo for raw charged v2 in EMC with EPV0A
+ TH3F *hCv2EMC_EPV0C; //! 3-D histo for raw charged v2 in EMC with EPV0C
- THnSparse *fClusterPbV0;
- THnSparse *fClusterPbV0A;
- THnSparse *fClusterPbV0C;
- THnSparse *fClusterPbTPC;
+ TH3F *hCv2ful_EPV0A; //! 3-D histo for raw charged v2 in full with EPV0A
+ TH3F *hCv2ful_EPV0C; //! 3-D histo for raw charged v2 in full with EPV0A
- THnSparse *fHEPV0r; //! Flow 4-D Histo
- THnSparse *fHEPV0A; //! Flow 4-D Histo
- THnSparse *fHEPV0C; //! Flow 4-D Histo
- THnSparse *fHEPTPC; //! Flow 4-D Histo
+ TH3F *hCv2out_EPV0A; //! 3-D histo for raw charged v2 in out with EPV0A
+ TH3F *hCv2out_EPV0C; //! 3-D histo for raw charged v2 in out with EPV0A
-
+ TH3F *hclusDif_EPV0A; //! 3-D histo for dif phi with EPV0A
+ TH3F *hclusDif_EPV0C; //! 3-D histo for dif phi with EPV0A
+
+ TH3F *hclusv2_EPV0A; //! 3-D histo for raw cluster v2 in out with EPV0A
+ TH3F *hclusv2_EPV0C; //! 3-D histo for raw cluster v2 in out with EPV0C
+
+ TString fEPcalibFileName; // Name for calibration
+ AliEPFlattener *fTPCFlat; //! Object for flattening of TPC
+ AliEPFlattener *fV0AFlat; //! Object for flattening of V0A
+ AliEPFlattener *fV0CFlat; //! Object for flattening of V0C
+
+ THnSparse *fClusterPbV0; //!
+ THnSparse *fClusterPbV0A; //!
+ THnSparse *fClusterPbV0C; //!
+ THnSparse *fClusterPbTPC; //!
+
+ THnSparse *fHEPV0A; //! Flow 5-D Histo
+ THnSparse *fHEPV0C; //! Flow 5-D Histo
+ THnSparse *fHEPTPC; //! Flow 5-D Histo
+
+ THnSparse *fHEPV0AM2; //! Flow 5-D Histo
+ THnSparse *fHEPV0CM2; //! Flow 5-D Histo
+ THnSparse *fHEPTPCM2; //! Flow 5-D Histo
AliAnalysisTaskPi0V2(const AliAnalysisTaskPi0V2&); // not implemented
AliAnalysisTaskPi0V2& operator=(const AliAnalysisTaskPi0V2&); // not implemented
- ClassDef(AliAnalysisTaskPi0V2, 5); // example of analysis
+ ClassDef(AliAnalysisTaskPi0V2, 6); // example of analysis
};
-
#endif
-