]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/EMCALTasks/AliAnalysisTaskPi0V2.h
rebinning two histograms and removing one printout
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskPi0V2.h
index b70d4269910a78012bab662bf71ff5d5bc85a7a9..a625eb06398714202aede62bb7d974ccd9ac6aa3 100644 (file)
@@ -1,15 +1,5 @@
-/* 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
 
@@ -24,10 +14,9 @@ class AliESDEvent;
 class THnSparse;
 class TClonesArray;
 class TString;
-class AliCaloPID;
-class AliCalorimeterUtils;
-class AliCaloTrackReader;
-
+class TProfile;
+class AliOADBContainer;
+class AliEPFlattener;
 
 #ifndef ALIANALYSISTASKSE_H
 #include "AliAnalysisTaskSE.h"
@@ -48,10 +37,9 @@ class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
     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 ;}
@@ -65,13 +53,21 @@ class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
     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
@@ -80,15 +76,18 @@ class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
     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
@@ -108,20 +107,14 @@ class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
     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
@@ -136,6 +129,10 @@ class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
     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
@@ -154,39 +151,51 @@ class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
     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
-