ROOT logo
#ifndef AliAnalysisTaskCheckSingleTrackJetRejection_cxx
#define AliAnalysisTaskCheckSingleTrackJetRejection_cxx

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

class AliJetHeader;
class AliESDEvent;
class AliAODEvent;
class AliAODJet;
class AliGenPythiaEventHeader;
class AliCFManager;

class TList;
class TChain;
class TH2F;
class TH1F;
class TH3F;
class TProfile;


#include "AliAnalysisTaskSE.h"
#include  "THnSparse.h" // cannot forward declare ThnSparseF  
#include <TList.h>
#include <TH1F.h>
#include <TH2F.h>

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

		// Implementation of interface methods
		virtual void    UserCreateOutputObjects();
		virtual void    Init();
		virtual Bool_t  Notify();
		virtual void    UserExec(Option_t *option);
		virtual void    Terminate(Option_t *);
		virtual void    SetDebug(Int_t debug = 0) {fDebug = debug;}
		virtual void    SetAlgorithm(TString jf="ANTIKT"){JFAlg=jf;}
		virtual void    SetRadius(Float_t radius=0.4){Radius=radius;}
		virtual void    SetFilterMask(UInt_t filter=256){Filtermask=filter;}
		virtual void    SetBackSubMode(Int_t backM=0){BackM=backM;}
		virtual void    SetTrackPtCut(Float_t tPtcut=0){TrackPtcut=tPtcut;}
		virtual void    SetSkipCone(Int_t skipCone=0){SkipCone=skipCone;}
		virtual void    SetMC(Bool_t ismc=kFALSE){IsMC=ismc;}
    virtual void    FinishTaskOutput();
    virtual Bool_t  PythiaInfoFromFile(const char* currFile,Float_t &fXsec,Float_t &fTrials);
    //virtual Float_t GetTotalEvents(const char* currFile);
    virtual Double_t DeltaPhi(Double_t phi1,Double_t phi2);
    virtual Double_t DeltaR(Double_t phi1,Double_t phi2,Double_t eta1,Double_t eta2);


		enum {kNPTBINS=10};

		// 0 all jets
		// 1 all jet in eta window
		// 2 all jets with partner
		// 3 all jets in eta window with partner
		// 4 all jets with partner in eta window
		enum {kStep0 = 0, kStep1, kStep2, kStep3, kStep4,kMaxStep};



	private:
		AliAnalysisTaskCheckSingleTrackJetRejection(const AliAnalysisTaskCheckSingleTrackJetRejection &det); // not implemented
		AliAnalysisTaskCheckSingleTrackJetRejection& operator=(const AliAnalysisTaskCheckSingleTrackJetRejection &det); // not implemented

    Bool_t  JetSelected(AliAODJet *jet);

		Bool_t        fUseAODInput; // read jets from input AOD
		Bool_t        fFillAOD;     // option to fill AOD branch
		TString       fNonStdFile;
		TString       fJetBranch;   // jet branch to read

		AliAODEvent     *fAODIn;      // AOD event
		AliAODEvent     *fAODOut;      // AOD event
		AliAODExtension *fAODExtension;
		TString         JFAlg;
		Float_t         Radius;
		UInt_t          Filtermask;
		Int_t           BackM;
		Float_t         TrackPtcut;
		Int_t           SkipCone;
		Bool_t          IsMC;

		TList        *fHistList; // Output list
		Float_t       fxsec;
		Float_t       ftrial;
		Float_t       fJetRecEtaWindow;       // eta window for rec jets
		Float_t       fMinJetPt;              // limits the jet p_T in addition to what already is done in the jet finder, this is important for jet matching for JF with lo threshold

		TProfile     *fH1Xsec;
		TH1F         *fH1Trials;
		TH1F         *fH1Events; 	

		TH1F         *fH1jetMCAKT04_pt         [6];
		TH2F         *fH2jetMCAKT04_Jetpt_maxpt;
		TH1F         *fH1jetAKT04_pt           [6];     
		TH2F         *fH2jetAKT04_Jetpt_maxpt  ;

		TH2F         *fH2jetMCAKT04_Eratio       [6];
		TH1F         *fH1jetMCAKT04_ptmatch        [6];



		ClassDef(AliAnalysisTaskCheckSingleTrackJetRejection, 13); // Analysis task for standard dijet analysis
};

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