ROOT logo
#ifndef AliAnalysisTaskPtFlucPbPb_cxx
#define AliAnalysisTaskPtFlucPbPb_cxx

// Analysis of Pt Fluctuations (PbPb)
// Author: Stefan Heckel
// Version of PbPb task:  9.2, 03.07.2012


class TList;
class TH1F;
class TH2F;
class TRandom;

class AliESDEvent;
class AliESDtrack;
class AliESDtrackCuts;


#include "AliAnalysisTaskSE.h"


class AliAnalysisTaskPtFlucPbPb : public AliAnalysisTaskSE {
  public:
    AliAnalysisTaskPtFlucPbPb(const char *name = "AliAnalysisTaskPtFlucPbPb");
    virtual ~AliAnalysisTaskPtFlucPbPb();

    virtual void   UserCreateOutputObjects();
    virtual void   UserExec(Option_t *option);
    virtual void   Terminate(Option_t *);

    void SetAliESDtrackCuts(AliESDtrackCuts* esdTrackCuts) {fESDTrackCuts = esdTrackCuts;}
    void SetMaxVertexZ(Float_t vZ) {fMaxVertexZ = vZ;}
    void SetMaxVertexZDiff1(Float_t vZDiff1) {fMaxVertexZDiff1 = vZDiff1;}
    void SetNContributors(Int_t nCont) {fNContributors = nCont;}
    void SetUseCentrality(Int_t cent) {fUseCentrality = cent;}
    void SetMC(Bool_t bMC) {fMC = bMC;}
    void SetMCType(Int_t bMCType) {fMCType = bMCType;}
    void SetMCAMPT(Bool_t bMCAMPT) {fMCAMPT = bMCAMPT;}


  private:
    AliESDEvent	     *fESD;		// ESD object
    AliMCEvent	     *fMCev;		// MC object
    TRandom	     *fRandom3;		// Random generator
    TList*	      fOutputList;	// List where all the output files are stored
	TH1F*		fPtSpec;	// Pt spectrum - data or MC truth
	TH1F*		fPtSpec2;	// Pt spectrum 2 - MC ESD
	TH1F*		fMult;		// Multiplicity distribution
	TH1F*		fMultNbins;	// Multiplicity distribution for single mult. bins
	TH1F*		fMultSum;	// Sum of number of tracks of all events for each multiplicity bin
	TH1F*		fMultSumPt;	// Sum of pTs for multiplicity bins
	TH1F*		fMultNrPairs;	// Sum of number of pairs in mult. bins
	TH1F*		fMult1;		// Multiplicity distribution (first bin divided in 4)
	TH1F*		fMultSum1;	// Sum of number of tracks of all events for each multiplicity bin (first bin divided in 4)
	TH1F*		fMultSumPt1;	// Sum of pTs for multiplicity bins (first bin divided in 4)
	TH1F*		fMultNrPairs1;	// Sum of number of pairs in mult. bins (first bin divided in 4)
	TH1F*		fMult10;	// Multiplicity distribution (five bins in 0 < Nacc < 50)
	TH1F*		fMultSum10;	// Sum of number of tracks of all events for each multiplicity bin (five bins in 0 < Nacc < 50)
	TH1F*		fMultSumPt10;	// Sum of pTs for multiplicity bins (five bins in 0 < Nacc < 50)
	TH1F*		fMultNrPairs10;	// Sum of number of pairs in mult. bins (five bins in 0 < Nacc < 50)
	TH1F*		fMult80;	// Multiplicity distribution  -- (only for events with centrality < 80%)
	TH1F*		fMultSum80;	// Sum of number of tracks of all events for each multiplicity bin -- ( " < 80%)
	TH1F*		fMultSumPt80;	// Sum of pTs for multiplicity bins-- ( " < 80%)
	TH1F*		fMultNrPairs80; // Sum of number of pairs in mult. bins -- ( " < 80%)
	TH1F*		fMult801;	// Multiplicity distribution (first bin divided in 4) -- (only for events with centrality < 80%)
	TH1F*		fMultSum801;	// Sum of number of tracks of all events for each multiplicity bin (first bin divided in 4) -- ( " < 80%)
	TH1F*		fMultSumPt801;	// Sum of pTs for multiplicity bins (first bin divided in 4) -- ( " < 80%)
	TH1F*		fMultNrPairs801; // Sum of number of pairs in mult. bins (first bin divided in 4) -- ( " < 80%)
	TH1F*		fMult810;	// Multiplicity distribution (five bins in 0 < Nacc < 50) -- ( " < 80%)
	TH1F*		fMultSum810;	// Sum of number of tracks of all events for each multiplicity bin (five bins in 0 < Nacc < 50)--( " < 80%)
	TH1F*		fMultSumPt810;	// Sum of pTs for multiplicity bins (five bins in 0 < Nacc < 50) -- ( " < 80%)
	TH1F*		fMultNrPairs810; // Sum of number of pairs in mult. bins (five bins in 0 < Nacc < 50) -- ( " < 80%)
	TH1F*		fCent;		// Centrality distribution
	TH1F*		fCentSum;	// Sum of number of tracks of all events for each centrality bin
	TH1F*		fCentSumPt;	// Sum of pTs for centrality bins
	TH1F*		fCentNrPairs;	// Sum of number of pairs in cent. bins
	TH1F*		fEta;		// Eta distribution
	TH1F*		fEtaPhiPlus;	// Phi distribution for positive eta
	TH1F*		fEtaPhiMinus;	// Phi distribution for negative eta
	TH1F*		fVtxZ;		// Vertex Z distribution after physics selection before any further cuts
	TH1F*		fVtxZCut;	// Vertex Z dist. after vertex Z cut
	TH1F*		fVtxZCont;	// Vertex Z dist. after vertex cut on nContributors
	TH1F*		fVtxZCutDiff;	// Vertex Z dist. after vertex cut on vtx Z Difference
	TH1F*		fVtxZTrackCuts;	// Vertex Z dist. after all event and track cuts
	TH1F*		fVtxZDiff1;	// Difference 1 between vertex Z distributions
	TH1F*		fVtxZDiff2;	// Difference 2 between vertex Z distributions
	TH1F*		fVtxZDiff3;	// Difference 3 between vertex Z distributions
	TH1F*		fVtxZDiff1b;	// Difference 1 between vertex Z distributions after all cuts
	TH1F*		fVtxZDiff2b;	// Difference 2 between vertex Z distributions after all cuts
	TH1F*		fVtxZDiff3b;	// Difference 3 between vertex Z distributions after all cuts
	TH1F*		fEventMeanPt;		// Event mean pT distribution
	TH1F*		fEventMeanPtSq;		// Event mean pT squared dist.
	TH2F*		fEventMeanPtMult;	// Event mean pT distribution vs. multiplicity (scatter plot)
	TH1F*		fMultEventMeanPt;	// Event mean pT for multiplicity bins
	TH1F*		fMultEventMeanPtSq;	// Event mean pT squared for mult. bins
	TH1F*		fMultEventMeanPtNbins;	// Event mean pT for single mult. bins
	TH1F*		fMultEventMeanPtSqNbins;// Event mean pT squared for single mult. bins
	TH1F*		fCentEventMeanPt;	// Event mean pT for centrality bins
	TH1F*		fCentEventMeanPtSq;	// Event mean pT squared for cent. bins
	TH1F*		fEventMeanPtCent05;	// Event mean pT distribution in cent bin 0-5%
	TH1F*		fEventMeanPtCent2030;	// Event mean pT distribution in cent bin 20-30%
	TH1F*		fEventMeanPtCent7080;	// Event mean pT distribution in cent bin 70-80%
	TH1F*		fTwoPartCorrEv;		// Two-particle correlator for multiplicity bins
	TH1F*		fTwoPartCorrEvSq;	// Two-part. corr. squared for mult. bins
	TH1F*		fTwoPartCorrEv1;	// Two-particle correlator for multiplicity bins (first bin divided in 4)
	TH1F*		fTwoPartCorrEvSq1;	// Two-part. corr. squared for mult. bins (first bin divided in 4)
	TH1F*		fTwoPartCorrEv10;	// Two-particle correlator for multiplicity bins (five bins in 0 < Nacc < 50)
	TH1F*		fTwoPartCorrEvSq10;	// Two-part. corr. squared for mult. bins (five bins in 0 < Nacc < 50)
	TH1F*		fTwoPartCorrEv80;	// Two-particle correlator for multiplicity bins -- ( " < 80%)
	TH1F*		fTwoPartCorrEvSq80;	// Two-part. corr. squared for mult. bins -- ( " < 80%)
	TH1F*		fTwoPartCorrEv801;	// Two-particle correlator for multiplicity bins (first bin divided in 4) -- ( " < 80%)
	TH1F*		fTwoPartCorrEvSq801;	// Two-part. corr. squared for mult. bins (first bin divided in 4) -- ( " < 80%)
	TH1F*		fTwoPartCorrEv810;	// Two-particle correlator for multiplicity bins (five bins in 0 < Nacc < 50) -- ( " < 80%)
	TH1F*		fTwoPartCorrEvSq810;	// Two-part. corr. squared for mult. bins (five bins in 0 < Nacc < 50) -- ( " < 80%)
	TH1F*		fTwoPartCorrEvCent;	// Two-particle correlator for centrality bins
	TH1F*		fTwoPartCorrEvCentSq;	// Two-part. corr. squared for cent. bins

    AliESDtrackCuts* fESDTrackCuts;	// Esd track cuts
    Float_t          fMaxVertexZ;	// Maximum value for Vertex Z position
    Float_t          fMaxVertexZDiff1;	// Maximum value for Vertex Z difference TPC - global
    Int_t            fNContributors;	// Minimum contributors to the vertex
    Int_t            fUseCentrality;	// Use centrality (0=off, 1=VZERO, 2=SPD(not yet implemented))
    Bool_t           fMC;		// Check for MC
    Int_t            fMCType;		// Set MC type: ESD, MC truth (generator level), mod. MC truth
    Bool_t           fMCAMPT;		// Set MC = AMPT or other

    AliAnalysisTaskPtFlucPbPb(const AliAnalysisTaskPtFlucPbPb&); // not implemented
    AliAnalysisTaskPtFlucPbPb& operator=(const AliAnalysisTaskPtFlucPbPb&); // not implemented

    ClassDef(AliAnalysisTaskPtFlucPbPb, 1);

};

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