ROOT logo
#ifndef ALIANALYSISTASKNUCLEIV2SP_H
#define ALIANALYSISTASKNUCLEIV2SP_H

/*  See cxx source for full Copyright notice */

//-----------------------------------------------------------------
//                 AliAnalysisTaskNucleiv2SP class
//-----------------------------------------------------------------

class TList;
class TH1F;
class TH2F;


#include <AliPIDResponse.h>
#include "TString.h"
#include "AliESDtrackCuts.h"
#include "AliAnalysisTaskSE.h"
#include "THnSparse.h"

class AliAnalysisTaskNucleiv2SP : public AliAnalysisTaskSE {
 public:
 
  AliAnalysisTaskNucleiv2SP();
  AliAnalysisTaskNucleiv2SP(const char *name); 
  virtual ~AliAnalysisTaskNucleiv2SP() {}
  
  virtual void  UserCreateOutputObjects();
  virtual void  Initialize();
  virtual void  UserExec(Option_t *option);
  virtual void  Terminate(Option_t *);
   
  Float_t GetEventPlaneForCandidate(AliESDtrack* track0, const TVector2* q,AliEventplane *pl);
  Float_t GetPhi0Pi(Float_t phi);

  void SetIsPrimCut        (Bool_t  isPrimCut           = kFALSE) { fisPrimCut       = isPrimCut;         } 
  void SetParticle         (Float_t ptc                 = 1.    ) { fptc             = ptc;               }

 private:

  Bool_t         fisPrimCut;                     // Boolean : kTRUE = isprimarycut 
  Float_t        fptc;                           // Selected ptc 1 = d; 2 = t; 3 =3He 

  TList	*fListHist;	           //! List of  histograms
 
  TH1F  *fHistEventMultiplicity;           //! event multiplicity
  TH2F  *fHistTrackMultiplicity;           //! track multiplicity
  TH2F  *fHistTrackMultiplicityCentral;    //! track multiplicity
  TH2F  *fHistTrackMultiplicitySemiCentral;//! track multiplicity
  TH2F  *fHistTrackMultiplicityMB;         //! track multiplicity

  TH2F  *fhBB;                             //! ScatterPlot Total
  TH2F  *fhBBDeu;                          //! ScatterPlot Total
  TH2F  *fhTOF;                            //! ScatterPlot Total TOF
  TH1F  *fhMassTOF;                        //! Mass Distribution TOF
  
  // Event Plane vs Centrality

  TH2D *EPVzAvsCentrality  ; 
  TH2D *EPVzCvsCentrality  ; 
  TH2D *EPTPCvsCentrality  ; 
  TH2D *EPVzvsCentrality   ; 
  TH2D *EPTPCpvsCentrality ; 
  TH2D *EPTPCnvsCentrality ; 
  
  // EP TPC vs EP VZ for different centralities 

  TH2F *hEvPlaneTPCvsEvPVz05;                      
  TH2F *hEvPlaneTPCvsEvPVz075; 
  TH2F *hEvPlaneTPCvsEvPVz1530;
  TH2F *hEvPlaneTPCvsEvPVz3050;                      
  TH2F *hEvPlaneTPCvsEvPVz2040;                      
  TH2F *hEvPlaneTPCvsEvPVz4060;                      

  // For EP Resolution

  TH2F *hCos2DeltaTPCVzAvsCentrality;
  TH2F *hCos2DeltaTPCVzCvsCentrality;
  TH2F *hCos2DeltaVzAVzCvsCentrality;
  TH2F *hCos2DeltaVzMVzAvsCentrality;
  TH2F *hCos2DeltaVzMVzCvsCentrality;
  TH2F *hCos2DeltaVzATPCvsCentrality;
  TH2F *hCos2DeltaVzCTPCvsCentrality;
  TH2F *hCos2DeltaVzCVzAvsCentrality;
  TH2F *hCos2DeltaVzMTPCpvsCentrality;
  TH2F *hCos2DeltaVzMTPCnvsCentrality;
  TH2F *hCos2DeltaTPCpTPCnvsCentrality;

  // For SP resolution

  TH2F *hQVzAQVzCvsCentrality;

  // For NUA correction

  TH2F *hQxVzAvsCentrality;
  TH2F *hQyVzAvsCentrality;
  TH2F *hQxVzCvsCentrality;
  TH2F *hQyVzCvsCentrality;
  TH2F *hQxVzMvsCentrality;
  TH2F *hQyVzMvsCentrality;

  // TTree
  TTree *ftree;                //! Some Information on the tracks
  Double_t tCentrality      ;
  Double_t tType            ;
  Double_t tHasTOF          ;
  Double_t tpT              ;
  Double_t tMassTOF         ;
  Double_t tuqV0A           ;
  Double_t tuqV0C           ;
  Double_t tCharge          ;
  Double_t tCosdeltaphiTPC  ;
  Double_t tCosdeltaphiV0M  ;
  Double_t tCosdeltaphiV0A  ;
  Double_t tCosdeltaphiV0C  ;
  Double_t timpactXY        ;
  Double_t timpactZ         ;
  Double_t tpull            ;
  Double_t tphi             ;
  
  //---------------------------------------------------------------------------
  AliESDtrackCuts *fESDtrackCuts; 
  AliESDtrackCuts *fESDtrackCutsEP;
  AliPIDResponse  *fPIDResponse;   //! pointer to PID response
  //_______________________________________________________________________
 
  AliAnalysisTaskNucleiv2SP(const AliAnalysisTaskNucleiv2SP&);            // not implemented
  AliAnalysisTaskNucleiv2SP& operator=(const AliAnalysisTaskNucleiv2SP&); // not implemented
  
  ClassDef(AliAnalysisTaskNucleiv2SP, 0);
};

#endif
 AliAnalysisTaskNucleiv2SP.h:1
 AliAnalysisTaskNucleiv2SP.h:2
 AliAnalysisTaskNucleiv2SP.h:3
 AliAnalysisTaskNucleiv2SP.h:4
 AliAnalysisTaskNucleiv2SP.h:5
 AliAnalysisTaskNucleiv2SP.h:6
 AliAnalysisTaskNucleiv2SP.h:7
 AliAnalysisTaskNucleiv2SP.h:8
 AliAnalysisTaskNucleiv2SP.h:9
 AliAnalysisTaskNucleiv2SP.h:10
 AliAnalysisTaskNucleiv2SP.h:11
 AliAnalysisTaskNucleiv2SP.h:12
 AliAnalysisTaskNucleiv2SP.h:13
 AliAnalysisTaskNucleiv2SP.h:14
 AliAnalysisTaskNucleiv2SP.h:15
 AliAnalysisTaskNucleiv2SP.h:16
 AliAnalysisTaskNucleiv2SP.h:17
 AliAnalysisTaskNucleiv2SP.h:18
 AliAnalysisTaskNucleiv2SP.h:19
 AliAnalysisTaskNucleiv2SP.h:20
 AliAnalysisTaskNucleiv2SP.h:21
 AliAnalysisTaskNucleiv2SP.h:22
 AliAnalysisTaskNucleiv2SP.h:23
 AliAnalysisTaskNucleiv2SP.h:24
 AliAnalysisTaskNucleiv2SP.h:25
 AliAnalysisTaskNucleiv2SP.h:26
 AliAnalysisTaskNucleiv2SP.h:27
 AliAnalysisTaskNucleiv2SP.h:28
 AliAnalysisTaskNucleiv2SP.h:29
 AliAnalysisTaskNucleiv2SP.h:30
 AliAnalysisTaskNucleiv2SP.h:31
 AliAnalysisTaskNucleiv2SP.h:32
 AliAnalysisTaskNucleiv2SP.h:33
 AliAnalysisTaskNucleiv2SP.h:34
 AliAnalysisTaskNucleiv2SP.h:35
 AliAnalysisTaskNucleiv2SP.h:36
 AliAnalysisTaskNucleiv2SP.h:37
 AliAnalysisTaskNucleiv2SP.h:38
 AliAnalysisTaskNucleiv2SP.h:39
 AliAnalysisTaskNucleiv2SP.h:40
 AliAnalysisTaskNucleiv2SP.h:41
 AliAnalysisTaskNucleiv2SP.h:42
 AliAnalysisTaskNucleiv2SP.h:43
 AliAnalysisTaskNucleiv2SP.h:44
 AliAnalysisTaskNucleiv2SP.h:45
 AliAnalysisTaskNucleiv2SP.h:46
 AliAnalysisTaskNucleiv2SP.h:47
 AliAnalysisTaskNucleiv2SP.h:48
 AliAnalysisTaskNucleiv2SP.h:49
 AliAnalysisTaskNucleiv2SP.h:50
 AliAnalysisTaskNucleiv2SP.h:51
 AliAnalysisTaskNucleiv2SP.h:52
 AliAnalysisTaskNucleiv2SP.h:53
 AliAnalysisTaskNucleiv2SP.h:54
 AliAnalysisTaskNucleiv2SP.h:55
 AliAnalysisTaskNucleiv2SP.h:56
 AliAnalysisTaskNucleiv2SP.h:57
 AliAnalysisTaskNucleiv2SP.h:58
 AliAnalysisTaskNucleiv2SP.h:59
 AliAnalysisTaskNucleiv2SP.h:60
 AliAnalysisTaskNucleiv2SP.h:61
 AliAnalysisTaskNucleiv2SP.h:62
 AliAnalysisTaskNucleiv2SP.h:63
 AliAnalysisTaskNucleiv2SP.h:64
 AliAnalysisTaskNucleiv2SP.h:65
 AliAnalysisTaskNucleiv2SP.h:66
 AliAnalysisTaskNucleiv2SP.h:67
 AliAnalysisTaskNucleiv2SP.h:68
 AliAnalysisTaskNucleiv2SP.h:69
 AliAnalysisTaskNucleiv2SP.h:70
 AliAnalysisTaskNucleiv2SP.h:71
 AliAnalysisTaskNucleiv2SP.h:72
 AliAnalysisTaskNucleiv2SP.h:73
 AliAnalysisTaskNucleiv2SP.h:74
 AliAnalysisTaskNucleiv2SP.h:75
 AliAnalysisTaskNucleiv2SP.h:76
 AliAnalysisTaskNucleiv2SP.h:77
 AliAnalysisTaskNucleiv2SP.h:78
 AliAnalysisTaskNucleiv2SP.h:79
 AliAnalysisTaskNucleiv2SP.h:80
 AliAnalysisTaskNucleiv2SP.h:81
 AliAnalysisTaskNucleiv2SP.h:82
 AliAnalysisTaskNucleiv2SP.h:83
 AliAnalysisTaskNucleiv2SP.h:84
 AliAnalysisTaskNucleiv2SP.h:85
 AliAnalysisTaskNucleiv2SP.h:86
 AliAnalysisTaskNucleiv2SP.h:87
 AliAnalysisTaskNucleiv2SP.h:88
 AliAnalysisTaskNucleiv2SP.h:89
 AliAnalysisTaskNucleiv2SP.h:90
 AliAnalysisTaskNucleiv2SP.h:91
 AliAnalysisTaskNucleiv2SP.h:92
 AliAnalysisTaskNucleiv2SP.h:93
 AliAnalysisTaskNucleiv2SP.h:94
 AliAnalysisTaskNucleiv2SP.h:95
 AliAnalysisTaskNucleiv2SP.h:96
 AliAnalysisTaskNucleiv2SP.h:97
 AliAnalysisTaskNucleiv2SP.h:98
 AliAnalysisTaskNucleiv2SP.h:99
 AliAnalysisTaskNucleiv2SP.h:100
 AliAnalysisTaskNucleiv2SP.h:101
 AliAnalysisTaskNucleiv2SP.h:102
 AliAnalysisTaskNucleiv2SP.h:103
 AliAnalysisTaskNucleiv2SP.h:104
 AliAnalysisTaskNucleiv2SP.h:105
 AliAnalysisTaskNucleiv2SP.h:106
 AliAnalysisTaskNucleiv2SP.h:107
 AliAnalysisTaskNucleiv2SP.h:108
 AliAnalysisTaskNucleiv2SP.h:109
 AliAnalysisTaskNucleiv2SP.h:110
 AliAnalysisTaskNucleiv2SP.h:111
 AliAnalysisTaskNucleiv2SP.h:112
 AliAnalysisTaskNucleiv2SP.h:113
 AliAnalysisTaskNucleiv2SP.h:114
 AliAnalysisTaskNucleiv2SP.h:115
 AliAnalysisTaskNucleiv2SP.h:116
 AliAnalysisTaskNucleiv2SP.h:117
 AliAnalysisTaskNucleiv2SP.h:118
 AliAnalysisTaskNucleiv2SP.h:119
 AliAnalysisTaskNucleiv2SP.h:120
 AliAnalysisTaskNucleiv2SP.h:121
 AliAnalysisTaskNucleiv2SP.h:122
 AliAnalysisTaskNucleiv2SP.h:123
 AliAnalysisTaskNucleiv2SP.h:124
 AliAnalysisTaskNucleiv2SP.h:125
 AliAnalysisTaskNucleiv2SP.h:126
 AliAnalysisTaskNucleiv2SP.h:127
 AliAnalysisTaskNucleiv2SP.h:128
 AliAnalysisTaskNucleiv2SP.h:129
 AliAnalysisTaskNucleiv2SP.h:130
 AliAnalysisTaskNucleiv2SP.h:131
 AliAnalysisTaskNucleiv2SP.h:132
 AliAnalysisTaskNucleiv2SP.h:133