ROOT logo
//Class to extract data to do ITS+TPC global Spectra
//Autor Marek Chojnacki, Marek.Chojnacki@cern.ch
//modified Mikolaj Krzewicki, Mikolaj.Krzewicki@cern.ch

#ifndef ALIANALYSISFLOWPIDTASK_H
#define  ALIANALYSISFLOWPIDTASK_H
class TH2F;
class TH1F;
class TProfile;
class AliESDEvent;
class AliESDtrack;
class AliESDpid;
class AliFlowEventCuts;
class AliFlowTrackCuts;
#include "AliAnalysisTaskSE.h"
#include "AliESDpid.h"

class  AliAnalysisTaskPIDflowQA : public AliAnalysisTaskSE {
public:
  AliAnalysisTaskPIDflowQA();
  AliAnalysisTaskPIDflowQA(const char *name);
  virtual ~AliAnalysisTaskPIDflowQA() {}
  
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  virtual void Terminate(Option_t *); 

  AliFlowTrackCuts* GetAliESDtrackCuts() const {return fCuts;}
  void SetTrackCuts(AliFlowTrackCuts* cuts ){fCuts=cuts;}
  void SetEventCuts(AliFlowEventCuts* c) {fEventCuts=c;}
  AliESDpid* GetESDpid() const {return fESDpid;}
  void SetUseDebugFile(Bool_t b=kTRUE) {fUseDebugFile=b;}
  Bool_t TPCTOFagree(const AliESDtrack *track);  

  Float_t Beta(Float_t m, Float_t p);

private:
  AliESDEvent *fESD;            //!ESD object    
  AliFlowTrackCuts *fCuts;       //cuts 
  AliFlowEventCuts *fEventCuts; //event cuts
  AliESDpid *fESDpid;           //pid object
  Bool_t fUseDebugFile; //write debug file
  FILE* fFile; //debug output file

  TH2F* fTPCsignal; //!TPC signal as function of p
  TH2F* fTPCsignalPi;//!TPC PID signal as function of p for pi+
  TH2F* fTPCsignalK;//!TPC PID signal as function of p for K+
  TH2F* fTPCsignalP;//!TPC PID signal as function of p for p

  TH2F* fTPCsignalPimc;//!TPC PID signal as function of p for pi+
  TH2F* fTPCsignalKmc;//!TPC PID signal as function of p for K+
  TH2F* fTPCsignalPmc;//!TPC PID signal as function of p for p

  TH2F* fTOFtime;//!vs time
  TH2F* fTOFtimeE;//!vs time
  TH2F* fTOFtimePi;//!vs time
  TH2F* fTOFtimeK;//!vs time
  TH2F* fTOFtimeP;//!vs time

  TH2F* fTOFbeta;//!vs beta
  TH2F* fTOFbetaE;//!vs beta
  TH2F* fTOFbetaPi;//!vs beta
  TH2F* fTOFbetaK;//!vs beta
  TH2F* fTOFbetaP;//!vs beta

  TH2F* fTOFinvbeta;//!vs beta
  TH2F* fTOFinvbetaE;//!vs beta
  TH2F* fTOFinvbetaPi;//!vs beta
  TH2F* fTOFinvbetaK;//!vs beta
  TH2F* fTOFinvbetaP;//!vs beta

  TH2F* fTOFrawtime;//!vs time
  TH2F* fTOFrawtimeE;//!vs time
  TH2F* fTOFrawtimePi;//!vs time
  TH2F* fTOFrawtimeK;//!vs time
  TH2F* fTOFrawtimeP;//!vs time

  TH2F* fTOFrawbeta;//!vs beta
  TH2F* fTOFrawbetaE;//!vs beta
  TH2F* fTOFrawbetaPi;//!vs beta
  TH2F* fTOFrawbetaK;//!vs beta
  TH2F* fTOFrawbetaP;//!vs beta

  TH2F* fTOFrawinvbeta;//!vs beta
  TH2F* fTOFrawinvbetaE;//!vs beta
  TH2F* fTOFrawinvbetaPi;//!vs beta
  TH2F* fTOFrawinvbetaK;//!vs beta
  TH2F* fTOFrawinvbetaP;//!vs beta

  TH2F* fPvsPt; //!P vs Pt yield
  TProfile* fMeanPvsP; //!mean p per bin
  TH2F* fTPCvsGlobalMult; //! correlation tpc only tracks vs global tracks
  AliFlowTrackCuts* fStandardGlobalCuts; //! cuts
  AliFlowTrackCuts* fStandardTPCCuts; //! cuts

  AliFlowTrackCuts* fCutsTOFbetaElectrons; //!
  AliFlowTrackCuts* fCutsTOFbetaPions; //!
  AliFlowTrackCuts* fCutsTOFbetaKaons; //!
  AliFlowTrackCuts* fCutsTOFbetaProtons; //!

  AliFlowTrackCuts* fCutsTOFbetaSimpleElectrons; //!
  AliFlowTrackCuts* fCutsTOFbetaSimplePions; //!
  AliFlowTrackCuts* fCutsTOFbetaSimpleKaons; //!
  AliFlowTrackCuts* fCutsTOFbetaSimpleProtons; //!

  AliFlowTrackCuts* fCutsTOFbayesianElectrons; //!
  AliFlowTrackCuts* fCutsTOFbayesianPions; //!
  AliFlowTrackCuts* fCutsTOFbayesianKaons; //!
  AliFlowTrackCuts* fCutsTOFbayesianProtons; //!

  AliFlowTrackCuts* fCutsTPCdedxElectrons; //!
  AliFlowTrackCuts* fCutsTPCdedxPions; //!
  AliFlowTrackCuts* fCutsTPCdedxKaons; //!
  AliFlowTrackCuts* fCutsTPCdedxProtons; //!

  AliFlowTrackCuts* fCutsTPCpidElectrons; //!
  AliFlowTrackCuts* fCutsTPCpidPions; //!
  AliFlowTrackCuts* fCutsTPCpidKaons; //!
  AliFlowTrackCuts* fCutsTPCpidProtons; //!

  AliFlowTrackCuts* fCutsTPCbayesianElectrons; //!
  AliFlowTrackCuts* fCutsTPCbayesianPions; //!
  AliFlowTrackCuts* fCutsTPCbayesianKaons; //!
  AliFlowTrackCuts* fCutsTPCbayesianProtons; //!

  AliFlowTrackCuts* fCutsMCelectrons; //!
  AliFlowTrackCuts* fCutsMCpions;  //!
  AliFlowTrackCuts* fCutsMCkaons;  //!
  AliFlowTrackCuts* fCutsMCprotons; //!
  AliFlowTrackCuts* fCutsMCprimaryelectrons; //!
  AliFlowTrackCuts* fCutsMCprimarypions; //!
  AliFlowTrackCuts* fCutsMCprimarykaons; //!
  AliFlowTrackCuts* fCutsMCprimaryprotons; //!

  TList* fOutputList;//!output list
	
  AliAnalysisTaskPIDflowQA(const  AliAnalysisTaskPIDflowQA&); // not implemented
  AliAnalysisTaskPIDflowQA& operator=(const  AliAnalysisTaskPIDflowQA&); // not implemented
 
  void PidTPC(AliESDtrack* t, Int_t pdgcode);
  void PidTOF(AliESDtrack* t, Int_t pdgcode);
    
  ClassDef( AliAnalysisTaskPIDflowQA, 4); // example of analysis
};

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