ROOT logo
#ifndef ALIANALYSISTASKNUCLEIV2_H
#define ALIANALYSISTASKNUCLEIV2_H

/*  See cxx source for full Copyright notice */

//-----------------------------------------------------------------
//                 AliAnalysisTaskNucleiv2 class
//-----------------------------------------------------------------

class TList;
class TH1F;
class TH2F;
class TH3F;
class TNtuple;
class AliESDcascade;
//class AliCascadeVertexer; 
#include <AliPIDResponse.h>
#include "TString.h"
#include "AliESDtrackCuts.h"
#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskNucleiv2 : public AliAnalysisTaskSE {
 public:
  //  AliAnalysisTaskNucleiv2(const char *datatype);
  AliAnalysisTaskNucleiv2();
  AliAnalysisTaskNucleiv2(const char *name,const char *datatype,Bool_t filltree);
  virtual ~AliAnalysisTaskNucleiv2() {}
  
  virtual void  UserCreateOutputObjects();
  virtual void  UserExec(Option_t *option);
  virtual void  Terminate(Option_t *);
  
  void SetCollidingSystems(Short_t collidingSystems = 0)     {fCollidingSystems = collidingSystems;}
  void SetAnalysisType    (const char* analysisType = "ESD") {fAnalysisType = analysisType;}
  void SetDataType    (const char* dataType = "REAL") {fDataType = dataType;}
  void SetFillTree    (Bool_t ifFill = kFALSE) {fFillNtuple = ifFill;}
  //  void SetDataType    (const char* dataTypeS = datatype) {fDataType = dataTypeS;}
  // void SetDataType    (const char* dataType) {fDataType = dataType;}
 
  //Double_t BetheBloch(Double_t bg,Double_t Charge,Bool_t optMC);
  //  Double_t BetheBloch(Double_t bg,Double_t Charge,Bool_t isPbPb);
  //  Bool_t IsTrackAccepted(AliESDtrack * const track);
  Float_t GetPhi0Pi(Float_t phi);
  void    Initialize();
 private:
  
  TString fAnalysisType;	      //! "ESD" or "AOD" analysis type	
  
  Short_t fCollidingSystems;	      //! 0 = pp collisions or 1 = AA collisions
  TString fDataType;		      //! "REAL" or "SIM" data type	
  Bool_t  fFillNtuple;		      //! fill or not the tree	
 
  TList	*fListHistCascade;	           //! List of Cascade 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  *fhPtDeu;                          //! correctet vs non correcter d pt
  TH2F  *fhTOF;                            //! ScatterPlot Total TOF
  TH1F  *fhMassTOF;                        //! Mass Distribution TOF

  TH2F *hRPangleTPCvsCentrality;           //RESOLUTION Histrograms
  TH2F *hPlaneResoTPCvsCentrality;
  TH2F *hRPangleVZEROvsCentrality;
  TH2F *hRPangleVZEROAvsCentrality;
  TH2F *hRPangleVZEROCvsCentrality;
  TH2F *hPlaneResoVZEROvsCentrality;
  TH2F *hPlaneResoVZEROAvsCentrality;
  TH2F *hPlaneResoVZEROCvsCentrality;
  TH2F *hCosPhivsPt;                         
  TH2F *hSinPhivsPt;                         
  TH2F *hPhivsPt;                         
  TH2F *hAntiCosPhivsPt;                     
  TH2F *hAntiSinPhivsPt;                     
  TH2F *hAntiPhivsPt;                     
  TH2F *hCosDeltaPhivsPt075;                      
  TH2F *hSinDeltaPhivsPt075;                      
  TH2F *hDeltaPhivsPt075;                      
  TH2F *hCosDeltaPhiVZEROvsPt075;                 	      
  TH2F *hSinDeltaPhiVZEROvsPt075;                 	      
  TH2F *hDeltaPhiVZEROvsPt075;                 
  TH2F *hCosDeltaPhivsPt1530;                     
  TH2F *hSinDeltaPhivsPt1530;                     
  TH2F *hDeltaPhivsPt1530;                     
  TH2F *hCosDeltaPhiVZEROvsPt1530;                
  TH2F *hSinDeltaPhiVZEROvsPt1530;                
  TH2F *hDeltaPhiVZEROvsPt1530;                
  TH2F *hCosDeltaPhivsPt3050;                     
  TH2F *hSinDeltaPhivsPt3050;                     
  TH2F *hDeltaPhivsPt3050;                     
  TH2F *hCosDeltaPhiVZEROvsPt3050;                
  TH2F *hSinDeltaPhiVZEROvsPt3050;                
  TH2F *hDeltaPhiVZEROvsPt3050;                
  TH2F *hCosDeltaPhivsPt1550;                     
  TH2F *hSinDeltaPhivsPt1550;                     
  TH2F *hDeltaPhivsPt1550;                     
  TH2F *hCosDeltaPhiVZEROvsPt1550;                
  TH2F *hSinDeltaPhiVZEROvsPt1550;                
  TH2F *hDeltaPhiVZEROvsPt1550;                
  TH2F *hAntiCosDeltaPhivsPt075;                  
  TH2F *hAntiSinDeltaPhivsPt075;                  
  TH2F *hAntiDeltaPhivsPt075;                  
  TH2F *hAntiCosDeltaPhiVZEROvsPt075;             
  TH2F *hAntiSinDeltaPhiVZEROvsPt075;             
  TH2F *hAntiDeltaPhiVZEROvsPt075;             
  TH2F *hAntiCosDeltaPhivsPt1530;                 
  TH2F *hAntiSinDeltaPhivsPt1530;                 
  TH2F *hAntiDeltaPhivsPt1530;                 
  TH2F *hAntiCosDeltaPhiVZEROvsPt1530;            
  TH2F *hAntiSinDeltaPhiVZEROvsPt1530;            
  TH2F *hAntiDeltaPhiVZEROvsPt1530;            
  TH2F *hAntiCosDeltaPhivsPt3050;                 
  TH2F *hAntiSinDeltaPhivsPt3050;                 
  TH2F *hAntiDeltaPhivsPt3050;                 
  TH2F *hAntiCosDeltaPhiVZEROvsPt3050;            
  TH2F *hAntiSinDeltaPhiVZEROvsPt3050;            
  TH2F *hAntiDeltaPhiVZEROvsPt3050;            
  TH2F *hAntiCosDeltaPhivsPt1550;                 
  TH2F *hAntiSinDeltaPhivsPt1550;                 
  TH2F *hAntiDeltaPhivsPt1550;                 
  TH2F *hAntiCosDeltaPhiVZEROvsPt1550;            
  TH2F *hAntiSinDeltaPhiVZEROvsPt1550;            
  TH2F *hAntiDeltaPhiVZEROvsPt1550;     

  AliESDtrackCuts * fESDtrackCuts; 
  AliPIDResponse *fPIDResponse;   //! pointer to PID response

  //_______________________________________________________________________

  TTree *fNtuple1;                //! Some Information on the tracks
    
  Double_t tEventNumber[7];       //ev number; run number; Bunch Cross - Orbit -  Period Number; #tracks; event type
  Double_t tCentrality ;
  Double_t tVertexCoord[3];
  
  //TRACKS
  Double_t tPIDITS[9];            //n-signas different particle species ITS
  Double_t tPIDTPC[9];            //n-signas different particle species TPC
  Double_t tPIDTOF[9];            //n-signas different particle species TOF
  Double_t tPulls[3];          //Pulls
 
  Double_t tMomentum[3];          //pxpypz of the tracks
  Double_t tTPCMomentum;          //momentum at theh TPC inner wall
  Double_t tdEdx;                 //dEdx of the tracks
  Double_t tEta;                  //eta of the tracks
  Double_t tDCA[2];               //dcaXY and dcaZ of the track
  Double_t tTracksTPC[2];         //chi^2 and #TPCcluster
  Double_t tITSclustermap;        //ITS cluster map
  Double_t tITSsample[4];         //ITS samples 
  Int_t    tisTOF[2];             //isTOF, isOuterTPCwall   
  Double_t tTOFtrack[3];          //poutTPC,timeTOF,trackLenghtTOF;
  Int_t    tCharge;               //Charge of the Track
  Double_t tPtCorr;               //Corrected Momentum 
  Double_t tPhi;                  //Phi 
  Double_t trpangleTPC;           //rpangleTPC
  Double_t trpangleVZERO[3];      //rpangleVZERO: V0M, V0A, V0C
  
 
  Double_t tPDGCode;              //PDG code ptc
  Double_t tPDGCodeMum;           //PDG code mother ptc
  Double_t tIsPrimaryTr;
  Double_t tIsSecondaryTr[2];     //from material ; from weak deacy 
  
  //_______________________________________________________________________
  
  TTree *fNtuple2;                  //! MC tree

  Double_t tEventNumberMC[6];       //ev number; run number; Bunch Cross - Orbit -  Period Number; #tracks
  Double_t tCentralityMC;
  Double_t tVertexCoordMC[3];
  Double_t tMomentumMC[3];          //pxpypz of the tracks

  Double_t tPDGCodeMC      ;
  Double_t tPDGCodeMumMC   ;
  Double_t tIsPrimary      ;
  Double_t tIsSecondary[2] ;      //from material ; from weak deacy 
  Double_t tEtaMC          ;
  Double_t tPtMC           ;
  Double_t tYMC            ;

  //_______________________________________________________________________
 
  AliAnalysisTaskNucleiv2(const AliAnalysisTaskNucleiv2&);            // not implemented
  AliAnalysisTaskNucleiv2& operator=(const AliAnalysisTaskNucleiv2&); // not implemented
  
  ClassDef(AliAnalysisTaskNucleiv2, 0);
};

#endif
 AliAnalysisTaskNucleiv2.h:1
 AliAnalysisTaskNucleiv2.h:2
 AliAnalysisTaskNucleiv2.h:3
 AliAnalysisTaskNucleiv2.h:4
 AliAnalysisTaskNucleiv2.h:5
 AliAnalysisTaskNucleiv2.h:6
 AliAnalysisTaskNucleiv2.h:7
 AliAnalysisTaskNucleiv2.h:8
 AliAnalysisTaskNucleiv2.h:9
 AliAnalysisTaskNucleiv2.h:10
 AliAnalysisTaskNucleiv2.h:11
 AliAnalysisTaskNucleiv2.h:12
 AliAnalysisTaskNucleiv2.h:13
 AliAnalysisTaskNucleiv2.h:14
 AliAnalysisTaskNucleiv2.h:15
 AliAnalysisTaskNucleiv2.h:16
 AliAnalysisTaskNucleiv2.h:17
 AliAnalysisTaskNucleiv2.h:18
 AliAnalysisTaskNucleiv2.h:19
 AliAnalysisTaskNucleiv2.h:20
 AliAnalysisTaskNucleiv2.h:21
 AliAnalysisTaskNucleiv2.h:22
 AliAnalysisTaskNucleiv2.h:23
 AliAnalysisTaskNucleiv2.h:24
 AliAnalysisTaskNucleiv2.h:25
 AliAnalysisTaskNucleiv2.h:26
 AliAnalysisTaskNucleiv2.h:27
 AliAnalysisTaskNucleiv2.h:28
 AliAnalysisTaskNucleiv2.h:29
 AliAnalysisTaskNucleiv2.h:30
 AliAnalysisTaskNucleiv2.h:31
 AliAnalysisTaskNucleiv2.h:32
 AliAnalysisTaskNucleiv2.h:33
 AliAnalysisTaskNucleiv2.h:34
 AliAnalysisTaskNucleiv2.h:35
 AliAnalysisTaskNucleiv2.h:36
 AliAnalysisTaskNucleiv2.h:37
 AliAnalysisTaskNucleiv2.h:38
 AliAnalysisTaskNucleiv2.h:39
 AliAnalysisTaskNucleiv2.h:40
 AliAnalysisTaskNucleiv2.h:41
 AliAnalysisTaskNucleiv2.h:42
 AliAnalysisTaskNucleiv2.h:43
 AliAnalysisTaskNucleiv2.h:44
 AliAnalysisTaskNucleiv2.h:45
 AliAnalysisTaskNucleiv2.h:46
 AliAnalysisTaskNucleiv2.h:47
 AliAnalysisTaskNucleiv2.h:48
 AliAnalysisTaskNucleiv2.h:49
 AliAnalysisTaskNucleiv2.h:50
 AliAnalysisTaskNucleiv2.h:51
 AliAnalysisTaskNucleiv2.h:52
 AliAnalysisTaskNucleiv2.h:53
 AliAnalysisTaskNucleiv2.h:54
 AliAnalysisTaskNucleiv2.h:55
 AliAnalysisTaskNucleiv2.h:56
 AliAnalysisTaskNucleiv2.h:57
 AliAnalysisTaskNucleiv2.h:58
 AliAnalysisTaskNucleiv2.h:59
 AliAnalysisTaskNucleiv2.h:60
 AliAnalysisTaskNucleiv2.h:61
 AliAnalysisTaskNucleiv2.h:62
 AliAnalysisTaskNucleiv2.h:63
 AliAnalysisTaskNucleiv2.h:64
 AliAnalysisTaskNucleiv2.h:65
 AliAnalysisTaskNucleiv2.h:66
 AliAnalysisTaskNucleiv2.h:67
 AliAnalysisTaskNucleiv2.h:68
 AliAnalysisTaskNucleiv2.h:69
 AliAnalysisTaskNucleiv2.h:70
 AliAnalysisTaskNucleiv2.h:71
 AliAnalysisTaskNucleiv2.h:72
 AliAnalysisTaskNucleiv2.h:73
 AliAnalysisTaskNucleiv2.h:74
 AliAnalysisTaskNucleiv2.h:75
 AliAnalysisTaskNucleiv2.h:76
 AliAnalysisTaskNucleiv2.h:77
 AliAnalysisTaskNucleiv2.h:78
 AliAnalysisTaskNucleiv2.h:79
 AliAnalysisTaskNucleiv2.h:80
 AliAnalysisTaskNucleiv2.h:81
 AliAnalysisTaskNucleiv2.h:82
 AliAnalysisTaskNucleiv2.h:83
 AliAnalysisTaskNucleiv2.h:84
 AliAnalysisTaskNucleiv2.h:85
 AliAnalysisTaskNucleiv2.h:86
 AliAnalysisTaskNucleiv2.h:87
 AliAnalysisTaskNucleiv2.h:88
 AliAnalysisTaskNucleiv2.h:89
 AliAnalysisTaskNucleiv2.h:90
 AliAnalysisTaskNucleiv2.h:91
 AliAnalysisTaskNucleiv2.h:92
 AliAnalysisTaskNucleiv2.h:93
 AliAnalysisTaskNucleiv2.h:94
 AliAnalysisTaskNucleiv2.h:95
 AliAnalysisTaskNucleiv2.h:96
 AliAnalysisTaskNucleiv2.h:97
 AliAnalysisTaskNucleiv2.h:98
 AliAnalysisTaskNucleiv2.h:99
 AliAnalysisTaskNucleiv2.h:100
 AliAnalysisTaskNucleiv2.h:101
 AliAnalysisTaskNucleiv2.h:102
 AliAnalysisTaskNucleiv2.h:103
 AliAnalysisTaskNucleiv2.h:104
 AliAnalysisTaskNucleiv2.h:105
 AliAnalysisTaskNucleiv2.h:106
 AliAnalysisTaskNucleiv2.h:107
 AliAnalysisTaskNucleiv2.h:108
 AliAnalysisTaskNucleiv2.h:109
 AliAnalysisTaskNucleiv2.h:110
 AliAnalysisTaskNucleiv2.h:111
 AliAnalysisTaskNucleiv2.h:112
 AliAnalysisTaskNucleiv2.h:113
 AliAnalysisTaskNucleiv2.h:114
 AliAnalysisTaskNucleiv2.h:115
 AliAnalysisTaskNucleiv2.h:116
 AliAnalysisTaskNucleiv2.h:117
 AliAnalysisTaskNucleiv2.h:118
 AliAnalysisTaskNucleiv2.h:119
 AliAnalysisTaskNucleiv2.h:120
 AliAnalysisTaskNucleiv2.h:121
 AliAnalysisTaskNucleiv2.h:122
 AliAnalysisTaskNucleiv2.h:123
 AliAnalysisTaskNucleiv2.h:124
 AliAnalysisTaskNucleiv2.h:125
 AliAnalysisTaskNucleiv2.h:126
 AliAnalysisTaskNucleiv2.h:127
 AliAnalysisTaskNucleiv2.h:128
 AliAnalysisTaskNucleiv2.h:129
 AliAnalysisTaskNucleiv2.h:130
 AliAnalysisTaskNucleiv2.h:131
 AliAnalysisTaskNucleiv2.h:132
 AliAnalysisTaskNucleiv2.h:133
 AliAnalysisTaskNucleiv2.h:134
 AliAnalysisTaskNucleiv2.h:135
 AliAnalysisTaskNucleiv2.h:136
 AliAnalysisTaskNucleiv2.h:137
 AliAnalysisTaskNucleiv2.h:138
 AliAnalysisTaskNucleiv2.h:139
 AliAnalysisTaskNucleiv2.h:140
 AliAnalysisTaskNucleiv2.h:141
 AliAnalysisTaskNucleiv2.h:142
 AliAnalysisTaskNucleiv2.h:143
 AliAnalysisTaskNucleiv2.h:144
 AliAnalysisTaskNucleiv2.h:145
 AliAnalysisTaskNucleiv2.h:146
 AliAnalysisTaskNucleiv2.h:147
 AliAnalysisTaskNucleiv2.h:148
 AliAnalysisTaskNucleiv2.h:149
 AliAnalysisTaskNucleiv2.h:150
 AliAnalysisTaskNucleiv2.h:151
 AliAnalysisTaskNucleiv2.h:152
 AliAnalysisTaskNucleiv2.h:153
 AliAnalysisTaskNucleiv2.h:154
 AliAnalysisTaskNucleiv2.h:155
 AliAnalysisTaskNucleiv2.h:156
 AliAnalysisTaskNucleiv2.h:157
 AliAnalysisTaskNucleiv2.h:158
 AliAnalysisTaskNucleiv2.h:159
 AliAnalysisTaskNucleiv2.h:160
 AliAnalysisTaskNucleiv2.h:161
 AliAnalysisTaskNucleiv2.h:162
 AliAnalysisTaskNucleiv2.h:163
 AliAnalysisTaskNucleiv2.h:164
 AliAnalysisTaskNucleiv2.h:165
 AliAnalysisTaskNucleiv2.h:166
 AliAnalysisTaskNucleiv2.h:167
 AliAnalysisTaskNucleiv2.h:168
 AliAnalysisTaskNucleiv2.h:169
 AliAnalysisTaskNucleiv2.h:170
 AliAnalysisTaskNucleiv2.h:171
 AliAnalysisTaskNucleiv2.h:172
 AliAnalysisTaskNucleiv2.h:173
 AliAnalysisTaskNucleiv2.h:174
 AliAnalysisTaskNucleiv2.h:175
 AliAnalysisTaskNucleiv2.h:176
 AliAnalysisTaskNucleiv2.h:177
 AliAnalysisTaskNucleiv2.h:178
 AliAnalysisTaskNucleiv2.h:179
 AliAnalysisTaskNucleiv2.h:180
 AliAnalysisTaskNucleiv2.h:181
 AliAnalysisTaskNucleiv2.h:182
 AliAnalysisTaskNucleiv2.h:183
 AliAnalysisTaskNucleiv2.h:184
 AliAnalysisTaskNucleiv2.h:185
 AliAnalysisTaskNucleiv2.h:186
 AliAnalysisTaskNucleiv2.h:187
 AliAnalysisTaskNucleiv2.h:188
 AliAnalysisTaskNucleiv2.h:189
 AliAnalysisTaskNucleiv2.h:190
 AliAnalysisTaskNucleiv2.h:191
 AliAnalysisTaskNucleiv2.h:192