ROOT logo
#ifndef AliAnalysisTaskPPJetSpectra_cxx
#define AliAnalysisTaskPPJetSpectra_cxx

class THnSparse;
class TNtuple;
class TH2F;
class AliAODEvent;
class AliESDEvent;
class AliAODExtension;
class AliAODJet;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskPPJetSpectra : public AliAnalysisTaskSE
{
  public:
    AliAnalysisTaskPPJetSpectra();
    AliAnalysisTaskPPJetSpectra(const char* name);
    virtual ~AliAnalysisTaskPPJetSpectra() {}

    virtual void        Init();
    virtual Bool_t      Notify();
    virtual void        UserCreateOutputObjects();
    virtual void        UserExec(Option_t *option);
    virtual void        Terminate(Option_t *);

    void                SetVertexCuts(Int_t, Double_t, Double_t);
    void                SetTrackFilter(UInt_t i) {nTrackFilter = i;}
    void                SetEventSelectionMask(UInt_t i) {fEvtSelectionMask = i;}
    void                SetEventClass(Float_t i) {fEventClass = i;}
    void                SetTrackCuts(Double_t,Double_t,Double_t);
    void                SetJetCuts(Double_t, Double_t, Double_t);

    void                SetRecJetBranch(TString);
    void                SetGenJetBranch(TString);
    void                SetRecBckgBranch(TString);
    void                SetGenBckgBranch(TString);
    void                SetTrackType(Int_t i) {fTrackType = i;}
    void                SetParticleType(Int_t i) {fParticleType = i;}
    void                SetNonStdFile(TString s) {fNonStdFile = s;}
    void				SetDoUEanalysis(Bool_t i) {kDoUEanalysis = i;}

    void                UseMC(Bool_t i) {fUseMC = i;}

    enum                {kNone = 0, kAOD, kAODMC, kAODMC2};
  private:

    Bool_t              EventSelection(Double_t*);
    Int_t               GetListOfTracks(Int_t, TList*);
    Int_t               GetListOfJets(TClonesArray*, TList*, Bool_t);
    void                FillJetContainer(TList*, THnSparseF*);
    Double_t            GetUE(TList*, TList*, Double_t,THnSparseF*);
    Double_t            GetBckgUE(TList*, Double_t,Bool_t, THnSparseF*);
    Int_t               CorrectForUE(TList*,Double_t,TList*,THnSparseF*);
    void                MatchJets(Bool_t,TList*,TList*,Float_t, THnSparseF*);
    Int_t	        CheckPtBin(Double_t);
    void		DoUEAnalysis(TList*, Double_t, Double_t);

    TList*              fOutputList;

    AliESDEvent*        fESD;
    AliAODEvent*        fAOD;
    AliAODEvent*        fAODIn;
    AliAODEvent*        fAODOut;
    AliAODExtension*    fAODExt;
    TString             fNonStdFile;
    Int_t               fDebug;
    Bool_t              fUseMC;

    UInt_t              fEvtSelectionMask;
    Float_t             fEventClass;
    Int_t               nVtxContCut;
    Double_t            fVtxZcut;
    Double_t            fVtxRcut;

    UInt_t              nTrackFilter;
    Double_t            trackPtMin;
    Double_t            trackPtMax;
    Double_t            trackEtaAbsMax;

    Double_t            jetPtMin;
    Double_t            jetEtaCut;
    Double_t            jetZmax;

    THnSparseF*         fhnEvent;

    THnSparseF*         fhnTracks;
    THnSparseF*         fhnMC;
    THnSparseF*         fhnMC2;

    THnSparseF*         fhnRecJetsNoCut;
    THnSparseF*         fhnGenJetsNoCut;
    THnSparseF*         fhnRecJetsCut;
    THnSparseF*         fhnGenJetsCut;
    THnSparseF*         fhnRecBckg;
    THnSparseF*         fhnGenBckg;

    THnSparseF*         fhnRecJetsTrackUEcor;
    THnSparseF*         fhnGenJetsTrackUEcor;
    THnSparseF*         fhnRecJetsBckgUEcor;
    THnSparseF*         fhnGenJetsBckgUEcor;

    THnSparseF*         fhnTrackUE;
    THnSparseF*         fhnParticleUE;
    THnSparseF*         fhnBckgRecUE;
    THnSparseF*         fhnBckgGenUE;

    TString             fRecJetBranch;
    TString             fGenJetBranch;
    TString             fRecBckgBranch;
    TString             fGenBckgBranch;

    Double_t            fRecJetR;
    Double_t            fGenJetR;
    Double_t            fRecBckgR;
    Double_t            fGenBckgR;

    Int_t               fTrackType;
    Int_t               fParticleType;

    THnSparseF*		fhnMatching;
    THnSparseF*		fhnTrackCorrMatching;
    THnSparseF*		fhnBckgCorrMatching;

    THnSparseF*		fhnTrackUEanal;

    Bool_t 		kDoUEanalysis;
    Int_t               fRejectPileUp;

    ClassDef(AliAnalysisTaskPPJetSpectra, 2);
};

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