ROOT logo
/************************************************************************* 
* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. * 
*                                                                        * 
* Author: The ALICE Off-line Project.                                    * 
* Contributors are mentioned in the code where appropriate.              * 
*                                                                        * 
* Permission to use, copy, modify and distribute this software and its   * 
* documentation strictly for non-commercial purposes is hereby granted   * 
* without fee, provided that the above copyright notice appears in all   * 
* copies and that both the copyright notice and this permission notice   * 
* appear in the supporting documentation. The authors make no claims     * 
* about the suitability of this software for any purpose. It is          * 
* provided "as is" without express or implied warranty.                  * 
**************************************************************************/

// -----------------------------------------------------------------------
//  This analysis task fills histograms with PID information of tracks 
//  associated to a high p_T trigger.
// -----------------------------------------------------------------------
//  Author: Misha Veldhoen (misha.veldhoen@cern.ch)

#include <iostream>

// Basic Includes
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "THn.h"
#include "TFile.h"
#include "TChain.h"
#include "TObject.h"
#include "TObjArray.h"

// Manager/ Handler
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"

// Event pool includes.
#include "AliEventPoolManager.h"

// PID includes.
#include "AliPIDResponse.h"

// AOD includes.
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODHandler.h"
#include "AliAODVertex.h"
#include "AliAODInputHandler.h"
#include "AliAODMCParticle.h"
#include "AliAODMCHeader.h"

// Additional includes.
#include "AliTrackDiHadronPID.h"
#include "AliAODTrackCutsDiHadronPID.h"
#include "AliAODEventCutsDiHadronPID.h"
#include "AliHistToolsDiHadronPID.h"
#include "AliFunctionsDiHadronPID.h"

// AnalysisTask headers.
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisTaskDiHadronPID.h"

using namespace std;

ClassImp(AliAnalysisTaskDiHadronPID);

// -----------------------------------------------------------------------
AliAnalysisTaskDiHadronPID::AliAnalysisTaskDiHadronPID():
	AliAnalysisTaskSE(),
	fPIDResponse(0x0),
	fEventCuts(0x0),
	fTrackCutsTrigger(0x0),
	fTrackCutsAssociated(0x0),
	fPoolMgr(0x0),
	fTriggerTracks(0x0),
	fAssociatedTracks(0x0),
	fCurrentAODEvent(0x0),
	fOutputList(0x0),
	fPtSpectrumTOFbins(0x0),
	fCorrelationsTOFbins(0x0),
	fMixedEventsTOFbins(0x0),
	fPtSpectrumTOFTPCbins(0x0),
	fCorrelationsTOFTPCbins(0x0),
	fMixedEventsTOFTPCbins(0x0),
	fMixedEventsTOFTPCbinsPID(0x0),	
	fTOFhistos(0x0),
	fTOFmismatch(0x0),
	fTOFPtAxis(0x0),
	fTOFTPChistos(0x0),
	fTOFTPCmismatch(0x0),
	fTOFTPCPtAxis(0x0),
	fNDEtaBins(32),
	fNDPhiBins(32),	
	fMinNEventsForMixing(5),
	fPoolTrackDepth(2000),
	fPoolSize(1000),
	fMixEvents(kTRUE),
	fMixTriggers(kFALSE),
	fCalculateMismatch(kTRUE),
	fT0Fill(0x0),
	fLvsEta(0x0),
	fLvsEtaProjections(0x0),	
	fMakeTOFcorrelations(kTRUE),
	fMakeTOFTPCcorrelationsPi(kFALSE),
	fMakeTOFTPCcorrelationsKa(kFALSE),
	fMakeTOFTPCcorrelationsPr(kFALSE),	
	fTOFIntervalFactorTOFTPC(1.),
	fExtendPtAxis(kFALSE)

{

	//
	// Default Constructor.
	//

	if (fDebug > 0) {AliInfo("AliAnalysisTaskDiHadronPID Default Constructor.");}		

}

// -----------------------------------------------------------------------
AliAnalysisTaskDiHadronPID::AliAnalysisTaskDiHadronPID(const char* name):
	AliAnalysisTaskSE(name),
	fPIDResponse(0x0),
	fEventCuts(0x0),
	fTrackCutsTrigger(0x0),
	fTrackCutsAssociated(0x0),
	fPoolMgr(0x0),
	fTriggerTracks(0x0),
	fAssociatedTracks(0x0),	
	fCurrentAODEvent(0x0),
	fOutputList(0x0),
	fPtSpectrumTOFbins(0x0),
	fCorrelationsTOFbins(0x0),
	fMixedEventsTOFbins(0x0),
	fPtSpectrumTOFTPCbins(0x0),
	fCorrelationsTOFTPCbins(0x0),
	fMixedEventsTOFTPCbins(0x0),
	fMixedEventsTOFTPCbinsPID(0x0),			
	fTOFhistos(0x0),
	fTOFmismatch(0x0),
	fTOFPtAxis(0x0),
	fTOFTPChistos(0x0),
	fTOFTPCmismatch(0x0),
	fTOFTPCPtAxis(0x0),	
	fNDEtaBins(32),
	fNDPhiBins(32),
	fMinNEventsForMixing(5),
	fPoolTrackDepth(2000),
	fPoolSize(1000),
	fMixEvents(kTRUE),	
	fMixTriggers(kFALSE),
	fCalculateMismatch(kTRUE),
	fT0Fill(0x0),
	fLvsEta(0x0),
	fLvsEtaProjections(0x0),
	fMakeTOFcorrelations(kTRUE),
	fMakeTOFTPCcorrelationsPi(kFALSE),
	fMakeTOFTPCcorrelationsKa(kFALSE),
	fMakeTOFTPCcorrelationsPr(kFALSE),	
	fTOFIntervalFactorTOFTPC(1.),
	fExtendPtAxis(kFALSE)

{

	//
	// Named Constructor.
	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	DefineInput(0,TChain::Class());
	DefineOutput(1,TList::Class());

}

// -----------------------------------------------------------------------
AliAnalysisTaskDiHadronPID::~AliAnalysisTaskDiHadronPID() {

	//
	// Destructor.
	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	if (fPoolMgr) {delete fPoolMgr; fPoolMgr = 0x0;}
	if (fOutputList) {delete fOutputList; fOutputList = 0x0;}

}

// -----------------------------------------------------------------------
void AliAnalysisTaskDiHadronPID::UserCreateOutputObjects() {

	//
	// Create Output objects.
	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	AliAnalysisManager* manager = AliAnalysisManager::GetAnalysisManager();
	if (!manager) {AliFatal("Could not obtain analysis manager.");}	
	AliInputEventHandler* inputHandler = dynamic_cast<AliInputEventHandler*> (manager->GetInputEventHandler());
	if (!inputHandler) {AliFatal("Could not obtain input handler.");}	

	// Getting the pointer to the PID response object.
	fPIDResponse = inputHandler->GetPIDResponse();	
	if (!fPIDResponse) {AliFatal("Could not obtain PID response.");}

	// For now we don't bin in multiplicity for pp.
	TArrayD* centralityBins = 0x0;
	if (fEventCuts->GetIsPbPb()) {
		Double_t tmp[] = {0., 1., 2., 3., 4., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.1 };
		centralityBins = new TArrayD(15, tmp);
	} else {
		Double_t tmp[] = {0.,1.};
		centralityBins = new TArrayD(2, tmp);
	}

	Int_t nZvtxBins  = 7;
	Double_t vertexBins[] = {-7., -5., -3., -1., 1., 3., 5., 7.};

	fPoolMgr = new AliEventPoolManager(fPoolSize, fPoolTrackDepth, centralityBins->GetSize(), centralityBins->GetArray(), nZvtxBins, (Double_t*) vertexBins);
    
	delete centralityBins;

	// Create the output list.
	fOutputList = new TList();
	fOutputList->SetOwner(kTRUE);

	// Creating all requested histograms locally.
	fEventCuts->CreateHistos();
	fOutputList->Add(fEventCuts);

	fTrackCutsTrigger->CreateHistos();
	fOutputList->Add(fTrackCutsTrigger);

	fTrackCutsAssociated->CreateHistos();
	fOutputList->Add(fTrackCutsAssociated);

	TString speciesname[] = {"Pion","Kaon","Proton"};

	// Create TOF correlations histograms (DPhi,DEta,TOF).
	if (fMakeTOFcorrelations) {

		// Get the pT axis for the TOF PID correlations.
		Double_t* ptaxis = fTrackCutsAssociated->GetPtAxisPID();
		Int_t nptbins = fTrackCutsAssociated->GetNPtBinsPID();

		// Create Pt spectrum histogram.
		fPtSpectrumTOFbins = new TH1F("fPtSpectrumTOFbins","p_{T} Spectrum;p_{T} (GeV/c);Count",nptbins,ptaxis);
		fOutputList->Add(fPtSpectrumTOFbins);

		// Create unidentified correlations histogram.
		fCorrelationsTOFbins = AliHistToolsDiHadronPID::MakeHist3D("fCorrelationsTOFbins","Correlations;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
			fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
			fNDEtaBins,-1.6,1.6,
			nptbins, ptaxis);
		fOutputList->Add(fCorrelationsTOFbins);

		// Create unidentified mixed events histogram.
		fMixedEventsTOFbins = AliHistToolsDiHadronPID::MakeHist3D("fMixedEventsTOFbins","Mixed Events;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
			fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
			fNDEtaBins,-1.6,1.6,
			nptbins, ptaxis);
		fOutputList->Add(fMixedEventsTOFbins);

		// Create TOFPtaxis.
		fTOFPtAxis = new TAxis(nptbins, ptaxis);
		fTOFPtAxis->SetName("fTOFPtAxis");
		fTOFPtAxis->SetTitle("p_{T} GeV/c");

		// Create PID histograms.
		fTOFhistos = new TObjArray(3);
		fTOFhistos->SetOwner(kTRUE);	
		fTOFhistos->SetName("CorrelationsTOF");

		if (fCalculateMismatch) {
			fTOFmismatch = new TObjArray(3);
			fTOFmismatch->SetOwner(kTRUE);
			fTOFmismatch->SetName("MismatchTOF");
		}

		for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

			TObjArray* TOFhistosTmp = new TObjArray(fTOFPtAxis->GetNbins());
			TOFhistosTmp->SetOwner(kTRUE);
			TOFhistosTmp->SetName(speciesname[iSpecies].Data());

			TObjArray* TOFmismatchTmp = 0x0;
			if (fCalculateMismatch) {
				TOFmismatchTmp = new TObjArray(fTOFPtAxis->GetNbins());
				TOFmismatchTmp->SetOwner(kTRUE);
				TOFmismatchTmp->SetName(speciesname[iSpecies].Data());
			}

			for (Int_t iBinPt = 1; iBinPt < (fTOFPtAxis->GetNbins() + 1); iBinPt++) {

				Int_t iPtClass = fTrackCutsAssociated->GetPtClass(iBinPt);
				if (iPtClass == -1) {AliFatal("Not valid pT class."); continue;}

				Int_t NBinsTOF = fTrackCutsAssociated->GetNTOFbins(iPtClass,iSpecies);
				Double_t TOFmin = fTrackCutsAssociated->GetTOFmin(iPtClass,iSpecies);
				Double_t TOFmax = fTrackCutsAssociated->GetTOFmax(iPtClass,iSpecies);

				//cout << "ptbin: "<< iBinPt << " class: " << iPtClass << " TOFBins: " << NBinsTOF << " min: " << TOFmin << " max: " << TOFmax << endl; 

				// Correlation histogram.
				TH3F* htmp = new TH3F(Form("fCorrelationsTOF_%i",iBinPt),
					Form("%5.3f < p_{T} < %5.3f; #Delta#phi; #Delta#eta; t_{TOF} (ps)", fTOFPtAxis->GetBinLowEdge(iBinPt), fTOFPtAxis->GetBinUpEdge(iBinPt)), 
					fNDPhiBins, -TMath::Pi()/2., 3.*TMath::Pi()/2.,
					fNDEtaBins, -1.6, 1.6, NBinsTOF, TOFmin, TOFmax);
				htmp->SetDirectory(0);

				TOFhistosTmp->Add(htmp);

				if (fCalculateMismatch) {
					// Mismatch histogram.
					TH1F* htmp2 = new TH1F(Form("fMismatchTOF_%i",iBinPt),
						Form("%5.3f < p_{T} < %5.3f; t_{TOF} (ps)", fTOFPtAxis->GetBinLowEdge(iBinPt), fTOFPtAxis->GetBinUpEdge(iBinPt)),
						NBinsTOF, TOFmin, TOFmax);
					htmp2->SetDirectory(0);

					TOFmismatchTmp->Add(htmp2);	
				}	
			}

			fTOFhistos->Add(TOFhistosTmp);
			if (fCalculateMismatch) {fTOFmismatch->Add(TOFmismatchTmp);}

		}

		fOutputList->Add(fTOFhistos);
		if (fCalculateMismatch) {fOutputList->Add(fTOFmismatch);}

	}

	// Create TOF/TPC correlation histograms. (DPhi,DEta,TOF,TPC).
	if (fMakeTOFTPCcorrelationsPi || fMakeTOFTPCcorrelationsKa || fMakeTOFTPCcorrelationsPr) {

		Double_t ptarrayTOFTPC[16] = {2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 
									  2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 
									  4.2, 4.6, 5.0};
	  	const Int_t nptbins = 15;
		Double_t ptarrayTOFTPCext[26] = {1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 
									  2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 
									  2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 
									  4.2, 4.6, 5.0};
		const Int_t nptbinsext = 25;

		fTOFTPCPtAxis = new TAxis(fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
		fTOFTPCPtAxis->SetName("fTOFTPCPtAxis");
		fTOFTPCPtAxis->SetTitle("p_{T} GeV/c");

		// Create Pt spectrum histogram.
		fPtSpectrumTOFTPCbins = new TH1F("fPtSpectrumTOFTPCbins","p_{T} Spectrum;p_{T} (GeV/c);Count",nptbins,ptarrayTOFTPC);
		fOutputList->Add(fPtSpectrumTOFTPCbins);

		// Create unidentified correlations histogram.
		fCorrelationsTOFTPCbins = AliHistToolsDiHadronPID::MakeHist3D("fCorrelationsTOFTPCbins","Correlations;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
			fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
			fNDEtaBins,-1.6,1.6,fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
		fOutputList->Add(fCorrelationsTOFTPCbins);

		// Create unidentified mixed events histogram.
		fMixedEventsTOFTPCbins = AliHistToolsDiHadronPID::MakeHist3D("fMixedEventsTOFTPCbins","Mixed Events;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
			fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
			fNDEtaBins,-1.6,1.6,fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
		fOutputList->Add(fMixedEventsTOFTPCbins);

		fTOFTPChistos = new TObjArray(3);
		fTOFTPChistos->SetOwner(kTRUE);
		fTOFTPChistos->SetName("CorrelationsTOFTPC");

		if (fCalculateMismatch) {
			fTOFTPCmismatch = new TObjArray(3);
			fTOFTPCmismatch->SetOwner(kTRUE);
			fTOFTPCmismatch->SetName("MismatchTOFTPC");
		}

		fMixedEventsTOFTPCbinsPID = new TObjArray(3);
		fMixedEventsTOFTPCbinsPID->SetOwner(kTRUE);
		fMixedEventsTOFTPCbinsPID->SetName("MixedEventsTOFTPC");

		for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

			// Create Mixed events with PID.
			TH3F* mixedeventsPID = AliHistToolsDiHadronPID::MakeHist3D(Form("fMixedEventsTOFTPC%s", speciesname[iSpecies].Data()),
			Form("Mixed Events %s;#Delta#phi;#Delta#eta;p_{T} (GeV/c)", speciesname[iSpecies].Data()),
			fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
			fNDEtaBins,-1.6,1.6,fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
			fMixedEventsTOFTPCbinsPID->Add(mixedeventsPID);
		
			// Create the directory structure Pion, Kaon, Proton, regardless
			// of wether the histograms are created (to keep the order.)
			TObjArray* TOFTPChistosTmp = new TObjArray(fTOFTPCPtAxis->GetNbins());
			TOFTPChistosTmp->SetOwner(kTRUE);
			TOFTPChistosTmp->SetName(speciesname[iSpecies].Data());

			TObjArray* TOFTPCmismatchTmp = 0x0;
			if (fCalculateMismatch) { 
				TOFTPCmismatchTmp = new TObjArray(fTOFTPCPtAxis->GetNbins());
				TOFTPCmismatchTmp->SetOwner(kTRUE);
				TOFTPCmismatchTmp->SetName(speciesname[iSpecies].Data());	
			}

			// Only Create the TOF/TPC histograms when requested.
			Bool_t MakeTOFTPCcorrelations[3] = {fMakeTOFTPCcorrelationsPi, fMakeTOFTPCcorrelationsKa, fMakeTOFTPCcorrelationsPr};
			if (MakeTOFTPCcorrelations[iSpecies]) {
				for (Int_t iBinPt = 1; iBinPt < (fTOFTPCPtAxis->GetNbins() + 1); iBinPt++) {
			
					// Approximate resolutions of TOF and TPC detector.
					const Double_t sTOFest = 110.;
					const Double_t sTPCest = 4.5;
					
					// Set range +/- 5 sigma of main peak. (+ 10 sigma for TOF max, for mismatches.)
					Double_t TOFmin = -5. * sTOFest;
					Double_t TOFmax = 10. * sTOFest;
					Double_t TPCmin = -4. * sTPCest;
					Double_t TPCmax = 4. * sTPCest;

					Double_t TOFexp = AliFunctionsDiHadronPID::TOFExpTime(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4,  AliFunctionsDiHadronPID::M(iSpecies));
					Double_t TPCexp = AliFunctionsDiHadronPID::TPCExpdEdX(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4,  AliFunctionsDiHadronPID::M(iSpecies));

					for (Int_t jSpecies = 0; jSpecies < 3; jSpecies++) {

						if (iSpecies == jSpecies) {continue;}

						Double_t TOFexpOther = AliFunctionsDiHadronPID::TOFExpTime(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4,  AliFunctionsDiHadronPID::M(jSpecies));
						Double_t TPCexpOther = AliFunctionsDiHadronPID::TPCExpdEdX(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4,  AliFunctionsDiHadronPID::M(jSpecies));
					
						// If any peak is within +/- 7 sigma, then also add this peak.
						if ( (TMath::Abs(TOFexp - TOFexpOther) < 7. * sTOFest) ||
							 (TMath::Abs(TPCexp - TPCexpOther) < 7. * sTPCest) ) {

							TOFmin = TMath::Min(TOFmin, (TOFexpOther - TOFexp - 2. * sTOFest) );
							TOFmax = TMath::Max(TOFmax, (TOFexpOther - TOFexp + 10. * sTOFest) );
							TPCmin = TMath::Min(TPCmin, (TPCexpOther - TPCexp - 2. * sTPCest) );
							TPCmax = TMath::Max(TPCmax, (TPCexpOther - TPCexp + 2. * sTPCest) );						

						}

					}

					// With the standard TOF range, fitting the deuterons and the TOF mismatches is
					// hard. This flag doubles the range of the TOF axis in the TOF/TPC histograms,
					// while leaving the resolution the same. Turning on this flag will greatly increase
					// the memory consumption of the task, to the point that it's probably too much 
					// to save a Buffer with all three species included.
					Double_t TOFreach = TOFmax - TOFmin;
					TOFmax += (TOFreach * (fTOFIntervalFactorTOFTPC - 1.));
					Int_t TOFbins = (Int_t)(60. * fTOFIntervalFactorTOFTPC);

					Int_t NBinsTOFTPC[4] = {32, 32, TOFbins, 40};
					Double_t minTOFTPC[4] = {-TMath::Pi()/2., -1.6, TOFmin, TPCmin};
					Double_t maxTOFTPC[4] = {3.*TMath::Pi()/2., 1.6, TOFmax, TPCmax};

					THnF* htmp = new THnF(Form("fCorrelationsTOFTPC_%i",iBinPt),
						Form("%5.3f < p_{T} < %5.3f", fTOFTPCPtAxis->GetBinLowEdge(iBinPt), fTOFTPCPtAxis->GetBinUpEdge(iBinPt)), 
						4, NBinsTOFTPC, minTOFTPC, maxTOFTPC);

					(htmp->GetAxis(0))->SetTitle("#Delta#phi");
					(htmp->GetAxis(1))->SetTitle("#Delta#eta");
					(htmp->GetAxis(2))->SetTitle("t_{TOF} (ps)");
					(htmp->GetAxis(3))->SetTitle("dE/dx (a.u.)");

					TOFTPChistosTmp->Add(htmp);

					if (fCalculateMismatch) { 
						// Mismatch histogram.
						TH2F* htmp2 = new TH2F(Form("fMismatchTOFTPC_%i",iBinPt),
							Form("%5.3f < p_{T} < %5.3f; t_{TOF} (ps); dE/dx (a.u.)", fTOFTPCPtAxis->GetBinLowEdge(iBinPt), fTOFTPCPtAxis->GetBinUpEdge(iBinPt)), 
							NBinsTOFTPC[2], TOFmin, TOFmax, NBinsTOFTPC[3], TPCmin, TPCmax);
						htmp2->SetDirectory(0);

						TOFTPCmismatchTmp->Add(htmp2);
		
					}
				} // End loop over pT bins.
			} // End species if.

			fTOFTPChistos->Add(TOFTPChistosTmp);
			if (fCalculateMismatch) {fTOFTPCmismatch->Add(TOFTPCmismatchTmp);}

		}

		fOutputList->Add(fTOFTPChistos);
		if (fCalculateMismatch) {fOutputList->Add(fTOFTPCmismatch);}
		fOutputList->Add(fMixedEventsTOFTPCbinsPID);

	}

	// Load external TOF histograms if flag is set.
	if (fCalculateMismatch) {LoadExtMismatchHistos();}

	PostData(1,fOutputList);

}

// -----------------------------------------------------------------------
void AliAnalysisTaskDiHadronPID::LocalInit() {

	//
	// Initialize on the this computer. 
	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

}

// -----------------------------------------------------------------------
void AliAnalysisTaskDiHadronPID::UserExec(Option_t*) {

	//
	// Main Loop.
	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Input Current Event.
	fCurrentAODEvent = dynamic_cast<AliAODEvent*>(InputEvent());
	if (!fCurrentAODEvent) AliFatal("No Event Found!");

	if (!fEventCuts->IsSelected(fCurrentAODEvent)) {return;}

	// Fill the global tracks array. - NOT NEEDED I THINK, since we're not using
	// bit 1<<7 for the associated tracks!

	// Let the track cut objects know that a new event will start.
	fTrackCutsTrigger->StartNewEvent();
	fTrackCutsAssociated->StartNewEvent();

	// Create arrays for trigger/associated particles.
	fTriggerTracks = new TObjArray(350);
	fTriggerTracks->SetOwner(kTRUE);

	fAssociatedTracks = new TObjArray(3500);
	fAssociatedTracks->SetOwner(kTRUE);

	for (Int_t iTrack = 0; iTrack < fCurrentAODEvent->GetNumberOfTracks(); iTrack++) {

		AliAODTrack* track = (AliAODTrack*)fCurrentAODEvent->GetTrack(iTrack);
		AliTrackDiHadronPID* pidtrack = new AliTrackDiHadronPID(track,0x0,0x0,fPIDResponse);
		pidtrack->ForgetAboutPointers();
		pidtrack->SetDebugLevel(fDebug);

		Double_t rndhittime = -1.e21;
		if (fCalculateMismatch) rndhittime = GenerateRandomHit(pidtrack->Eta());

		// Fill the trigger/associated tracks array.
		if (fTrackCutsTrigger->IsSelectedData(pidtrack,rndhittime)) {fTriggerTracks->AddLast(pidtrack);}
		else if (fTrackCutsAssociated->IsSelectedData(pidtrack,rndhittime)) {
			
			fAssociatedTracks->AddLast(pidtrack);

			// Fill p_T spectrum.
			if (fPtSpectrumTOFbins) fPtSpectrumTOFbins->Fill(pidtrack->Pt());
			if (fPtSpectrumTOFTPCbins) fPtSpectrumTOFTPCbins->Fill(pidtrack->Pt());

			// Fill mismatch histograms with associateds.
			if (fCalculateMismatch && (rndhittime > -1.e20)) {

				Double_t apt = pidtrack->Pt();

				if (fMakeTOFcorrelations) {

					for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

						TObjArray* atmp = (TObjArray*)fTOFmismatch->At(iSpecies);
						Int_t ptbin = fTOFPtAxis->FindBin(apt);

						// Only fill if histogram exists in fTOFmismatch.
						if ( !(ptbin < 1) && !(ptbin > fTOFPtAxis->GetNbins()) ) {

							TH1F* htmp = (TH1F*)atmp->At(ptbin - 1);
							htmp->Fill(rndhittime - pidtrack->GetTOFsignalExpected(iSpecies));

						}
					}
				}

				Bool_t MakeTOFTPCcorrelations[3] = {fMakeTOFTPCcorrelationsPi, fMakeTOFTPCcorrelationsKa, fMakeTOFTPCcorrelationsPr};
				if (fMakeTOFTPCcorrelationsPi || fMakeTOFTPCcorrelationsKa || fMakeTOFTPCcorrelationsPr) { 

					for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

						if (!MakeTOFTPCcorrelations[iSpecies]) {continue;}

						TObjArray* atmp = (TObjArray*)fTOFTPCmismatch->At(iSpecies);
						Int_t ptbin = fTOFTPCPtAxis->FindBin(apt);

						// Only fill if histogram exists in fTOFTPCmismatch.
						if ( !(ptbin < 1) && !(ptbin > fTOFTPCPtAxis->GetNbins()) ) {

							TH2F* htmp = (TH2F*)atmp->At(ptbin - 1);
							htmp->Fill(rndhittime - pidtrack->GetTOFsignalExpected(iSpecies), pidtrack->GetTPCsignalMinusExpected(iSpecies));

						}
					}
				}

			}

		} 
		else {delete pidtrack;}

	}

	// Fill Correlation histograms.
	for (Int_t iTrigger = 0; iTrigger < fTriggerTracks->GetEntriesFast(); iTrigger++) {
		AliTrackDiHadronPID* triggertrack = (AliTrackDiHadronPID*)fTriggerTracks->At(iTrigger);

		for (Int_t iAssociated = 0; iAssociated < fAssociatedTracks->GetEntriesFast(); iAssociated++) {
			AliTrackDiHadronPID* associatedtrack = (AliTrackDiHadronPID*)fAssociatedTracks->At(iAssociated);

			Double_t DPhi = triggertrack->Phi() - associatedtrack->Phi();
			if (DPhi < -TMath::Pi()/2.) {DPhi += 2.*TMath::Pi();}
			if (DPhi > 3.*TMath::Pi()/2.) {DPhi -= 2.*TMath::Pi();}

			Double_t DEta = triggertrack->Eta() - associatedtrack->Eta();
			if (fCorrelationsTOFbins) fCorrelationsTOFbins->Fill(DPhi,DEta,associatedtrack->Pt());
			if (fCorrelationsTOFTPCbins) fCorrelationsTOFTPCbins->Fill(DPhi,DEta,associatedtrack->Pt());

			Double_t apt = associatedtrack->Pt();

			// Fill TOF correlations.
			if (fMakeTOFcorrelations) {
				
				for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

					TObjArray* atmp = (TObjArray*)fTOFhistos->At(iSpecies);
					Int_t ptbin = fTOFPtAxis->FindBin(apt);

					// Only fill if histogram exists in fTOFhistos.
					if ( !(ptbin < 1) && !(ptbin > fTOFPtAxis->GetNbins()) ) {

						TH3F* htmp = (TH3F*)atmp->At(ptbin - 1);
						htmp->Fill(DPhi, DEta, associatedtrack->GetTOFsignalMinusExpected(iSpecies));

					}
				}
			}

			// Fill TOF/ TPC Correlations.
			Bool_t MakeTOFTPCcorrelations[3] = {fMakeTOFTPCcorrelationsPi, fMakeTOFTPCcorrelationsKa, fMakeTOFTPCcorrelationsPr};
			if (fMakeTOFTPCcorrelationsPi || fMakeTOFTPCcorrelationsKa || fMakeTOFTPCcorrelationsPr) { 

				for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

					if (!MakeTOFTPCcorrelations[iSpecies]) {continue;}

					TObjArray* atmp = (TObjArray*)fTOFTPChistos->At(iSpecies);
					Int_t ptbin = fTOFTPCPtAxis->FindBin(apt);

					// Only fill if histogram exists in fTOFhistos.
					if ( !(ptbin < 1) && !(ptbin > fTOFTPCPtAxis->GetNbins()) ) {

						THnF* htmp = (THnF*)atmp->At(ptbin - 1);
						Double_t TOFTPCfill[4] = {DPhi, DEta, 
							associatedtrack->GetTOFsignalMinusExpected(iSpecies), associatedtrack->GetTPCsignalMinusExpected(iSpecies)}; 

						htmp->Fill(TOFTPCfill);

					}				
				}	
			}		
		}
	}

	//cout<<"Triggers: "<<fTriggerTracks->GetEntriesFast()<<" Associateds: "<<fAssociatedTracks->GetEntriesFast()<<endl;	

	// Determine vtxz of current event.
	AliAODVertex* currentprimaryvertex = fCurrentAODEvent->GetPrimaryVertex();
	Double_t vtxz = currentprimaryvertex->GetZ();

	// Determine centrality of current event (for PbPb).
	AliEventPool* poolin = 0x0;
	Float_t percentile = -1.;
	if (fEventCuts->GetIsPbPb()) {
		TString centralityestimator = fEventCuts->GetCentralityEstimator();
		AliCentrality* currentcentrality = fCurrentAODEvent->GetCentrality();
		percentile = currentcentrality->GetCentralityPercentile(centralityestimator.Data());

		poolin = fPoolMgr->GetEventPool(percentile, vtxz); 
		if (!poolin) {AliFatal(Form("No pool found for centrality = %f, vtxz = %f", percentile, vtxz));}
	} else {
		poolin = fPoolMgr->GetEventPool(0.5, vtxz);	// There are no multiplicity bins for pp yet.  
		if (!poolin) {AliFatal(Form("No pool found for vtxz = %f", vtxz));}
	}

	// TObjArray* fGlobalTracksArray; 

	// Give a print out of the pool manager's contents.
	if (fDebug > 0) PrintPoolManagerContents();

	// Mix events if there are enough events in the pool.
	if (poolin->GetCurrentNEvents() >= fMinNEventsForMixing) {
		//{cout << "Mixing Events." << endl;}

		// Loop over all events in the event pool.
		for (Int_t iMixEvent = 0; iMixEvent < poolin->GetCurrentNEvents(); iMixEvent++) {
	    	TObjArray* mixtracks = poolin->GetEvent(iMixEvent);

	    	// Mix either the triggers or the associateds.
	    	if (fMixTriggers) {

				// Loop over all associateds in this event.
				for (Int_t iAssociated = 0; iAssociated < fAssociatedTracks->GetEntriesFast(); iAssociated++) {
					AliTrackDiHadronPID* associatedtrack = (AliTrackDiHadronPID*)fAssociatedTracks->At(iAssociated);

		    		// Loop over all mixed tracks.
		    		for (Int_t iMixTrack = 0; iMixTrack < mixtracks->GetEntriesFast(); iMixTrack++) {
		    			AliTrackDiHadronPID* mixtrack = (AliTrackDiHadronPID*)mixtracks->At(iMixTrack);
							
						Double_t DPhi = mixtrack->Phi() - associatedtrack->Phi();
						if (DPhi < -TMath::Pi()/2.) {DPhi += 2.*TMath::Pi();}
						if (DPhi > 3.*TMath::Pi()/2.) {DPhi -= 2.*TMath::Pi();}

						Double_t DEta = mixtrack->Eta() - associatedtrack->Eta();
						if (fMixedEventsTOFbins) fMixedEventsTOFbins->Fill(DPhi,DEta,associatedtrack->Pt());
						if (fMixedEventsTOFTPCbins) fMixedEventsTOFTPCbins->Fill(DPhi,DEta,associatedtrack->Pt());

						// Fill the mixed event histograms with a 1 sigma PID cut.
						if (fMixedEventsTOFTPCbinsPID) {

							for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

								TH3F* mixedeventhist = (TH3F*)fMixedEventsTOFTPCbinsPID->At(iSpecies);

								// Check the nSigma of the associated tracks.
								Double_t nSigmaTOFTPC = TMath::Sqrt( 
								associatedtrack->GetNumberOfSigmasTOF(iSpecies) * associatedtrack->GetNumberOfSigmasTOF(iSpecies) +
								associatedtrack->GetNumberOfSigmasTPC(iSpecies) * associatedtrack->GetNumberOfSigmasTPC(iSpecies));

								if (nSigmaTOFTPC < 1.) {mixedeventhist->Fill(DPhi,DEta,associatedtrack->Pt());}

							}
						}

		    		}
		   		}

		   	} else {

				// Loop over all triggers in this event.
				for (Int_t iTrigger = 0; iTrigger < fTriggerTracks->GetEntriesFast(); iTrigger++) {
					AliTrackDiHadronPID* triggertrack = (AliTrackDiHadronPID*)fTriggerTracks->At(iTrigger);

		    		// Loop over all mixed tracks.
		    		for (Int_t iMixTrack = 0; iMixTrack < mixtracks->GetEntriesFast(); iMixTrack++) {
		    			AliTrackDiHadronPID* mixtrack = (AliTrackDiHadronPID*)mixtracks->At(iMixTrack);
							
						Double_t DPhi = triggertrack->Phi() - mixtrack->Phi();
						if (DPhi < -TMath::Pi()/2.) {DPhi += 2.*TMath::Pi();}
						if (DPhi > 3.*TMath::Pi()/2.) {DPhi -= 2.*TMath::Pi();}

						Double_t DEta = triggertrack->Eta() - mixtrack->Eta();
						if (fMixedEventsTOFbins) fMixedEventsTOFbins->Fill(DPhi,DEta,mixtrack->Pt());
						if (fMixedEventsTOFTPCbins) fMixedEventsTOFTPCbins->Fill(DPhi,DEta,mixtrack->Pt());
		    		
						// Fill the mixed event histograms with a 1 sigma PID cut.
						if (fMixedEventsTOFTPCbinsPID) {

							for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

								TH3F* mixedeventhist = (TH3F*)fMixedEventsTOFTPCbinsPID->At(iSpecies);

								// Check the nSigma of the associated tracks.
								Double_t nSigmaTOFTPC = TMath::Sqrt( 
								mixtrack->GetNumberOfSigmasTOF(iSpecies) * mixtrack->GetNumberOfSigmasTOF(iSpecies) +
								mixtrack->GetNumberOfSigmasTPC(iSpecies) * mixtrack->GetNumberOfSigmasTPC(iSpecies));

								if (nSigmaTOFTPC < 1.) {mixedeventhist->Fill(DPhi,DEta,mixtrack->Pt());}

							}
						}

		    		}
		   		}

		   	} // End if  	
	   	}
	}	

	// Update the event pool.
	AliEventPool* poolout = 0x0;
	if (fEventCuts->GetIsPbPb()) {
		poolout = fPoolMgr->GetEventPool(percentile, vtxz); // Get the buffer associated with the current centrality and z-vtx
		if (!poolout) AliFatal(Form("No pool found for centrality = %f, vtx_z = %f", percentile, vtxz));
	} else {
		poolout = fPoolMgr->GetEventPool(0.5, vtxz); // Get the buffer associated with the current centrality and z-vtx
		if (!poolout) AliFatal(Form("No pool found for vtx_z = %f", vtxz));
	}


	// Q: is it a problem that the fAssociatedTracks array can be bigger than the number of tracks inside?
	if (fMixTriggers) {
		poolout->UpdatePool(fTriggerTracks);
		fAssociatedTracks->Delete();
		delete fAssociatedTracks;
	}
	else {
		poolout->UpdatePool(fAssociatedTracks);
		fTriggerTracks->Delete();
		delete fTriggerTracks;
	}

	fTriggerTracks = 0x0;
	fAssociatedTracks = 0x0;

	// Tell the track cut object that the event is done.
	fTrackCutsTrigger->EventIsDone(0);
	fTrackCutsAssociated->EventIsDone(0);

	PostData(1,fOutputList);

}

// -----------------------------------------------------------------------
void AliAnalysisTaskDiHadronPID::SelectCollisionCandidates(UInt_t offlineTriggerMask) {

	// Overrides the method defined in AliAnalysisTaskSE. This is needed because
	// the event selection is not done in the task, but in the AliAODEventCutsDiHadronPID class.

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
	if (!fEventCuts) {cout << Form("%s -> ERROR: No AliAODEventCutsDiHadronPID class created for the analysis...",__func__) << endl; return;}

	//fOfflineTriggerMask = offlineTriggerMask;
	fEventCuts->SetTrigger(offlineTriggerMask);

}

// -----------------------------------------------------------------------
void AliAnalysisTaskDiHadronPID::SetDebugLevel(Int_t level) {

	// Also propagates this setting to the track and event cuts.
	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	fDebug = level;

	if (fEventCuts) {fEventCuts->SetDebugLevel(level);}
	if (fTrackCutsTrigger) {fTrackCutsTrigger->SetDebugLevel(level);}
	if (fTrackCutsAssociated) {fTrackCutsAssociated->SetDebugLevel(level);}

} 

// -----------------------------------------------------------------------
Bool_t AliAnalysisTaskDiHadronPID::LoadExtMismatchHistos() {

	//
	// Attempting to load a root file containing information needed
	// to generate random TOF hits.
 	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Opening external TOF file.
	if (fDebug > 0) cout<<"Trying to open TOFmismatchHistos.root ..."<<endl;
	TFile* fin = 0x0;
	fin = TFile::Open("alien:///alice/cern.ch/user/m/mveldhoe/rootfiles/TOFmismatchHistos.root");
	if (!fin) {
		AliWarning("Couln't open TOFmismatchHistos, will not calculate mismatches...");
		fCalculateMismatch = kFALSE;
		return kFALSE;
	}

	// Check if the required histograms are present.
	TH1F* tmp1 = (TH1F*)fin->Get("hNewT0Fill");
	if (!tmp1) {
		AliWarning("Couln't find hNewT0Fill, will not calculate mismatches...");
		fCalculateMismatch = kFALSE;
		return kFALSE;	
	}
	TH2F* tmp2 = (TH2F*)fin->Get("hLvsEta");
	if (!tmp2) {
		AliWarning("Couln't find hLvsEta, will not calculate mismatches...");
		fCalculateMismatch = kFALSE;
		return kFALSE;	
	}	

	// Make a deep copy of the files in the histogram.
	fT0Fill = (TH1F*)tmp1->Clone("fT0Fill");
	fLvsEta = (TH2F*)tmp2->Clone("fLvsEta");

	// Close the external file.
	AliInfo("Closing external file.");
	fin->Close();

	// Creating a TObjArray for LvsEta projections.
	const Int_t nbinseta = fLvsEta->GetNbinsX();
	fLvsEtaProjections = new TObjArray(nbinseta);
	fLvsEtaProjections->SetOwner(kTRUE);

	// Making the projections needed (excluding underflow/ overflow).
	for (Int_t iEtaBin = 1; iEtaBin < (nbinseta + 1); iEtaBin++) {
		TH1F* tmp = (TH1F*)fLvsEta->ProjectionY(Form("LvsEtaProjection_%i",iEtaBin),iEtaBin,iEtaBin);
		tmp->SetDirectory(0);
		fLvsEtaProjections->AddAt(tmp,iEtaBin - 1);
	}

	return kTRUE;

}

// -----------------------------------------------------------------------
Double_t AliAnalysisTaskDiHadronPID::GenerateRandomHit(Double_t eta) {

	//
	// Returns a random TOF time.
	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Default (error) value:
	Double_t rndhittime = -1.e21;

	// TOF mismatch flag is not turned on.
	if (!fCalculateMismatch) {
		AliFatal("Called GenerateRandomHit() method, but flag fCalculateMismatch not set.");
		return rndhittime;
	}

	// TOF doesn't extend much further than 0.8.
	if (TMath::Abs(eta) > 0.8) {
		if (fDebug) {AliInfo("Tried to get a random hit for a track with eta > 0.8.");}
		return rndhittime;
	}

	// Finding the bin of the eta.
	TAxis* etaAxis = fLvsEta->GetXaxis();
	Int_t etaBin = etaAxis->FindBin(eta);
	if (etaBin == 0 || (etaBin == etaAxis->GetNbins() + 1)) {return rndhittime;}

	const TH1F* lengthDistribution = (const TH1F*)fLvsEtaProjections->At(etaBin - 1);

	if (!lengthDistribution) {
		AliFatal("length Distribution not found.");
		return rndhittime;
	}

	Double_t currentRndLength = lengthDistribution->GetRandom(); // in cm.

	// Similar to Roberto's code.
	Double_t currentRndTime = currentRndLength / (TMath::C() * 1.e2 / 1.e12);
	Double_t t0fill = -1.26416e+04;
	rndhittime = fT0Fill->GetRandom() - t0fill + currentRndTime;

	return rndhittime;

}

// -----------------------------------------------------------------------
void AliAnalysisTaskDiHadronPID::PrintPoolManagerContents() {

	//
	// Prints out the current contents of the event pool manager.
	//

	// Determine the number of pools in the pool manager.
	AliEventPool* poolin = fPoolMgr->GetEventPool(0,0);
	Int_t NPoolsCentrality = 0;
	while (poolin) {
		NPoolsCentrality++;
		poolin = fPoolMgr->GetEventPool(NPoolsCentrality,0);
	} 

	poolin = fPoolMgr->GetEventPool(0,0);
	Int_t NPoolsVtxZ = 0;	
	while (poolin) {
		NPoolsVtxZ++;
		poolin = fPoolMgr->GetEventPool(0,NPoolsVtxZ);
	} 

	// Loop over all Pools in the matrix of the pool manager.
	cout<<" Pool manager contents: (Nevt,NTrack)"<<endl;
	for (Int_t iCentrality = 0; iCentrality < NPoolsCentrality; iCentrality++) {
		cout<<Form("Centrality Bin: %2i --> ", iCentrality);

		for (Int_t iVtxZ = 0; iVtxZ < NPoolsVtxZ; iVtxZ++) {

			poolin = fPoolMgr->GetEventPool(iCentrality, iVtxZ);

			cout<<Form("(%2i,%4i) ",poolin->GetCurrentNEvents(), poolin->NTracksInPool());

		}

		cout<<endl;
	}

}

// -----------------------------------------------------------------------
void AliAnalysisTaskDiHadronPID::Terminate(Option_t*) {;

	//
	// Called when task is done.
	//

	if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	delete fT0Fill;
	fT0Fill = 0x0;
	delete fLvsEta;
	fLvsEta = 0x0;
	delete fLvsEtaProjections;
	fLvsEtaProjections = 0x0;

}
 AliAnalysisTaskDiHadronPID.cxx:1
 AliAnalysisTaskDiHadronPID.cxx:2
 AliAnalysisTaskDiHadronPID.cxx:3
 AliAnalysisTaskDiHadronPID.cxx:4
 AliAnalysisTaskDiHadronPID.cxx:5
 AliAnalysisTaskDiHadronPID.cxx:6
 AliAnalysisTaskDiHadronPID.cxx:7
 AliAnalysisTaskDiHadronPID.cxx:8
 AliAnalysisTaskDiHadronPID.cxx:9
 AliAnalysisTaskDiHadronPID.cxx:10
 AliAnalysisTaskDiHadronPID.cxx:11
 AliAnalysisTaskDiHadronPID.cxx:12
 AliAnalysisTaskDiHadronPID.cxx:13
 AliAnalysisTaskDiHadronPID.cxx:14
 AliAnalysisTaskDiHadronPID.cxx:15
 AliAnalysisTaskDiHadronPID.cxx:16
 AliAnalysisTaskDiHadronPID.cxx:17
 AliAnalysisTaskDiHadronPID.cxx:18
 AliAnalysisTaskDiHadronPID.cxx:19
 AliAnalysisTaskDiHadronPID.cxx:20
 AliAnalysisTaskDiHadronPID.cxx:21
 AliAnalysisTaskDiHadronPID.cxx:22
 AliAnalysisTaskDiHadronPID.cxx:23
 AliAnalysisTaskDiHadronPID.cxx:24
 AliAnalysisTaskDiHadronPID.cxx:25
 AliAnalysisTaskDiHadronPID.cxx:26
 AliAnalysisTaskDiHadronPID.cxx:27
 AliAnalysisTaskDiHadronPID.cxx:28
 AliAnalysisTaskDiHadronPID.cxx:29
 AliAnalysisTaskDiHadronPID.cxx:30
 AliAnalysisTaskDiHadronPID.cxx:31
 AliAnalysisTaskDiHadronPID.cxx:32
 AliAnalysisTaskDiHadronPID.cxx:33
 AliAnalysisTaskDiHadronPID.cxx:34
 AliAnalysisTaskDiHadronPID.cxx:35
 AliAnalysisTaskDiHadronPID.cxx:36
 AliAnalysisTaskDiHadronPID.cxx:37
 AliAnalysisTaskDiHadronPID.cxx:38
 AliAnalysisTaskDiHadronPID.cxx:39
 AliAnalysisTaskDiHadronPID.cxx:40
 AliAnalysisTaskDiHadronPID.cxx:41
 AliAnalysisTaskDiHadronPID.cxx:42
 AliAnalysisTaskDiHadronPID.cxx:43
 AliAnalysisTaskDiHadronPID.cxx:44
 AliAnalysisTaskDiHadronPID.cxx:45
 AliAnalysisTaskDiHadronPID.cxx:46
 AliAnalysisTaskDiHadronPID.cxx:47
 AliAnalysisTaskDiHadronPID.cxx:48
 AliAnalysisTaskDiHadronPID.cxx:49
 AliAnalysisTaskDiHadronPID.cxx:50
 AliAnalysisTaskDiHadronPID.cxx:51
 AliAnalysisTaskDiHadronPID.cxx:52
 AliAnalysisTaskDiHadronPID.cxx:53
 AliAnalysisTaskDiHadronPID.cxx:54
 AliAnalysisTaskDiHadronPID.cxx:55
 AliAnalysisTaskDiHadronPID.cxx:56
 AliAnalysisTaskDiHadronPID.cxx:57
 AliAnalysisTaskDiHadronPID.cxx:58
 AliAnalysisTaskDiHadronPID.cxx:59
 AliAnalysisTaskDiHadronPID.cxx:60
 AliAnalysisTaskDiHadronPID.cxx:61
 AliAnalysisTaskDiHadronPID.cxx:62
 AliAnalysisTaskDiHadronPID.cxx:63
 AliAnalysisTaskDiHadronPID.cxx:64
 AliAnalysisTaskDiHadronPID.cxx:65
 AliAnalysisTaskDiHadronPID.cxx:66
 AliAnalysisTaskDiHadronPID.cxx:67
 AliAnalysisTaskDiHadronPID.cxx:68
 AliAnalysisTaskDiHadronPID.cxx:69
 AliAnalysisTaskDiHadronPID.cxx:70
 AliAnalysisTaskDiHadronPID.cxx:71
 AliAnalysisTaskDiHadronPID.cxx:72
 AliAnalysisTaskDiHadronPID.cxx:73
 AliAnalysisTaskDiHadronPID.cxx:74
 AliAnalysisTaskDiHadronPID.cxx:75
 AliAnalysisTaskDiHadronPID.cxx:76
 AliAnalysisTaskDiHadronPID.cxx:77
 AliAnalysisTaskDiHadronPID.cxx:78
 AliAnalysisTaskDiHadronPID.cxx:79
 AliAnalysisTaskDiHadronPID.cxx:80
 AliAnalysisTaskDiHadronPID.cxx:81
 AliAnalysisTaskDiHadronPID.cxx:82
 AliAnalysisTaskDiHadronPID.cxx:83
 AliAnalysisTaskDiHadronPID.cxx:84
 AliAnalysisTaskDiHadronPID.cxx:85
 AliAnalysisTaskDiHadronPID.cxx:86
 AliAnalysisTaskDiHadronPID.cxx:87
 AliAnalysisTaskDiHadronPID.cxx:88
 AliAnalysisTaskDiHadronPID.cxx:89
 AliAnalysisTaskDiHadronPID.cxx:90
 AliAnalysisTaskDiHadronPID.cxx:91
 AliAnalysisTaskDiHadronPID.cxx:92
 AliAnalysisTaskDiHadronPID.cxx:93
 AliAnalysisTaskDiHadronPID.cxx:94
 AliAnalysisTaskDiHadronPID.cxx:95
 AliAnalysisTaskDiHadronPID.cxx:96
 AliAnalysisTaskDiHadronPID.cxx:97
 AliAnalysisTaskDiHadronPID.cxx:98
 AliAnalysisTaskDiHadronPID.cxx:99
 AliAnalysisTaskDiHadronPID.cxx:100
 AliAnalysisTaskDiHadronPID.cxx:101
 AliAnalysisTaskDiHadronPID.cxx:102
 AliAnalysisTaskDiHadronPID.cxx:103
 AliAnalysisTaskDiHadronPID.cxx:104
 AliAnalysisTaskDiHadronPID.cxx:105
 AliAnalysisTaskDiHadronPID.cxx:106
 AliAnalysisTaskDiHadronPID.cxx:107
 AliAnalysisTaskDiHadronPID.cxx:108
 AliAnalysisTaskDiHadronPID.cxx:109
 AliAnalysisTaskDiHadronPID.cxx:110
 AliAnalysisTaskDiHadronPID.cxx:111
 AliAnalysisTaskDiHadronPID.cxx:112
 AliAnalysisTaskDiHadronPID.cxx:113
 AliAnalysisTaskDiHadronPID.cxx:114
 AliAnalysisTaskDiHadronPID.cxx:115
 AliAnalysisTaskDiHadronPID.cxx:116
 AliAnalysisTaskDiHadronPID.cxx:117
 AliAnalysisTaskDiHadronPID.cxx:118
 AliAnalysisTaskDiHadronPID.cxx:119
 AliAnalysisTaskDiHadronPID.cxx:120
 AliAnalysisTaskDiHadronPID.cxx:121
 AliAnalysisTaskDiHadronPID.cxx:122
 AliAnalysisTaskDiHadronPID.cxx:123
 AliAnalysisTaskDiHadronPID.cxx:124
 AliAnalysisTaskDiHadronPID.cxx:125
 AliAnalysisTaskDiHadronPID.cxx:126
 AliAnalysisTaskDiHadronPID.cxx:127
 AliAnalysisTaskDiHadronPID.cxx:128
 AliAnalysisTaskDiHadronPID.cxx:129
 AliAnalysisTaskDiHadronPID.cxx:130
 AliAnalysisTaskDiHadronPID.cxx:131
 AliAnalysisTaskDiHadronPID.cxx:132
 AliAnalysisTaskDiHadronPID.cxx:133
 AliAnalysisTaskDiHadronPID.cxx:134
 AliAnalysisTaskDiHadronPID.cxx:135
 AliAnalysisTaskDiHadronPID.cxx:136
 AliAnalysisTaskDiHadronPID.cxx:137
 AliAnalysisTaskDiHadronPID.cxx:138
 AliAnalysisTaskDiHadronPID.cxx:139
 AliAnalysisTaskDiHadronPID.cxx:140
 AliAnalysisTaskDiHadronPID.cxx:141
 AliAnalysisTaskDiHadronPID.cxx:142
 AliAnalysisTaskDiHadronPID.cxx:143
 AliAnalysisTaskDiHadronPID.cxx:144
 AliAnalysisTaskDiHadronPID.cxx:145
 AliAnalysisTaskDiHadronPID.cxx:146
 AliAnalysisTaskDiHadronPID.cxx:147
 AliAnalysisTaskDiHadronPID.cxx:148
 AliAnalysisTaskDiHadronPID.cxx:149
 AliAnalysisTaskDiHadronPID.cxx:150
 AliAnalysisTaskDiHadronPID.cxx:151
 AliAnalysisTaskDiHadronPID.cxx:152
 AliAnalysisTaskDiHadronPID.cxx:153
 AliAnalysisTaskDiHadronPID.cxx:154
 AliAnalysisTaskDiHadronPID.cxx:155
 AliAnalysisTaskDiHadronPID.cxx:156
 AliAnalysisTaskDiHadronPID.cxx:157
 AliAnalysisTaskDiHadronPID.cxx:158
 AliAnalysisTaskDiHadronPID.cxx:159
 AliAnalysisTaskDiHadronPID.cxx:160
 AliAnalysisTaskDiHadronPID.cxx:161
 AliAnalysisTaskDiHadronPID.cxx:162
 AliAnalysisTaskDiHadronPID.cxx:163
 AliAnalysisTaskDiHadronPID.cxx:164
 AliAnalysisTaskDiHadronPID.cxx:165
 AliAnalysisTaskDiHadronPID.cxx:166
 AliAnalysisTaskDiHadronPID.cxx:167
 AliAnalysisTaskDiHadronPID.cxx:168
 AliAnalysisTaskDiHadronPID.cxx:169
 AliAnalysisTaskDiHadronPID.cxx:170
 AliAnalysisTaskDiHadronPID.cxx:171
 AliAnalysisTaskDiHadronPID.cxx:172
 AliAnalysisTaskDiHadronPID.cxx:173
 AliAnalysisTaskDiHadronPID.cxx:174
 AliAnalysisTaskDiHadronPID.cxx:175
 AliAnalysisTaskDiHadronPID.cxx:176
 AliAnalysisTaskDiHadronPID.cxx:177
 AliAnalysisTaskDiHadronPID.cxx:178
 AliAnalysisTaskDiHadronPID.cxx:179
 AliAnalysisTaskDiHadronPID.cxx:180
 AliAnalysisTaskDiHadronPID.cxx:181
 AliAnalysisTaskDiHadronPID.cxx:182
 AliAnalysisTaskDiHadronPID.cxx:183
 AliAnalysisTaskDiHadronPID.cxx:184
 AliAnalysisTaskDiHadronPID.cxx:185
 AliAnalysisTaskDiHadronPID.cxx:186
 AliAnalysisTaskDiHadronPID.cxx:187
 AliAnalysisTaskDiHadronPID.cxx:188
 AliAnalysisTaskDiHadronPID.cxx:189
 AliAnalysisTaskDiHadronPID.cxx:190
 AliAnalysisTaskDiHadronPID.cxx:191
 AliAnalysisTaskDiHadronPID.cxx:192
 AliAnalysisTaskDiHadronPID.cxx:193
 AliAnalysisTaskDiHadronPID.cxx:194
 AliAnalysisTaskDiHadronPID.cxx:195
 AliAnalysisTaskDiHadronPID.cxx:196
 AliAnalysisTaskDiHadronPID.cxx:197
 AliAnalysisTaskDiHadronPID.cxx:198
 AliAnalysisTaskDiHadronPID.cxx:199
 AliAnalysisTaskDiHadronPID.cxx:200
 AliAnalysisTaskDiHadronPID.cxx:201
 AliAnalysisTaskDiHadronPID.cxx:202
 AliAnalysisTaskDiHadronPID.cxx:203
 AliAnalysisTaskDiHadronPID.cxx:204
 AliAnalysisTaskDiHadronPID.cxx:205
 AliAnalysisTaskDiHadronPID.cxx:206
 AliAnalysisTaskDiHadronPID.cxx:207
 AliAnalysisTaskDiHadronPID.cxx:208
 AliAnalysisTaskDiHadronPID.cxx:209
 AliAnalysisTaskDiHadronPID.cxx:210
 AliAnalysisTaskDiHadronPID.cxx:211
 AliAnalysisTaskDiHadronPID.cxx:212
 AliAnalysisTaskDiHadronPID.cxx:213
 AliAnalysisTaskDiHadronPID.cxx:214
 AliAnalysisTaskDiHadronPID.cxx:215
 AliAnalysisTaskDiHadronPID.cxx:216
 AliAnalysisTaskDiHadronPID.cxx:217
 AliAnalysisTaskDiHadronPID.cxx:218
 AliAnalysisTaskDiHadronPID.cxx:219
 AliAnalysisTaskDiHadronPID.cxx:220
 AliAnalysisTaskDiHadronPID.cxx:221
 AliAnalysisTaskDiHadronPID.cxx:222
 AliAnalysisTaskDiHadronPID.cxx:223
 AliAnalysisTaskDiHadronPID.cxx:224
 AliAnalysisTaskDiHadronPID.cxx:225
 AliAnalysisTaskDiHadronPID.cxx:226
 AliAnalysisTaskDiHadronPID.cxx:227
 AliAnalysisTaskDiHadronPID.cxx:228
 AliAnalysisTaskDiHadronPID.cxx:229
 AliAnalysisTaskDiHadronPID.cxx:230
 AliAnalysisTaskDiHadronPID.cxx:231
 AliAnalysisTaskDiHadronPID.cxx:232
 AliAnalysisTaskDiHadronPID.cxx:233
 AliAnalysisTaskDiHadronPID.cxx:234
 AliAnalysisTaskDiHadronPID.cxx:235
 AliAnalysisTaskDiHadronPID.cxx:236
 AliAnalysisTaskDiHadronPID.cxx:237
 AliAnalysisTaskDiHadronPID.cxx:238
 AliAnalysisTaskDiHadronPID.cxx:239
 AliAnalysisTaskDiHadronPID.cxx:240
 AliAnalysisTaskDiHadronPID.cxx:241
 AliAnalysisTaskDiHadronPID.cxx:242
 AliAnalysisTaskDiHadronPID.cxx:243
 AliAnalysisTaskDiHadronPID.cxx:244
 AliAnalysisTaskDiHadronPID.cxx:245
 AliAnalysisTaskDiHadronPID.cxx:246
 AliAnalysisTaskDiHadronPID.cxx:247
 AliAnalysisTaskDiHadronPID.cxx:248
 AliAnalysisTaskDiHadronPID.cxx:249
 AliAnalysisTaskDiHadronPID.cxx:250
 AliAnalysisTaskDiHadronPID.cxx:251
 AliAnalysisTaskDiHadronPID.cxx:252
 AliAnalysisTaskDiHadronPID.cxx:253
 AliAnalysisTaskDiHadronPID.cxx:254
 AliAnalysisTaskDiHadronPID.cxx:255
 AliAnalysisTaskDiHadronPID.cxx:256
 AliAnalysisTaskDiHadronPID.cxx:257
 AliAnalysisTaskDiHadronPID.cxx:258
 AliAnalysisTaskDiHadronPID.cxx:259
 AliAnalysisTaskDiHadronPID.cxx:260
 AliAnalysisTaskDiHadronPID.cxx:261
 AliAnalysisTaskDiHadronPID.cxx:262
 AliAnalysisTaskDiHadronPID.cxx:263
 AliAnalysisTaskDiHadronPID.cxx:264
 AliAnalysisTaskDiHadronPID.cxx:265
 AliAnalysisTaskDiHadronPID.cxx:266
 AliAnalysisTaskDiHadronPID.cxx:267
 AliAnalysisTaskDiHadronPID.cxx:268
 AliAnalysisTaskDiHadronPID.cxx:269
 AliAnalysisTaskDiHadronPID.cxx:270
 AliAnalysisTaskDiHadronPID.cxx:271
 AliAnalysisTaskDiHadronPID.cxx:272
 AliAnalysisTaskDiHadronPID.cxx:273
 AliAnalysisTaskDiHadronPID.cxx:274
 AliAnalysisTaskDiHadronPID.cxx:275
 AliAnalysisTaskDiHadronPID.cxx:276
 AliAnalysisTaskDiHadronPID.cxx:277
 AliAnalysisTaskDiHadronPID.cxx:278
 AliAnalysisTaskDiHadronPID.cxx:279
 AliAnalysisTaskDiHadronPID.cxx:280
 AliAnalysisTaskDiHadronPID.cxx:281
 AliAnalysisTaskDiHadronPID.cxx:282
 AliAnalysisTaskDiHadronPID.cxx:283
 AliAnalysisTaskDiHadronPID.cxx:284
 AliAnalysisTaskDiHadronPID.cxx:285
 AliAnalysisTaskDiHadronPID.cxx:286
 AliAnalysisTaskDiHadronPID.cxx:287
 AliAnalysisTaskDiHadronPID.cxx:288
 AliAnalysisTaskDiHadronPID.cxx:289
 AliAnalysisTaskDiHadronPID.cxx:290
 AliAnalysisTaskDiHadronPID.cxx:291
 AliAnalysisTaskDiHadronPID.cxx:292
 AliAnalysisTaskDiHadronPID.cxx:293
 AliAnalysisTaskDiHadronPID.cxx:294
 AliAnalysisTaskDiHadronPID.cxx:295
 AliAnalysisTaskDiHadronPID.cxx:296
 AliAnalysisTaskDiHadronPID.cxx:297
 AliAnalysisTaskDiHadronPID.cxx:298
 AliAnalysisTaskDiHadronPID.cxx:299
 AliAnalysisTaskDiHadronPID.cxx:300
 AliAnalysisTaskDiHadronPID.cxx:301
 AliAnalysisTaskDiHadronPID.cxx:302
 AliAnalysisTaskDiHadronPID.cxx:303
 AliAnalysisTaskDiHadronPID.cxx:304
 AliAnalysisTaskDiHadronPID.cxx:305
 AliAnalysisTaskDiHadronPID.cxx:306
 AliAnalysisTaskDiHadronPID.cxx:307
 AliAnalysisTaskDiHadronPID.cxx:308
 AliAnalysisTaskDiHadronPID.cxx:309
 AliAnalysisTaskDiHadronPID.cxx:310
 AliAnalysisTaskDiHadronPID.cxx:311
 AliAnalysisTaskDiHadronPID.cxx:312
 AliAnalysisTaskDiHadronPID.cxx:313
 AliAnalysisTaskDiHadronPID.cxx:314
 AliAnalysisTaskDiHadronPID.cxx:315
 AliAnalysisTaskDiHadronPID.cxx:316
 AliAnalysisTaskDiHadronPID.cxx:317
 AliAnalysisTaskDiHadronPID.cxx:318
 AliAnalysisTaskDiHadronPID.cxx:319
 AliAnalysisTaskDiHadronPID.cxx:320
 AliAnalysisTaskDiHadronPID.cxx:321
 AliAnalysisTaskDiHadronPID.cxx:322
 AliAnalysisTaskDiHadronPID.cxx:323
 AliAnalysisTaskDiHadronPID.cxx:324
 AliAnalysisTaskDiHadronPID.cxx:325
 AliAnalysisTaskDiHadronPID.cxx:326
 AliAnalysisTaskDiHadronPID.cxx:327
 AliAnalysisTaskDiHadronPID.cxx:328
 AliAnalysisTaskDiHadronPID.cxx:329
 AliAnalysisTaskDiHadronPID.cxx:330
 AliAnalysisTaskDiHadronPID.cxx:331
 AliAnalysisTaskDiHadronPID.cxx:332
 AliAnalysisTaskDiHadronPID.cxx:333
 AliAnalysisTaskDiHadronPID.cxx:334
 AliAnalysisTaskDiHadronPID.cxx:335
 AliAnalysisTaskDiHadronPID.cxx:336
 AliAnalysisTaskDiHadronPID.cxx:337
 AliAnalysisTaskDiHadronPID.cxx:338
 AliAnalysisTaskDiHadronPID.cxx:339
 AliAnalysisTaskDiHadronPID.cxx:340
 AliAnalysisTaskDiHadronPID.cxx:341
 AliAnalysisTaskDiHadronPID.cxx:342
 AliAnalysisTaskDiHadronPID.cxx:343
 AliAnalysisTaskDiHadronPID.cxx:344
 AliAnalysisTaskDiHadronPID.cxx:345
 AliAnalysisTaskDiHadronPID.cxx:346
 AliAnalysisTaskDiHadronPID.cxx:347
 AliAnalysisTaskDiHadronPID.cxx:348
 AliAnalysisTaskDiHadronPID.cxx:349
 AliAnalysisTaskDiHadronPID.cxx:350
 AliAnalysisTaskDiHadronPID.cxx:351
 AliAnalysisTaskDiHadronPID.cxx:352
 AliAnalysisTaskDiHadronPID.cxx:353
 AliAnalysisTaskDiHadronPID.cxx:354
 AliAnalysisTaskDiHadronPID.cxx:355
 AliAnalysisTaskDiHadronPID.cxx:356
 AliAnalysisTaskDiHadronPID.cxx:357
 AliAnalysisTaskDiHadronPID.cxx:358
 AliAnalysisTaskDiHadronPID.cxx:359
 AliAnalysisTaskDiHadronPID.cxx:360
 AliAnalysisTaskDiHadronPID.cxx:361
 AliAnalysisTaskDiHadronPID.cxx:362
 AliAnalysisTaskDiHadronPID.cxx:363
 AliAnalysisTaskDiHadronPID.cxx:364
 AliAnalysisTaskDiHadronPID.cxx:365
 AliAnalysisTaskDiHadronPID.cxx:366
 AliAnalysisTaskDiHadronPID.cxx:367
 AliAnalysisTaskDiHadronPID.cxx:368
 AliAnalysisTaskDiHadronPID.cxx:369
 AliAnalysisTaskDiHadronPID.cxx:370
 AliAnalysisTaskDiHadronPID.cxx:371
 AliAnalysisTaskDiHadronPID.cxx:372
 AliAnalysisTaskDiHadronPID.cxx:373
 AliAnalysisTaskDiHadronPID.cxx:374
 AliAnalysisTaskDiHadronPID.cxx:375
 AliAnalysisTaskDiHadronPID.cxx:376
 AliAnalysisTaskDiHadronPID.cxx:377
 AliAnalysisTaskDiHadronPID.cxx:378
 AliAnalysisTaskDiHadronPID.cxx:379
 AliAnalysisTaskDiHadronPID.cxx:380
 AliAnalysisTaskDiHadronPID.cxx:381
 AliAnalysisTaskDiHadronPID.cxx:382
 AliAnalysisTaskDiHadronPID.cxx:383
 AliAnalysisTaskDiHadronPID.cxx:384
 AliAnalysisTaskDiHadronPID.cxx:385
 AliAnalysisTaskDiHadronPID.cxx:386
 AliAnalysisTaskDiHadronPID.cxx:387
 AliAnalysisTaskDiHadronPID.cxx:388
 AliAnalysisTaskDiHadronPID.cxx:389
 AliAnalysisTaskDiHadronPID.cxx:390
 AliAnalysisTaskDiHadronPID.cxx:391
 AliAnalysisTaskDiHadronPID.cxx:392
 AliAnalysisTaskDiHadronPID.cxx:393
 AliAnalysisTaskDiHadronPID.cxx:394
 AliAnalysisTaskDiHadronPID.cxx:395
 AliAnalysisTaskDiHadronPID.cxx:396
 AliAnalysisTaskDiHadronPID.cxx:397
 AliAnalysisTaskDiHadronPID.cxx:398
 AliAnalysisTaskDiHadronPID.cxx:399
 AliAnalysisTaskDiHadronPID.cxx:400
 AliAnalysisTaskDiHadronPID.cxx:401
 AliAnalysisTaskDiHadronPID.cxx:402
 AliAnalysisTaskDiHadronPID.cxx:403
 AliAnalysisTaskDiHadronPID.cxx:404
 AliAnalysisTaskDiHadronPID.cxx:405
 AliAnalysisTaskDiHadronPID.cxx:406
 AliAnalysisTaskDiHadronPID.cxx:407
 AliAnalysisTaskDiHadronPID.cxx:408
 AliAnalysisTaskDiHadronPID.cxx:409
 AliAnalysisTaskDiHadronPID.cxx:410
 AliAnalysisTaskDiHadronPID.cxx:411
 AliAnalysisTaskDiHadronPID.cxx:412
 AliAnalysisTaskDiHadronPID.cxx:413
 AliAnalysisTaskDiHadronPID.cxx:414
 AliAnalysisTaskDiHadronPID.cxx:415
 AliAnalysisTaskDiHadronPID.cxx:416
 AliAnalysisTaskDiHadronPID.cxx:417
 AliAnalysisTaskDiHadronPID.cxx:418
 AliAnalysisTaskDiHadronPID.cxx:419
 AliAnalysisTaskDiHadronPID.cxx:420
 AliAnalysisTaskDiHadronPID.cxx:421
 AliAnalysisTaskDiHadronPID.cxx:422
 AliAnalysisTaskDiHadronPID.cxx:423
 AliAnalysisTaskDiHadronPID.cxx:424
 AliAnalysisTaskDiHadronPID.cxx:425
 AliAnalysisTaskDiHadronPID.cxx:426
 AliAnalysisTaskDiHadronPID.cxx:427
 AliAnalysisTaskDiHadronPID.cxx:428
 AliAnalysisTaskDiHadronPID.cxx:429
 AliAnalysisTaskDiHadronPID.cxx:430
 AliAnalysisTaskDiHadronPID.cxx:431
 AliAnalysisTaskDiHadronPID.cxx:432
 AliAnalysisTaskDiHadronPID.cxx:433
 AliAnalysisTaskDiHadronPID.cxx:434
 AliAnalysisTaskDiHadronPID.cxx:435
 AliAnalysisTaskDiHadronPID.cxx:436
 AliAnalysisTaskDiHadronPID.cxx:437
 AliAnalysisTaskDiHadronPID.cxx:438
 AliAnalysisTaskDiHadronPID.cxx:439
 AliAnalysisTaskDiHadronPID.cxx:440
 AliAnalysisTaskDiHadronPID.cxx:441
 AliAnalysisTaskDiHadronPID.cxx:442
 AliAnalysisTaskDiHadronPID.cxx:443
 AliAnalysisTaskDiHadronPID.cxx:444
 AliAnalysisTaskDiHadronPID.cxx:445
 AliAnalysisTaskDiHadronPID.cxx:446
 AliAnalysisTaskDiHadronPID.cxx:447
 AliAnalysisTaskDiHadronPID.cxx:448
 AliAnalysisTaskDiHadronPID.cxx:449
 AliAnalysisTaskDiHadronPID.cxx:450
 AliAnalysisTaskDiHadronPID.cxx:451
 AliAnalysisTaskDiHadronPID.cxx:452
 AliAnalysisTaskDiHadronPID.cxx:453
 AliAnalysisTaskDiHadronPID.cxx:454
 AliAnalysisTaskDiHadronPID.cxx:455
 AliAnalysisTaskDiHadronPID.cxx:456
 AliAnalysisTaskDiHadronPID.cxx:457
 AliAnalysisTaskDiHadronPID.cxx:458
 AliAnalysisTaskDiHadronPID.cxx:459
 AliAnalysisTaskDiHadronPID.cxx:460
 AliAnalysisTaskDiHadronPID.cxx:461
 AliAnalysisTaskDiHadronPID.cxx:462
 AliAnalysisTaskDiHadronPID.cxx:463
 AliAnalysisTaskDiHadronPID.cxx:464
 AliAnalysisTaskDiHadronPID.cxx:465
 AliAnalysisTaskDiHadronPID.cxx:466
 AliAnalysisTaskDiHadronPID.cxx:467
 AliAnalysisTaskDiHadronPID.cxx:468
 AliAnalysisTaskDiHadronPID.cxx:469
 AliAnalysisTaskDiHadronPID.cxx:470
 AliAnalysisTaskDiHadronPID.cxx:471
 AliAnalysisTaskDiHadronPID.cxx:472
 AliAnalysisTaskDiHadronPID.cxx:473
 AliAnalysisTaskDiHadronPID.cxx:474
 AliAnalysisTaskDiHadronPID.cxx:475
 AliAnalysisTaskDiHadronPID.cxx:476
 AliAnalysisTaskDiHadronPID.cxx:477
 AliAnalysisTaskDiHadronPID.cxx:478
 AliAnalysisTaskDiHadronPID.cxx:479
 AliAnalysisTaskDiHadronPID.cxx:480
 AliAnalysisTaskDiHadronPID.cxx:481
 AliAnalysisTaskDiHadronPID.cxx:482
 AliAnalysisTaskDiHadronPID.cxx:483
 AliAnalysisTaskDiHadronPID.cxx:484
 AliAnalysisTaskDiHadronPID.cxx:485
 AliAnalysisTaskDiHadronPID.cxx:486
 AliAnalysisTaskDiHadronPID.cxx:487
 AliAnalysisTaskDiHadronPID.cxx:488
 AliAnalysisTaskDiHadronPID.cxx:489
 AliAnalysisTaskDiHadronPID.cxx:490
 AliAnalysisTaskDiHadronPID.cxx:491
 AliAnalysisTaskDiHadronPID.cxx:492
 AliAnalysisTaskDiHadronPID.cxx:493
 AliAnalysisTaskDiHadronPID.cxx:494
 AliAnalysisTaskDiHadronPID.cxx:495
 AliAnalysisTaskDiHadronPID.cxx:496
 AliAnalysisTaskDiHadronPID.cxx:497
 AliAnalysisTaskDiHadronPID.cxx:498
 AliAnalysisTaskDiHadronPID.cxx:499
 AliAnalysisTaskDiHadronPID.cxx:500
 AliAnalysisTaskDiHadronPID.cxx:501
 AliAnalysisTaskDiHadronPID.cxx:502
 AliAnalysisTaskDiHadronPID.cxx:503
 AliAnalysisTaskDiHadronPID.cxx:504
 AliAnalysisTaskDiHadronPID.cxx:505
 AliAnalysisTaskDiHadronPID.cxx:506
 AliAnalysisTaskDiHadronPID.cxx:507
 AliAnalysisTaskDiHadronPID.cxx:508
 AliAnalysisTaskDiHadronPID.cxx:509
 AliAnalysisTaskDiHadronPID.cxx:510
 AliAnalysisTaskDiHadronPID.cxx:511
 AliAnalysisTaskDiHadronPID.cxx:512
 AliAnalysisTaskDiHadronPID.cxx:513
 AliAnalysisTaskDiHadronPID.cxx:514
 AliAnalysisTaskDiHadronPID.cxx:515
 AliAnalysisTaskDiHadronPID.cxx:516
 AliAnalysisTaskDiHadronPID.cxx:517
 AliAnalysisTaskDiHadronPID.cxx:518
 AliAnalysisTaskDiHadronPID.cxx:519
 AliAnalysisTaskDiHadronPID.cxx:520
 AliAnalysisTaskDiHadronPID.cxx:521
 AliAnalysisTaskDiHadronPID.cxx:522
 AliAnalysisTaskDiHadronPID.cxx:523
 AliAnalysisTaskDiHadronPID.cxx:524
 AliAnalysisTaskDiHadronPID.cxx:525
 AliAnalysisTaskDiHadronPID.cxx:526
 AliAnalysisTaskDiHadronPID.cxx:527
 AliAnalysisTaskDiHadronPID.cxx:528
 AliAnalysisTaskDiHadronPID.cxx:529
 AliAnalysisTaskDiHadronPID.cxx:530
 AliAnalysisTaskDiHadronPID.cxx:531
 AliAnalysisTaskDiHadronPID.cxx:532
 AliAnalysisTaskDiHadronPID.cxx:533
 AliAnalysisTaskDiHadronPID.cxx:534
 AliAnalysisTaskDiHadronPID.cxx:535
 AliAnalysisTaskDiHadronPID.cxx:536
 AliAnalysisTaskDiHadronPID.cxx:537
 AliAnalysisTaskDiHadronPID.cxx:538
 AliAnalysisTaskDiHadronPID.cxx:539
 AliAnalysisTaskDiHadronPID.cxx:540
 AliAnalysisTaskDiHadronPID.cxx:541
 AliAnalysisTaskDiHadronPID.cxx:542
 AliAnalysisTaskDiHadronPID.cxx:543
 AliAnalysisTaskDiHadronPID.cxx:544
 AliAnalysisTaskDiHadronPID.cxx:545
 AliAnalysisTaskDiHadronPID.cxx:546
 AliAnalysisTaskDiHadronPID.cxx:547
 AliAnalysisTaskDiHadronPID.cxx:548
 AliAnalysisTaskDiHadronPID.cxx:549
 AliAnalysisTaskDiHadronPID.cxx:550
 AliAnalysisTaskDiHadronPID.cxx:551
 AliAnalysisTaskDiHadronPID.cxx:552
 AliAnalysisTaskDiHadronPID.cxx:553
 AliAnalysisTaskDiHadronPID.cxx:554
 AliAnalysisTaskDiHadronPID.cxx:555
 AliAnalysisTaskDiHadronPID.cxx:556
 AliAnalysisTaskDiHadronPID.cxx:557
 AliAnalysisTaskDiHadronPID.cxx:558
 AliAnalysisTaskDiHadronPID.cxx:559
 AliAnalysisTaskDiHadronPID.cxx:560
 AliAnalysisTaskDiHadronPID.cxx:561
 AliAnalysisTaskDiHadronPID.cxx:562
 AliAnalysisTaskDiHadronPID.cxx:563
 AliAnalysisTaskDiHadronPID.cxx:564
 AliAnalysisTaskDiHadronPID.cxx:565
 AliAnalysisTaskDiHadronPID.cxx:566
 AliAnalysisTaskDiHadronPID.cxx:567
 AliAnalysisTaskDiHadronPID.cxx:568
 AliAnalysisTaskDiHadronPID.cxx:569
 AliAnalysisTaskDiHadronPID.cxx:570
 AliAnalysisTaskDiHadronPID.cxx:571
 AliAnalysisTaskDiHadronPID.cxx:572
 AliAnalysisTaskDiHadronPID.cxx:573
 AliAnalysisTaskDiHadronPID.cxx:574
 AliAnalysisTaskDiHadronPID.cxx:575
 AliAnalysisTaskDiHadronPID.cxx:576
 AliAnalysisTaskDiHadronPID.cxx:577
 AliAnalysisTaskDiHadronPID.cxx:578
 AliAnalysisTaskDiHadronPID.cxx:579
 AliAnalysisTaskDiHadronPID.cxx:580
 AliAnalysisTaskDiHadronPID.cxx:581
 AliAnalysisTaskDiHadronPID.cxx:582
 AliAnalysisTaskDiHadronPID.cxx:583
 AliAnalysisTaskDiHadronPID.cxx:584
 AliAnalysisTaskDiHadronPID.cxx:585
 AliAnalysisTaskDiHadronPID.cxx:586
 AliAnalysisTaskDiHadronPID.cxx:587
 AliAnalysisTaskDiHadronPID.cxx:588
 AliAnalysisTaskDiHadronPID.cxx:589
 AliAnalysisTaskDiHadronPID.cxx:590
 AliAnalysisTaskDiHadronPID.cxx:591
 AliAnalysisTaskDiHadronPID.cxx:592
 AliAnalysisTaskDiHadronPID.cxx:593
 AliAnalysisTaskDiHadronPID.cxx:594
 AliAnalysisTaskDiHadronPID.cxx:595
 AliAnalysisTaskDiHadronPID.cxx:596
 AliAnalysisTaskDiHadronPID.cxx:597
 AliAnalysisTaskDiHadronPID.cxx:598
 AliAnalysisTaskDiHadronPID.cxx:599
 AliAnalysisTaskDiHadronPID.cxx:600
 AliAnalysisTaskDiHadronPID.cxx:601
 AliAnalysisTaskDiHadronPID.cxx:602
 AliAnalysisTaskDiHadronPID.cxx:603
 AliAnalysisTaskDiHadronPID.cxx:604
 AliAnalysisTaskDiHadronPID.cxx:605
 AliAnalysisTaskDiHadronPID.cxx:606
 AliAnalysisTaskDiHadronPID.cxx:607
 AliAnalysisTaskDiHadronPID.cxx:608
 AliAnalysisTaskDiHadronPID.cxx:609
 AliAnalysisTaskDiHadronPID.cxx:610
 AliAnalysisTaskDiHadronPID.cxx:611
 AliAnalysisTaskDiHadronPID.cxx:612
 AliAnalysisTaskDiHadronPID.cxx:613
 AliAnalysisTaskDiHadronPID.cxx:614
 AliAnalysisTaskDiHadronPID.cxx:615
 AliAnalysisTaskDiHadronPID.cxx:616
 AliAnalysisTaskDiHadronPID.cxx:617
 AliAnalysisTaskDiHadronPID.cxx:618
 AliAnalysisTaskDiHadronPID.cxx:619
 AliAnalysisTaskDiHadronPID.cxx:620
 AliAnalysisTaskDiHadronPID.cxx:621
 AliAnalysisTaskDiHadronPID.cxx:622
 AliAnalysisTaskDiHadronPID.cxx:623
 AliAnalysisTaskDiHadronPID.cxx:624
 AliAnalysisTaskDiHadronPID.cxx:625
 AliAnalysisTaskDiHadronPID.cxx:626
 AliAnalysisTaskDiHadronPID.cxx:627
 AliAnalysisTaskDiHadronPID.cxx:628
 AliAnalysisTaskDiHadronPID.cxx:629
 AliAnalysisTaskDiHadronPID.cxx:630
 AliAnalysisTaskDiHadronPID.cxx:631
 AliAnalysisTaskDiHadronPID.cxx:632
 AliAnalysisTaskDiHadronPID.cxx:633
 AliAnalysisTaskDiHadronPID.cxx:634
 AliAnalysisTaskDiHadronPID.cxx:635
 AliAnalysisTaskDiHadronPID.cxx:636
 AliAnalysisTaskDiHadronPID.cxx:637
 AliAnalysisTaskDiHadronPID.cxx:638
 AliAnalysisTaskDiHadronPID.cxx:639
 AliAnalysisTaskDiHadronPID.cxx:640
 AliAnalysisTaskDiHadronPID.cxx:641
 AliAnalysisTaskDiHadronPID.cxx:642
 AliAnalysisTaskDiHadronPID.cxx:643
 AliAnalysisTaskDiHadronPID.cxx:644
 AliAnalysisTaskDiHadronPID.cxx:645
 AliAnalysisTaskDiHadronPID.cxx:646
 AliAnalysisTaskDiHadronPID.cxx:647
 AliAnalysisTaskDiHadronPID.cxx:648
 AliAnalysisTaskDiHadronPID.cxx:649
 AliAnalysisTaskDiHadronPID.cxx:650
 AliAnalysisTaskDiHadronPID.cxx:651
 AliAnalysisTaskDiHadronPID.cxx:652
 AliAnalysisTaskDiHadronPID.cxx:653
 AliAnalysisTaskDiHadronPID.cxx:654
 AliAnalysisTaskDiHadronPID.cxx:655
 AliAnalysisTaskDiHadronPID.cxx:656
 AliAnalysisTaskDiHadronPID.cxx:657
 AliAnalysisTaskDiHadronPID.cxx:658
 AliAnalysisTaskDiHadronPID.cxx:659
 AliAnalysisTaskDiHadronPID.cxx:660
 AliAnalysisTaskDiHadronPID.cxx:661
 AliAnalysisTaskDiHadronPID.cxx:662
 AliAnalysisTaskDiHadronPID.cxx:663
 AliAnalysisTaskDiHadronPID.cxx:664
 AliAnalysisTaskDiHadronPID.cxx:665
 AliAnalysisTaskDiHadronPID.cxx:666
 AliAnalysisTaskDiHadronPID.cxx:667
 AliAnalysisTaskDiHadronPID.cxx:668
 AliAnalysisTaskDiHadronPID.cxx:669
 AliAnalysisTaskDiHadronPID.cxx:670
 AliAnalysisTaskDiHadronPID.cxx:671
 AliAnalysisTaskDiHadronPID.cxx:672
 AliAnalysisTaskDiHadronPID.cxx:673
 AliAnalysisTaskDiHadronPID.cxx:674
 AliAnalysisTaskDiHadronPID.cxx:675
 AliAnalysisTaskDiHadronPID.cxx:676
 AliAnalysisTaskDiHadronPID.cxx:677
 AliAnalysisTaskDiHadronPID.cxx:678
 AliAnalysisTaskDiHadronPID.cxx:679
 AliAnalysisTaskDiHadronPID.cxx:680
 AliAnalysisTaskDiHadronPID.cxx:681
 AliAnalysisTaskDiHadronPID.cxx:682
 AliAnalysisTaskDiHadronPID.cxx:683
 AliAnalysisTaskDiHadronPID.cxx:684
 AliAnalysisTaskDiHadronPID.cxx:685
 AliAnalysisTaskDiHadronPID.cxx:686
 AliAnalysisTaskDiHadronPID.cxx:687
 AliAnalysisTaskDiHadronPID.cxx:688
 AliAnalysisTaskDiHadronPID.cxx:689
 AliAnalysisTaskDiHadronPID.cxx:690
 AliAnalysisTaskDiHadronPID.cxx:691
 AliAnalysisTaskDiHadronPID.cxx:692
 AliAnalysisTaskDiHadronPID.cxx:693
 AliAnalysisTaskDiHadronPID.cxx:694
 AliAnalysisTaskDiHadronPID.cxx:695
 AliAnalysisTaskDiHadronPID.cxx:696
 AliAnalysisTaskDiHadronPID.cxx:697
 AliAnalysisTaskDiHadronPID.cxx:698
 AliAnalysisTaskDiHadronPID.cxx:699
 AliAnalysisTaskDiHadronPID.cxx:700
 AliAnalysisTaskDiHadronPID.cxx:701
 AliAnalysisTaskDiHadronPID.cxx:702
 AliAnalysisTaskDiHadronPID.cxx:703
 AliAnalysisTaskDiHadronPID.cxx:704
 AliAnalysisTaskDiHadronPID.cxx:705
 AliAnalysisTaskDiHadronPID.cxx:706
 AliAnalysisTaskDiHadronPID.cxx:707
 AliAnalysisTaskDiHadronPID.cxx:708
 AliAnalysisTaskDiHadronPID.cxx:709
 AliAnalysisTaskDiHadronPID.cxx:710
 AliAnalysisTaskDiHadronPID.cxx:711
 AliAnalysisTaskDiHadronPID.cxx:712
 AliAnalysisTaskDiHadronPID.cxx:713
 AliAnalysisTaskDiHadronPID.cxx:714
 AliAnalysisTaskDiHadronPID.cxx:715
 AliAnalysisTaskDiHadronPID.cxx:716
 AliAnalysisTaskDiHadronPID.cxx:717
 AliAnalysisTaskDiHadronPID.cxx:718
 AliAnalysisTaskDiHadronPID.cxx:719
 AliAnalysisTaskDiHadronPID.cxx:720
 AliAnalysisTaskDiHadronPID.cxx:721
 AliAnalysisTaskDiHadronPID.cxx:722
 AliAnalysisTaskDiHadronPID.cxx:723
 AliAnalysisTaskDiHadronPID.cxx:724
 AliAnalysisTaskDiHadronPID.cxx:725
 AliAnalysisTaskDiHadronPID.cxx:726
 AliAnalysisTaskDiHadronPID.cxx:727
 AliAnalysisTaskDiHadronPID.cxx:728
 AliAnalysisTaskDiHadronPID.cxx:729
 AliAnalysisTaskDiHadronPID.cxx:730
 AliAnalysisTaskDiHadronPID.cxx:731
 AliAnalysisTaskDiHadronPID.cxx:732
 AliAnalysisTaskDiHadronPID.cxx:733
 AliAnalysisTaskDiHadronPID.cxx:734
 AliAnalysisTaskDiHadronPID.cxx:735
 AliAnalysisTaskDiHadronPID.cxx:736
 AliAnalysisTaskDiHadronPID.cxx:737
 AliAnalysisTaskDiHadronPID.cxx:738
 AliAnalysisTaskDiHadronPID.cxx:739
 AliAnalysisTaskDiHadronPID.cxx:740
 AliAnalysisTaskDiHadronPID.cxx:741
 AliAnalysisTaskDiHadronPID.cxx:742
 AliAnalysisTaskDiHadronPID.cxx:743
 AliAnalysisTaskDiHadronPID.cxx:744
 AliAnalysisTaskDiHadronPID.cxx:745
 AliAnalysisTaskDiHadronPID.cxx:746
 AliAnalysisTaskDiHadronPID.cxx:747
 AliAnalysisTaskDiHadronPID.cxx:748
 AliAnalysisTaskDiHadronPID.cxx:749
 AliAnalysisTaskDiHadronPID.cxx:750
 AliAnalysisTaskDiHadronPID.cxx:751
 AliAnalysisTaskDiHadronPID.cxx:752
 AliAnalysisTaskDiHadronPID.cxx:753
 AliAnalysisTaskDiHadronPID.cxx:754
 AliAnalysisTaskDiHadronPID.cxx:755
 AliAnalysisTaskDiHadronPID.cxx:756
 AliAnalysisTaskDiHadronPID.cxx:757
 AliAnalysisTaskDiHadronPID.cxx:758
 AliAnalysisTaskDiHadronPID.cxx:759
 AliAnalysisTaskDiHadronPID.cxx:760
 AliAnalysisTaskDiHadronPID.cxx:761
 AliAnalysisTaskDiHadronPID.cxx:762
 AliAnalysisTaskDiHadronPID.cxx:763
 AliAnalysisTaskDiHadronPID.cxx:764
 AliAnalysisTaskDiHadronPID.cxx:765
 AliAnalysisTaskDiHadronPID.cxx:766
 AliAnalysisTaskDiHadronPID.cxx:767
 AliAnalysisTaskDiHadronPID.cxx:768
 AliAnalysisTaskDiHadronPID.cxx:769
 AliAnalysisTaskDiHadronPID.cxx:770
 AliAnalysisTaskDiHadronPID.cxx:771
 AliAnalysisTaskDiHadronPID.cxx:772
 AliAnalysisTaskDiHadronPID.cxx:773
 AliAnalysisTaskDiHadronPID.cxx:774
 AliAnalysisTaskDiHadronPID.cxx:775
 AliAnalysisTaskDiHadronPID.cxx:776
 AliAnalysisTaskDiHadronPID.cxx:777
 AliAnalysisTaskDiHadronPID.cxx:778
 AliAnalysisTaskDiHadronPID.cxx:779
 AliAnalysisTaskDiHadronPID.cxx:780
 AliAnalysisTaskDiHadronPID.cxx:781
 AliAnalysisTaskDiHadronPID.cxx:782
 AliAnalysisTaskDiHadronPID.cxx:783
 AliAnalysisTaskDiHadronPID.cxx:784
 AliAnalysisTaskDiHadronPID.cxx:785
 AliAnalysisTaskDiHadronPID.cxx:786
 AliAnalysisTaskDiHadronPID.cxx:787
 AliAnalysisTaskDiHadronPID.cxx:788
 AliAnalysisTaskDiHadronPID.cxx:789
 AliAnalysisTaskDiHadronPID.cxx:790
 AliAnalysisTaskDiHadronPID.cxx:791
 AliAnalysisTaskDiHadronPID.cxx:792
 AliAnalysisTaskDiHadronPID.cxx:793
 AliAnalysisTaskDiHadronPID.cxx:794
 AliAnalysisTaskDiHadronPID.cxx:795
 AliAnalysisTaskDiHadronPID.cxx:796
 AliAnalysisTaskDiHadronPID.cxx:797
 AliAnalysisTaskDiHadronPID.cxx:798
 AliAnalysisTaskDiHadronPID.cxx:799
 AliAnalysisTaskDiHadronPID.cxx:800
 AliAnalysisTaskDiHadronPID.cxx:801
 AliAnalysisTaskDiHadronPID.cxx:802
 AliAnalysisTaskDiHadronPID.cxx:803
 AliAnalysisTaskDiHadronPID.cxx:804
 AliAnalysisTaskDiHadronPID.cxx:805
 AliAnalysisTaskDiHadronPID.cxx:806
 AliAnalysisTaskDiHadronPID.cxx:807
 AliAnalysisTaskDiHadronPID.cxx:808
 AliAnalysisTaskDiHadronPID.cxx:809
 AliAnalysisTaskDiHadronPID.cxx:810
 AliAnalysisTaskDiHadronPID.cxx:811
 AliAnalysisTaskDiHadronPID.cxx:812
 AliAnalysisTaskDiHadronPID.cxx:813
 AliAnalysisTaskDiHadronPID.cxx:814
 AliAnalysisTaskDiHadronPID.cxx:815
 AliAnalysisTaskDiHadronPID.cxx:816
 AliAnalysisTaskDiHadronPID.cxx:817
 AliAnalysisTaskDiHadronPID.cxx:818
 AliAnalysisTaskDiHadronPID.cxx:819
 AliAnalysisTaskDiHadronPID.cxx:820
 AliAnalysisTaskDiHadronPID.cxx:821
 AliAnalysisTaskDiHadronPID.cxx:822
 AliAnalysisTaskDiHadronPID.cxx:823
 AliAnalysisTaskDiHadronPID.cxx:824
 AliAnalysisTaskDiHadronPID.cxx:825
 AliAnalysisTaskDiHadronPID.cxx:826
 AliAnalysisTaskDiHadronPID.cxx:827
 AliAnalysisTaskDiHadronPID.cxx:828
 AliAnalysisTaskDiHadronPID.cxx:829
 AliAnalysisTaskDiHadronPID.cxx:830
 AliAnalysisTaskDiHadronPID.cxx:831
 AliAnalysisTaskDiHadronPID.cxx:832
 AliAnalysisTaskDiHadronPID.cxx:833
 AliAnalysisTaskDiHadronPID.cxx:834
 AliAnalysisTaskDiHadronPID.cxx:835
 AliAnalysisTaskDiHadronPID.cxx:836
 AliAnalysisTaskDiHadronPID.cxx:837
 AliAnalysisTaskDiHadronPID.cxx:838
 AliAnalysisTaskDiHadronPID.cxx:839
 AliAnalysisTaskDiHadronPID.cxx:840
 AliAnalysisTaskDiHadronPID.cxx:841
 AliAnalysisTaskDiHadronPID.cxx:842
 AliAnalysisTaskDiHadronPID.cxx:843
 AliAnalysisTaskDiHadronPID.cxx:844
 AliAnalysisTaskDiHadronPID.cxx:845
 AliAnalysisTaskDiHadronPID.cxx:846
 AliAnalysisTaskDiHadronPID.cxx:847
 AliAnalysisTaskDiHadronPID.cxx:848
 AliAnalysisTaskDiHadronPID.cxx:849
 AliAnalysisTaskDiHadronPID.cxx:850
 AliAnalysisTaskDiHadronPID.cxx:851
 AliAnalysisTaskDiHadronPID.cxx:852
 AliAnalysisTaskDiHadronPID.cxx:853
 AliAnalysisTaskDiHadronPID.cxx:854
 AliAnalysisTaskDiHadronPID.cxx:855
 AliAnalysisTaskDiHadronPID.cxx:856
 AliAnalysisTaskDiHadronPID.cxx:857
 AliAnalysisTaskDiHadronPID.cxx:858
 AliAnalysisTaskDiHadronPID.cxx:859
 AliAnalysisTaskDiHadronPID.cxx:860
 AliAnalysisTaskDiHadronPID.cxx:861
 AliAnalysisTaskDiHadronPID.cxx:862
 AliAnalysisTaskDiHadronPID.cxx:863
 AliAnalysisTaskDiHadronPID.cxx:864
 AliAnalysisTaskDiHadronPID.cxx:865
 AliAnalysisTaskDiHadronPID.cxx:866
 AliAnalysisTaskDiHadronPID.cxx:867
 AliAnalysisTaskDiHadronPID.cxx:868
 AliAnalysisTaskDiHadronPID.cxx:869
 AliAnalysisTaskDiHadronPID.cxx:870
 AliAnalysisTaskDiHadronPID.cxx:871
 AliAnalysisTaskDiHadronPID.cxx:872
 AliAnalysisTaskDiHadronPID.cxx:873
 AliAnalysisTaskDiHadronPID.cxx:874
 AliAnalysisTaskDiHadronPID.cxx:875
 AliAnalysisTaskDiHadronPID.cxx:876
 AliAnalysisTaskDiHadronPID.cxx:877
 AliAnalysisTaskDiHadronPID.cxx:878
 AliAnalysisTaskDiHadronPID.cxx:879
 AliAnalysisTaskDiHadronPID.cxx:880
 AliAnalysisTaskDiHadronPID.cxx:881
 AliAnalysisTaskDiHadronPID.cxx:882
 AliAnalysisTaskDiHadronPID.cxx:883
 AliAnalysisTaskDiHadronPID.cxx:884
 AliAnalysisTaskDiHadronPID.cxx:885
 AliAnalysisTaskDiHadronPID.cxx:886
 AliAnalysisTaskDiHadronPID.cxx:887
 AliAnalysisTaskDiHadronPID.cxx:888
 AliAnalysisTaskDiHadronPID.cxx:889
 AliAnalysisTaskDiHadronPID.cxx:890
 AliAnalysisTaskDiHadronPID.cxx:891
 AliAnalysisTaskDiHadronPID.cxx:892
 AliAnalysisTaskDiHadronPID.cxx:893
 AliAnalysisTaskDiHadronPID.cxx:894
 AliAnalysisTaskDiHadronPID.cxx:895
 AliAnalysisTaskDiHadronPID.cxx:896
 AliAnalysisTaskDiHadronPID.cxx:897
 AliAnalysisTaskDiHadronPID.cxx:898
 AliAnalysisTaskDiHadronPID.cxx:899
 AliAnalysisTaskDiHadronPID.cxx:900
 AliAnalysisTaskDiHadronPID.cxx:901
 AliAnalysisTaskDiHadronPID.cxx:902
 AliAnalysisTaskDiHadronPID.cxx:903
 AliAnalysisTaskDiHadronPID.cxx:904
 AliAnalysisTaskDiHadronPID.cxx:905
 AliAnalysisTaskDiHadronPID.cxx:906
 AliAnalysisTaskDiHadronPID.cxx:907
 AliAnalysisTaskDiHadronPID.cxx:908
 AliAnalysisTaskDiHadronPID.cxx:909
 AliAnalysisTaskDiHadronPID.cxx:910
 AliAnalysisTaskDiHadronPID.cxx:911
 AliAnalysisTaskDiHadronPID.cxx:912
 AliAnalysisTaskDiHadronPID.cxx:913
 AliAnalysisTaskDiHadronPID.cxx:914
 AliAnalysisTaskDiHadronPID.cxx:915
 AliAnalysisTaskDiHadronPID.cxx:916
 AliAnalysisTaskDiHadronPID.cxx:917
 AliAnalysisTaskDiHadronPID.cxx:918
 AliAnalysisTaskDiHadronPID.cxx:919
 AliAnalysisTaskDiHadronPID.cxx:920
 AliAnalysisTaskDiHadronPID.cxx:921
 AliAnalysisTaskDiHadronPID.cxx:922
 AliAnalysisTaskDiHadronPID.cxx:923
 AliAnalysisTaskDiHadronPID.cxx:924
 AliAnalysisTaskDiHadronPID.cxx:925
 AliAnalysisTaskDiHadronPID.cxx:926
 AliAnalysisTaskDiHadronPID.cxx:927
 AliAnalysisTaskDiHadronPID.cxx:928
 AliAnalysisTaskDiHadronPID.cxx:929
 AliAnalysisTaskDiHadronPID.cxx:930
 AliAnalysisTaskDiHadronPID.cxx:931
 AliAnalysisTaskDiHadronPID.cxx:932
 AliAnalysisTaskDiHadronPID.cxx:933
 AliAnalysisTaskDiHadronPID.cxx:934
 AliAnalysisTaskDiHadronPID.cxx:935
 AliAnalysisTaskDiHadronPID.cxx:936
 AliAnalysisTaskDiHadronPID.cxx:937
 AliAnalysisTaskDiHadronPID.cxx:938
 AliAnalysisTaskDiHadronPID.cxx:939
 AliAnalysisTaskDiHadronPID.cxx:940
 AliAnalysisTaskDiHadronPID.cxx:941
 AliAnalysisTaskDiHadronPID.cxx:942
 AliAnalysisTaskDiHadronPID.cxx:943
 AliAnalysisTaskDiHadronPID.cxx:944
 AliAnalysisTaskDiHadronPID.cxx:945
 AliAnalysisTaskDiHadronPID.cxx:946
 AliAnalysisTaskDiHadronPID.cxx:947
 AliAnalysisTaskDiHadronPID.cxx:948
 AliAnalysisTaskDiHadronPID.cxx:949
 AliAnalysisTaskDiHadronPID.cxx:950
 AliAnalysisTaskDiHadronPID.cxx:951
 AliAnalysisTaskDiHadronPID.cxx:952
 AliAnalysisTaskDiHadronPID.cxx:953
 AliAnalysisTaskDiHadronPID.cxx:954
 AliAnalysisTaskDiHadronPID.cxx:955
 AliAnalysisTaskDiHadronPID.cxx:956
 AliAnalysisTaskDiHadronPID.cxx:957
 AliAnalysisTaskDiHadronPID.cxx:958
 AliAnalysisTaskDiHadronPID.cxx:959
 AliAnalysisTaskDiHadronPID.cxx:960
 AliAnalysisTaskDiHadronPID.cxx:961
 AliAnalysisTaskDiHadronPID.cxx:962
 AliAnalysisTaskDiHadronPID.cxx:963
 AliAnalysisTaskDiHadronPID.cxx:964
 AliAnalysisTaskDiHadronPID.cxx:965
 AliAnalysisTaskDiHadronPID.cxx:966
 AliAnalysisTaskDiHadronPID.cxx:967
 AliAnalysisTaskDiHadronPID.cxx:968
 AliAnalysisTaskDiHadronPID.cxx:969
 AliAnalysisTaskDiHadronPID.cxx:970
 AliAnalysisTaskDiHadronPID.cxx:971
 AliAnalysisTaskDiHadronPID.cxx:972
 AliAnalysisTaskDiHadronPID.cxx:973
 AliAnalysisTaskDiHadronPID.cxx:974
 AliAnalysisTaskDiHadronPID.cxx:975
 AliAnalysisTaskDiHadronPID.cxx:976
 AliAnalysisTaskDiHadronPID.cxx:977
 AliAnalysisTaskDiHadronPID.cxx:978
 AliAnalysisTaskDiHadronPID.cxx:979
 AliAnalysisTaskDiHadronPID.cxx:980
 AliAnalysisTaskDiHadronPID.cxx:981
 AliAnalysisTaskDiHadronPID.cxx:982
 AliAnalysisTaskDiHadronPID.cxx:983
 AliAnalysisTaskDiHadronPID.cxx:984
 AliAnalysisTaskDiHadronPID.cxx:985
 AliAnalysisTaskDiHadronPID.cxx:986
 AliAnalysisTaskDiHadronPID.cxx:987
 AliAnalysisTaskDiHadronPID.cxx:988
 AliAnalysisTaskDiHadronPID.cxx:989
 AliAnalysisTaskDiHadronPID.cxx:990
 AliAnalysisTaskDiHadronPID.cxx:991
 AliAnalysisTaskDiHadronPID.cxx:992
 AliAnalysisTaskDiHadronPID.cxx:993
 AliAnalysisTaskDiHadronPID.cxx:994
 AliAnalysisTaskDiHadronPID.cxx:995
 AliAnalysisTaskDiHadronPID.cxx:996
 AliAnalysisTaskDiHadronPID.cxx:997
 AliAnalysisTaskDiHadronPID.cxx:998
 AliAnalysisTaskDiHadronPID.cxx:999
 AliAnalysisTaskDiHadronPID.cxx:1000
 AliAnalysisTaskDiHadronPID.cxx:1001
 AliAnalysisTaskDiHadronPID.cxx:1002
 AliAnalysisTaskDiHadronPID.cxx:1003
 AliAnalysisTaskDiHadronPID.cxx:1004
 AliAnalysisTaskDiHadronPID.cxx:1005
 AliAnalysisTaskDiHadronPID.cxx:1006
 AliAnalysisTaskDiHadronPID.cxx:1007