updates from Fengchu
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskPi0V2.h
index b1e5656..893fbfe 100644 (file)
+/* 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
 
-// $Id: $
-
 class TH1F;
 class TH2F;
-class THnSparse;
+class TH3F;
 class TList;
 class AliESDCaloCluster;
 class AliESDtrackCuts;
 class AliESDEvent;
+class THnSparse;
 
+#ifndef ALIANALYSISTASKSE_H
 #include "AliAnalysisTaskSE.h"
+#endif
 
 class AliAnalysisTaskPi0V2 : public AliAnalysisTaskSE {
  public:
-  AliAnalysisTaskPi0V2();
-  AliAnalysisTaskPi0V2(const char *name);
-  virtual ~AliAnalysisTaskPi0V2();
+    AliAnalysisTaskPi0V2();
+    AliAnalysisTaskPi0V2(const char *name);
+    virtual ~AliAnalysisTaskPi0V2();
     
-  virtual void     UserCreateOutputObjects();
-  virtual void     UserExec(Option_t *option);
-  virtual void     Terminate(Option_t *);
-  
-  Double_t        GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax) const;
-  Double_t        GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const;
-  void                    GetMom(TLorentzVector& p, const AliESDCaloCluster *c, Double_t *vertex);             
-  Bool_t          IsGoodCluster(const AliESDCaloCluster *c) const;
-  Bool_t          IsGoodPion(const TLorentzVector& p1, const TLorentzVector& p2) const;
-  Bool_t          IsWithinFiducialVolume(Short_t id) const;
-  void            FillPion(const TLorentzVector& p1, const TLorentzVector& p2, Double_t EPV0r, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC);
-  void            SetsubEventMethod(Bool_t b ) { fcheckEP2sub =b ;}
+    virtual void     UserCreateOutputObjects();
+    virtual void     UserExec(Option_t *option);
+    virtual void     Terminate(Option_t *);
+    Double_t           GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax) const;
+    Double_t           GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const;
+    Bool_t             IsWithinFiducialVolume(Short_t id) const;
+    Bool_t             IsGoodCluster(const AliESDCaloCluster *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               GetMom(TLorentzVector& p, const AliESDCaloCluster *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               SetClusEta(Double_t e )         { fEtaCut     =e ;}
+    void               SetClusM02(Double_t m )         { fM02Cut     =m ;}
+    void               SetPi0Asy(Double_t a )          { fPi0AsyCut  =a ;}
+
     
  private:
-  TList                *fOutput;          // Output list
-  AliESDtrackCuts      *fTrackCuts;       // Track cuts
-  AliESDEvent          *fESD;             //!ESD object
-  Bool_t                fcheckEP2sub;     //! do 2 sub event method
-  Double_t              fCentrality;      //! Centrality
-  Double_t              fEPTPC;           //! Evt plane TPC
-  Double_t              fEPTPCreso;       //! resolution of TPC method
-  Double_t              fEPV0;            //! EP V0
-  Double_t              fEPV0A;           //! EP V0A
-  Double_t              fEPV0C;           //! EP V0C
-  Double_t              fEPV0Ar;          //! EP V0A reduced
-  Double_t              fEPV0Cr;          //! EP V0C reduced
-  Double_t              fEPV0r;           //! EP V0 reduced
-  Double_t              fEPV0AR4;         //! EP V0A ring4 only
-  Double_t              fEPV0AR5;         //! EP V0A ring5 only
-  Double_t              fEPV0AR6;         //! EP V0A ring6 only
-  Double_t              fEPV0AR7;         //! EP V0A ring7 only
-  Double_t              fEPV0CR0;         //! EP V0C ring0 only        
-  Double_t              fEPV0CR1;         //! EP V0C ring1 only        
-  Double_t              fEPV0CR2;         //! EP V0C ring2 only        
-  Double_t              fEPV0CR3;         //! EP V0C ring3 only        
-  TH2F                 *hEPTPC;           //! 2-D histo EPTPC  vs cent
-  TH2F                 *hresoTPC;         //! 2-D histo TPC resolution vs cent
-  TH2F                 *hEPV0;            //! 2-D histo EPV0   vs cent
-  TH2F                 *hEPV0A;           //! 2-D histo EPV0A  vs cent
-  TH2F                 *hEPV0C;           //! 2-D histo EPV0C  vs cent
-  TH2F                 *hEPV0Ar;          //! 2-D histo EPV0Ar vs cent
-  TH2F                 *hEPV0Cr;          //! 2-D histo EPV0Cr vs cent
-  TH2F                 *hEPV0r;           //! 2-D histo EPV0r  vs cent
-  TH2F                 *hEPV0AR4;         //! 2-D histo EPV0AR4 vs cent
-  TH2F                 *hEPV0AR7;         //! 2-D histo EPV0AR7 vs cent
-  TH2F                 *hEPV0CR0;         //! 2-D histo EPV0AR0 vs cent
-  TH2F                 *hEPV0CR3;         //! 2-D histo EPV0AR3 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                 *hdifV0ACR0_V0CR3; //! 2-D histo diff V0CR0, V0CR3 vs cent
-  TH2F                 *hdifV0C_V0AR4;    //! 2-D histo diff V0C, V0AR4 vs cent
-  TH2F                 *hdifV0C_V0AR7;    //! 2-D histo diff V0C, V0AR7 vs cent
-  TH2F                 *hdifV0AR4_V0AR7;  //! 2-D histo diff V0AR7, V0AR4 vs cent
-  THnSparse             *fHEPV0r;          //! Flow 4-D Histo
-  THnSparse             *fHEPV0A;          //! Flow 4-D Histo
-  THnSparse             *fHEPV0C;          //! Flow 4-D Histo
-  THnSparse             *fHEPTPC;          //! Flow 4-D Histo
-  
-  AliAnalysisTaskPi0V2(const AliAnalysisTaskPi0V2&); // not implemented
-  AliAnalysisTaskPi0V2& operator=(const AliAnalysisTaskPi0V2&); // not implemented
+    TList                      *fOutput;        //! Output list
+    AliESDEvent                        *fESD;          //!ESD object
+    AliESDtrackCuts             *fTrackCuts;    //! ESD track cuts
+    Double_t                   fEvtSelect;     // 1 = MB+Semi+Central, 2 = MB+Semi, 3 = MB;
+    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
+    Bool_t                     fPi0AsyCut;     // pion Asymetry cut 0=off 1=on
+    Double_t                   fCentrality;    //! Centrality
+    Double_t                   fEPTPC;         //! Evt plane TPC
+    Double_t                   fEPTPCreso;     //! resolution of TPC method
+    Double_t                   fEPV0;          //! EP V0
+    Double_t                   fEPV0A;         //! EP V0A
+    Double_t                   fEPV0C;         //! EP V0C
+    Double_t                   fEPV0Ar;        //! EP V0A reduced
+    Double_t                   fEPV0Cr;        //! EP V0C reduced
+    Double_t                   fEPV0r;         //! EP V0 reduced
+    Double_t                   fEPV0AR4;       //! EP V0A ring4 only
+    Double_t                   fEPV0AR5;       //! EP V0A ring5 only
+    Double_t                   fEPV0AR6;       //! EP V0A ring6 only
+    Double_t                   fEPV0AR7;       //! EP V0A ring7 only
+    Double_t                   fEPV0CR0;       //! EP V0C ring0 only   
+    Double_t                   fEPV0CR1;       //! EP V0C ring1 only   
+    Double_t                   fEPV0CR2;       //! EP V0C ring2 only   
+    Double_t                   fEPV0CR3;       //! EP V0C ring3 only   
+
+    TH1F                       *hEvtCount;     //!
+    TH1F                       *hAllcentV0;    //!
+    TH1F                       *hAllcentV0r;   //!
+    TH1F                       *hAllcentV0A;   //!
+    TH1F                       *hAllcentV0C;   //!
+    TH1F                       *hAllcentTPC;   //!
+    TH2F                       *hEPTPC;        //! 2-D histo EPTPC  vs cent
+    TH2F                       *hresoTPC;      //! 2-D histo TPC resolution vs cent
+    TH2F                       *hEPV0;         //! 2-D histo EPV0   vs cent
+    TH2F                       *hEPV0A;        //! 2-D histo EPV0A  vs cent
+    TH2F                       *hEPV0C;        //! 2-D histo EPV0C  vs cent
+    TH2F                       *hEPV0Ar;       //! 2-D histo EPV0Ar vs cent
+    TH2F                       *hEPV0Cr;       //! 2-D histo EPV0Cr vs cent
+    TH2F                       *hEPV0r;        //! 2-D histo EPV0r  vs cent
+    TH2F                       *hEPV0AR4;      //! 2-D histo EPV0AR4 vs cent
+    TH2F                       *hEPV0AR7;      //! 2-D histo EPV0AR7 vs cent
+    TH2F                       *hEPV0CR0;      //! 2-D histo EPV0AR0 vs cent
+    TH2F                       *hEPV0CR3;      //! 2-D histo EPV0AR3 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                       *hdifV0ACR0_V0CR3;      //! 2-D histo diff V0CR0, V0CR3 vs cent
+    TH2F                       *hdifV0C_V0AR4;         //! 2-D histo diff V0C, V0AR4 vs cent
+    TH2F                       *hdifV0C_V0AR7;         //! 2-D histo diff V0C, V0AR7 vs cent
+    TH2F                       *hdifV0AR4_V0AR7;       //! 2-D histo diff V0AR7, V0AR4 vs cent
+
+    TH2F                       *hdifV0A_V0C;           //! 2-D histo diff V0A - V0C
+    TH2F                       *hdifV0A_TPC;           //! 2-D histo diff V0A - TPC
+    TH2F                       *hdifV0C_TPC;           //! 2-D histo diff V0C - TPC
+    TH2F                       *hdifV0C_V0A;           //! 2-D histo diff V0C - V0A
+
+    TH3F                       *hdifEMC_EP;            //! 2-D histo dif phi in EMC with EP
+    TH3F                       *hdifful_EP;            //! 2-D histo dif phi in full with EP
+    TH3F                       *hdifout_EP;            //! 2-D histo dif phi NOT in EMC with EP
+
+    THnSparse                   *fHEPV0r;              //! Flow 4-D Histo
+    THnSparse                   *fHEPV0A;              //! Flow 4-D Histo
+    THnSparse                   *fHEPV0C;              //! Flow 4-D Histo
+    THnSparse                   *fHEPTPC;              //! Flow 4-D Histo
+
     
-  ClassDef(AliAnalysisTaskPi0V2, 1); // example of analysis
+    
+    AliAnalysisTaskPi0V2(const AliAnalysisTaskPi0V2&); // not implemented
+    AliAnalysisTaskPi0V2& operator=(const AliAnalysisTaskPi0V2&); // not implemented
+    
+    ClassDef(AliAnalysisTaskPi0V2, 3); // example of analysis
 };
+
 #endif
+