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

#include "TFormula.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TList.h"
#include "AliTrackDiHadronPID.h"

class AliAODTrackCutsDiHadronPID : public TNamed 

{

public:
	enum HistoClass {kAllCharged = 0, kPositive = 1, kNegative = 2,
		kAllPion = 3, kPosPion = 4, kNegPion = 5, 
		kAllKaon = 6, kPosKaon = 7, kNegKaon = 8, 
		kAllProton = 9, kPosProton = 10, kNegProton = 11};

public:
	AliAODTrackCutsDiHadronPID();					// Default Constructor
	AliAODTrackCutsDiHadronPID(const char* name);	// Named Constructor
	virtual ~AliAODTrackCutsDiHadronPID();			// Destructor
	virtual Long64_t Merge(TCollection* list);		// Merger

private:
	AliAODTrackCutsDiHadronPID(const AliAODTrackCutsDiHadronPID&);
	AliAODTrackCutsDiHadronPID& operator=(const AliAODTrackCutsDiHadronPID&);

// -----------------------------------------------------------------------
//  Interface, methods used to get information about the track cuts, and to
//  retrieve filled histograms. 
// -----------------------------------------------------------------------

public:
	void PrintCuts() const;

	// List of QA histograms.
	TList* GetListOfDataQAHistos() const;
	TList* GetListOfPrimRecMCTrackQAHistos() const;
	TList* GetListOfPrimGenMCTrackQAHistos() const;
	TList* GetListOfSecRecMCTrackQAHistos() const;
	TList* GetListOfSecGenMCTrackQAHistos() const;

	// Return a specific member of one of the lists of histograms.
	TObject* GetHistData(const char* name) const {return fDataTrackQAHistos->FindObject(name);} 
	TObject* GetHistPrimRecMC(const char* name) const {return fPrimRecMCTrackQAHistos->FindObject(name);}
	TObject* GetHistPrimGenMC(const char* name) const {return fPrimGenMCTrackQAHistos->FindObject(name);}
	TObject* GetHistSecRecMC(const char* name) const {return fSecRecMCTrackQAHistos->FindObject(name);}
	TObject* GetHistSecGenMC(const char* name) const {return fSecGenMCTrackQAHistos->FindObject(name);}

	// Return a projection of signal or mismatch onto the TOF axis (FIXME: works only data, not yet MC)
	TH1F* GetHistDataTOFProjection(Int_t charge, Int_t species, Int_t ptbin);
	TObjArray* GetDataTOFProjection(Int_t charge, Int_t species);
 	TH1F* GetHistDataTOFMismatch(Int_t charge, Int_t species, Int_t ptbin);
 	TObjArray* GetDataTOFMismatch(Int_t charge, Int_t species);
	
	// Return a projection of signal or mismatch onto the TOF axis (FIXME: works only data, not yet MC)	
 	TH2F* GetHistDataTPCTOFProjection(Int_t charge, Int_t species, Int_t ptbin);
 	TObjArray* GetDataTPCTOFProjection(Int_t charge, Int_t species);
 	TH2F* GetHistDataTPCTOFMismatch(Int_t charge, Int_t species, Int_t ptbin);
 	TObjArray* GetDataTPCTOFMismatch(Int_t charge, Int_t species);

	// Note that there are two p_T axes, one for PID histograms, and one for other histograms.
	// Methods regarding the "other" p_T axis.
	Int_t GetNPtBins() const {return fNPtBins;}
	Double_t* GetPtAxis() {return fPtAxis;}
	Double_t GetPtMin(Int_t bin) const;
	Double_t GetPtMax(Int_t bin) const;
	Double_t GetPtBinWidth(Int_t bin) const {return (GetPtMax(bin) - GetPtMin(bin)); }

	// Methods regarding the PID p_T axis.
	Int_t GetNPtBinsPID(Int_t ptclass = -1) const;
	Double_t* GetPtAxisPID() const;
	Double_t GetPtMinPID(Int_t bin) const;
	Double_t GetPtMaxPID(Int_t bin) const;
	Double_t GetPtBinWidthPID(Int_t bin) const {return (GetPtMaxPID(bin) - GetPtMinPID(bin));}
	Double_t GetPtClassMin(Int_t ptclass) const;
	Double_t GetPtClassMax(Int_t ptclass) const;

	Int_t GetNTOFbins(Int_t ptclass, Int_t species) const {return fTOFbins[ptclass][species];}
	Double_t GetTOFmin(Int_t ptclass, Int_t species) const {return fTOFLowerBound[ptclass][species];}
	Double_t GetTOFmax(Int_t ptclass, Int_t species) const {return fTOFUpperBound[ptclass][species];}

	Int_t GetNTPCbins(Int_t ptclass, Int_t species) const {return fTPCbins[ptclass][species];}
	Double_t GetTPCmin(Int_t ptclass, Int_t species) const {return fTPCLowerBound[ptclass][species];}
	Double_t GetTPCmax(Int_t ptclass, Int_t species) const {return fTPCUpperBound[ptclass][species];}

	// Getters (Cuts)
	UInt_t GetFilterMask() const {return fFilterMask;}
	Double_t GetMaxEta() const {return fMaxEta;}
	ULong_t GetDemandedFlags() const {return fDemandedFlags;}
	TFormula* GetPtDeptDCACutFormula() const {return fPtDeptDCAxyCutFormula;}
	Double_t GetDCAzCut() const {return fDCAzCut;}
	UInt_t GetMinSPDHitsForPtDeptDCACut() const {return fMinSPDHitsForPtDeptDCAcut;}

	// Getters (Settings)
	Bool_t GetIsMC() const {return fIsMC;}
	Int_t GetDebugLevel() const {return fDebug;}

// -----------------------------------------------------------------------
//  Methods used to configure the track cuts object, to be called at
//  initialization, i.e., before the object is added to an analysis task.  
// -----------------------------------------------------------------------

public:

	// Request Certain QA histograms being filled.
	Bool_t RequestQAHistos(Int_t histoclass, Bool_t Enable3DSpectra = kFALSE, Bool_t EnablePIDHistos = kFALSE);
	
	// Setters (Cuts)
	void SetPtRange(Double_t minpt, Double_t maxpt);
	void SetFilterMask(UInt_t filtermask);
	void SetMaxEta(Double_t maxeta);
	void SetMaxRapidity(Double_t maxrapidity);
	void SetDemandNoMismatch();
	void SetDemandFlags(ULong_t demandedflags);
	void SetMinimumNumberOfTPCClusters(Int_t minimumnumberoftpcclusters);
	void SetDemandSPDCluster();
	void SetPtDeptDCACut(TFormula* DCAxyCutFormula, Double_t DCAzCut, UInt_t MinSPDHits = 1);

// Setters (Settings)
	void SetIsMC(Bool_t ismc = kTRUE) {fIsMC = ismc;}
	void SetLowPtNSigmaTOFOnly(Bool_t lowptnsigmatofonly = kFALSE) {fLowPtNSigmaTOFOnly = lowptnsigmatofonly;}
	void SetUseNSigmaOnPIDAxes(Bool_t useNSigma = kTRUE) {fUseNSigmaOnPIDAxes = useNSigma;}
	void SetDebugLevel(Int_t debuglevel) {fDebug = debuglevel;}

// -----------------------------------------------------------------------
//  Methods called by the analysis task. 
// -----------------------------------------------------------------------

public:

// These two functions signal the beginning and the end of a new event.
	void StartNewEvent();				// Some things are set to zero.
	void EventIsDone(Bool_t IsMC);		// Some final histograms are filled.
	void CreateHistos(); 				// Should be called by the UserCreateOutput() function of the analysis task.

// Is Selected, for different types of tracks.
	Bool_t IsSelectedData(AliTrackDiHadronPID* track, Double_t randomhittime = -1.e20);
	Bool_t IsSelectedGeneratedMC(AliAODMCParticle* particle);
	Bool_t IsSelectedReconstructedMC(AliTrackDiHadronPID* track);

// -----------------------------------------------------------------------
//  Internal methods.
// -----------------------------------------------------------------------

public:

// For PID histograms we have a certain number of bins in pT, spread out over five
// large histograms, i.e., one for the lowest pT, and the biggest range in TOF/TPC,
// one for the higher pT and smaller range in TOF/TPC, etc. The following methods
// are a mapping between the total pT bin (what the user uses), and the pt bin
// within one of the five histograms (what's used internally)
	Int_t GetPtClass(Int_t ptbin) const;
	Int_t GetBinInPtClass(Int_t ptbin) const;

private:

// Checks, return kTRUE if track passes the cut.
	Bool_t CheckPt(Double_t pt) const;
	Bool_t CheckMaxEta(Double_t eta) const;
	Bool_t CheckRapidity(Double_t rap) const;
	Bool_t CheckFilterMask(UInt_t filtermap) const;
	Bool_t CheckFlags(ULong_t flags) const;
	Bool_t CheckNclsTPC(Int_t ncls) const;
	Bool_t CheckTOFmismatch(Bool_t ismismatch) const;
	Bool_t CheckPtDeptDCACut(Double_t dcaz, Double_t dcaxy, Double_t pt, UInt_t SPDhits) const;

// Filling QA histograms.
	Bool_t FillDataHistos(Int_t histoclass, AliTrackDiHadronPID* track);
	Bool_t FillTOFMismatchHistos(Int_t histoclass, AliTrackDiHadronPID* track, Double_t randomhittime);
	Bool_t FillGenMCHistos(Int_t histoclass, AliAODMCParticle* particle);
	Bool_t FillRecMCHistos(Int_t histoclass, AliTrackDiHadronPID* track);

// Initializing QA histograms.
	Bool_t InitializeDataHistos(Int_t histoclass);
	Bool_t InitializeGenMCHistos(Int_t histoclass);
	Bool_t InitializeRecMCHistos(Int_t histoclass);

	void InitializeDefaultHistoNamesAndAxes();

	TH1F* InitializeAcceptedFilterBits(const char* name);
	void SetXaxisAcceptedFilterBits();
	TH1F* InitializePtSpectrum(const char* name, Int_t histoclass);
	TH2F* InitializeRecPtGenPt(const char* name, Int_t histoclass);
	TH3F* InitializePhiEtaPt(const char* name, Int_t histoclass);
	TH1F* InitializeNTracksHisto(const char* name, Int_t histoclass);
	TH1F* InitializeDCAxyHisto(const char* name, Int_t histoclass);
	TH1F* InitializeDCAzHisto(const char* name, Int_t histoclass);
	TH3F* InitializeAcceptanceHisto(const char* /*name*/, Int_t /*histoclass*/); // TO BE IMPLEMENTED.
	TH2F* InitializeDCASpectrum(const char* name, Int_t histoclass);

	TH3F* InitializePIDHisto(const char* name, Int_t histoclass, Int_t expspecies, Int_t ptclass);
	TH2F* InitializeTOFMismatchHisto(const char* name, Int_t histoclass, Int_t expspecies, Int_t ptclass);
	TH2F* InitializeTOFHisto(const char* name, Int_t histoclass, Int_t expspecies, Int_t ptclass);

// -----------------------------------------------------------------------
//  Data members.
// -----------------------------------------------------------------------

private:
// Track Cuts
	Double_t				fMinPt;
	Double_t				fMaxPt;
	UInt_t 					fFilterMask;					// FilterMask to-be-checked.
	Double_t 				fMaxEta;						// Max Eta of the track.
	Double_t				fMaxRapidity;					// Rapidity cut (only done for PID plots!!)
	Int_t					fMinimumNumberOfTPCClusters; 	// NCls of TPC detector.
	ULong_t 				fDemandedFlags;					// Flags demanded on the track.
	UInt_t 					fMinSPDHitsForPtDeptDCAcut;		// Required number of SPD hits for performing Pt-Dept DCA cut.
	TFormula* 				fPtDeptDCAxyCutFormula;			// Formula for the Pt-Dept DCA cut.
	Double_t				fDCAzCut;						// Max z at DCA.

// Settings
	Bool_t					fIsMC;							// Is the current event MC or not.
	Bool_t					fLowPtNSigmaTOFOnly;			//
	Bool_t					fUseNSigmaOnPIDAxes;			//

// Requested Histograms;
	Bool_t					fHistRequested[12];				//
	Bool_t					f3DSpectraEnabeled[12];			//
	Bool_t					fPIDHistosEnabeled[12];			//

// Which Track Cuts will be tested.
	Bool_t					fTestPt;						//
	Bool_t 					fTestFilterMask;				//
	Bool_t 					fTestMaxEta;					//
	Bool_t					fTestMaxRapidity;				//
	Bool_t 					fTestFlags;						//
	Bool_t					fTestNumberOfTPCClusters;		//
	Bool_t					fTestSPDAny;					//
	Bool_t 					fTestTOFmismatch;				//
	Bool_t 					fTestPtDeptDCAcut;				//

// QA histograms for Data.
	TList*					fDataTrackQAHistos;				// 
	TH1F*					fHistAcceptedFilterBits;		//! Histogram with the number of accepted tracks as function of filtermask.
	TArrayI*				fRelevantBitsArray;				//! See method: InitializeAcceptedFilterBits().
	TH1F*					fHistDataPt[3];					//! Pt distribution of tracks passing this cut.
	TH3F*					fHistDataPhiEtaPt[3];			//! Pt, Eta, Phi distribution.
	TH1F*					fHistDataNTracks[3];			//! Number of tracks passing the cut per event (filling by EventIsDone()).
	TH1F*					fHistDataDCAxy[3];				//! DCA_{xy} distribution.
	TH1F*					fHistDataDCAz[3];				//! DCA_{z} distribution
	TH2F* 					fHistDataDCAxyOneSigma[12];		//! DCA_{xy} distribution of particles as identified by 1 sigma method.
	Int_t					fNTracks[12];					//! Number of tracks

	TH3F* 					fHistDataPID[3][3][5];			//! TPC/TOF v.s. pT, [charge][mass assumption][ptclass]
	TH2F*					fHistTOFMismatch[3][3][5];		//! TOF Mismatch histograms, [charge][mass assumption][ptclass]
	TH3F*					fHistTPCTOFMismatch[3][3][5];	//! TPC/TOF mismatch histograms (Same as TOF, but now the TPC hit of the track is included.)

// QA histograms for all reconstructed MC tracks.
	TH1F*					fTOFMatchingStat;				//

// QA histograms for Primary Reconstructed MC tracks.
	TList*					fPrimRecMCTrackQAHistos;		//
	TH1F*					fHistPrimRecMCPt[12];			//! Pt distribution of reconstructed MC track passing this cut.
	TH3F*					fHistPrimRecMCPhiEtaPt[12];		//! Pt, Eta, Phi distribution.
	TH1F*					fHistPrimRecNTracks[12];		//!
	TH2F*					fHistPrimRecMCDCA[12];			//! DCA_xy distribution of reconstructed MC track passing this cut.
	TH2F*					fHistPrimRecPtGenPt[12];		//! Reconstructed Pt versus Generated Pt.

	TH2F* 					fHistPrimRecPID[3][3][5];		//! TPC/TOF v.s. pT, [charge][mass assumption][ptclass]
	TH2F*					fHistPrimRecMismatch[3][3][5];	//! Tracks with the same ->Label(), as ->TOFLabel().

// QA histograms for Primary Generated MC particles.
	TList*					fPrimGenMCTrackQAHistos;		//
	TH1F*					fHistPrimGenMCPt[12];			//! Pt distribution of generated MC particles passing this cut.
	TH3F*					fHistPrimGenMCPhiEtaPt[12];		//! Pt, Eta, Phi distribution.

// QA histograms for Secondary Reconstructed MC tracks.
	TList*					fSecRecMCTrackQAHistos;			//
	TH1F*					fHistSecRecMCPt[12];			//! Pt distribution of reconstructed MC track passing this cut.
	TH3F*					fHistSecRecMCPhiEtaPt[12];		//! Pt, Eta, Phi distribution.
	TH2F*					fHistSecRecMCDCAMat[12];		//! DCA_xy distribution of material decay particles.
	TH2F*					fHistSecRecMCDCAWeak[12];		//! DCA_xy distribution of weak decay.

// QA histograms for Secondary Generated MC particles.
	TList*					fSecGenMCTrackQAHistos;			//
	TH1F*					fHistSecGenMCPt[12];			//! Pt distribution of generated MC particles passing this cut.
	TH3F*					fHistSecGenMCPhiEtaPt[12];		//! Pt, Eta, Phi distribution.

// Binning of all the histograms.
	Double_t				fPtAxis[57];					// Pt axis used in all histograms, except PID and Mismatch histograms.
	Int_t					fNPtBins;						// Number of bins in the pt-axis.
	Int_t					fNEtaBins;						// 
	Int_t					fNPhiBins;						//

	Double_t				fPtBoundaryPID[6];				// There are five different PID histo's. This array gives the pT range of these histograms.
	Int_t					fNPtBinsPID[5];					// This array gives the number of pT bins for each of these histograms.

	Double_t				fTOFLowerBound[5][3];			// These arrays give the lower and upper bound of the TOF axes,
	Double_t				fTOFUpperBound[5][3];			// for each species, as well as the number of bins. The numbers
	Int_t					fTOFbins[5][3];					// size of the array is [ptrange][species].

	Double_t				fTPCLowerBound[5][3];			// The same, but now for TPC.
	Double_t				fTPCUpperBound[5][3];
	Int_t					fTPCbins[5][3];

// Naming conventions of the histograms.
	TString					fHistoName[12];					// Names of the histogram classes.
	TString					fHistoLatex[12];				// Names of the histogram classes in LaTeX.
	TString					fParticleName[3];				// Names of the particles (Pion, Kaon, Proton)
	TString					fPtClassName[5];				// Names of the ptclasses (should only be for internal use)

	Int_t 					fDebug;							// Debug flag.

	ClassDef(AliAODTrackCutsDiHadronPID,9);

};

#endif
 AliAODTrackCutsDiHadronPID.h:1
 AliAODTrackCutsDiHadronPID.h:2
 AliAODTrackCutsDiHadronPID.h:3
 AliAODTrackCutsDiHadronPID.h:4
 AliAODTrackCutsDiHadronPID.h:5
 AliAODTrackCutsDiHadronPID.h:6
 AliAODTrackCutsDiHadronPID.h:7
 AliAODTrackCutsDiHadronPID.h:8
 AliAODTrackCutsDiHadronPID.h:9
 AliAODTrackCutsDiHadronPID.h:10
 AliAODTrackCutsDiHadronPID.h:11
 AliAODTrackCutsDiHadronPID.h:12
 AliAODTrackCutsDiHadronPID.h:13
 AliAODTrackCutsDiHadronPID.h:14
 AliAODTrackCutsDiHadronPID.h:15
 AliAODTrackCutsDiHadronPID.h:16
 AliAODTrackCutsDiHadronPID.h:17
 AliAODTrackCutsDiHadronPID.h:18
 AliAODTrackCutsDiHadronPID.h:19
 AliAODTrackCutsDiHadronPID.h:20
 AliAODTrackCutsDiHadronPID.h:21
 AliAODTrackCutsDiHadronPID.h:22
 AliAODTrackCutsDiHadronPID.h:23
 AliAODTrackCutsDiHadronPID.h:24
 AliAODTrackCutsDiHadronPID.h:25
 AliAODTrackCutsDiHadronPID.h:26
 AliAODTrackCutsDiHadronPID.h:27
 AliAODTrackCutsDiHadronPID.h:28
 AliAODTrackCutsDiHadronPID.h:29
 AliAODTrackCutsDiHadronPID.h:30
 AliAODTrackCutsDiHadronPID.h:31
 AliAODTrackCutsDiHadronPID.h:32
 AliAODTrackCutsDiHadronPID.h:33
 AliAODTrackCutsDiHadronPID.h:34
 AliAODTrackCutsDiHadronPID.h:35
 AliAODTrackCutsDiHadronPID.h:36
 AliAODTrackCutsDiHadronPID.h:37
 AliAODTrackCutsDiHadronPID.h:38
 AliAODTrackCutsDiHadronPID.h:39
 AliAODTrackCutsDiHadronPID.h:40
 AliAODTrackCutsDiHadronPID.h:41
 AliAODTrackCutsDiHadronPID.h:42
 AliAODTrackCutsDiHadronPID.h:43
 AliAODTrackCutsDiHadronPID.h:44
 AliAODTrackCutsDiHadronPID.h:45
 AliAODTrackCutsDiHadronPID.h:46
 AliAODTrackCutsDiHadronPID.h:47
 AliAODTrackCutsDiHadronPID.h:48
 AliAODTrackCutsDiHadronPID.h:49
 AliAODTrackCutsDiHadronPID.h:50
 AliAODTrackCutsDiHadronPID.h:51
 AliAODTrackCutsDiHadronPID.h:52
 AliAODTrackCutsDiHadronPID.h:53
 AliAODTrackCutsDiHadronPID.h:54
 AliAODTrackCutsDiHadronPID.h:55
 AliAODTrackCutsDiHadronPID.h:56
 AliAODTrackCutsDiHadronPID.h:57
 AliAODTrackCutsDiHadronPID.h:58
 AliAODTrackCutsDiHadronPID.h:59
 AliAODTrackCutsDiHadronPID.h:60
 AliAODTrackCutsDiHadronPID.h:61
 AliAODTrackCutsDiHadronPID.h:62
 AliAODTrackCutsDiHadronPID.h:63
 AliAODTrackCutsDiHadronPID.h:64
 AliAODTrackCutsDiHadronPID.h:65
 AliAODTrackCutsDiHadronPID.h:66
 AliAODTrackCutsDiHadronPID.h:67
 AliAODTrackCutsDiHadronPID.h:68
 AliAODTrackCutsDiHadronPID.h:69
 AliAODTrackCutsDiHadronPID.h:70
 AliAODTrackCutsDiHadronPID.h:71
 AliAODTrackCutsDiHadronPID.h:72
 AliAODTrackCutsDiHadronPID.h:73
 AliAODTrackCutsDiHadronPID.h:74
 AliAODTrackCutsDiHadronPID.h:75
 AliAODTrackCutsDiHadronPID.h:76
 AliAODTrackCutsDiHadronPID.h:77
 AliAODTrackCutsDiHadronPID.h:78
 AliAODTrackCutsDiHadronPID.h:79
 AliAODTrackCutsDiHadronPID.h:80
 AliAODTrackCutsDiHadronPID.h:81
 AliAODTrackCutsDiHadronPID.h:82
 AliAODTrackCutsDiHadronPID.h:83
 AliAODTrackCutsDiHadronPID.h:84
 AliAODTrackCutsDiHadronPID.h:85
 AliAODTrackCutsDiHadronPID.h:86
 AliAODTrackCutsDiHadronPID.h:87
 AliAODTrackCutsDiHadronPID.h:88
 AliAODTrackCutsDiHadronPID.h:89
 AliAODTrackCutsDiHadronPID.h:90
 AliAODTrackCutsDiHadronPID.h:91
 AliAODTrackCutsDiHadronPID.h:92
 AliAODTrackCutsDiHadronPID.h:93
 AliAODTrackCutsDiHadronPID.h:94
 AliAODTrackCutsDiHadronPID.h:95
 AliAODTrackCutsDiHadronPID.h:96
 AliAODTrackCutsDiHadronPID.h:97
 AliAODTrackCutsDiHadronPID.h:98
 AliAODTrackCutsDiHadronPID.h:99
 AliAODTrackCutsDiHadronPID.h:100
 AliAODTrackCutsDiHadronPID.h:101
 AliAODTrackCutsDiHadronPID.h:102
 AliAODTrackCutsDiHadronPID.h:103
 AliAODTrackCutsDiHadronPID.h:104
 AliAODTrackCutsDiHadronPID.h:105
 AliAODTrackCutsDiHadronPID.h:106
 AliAODTrackCutsDiHadronPID.h:107
 AliAODTrackCutsDiHadronPID.h:108
 AliAODTrackCutsDiHadronPID.h:109
 AliAODTrackCutsDiHadronPID.h:110
 AliAODTrackCutsDiHadronPID.h:111
 AliAODTrackCutsDiHadronPID.h:112
 AliAODTrackCutsDiHadronPID.h:113
 AliAODTrackCutsDiHadronPID.h:114
 AliAODTrackCutsDiHadronPID.h:115
 AliAODTrackCutsDiHadronPID.h:116
 AliAODTrackCutsDiHadronPID.h:117
 AliAODTrackCutsDiHadronPID.h:118
 AliAODTrackCutsDiHadronPID.h:119
 AliAODTrackCutsDiHadronPID.h:120
 AliAODTrackCutsDiHadronPID.h:121
 AliAODTrackCutsDiHadronPID.h:122
 AliAODTrackCutsDiHadronPID.h:123
 AliAODTrackCutsDiHadronPID.h:124
 AliAODTrackCutsDiHadronPID.h:125
 AliAODTrackCutsDiHadronPID.h:126
 AliAODTrackCutsDiHadronPID.h:127
 AliAODTrackCutsDiHadronPID.h:128
 AliAODTrackCutsDiHadronPID.h:129
 AliAODTrackCutsDiHadronPID.h:130
 AliAODTrackCutsDiHadronPID.h:131
 AliAODTrackCutsDiHadronPID.h:132
 AliAODTrackCutsDiHadronPID.h:133
 AliAODTrackCutsDiHadronPID.h:134
 AliAODTrackCutsDiHadronPID.h:135
 AliAODTrackCutsDiHadronPID.h:136
 AliAODTrackCutsDiHadronPID.h:137
 AliAODTrackCutsDiHadronPID.h:138
 AliAODTrackCutsDiHadronPID.h:139
 AliAODTrackCutsDiHadronPID.h:140
 AliAODTrackCutsDiHadronPID.h:141
 AliAODTrackCutsDiHadronPID.h:142
 AliAODTrackCutsDiHadronPID.h:143
 AliAODTrackCutsDiHadronPID.h:144
 AliAODTrackCutsDiHadronPID.h:145
 AliAODTrackCutsDiHadronPID.h:146
 AliAODTrackCutsDiHadronPID.h:147
 AliAODTrackCutsDiHadronPID.h:148
 AliAODTrackCutsDiHadronPID.h:149
 AliAODTrackCutsDiHadronPID.h:150
 AliAODTrackCutsDiHadronPID.h:151
 AliAODTrackCutsDiHadronPID.h:152
 AliAODTrackCutsDiHadronPID.h:153
 AliAODTrackCutsDiHadronPID.h:154
 AliAODTrackCutsDiHadronPID.h:155
 AliAODTrackCutsDiHadronPID.h:156
 AliAODTrackCutsDiHadronPID.h:157
 AliAODTrackCutsDiHadronPID.h:158
 AliAODTrackCutsDiHadronPID.h:159
 AliAODTrackCutsDiHadronPID.h:160
 AliAODTrackCutsDiHadronPID.h:161
 AliAODTrackCutsDiHadronPID.h:162
 AliAODTrackCutsDiHadronPID.h:163
 AliAODTrackCutsDiHadronPID.h:164
 AliAODTrackCutsDiHadronPID.h:165
 AliAODTrackCutsDiHadronPID.h:166
 AliAODTrackCutsDiHadronPID.h:167
 AliAODTrackCutsDiHadronPID.h:168
 AliAODTrackCutsDiHadronPID.h:169
 AliAODTrackCutsDiHadronPID.h:170
 AliAODTrackCutsDiHadronPID.h:171
 AliAODTrackCutsDiHadronPID.h:172
 AliAODTrackCutsDiHadronPID.h:173
 AliAODTrackCutsDiHadronPID.h:174
 AliAODTrackCutsDiHadronPID.h:175
 AliAODTrackCutsDiHadronPID.h:176
 AliAODTrackCutsDiHadronPID.h:177
 AliAODTrackCutsDiHadronPID.h:178
 AliAODTrackCutsDiHadronPID.h:179
 AliAODTrackCutsDiHadronPID.h:180
 AliAODTrackCutsDiHadronPID.h:181
 AliAODTrackCutsDiHadronPID.h:182
 AliAODTrackCutsDiHadronPID.h:183
 AliAODTrackCutsDiHadronPID.h:184
 AliAODTrackCutsDiHadronPID.h:185
 AliAODTrackCutsDiHadronPID.h:186
 AliAODTrackCutsDiHadronPID.h:187
 AliAODTrackCutsDiHadronPID.h:188
 AliAODTrackCutsDiHadronPID.h:189
 AliAODTrackCutsDiHadronPID.h:190
 AliAODTrackCutsDiHadronPID.h:191
 AliAODTrackCutsDiHadronPID.h:192
 AliAODTrackCutsDiHadronPID.h:193
 AliAODTrackCutsDiHadronPID.h:194
 AliAODTrackCutsDiHadronPID.h:195
 AliAODTrackCutsDiHadronPID.h:196
 AliAODTrackCutsDiHadronPID.h:197
 AliAODTrackCutsDiHadronPID.h:198
 AliAODTrackCutsDiHadronPID.h:199
 AliAODTrackCutsDiHadronPID.h:200
 AliAODTrackCutsDiHadronPID.h:201
 AliAODTrackCutsDiHadronPID.h:202
 AliAODTrackCutsDiHadronPID.h:203
 AliAODTrackCutsDiHadronPID.h:204
 AliAODTrackCutsDiHadronPID.h:205
 AliAODTrackCutsDiHadronPID.h:206
 AliAODTrackCutsDiHadronPID.h:207
 AliAODTrackCutsDiHadronPID.h:208
 AliAODTrackCutsDiHadronPID.h:209
 AliAODTrackCutsDiHadronPID.h:210
 AliAODTrackCutsDiHadronPID.h:211
 AliAODTrackCutsDiHadronPID.h:212
 AliAODTrackCutsDiHadronPID.h:213
 AliAODTrackCutsDiHadronPID.h:214
 AliAODTrackCutsDiHadronPID.h:215
 AliAODTrackCutsDiHadronPID.h:216
 AliAODTrackCutsDiHadronPID.h:217
 AliAODTrackCutsDiHadronPID.h:218
 AliAODTrackCutsDiHadronPID.h:219
 AliAODTrackCutsDiHadronPID.h:220
 AliAODTrackCutsDiHadronPID.h:221
 AliAODTrackCutsDiHadronPID.h:222
 AliAODTrackCutsDiHadronPID.h:223
 AliAODTrackCutsDiHadronPID.h:224
 AliAODTrackCutsDiHadronPID.h:225
 AliAODTrackCutsDiHadronPID.h:226
 AliAODTrackCutsDiHadronPID.h:227
 AliAODTrackCutsDiHadronPID.h:228
 AliAODTrackCutsDiHadronPID.h:229
 AliAODTrackCutsDiHadronPID.h:230
 AliAODTrackCutsDiHadronPID.h:231
 AliAODTrackCutsDiHadronPID.h:232
 AliAODTrackCutsDiHadronPID.h:233
 AliAODTrackCutsDiHadronPID.h:234
 AliAODTrackCutsDiHadronPID.h:235
 AliAODTrackCutsDiHadronPID.h:236
 AliAODTrackCutsDiHadronPID.h:237
 AliAODTrackCutsDiHadronPID.h:238
 AliAODTrackCutsDiHadronPID.h:239
 AliAODTrackCutsDiHadronPID.h:240
 AliAODTrackCutsDiHadronPID.h:241
 AliAODTrackCutsDiHadronPID.h:242
 AliAODTrackCutsDiHadronPID.h:243
 AliAODTrackCutsDiHadronPID.h:244
 AliAODTrackCutsDiHadronPID.h:245
 AliAODTrackCutsDiHadronPID.h:246
 AliAODTrackCutsDiHadronPID.h:247
 AliAODTrackCutsDiHadronPID.h:248
 AliAODTrackCutsDiHadronPID.h:249
 AliAODTrackCutsDiHadronPID.h:250
 AliAODTrackCutsDiHadronPID.h:251
 AliAODTrackCutsDiHadronPID.h:252
 AliAODTrackCutsDiHadronPID.h:253
 AliAODTrackCutsDiHadronPID.h:254
 AliAODTrackCutsDiHadronPID.h:255
 AliAODTrackCutsDiHadronPID.h:256
 AliAODTrackCutsDiHadronPID.h:257
 AliAODTrackCutsDiHadronPID.h:258
 AliAODTrackCutsDiHadronPID.h:259
 AliAODTrackCutsDiHadronPID.h:260
 AliAODTrackCutsDiHadronPID.h:261
 AliAODTrackCutsDiHadronPID.h:262
 AliAODTrackCutsDiHadronPID.h:263
 AliAODTrackCutsDiHadronPID.h:264
 AliAODTrackCutsDiHadronPID.h:265
 AliAODTrackCutsDiHadronPID.h:266
 AliAODTrackCutsDiHadronPID.h:267
 AliAODTrackCutsDiHadronPID.h:268
 AliAODTrackCutsDiHadronPID.h:269
 AliAODTrackCutsDiHadronPID.h:270
 AliAODTrackCutsDiHadronPID.h:271
 AliAODTrackCutsDiHadronPID.h:272
 AliAODTrackCutsDiHadronPID.h:273
 AliAODTrackCutsDiHadronPID.h:274
 AliAODTrackCutsDiHadronPID.h:275
 AliAODTrackCutsDiHadronPID.h:276
 AliAODTrackCutsDiHadronPID.h:277
 AliAODTrackCutsDiHadronPID.h:278
 AliAODTrackCutsDiHadronPID.h:279
 AliAODTrackCutsDiHadronPID.h:280
 AliAODTrackCutsDiHadronPID.h:281
 AliAODTrackCutsDiHadronPID.h:282
 AliAODTrackCutsDiHadronPID.h:283
 AliAODTrackCutsDiHadronPID.h:284
 AliAODTrackCutsDiHadronPID.h:285
 AliAODTrackCutsDiHadronPID.h:286
 AliAODTrackCutsDiHadronPID.h:287
 AliAODTrackCutsDiHadronPID.h:288
 AliAODTrackCutsDiHadronPID.h:289
 AliAODTrackCutsDiHadronPID.h:290
 AliAODTrackCutsDiHadronPID.h:291
 AliAODTrackCutsDiHadronPID.h:292
 AliAODTrackCutsDiHadronPID.h:293
 AliAODTrackCutsDiHadronPID.h:294
 AliAODTrackCutsDiHadronPID.h:295
 AliAODTrackCutsDiHadronPID.h:296
 AliAODTrackCutsDiHadronPID.h:297
 AliAODTrackCutsDiHadronPID.h:298
 AliAODTrackCutsDiHadronPID.h:299
 AliAODTrackCutsDiHadronPID.h:300
 AliAODTrackCutsDiHadronPID.h:301
 AliAODTrackCutsDiHadronPID.h:302
 AliAODTrackCutsDiHadronPID.h:303
 AliAODTrackCutsDiHadronPID.h:304
 AliAODTrackCutsDiHadronPID.h:305
 AliAODTrackCutsDiHadronPID.h:306
 AliAODTrackCutsDiHadronPID.h:307
 AliAODTrackCutsDiHadronPID.h:308
 AliAODTrackCutsDiHadronPID.h:309
 AliAODTrackCutsDiHadronPID.h:310
 AliAODTrackCutsDiHadronPID.h:311
 AliAODTrackCutsDiHadronPID.h:312
 AliAODTrackCutsDiHadronPID.h:313
 AliAODTrackCutsDiHadronPID.h:314
 AliAODTrackCutsDiHadronPID.h:315
 AliAODTrackCutsDiHadronPID.h:316