ROOT logo
#ifndef AliAnalysisTaskPtFluc_cxx
#define AliAnalysisTaskPtFluc_cxx

// Analysis of Pt Fluctuations (pp)
// Author: Stefan Heckel
// Version of pp task:   11.4, 11.06.2012


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

class AliESDEvent;
class AliESDtrack;
class AliESDtrackCuts;


#include "AliAnalysisTaskSE.h"


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

    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 SetMC(Bool_t bMC) {fMC = bMC;}
    void SetMCType(Int_t bMCType) {fMCType = bMCType;}


  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*		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*		fVtxZPileup;	// Vertex Z dist. after pileup rejection
	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*		fTwoPartCorrEv;		// Two-particle correlator for multiplicity bins
	TH1F*		fTwoPartCorrEvSq;	// Two-part. corr. squared for mult. bins
	TH1F*		fTwoPartCorrEvSample;	// Two-part. corr. for the whole sample
	TH1F*		fTwoPartCorrEvSampleSq;	// Two-part. corr. squared for the whole sample

    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
    Bool_t           fMC;		// Check for MC
    Int_t            fMCType;		// Set MC type: ESD, MC truth (generator level), mod. MC truth

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

    ClassDef(AliAnalysisTaskPtFluc, 1);

};

#endif
 AliAnalysisTaskPtFluc.h:1
 AliAnalysisTaskPtFluc.h:2
 AliAnalysisTaskPtFluc.h:3
 AliAnalysisTaskPtFluc.h:4
 AliAnalysisTaskPtFluc.h:5
 AliAnalysisTaskPtFluc.h:6
 AliAnalysisTaskPtFluc.h:7
 AliAnalysisTaskPtFluc.h:8
 AliAnalysisTaskPtFluc.h:9
 AliAnalysisTaskPtFluc.h:10
 AliAnalysisTaskPtFluc.h:11
 AliAnalysisTaskPtFluc.h:12
 AliAnalysisTaskPtFluc.h:13
 AliAnalysisTaskPtFluc.h:14
 AliAnalysisTaskPtFluc.h:15
 AliAnalysisTaskPtFluc.h:16
 AliAnalysisTaskPtFluc.h:17
 AliAnalysisTaskPtFluc.h:18
 AliAnalysisTaskPtFluc.h:19
 AliAnalysisTaskPtFluc.h:20
 AliAnalysisTaskPtFluc.h:21
 AliAnalysisTaskPtFluc.h:22
 AliAnalysisTaskPtFluc.h:23
 AliAnalysisTaskPtFluc.h:24
 AliAnalysisTaskPtFluc.h:25
 AliAnalysisTaskPtFluc.h:26
 AliAnalysisTaskPtFluc.h:27
 AliAnalysisTaskPtFluc.h:28
 AliAnalysisTaskPtFluc.h:29
 AliAnalysisTaskPtFluc.h:30
 AliAnalysisTaskPtFluc.h:31
 AliAnalysisTaskPtFluc.h:32
 AliAnalysisTaskPtFluc.h:33
 AliAnalysisTaskPtFluc.h:34
 AliAnalysisTaskPtFluc.h:35
 AliAnalysisTaskPtFluc.h:36
 AliAnalysisTaskPtFluc.h:37
 AliAnalysisTaskPtFluc.h:38
 AliAnalysisTaskPtFluc.h:39
 AliAnalysisTaskPtFluc.h:40
 AliAnalysisTaskPtFluc.h:41
 AliAnalysisTaskPtFluc.h:42
 AliAnalysisTaskPtFluc.h:43
 AliAnalysisTaskPtFluc.h:44
 AliAnalysisTaskPtFluc.h:45
 AliAnalysisTaskPtFluc.h:46
 AliAnalysisTaskPtFluc.h:47
 AliAnalysisTaskPtFluc.h:48
 AliAnalysisTaskPtFluc.h:49
 AliAnalysisTaskPtFluc.h:50
 AliAnalysisTaskPtFluc.h:51
 AliAnalysisTaskPtFluc.h:52
 AliAnalysisTaskPtFluc.h:53
 AliAnalysisTaskPtFluc.h:54
 AliAnalysisTaskPtFluc.h:55
 AliAnalysisTaskPtFluc.h:56
 AliAnalysisTaskPtFluc.h:57
 AliAnalysisTaskPtFluc.h:58
 AliAnalysisTaskPtFluc.h:59
 AliAnalysisTaskPtFluc.h:60
 AliAnalysisTaskPtFluc.h:61
 AliAnalysisTaskPtFluc.h:62
 AliAnalysisTaskPtFluc.h:63
 AliAnalysisTaskPtFluc.h:64
 AliAnalysisTaskPtFluc.h:65
 AliAnalysisTaskPtFluc.h:66
 AliAnalysisTaskPtFluc.h:67
 AliAnalysisTaskPtFluc.h:68
 AliAnalysisTaskPtFluc.h:69
 AliAnalysisTaskPtFluc.h:70
 AliAnalysisTaskPtFluc.h:71
 AliAnalysisTaskPtFluc.h:72
 AliAnalysisTaskPtFluc.h:73
 AliAnalysisTaskPtFluc.h:74
 AliAnalysisTaskPtFluc.h:75
 AliAnalysisTaskPtFluc.h:76
 AliAnalysisTaskPtFluc.h:77
 AliAnalysisTaskPtFluc.h:78
 AliAnalysisTaskPtFluc.h:79
 AliAnalysisTaskPtFluc.h:80
 AliAnalysisTaskPtFluc.h:81
 AliAnalysisTaskPtFluc.h:82
 AliAnalysisTaskPtFluc.h:83
 AliAnalysisTaskPtFluc.h:84
 AliAnalysisTaskPtFluc.h:85
 AliAnalysisTaskPtFluc.h:86