ROOT logo
#ifndef ALIANALYSISTASKCOMPAREAODTRACKCUTS_H
#define ALIANALYSISTASKCOMPAREAODTRACKCUTS_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * 
* See cxx source for full Copyright notice */ 
/* $Id$ */

class AliAnalysisTaskCompareAODTrackCuts : public AliAnalysisTaskSE {

// Basic AnalysisTask Functions.
public:
	AliAnalysisTaskCompareAODTrackCuts();
	AliAnalysisTaskCompareAODTrackCuts(const char* name);
	virtual ~AliAnalysisTaskCompareAODTrackCuts();
	
private:
	AliAnalysisTaskCompareAODTrackCuts(const AliAnalysisTaskCompareAODTrackCuts&);
	AliAnalysisTaskCompareAODTrackCuts& operator=(const AliAnalysisTaskCompareAODTrackCuts&);		

public:
	virtual void UserCreateOutputObjects(); 
	virtual void UserExec(Option_t*);
	virtual void Terminate(Option_t*);	

// Mismatch related functions.
	Bool_t LoadExternalMismatchHistos();			// For each mismatch method, external histo's are needed.
	Double_t GenerateRandomHit(Double_t eta);		// Generates a random time for a certain eta.

// Task Settings.
	void SetMC(Bool_t isMC = kTRUE) {fIsMC = isMC;} 
	void SetVerbose(Bool_t verbose = kTRUE) {fVerbose = verbose;}
	void SetCalculateTOFMismatch(Bool_t calculatetofmismatch = kTRUE/* const Int_t method*/) {fCalculateTOFMismatch = calculatetofmismatch;}
	void SetUseMismatchFileFromGridHomeDir(Bool_t usefromhomedir = kTRUE) {fUseMismatchFileFromHomeDir = usefromhomedir;}
	void SetUseNSigmaOnPIDAxes(Bool_t UseNSigma = kTRUE);

// Managing Cuts.
    void SetEventCuts(AliAODEventCutsDiHadronPID* eventcuts);
    void AddTrackCuts(AliAODTrackCutsDiHadronPID* trackcuts);

// Override from AliAnalysisTaskSE.
	void SetDebugLevel(Int_t debuglvl);

private:
	void FillGlobalTracksArray();
	AliAODTrack* GetGlobalTrack(AliAODTrack* track);

private:

	// PID Response Object.
	AliPIDResponse*					fPIDResponse;				//! PID Response.

	// Output List.
	TList* 							fOutputList;				//! Output List.

	// Settings (streamed!).
	Bool_t							fIsMC;						// ran over MC or not.
	Bool_t							fVerbose;					// Verbose mode.
	Bool_t 							fCalculateTOFMismatch;		// Compute mismatch or not. (Needs input histograms!)
	Bool_t							fUseMismatchFileFromHomeDir;// Take TOFmistmachHistos.root from the home dir, or take the one copied when submitting jobs
	Bool_t							fUseNSigmaOnPIDAxes;		// Uses NSigma on the PID axes of all histograms.

	// Event Cut Object (streamed!).
	AliAODEventCutsDiHadronPID*		fEventCuts;					// Event Cuts.
	
	// Array of Track Cut Objects (streamed!).
	TObjArray*						fTrackCuts;					// TObjArray with all Track Cut Objects.

	// Inclusive track times.
	TH2F* 							fInclusiveTimes;			//!

	// TOF mismatch stuff.
	TH1F*							fT0Fill;					//
	TH2F*							fLvsEta;					//
	TH2F*							fGlobalPtvsTPCPt;			//
	TObjArray*						fLvsEtaProjections;			//	


	// Event and Track related objects.
	AliAODEvent*					fCurrentAODEvent;			//!
	AliAODTrack*					fCurrentAODTrack;			//!
	AliTrackDiHadronPID*			fCurrentDiHadronPIDTrack;	//!
	TObjArray*						fGlobalTracksArray;			//! Array of Global Tracks.

	ClassDef(AliAnalysisTaskCompareAODTrackCuts,1);

};

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