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.                  * 
**************************************************************************/

// -----------------------------------------------------------------------
//  Track Cut class for the DiHadronPID analysis.
// -----------------------------------------------------------------------
//  Author: Misha Veldhoen (misha.veldhoen@cern.ch)

#include "AliAODTrackCutsDiHadronPID.h"

#include <iostream>
using namespace std;

#include "TMath.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TNamed.h"
#include "TFormula.h"
#include "TIterator.h"

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

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

#include "AliTrackDiHadronPID.h"
#include "AliHistToolsDiHadronPID.h"
#include "AliFunctionsDiHadronPID.h"

ClassImp(AliAODTrackCutsDiHadronPID);

// -----------------------------------------------------------------------
AliAODTrackCutsDiHadronPID::AliAODTrackCutsDiHadronPID():
	TNamed(),
	fMinPt(0.),
	fMaxPt(10.),
	fFilterMask(0),
	fMaxEta(-999.),
	fMaxRapidity(-999.),
	fMinimumNumberOfTPCClusters(-999),
	fDemandedFlags(0),
	fMinSPDHitsForPtDeptDCAcut(0),
	fPtDeptDCAxyCutFormula(0x0),
	fDCAzCut(999.),
	fIsMC(kFALSE),
	fLowPtNSigmaTOFOnly(kFALSE),
	fUseNSigmaOnPIDAxes(kFALSE),
	fTestPt(kFALSE),
	fTestFilterMask(kFALSE),
	fTestMaxEta(kFALSE),
	fTestMaxRapidity(kFALSE),
	fTestFlags(kFALSE),
	fTestNumberOfTPCClusters(kFALSE),
	fTestSPDAny(kFALSE),
	fTestTOFmismatch(kFALSE),
	fTestPtDeptDCAcut(kFALSE),
	fDataTrackQAHistos(0x0),
	fHistAcceptedFilterBits(0x0),
	fRelevantBitsArray(0x0),
	fTOFMatchingStat(0x0),
	fPrimRecMCTrackQAHistos(0x0),
	fPrimGenMCTrackQAHistos(0x0),
	fSecRecMCTrackQAHistos(0x0),
	fSecGenMCTrackQAHistos(0x0),
	fNPtBins(0),	
	fNEtaBins(32),
	fNPhiBins(32),
	fDebug(0)
	
 {

 	// 
 	// Default constructor
 	//

 	cout<<"AliAODTrackCutsDiHadronPID Default Constructor Called."<<endl;
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	for (Int_t iHistoName = 0; iHistoName < 12; iHistoName++) {
 		
 		// Initialize the data histograms.
 		if (iHistoName < 3) {
 			fHistDataPt[iHistoName] = 0x0;
 		 	fHistDataPhiEtaPt[iHistoName] = 0x0;	
 		 	fHistDataNTracks[iHistoName] = 0x0;

  			// DCA histograms. 
  			fHistDataDCAxy[iHistoName] = 0x0;
  			fHistDataDCAz[iHistoName] = 0x0;

  			// Initialize PID histograms.
  			for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
  				for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
  					fHistPrimRecPID[iHistoName][iSpecies][iPtClass] = 0x0;
  					fHistPrimRecMismatch[iHistoName][iSpecies][iPtClass] = 0x0;
  					fHistDataPID[iHistoName][iSpecies][iPtClass] = 0x0;
   					fHistTOFMismatch[iHistoName][iSpecies][iPtClass] = 0x0; 				  					
  					fHistTPCTOFMismatch[iHistoName][iSpecies][iPtClass] = 0x0;
  				}
  			}
 		}

  		fNTracks[iHistoName] = 0;

 		// Initialize data DCA for one sigma.
 		fHistDataDCAxyOneSigma[iHistoName] = 0x0;

 		// Initialize MC histograms.
 		fHistPrimGenMCPt[iHistoName] = 0x0;
 		fHistPrimRecPtGenPt[iHistoName] = 0x0;
 		fHistPrimGenMCPhiEtaPt[iHistoName] = 0x0;
 		fHistPrimRecMCPt[iHistoName] = 0x0;
 		fHistPrimRecMCPhiEtaPt[iHistoName] = 0x0;
 		fHistPrimRecNTracks[iHistoName] = 0x0;

 		fHistSecGenMCPt[iHistoName] = 0x0;
 		fHistSecGenMCPhiEtaPt[iHistoName] = 0x0;
 		fHistSecRecMCPt[iHistoName] = 0x0;
 		fHistSecRecMCPhiEtaPt[iHistoName] = 0x0;

 		// Initialze MC DCA histograms
 		fHistPrimRecMCDCA[iHistoName] = 0x0;
 		fHistSecRecMCDCAMat[iHistoName] = 0x0;
 		fHistSecRecMCDCAWeak[iHistoName] = 0x0;

 		// Initialize other stuff.
 		fHistRequested[iHistoName] = kFALSE;
		f3DSpectraEnabeled[iHistoName] = kFALSE;
		fPIDHistosEnabeled[iHistoName] = kFALSE;
 	}

 	// TODO: It would be a bit neater to initialize all values to zero
 	// instead of the default values...
 	InitializeDefaultHistoNamesAndAxes();

}

// -----------------------------------------------------------------------
AliAODTrackCutsDiHadronPID::AliAODTrackCutsDiHadronPID(const char* name):
	TNamed(name,"AOD Track Cuts"),
	fMinPt(0.),
	fMaxPt(10.),
	fFilterMask(0),
	fMaxEta(-999.),
	fMaxRapidity(-999.),
	fMinimumNumberOfTPCClusters(-999),
	fDemandedFlags(0),
	fMinSPDHitsForPtDeptDCAcut(0),
	fPtDeptDCAxyCutFormula(0x0),
	fDCAzCut(999.),
	fIsMC(kFALSE),
	fLowPtNSigmaTOFOnly(kFALSE),
	fUseNSigmaOnPIDAxes(kFALSE),	
	fTestPt(kFALSE),	
	fTestFilterMask(kFALSE),
	fTestMaxEta(kFALSE),
	fTestMaxRapidity(kFALSE),
	fTestFlags(kFALSE),
	fTestNumberOfTPCClusters(kFALSE),
	fTestSPDAny(kFALSE),
	fTestTOFmismatch(kFALSE),
	fTestPtDeptDCAcut(kFALSE),
	fDataTrackQAHistos(0x0),
	fHistAcceptedFilterBits(0x0),
	fRelevantBitsArray(0x0),	
	fTOFMatchingStat(0x0),	
	fPrimRecMCTrackQAHistos(0x0),
	fPrimGenMCTrackQAHistos(0x0),
	fSecRecMCTrackQAHistos(0x0),
	fSecGenMCTrackQAHistos(0x0),
	fNPtBins(0),
	fNEtaBins(32),
	fNPhiBins(32),	
	fDebug(0)

{

	//
	// Named constructor
	//

	cout<<"AliAODTrackCutsDiHadronPID Named Constructor Called."<<endl;
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
		
	for (Int_t iHistoName = 0; iHistoName < 12; iHistoName++) {
 		
 		// Initialize the data histograms.
 		if (iHistoName < 3) {
 			fHistDataPt[iHistoName] = 0x0;
 			fHistDataPhiEtaPt[iHistoName] = 0x0;
 		 	fHistDataNTracks[iHistoName] = 0x0;

  			// DCA histograms. 
  			fHistDataDCAxy[iHistoName] = 0x0;
  			fHistDataDCAz[iHistoName] = 0x0;

 			// Initialize PID histograms.
  			for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
  				for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
  					fHistPrimRecPID[iHistoName][iSpecies][iPtClass] = 0x0;  
  					fHistPrimRecMismatch[iHistoName][iSpecies][iPtClass] = 0x0;					
  					fHistDataPID[iHistoName][iSpecies][iPtClass] = 0x0;
   					fHistTOFMismatch[iHistoName][iSpecies][iPtClass] = 0x0; 				  					
   					fHistTPCTOFMismatch[iHistoName][iSpecies][iPtClass] = 0x0; 				  					

  				}
  			}
 		}

  		fNTracks[iHistoName] = 0;

		// Initialize data DCA for one sigma.
 		fHistDataDCAxyOneSigma[iHistoName] = 0x0;

 		// Initialize MC histograms.
 		fHistPrimGenMCPt[iHistoName] = 0x0;
  		fHistPrimRecPtGenPt[iHistoName] = 0x0;		
 		fHistPrimGenMCPhiEtaPt[iHistoName] = 0x0;
 		fHistPrimRecMCPt[iHistoName] = 0x0;
 		fHistPrimRecMCPhiEtaPt[iHistoName] = 0x0;
 		fHistPrimRecNTracks[iHistoName] = 0x0;

 		fHistSecGenMCPt[iHistoName] = 0x0;
 		fHistSecGenMCPhiEtaPt[iHistoName] = 0x0;
 		fHistSecRecMCPt[iHistoName] = 0x0;
 		fHistSecRecMCPhiEtaPt[iHistoName] = 0x0;

 		// Initialze MC DCA histograms
 		fHistPrimRecMCDCA[iHistoName] = 0x0;
		fHistSecRecMCDCAMat[iHistoName] = 0x0;
 		fHistSecRecMCDCAWeak[iHistoName] = 0x0;

 		// Initialize other stuff.
 		fHistRequested[iHistoName] = kFALSE;
		f3DSpectraEnabeled[iHistoName] = kFALSE;
		fPIDHistosEnabeled[iHistoName] = kFALSE;
 	}

 	InitializeDefaultHistoNamesAndAxes();

}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::InitializeDefaultHistoNamesAndAxes() {

	// Initializes the histogram name conventions and the ranges of all the histograms
	// by their default values. This method should only be called by the
	// (default) constructor.

	// TODO: User should be able to change these standard values at initialization.
	// TODO: User should be able to retrieve all these variables with appropriate Getters.

	cout<<"AliAODTrackCutsDiHadronPID - Initializing Default Histogram Names and axes..."<<endl;
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Setting the Pt axis for all histograms except the PID and Mismatch histograms -> Now the same for 
	// PID histograms.
 	Double_t ptaxis[52] = {0.500,0.525,0.550,0.575,0.600,0.625,0.650,0.675,0.700,
 							0.75,0.80,0.85,0.90,0.95,1.00,
 							1.05,1.10,1.15,1.20,1.25,1.30,1.35,1.40,1.45,1.50,1.55,1.60,1.65,1.70,
 							1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3.0,
 							3.2,3.4,3.6,3.8,4.0,4.2,4.4,4.6,4.8,5.0};
	for (Int_t iPtBins = 0; iPtBins < 52; iPtBins++) {fPtAxis[iPtBins] = ptaxis[iPtBins];}
 	fNPtBins = 51;
/*
 	Double_t ptaxis[57] = {0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00,
							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.7,2.8,2.9,3.0,
							3.2,3.4,3.6,3.8,4.0,4.2,4.4,4.6,4.8,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0};
	for (Int_t iPtBins = 0; iPtBins < 57; iPtBins++) {fPtAxis[iPtBins] = ptaxis[iPtBins];}
 	fNPtBins = 56;
*/

	// Setting the pt range of the five PID histogram pt classes. 	
	Double_t ptboundarypid[6] = {0.5,0.7,1.0,1.7,3.0,5.0};
	for (Int_t iPtBoundary = 0; iPtBoundary < 6; iPtBoundary++) {fPtBoundaryPID[iPtBoundary] = ptboundarypid[iPtBoundary];}

	// Setting the number of bins in pt for the five PID histogram pt classes.
	Int_t nptbinspid[5] = {8,6,14,13,10};
	for (Int_t iPtBins = 0; iPtBins < 5; iPtBins++) {fNPtBinsPID[iPtBins] = nptbinspid[iPtBins];}

	// Setting the TOF axes for the PID histograms.
	//Double_t tofsigmaapprox = 80.;
	Double_t toflowerbound[5][3] = {{-2000.,-6000.,-10000.},{-2000.,-4000.,-10000.},{-1000.,-2000.,-5000.},{-1000.,-1000.,-2500.},{-500.,-500.,-1000.}};
	Double_t tofupperbound[5][3] = {{10000.,10000.,6000.},{10000.,8000.,6000.},{6000.,6000.,6000.},{6000.,6000.,6000.},{4000.,4000.,6000.}};
	Int_t tofbins[5][3] = {{120,160,160},{120,120,160},{140,140,165},{140,140,170},{90,90,140}};
	for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
		for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
			fTOFLowerBound[iPtClass][iSpecies] = toflowerbound[iPtClass][iSpecies];
			//if (fUseNSigmaOnPIDAxes) {toflowerbound[iPtClass][iSpecies] /= tofsigmaapprox;}
			fTOFUpperBound[iPtClass][iSpecies] = tofupperbound[iPtClass][iSpecies];
			//if (fUseNSigmaOnPIDAxes) {tofupperbound[iPtClass][iSpecies] /= tofsigmaapprox;}
			fTOFbins[iPtClass][iSpecies] = tofbins[iPtClass][iSpecies];
		}
	}

	// Setting the TPC axes for the PID histograms.
	//Double_t tpcsigmaaxpprox = 3.5;
	Double_t tpclowerbound[5][3] = {{-20.,-50.,-100.},{-20.,-30.,-80.},{-25.,-25.,-45.},{-25.,-25.,-45.},{-25.,-20.,-20.}};
	Double_t tpcupperbound[5][3] = {{60.,30.,20.},{60.,40.,20.},{50.,50.,25.},{45.,45.,25.},{25.,30.,30.}}; // Check highest pT bin boundaries for K,p
	Int_t tpcbins[5][3] = {{80,80,120},{80,70,100},{75,75,70},{70,70,70},{50,50,50}};
	for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
		for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
			fTPCLowerBound[iPtClass][iSpecies] = tpclowerbound[iPtClass][iSpecies];
			//if (fUseNSigmaOnPIDAxes) {tpclowerbound[iPtClass][iSpecies] /= tpcsigmaaxpprox;}
			fTPCUpperBound[iPtClass][iSpecies] = tpcupperbound[iPtClass][iSpecies];
			//if (fUseNSigmaOnPIDAxes) {tpcupperbound[iPtClass][iSpecies] /= tpcsigmaaxpprox;}
			fTPCbins[iPtClass][iSpecies] = tpcbins[iPtClass][iSpecies];
		}
	}

	// Names for the 12 (species,charge) combinations considered.
	const char* histoname[12] = {"AllCharged","Pos","Neg","AllPion","PosPion","NegPion","AllKaon","PosKaon","NegKaon","AllProton","PosProton","NegProton"};
	const char* histolatex[12] = {"ch","ch^{+}","ch^{-}","#pi^{+/-}","#pi^{+}","#pi^{-}","K^{+/-}","K^{+}","K^{-}","p/#bar{p}","p","#bar{p}"};
	for (Int_t iHistoName = 0; iHistoName < 12; iHistoName++) {
 		fHistoName[iHistoName] = histoname[iHistoName];
 		fHistoLatex[iHistoName] = histolatex[iHistoName];
 	}

 	// Names of the 3 species considered.
	const char* particlename[3] = {"Pion","Kaon","Proton"};
	for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {fParticleName[iSpecies] = particlename[iSpecies];}

	// Names of the 5 pt classes considered for the PID histograms.
	const char* ptclassname[5] = {"VeryLowPt","LowPt","MedPt","MedHighPt","HighPt"};
	for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {fPtClassName[iPtClass] = ptclassname[iPtClass];}

}

// -----------------------------------------------------------------------
AliAODTrackCutsDiHadronPID::~AliAODTrackCutsDiHadronPID() {

	//
	// Destructor
	//

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

 	if (fDataTrackQAHistos) delete fDataTrackQAHistos;
 	fDataTrackQAHistos = 0x0;
 	if (fPrimRecMCTrackQAHistos) delete fPrimRecMCTrackQAHistos;
 	fPrimRecMCTrackQAHistos = 0x0;
 	if (fPrimGenMCTrackQAHistos) delete fPrimGenMCTrackQAHistos;
 	fPrimGenMCTrackQAHistos = 0x0;
 	if (fSecRecMCTrackQAHistos) delete fSecRecMCTrackQAHistos;
 	fSecRecMCTrackQAHistos = 0x0;
 	if (fSecGenMCTrackQAHistos) delete fSecGenMCTrackQAHistos;
	fSecGenMCTrackQAHistos = 0x0;

}

// -----------------------------------------------------------------------
Long64_t AliAODTrackCutsDiHadronPID::Merge(TCollection* list) {

	//
	// Merger. 
	// 

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

	Bool_t HistosOK = kTRUE;

	if (fIsMC) {
		if (!fPrimGenMCTrackQAHistos||!fSecGenMCTrackQAHistos||!fPrimRecMCTrackQAHistos||!fSecRecMCTrackQAHistos) {HistosOK = kFALSE;}
	} else {
		if (!fDataTrackQAHistos) {HistosOK = kFALSE;}
	}

	if (!HistosOK) {
		cout<<"AliAODTrackCutsDiHadronPID::Merge() - Warning, current object's histograms are missing... Generating."<<endl;
		CreateHistos();
	}

	if (!list) {
		//cout<<"No list available..."<<endl;
		return 0;
	}
	if (list->IsEmpty()) {
		//cout<<"List is empty..."<<endl;
		return 1;
	}

	//Int_t NEntries = list->GetEntries();
	//cout<<"Supplied list has "<<NEntries<<" entries."<<endl;

	TIterator* iter = list->MakeIterator();
	TObject* obj;

	// List of collections
	TList collection_fDataTrackQAHistos;
	TList collection_fPrimRecMCTrackQAHistos;
	TList collection_fPrimGenMCTrackQAHistos;
	TList collection_fSecRecMCTrackQAHistos;
	TList collection_fSecGenMCTrackQAHistos;

	Int_t count = 0;

  	while ((obj = iter->Next())) {
    	AliAODTrackCutsDiHadronPID* entry = dynamic_cast<AliAODTrackCutsDiHadronPID*> (obj);
    	if (entry == 0) continue;

    	// Check if the object to be merged really has the same name! (FIXME!)

    	// Getting the lists from obj.
    	TList* list_fDataTrackQAHistos = entry->GetListOfDataQAHistos();
    	TList* list_fPrimRecMCTrackQAHistos = entry->GetListOfPrimRecMCTrackQAHistos();
    	TList* list_fPrimGenMCTrackQAHistos = entry->GetListOfPrimGenMCTrackQAHistos();
    	TList* list_fSecRecMCTrackQAHistos = entry->GetListOfSecRecMCTrackQAHistos();
    	TList* list_fSecGenMCTrackQAHistos = entry->GetListOfSecGenMCTrackQAHistos();

    	// Adding the retrieved lists to the collection.
    	if (list_fDataTrackQAHistos) collection_fDataTrackQAHistos.Add(list_fDataTrackQAHistos);
    	if (list_fPrimRecMCTrackQAHistos) collection_fPrimRecMCTrackQAHistos.Add(list_fPrimRecMCTrackQAHistos);
    	if (list_fPrimGenMCTrackQAHistos) collection_fPrimGenMCTrackQAHistos.Add(list_fPrimGenMCTrackQAHistos);
    	if (list_fSecRecMCTrackQAHistos) collection_fSecRecMCTrackQAHistos.Add(list_fSecRecMCTrackQAHistos);
    	if (list_fSecGenMCTrackQAHistos) collection_fSecGenMCTrackQAHistos.Add(list_fSecGenMCTrackQAHistos);

    	//cout<<"Entries intermediate list Data: "<<collection_fDataTrackQAHistos.GetEntries()<<endl;
    	//cout<<"Entries intermediate list RecMC: "<<collection_fPrimRecMCTrackQAHistos.GetEntries()<<endl;

    	count++;
    }

    // Merging. Note that we require the original list to exist.
    //  * Assume that if the collection happens to be empty, then nothing will happen.
    //  |-> This of course leads to some problems, since if the first file does not
    //  |   have such a list, then the merged file will have no results...
    //  |   IDEA: if fDataTrackQAHistos does not exist, then create a new one. (TO DO)
    //  * All other variables are taken from the original object.
    if (fDataTrackQAHistos) fDataTrackQAHistos->Merge(&collection_fDataTrackQAHistos);
    if (fPrimRecMCTrackQAHistos) fPrimRecMCTrackQAHistos->Merge(&collection_fPrimRecMCTrackQAHistos);
    if (fPrimGenMCTrackQAHistos) fPrimGenMCTrackQAHistos->Merge(&collection_fPrimGenMCTrackQAHistos);    
    if (fSecRecMCTrackQAHistos) fSecRecMCTrackQAHistos->Merge(&collection_fSecRecMCTrackQAHistos);
    if (fSecGenMCTrackQAHistos) fSecGenMCTrackQAHistos->Merge(&collection_fSecGenMCTrackQAHistos);

    delete iter;

	return count+1;
	
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::PrintCuts() const { /* NOT IMPLEMENTED */ }

// -----------------------------------------------------------------------
TList* AliAODTrackCutsDiHadronPID::GetListOfDataQAHistos() const {

	// Returns the list of data histograms.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	if (fDataTrackQAHistos) {
		return fDataTrackQAHistos;
	} else {
		return 0x0;
	}

}

// -----------------------------------------------------------------------
TList* AliAODTrackCutsDiHadronPID::GetListOfPrimRecMCTrackQAHistos() const {

	// Returns the list of histograms of reconstructed primary tracks.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	if (fPrimRecMCTrackQAHistos) {
		return fPrimRecMCTrackQAHistos;
	} else {
		return 0x0;
	}

}

// -----------------------------------------------------------------------
TList* AliAODTrackCutsDiHadronPID::GetListOfPrimGenMCTrackQAHistos() const {

	// Returns the list of histograms of generator level primary particles.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	if (fPrimGenMCTrackQAHistos) {
		return fPrimGenMCTrackQAHistos;
	} else {
		return 0x0;
	}

}

// -----------------------------------------------------------------------
TList* AliAODTrackCutsDiHadronPID::GetListOfSecRecMCTrackQAHistos() const  {

	// Returns the list of histograms of reconstructed secondary tracks.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	
	
	if (fSecRecMCTrackQAHistos) {
		return fSecRecMCTrackQAHistos;
	} else {
		return 0x0;
	}

}

// -----------------------------------------------------------------------
TList* AliAODTrackCutsDiHadronPID::GetListOfSecGenMCTrackQAHistos() const {

	// Returns the list of histograms of generator level secondary particles.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	if (fSecGenMCTrackQAHistos) {
		return fSecGenMCTrackQAHistos;
	} else {
		return 0x0;
	}

}

// -----------------------------------------------------------------------
TH1F* AliAODTrackCutsDiHadronPID::GetHistDataTOFProjection(Int_t charge, Int_t species, Int_t ptbin) {

	// Returns a projection in TOF of the data histogram.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	Int_t ptclass = GetPtClass(ptbin);
	if (ptclass == -1) return 0x0;
	Int_t bininptclass = GetBinInPtClass(ptbin);

	// Retrieve original the 3D histogram (we don't own it).
	TH3F* htmp = (TH3F*)GetHistData(Form("fHistDataPID%s%s%s",fHistoName[charge].Data(),fParticleName[species].Data(),fPtClassName[ptclass].Data()));

	// Make the projection.
	TH1F* htmp_proj = (TH1F*)htmp->ProjectionY(Form("TOFprojection_%i_%i_%i",charge,species,ptbin),bininptclass,bininptclass);

	// Some settings of the output histogram.
	htmp_proj->SetDirectory(0);
	htmp_proj->SetTitle(Form("%5.3f < p_{T} < %5.3f",GetPtMinPID(ptbin),GetPtMaxPID(ptbin)));
	htmp_proj->Sumw2();

	return htmp_proj;

}

// -----------------------------------------------------------------------
TObjArray* AliAODTrackCutsDiHadronPID::GetDataTOFProjection(Int_t charge, Int_t species) {

	// Returns a TObjArray with all TOF histograms (as needed by AliSpectrumDiHadronPID)
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	TObjArray* aout = new TObjArray(GetNPtBinsPID());
	aout->SetOwner(kTRUE);
	for (Int_t iPtBin = 1; iPtBin < (GetNPtBinsPID() + 1); iPtBin++) {
		aout->AddLast((TH1F*)GetHistDataTOFProjection(charge, species, iPtBin));
	}

	return aout;

}

// -----------------------------------------------------------------------
TH1F* AliAODTrackCutsDiHadronPID::GetHistDataTOFMismatch(Int_t charge, Int_t species, Int_t ptbin) {

	// Returns a projection in TOF of the mismatch histogram.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	Int_t ptclass = GetPtClass(ptbin);
	if (ptclass == -1) return 0x0;
	Int_t bininptclass = GetBinInPtClass(ptbin);

	// Retrieve original the 2D histogram (we don't own it).
	TH2F* htmp = (TH2F*)GetHistData(Form("fHistTOFMismatch%s%s%s",fHistoName[charge].Data(),fParticleName[species].Data(),fPtClassName[ptclass].Data()));

	// Make the projection.
	TH1F* htmp_proj = (TH1F*)htmp->ProjectionY(Form("TOFprojectionMismatch_%i_%i_%i",charge,species,ptbin),bininptclass,bininptclass);

	// Some settings of the output histogram.
	htmp_proj->SetDirectory(0);
	htmp_proj->SetTitle(Form("%5.3f < p_{T} < %5.3f",GetPtMinPID(ptbin),GetPtMaxPID(ptbin)));
	htmp_proj->Sumw2();

	return htmp_proj;

}

// -----------------------------------------------------------------------
TObjArray* AliAODTrackCutsDiHadronPID::GetDataTOFMismatch(Int_t charge, Int_t species) {

	// Returns a TObjArray with all TOF mismatch histograms (as needed by AliSpectrumDiHadronPID)
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	TObjArray* aout = new TObjArray(GetNPtBinsPID());
	aout->SetOwner(kTRUE);
	for (Int_t iPtBin = 1; iPtBin < (GetNPtBinsPID() + 1); iPtBin++) {
		aout->AddLast((TH1F*)GetHistDataTOFMismatch(charge, species, iPtBin));
	}

	return aout;

}

// -----------------------------------------------------------------------
TH2F* AliAODTrackCutsDiHadronPID::GetHistDataTPCTOFProjection(Int_t charge, Int_t species, Int_t ptbin) {
	
	// Returns a projection in TOF of the data histogram.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	Int_t ptclass = GetPtClass(ptbin);
	if (ptclass == -1) return 0x0;
	Int_t bininptclass = GetBinInPtClass(ptbin);

	// Retrieve original the 3D histogram (we don't own it).
	TH3F* htmp = (TH3F*)GetHistData(Form("fHistDataPID%s%s%s",fHistoName[charge].Data(),fParticleName[species].Data(),fPtClassName[ptclass].Data()));

	// Make the projection.
	TAxis* ptaxis = htmp->GetXaxis();
	Int_t NbinsPt = ptaxis->GetNbins();
	//cout<<"bin in pt class: "<<bininptclass<<endl;
	ptaxis->SetRange(bininptclass, bininptclass);
	TH2F* htmp_proj = (TH2F*)htmp->Project3D("zy");
	htmp_proj->SetName(Form("TPCTOFprojection_%i_%i_%i",charge,species,ptbin));

	//cout<<"projection: "<<htmp_proj<<endl;

	// Some settings of the output histogram.
	htmp_proj->SetDirectory(0);
	htmp_proj->SetTitle(Form("%5.3f < p_{T} < %5.3f",GetPtMinPID(ptbin),GetPtMaxPID(ptbin)));
	htmp_proj->Sumw2();

	// Putting back the range on the p_T axis.
	ptaxis->SetRange(1, NbinsPt);

	return htmp_proj;

}

// -----------------------------------------------------------------------
TObjArray* AliAODTrackCutsDiHadronPID::GetDataTPCTOFProjection(Int_t charge, Int_t species) {

	// TODO: This is basically a copy of GetDataTOFProjection -> Make into one function.

	// Returns a TObjArray with all TPC/TOF histograms (as needed by AliSpectrumDiHadronPID)
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	TObjArray* aout = new TObjArray(GetNPtBinsPID());
	aout->SetOwner(kTRUE);
	for (Int_t iPtBin = 1; iPtBin < (GetNPtBinsPID() + 1); iPtBin++) {

		aout->AddLast((TH2F*)GetHistDataTPCTOFProjection(charge, species, iPtBin));
		//cout<<"aout entries: "<<aout->GetEntriesFast()<<endl;
	}

	return aout;

}

// -----------------------------------------------------------------------
TH2F* AliAODTrackCutsDiHadronPID::GetHistDataTPCTOFMismatch(Int_t charge, Int_t species, Int_t ptbin) {

	// Returns a projection in TPC/TOF of the mismatch histogram.
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	Int_t ptclass = GetPtClass(ptbin);
	if (ptclass == -1) return 0x0;
	Int_t bininptclass = GetBinInPtClass(ptbin);

	// Retrieve original the 3D histogram (we don't own it).
	TH3F* htmp = (TH3F*)GetHistData(Form("fHistTPCTOFMismatch%s%s%s",fHistoName[charge].Data(),fParticleName[species].Data(),fPtClassName[ptclass].Data()));

	// Make the projection.
	TAxis* ptaxis = htmp->GetXaxis();
	Int_t NbinsPt = ptaxis->GetNbins();
	ptaxis->SetRange(bininptclass, bininptclass);
	TH2F* htmp_proj = (TH2F*)htmp->Project3D("zy");	
	htmp_proj->SetName(Form("TPCTOFprojectionMismatch_%i_%i_%i",charge,species,ptbin));

	// Some settings of the output histogram.
	htmp_proj->SetDirectory(0);
	htmp_proj->SetTitle(Form("%5.3f < p_{T} < %5.3f",GetPtMinPID(ptbin),GetPtMaxPID(ptbin)));
	htmp_proj->Sumw2();

	// Putting back the range on the p_T axis.
	ptaxis->SetRange(1, NbinsPt);

	return htmp_proj;

}

// -----------------------------------------------------------------------
TObjArray* AliAODTrackCutsDiHadronPID::GetDataTPCTOFMismatch(Int_t charge, Int_t species) {

	// Returns a TObjArray with all TPC/TOF mismatch histograms (as needed by AliSpectrumDiHadronPID)
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	TObjArray* aout = new TObjArray(GetNPtBinsPID());
	aout->SetOwner(kTRUE);
	for (Int_t iPtBin = 1; iPtBin < (GetNPtBinsPID() + 1); iPtBin++) {
		aout->AddLast((TH2F*)GetHistDataTPCTOFMismatch(charge, species, iPtBin));
	}

	return aout;

}

// -----------------------------------------------------------------------
Double_t AliAODTrackCutsDiHadronPID::GetPtMin(Int_t bin) const {
	
	// Same as: TAxis::GetBinLowEdge()

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

	if ((bin < 1) || (bin > fNPtBins + 1)) {
		cout<<"Bin is out of range..."<<endl; 
		return -999.;
	} else {
		return fPtAxis[bin - 1];
	}

}

// -----------------------------------------------------------------------
Double_t AliAODTrackCutsDiHadronPID::GetPtMax(Int_t bin) const {
	
	// Same as: TAxis::GetBinUpEdge()

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

	if ((bin < 1) || (bin > fNPtBins + 1)) {
		cout<<"Bin is out of range..."<<endl; 
		return -999.;
	} else {
		return fPtAxis[bin];
	}

}

// -----------------------------------------------------------------------
Int_t AliAODTrackCutsDiHadronPID::GetNPtBinsPID(Int_t ptclass) const {

	// Returns the number of pt bins that are used in every "pt class",
	// where a "pt class" is a range in pT which have the same range in
	// TOF/ TPC. If class == -1, then the retrun value is the total number
	// of bins in all classes together.

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

	if (ptclass == -1) {
		Int_t nptbinspid = 0;
		for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
			nptbinspid += fNPtBinsPID[iPtClass];
		}
		return nptbinspid;
	} else if (ptclass >= 0 && ptclass < 5) {
		return fNPtBinsPID[ptclass];
	} else {
		return -999;
	}

}

// -----------------------------------------------------------------------
Double_t* AliAODTrackCutsDiHadronPID::GetPtAxisPID() const {

	// Returns an array representing the pT axis for the PID
	// histograms.

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

	const Int_t nptbinspid = GetNPtBinsPID();
	Double_t* ptaxis = new Double_t[nptbinspid + 1];

	for (Int_t iPtBin = 0; iPtBin < nptbinspid; iPtBin++) {
		ptaxis[iPtBin] = GetPtMinPID(iPtBin + 1); 
	}

	ptaxis[nptbinspid] = GetPtMaxPID(nptbinspid);
	return ptaxis;

}

// -----------------------------------------------------------------------
Double_t AliAODTrackCutsDiHadronPID::GetPtMinPID(Int_t bin) const {

	// Same as: TAxis::GetBinLowEdge()

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

	Int_t ptclass = GetPtClass(bin);

	if (ptclass == -1) {return -999.;}

	Int_t bininptclass = GetBinInPtClass(bin);

	Double_t minpt = fPtBoundaryPID[ptclass];
	Double_t maxpt = fPtBoundaryPID[ptclass+1];
	Double_t ptres = (maxpt - minpt)/((Double_t)fNPtBinsPID[ptclass]);

	return (minpt + ptres * ((Double_t)(bininptclass - 1)) );

}

// -----------------------------------------------------------------------
Double_t AliAODTrackCutsDiHadronPID::GetPtMaxPID(Int_t bin) const {

	// Same as: TAxis::GetBinUpEdge()

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

	Int_t ptclass = GetPtClass(bin);

	if (ptclass == -1) {return -999.;}		

	Int_t bininptclass = GetBinInPtClass(bin);

	Double_t minpt = fPtBoundaryPID[ptclass];
	Double_t maxpt = fPtBoundaryPID[ptclass+1];
	Double_t ptres = (maxpt - minpt)/((Double_t)fNPtBinsPID[ptclass]);

	return (minpt + ptres * ((Double_t)(bininptclass)) );

}

// -----------------------------------------------------------------------
Double_t AliAODTrackCutsDiHadronPID::GetPtClassMin(Int_t ptclass) const {

	// Returns the minimum p_T of a p_T class.

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

	if (ptclass >= 0 && ptclass < 5) {
		return fPtBoundaryPID[ptclass];
	} else {
		return -999;
	}

}

// -----------------------------------------------------------------------
Double_t AliAODTrackCutsDiHadronPID::GetPtClassMax(Int_t ptclass) const {

	// Returns the maximum p_T of a p_T class.

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

	if (ptclass >= 0 && ptclass < 5) {
		return fPtBoundaryPID[ptclass+1];
	} else {
		return -999;
	}

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::RequestQAHistos(Int_t histoclass, Bool_t Enable3DSpectra, Bool_t EnablePIDHistos) {

	// Request certain histograms to be filled.

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

	if ((histoclass > -1) && (histoclass < 12)) {
		fHistRequested[histoclass] = kTRUE;
		f3DSpectraEnabeled[histoclass] = Enable3DSpectra;
		fPIDHistosEnabeled[histoclass] = EnablePIDHistos;
		//cout<<"histoclass: "<<histoclass<<" requested: "<<fHistRequested[histoclass]<<endl;
		return kTRUE;
	} else { 
		return kFALSE;
	}
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetPtRange(Double_t minpt, Double_t maxpt) {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fMinPt = minpt;
	fMaxPt = maxpt;
	fTestPt = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetFilterMask(UInt_t filtermask) {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fFilterMask = filtermask;
	fTestFilterMask = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetMaxEta(Double_t maxeta) {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fMaxEta = maxeta;
	fTestMaxEta = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetMaxRapidity(Double_t maxrapidity) {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fMaxRapidity = maxrapidity;
	fTestMaxRapidity = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetDemandNoMismatch() {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fTestTOFmismatch = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetDemandFlags(ULong_t demandedflags) {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fDemandedFlags = demandedflags;
	fTestFlags = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetMinimumNumberOfTPCClusters(Int_t minimumnumberoftpcclusters) {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fMinimumNumberOfTPCClusters = minimumnumberoftpcclusters;
	fTestNumberOfTPCClusters = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetDemandSPDCluster() {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fTestSPDAny = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetPtDeptDCACut(TFormula* DCAxyCutFormula, Double_t DCAzCut, UInt_t MinSPDHits) {
	
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}	

	fPtDeptDCAxyCutFormula = DCAxyCutFormula;
	fDCAzCut = DCAzCut;
	fMinSPDHitsForPtDeptDCAcut = MinSPDHits;
	fTestPtDeptDCAcut = kTRUE;
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::StartNewEvent() {

	// FIXME: This method is now only suited for Data (3 histo classes only.) 
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Resetting the counters.
	for (Int_t iHistoClass = 0; iHistoClass < 3; iHistoClass++) {
		fNTracks[iHistoClass] = 0;
 	}
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::EventIsDone(Bool_t IsMC) {

	// FIXME: This method is now only suited for Data (3 histo classes only.) 
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Fill NTracks histos.

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

		if (fHistRequested[iHistoClass]) {
			
			if (IsMC) {
				// THE FOLLOWING SHOULD NEVER HAPPEN.
				//if (!fHistPrimRecMCPt[iHistoClass]) InitializeRecMCHistos(iHistoClass);
				fHistPrimRecNTracks[iHistoClass]->Fill(fNTracks[iHistoClass]);
			} else {
				// THE FOLLOWING SHOULD NEVER HAPPEN.
				//if (!fHistDataPt[iHistoClass]) InitializeDataHistos(iHistoClass);
				fHistDataNTracks[iHistoClass]->Fill(fNTracks[iHistoClass]);
			}
		}
	}
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::CreateHistos() {

	// Function should be called by the UserCreateOutput() function of the
	// analysis task. This function then generates all the histograms that
	// were requested locally on the workernode. Even if case that the
	// histograms are not filled, it is imperative that they are still
	// created, and in the same order, otherwise problems with merging will
	// arise.

	// TODO: In principle it should never happen that if this method is called,
	//       that the lists of QA histograms already exist, so this may become a fatal error
	//       instead of a warning.

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

	if (fIsMC) {
	
		fTOFMatchingStat = new TH1F("fTOFMatchingStat","fTOFMatchingStat",3,0,3);
		(fTOFMatchingStat->GetXaxis())->SetBinLabel(1,"Match");
		(fTOFMatchingStat->GetXaxis())->SetBinLabel(2,"Mismatch");
		(fTOFMatchingStat->GetXaxis())->SetBinLabel(3,"No TOF hit");

		if (!fPrimGenMCTrackQAHistos) {
			cout<<"AliAODTrackCutsDiHadronPID - Creating Prim. Gen. MC Track QA TList..."<<endl;	
			fPrimGenMCTrackQAHistos = new TList();
			fPrimGenMCTrackQAHistos->SetName("PrimGenMCTrackQAHistos");
			fPrimGenMCTrackQAHistos->SetOwner(kTRUE);			
		} else {cout<<"AliAODTrackCutsDiHadronPID - Warning, Prim. Gen. MC Track QA TList was already created..."<<endl;}
		
		if (!fSecGenMCTrackQAHistos) {
			cout<<"AliAODTrackCutsDiHadronPID - Creating Sec. Gen. MC Track QA TList..."<<endl;				
			fSecGenMCTrackQAHistos = new TList();
			fSecGenMCTrackQAHistos->SetName("SecGenMCTrackQAHistos");
			fSecGenMCTrackQAHistos->SetOwner(kTRUE);
			for (Int_t iHistoClass = 0; iHistoClass < 12; iHistoClass++) {if (fHistRequested[iHistoClass]) {InitializeGenMCHistos(iHistoClass);}}				
		} else {cout<<"AliAODTrackCutsDiHadronPID - Warning, Sec. Gen. MC Track QA TList was already created..."<<endl;}

		if (!fPrimRecMCTrackQAHistos) {
			cout<<"AliAODTrackCutsDiHadronPID - Creating Prim. Rec. MC Track QA TList..."<<endl;				
			fPrimRecMCTrackQAHistos = new TList();
			fPrimRecMCTrackQAHistos->SetName("PrimRecMCTrackQAHistos");
			fPrimRecMCTrackQAHistos->SetOwner(kTRUE);
		} else {cout<<"AliAODTrackCutsDiHadronPID - Warning, Prim. Rec. MC Track QA TList was already created..."<<endl;}

		if (!fSecRecMCTrackQAHistos) {
			cout<<"AliAODTrackCutsDiHadronPID - Creating Sec. Rec. MC Track QA TList..."<<endl;				
			fSecRecMCTrackQAHistos = new TList();
			fSecRecMCTrackQAHistos->SetName("SecRecMCTrackQAHistos");
			fSecRecMCTrackQAHistos->SetOwner(kTRUE);
			for (Int_t iHistoClass = 0; iHistoClass < 12; iHistoClass++) {
				if (fHistRequested[iHistoClass]) {
					InitializeRecMCHistos(iHistoClass);
				}
			}	
		} else {cout<<"AliAODTrackCutsDiHadronPID - Warning, Sec. Rec. MC Track QA TList was already created..."<<endl;}

	} else {
		
		if (!fDataTrackQAHistos) {
			cout<<"AliAODTrackCutsDiHadronPID - Creating Data Track QA TList..."<<endl;
			fDataTrackQAHistos = new TList();
			fDataTrackQAHistos->SetName("DataTrackQAHistos");
			fDataTrackQAHistos->SetOwner(kTRUE);

			// Add general histograms.
			fHistAcceptedFilterBits = InitializeAcceptedFilterBits("fHistAcceptedFilterBits");
			fDataTrackQAHistos->Add(fHistAcceptedFilterBits);

			// Add histograms per class.
			for (Int_t iHistoClass = 0; iHistoClass < 12; iHistoClass++) {
				fHistDataDCAxyOneSigma[iHistoClass] = InitializeDCASpectrum("fHistDataDCAxyOneSigma",iHistoClass);
				fDataTrackQAHistos->Add(fHistDataDCAxyOneSigma[iHistoClass]);
				if (fHistRequested[iHistoClass]) { 
					if (iHistoClass < 3) {InitializeDataHistos(iHistoClass);}
				}
			}	
		} else {cout<<"AliAODTrackCutsDiHadronPID - Warning, Data QA TList was already created..."<<endl;}
	
	}
}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::IsSelectedData(AliTrackDiHadronPID* track, Double_t randomhittime) {
	
	//
	// Checks performed on a data track.
	//

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

	if (!track) return kFALSE;

	if (!fDataTrackQAHistos) {cout<<"AliAODTrackCutsDiHadronPID - Histograms were not created, you should have called CreateHistos()..."<<endl;}

	// Check the track cuts (NB. check function return kTRUE if track is accepted.)
	if (!CheckPt(track->Pt())) return kFALSE;
	if (!CheckMaxEta(track->Eta())) return kFALSE;
	if (!CheckFilterMask(track->GetFilterMap())) return kFALSE;
	if (!CheckFlags(track->GetFlags())) return kFALSE;
	if (!CheckNclsTPC(track->GetNclsTPC())) return kFALSE;
	if (!CheckTOFmismatch(track->IsTOFMismatch())) return kFALSE;

	Int_t NSPDhits = 0;
	if (track->HasPointOnITSLayer(0)) NSPDhits++;
	if (track->HasPointOnITSLayer(1)) NSPDhits++;
	if (!CheckPtDeptDCACut(track->GetZAtDCA(),track->GetXYAtDCA(),track->Pt(),NSPDhits)) return kFALSE;
	if (fTestSPDAny) {if (NSPDhits < 1) return kFALSE;}

	// Fill the filterbit histogram.
	for (Int_t iBin = (fRelevantBitsArray->GetSize() - 1); iBin >= 0; --iBin) {
		if ( (((Int_t)track->GetFilterMap())&(1<<fRelevantBitsArray->At(iBin))) == (1<<fRelevantBitsArray->At(iBin))) {
			fHistAcceptedFilterBits->Fill(iBin);
			break;
		}
	}

	// Track has passed the cuts, fill QA histograms.
	for (Int_t iHistoClass = 0; iHistoClass < 3; iHistoClass++) {

		if (fHistRequested[iHistoClass]) {

			// Check the charge (could be neater).
			if ((iHistoClass == 0) && (track->Charge() == 0)) continue;
			if ((iHistoClass == 1) && (track->Charge() <= 0)) continue;
			if ((iHistoClass == 2) && (track->Charge() >= 0)) continue; 

			FillDataHistos(iHistoClass, track);

			// Ignore if random hit is < -1.e20.
			if (randomhittime > -1.e20) FillTOFMismatchHistos(iHistoClass,track,randomhittime);

			fNTracks[iHistoClass]++;

		}
	}

	// Track Has Passed.
	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::IsSelectedGeneratedMC(AliAODMCParticle* particle) {
	
	//
	// Checks performed on a generated MC particle.
	//

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

	// PDG codes for particles:
	//  pi+ 211, K+ 321, p 2212

	if (!particle) return kFALSE;

	if (!fPrimGenMCTrackQAHistos||!fSecGenMCTrackQAHistos) {cout<<"AliAODTrackCutsDiHadronPID - Histograms were not created, you should have called CreateHistos()..."<<endl;}

	// Check the track cuts.
	if (!CheckPt(particle->Pt())) return kFALSE;
	if (!CheckMaxEta(particle->Eta())) return kFALSE;
	if (!CheckRapidity(particle->Y())) return kFALSE;		// NEW: rapidity cut. (not done on data)

	// NOT YET IMPLEMENTED! - Histoclasses for specific particles.
	for (Int_t iHistoClass = 0; iHistoClass < 12; iHistoClass++) {

		if (fHistRequested[iHistoClass]) {

			// Check the charge (could be neater).
			if ((iHistoClass == 0) && (particle->Charge() == 0)) continue;
			if ((iHistoClass == 1) && (particle->Charge() <= 0)) continue;
			if ((iHistoClass == 2) && (particle->Charge() >= 0)) continue;
			if ((iHistoClass == 3) && (TMath::Abs(particle->GetPdgCode()) != 211)) continue;
			if ((iHistoClass == 4) && (particle->GetPdgCode()) != 211) continue;
			if ((iHistoClass == 5) && (particle->GetPdgCode()) != -211) continue;
			if ((iHistoClass == 6) && (TMath::Abs(particle->GetPdgCode()) != 321)) continue;
			if ((iHistoClass == 7) && (particle->GetPdgCode()) != 321) continue;
			if ((iHistoClass == 8) && (particle->GetPdgCode()) != -321) continue;
			if ((iHistoClass == 9) && (TMath::Abs(particle->GetPdgCode()) != 2212)) continue;
			if ((iHistoClass == 10) && (particle->GetPdgCode()) != 2212) continue;
			if ((iHistoClass == 11) && (particle->GetPdgCode()) != -2212) continue;

			// Secondary specification not set.
			//cout<<"Charge: "<<particle->Charge()<<" PDG code: "<<particle->GetPdgCode()<<endl;
			//cout<<particle->IsPhysicalPrimary()<<" "<<particle->IsSecondaryFromWeakDecay()<<" "<<particle->IsSecondaryFromMaterial()<<endl;

			// These two functions are not implemented...
			//if (particle->IsSecondaryFromWeakDecay()) cout<<"Secondary From Weak Decay!"<<endl;
			//if (particle->IsSecondaryFromMaterial()) cout<<"Secondary From Material!"<<endl;

			FillGenMCHistos(iHistoClass, particle);	

		}
	}

	// Particle has Passed.
	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::IsSelectedReconstructedMC(AliTrackDiHadronPID* track) {

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

	if (!track) return kFALSE;

	if (!fPrimRecMCTrackQAHistos||!fSecRecMCTrackQAHistos) {cout<<"AliAODTrackCutsDiHadronPID - Histograms were not created, you should have called CreateHistos()..."<<endl;}

	// Check the track cuts.
	if (!CheckPt(track->MCPt())) return kFALSE;					// Kinematic cuts are done on the MC particles
	if (!CheckMaxEta(track->MCEta())) return kFALSE;			// and not on the data.
	if (!CheckRapidity(track->MCY())) return kFALSE;			// NEW: rapidity cut.
	if (!CheckFilterMask(track->GetFilterMap())) return kFALSE;
	if (!CheckFlags(track->GetFlags())) return kFALSE;
	if (!CheckNclsTPC(track->GetNclsTPC())) return kFALSE;

	Int_t NSPDhits = 0;
	if (track->HasPointOnITSLayer(0)) NSPDhits++;
	if (track->HasPointOnITSLayer(1)) NSPDhits++;
	if (!CheckPtDeptDCACut(track->GetZAtDCA(),track->GetXYAtDCA(),track->Pt(),NSPDhits)) return kFALSE;
	if (fTestSPDAny) {if (NSPDhits < 1) return kFALSE;}

	// Track has passed the cuts, fill QA histograms.
	for (Int_t iHistoClass = 0; iHistoClass < 12; iHistoClass++) {

		if (fHistRequested[iHistoClass]) {

			// Check the charge (could be neater).
			if ((iHistoClass == 0) && (track->Charge() == 0)) continue;
			if ((iHistoClass == 1) && (track->Charge() <= 0)) continue;
			if ((iHistoClass == 2) && (track->Charge() >= 0)) continue;
			if ((iHistoClass == 3) && (TMath::Abs(track->GetPdgCode()) != 211)) continue;
			if ((iHistoClass == 4) && (track->GetPdgCode()) != 211) continue;
			if ((iHistoClass == 5) && (track->GetPdgCode()) != -211) continue;
			if ((iHistoClass == 6) && (TMath::Abs(track->GetPdgCode()) != 321)) continue;
			if ((iHistoClass == 7) && (track->GetPdgCode()) != 321) continue;
			if ((iHistoClass == 8) && (track->GetPdgCode()) != -321) continue;
			if ((iHistoClass == 9) && (TMath::Abs(track->GetPdgCode()) != 2212)) continue;
			if ((iHistoClass == 10) && (track->GetPdgCode()) != 2212) continue;
			if ((iHistoClass == 11) && (track->GetPdgCode()) != -2212) continue;

			FillRecMCHistos(iHistoClass, track);

			fNTracks[iHistoClass]++;
		}
	}

	// Track Has Passed.
	return kTRUE;

}

// -----------------------------------------------------------------------
Int_t AliAODTrackCutsDiHadronPID::GetPtClass(Int_t ptbin) const {

	// Returns a p_T class as a function of bin (PID histos)
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	Int_t currentptclass = 0;
	Int_t currentptbin = fNPtBinsPID[0];

	while (currentptbin < ptbin) {
		currentptclass++;
		if (currentptclass == 5) {break;}
		currentptbin += fNPtBinsPID[currentptclass];
	}

	if (currentptclass == 5) {
		cout<<"GetPtClass -> ptbin out of range!"<<endl; 
		return -1;
	}

	return currentptclass;
}

// -----------------------------------------------------------------------
Int_t AliAODTrackCutsDiHadronPID::GetBinInPtClass(Int_t ptbin) const {

	// Returns the bin withing the p_T class (i.e., 1..Nbins)
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	Int_t ptclass = GetPtClass(ptbin);
	if (ptclass == -1) {return -1;}

	Int_t ptbinout = ptbin;
	for (Int_t iPtClass = 0; iPtClass < ptclass; iPtClass++) {ptbinout -= fNPtBinsPID[iPtClass];}

	return ptbinout;

}
	
// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckPt(Double_t pt) const {

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

	if (!fTestPt) return kTRUE;
	if ((pt > fMinPt) && (pt < fMaxPt)) return kTRUE;
	return kFALSE;
	}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckMaxEta(Double_t eta) const {

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

	if (!fTestMaxEta) return kTRUE;				// Accepted if there is no check on this parameter.
	if (TMath::Abs(eta) < fMaxEta) return kTRUE;
	return kFALSE;
	}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckRapidity(Double_t rap) const {

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

	if (!fTestMaxRapidity) return kTRUE;
	if (TMath::Abs(rap) < fMaxRapidity) return kTRUE;
	return kFALSE;
	}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckFilterMask(UInt_t filtermap) const {

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

	if (!fTestFilterMask) return kTRUE;
	if (fFilterMask & filtermap) return kTRUE;
	return kFALSE;
	}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckFlags(ULong_t flags) const {

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

	if (!fTestFlags) return kTRUE;
	if ((flags & fDemandedFlags) == fDemandedFlags) return kTRUE;
	return kFALSE;
	}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckNclsTPC(Int_t ncls) const {

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

	if (!fTestNumberOfTPCClusters) return kTRUE;
	if (ncls > fMinimumNumberOfTPCClusters) return kTRUE;
	return kFALSE;
	}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckTOFmismatch(Bool_t ismismatch) const {

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

	if (!fTestTOFmismatch) return kTRUE; // if we're not cutting on mismatch, then it's accepted.
	if (!ismismatch) return kTRUE; 		// so if the track is not a mismatch, then it is accepted.
	return kFALSE; 						// if it is a mismatch, then it's not accepted.
	}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::CheckPtDeptDCACut(Double_t dcaz, Double_t dcaxy, Double_t pt, UInt_t SPDhits) const {

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

	if (!fTestPtDeptDCAcut) return kTRUE;
	if (SPDhits < fMinSPDHitsForPtDeptDCAcut) return kTRUE; // If there are not enough SPD hits to do the cut.
	if ((dcaz < fDCAzCut) && (dcaxy < fPtDeptDCAxyCutFormula->Eval(pt))) return kTRUE;
	return kFALSE;
}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::FillDataHistos(Int_t histoclass, AliTrackDiHadronPID* track) {

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

	// Fill the histograms.
	fHistDataPt[histoclass]->Fill(track->Pt());
	fHistDataPhiEtaPt[histoclass]->Fill(track->Phi(),track->Eta(),track->Pt());

	// Fill DCA histograms.
	fHistDataDCAxy[histoclass]->Fill(track->GetXYAtDCA());
	fHistDataDCAz[histoclass]->Fill(track->GetZAtDCA());

	Int_t checkSum = 0;

	/* Philip: 
		Introduced a separate selection mechanism here as the TPC is off for low pt for 
		in particular protons and kaons. Therefor use only the TOF for identifying under 1.8 GeV.
		Setting this with fLowPtNSigmaTOFOnly flag.
	*/
	// histoclass = 0: all charges; histoclass = 1: positive; histoclass = 2: negative;
	if (TMath::Sqrt(track->GetNumberOfSigmasTOF(0) * track->GetNumberOfSigmasTOF(0) + 
					track->GetNumberOfSigmasTPC(0) * track->GetNumberOfSigmasTPC(0)) < 1.) {
		fHistDataDCAxyOneSigma[0 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// All species.
		fHistDataDCAxyOneSigma[3 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// Pions.
	//	checkSum++;	cout<<"Pion found: nSigTOF: "<<track->GetNumberOfSigmasTOF(0)<<"; nSigTPC: "<<track->GetNumberOfSigmasTPC(0)<<endl;
	}

	// for protons and low pt, only when fLowPtNSigmaTOFOnly set to kTRUE:
	if ((TMath::Abs(track->Pt()) < 1.8) && fLowPtNSigmaTOFOnly) {

		if (TMath::Abs(track->GetNumberOfSigmasTOF(1)) < 1.) {		
			fHistDataDCAxyOneSigma[0 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// All species.
			fHistDataDCAxyOneSigma[6 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// Kaons.
		}
		if (TMath::Abs(track->GetNumberOfSigmasTOF(2)) < 1.) {		
			fHistDataDCAxyOneSigma[0 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// All species.
			fHistDataDCAxyOneSigma[9 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// Protons.
		//	checkSum++;	cout<<"Proton found: nSigTOF: "<<track->GetNumberOfSigmasTOF(2)<<"; nSigTPC: "<<track->GetNumberOfSigmasTPC(2)<<endl;
		}
	} else {
		if (TMath::Sqrt(track->GetNumberOfSigmasTOF(1) * track->GetNumberOfSigmasTOF(1) + 
						track->GetNumberOfSigmasTPC(1) * track->GetNumberOfSigmasTPC(1)) < 1.) {
			fHistDataDCAxyOneSigma[0 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// All species.
			fHistDataDCAxyOneSigma[6 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// Kaons.
		//	checkSum++;	cout<<"Kaon found: nSigTOF: "<<track->GetNumberOfSigmasTOF(1)<<"; nSigTPC: "<<track->GetNumberOfSigmasTPC(1)<<endl;
		}
		if (TMath::Sqrt(track->GetNumberOfSigmasTOF(2) * track->GetNumberOfSigmasTOF(2) + 
						track->GetNumberOfSigmasTPC(2) * track->GetNumberOfSigmasTPC(2)) < 1.) {		
			fHistDataDCAxyOneSigma[0 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// All species.
			fHistDataDCAxyOneSigma[9 + histoclass]->Fill(track->Pt(),track->GetXYAtDCA());	// Protons.
		//	checkSum++;	cout<<"Proton found: nSigTOF: "<<track->GetNumberOfSigmasTOF(2)<<"; nSigTPC: "<<track->GetNumberOfSigmasTPC(2)<<endl;
		}
	}

	// check for double identification (or triple..)
	if(checkSum > 1) {AliError("More than one particle identified for the same track!"); }

	// Fill PID histos.
	for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {

		// Note that a possible Y cut is only done on the PID cuts!
		if (!CheckRapidity(track->Y(iSpecies))) continue;

		for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
			fHistDataPID[histoclass][iSpecies][iPtClass]->Fill(track->Pt(),
				(fUseNSigmaOnPIDAxes ? track->GetNumberOfSigmasTOF(iSpecies) : track->GetTOFsignalMinusExpected(iSpecies)),
				(fUseNSigmaOnPIDAxes ? track->GetNumberOfSigmasTPC(iSpecies) : track->GetTPCsignalMinusExpected(iSpecies)));		
		}
	}

	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::FillTOFMismatchHistos(Int_t histoclass, AliTrackDiHadronPID* track, Double_t randomhittime) {

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

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

		// Note that a possible Y cut is only done on the PID cuts!
		if (!CheckRapidity(track->Y(iSpecies))) continue;
/*
		if (!track->GetNumberOfSigmasTOF(iSpecies)) {
			cout<<"NSigma TOF: "<<track->GetNumberOfSigmasTOF(iSpecies)<<endl;
			cout<<"TOFsignal exp: "<<track->GetTOFsignalExpected(iSpecies)<<endl;
			cout<<"TOFsigma exp: "<<track->GetTOFsigmaExpected(iSpecies)<<endl;
			cout<<endl;
		}
*/

		Double_t TOFmismatchSigma = randomhittime - track->GetTOFsignalExpected(iSpecies);
		if (fUseNSigmaOnPIDAxes) {
			if (track->GetTOFsigmaExpected(iSpecies) < 10e-30) {
				/*
				cout << "ERROR: division through (almost) zero on the mismatch signal..."<<endl;
				cout << "Random time: "<<randomhittime<<endl;
				cout << "Exp TOF signal track for species "<<iSpecies<<" "<<track->GetTOFsignalExpected(iSpecies)<<endl;
				cout << "Exp Mismatch signal assuming species "<< iSpecies<<": "<<TOFmismatchSigma<<endl;
				cout << "Expected TOF sigma: "<<track->GetTOFsigmaExpected(iSpecies)<<endl;
				ULong_t flags_kTOFout_kTIME = (UInt_t)(AliAODTrack::kTOFout)|(UInt_t)(AliAODTrack::kTIME);
				cout << "Random track TOF status (kTOFout, kTIME): "<<(((track->GetFlags())&flags_kTOFout_kTIME)==flags_kTOFout_kTIME)<<endl;
				*/
			} else {
				TOFmismatchSigma /= track->GetTOFsigmaExpected(iSpecies);
			}
		}

		for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
			fHistTOFMismatch[histoclass][iSpecies][iPtClass]->Fill(track->Pt(), TOFmismatchSigma);		
			fHistTPCTOFMismatch[histoclass][iSpecies][iPtClass]->Fill(track->Pt(), TOFmismatchSigma,
				(fUseNSigmaOnPIDAxes ? track->GetNumberOfSigmasTPC(iSpecies) : track->GetTPCsignalMinusExpected(iSpecies)));			
		}
	}

	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::FillGenMCHistos(Int_t histoclass, AliAODMCParticle* particle) {

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

	//cout << "histoclass: "<<histoclass<<" particle: "<<particle<<endl;

	// Fill the histograms.
	if (particle->IsPhysicalPrimary()) {
		//cout<<"Trying to fill: "<<fHistPrimGenMCPt[histoclass]->GetName()<<" of type: " <<fHistPrimGenMCPt[histoclass]->ClassName()<<" at: "<<fHistPrimGenMCPt[histoclass]<<endl;
		fHistPrimGenMCPt[histoclass]->Fill(particle->Pt());
		//cout<< "phi: "<<particle->Phi()<< " eta: "<<particle->Eta() << " pt: "<<particle->Pt()<<" ";
		fHistPrimGenMCPhiEtaPt[histoclass]->Fill(particle->Phi(), particle->Eta(), particle->Pt());
		//cout<<"OK!"<<endl;
	} else {
		//cout<<"Trying to fill: "<<fHistPrimGenMCPt[histoclass]->GetName()<<" of type: " <<fHistPrimGenMCPt[histoclass]->ClassName()<<" at: "<<fHistPrimGenMCPt[histoclass]<<endl;
		fHistSecGenMCPt[histoclass]->Fill(particle->Pt());
		//cout<< "phi: "<<particle->Phi()<< " eta: "<<particle->Eta() << " pt: "<<particle->Pt()<<" ";
		fHistSecGenMCPhiEtaPt[histoclass]->Fill(particle->Phi(), particle->Eta(), particle->Pt());
		//cout<<"OK!"<<endl;		
	}

	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::FillRecMCHistos(Int_t histoclass, AliTrackDiHadronPID* track) {

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

	// Fill the Pt and acceptance histograms.
	if (track->IsPhysicalPrimary()) {
		fHistPrimRecMCPt[histoclass]->Fill(track->MCPt());
		fHistPrimRecPtGenPt[histoclass]->Fill(track->MCPt(), track->Pt());
		fHistPrimRecMCPhiEtaPt[histoclass]->Fill(track->MCPhi(), track->MCEta(), track->MCPt());
	} else {
		fHistSecRecMCPt[histoclass]->Fill(track->MCPt());
		fHistSecRecMCPhiEtaPt[histoclass]->Fill(track->MCPhi(), track->MCEta(), track->MCPt());
	}

	// Fill the DCA histograms.
	if (track->IsPhysicalPrimary()) {
		fHistPrimRecMCDCA[histoclass]->Fill(track->Pt(), track->GetXYAtDCA());
	} 
	if (track->IsSecondaryFromMaterial()) {
		fHistSecRecMCDCAMat[histoclass]->Fill(track->Pt(), track->GetXYAtDCA());
	}
	if (track->IsSecondaryFromWeakDecay()) {
		fHistSecRecMCDCAWeak[histoclass]->Fill(track->Pt(), track->GetXYAtDCA());
	}

	// Fill PID histos.
	if (histoclass < 3) {

		// Note that the following histogram is only sensible if the fTOFlabel is set properly.
		// If not, the histogram will be filled with "no match".
		fTOFMatchingStat->Fill(((Double_t)track->GetTOFMatchingStatus())+0.5);

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

			// Note that a possible Y cut is only done on the PID cuts!
			if (!CheckRapidity(track->MCY())) continue;

			for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
				//cout << "recpt: " << track->Pt() << " mcpt: "<<track->MCPt() << " DTOF: " << 
				//(fUseNSigmaOnPIDAxes ? track->GetNumberOfSigmasTOF(iSpecies) : track->GetTOFsignalMinusExpected(iSpecies)) << " DTPC: " << 
				//(fUseNSigmaOnPIDAxes ? track->GetNumberOfSigmasTPC(iSpecies) : track->GetTPCsignalMinusExpected(iSpecies)) << endl;

				fHistPrimRecPID[histoclass][iSpecies][iPtClass]->Fill(track->MCPt(),
					(fUseNSigmaOnPIDAxes ? track->GetNumberOfSigmasTOF(iSpecies) : track->GetTOFsignalMinusExpected(iSpecies)));		

				if (track->IsTOFMismatch()) {
					fHistPrimRecMismatch[histoclass][iSpecies][iPtClass]->Fill(track->MCPt(),
						(fUseNSigmaOnPIDAxes ? track->GetNumberOfSigmasTOF(iSpecies) : track->GetTOFsignalMinusExpected(iSpecies)));		
				}
			}
		}
	}

	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::InitializeDataHistos(Int_t histoclass) {

	cout<<"AliAODTrackCutsDiHadronPID - Creating Data Histograms of Class "<<histoclass<<endl;
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Add the Pt spectra.
	fHistDataPt[histoclass] = InitializePtSpectrum("fHistDataPt",histoclass);
	fDataTrackQAHistos->Add(fHistDataPt[histoclass]);
	fHistDataPhiEtaPt[histoclass] = InitializePhiEtaPt("fHistDataPhiEtaPt",histoclass);
	fDataTrackQAHistos->Add(fHistDataPhiEtaPt[histoclass]);

	// Add the NTrack histograms.
	fHistDataNTracks[histoclass] = InitializeNTracksHisto("fHistDataNTracks",histoclass);
	fDataTrackQAHistos->Add(fHistDataNTracks[histoclass]);

	// Add the DCA histograms.
	fHistDataDCAxy[histoclass] = InitializeDCAxyHisto("fHistDCAxy",histoclass);
	fDataTrackQAHistos->Add(fHistDataDCAxy[histoclass]);
	fHistDataDCAz[histoclass] = InitializeDCAzHisto("fHistDCAz",histoclass);
	fDataTrackQAHistos->Add(fHistDataDCAz[histoclass]);

	// Add the PID histograms. (FIXME shoudl be able to turn the creation of these histos off.)
	for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
		for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
			
			fHistDataPID[histoclass][iSpecies][iPtClass] = InitializePIDHisto("fHistDataPID",histoclass,iSpecies,iPtClass);
			fDataTrackQAHistos->Add(fHistDataPID[histoclass][iSpecies][iPtClass]);
			
			fHistTOFMismatch[histoclass][iSpecies][iPtClass] = InitializeTOFMismatchHisto("fHistTOFMismatch",histoclass,iSpecies,iPtClass);
			fDataTrackQAHistos->Add(fHistTOFMismatch[histoclass][iSpecies][iPtClass]);

			fHistTPCTOFMismatch[histoclass][iSpecies][iPtClass] = InitializePIDHisto("fHistTPCTOFMismatch",histoclass,iSpecies,iPtClass);
			fHistTPCTOFMismatch[histoclass][iSpecies][iPtClass]->SetTitle(Form("PID %s (Exp: %s)",fHistoName[histoclass].Data(),fParticleName[iSpecies].Data()));
			fDataTrackQAHistos->Add(fHistTPCTOFMismatch[histoclass][iSpecies][iPtClass]);	
		
		}
	}

	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::InitializeGenMCHistos(Int_t histoclass) {

	cout<<"AliAODTrackCutsDiHadronPID - Creating Generated MC Histograms of Class "<<histoclass<<endl;
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Primary Particles.
	fHistPrimGenMCPt[histoclass] = InitializePtSpectrum("fHistPrimGenMCPt",histoclass);
	fPrimGenMCTrackQAHistos->Add(fHistPrimGenMCPt[histoclass]);	

	fHistPrimGenMCPhiEtaPt[histoclass] = InitializePhiEtaPt("fHistPrimGenMCPhiEtaPt",histoclass);
	fPrimGenMCTrackQAHistos->Add(fHistPrimGenMCPhiEtaPt[histoclass]);

	// Secondary Particles.
	fHistSecGenMCPt[histoclass] = InitializePtSpectrum("fHistSecGenMCPt",histoclass);
	fSecGenMCTrackQAHistos->Add(fHistSecGenMCPt[histoclass]);	

	fHistSecGenMCPhiEtaPt[histoclass] = InitializePhiEtaPt("fHistSecGenMCPhiEtaPt",histoclass);
	fSecGenMCTrackQAHistos->Add(fHistSecGenMCPhiEtaPt[histoclass]);

	return kTRUE;

}

// -----------------------------------------------------------------------
Bool_t AliAODTrackCutsDiHadronPID::InitializeRecMCHistos(Int_t histoclass) {

	cout<<"AliAODTrackCutsDiHadronPID - Creating Reconstructed MC Histograms of Class "<<histoclass<<endl;
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Primary Particles.
	fHistPrimRecMCPt[histoclass] = InitializePtSpectrum("fHistPrimRecMCPt",histoclass);
	fPrimRecMCTrackQAHistos->Add(fHistPrimRecMCPt[histoclass]);

	fHistPrimRecPtGenPt[histoclass] = InitializeRecPtGenPt("fHistPrimRecPtGenPt",histoclass);
	fPrimRecMCTrackQAHistos->Add(fHistPrimRecPtGenPt[histoclass]);

	fHistPrimRecMCPhiEtaPt[histoclass] = InitializePhiEtaPt("fHistPrimRecMCPhiEtaPt",histoclass);
	fPrimRecMCTrackQAHistos->Add(fHistPrimRecMCPhiEtaPt[histoclass]);

	fHistPrimRecNTracks[histoclass] = InitializeNTracksHisto("fHistPrimRecNTracks",histoclass);
	fPrimRecMCTrackQAHistos->Add(fHistPrimRecNTracks[histoclass]);

	fHistPrimRecMCDCA[histoclass] = InitializeDCASpectrum("fHistPrimRecDCA",histoclass);
	fPrimRecMCTrackQAHistos->Add(fHistPrimRecMCDCA[histoclass]);

	if (histoclass < 3) {
		for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
			for (Int_t iPtClass = 0; iPtClass < 5; iPtClass++) {
				
				fHistPrimRecPID[histoclass][iSpecies][iPtClass] = InitializeTOFHisto("fHistPrimRecPID",histoclass,iSpecies,iPtClass);
				fPrimRecMCTrackQAHistos->Add(fHistPrimRecPID[histoclass][iSpecies][iPtClass]);

				fHistPrimRecMismatch[histoclass][iSpecies][iPtClass] = InitializeTOFMismatchHisto("fHistPrimRecMismatch",histoclass,iSpecies,iPtClass);
				fPrimRecMCTrackQAHistos->Add(fHistPrimRecMismatch[histoclass][iSpecies][iPtClass]);

					
			}
		}
	}

	// Secondary Particles.
	fHistSecRecMCPt[histoclass] = InitializePtSpectrum("fHistSecRecMCPt",histoclass);
	fSecRecMCTrackQAHistos->Add(fHistSecRecMCPt[histoclass]);

	fHistSecRecMCPhiEtaPt[histoclass] = InitializePhiEtaPt("fHistSecRecMCPhiEtaPt",histoclass);
	fSecRecMCTrackQAHistos->Add(fHistSecRecMCPhiEtaPt[histoclass]);

	fHistSecRecMCDCAMat[histoclass] = InitializeDCASpectrum("fHistSecRecDCAMat",histoclass);
	fSecRecMCTrackQAHistos->Add(fHistSecRecMCDCAMat[histoclass]);

	fHistSecRecMCDCAWeak[histoclass] = InitializeDCASpectrum("fHistSecRecDCAWeak",histoclass);
	fSecRecMCTrackQAHistos->Add(fHistSecRecMCDCAWeak[histoclass]);

	return kTRUE;

}

// -----------------------------------------------------------------------
TH1F* AliAODTrackCutsDiHadronPID::InitializeAcceptedFilterBits(const char* name) {

	// This histogram keeps track of the filtermask of all accepted tracks, projected
	// onto the requested filtermask. For example, we requested mask 2 or 4, then this 
	// histogram will have three bins, 2, 4 and 6. Suppose now a track is found which has
	// mask 12, then since (12 & 2) = 0, (12 & 4) = 4, (12 & 6) = 4, the track will end up
	// in bin 4.

	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
	if (!fTestFilterMask || fFilterMask == 0) {cout << Form("%s -> ERROR: No filtermask requested.",__func__) << endl; return 0x0;}

	// Determine the labels of the X axis.
	SetXaxisAcceptedFilterBits();
	
	// Create histogram.
	TH1F* hout = new TH1F(name,"Filtermask of accepted track;Mask;N",fRelevantBitsArray->GetSize(),-0.5,fRelevantBitsArray->GetSize()-0.5);
	hout->SetDirectory(0);

	// Set bin labels.
	TAxis* axistmp = hout->GetXaxis();
	for (Int_t iBin = 1; iBin <= axistmp->GetNbins(); ++iBin) {
		axistmp->SetBinLabel(iBin, Form("%i",fRelevantBitsArray->At(iBin-1)));
	}
	return hout;
	
}

// -----------------------------------------------------------------------
void AliAODTrackCutsDiHadronPID::SetXaxisAcceptedFilterBits() {

	// Creates the axis for the AcceptedFilterBits histogram.
	// See exercise: "FindAllCombinations.C"
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	// Step 1: Find the largest bit, in the requested filtermask,
	Int_t largestBit = 0;
	Int_t baseArraySizeTmp = 0;
	Int_t fullArraySizeTmp = 0;

	while (((Int_t)fFilterMask) >= (1<<(largestBit)) ) {
		if ((((Int_t)fFilterMask)&(1<<largestBit))==(1<<largestBit)) {
			fullArraySizeTmp += AliFunctionsDiHadronPID::Power(2, baseArraySizeTmp);
			baseArraySizeTmp++;
		}
		largestBit++;
	}
	largestBit--;

	// Step 2: Create and fill base array.
	const Int_t baseArraySize = baseArraySizeTmp;
	Int_t* baseArray = new Int_t[baseArraySize];
	for (Int_t ii = 0; ii < baseArraySize; ++ii) {baseArray[ii] = 0;}

	Int_t iBaseArray = 0;
	for (Int_t iBit = 0; iBit <= largestBit; ++iBit) {

		if ((((Int_t)fFilterMask)&(1<<iBit))==(1<<iBit)) {		
			baseArray[iBaseArray] = (1<<iBit);
			iBaseArray++;
		}

	}

	// Step 3: Create and fill full array.
	const Int_t fullArraySize = fullArraySizeTmp;
	Int_t* fullArray = new Int_t[fullArraySize];
	fullArray[0] = baseArray[0];
	Int_t iFullArray = 1;

	for (Int_t ii = 1; ii < baseArraySize; ++ii) {
		Int_t range = (iFullArray + AliFunctionsDiHadronPID::Power(2,ii));
		for (Int_t jj = iFullArray; jj < range; ++jj) {
			
			fullArray[jj] = baseArray[ii];

			// Add beginning part of the array:
			if (jj!=iFullArray) {
				fullArray[jj] += fullArray[jj - iFullArray - 1];
			}

		}
		iFullArray += AliFunctionsDiHadronPID::Power(2,ii);

	}

	// Step 4: Convert to TArrayI object.
	fRelevantBitsArray = new TArrayI(fullArraySize, fullArray);

	// Delete the temporary arrays.
	delete baseArray;
	delete fullArray;

}

// -----------------------------------------------------------------------
TH1F* AliAODTrackCutsDiHadronPID::InitializePtSpectrum(const char* name, Int_t histoclass) {

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

	TH1F* hout = new TH1F(Form("%s%s",name,fHistoName[histoclass].Data()),
		Form("p_{T} Spectrum (%s);p_{T} (GeV/c);Count",fHistoName[histoclass].Data()),fNPtBins,fPtAxis);

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH2F* AliAODTrackCutsDiHadronPID::InitializeRecPtGenPt(const char* name, Int_t histoclass) {

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

	TH2F* hout = new TH2F(Form("%s%s",name,fHistoName[histoclass].Data()),
		Form("p_{T} Rec vs Gen (%s);p_{T,gen} (GeV/c); p_{T,rec}",fHistoName[histoclass].Data()),
		fNPtBins,fPtAxis,fNPtBins,fPtAxis);

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH3F* AliAODTrackCutsDiHadronPID::InitializePhiEtaPt(const char* name, Int_t histoclass) {

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

	TH3F* hout = AliHistToolsDiHadronPID::MakeHist3D(Form("%s%s",name,fHistoName[histoclass].Data()),
		Form("Spectrum (%s);#phi;#eta;p_{T} (GeV/c)",fHistoName[histoclass].Data()),
		fNPhiBins,0.,2.*TMath::Pi(),
		fNEtaBins,-fMaxEta,fMaxEta,
		fNPtBins, fPtAxis);

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH2F* AliAODTrackCutsDiHadronPID::InitializeDCASpectrum(const char* name, Int_t histoclass) {

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

	TH2F* hout = new TH2F(Form("%s%s",name,fHistoName[histoclass].Data()),
		Form("DCA_{xy} (%s); p_{T} (GeV/c); DCA_{xy} (cm)",fHistoName[histoclass].Data()),
		fNPtBins,fPtAxis,
		300,-3.,3.); 

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH1F* AliAODTrackCutsDiHadronPID::InitializeNTracksHisto(const char* name, Int_t histoclass) {

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

	TH1F* hout = new TH1F(Form("%s%s",name,fHistoName[histoclass].Data()),
		Form("Number of Accepted Tracks (%s);N%s;N_{event}",fHistoName[histoclass].Data(),fHistoLatex[histoclass].Data()),
		100,0,4000);

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH1F* AliAODTrackCutsDiHadronPID::InitializeDCAxyHisto(const char* name, Int_t histoclass) {

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

	TH1F* hout = new TH1F(Form("%s%s",name,fHistoName[histoclass].Data()),
		Form("DCAxy (%s);DCAxy (cm);Count",fHistoName[histoclass].Data()),300,-15.,15.);

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH1F* AliAODTrackCutsDiHadronPID::InitializeDCAzHisto(const char* name, Int_t histoclass) {

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

	TH1F* hout = new TH1F(Form("%s%s",name,fHistoName[histoclass].Data()),
	Form("DCAz (%s);DCAz (cm);Count",fHistoName[histoclass].Data()),300,-15.,15.);

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH3F* AliAODTrackCutsDiHadronPID::InitializeAcceptanceHisto(const char* /*name*/, Int_t /*histoclass*/) {

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

}

// -----------------------------------------------------------------------
TH3F* AliAODTrackCutsDiHadronPID::InitializePIDHisto(const char* name, Int_t histoclass, Int_t expspecies, Int_t ptclass) {

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

	TString PIDaxeslabel;
	if (fUseNSigmaOnPIDAxes) {PIDaxeslabel = ";n#sigma_{TOF};n#sigma_{TPC}";} 
	else {PIDaxeslabel = ";#Delta t (ps);dE/dx (a.u.)";}

	TH3F* hout = new TH3F(Form("%s%s%s%s",name,fHistoName[histoclass].Data(),fParticleName[expspecies].Data(),fPtClassName[ptclass].Data()),
		Form("PID %s (Exp: %s);p_{T} (GeV/c)%s",fHistoName[histoclass].Data(),fParticleName[expspecies].Data(),PIDaxeslabel.Data()),
		fNPtBinsPID[ptclass],fPtBoundaryPID[ptclass],fPtBoundaryPID[ptclass+1],
		fTOFbins[ptclass][expspecies],
		(fUseNSigmaOnPIDAxes ? fTOFLowerBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTOFStd : fTOFLowerBound[ptclass][expspecies]),
		(fUseNSigmaOnPIDAxes ? fTOFUpperBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTOFStd : fTOFUpperBound[ptclass][expspecies]),
		fTPCbins[ptclass][expspecies],
		(fUseNSigmaOnPIDAxes ? fTPCLowerBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTPCStd : fTPCLowerBound[ptclass][expspecies]),
		(fUseNSigmaOnPIDAxes ? fTPCUpperBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTPCStd : fTPCUpperBound[ptclass][expspecies]));

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH2F* AliAODTrackCutsDiHadronPID::InitializeTOFMismatchHisto(const char* name, Int_t histoclass, Int_t expspecies, Int_t ptclass) {

	// Is basically the same as InitializeTOFHisto -> CAN BE REMOVED!
	if (fDebug > 1) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}

	TString PIDaxeslabel;
	if (fUseNSigmaOnPIDAxes) {PIDaxeslabel = ";n#sigma_{TOF}";} 
	else {PIDaxeslabel = ";#Delta t (ps)";}

	TH2F* hout = new TH2F(Form("%s%s%s%s",name,fHistoName[histoclass].Data(),fParticleName[expspecies].Data(),fPtClassName[ptclass].Data()),
		Form("TOF Mismatch %s (Exp: %s);p_{T} (GeV/c)%s",fHistoName[histoclass].Data(),fParticleName[expspecies].Data(),PIDaxeslabel.Data()),
		fNPtBinsPID[ptclass],fPtBoundaryPID[ptclass],fPtBoundaryPID[ptclass+1],
		fTOFbins[ptclass][expspecies],
		(fUseNSigmaOnPIDAxes ? fTOFLowerBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTOFStd : fTOFLowerBound[ptclass][expspecies]),
		(fUseNSigmaOnPIDAxes ? fTOFUpperBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTOFStd : fTOFUpperBound[ptclass][expspecies]));

	hout->SetDirectory(0);

	return hout;

}

// -----------------------------------------------------------------------
TH2F* AliAODTrackCutsDiHadronPID::InitializeTOFHisto(const char* name, Int_t histoclass, Int_t expspecies, Int_t ptclass) {

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

	TString PIDaxeslabel;
	if (fUseNSigmaOnPIDAxes) {PIDaxeslabel = ";n#sigma_{TOF}";} 
	else {PIDaxeslabel = ";#Delta t (ps)";}

	TH2F* hout = new TH2F(Form("%s%s%s%s",name,fHistoName[histoclass].Data(),fParticleName[expspecies].Data(),fPtClassName[ptclass].Data()),
		Form("TOF %s (Exp: %s);p_{T} (GeV/c)%s",fHistoName[histoclass].Data(),fParticleName[expspecies].Data(),PIDaxeslabel.Data()),
		fNPtBinsPID[ptclass],fPtBoundaryPID[ptclass],fPtBoundaryPID[ptclass+1],
		fTOFbins[ptclass][expspecies],
		(fUseNSigmaOnPIDAxes ? fTOFLowerBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTOFStd : fTOFLowerBound[ptclass][expspecies]),
		(fUseNSigmaOnPIDAxes ? fTOFUpperBound[ptclass][expspecies] / AliTrackDiHadronPID::fSigmaTOFStd : fTOFUpperBound[ptclass][expspecies]));

	hout->SetDirectory(0);

	return hout;

}
 AliAODTrackCutsDiHadronPID.cxx:1
 AliAODTrackCutsDiHadronPID.cxx:2
 AliAODTrackCutsDiHadronPID.cxx:3
 AliAODTrackCutsDiHadronPID.cxx:4
 AliAODTrackCutsDiHadronPID.cxx:5
 AliAODTrackCutsDiHadronPID.cxx:6
 AliAODTrackCutsDiHadronPID.cxx:7
 AliAODTrackCutsDiHadronPID.cxx:8
 AliAODTrackCutsDiHadronPID.cxx:9
 AliAODTrackCutsDiHadronPID.cxx:10
 AliAODTrackCutsDiHadronPID.cxx:11
 AliAODTrackCutsDiHadronPID.cxx:12
 AliAODTrackCutsDiHadronPID.cxx:13
 AliAODTrackCutsDiHadronPID.cxx:14
 AliAODTrackCutsDiHadronPID.cxx:15
 AliAODTrackCutsDiHadronPID.cxx:16
 AliAODTrackCutsDiHadronPID.cxx:17
 AliAODTrackCutsDiHadronPID.cxx:18
 AliAODTrackCutsDiHadronPID.cxx:19
 AliAODTrackCutsDiHadronPID.cxx:20
 AliAODTrackCutsDiHadronPID.cxx:21
 AliAODTrackCutsDiHadronPID.cxx:22
 AliAODTrackCutsDiHadronPID.cxx:23
 AliAODTrackCutsDiHadronPID.cxx:24
 AliAODTrackCutsDiHadronPID.cxx:25
 AliAODTrackCutsDiHadronPID.cxx:26
 AliAODTrackCutsDiHadronPID.cxx:27
 AliAODTrackCutsDiHadronPID.cxx:28
 AliAODTrackCutsDiHadronPID.cxx:29
 AliAODTrackCutsDiHadronPID.cxx:30
 AliAODTrackCutsDiHadronPID.cxx:31
 AliAODTrackCutsDiHadronPID.cxx:32
 AliAODTrackCutsDiHadronPID.cxx:33
 AliAODTrackCutsDiHadronPID.cxx:34
 AliAODTrackCutsDiHadronPID.cxx:35
 AliAODTrackCutsDiHadronPID.cxx:36
 AliAODTrackCutsDiHadronPID.cxx:37
 AliAODTrackCutsDiHadronPID.cxx:38
 AliAODTrackCutsDiHadronPID.cxx:39
 AliAODTrackCutsDiHadronPID.cxx:40
 AliAODTrackCutsDiHadronPID.cxx:41
 AliAODTrackCutsDiHadronPID.cxx:42
 AliAODTrackCutsDiHadronPID.cxx:43
 AliAODTrackCutsDiHadronPID.cxx:44
 AliAODTrackCutsDiHadronPID.cxx:45
 AliAODTrackCutsDiHadronPID.cxx:46
 AliAODTrackCutsDiHadronPID.cxx:47
 AliAODTrackCutsDiHadronPID.cxx:48
 AliAODTrackCutsDiHadronPID.cxx:49
 AliAODTrackCutsDiHadronPID.cxx:50
 AliAODTrackCutsDiHadronPID.cxx:51
 AliAODTrackCutsDiHadronPID.cxx:52
 AliAODTrackCutsDiHadronPID.cxx:53
 AliAODTrackCutsDiHadronPID.cxx:54
 AliAODTrackCutsDiHadronPID.cxx:55
 AliAODTrackCutsDiHadronPID.cxx:56
 AliAODTrackCutsDiHadronPID.cxx:57
 AliAODTrackCutsDiHadronPID.cxx:58
 AliAODTrackCutsDiHadronPID.cxx:59
 AliAODTrackCutsDiHadronPID.cxx:60
 AliAODTrackCutsDiHadronPID.cxx:61
 AliAODTrackCutsDiHadronPID.cxx:62
 AliAODTrackCutsDiHadronPID.cxx:63
 AliAODTrackCutsDiHadronPID.cxx:64
 AliAODTrackCutsDiHadronPID.cxx:65
 AliAODTrackCutsDiHadronPID.cxx:66
 AliAODTrackCutsDiHadronPID.cxx:67
 AliAODTrackCutsDiHadronPID.cxx:68
 AliAODTrackCutsDiHadronPID.cxx:69
 AliAODTrackCutsDiHadronPID.cxx:70
 AliAODTrackCutsDiHadronPID.cxx:71
 AliAODTrackCutsDiHadronPID.cxx:72
 AliAODTrackCutsDiHadronPID.cxx:73
 AliAODTrackCutsDiHadronPID.cxx:74
 AliAODTrackCutsDiHadronPID.cxx:75
 AliAODTrackCutsDiHadronPID.cxx:76
 AliAODTrackCutsDiHadronPID.cxx:77
 AliAODTrackCutsDiHadronPID.cxx:78
 AliAODTrackCutsDiHadronPID.cxx:79
 AliAODTrackCutsDiHadronPID.cxx:80
 AliAODTrackCutsDiHadronPID.cxx:81
 AliAODTrackCutsDiHadronPID.cxx:82
 AliAODTrackCutsDiHadronPID.cxx:83
 AliAODTrackCutsDiHadronPID.cxx:84
 AliAODTrackCutsDiHadronPID.cxx:85
 AliAODTrackCutsDiHadronPID.cxx:86
 AliAODTrackCutsDiHadronPID.cxx:87
 AliAODTrackCutsDiHadronPID.cxx:88
 AliAODTrackCutsDiHadronPID.cxx:89
 AliAODTrackCutsDiHadronPID.cxx:90
 AliAODTrackCutsDiHadronPID.cxx:91
 AliAODTrackCutsDiHadronPID.cxx:92
 AliAODTrackCutsDiHadronPID.cxx:93
 AliAODTrackCutsDiHadronPID.cxx:94
 AliAODTrackCutsDiHadronPID.cxx:95
 AliAODTrackCutsDiHadronPID.cxx:96
 AliAODTrackCutsDiHadronPID.cxx:97
 AliAODTrackCutsDiHadronPID.cxx:98
 AliAODTrackCutsDiHadronPID.cxx:99
 AliAODTrackCutsDiHadronPID.cxx:100
 AliAODTrackCutsDiHadronPID.cxx:101
 AliAODTrackCutsDiHadronPID.cxx:102
 AliAODTrackCutsDiHadronPID.cxx:103
 AliAODTrackCutsDiHadronPID.cxx:104
 AliAODTrackCutsDiHadronPID.cxx:105
 AliAODTrackCutsDiHadronPID.cxx:106
 AliAODTrackCutsDiHadronPID.cxx:107
 AliAODTrackCutsDiHadronPID.cxx:108
 AliAODTrackCutsDiHadronPID.cxx:109
 AliAODTrackCutsDiHadronPID.cxx:110
 AliAODTrackCutsDiHadronPID.cxx:111
 AliAODTrackCutsDiHadronPID.cxx:112
 AliAODTrackCutsDiHadronPID.cxx:113
 AliAODTrackCutsDiHadronPID.cxx:114
 AliAODTrackCutsDiHadronPID.cxx:115
 AliAODTrackCutsDiHadronPID.cxx:116
 AliAODTrackCutsDiHadronPID.cxx:117
 AliAODTrackCutsDiHadronPID.cxx:118
 AliAODTrackCutsDiHadronPID.cxx:119
 AliAODTrackCutsDiHadronPID.cxx:120
 AliAODTrackCutsDiHadronPID.cxx:121
 AliAODTrackCutsDiHadronPID.cxx:122
 AliAODTrackCutsDiHadronPID.cxx:123
 AliAODTrackCutsDiHadronPID.cxx:124
 AliAODTrackCutsDiHadronPID.cxx:125
 AliAODTrackCutsDiHadronPID.cxx:126
 AliAODTrackCutsDiHadronPID.cxx:127
 AliAODTrackCutsDiHadronPID.cxx:128
 AliAODTrackCutsDiHadronPID.cxx:129
 AliAODTrackCutsDiHadronPID.cxx:130
 AliAODTrackCutsDiHadronPID.cxx:131
 AliAODTrackCutsDiHadronPID.cxx:132
 AliAODTrackCutsDiHadronPID.cxx:133
 AliAODTrackCutsDiHadronPID.cxx:134
 AliAODTrackCutsDiHadronPID.cxx:135
 AliAODTrackCutsDiHadronPID.cxx:136
 AliAODTrackCutsDiHadronPID.cxx:137
 AliAODTrackCutsDiHadronPID.cxx:138
 AliAODTrackCutsDiHadronPID.cxx:139
 AliAODTrackCutsDiHadronPID.cxx:140
 AliAODTrackCutsDiHadronPID.cxx:141
 AliAODTrackCutsDiHadronPID.cxx:142
 AliAODTrackCutsDiHadronPID.cxx:143
 AliAODTrackCutsDiHadronPID.cxx:144
 AliAODTrackCutsDiHadronPID.cxx:145
 AliAODTrackCutsDiHadronPID.cxx:146
 AliAODTrackCutsDiHadronPID.cxx:147
 AliAODTrackCutsDiHadronPID.cxx:148
 AliAODTrackCutsDiHadronPID.cxx:149
 AliAODTrackCutsDiHadronPID.cxx:150
 AliAODTrackCutsDiHadronPID.cxx:151
 AliAODTrackCutsDiHadronPID.cxx:152
 AliAODTrackCutsDiHadronPID.cxx:153
 AliAODTrackCutsDiHadronPID.cxx:154
 AliAODTrackCutsDiHadronPID.cxx:155
 AliAODTrackCutsDiHadronPID.cxx:156
 AliAODTrackCutsDiHadronPID.cxx:157
 AliAODTrackCutsDiHadronPID.cxx:158
 AliAODTrackCutsDiHadronPID.cxx:159
 AliAODTrackCutsDiHadronPID.cxx:160
 AliAODTrackCutsDiHadronPID.cxx:161
 AliAODTrackCutsDiHadronPID.cxx:162
 AliAODTrackCutsDiHadronPID.cxx:163
 AliAODTrackCutsDiHadronPID.cxx:164
 AliAODTrackCutsDiHadronPID.cxx:165
 AliAODTrackCutsDiHadronPID.cxx:166
 AliAODTrackCutsDiHadronPID.cxx:167
 AliAODTrackCutsDiHadronPID.cxx:168
 AliAODTrackCutsDiHadronPID.cxx:169
 AliAODTrackCutsDiHadronPID.cxx:170
 AliAODTrackCutsDiHadronPID.cxx:171
 AliAODTrackCutsDiHadronPID.cxx:172
 AliAODTrackCutsDiHadronPID.cxx:173
 AliAODTrackCutsDiHadronPID.cxx:174
 AliAODTrackCutsDiHadronPID.cxx:175
 AliAODTrackCutsDiHadronPID.cxx:176
 AliAODTrackCutsDiHadronPID.cxx:177
 AliAODTrackCutsDiHadronPID.cxx:178
 AliAODTrackCutsDiHadronPID.cxx:179
 AliAODTrackCutsDiHadronPID.cxx:180
 AliAODTrackCutsDiHadronPID.cxx:181
 AliAODTrackCutsDiHadronPID.cxx:182
 AliAODTrackCutsDiHadronPID.cxx:183
 AliAODTrackCutsDiHadronPID.cxx:184
 AliAODTrackCutsDiHadronPID.cxx:185
 AliAODTrackCutsDiHadronPID.cxx:186
 AliAODTrackCutsDiHadronPID.cxx:187
 AliAODTrackCutsDiHadronPID.cxx:188
 AliAODTrackCutsDiHadronPID.cxx:189
 AliAODTrackCutsDiHadronPID.cxx:190
 AliAODTrackCutsDiHadronPID.cxx:191
 AliAODTrackCutsDiHadronPID.cxx:192
 AliAODTrackCutsDiHadronPID.cxx:193
 AliAODTrackCutsDiHadronPID.cxx:194
 AliAODTrackCutsDiHadronPID.cxx:195
 AliAODTrackCutsDiHadronPID.cxx:196
 AliAODTrackCutsDiHadronPID.cxx:197
 AliAODTrackCutsDiHadronPID.cxx:198
 AliAODTrackCutsDiHadronPID.cxx:199
 AliAODTrackCutsDiHadronPID.cxx:200
 AliAODTrackCutsDiHadronPID.cxx:201
 AliAODTrackCutsDiHadronPID.cxx:202
 AliAODTrackCutsDiHadronPID.cxx:203
 AliAODTrackCutsDiHadronPID.cxx:204
 AliAODTrackCutsDiHadronPID.cxx:205
 AliAODTrackCutsDiHadronPID.cxx:206
 AliAODTrackCutsDiHadronPID.cxx:207
 AliAODTrackCutsDiHadronPID.cxx:208
 AliAODTrackCutsDiHadronPID.cxx:209
 AliAODTrackCutsDiHadronPID.cxx:210
 AliAODTrackCutsDiHadronPID.cxx:211
 AliAODTrackCutsDiHadronPID.cxx:212
 AliAODTrackCutsDiHadronPID.cxx:213
 AliAODTrackCutsDiHadronPID.cxx:214
 AliAODTrackCutsDiHadronPID.cxx:215
 AliAODTrackCutsDiHadronPID.cxx:216
 AliAODTrackCutsDiHadronPID.cxx:217
 AliAODTrackCutsDiHadronPID.cxx:218
 AliAODTrackCutsDiHadronPID.cxx:219
 AliAODTrackCutsDiHadronPID.cxx:220
 AliAODTrackCutsDiHadronPID.cxx:221
 AliAODTrackCutsDiHadronPID.cxx:222
 AliAODTrackCutsDiHadronPID.cxx:223
 AliAODTrackCutsDiHadronPID.cxx:224
 AliAODTrackCutsDiHadronPID.cxx:225
 AliAODTrackCutsDiHadronPID.cxx:226
 AliAODTrackCutsDiHadronPID.cxx:227
 AliAODTrackCutsDiHadronPID.cxx:228
 AliAODTrackCutsDiHadronPID.cxx:229
 AliAODTrackCutsDiHadronPID.cxx:230
 AliAODTrackCutsDiHadronPID.cxx:231
 AliAODTrackCutsDiHadronPID.cxx:232
 AliAODTrackCutsDiHadronPID.cxx:233
 AliAODTrackCutsDiHadronPID.cxx:234
 AliAODTrackCutsDiHadronPID.cxx:235
 AliAODTrackCutsDiHadronPID.cxx:236
 AliAODTrackCutsDiHadronPID.cxx:237
 AliAODTrackCutsDiHadronPID.cxx:238
 AliAODTrackCutsDiHadronPID.cxx:239
 AliAODTrackCutsDiHadronPID.cxx:240
 AliAODTrackCutsDiHadronPID.cxx:241
 AliAODTrackCutsDiHadronPID.cxx:242
 AliAODTrackCutsDiHadronPID.cxx:243
 AliAODTrackCutsDiHadronPID.cxx:244
 AliAODTrackCutsDiHadronPID.cxx:245
 AliAODTrackCutsDiHadronPID.cxx:246
 AliAODTrackCutsDiHadronPID.cxx:247
 AliAODTrackCutsDiHadronPID.cxx:248
 AliAODTrackCutsDiHadronPID.cxx:249
 AliAODTrackCutsDiHadronPID.cxx:250
 AliAODTrackCutsDiHadronPID.cxx:251
 AliAODTrackCutsDiHadronPID.cxx:252
 AliAODTrackCutsDiHadronPID.cxx:253
 AliAODTrackCutsDiHadronPID.cxx:254
 AliAODTrackCutsDiHadronPID.cxx:255
 AliAODTrackCutsDiHadronPID.cxx:256
 AliAODTrackCutsDiHadronPID.cxx:257
 AliAODTrackCutsDiHadronPID.cxx:258
 AliAODTrackCutsDiHadronPID.cxx:259
 AliAODTrackCutsDiHadronPID.cxx:260
 AliAODTrackCutsDiHadronPID.cxx:261
 AliAODTrackCutsDiHadronPID.cxx:262
 AliAODTrackCutsDiHadronPID.cxx:263
 AliAODTrackCutsDiHadronPID.cxx:264
 AliAODTrackCutsDiHadronPID.cxx:265
 AliAODTrackCutsDiHadronPID.cxx:266
 AliAODTrackCutsDiHadronPID.cxx:267
 AliAODTrackCutsDiHadronPID.cxx:268
 AliAODTrackCutsDiHadronPID.cxx:269
 AliAODTrackCutsDiHadronPID.cxx:270
 AliAODTrackCutsDiHadronPID.cxx:271
 AliAODTrackCutsDiHadronPID.cxx:272
 AliAODTrackCutsDiHadronPID.cxx:273
 AliAODTrackCutsDiHadronPID.cxx:274
 AliAODTrackCutsDiHadronPID.cxx:275
 AliAODTrackCutsDiHadronPID.cxx:276
 AliAODTrackCutsDiHadronPID.cxx:277
 AliAODTrackCutsDiHadronPID.cxx:278
 AliAODTrackCutsDiHadronPID.cxx:279
 AliAODTrackCutsDiHadronPID.cxx:280
 AliAODTrackCutsDiHadronPID.cxx:281
 AliAODTrackCutsDiHadronPID.cxx:282
 AliAODTrackCutsDiHadronPID.cxx:283
 AliAODTrackCutsDiHadronPID.cxx:284
 AliAODTrackCutsDiHadronPID.cxx:285
 AliAODTrackCutsDiHadronPID.cxx:286
 AliAODTrackCutsDiHadronPID.cxx:287
 AliAODTrackCutsDiHadronPID.cxx:288
 AliAODTrackCutsDiHadronPID.cxx:289
 AliAODTrackCutsDiHadronPID.cxx:290
 AliAODTrackCutsDiHadronPID.cxx:291
 AliAODTrackCutsDiHadronPID.cxx:292
 AliAODTrackCutsDiHadronPID.cxx:293
 AliAODTrackCutsDiHadronPID.cxx:294
 AliAODTrackCutsDiHadronPID.cxx:295
 AliAODTrackCutsDiHadronPID.cxx:296
 AliAODTrackCutsDiHadronPID.cxx:297
 AliAODTrackCutsDiHadronPID.cxx:298
 AliAODTrackCutsDiHadronPID.cxx:299
 AliAODTrackCutsDiHadronPID.cxx:300
 AliAODTrackCutsDiHadronPID.cxx:301
 AliAODTrackCutsDiHadronPID.cxx:302
 AliAODTrackCutsDiHadronPID.cxx:303
 AliAODTrackCutsDiHadronPID.cxx:304
 AliAODTrackCutsDiHadronPID.cxx:305
 AliAODTrackCutsDiHadronPID.cxx:306
 AliAODTrackCutsDiHadronPID.cxx:307
 AliAODTrackCutsDiHadronPID.cxx:308
 AliAODTrackCutsDiHadronPID.cxx:309
 AliAODTrackCutsDiHadronPID.cxx:310
 AliAODTrackCutsDiHadronPID.cxx:311
 AliAODTrackCutsDiHadronPID.cxx:312
 AliAODTrackCutsDiHadronPID.cxx:313
 AliAODTrackCutsDiHadronPID.cxx:314
 AliAODTrackCutsDiHadronPID.cxx:315
 AliAODTrackCutsDiHadronPID.cxx:316
 AliAODTrackCutsDiHadronPID.cxx:317
 AliAODTrackCutsDiHadronPID.cxx:318
 AliAODTrackCutsDiHadronPID.cxx:319
 AliAODTrackCutsDiHadronPID.cxx:320
 AliAODTrackCutsDiHadronPID.cxx:321
 AliAODTrackCutsDiHadronPID.cxx:322
 AliAODTrackCutsDiHadronPID.cxx:323
 AliAODTrackCutsDiHadronPID.cxx:324
 AliAODTrackCutsDiHadronPID.cxx:325
 AliAODTrackCutsDiHadronPID.cxx:326
 AliAODTrackCutsDiHadronPID.cxx:327
 AliAODTrackCutsDiHadronPID.cxx:328
 AliAODTrackCutsDiHadronPID.cxx:329
 AliAODTrackCutsDiHadronPID.cxx:330
 AliAODTrackCutsDiHadronPID.cxx:331
 AliAODTrackCutsDiHadronPID.cxx:332
 AliAODTrackCutsDiHadronPID.cxx:333
 AliAODTrackCutsDiHadronPID.cxx:334
 AliAODTrackCutsDiHadronPID.cxx:335
 AliAODTrackCutsDiHadronPID.cxx:336
 AliAODTrackCutsDiHadronPID.cxx:337
 AliAODTrackCutsDiHadronPID.cxx:338
 AliAODTrackCutsDiHadronPID.cxx:339
 AliAODTrackCutsDiHadronPID.cxx:340
 AliAODTrackCutsDiHadronPID.cxx:341
 AliAODTrackCutsDiHadronPID.cxx:342
 AliAODTrackCutsDiHadronPID.cxx:343
 AliAODTrackCutsDiHadronPID.cxx:344
 AliAODTrackCutsDiHadronPID.cxx:345
 AliAODTrackCutsDiHadronPID.cxx:346
 AliAODTrackCutsDiHadronPID.cxx:347
 AliAODTrackCutsDiHadronPID.cxx:348
 AliAODTrackCutsDiHadronPID.cxx:349
 AliAODTrackCutsDiHadronPID.cxx:350
 AliAODTrackCutsDiHadronPID.cxx:351
 AliAODTrackCutsDiHadronPID.cxx:352
 AliAODTrackCutsDiHadronPID.cxx:353
 AliAODTrackCutsDiHadronPID.cxx:354
 AliAODTrackCutsDiHadronPID.cxx:355
 AliAODTrackCutsDiHadronPID.cxx:356
 AliAODTrackCutsDiHadronPID.cxx:357
 AliAODTrackCutsDiHadronPID.cxx:358
 AliAODTrackCutsDiHadronPID.cxx:359
 AliAODTrackCutsDiHadronPID.cxx:360
 AliAODTrackCutsDiHadronPID.cxx:361
 AliAODTrackCutsDiHadronPID.cxx:362
 AliAODTrackCutsDiHadronPID.cxx:363
 AliAODTrackCutsDiHadronPID.cxx:364
 AliAODTrackCutsDiHadronPID.cxx:365
 AliAODTrackCutsDiHadronPID.cxx:366
 AliAODTrackCutsDiHadronPID.cxx:367
 AliAODTrackCutsDiHadronPID.cxx:368
 AliAODTrackCutsDiHadronPID.cxx:369
 AliAODTrackCutsDiHadronPID.cxx:370
 AliAODTrackCutsDiHadronPID.cxx:371
 AliAODTrackCutsDiHadronPID.cxx:372
 AliAODTrackCutsDiHadronPID.cxx:373
 AliAODTrackCutsDiHadronPID.cxx:374
 AliAODTrackCutsDiHadronPID.cxx:375
 AliAODTrackCutsDiHadronPID.cxx:376
 AliAODTrackCutsDiHadronPID.cxx:377
 AliAODTrackCutsDiHadronPID.cxx:378
 AliAODTrackCutsDiHadronPID.cxx:379
 AliAODTrackCutsDiHadronPID.cxx:380
 AliAODTrackCutsDiHadronPID.cxx:381
 AliAODTrackCutsDiHadronPID.cxx:382
 AliAODTrackCutsDiHadronPID.cxx:383
 AliAODTrackCutsDiHadronPID.cxx:384
 AliAODTrackCutsDiHadronPID.cxx:385
 AliAODTrackCutsDiHadronPID.cxx:386
 AliAODTrackCutsDiHadronPID.cxx:387
 AliAODTrackCutsDiHadronPID.cxx:388
 AliAODTrackCutsDiHadronPID.cxx:389
 AliAODTrackCutsDiHadronPID.cxx:390
 AliAODTrackCutsDiHadronPID.cxx:391
 AliAODTrackCutsDiHadronPID.cxx:392
 AliAODTrackCutsDiHadronPID.cxx:393
 AliAODTrackCutsDiHadronPID.cxx:394
 AliAODTrackCutsDiHadronPID.cxx:395
 AliAODTrackCutsDiHadronPID.cxx:396
 AliAODTrackCutsDiHadronPID.cxx:397
 AliAODTrackCutsDiHadronPID.cxx:398
 AliAODTrackCutsDiHadronPID.cxx:399
 AliAODTrackCutsDiHadronPID.cxx:400
 AliAODTrackCutsDiHadronPID.cxx:401
 AliAODTrackCutsDiHadronPID.cxx:402
 AliAODTrackCutsDiHadronPID.cxx:403
 AliAODTrackCutsDiHadronPID.cxx:404
 AliAODTrackCutsDiHadronPID.cxx:405
 AliAODTrackCutsDiHadronPID.cxx:406
 AliAODTrackCutsDiHadronPID.cxx:407
 AliAODTrackCutsDiHadronPID.cxx:408
 AliAODTrackCutsDiHadronPID.cxx:409
 AliAODTrackCutsDiHadronPID.cxx:410
 AliAODTrackCutsDiHadronPID.cxx:411
 AliAODTrackCutsDiHadronPID.cxx:412
 AliAODTrackCutsDiHadronPID.cxx:413
 AliAODTrackCutsDiHadronPID.cxx:414
 AliAODTrackCutsDiHadronPID.cxx:415
 AliAODTrackCutsDiHadronPID.cxx:416
 AliAODTrackCutsDiHadronPID.cxx:417
 AliAODTrackCutsDiHadronPID.cxx:418
 AliAODTrackCutsDiHadronPID.cxx:419
 AliAODTrackCutsDiHadronPID.cxx:420
 AliAODTrackCutsDiHadronPID.cxx:421
 AliAODTrackCutsDiHadronPID.cxx:422
 AliAODTrackCutsDiHadronPID.cxx:423
 AliAODTrackCutsDiHadronPID.cxx:424
 AliAODTrackCutsDiHadronPID.cxx:425
 AliAODTrackCutsDiHadronPID.cxx:426
 AliAODTrackCutsDiHadronPID.cxx:427
 AliAODTrackCutsDiHadronPID.cxx:428
 AliAODTrackCutsDiHadronPID.cxx:429
 AliAODTrackCutsDiHadronPID.cxx:430
 AliAODTrackCutsDiHadronPID.cxx:431
 AliAODTrackCutsDiHadronPID.cxx:432
 AliAODTrackCutsDiHadronPID.cxx:433
 AliAODTrackCutsDiHadronPID.cxx:434
 AliAODTrackCutsDiHadronPID.cxx:435
 AliAODTrackCutsDiHadronPID.cxx:436
 AliAODTrackCutsDiHadronPID.cxx:437
 AliAODTrackCutsDiHadronPID.cxx:438
 AliAODTrackCutsDiHadronPID.cxx:439
 AliAODTrackCutsDiHadronPID.cxx:440
 AliAODTrackCutsDiHadronPID.cxx:441
 AliAODTrackCutsDiHadronPID.cxx:442
 AliAODTrackCutsDiHadronPID.cxx:443
 AliAODTrackCutsDiHadronPID.cxx:444
 AliAODTrackCutsDiHadronPID.cxx:445
 AliAODTrackCutsDiHadronPID.cxx:446
 AliAODTrackCutsDiHadronPID.cxx:447
 AliAODTrackCutsDiHadronPID.cxx:448
 AliAODTrackCutsDiHadronPID.cxx:449
 AliAODTrackCutsDiHadronPID.cxx:450
 AliAODTrackCutsDiHadronPID.cxx:451
 AliAODTrackCutsDiHadronPID.cxx:452
 AliAODTrackCutsDiHadronPID.cxx:453
 AliAODTrackCutsDiHadronPID.cxx:454
 AliAODTrackCutsDiHadronPID.cxx:455
 AliAODTrackCutsDiHadronPID.cxx:456
 AliAODTrackCutsDiHadronPID.cxx:457
 AliAODTrackCutsDiHadronPID.cxx:458
 AliAODTrackCutsDiHadronPID.cxx:459
 AliAODTrackCutsDiHadronPID.cxx:460
 AliAODTrackCutsDiHadronPID.cxx:461
 AliAODTrackCutsDiHadronPID.cxx:462
 AliAODTrackCutsDiHadronPID.cxx:463
 AliAODTrackCutsDiHadronPID.cxx:464
 AliAODTrackCutsDiHadronPID.cxx:465
 AliAODTrackCutsDiHadronPID.cxx:466
 AliAODTrackCutsDiHadronPID.cxx:467
 AliAODTrackCutsDiHadronPID.cxx:468
 AliAODTrackCutsDiHadronPID.cxx:469
 AliAODTrackCutsDiHadronPID.cxx:470
 AliAODTrackCutsDiHadronPID.cxx:471
 AliAODTrackCutsDiHadronPID.cxx:472
 AliAODTrackCutsDiHadronPID.cxx:473
 AliAODTrackCutsDiHadronPID.cxx:474
 AliAODTrackCutsDiHadronPID.cxx:475
 AliAODTrackCutsDiHadronPID.cxx:476
 AliAODTrackCutsDiHadronPID.cxx:477
 AliAODTrackCutsDiHadronPID.cxx:478
 AliAODTrackCutsDiHadronPID.cxx:479
 AliAODTrackCutsDiHadronPID.cxx:480
 AliAODTrackCutsDiHadronPID.cxx:481
 AliAODTrackCutsDiHadronPID.cxx:482
 AliAODTrackCutsDiHadronPID.cxx:483
 AliAODTrackCutsDiHadronPID.cxx:484
 AliAODTrackCutsDiHadronPID.cxx:485
 AliAODTrackCutsDiHadronPID.cxx:486
 AliAODTrackCutsDiHadronPID.cxx:487
 AliAODTrackCutsDiHadronPID.cxx:488
 AliAODTrackCutsDiHadronPID.cxx:489
 AliAODTrackCutsDiHadronPID.cxx:490
 AliAODTrackCutsDiHadronPID.cxx:491
 AliAODTrackCutsDiHadronPID.cxx:492
 AliAODTrackCutsDiHadronPID.cxx:493
 AliAODTrackCutsDiHadronPID.cxx:494
 AliAODTrackCutsDiHadronPID.cxx:495
 AliAODTrackCutsDiHadronPID.cxx:496
 AliAODTrackCutsDiHadronPID.cxx:497
 AliAODTrackCutsDiHadronPID.cxx:498
 AliAODTrackCutsDiHadronPID.cxx:499
 AliAODTrackCutsDiHadronPID.cxx:500
 AliAODTrackCutsDiHadronPID.cxx:501
 AliAODTrackCutsDiHadronPID.cxx:502
 AliAODTrackCutsDiHadronPID.cxx:503
 AliAODTrackCutsDiHadronPID.cxx:504
 AliAODTrackCutsDiHadronPID.cxx:505
 AliAODTrackCutsDiHadronPID.cxx:506
 AliAODTrackCutsDiHadronPID.cxx:507
 AliAODTrackCutsDiHadronPID.cxx:508
 AliAODTrackCutsDiHadronPID.cxx:509
 AliAODTrackCutsDiHadronPID.cxx:510
 AliAODTrackCutsDiHadronPID.cxx:511
 AliAODTrackCutsDiHadronPID.cxx:512
 AliAODTrackCutsDiHadronPID.cxx:513
 AliAODTrackCutsDiHadronPID.cxx:514
 AliAODTrackCutsDiHadronPID.cxx:515
 AliAODTrackCutsDiHadronPID.cxx:516
 AliAODTrackCutsDiHadronPID.cxx:517
 AliAODTrackCutsDiHadronPID.cxx:518
 AliAODTrackCutsDiHadronPID.cxx:519
 AliAODTrackCutsDiHadronPID.cxx:520
 AliAODTrackCutsDiHadronPID.cxx:521
 AliAODTrackCutsDiHadronPID.cxx:522
 AliAODTrackCutsDiHadronPID.cxx:523
 AliAODTrackCutsDiHadronPID.cxx:524
 AliAODTrackCutsDiHadronPID.cxx:525
 AliAODTrackCutsDiHadronPID.cxx:526
 AliAODTrackCutsDiHadronPID.cxx:527
 AliAODTrackCutsDiHadronPID.cxx:528
 AliAODTrackCutsDiHadronPID.cxx:529
 AliAODTrackCutsDiHadronPID.cxx:530
 AliAODTrackCutsDiHadronPID.cxx:531
 AliAODTrackCutsDiHadronPID.cxx:532
 AliAODTrackCutsDiHadronPID.cxx:533
 AliAODTrackCutsDiHadronPID.cxx:534
 AliAODTrackCutsDiHadronPID.cxx:535
 AliAODTrackCutsDiHadronPID.cxx:536
 AliAODTrackCutsDiHadronPID.cxx:537
 AliAODTrackCutsDiHadronPID.cxx:538
 AliAODTrackCutsDiHadronPID.cxx:539
 AliAODTrackCutsDiHadronPID.cxx:540
 AliAODTrackCutsDiHadronPID.cxx:541
 AliAODTrackCutsDiHadronPID.cxx:542
 AliAODTrackCutsDiHadronPID.cxx:543
 AliAODTrackCutsDiHadronPID.cxx:544
 AliAODTrackCutsDiHadronPID.cxx:545
 AliAODTrackCutsDiHadronPID.cxx:546
 AliAODTrackCutsDiHadronPID.cxx:547
 AliAODTrackCutsDiHadronPID.cxx:548
 AliAODTrackCutsDiHadronPID.cxx:549
 AliAODTrackCutsDiHadronPID.cxx:550
 AliAODTrackCutsDiHadronPID.cxx:551
 AliAODTrackCutsDiHadronPID.cxx:552
 AliAODTrackCutsDiHadronPID.cxx:553
 AliAODTrackCutsDiHadronPID.cxx:554
 AliAODTrackCutsDiHadronPID.cxx:555
 AliAODTrackCutsDiHadronPID.cxx:556
 AliAODTrackCutsDiHadronPID.cxx:557
 AliAODTrackCutsDiHadronPID.cxx:558
 AliAODTrackCutsDiHadronPID.cxx:559
 AliAODTrackCutsDiHadronPID.cxx:560
 AliAODTrackCutsDiHadronPID.cxx:561
 AliAODTrackCutsDiHadronPID.cxx:562
 AliAODTrackCutsDiHadronPID.cxx:563
 AliAODTrackCutsDiHadronPID.cxx:564
 AliAODTrackCutsDiHadronPID.cxx:565
 AliAODTrackCutsDiHadronPID.cxx:566
 AliAODTrackCutsDiHadronPID.cxx:567
 AliAODTrackCutsDiHadronPID.cxx:568
 AliAODTrackCutsDiHadronPID.cxx:569
 AliAODTrackCutsDiHadronPID.cxx:570
 AliAODTrackCutsDiHadronPID.cxx:571
 AliAODTrackCutsDiHadronPID.cxx:572
 AliAODTrackCutsDiHadronPID.cxx:573
 AliAODTrackCutsDiHadronPID.cxx:574
 AliAODTrackCutsDiHadronPID.cxx:575
 AliAODTrackCutsDiHadronPID.cxx:576
 AliAODTrackCutsDiHadronPID.cxx:577
 AliAODTrackCutsDiHadronPID.cxx:578
 AliAODTrackCutsDiHadronPID.cxx:579
 AliAODTrackCutsDiHadronPID.cxx:580
 AliAODTrackCutsDiHadronPID.cxx:581
 AliAODTrackCutsDiHadronPID.cxx:582
 AliAODTrackCutsDiHadronPID.cxx:583
 AliAODTrackCutsDiHadronPID.cxx:584
 AliAODTrackCutsDiHadronPID.cxx:585
 AliAODTrackCutsDiHadronPID.cxx:586
 AliAODTrackCutsDiHadronPID.cxx:587
 AliAODTrackCutsDiHadronPID.cxx:588
 AliAODTrackCutsDiHadronPID.cxx:589
 AliAODTrackCutsDiHadronPID.cxx:590
 AliAODTrackCutsDiHadronPID.cxx:591
 AliAODTrackCutsDiHadronPID.cxx:592
 AliAODTrackCutsDiHadronPID.cxx:593
 AliAODTrackCutsDiHadronPID.cxx:594
 AliAODTrackCutsDiHadronPID.cxx:595
 AliAODTrackCutsDiHadronPID.cxx:596
 AliAODTrackCutsDiHadronPID.cxx:597
 AliAODTrackCutsDiHadronPID.cxx:598
 AliAODTrackCutsDiHadronPID.cxx:599
 AliAODTrackCutsDiHadronPID.cxx:600
 AliAODTrackCutsDiHadronPID.cxx:601
 AliAODTrackCutsDiHadronPID.cxx:602
 AliAODTrackCutsDiHadronPID.cxx:603
 AliAODTrackCutsDiHadronPID.cxx:604
 AliAODTrackCutsDiHadronPID.cxx:605
 AliAODTrackCutsDiHadronPID.cxx:606
 AliAODTrackCutsDiHadronPID.cxx:607
 AliAODTrackCutsDiHadronPID.cxx:608
 AliAODTrackCutsDiHadronPID.cxx:609
 AliAODTrackCutsDiHadronPID.cxx:610
 AliAODTrackCutsDiHadronPID.cxx:611
 AliAODTrackCutsDiHadronPID.cxx:612
 AliAODTrackCutsDiHadronPID.cxx:613
 AliAODTrackCutsDiHadronPID.cxx:614
 AliAODTrackCutsDiHadronPID.cxx:615
 AliAODTrackCutsDiHadronPID.cxx:616
 AliAODTrackCutsDiHadronPID.cxx:617
 AliAODTrackCutsDiHadronPID.cxx:618
 AliAODTrackCutsDiHadronPID.cxx:619
 AliAODTrackCutsDiHadronPID.cxx:620
 AliAODTrackCutsDiHadronPID.cxx:621
 AliAODTrackCutsDiHadronPID.cxx:622
 AliAODTrackCutsDiHadronPID.cxx:623
 AliAODTrackCutsDiHadronPID.cxx:624
 AliAODTrackCutsDiHadronPID.cxx:625
 AliAODTrackCutsDiHadronPID.cxx:626
 AliAODTrackCutsDiHadronPID.cxx:627
 AliAODTrackCutsDiHadronPID.cxx:628
 AliAODTrackCutsDiHadronPID.cxx:629
 AliAODTrackCutsDiHadronPID.cxx:630
 AliAODTrackCutsDiHadronPID.cxx:631
 AliAODTrackCutsDiHadronPID.cxx:632
 AliAODTrackCutsDiHadronPID.cxx:633
 AliAODTrackCutsDiHadronPID.cxx:634
 AliAODTrackCutsDiHadronPID.cxx:635
 AliAODTrackCutsDiHadronPID.cxx:636
 AliAODTrackCutsDiHadronPID.cxx:637
 AliAODTrackCutsDiHadronPID.cxx:638
 AliAODTrackCutsDiHadronPID.cxx:639
 AliAODTrackCutsDiHadronPID.cxx:640
 AliAODTrackCutsDiHadronPID.cxx:641
 AliAODTrackCutsDiHadronPID.cxx:642
 AliAODTrackCutsDiHadronPID.cxx:643
 AliAODTrackCutsDiHadronPID.cxx:644
 AliAODTrackCutsDiHadronPID.cxx:645
 AliAODTrackCutsDiHadronPID.cxx:646
 AliAODTrackCutsDiHadronPID.cxx:647
 AliAODTrackCutsDiHadronPID.cxx:648
 AliAODTrackCutsDiHadronPID.cxx:649
 AliAODTrackCutsDiHadronPID.cxx:650
 AliAODTrackCutsDiHadronPID.cxx:651
 AliAODTrackCutsDiHadronPID.cxx:652
 AliAODTrackCutsDiHadronPID.cxx:653
 AliAODTrackCutsDiHadronPID.cxx:654
 AliAODTrackCutsDiHadronPID.cxx:655
 AliAODTrackCutsDiHadronPID.cxx:656
 AliAODTrackCutsDiHadronPID.cxx:657
 AliAODTrackCutsDiHadronPID.cxx:658
 AliAODTrackCutsDiHadronPID.cxx:659
 AliAODTrackCutsDiHadronPID.cxx:660
 AliAODTrackCutsDiHadronPID.cxx:661
 AliAODTrackCutsDiHadronPID.cxx:662
 AliAODTrackCutsDiHadronPID.cxx:663
 AliAODTrackCutsDiHadronPID.cxx:664
 AliAODTrackCutsDiHadronPID.cxx:665
 AliAODTrackCutsDiHadronPID.cxx:666
 AliAODTrackCutsDiHadronPID.cxx:667
 AliAODTrackCutsDiHadronPID.cxx:668
 AliAODTrackCutsDiHadronPID.cxx:669
 AliAODTrackCutsDiHadronPID.cxx:670
 AliAODTrackCutsDiHadronPID.cxx:671
 AliAODTrackCutsDiHadronPID.cxx:672
 AliAODTrackCutsDiHadronPID.cxx:673
 AliAODTrackCutsDiHadronPID.cxx:674
 AliAODTrackCutsDiHadronPID.cxx:675
 AliAODTrackCutsDiHadronPID.cxx:676
 AliAODTrackCutsDiHadronPID.cxx:677
 AliAODTrackCutsDiHadronPID.cxx:678
 AliAODTrackCutsDiHadronPID.cxx:679
 AliAODTrackCutsDiHadronPID.cxx:680
 AliAODTrackCutsDiHadronPID.cxx:681
 AliAODTrackCutsDiHadronPID.cxx:682
 AliAODTrackCutsDiHadronPID.cxx:683
 AliAODTrackCutsDiHadronPID.cxx:684
 AliAODTrackCutsDiHadronPID.cxx:685
 AliAODTrackCutsDiHadronPID.cxx:686
 AliAODTrackCutsDiHadronPID.cxx:687
 AliAODTrackCutsDiHadronPID.cxx:688
 AliAODTrackCutsDiHadronPID.cxx:689
 AliAODTrackCutsDiHadronPID.cxx:690
 AliAODTrackCutsDiHadronPID.cxx:691
 AliAODTrackCutsDiHadronPID.cxx:692
 AliAODTrackCutsDiHadronPID.cxx:693
 AliAODTrackCutsDiHadronPID.cxx:694
 AliAODTrackCutsDiHadronPID.cxx:695
 AliAODTrackCutsDiHadronPID.cxx:696
 AliAODTrackCutsDiHadronPID.cxx:697
 AliAODTrackCutsDiHadronPID.cxx:698
 AliAODTrackCutsDiHadronPID.cxx:699
 AliAODTrackCutsDiHadronPID.cxx:700
 AliAODTrackCutsDiHadronPID.cxx:701
 AliAODTrackCutsDiHadronPID.cxx:702
 AliAODTrackCutsDiHadronPID.cxx:703
 AliAODTrackCutsDiHadronPID.cxx:704
 AliAODTrackCutsDiHadronPID.cxx:705
 AliAODTrackCutsDiHadronPID.cxx:706
 AliAODTrackCutsDiHadronPID.cxx:707
 AliAODTrackCutsDiHadronPID.cxx:708
 AliAODTrackCutsDiHadronPID.cxx:709
 AliAODTrackCutsDiHadronPID.cxx:710
 AliAODTrackCutsDiHadronPID.cxx:711
 AliAODTrackCutsDiHadronPID.cxx:712
 AliAODTrackCutsDiHadronPID.cxx:713
 AliAODTrackCutsDiHadronPID.cxx:714
 AliAODTrackCutsDiHadronPID.cxx:715
 AliAODTrackCutsDiHadronPID.cxx:716
 AliAODTrackCutsDiHadronPID.cxx:717
 AliAODTrackCutsDiHadronPID.cxx:718
 AliAODTrackCutsDiHadronPID.cxx:719
 AliAODTrackCutsDiHadronPID.cxx:720
 AliAODTrackCutsDiHadronPID.cxx:721
 AliAODTrackCutsDiHadronPID.cxx:722
 AliAODTrackCutsDiHadronPID.cxx:723
 AliAODTrackCutsDiHadronPID.cxx:724
 AliAODTrackCutsDiHadronPID.cxx:725
 AliAODTrackCutsDiHadronPID.cxx:726
 AliAODTrackCutsDiHadronPID.cxx:727
 AliAODTrackCutsDiHadronPID.cxx:728
 AliAODTrackCutsDiHadronPID.cxx:729
 AliAODTrackCutsDiHadronPID.cxx:730
 AliAODTrackCutsDiHadronPID.cxx:731
 AliAODTrackCutsDiHadronPID.cxx:732
 AliAODTrackCutsDiHadronPID.cxx:733
 AliAODTrackCutsDiHadronPID.cxx:734
 AliAODTrackCutsDiHadronPID.cxx:735
 AliAODTrackCutsDiHadronPID.cxx:736
 AliAODTrackCutsDiHadronPID.cxx:737
 AliAODTrackCutsDiHadronPID.cxx:738
 AliAODTrackCutsDiHadronPID.cxx:739
 AliAODTrackCutsDiHadronPID.cxx:740
 AliAODTrackCutsDiHadronPID.cxx:741
 AliAODTrackCutsDiHadronPID.cxx:742
 AliAODTrackCutsDiHadronPID.cxx:743
 AliAODTrackCutsDiHadronPID.cxx:744
 AliAODTrackCutsDiHadronPID.cxx:745
 AliAODTrackCutsDiHadronPID.cxx:746
 AliAODTrackCutsDiHadronPID.cxx:747
 AliAODTrackCutsDiHadronPID.cxx:748
 AliAODTrackCutsDiHadronPID.cxx:749
 AliAODTrackCutsDiHadronPID.cxx:750
 AliAODTrackCutsDiHadronPID.cxx:751
 AliAODTrackCutsDiHadronPID.cxx:752
 AliAODTrackCutsDiHadronPID.cxx:753
 AliAODTrackCutsDiHadronPID.cxx:754
 AliAODTrackCutsDiHadronPID.cxx:755
 AliAODTrackCutsDiHadronPID.cxx:756
 AliAODTrackCutsDiHadronPID.cxx:757
 AliAODTrackCutsDiHadronPID.cxx:758
 AliAODTrackCutsDiHadronPID.cxx:759
 AliAODTrackCutsDiHadronPID.cxx:760
 AliAODTrackCutsDiHadronPID.cxx:761
 AliAODTrackCutsDiHadronPID.cxx:762
 AliAODTrackCutsDiHadronPID.cxx:763
 AliAODTrackCutsDiHadronPID.cxx:764
 AliAODTrackCutsDiHadronPID.cxx:765
 AliAODTrackCutsDiHadronPID.cxx:766
 AliAODTrackCutsDiHadronPID.cxx:767
 AliAODTrackCutsDiHadronPID.cxx:768
 AliAODTrackCutsDiHadronPID.cxx:769
 AliAODTrackCutsDiHadronPID.cxx:770
 AliAODTrackCutsDiHadronPID.cxx:771
 AliAODTrackCutsDiHadronPID.cxx:772
 AliAODTrackCutsDiHadronPID.cxx:773
 AliAODTrackCutsDiHadronPID.cxx:774
 AliAODTrackCutsDiHadronPID.cxx:775
 AliAODTrackCutsDiHadronPID.cxx:776
 AliAODTrackCutsDiHadronPID.cxx:777
 AliAODTrackCutsDiHadronPID.cxx:778
 AliAODTrackCutsDiHadronPID.cxx:779
 AliAODTrackCutsDiHadronPID.cxx:780
 AliAODTrackCutsDiHadronPID.cxx:781
 AliAODTrackCutsDiHadronPID.cxx:782
 AliAODTrackCutsDiHadronPID.cxx:783
 AliAODTrackCutsDiHadronPID.cxx:784
 AliAODTrackCutsDiHadronPID.cxx:785
 AliAODTrackCutsDiHadronPID.cxx:786
 AliAODTrackCutsDiHadronPID.cxx:787
 AliAODTrackCutsDiHadronPID.cxx:788
 AliAODTrackCutsDiHadronPID.cxx:789
 AliAODTrackCutsDiHadronPID.cxx:790
 AliAODTrackCutsDiHadronPID.cxx:791
 AliAODTrackCutsDiHadronPID.cxx:792
 AliAODTrackCutsDiHadronPID.cxx:793
 AliAODTrackCutsDiHadronPID.cxx:794
 AliAODTrackCutsDiHadronPID.cxx:795
 AliAODTrackCutsDiHadronPID.cxx:796
 AliAODTrackCutsDiHadronPID.cxx:797
 AliAODTrackCutsDiHadronPID.cxx:798
 AliAODTrackCutsDiHadronPID.cxx:799
 AliAODTrackCutsDiHadronPID.cxx:800
 AliAODTrackCutsDiHadronPID.cxx:801
 AliAODTrackCutsDiHadronPID.cxx:802
 AliAODTrackCutsDiHadronPID.cxx:803
 AliAODTrackCutsDiHadronPID.cxx:804
 AliAODTrackCutsDiHadronPID.cxx:805
 AliAODTrackCutsDiHadronPID.cxx:806
 AliAODTrackCutsDiHadronPID.cxx:807
 AliAODTrackCutsDiHadronPID.cxx:808
 AliAODTrackCutsDiHadronPID.cxx:809
 AliAODTrackCutsDiHadronPID.cxx:810
 AliAODTrackCutsDiHadronPID.cxx:811
 AliAODTrackCutsDiHadronPID.cxx:812
 AliAODTrackCutsDiHadronPID.cxx:813
 AliAODTrackCutsDiHadronPID.cxx:814
 AliAODTrackCutsDiHadronPID.cxx:815
 AliAODTrackCutsDiHadronPID.cxx:816
 AliAODTrackCutsDiHadronPID.cxx:817
 AliAODTrackCutsDiHadronPID.cxx:818
 AliAODTrackCutsDiHadronPID.cxx:819
 AliAODTrackCutsDiHadronPID.cxx:820
 AliAODTrackCutsDiHadronPID.cxx:821
 AliAODTrackCutsDiHadronPID.cxx:822
 AliAODTrackCutsDiHadronPID.cxx:823
 AliAODTrackCutsDiHadronPID.cxx:824
 AliAODTrackCutsDiHadronPID.cxx:825
 AliAODTrackCutsDiHadronPID.cxx:826
 AliAODTrackCutsDiHadronPID.cxx:827
 AliAODTrackCutsDiHadronPID.cxx:828
 AliAODTrackCutsDiHadronPID.cxx:829
 AliAODTrackCutsDiHadronPID.cxx:830
 AliAODTrackCutsDiHadronPID.cxx:831
 AliAODTrackCutsDiHadronPID.cxx:832
 AliAODTrackCutsDiHadronPID.cxx:833
 AliAODTrackCutsDiHadronPID.cxx:834
 AliAODTrackCutsDiHadronPID.cxx:835
 AliAODTrackCutsDiHadronPID.cxx:836
 AliAODTrackCutsDiHadronPID.cxx:837
 AliAODTrackCutsDiHadronPID.cxx:838
 AliAODTrackCutsDiHadronPID.cxx:839
 AliAODTrackCutsDiHadronPID.cxx:840
 AliAODTrackCutsDiHadronPID.cxx:841
 AliAODTrackCutsDiHadronPID.cxx:842
 AliAODTrackCutsDiHadronPID.cxx:843
 AliAODTrackCutsDiHadronPID.cxx:844
 AliAODTrackCutsDiHadronPID.cxx:845
 AliAODTrackCutsDiHadronPID.cxx:846
 AliAODTrackCutsDiHadronPID.cxx:847
 AliAODTrackCutsDiHadronPID.cxx:848
 AliAODTrackCutsDiHadronPID.cxx:849
 AliAODTrackCutsDiHadronPID.cxx:850
 AliAODTrackCutsDiHadronPID.cxx:851
 AliAODTrackCutsDiHadronPID.cxx:852
 AliAODTrackCutsDiHadronPID.cxx:853
 AliAODTrackCutsDiHadronPID.cxx:854
 AliAODTrackCutsDiHadronPID.cxx:855
 AliAODTrackCutsDiHadronPID.cxx:856
 AliAODTrackCutsDiHadronPID.cxx:857
 AliAODTrackCutsDiHadronPID.cxx:858
 AliAODTrackCutsDiHadronPID.cxx:859
 AliAODTrackCutsDiHadronPID.cxx:860
 AliAODTrackCutsDiHadronPID.cxx:861
 AliAODTrackCutsDiHadronPID.cxx:862
 AliAODTrackCutsDiHadronPID.cxx:863
 AliAODTrackCutsDiHadronPID.cxx:864
 AliAODTrackCutsDiHadronPID.cxx:865
 AliAODTrackCutsDiHadronPID.cxx:866
 AliAODTrackCutsDiHadronPID.cxx:867
 AliAODTrackCutsDiHadronPID.cxx:868
 AliAODTrackCutsDiHadronPID.cxx:869
 AliAODTrackCutsDiHadronPID.cxx:870
 AliAODTrackCutsDiHadronPID.cxx:871
 AliAODTrackCutsDiHadronPID.cxx:872
 AliAODTrackCutsDiHadronPID.cxx:873
 AliAODTrackCutsDiHadronPID.cxx:874
 AliAODTrackCutsDiHadronPID.cxx:875
 AliAODTrackCutsDiHadronPID.cxx:876
 AliAODTrackCutsDiHadronPID.cxx:877
 AliAODTrackCutsDiHadronPID.cxx:878
 AliAODTrackCutsDiHadronPID.cxx:879
 AliAODTrackCutsDiHadronPID.cxx:880
 AliAODTrackCutsDiHadronPID.cxx:881
 AliAODTrackCutsDiHadronPID.cxx:882
 AliAODTrackCutsDiHadronPID.cxx:883
 AliAODTrackCutsDiHadronPID.cxx:884
 AliAODTrackCutsDiHadronPID.cxx:885
 AliAODTrackCutsDiHadronPID.cxx:886
 AliAODTrackCutsDiHadronPID.cxx:887
 AliAODTrackCutsDiHadronPID.cxx:888
 AliAODTrackCutsDiHadronPID.cxx:889
 AliAODTrackCutsDiHadronPID.cxx:890
 AliAODTrackCutsDiHadronPID.cxx:891
 AliAODTrackCutsDiHadronPID.cxx:892
 AliAODTrackCutsDiHadronPID.cxx:893
 AliAODTrackCutsDiHadronPID.cxx:894
 AliAODTrackCutsDiHadronPID.cxx:895
 AliAODTrackCutsDiHadronPID.cxx:896
 AliAODTrackCutsDiHadronPID.cxx:897
 AliAODTrackCutsDiHadronPID.cxx:898
 AliAODTrackCutsDiHadronPID.cxx:899
 AliAODTrackCutsDiHadronPID.cxx:900
 AliAODTrackCutsDiHadronPID.cxx:901
 AliAODTrackCutsDiHadronPID.cxx:902
 AliAODTrackCutsDiHadronPID.cxx:903
 AliAODTrackCutsDiHadronPID.cxx:904
 AliAODTrackCutsDiHadronPID.cxx:905
 AliAODTrackCutsDiHadronPID.cxx:906
 AliAODTrackCutsDiHadronPID.cxx:907
 AliAODTrackCutsDiHadronPID.cxx:908
 AliAODTrackCutsDiHadronPID.cxx:909
 AliAODTrackCutsDiHadronPID.cxx:910
 AliAODTrackCutsDiHadronPID.cxx:911
 AliAODTrackCutsDiHadronPID.cxx:912
 AliAODTrackCutsDiHadronPID.cxx:913
 AliAODTrackCutsDiHadronPID.cxx:914
 AliAODTrackCutsDiHadronPID.cxx:915
 AliAODTrackCutsDiHadronPID.cxx:916
 AliAODTrackCutsDiHadronPID.cxx:917
 AliAODTrackCutsDiHadronPID.cxx:918
 AliAODTrackCutsDiHadronPID.cxx:919
 AliAODTrackCutsDiHadronPID.cxx:920
 AliAODTrackCutsDiHadronPID.cxx:921
 AliAODTrackCutsDiHadronPID.cxx:922
 AliAODTrackCutsDiHadronPID.cxx:923
 AliAODTrackCutsDiHadronPID.cxx:924
 AliAODTrackCutsDiHadronPID.cxx:925
 AliAODTrackCutsDiHadronPID.cxx:926
 AliAODTrackCutsDiHadronPID.cxx:927
 AliAODTrackCutsDiHadronPID.cxx:928
 AliAODTrackCutsDiHadronPID.cxx:929
 AliAODTrackCutsDiHadronPID.cxx:930
 AliAODTrackCutsDiHadronPID.cxx:931
 AliAODTrackCutsDiHadronPID.cxx:932
 AliAODTrackCutsDiHadronPID.cxx:933
 AliAODTrackCutsDiHadronPID.cxx:934
 AliAODTrackCutsDiHadronPID.cxx:935
 AliAODTrackCutsDiHadronPID.cxx:936
 AliAODTrackCutsDiHadronPID.cxx:937
 AliAODTrackCutsDiHadronPID.cxx:938
 AliAODTrackCutsDiHadronPID.cxx:939
 AliAODTrackCutsDiHadronPID.cxx:940
 AliAODTrackCutsDiHadronPID.cxx:941
 AliAODTrackCutsDiHadronPID.cxx:942
 AliAODTrackCutsDiHadronPID.cxx:943
 AliAODTrackCutsDiHadronPID.cxx:944
 AliAODTrackCutsDiHadronPID.cxx:945
 AliAODTrackCutsDiHadronPID.cxx:946
 AliAODTrackCutsDiHadronPID.cxx:947
 AliAODTrackCutsDiHadronPID.cxx:948
 AliAODTrackCutsDiHadronPID.cxx:949
 AliAODTrackCutsDiHadronPID.cxx:950
 AliAODTrackCutsDiHadronPID.cxx:951
 AliAODTrackCutsDiHadronPID.cxx:952
 AliAODTrackCutsDiHadronPID.cxx:953
 AliAODTrackCutsDiHadronPID.cxx:954
 AliAODTrackCutsDiHadronPID.cxx:955
 AliAODTrackCutsDiHadronPID.cxx:956
 AliAODTrackCutsDiHadronPID.cxx:957
 AliAODTrackCutsDiHadronPID.cxx:958
 AliAODTrackCutsDiHadronPID.cxx:959
 AliAODTrackCutsDiHadronPID.cxx:960
 AliAODTrackCutsDiHadronPID.cxx:961
 AliAODTrackCutsDiHadronPID.cxx:962
 AliAODTrackCutsDiHadronPID.cxx:963
 AliAODTrackCutsDiHadronPID.cxx:964
 AliAODTrackCutsDiHadronPID.cxx:965
 AliAODTrackCutsDiHadronPID.cxx:966
 AliAODTrackCutsDiHadronPID.cxx:967
 AliAODTrackCutsDiHadronPID.cxx:968
 AliAODTrackCutsDiHadronPID.cxx:969
 AliAODTrackCutsDiHadronPID.cxx:970
 AliAODTrackCutsDiHadronPID.cxx:971
 AliAODTrackCutsDiHadronPID.cxx:972
 AliAODTrackCutsDiHadronPID.cxx:973
 AliAODTrackCutsDiHadronPID.cxx:974
 AliAODTrackCutsDiHadronPID.cxx:975
 AliAODTrackCutsDiHadronPID.cxx:976
 AliAODTrackCutsDiHadronPID.cxx:977
 AliAODTrackCutsDiHadronPID.cxx:978
 AliAODTrackCutsDiHadronPID.cxx:979
 AliAODTrackCutsDiHadronPID.cxx:980
 AliAODTrackCutsDiHadronPID.cxx:981
 AliAODTrackCutsDiHadronPID.cxx:982
 AliAODTrackCutsDiHadronPID.cxx:983
 AliAODTrackCutsDiHadronPID.cxx:984
 AliAODTrackCutsDiHadronPID.cxx:985
 AliAODTrackCutsDiHadronPID.cxx:986
 AliAODTrackCutsDiHadronPID.cxx:987
 AliAODTrackCutsDiHadronPID.cxx:988
 AliAODTrackCutsDiHadronPID.cxx:989
 AliAODTrackCutsDiHadronPID.cxx:990
 AliAODTrackCutsDiHadronPID.cxx:991
 AliAODTrackCutsDiHadronPID.cxx:992
 AliAODTrackCutsDiHadronPID.cxx:993
 AliAODTrackCutsDiHadronPID.cxx:994
 AliAODTrackCutsDiHadronPID.cxx:995
 AliAODTrackCutsDiHadronPID.cxx:996
 AliAODTrackCutsDiHadronPID.cxx:997
 AliAODTrackCutsDiHadronPID.cxx:998
 AliAODTrackCutsDiHadronPID.cxx:999
 AliAODTrackCutsDiHadronPID.cxx:1000
 AliAODTrackCutsDiHadronPID.cxx:1001
 AliAODTrackCutsDiHadronPID.cxx:1002
 AliAODTrackCutsDiHadronPID.cxx:1003
 AliAODTrackCutsDiHadronPID.cxx:1004
 AliAODTrackCutsDiHadronPID.cxx:1005
 AliAODTrackCutsDiHadronPID.cxx:1006
 AliAODTrackCutsDiHadronPID.cxx:1007
 AliAODTrackCutsDiHadronPID.cxx:1008
 AliAODTrackCutsDiHadronPID.cxx:1009
 AliAODTrackCutsDiHadronPID.cxx:1010
 AliAODTrackCutsDiHadronPID.cxx:1011
 AliAODTrackCutsDiHadronPID.cxx:1012
 AliAODTrackCutsDiHadronPID.cxx:1013
 AliAODTrackCutsDiHadronPID.cxx:1014
 AliAODTrackCutsDiHadronPID.cxx:1015
 AliAODTrackCutsDiHadronPID.cxx:1016
 AliAODTrackCutsDiHadronPID.cxx:1017
 AliAODTrackCutsDiHadronPID.cxx:1018
 AliAODTrackCutsDiHadronPID.cxx:1019
 AliAODTrackCutsDiHadronPID.cxx:1020
 AliAODTrackCutsDiHadronPID.cxx:1021
 AliAODTrackCutsDiHadronPID.cxx:1022
 AliAODTrackCutsDiHadronPID.cxx:1023
 AliAODTrackCutsDiHadronPID.cxx:1024
 AliAODTrackCutsDiHadronPID.cxx:1025
 AliAODTrackCutsDiHadronPID.cxx:1026
 AliAODTrackCutsDiHadronPID.cxx:1027
 AliAODTrackCutsDiHadronPID.cxx:1028
 AliAODTrackCutsDiHadronPID.cxx:1029
 AliAODTrackCutsDiHadronPID.cxx:1030
 AliAODTrackCutsDiHadronPID.cxx:1031
 AliAODTrackCutsDiHadronPID.cxx:1032
 AliAODTrackCutsDiHadronPID.cxx:1033
 AliAODTrackCutsDiHadronPID.cxx:1034
 AliAODTrackCutsDiHadronPID.cxx:1035
 AliAODTrackCutsDiHadronPID.cxx:1036
 AliAODTrackCutsDiHadronPID.cxx:1037
 AliAODTrackCutsDiHadronPID.cxx:1038
 AliAODTrackCutsDiHadronPID.cxx:1039
 AliAODTrackCutsDiHadronPID.cxx:1040
 AliAODTrackCutsDiHadronPID.cxx:1041
 AliAODTrackCutsDiHadronPID.cxx:1042
 AliAODTrackCutsDiHadronPID.cxx:1043
 AliAODTrackCutsDiHadronPID.cxx:1044
 AliAODTrackCutsDiHadronPID.cxx:1045
 AliAODTrackCutsDiHadronPID.cxx:1046
 AliAODTrackCutsDiHadronPID.cxx:1047
 AliAODTrackCutsDiHadronPID.cxx:1048
 AliAODTrackCutsDiHadronPID.cxx:1049
 AliAODTrackCutsDiHadronPID.cxx:1050
 AliAODTrackCutsDiHadronPID.cxx:1051
 AliAODTrackCutsDiHadronPID.cxx:1052
 AliAODTrackCutsDiHadronPID.cxx:1053
 AliAODTrackCutsDiHadronPID.cxx:1054
 AliAODTrackCutsDiHadronPID.cxx:1055
 AliAODTrackCutsDiHadronPID.cxx:1056
 AliAODTrackCutsDiHadronPID.cxx:1057
 AliAODTrackCutsDiHadronPID.cxx:1058
 AliAODTrackCutsDiHadronPID.cxx:1059
 AliAODTrackCutsDiHadronPID.cxx:1060
 AliAODTrackCutsDiHadronPID.cxx:1061
 AliAODTrackCutsDiHadronPID.cxx:1062
 AliAODTrackCutsDiHadronPID.cxx:1063
 AliAODTrackCutsDiHadronPID.cxx:1064
 AliAODTrackCutsDiHadronPID.cxx:1065
 AliAODTrackCutsDiHadronPID.cxx:1066
 AliAODTrackCutsDiHadronPID.cxx:1067
 AliAODTrackCutsDiHadronPID.cxx:1068
 AliAODTrackCutsDiHadronPID.cxx:1069
 AliAODTrackCutsDiHadronPID.cxx:1070
 AliAODTrackCutsDiHadronPID.cxx:1071
 AliAODTrackCutsDiHadronPID.cxx:1072
 AliAODTrackCutsDiHadronPID.cxx:1073
 AliAODTrackCutsDiHadronPID.cxx:1074
 AliAODTrackCutsDiHadronPID.cxx:1075
 AliAODTrackCutsDiHadronPID.cxx:1076
 AliAODTrackCutsDiHadronPID.cxx:1077
 AliAODTrackCutsDiHadronPID.cxx:1078
 AliAODTrackCutsDiHadronPID.cxx:1079
 AliAODTrackCutsDiHadronPID.cxx:1080
 AliAODTrackCutsDiHadronPID.cxx:1081
 AliAODTrackCutsDiHadronPID.cxx:1082
 AliAODTrackCutsDiHadronPID.cxx:1083
 AliAODTrackCutsDiHadronPID.cxx:1084
 AliAODTrackCutsDiHadronPID.cxx:1085
 AliAODTrackCutsDiHadronPID.cxx:1086
 AliAODTrackCutsDiHadronPID.cxx:1087
 AliAODTrackCutsDiHadronPID.cxx:1088
 AliAODTrackCutsDiHadronPID.cxx:1089
 AliAODTrackCutsDiHadronPID.cxx:1090
 AliAODTrackCutsDiHadronPID.cxx:1091
 AliAODTrackCutsDiHadronPID.cxx:1092
 AliAODTrackCutsDiHadronPID.cxx:1093
 AliAODTrackCutsDiHadronPID.cxx:1094
 AliAODTrackCutsDiHadronPID.cxx:1095
 AliAODTrackCutsDiHadronPID.cxx:1096
 AliAODTrackCutsDiHadronPID.cxx:1097
 AliAODTrackCutsDiHadronPID.cxx:1098
 AliAODTrackCutsDiHadronPID.cxx:1099
 AliAODTrackCutsDiHadronPID.cxx:1100
 AliAODTrackCutsDiHadronPID.cxx:1101
 AliAODTrackCutsDiHadronPID.cxx:1102
 AliAODTrackCutsDiHadronPID.cxx:1103
 AliAODTrackCutsDiHadronPID.cxx:1104
 AliAODTrackCutsDiHadronPID.cxx:1105
 AliAODTrackCutsDiHadronPID.cxx:1106
 AliAODTrackCutsDiHadronPID.cxx:1107
 AliAODTrackCutsDiHadronPID.cxx:1108
 AliAODTrackCutsDiHadronPID.cxx:1109
 AliAODTrackCutsDiHadronPID.cxx:1110
 AliAODTrackCutsDiHadronPID.cxx:1111
 AliAODTrackCutsDiHadronPID.cxx:1112
 AliAODTrackCutsDiHadronPID.cxx:1113
 AliAODTrackCutsDiHadronPID.cxx:1114
 AliAODTrackCutsDiHadronPID.cxx:1115
 AliAODTrackCutsDiHadronPID.cxx:1116
 AliAODTrackCutsDiHadronPID.cxx:1117
 AliAODTrackCutsDiHadronPID.cxx:1118
 AliAODTrackCutsDiHadronPID.cxx:1119
 AliAODTrackCutsDiHadronPID.cxx:1120
 AliAODTrackCutsDiHadronPID.cxx:1121
 AliAODTrackCutsDiHadronPID.cxx:1122
 AliAODTrackCutsDiHadronPID.cxx:1123
 AliAODTrackCutsDiHadronPID.cxx:1124
 AliAODTrackCutsDiHadronPID.cxx:1125
 AliAODTrackCutsDiHadronPID.cxx:1126
 AliAODTrackCutsDiHadronPID.cxx:1127
 AliAODTrackCutsDiHadronPID.cxx:1128
 AliAODTrackCutsDiHadronPID.cxx:1129
 AliAODTrackCutsDiHadronPID.cxx:1130
 AliAODTrackCutsDiHadronPID.cxx:1131
 AliAODTrackCutsDiHadronPID.cxx:1132
 AliAODTrackCutsDiHadronPID.cxx:1133
 AliAODTrackCutsDiHadronPID.cxx:1134
 AliAODTrackCutsDiHadronPID.cxx:1135
 AliAODTrackCutsDiHadronPID.cxx:1136
 AliAODTrackCutsDiHadronPID.cxx:1137
 AliAODTrackCutsDiHadronPID.cxx:1138
 AliAODTrackCutsDiHadronPID.cxx:1139
 AliAODTrackCutsDiHadronPID.cxx:1140
 AliAODTrackCutsDiHadronPID.cxx:1141
 AliAODTrackCutsDiHadronPID.cxx:1142
 AliAODTrackCutsDiHadronPID.cxx:1143
 AliAODTrackCutsDiHadronPID.cxx:1144
 AliAODTrackCutsDiHadronPID.cxx:1145
 AliAODTrackCutsDiHadronPID.cxx:1146
 AliAODTrackCutsDiHadronPID.cxx:1147
 AliAODTrackCutsDiHadronPID.cxx:1148
 AliAODTrackCutsDiHadronPID.cxx:1149
 AliAODTrackCutsDiHadronPID.cxx:1150
 AliAODTrackCutsDiHadronPID.cxx:1151
 AliAODTrackCutsDiHadronPID.cxx:1152
 AliAODTrackCutsDiHadronPID.cxx:1153
 AliAODTrackCutsDiHadronPID.cxx:1154
 AliAODTrackCutsDiHadronPID.cxx:1155
 AliAODTrackCutsDiHadronPID.cxx:1156
 AliAODTrackCutsDiHadronPID.cxx:1157
 AliAODTrackCutsDiHadronPID.cxx:1158
 AliAODTrackCutsDiHadronPID.cxx:1159
 AliAODTrackCutsDiHadronPID.cxx:1160
 AliAODTrackCutsDiHadronPID.cxx:1161
 AliAODTrackCutsDiHadronPID.cxx:1162
 AliAODTrackCutsDiHadronPID.cxx:1163
 AliAODTrackCutsDiHadronPID.cxx:1164
 AliAODTrackCutsDiHadronPID.cxx:1165
 AliAODTrackCutsDiHadronPID.cxx:1166
 AliAODTrackCutsDiHadronPID.cxx:1167
 AliAODTrackCutsDiHadronPID.cxx:1168
 AliAODTrackCutsDiHadronPID.cxx:1169
 AliAODTrackCutsDiHadronPID.cxx:1170
 AliAODTrackCutsDiHadronPID.cxx:1171
 AliAODTrackCutsDiHadronPID.cxx:1172
 AliAODTrackCutsDiHadronPID.cxx:1173
 AliAODTrackCutsDiHadronPID.cxx:1174
 AliAODTrackCutsDiHadronPID.cxx:1175
 AliAODTrackCutsDiHadronPID.cxx:1176
 AliAODTrackCutsDiHadronPID.cxx:1177
 AliAODTrackCutsDiHadronPID.cxx:1178
 AliAODTrackCutsDiHadronPID.cxx:1179
 AliAODTrackCutsDiHadronPID.cxx:1180
 AliAODTrackCutsDiHadronPID.cxx:1181
 AliAODTrackCutsDiHadronPID.cxx:1182
 AliAODTrackCutsDiHadronPID.cxx:1183
 AliAODTrackCutsDiHadronPID.cxx:1184
 AliAODTrackCutsDiHadronPID.cxx:1185
 AliAODTrackCutsDiHadronPID.cxx:1186
 AliAODTrackCutsDiHadronPID.cxx:1187
 AliAODTrackCutsDiHadronPID.cxx:1188
 AliAODTrackCutsDiHadronPID.cxx:1189
 AliAODTrackCutsDiHadronPID.cxx:1190
 AliAODTrackCutsDiHadronPID.cxx:1191
 AliAODTrackCutsDiHadronPID.cxx:1192
 AliAODTrackCutsDiHadronPID.cxx:1193
 AliAODTrackCutsDiHadronPID.cxx:1194
 AliAODTrackCutsDiHadronPID.cxx:1195
 AliAODTrackCutsDiHadronPID.cxx:1196
 AliAODTrackCutsDiHadronPID.cxx:1197
 AliAODTrackCutsDiHadronPID.cxx:1198
 AliAODTrackCutsDiHadronPID.cxx:1199
 AliAODTrackCutsDiHadronPID.cxx:1200
 AliAODTrackCutsDiHadronPID.cxx:1201
 AliAODTrackCutsDiHadronPID.cxx:1202
 AliAODTrackCutsDiHadronPID.cxx:1203
 AliAODTrackCutsDiHadronPID.cxx:1204
 AliAODTrackCutsDiHadronPID.cxx:1205
 AliAODTrackCutsDiHadronPID.cxx:1206
 AliAODTrackCutsDiHadronPID.cxx:1207
 AliAODTrackCutsDiHadronPID.cxx:1208
 AliAODTrackCutsDiHadronPID.cxx:1209
 AliAODTrackCutsDiHadronPID.cxx:1210
 AliAODTrackCutsDiHadronPID.cxx:1211
 AliAODTrackCutsDiHadronPID.cxx:1212
 AliAODTrackCutsDiHadronPID.cxx:1213
 AliAODTrackCutsDiHadronPID.cxx:1214
 AliAODTrackCutsDiHadronPID.cxx:1215
 AliAODTrackCutsDiHadronPID.cxx:1216
 AliAODTrackCutsDiHadronPID.cxx:1217
 AliAODTrackCutsDiHadronPID.cxx:1218
 AliAODTrackCutsDiHadronPID.cxx:1219
 AliAODTrackCutsDiHadronPID.cxx:1220
 AliAODTrackCutsDiHadronPID.cxx:1221
 AliAODTrackCutsDiHadronPID.cxx:1222
 AliAODTrackCutsDiHadronPID.cxx:1223
 AliAODTrackCutsDiHadronPID.cxx:1224
 AliAODTrackCutsDiHadronPID.cxx:1225
 AliAODTrackCutsDiHadronPID.cxx:1226
 AliAODTrackCutsDiHadronPID.cxx:1227
 AliAODTrackCutsDiHadronPID.cxx:1228
 AliAODTrackCutsDiHadronPID.cxx:1229
 AliAODTrackCutsDiHadronPID.cxx:1230
 AliAODTrackCutsDiHadronPID.cxx:1231
 AliAODTrackCutsDiHadronPID.cxx:1232
 AliAODTrackCutsDiHadronPID.cxx:1233
 AliAODTrackCutsDiHadronPID.cxx:1234
 AliAODTrackCutsDiHadronPID.cxx:1235
 AliAODTrackCutsDiHadronPID.cxx:1236
 AliAODTrackCutsDiHadronPID.cxx:1237
 AliAODTrackCutsDiHadronPID.cxx:1238
 AliAODTrackCutsDiHadronPID.cxx:1239
 AliAODTrackCutsDiHadronPID.cxx:1240
 AliAODTrackCutsDiHadronPID.cxx:1241
 AliAODTrackCutsDiHadronPID.cxx:1242
 AliAODTrackCutsDiHadronPID.cxx:1243
 AliAODTrackCutsDiHadronPID.cxx:1244
 AliAODTrackCutsDiHadronPID.cxx:1245
 AliAODTrackCutsDiHadronPID.cxx:1246
 AliAODTrackCutsDiHadronPID.cxx:1247
 AliAODTrackCutsDiHadronPID.cxx:1248
 AliAODTrackCutsDiHadronPID.cxx:1249
 AliAODTrackCutsDiHadronPID.cxx:1250
 AliAODTrackCutsDiHadronPID.cxx:1251
 AliAODTrackCutsDiHadronPID.cxx:1252
 AliAODTrackCutsDiHadronPID.cxx:1253
 AliAODTrackCutsDiHadronPID.cxx:1254
 AliAODTrackCutsDiHadronPID.cxx:1255
 AliAODTrackCutsDiHadronPID.cxx:1256
 AliAODTrackCutsDiHadronPID.cxx:1257
 AliAODTrackCutsDiHadronPID.cxx:1258
 AliAODTrackCutsDiHadronPID.cxx:1259
 AliAODTrackCutsDiHadronPID.cxx:1260
 AliAODTrackCutsDiHadronPID.cxx:1261
 AliAODTrackCutsDiHadronPID.cxx:1262
 AliAODTrackCutsDiHadronPID.cxx:1263
 AliAODTrackCutsDiHadronPID.cxx:1264
 AliAODTrackCutsDiHadronPID.cxx:1265
 AliAODTrackCutsDiHadronPID.cxx:1266
 AliAODTrackCutsDiHadronPID.cxx:1267
 AliAODTrackCutsDiHadronPID.cxx:1268
 AliAODTrackCutsDiHadronPID.cxx:1269
 AliAODTrackCutsDiHadronPID.cxx:1270
 AliAODTrackCutsDiHadronPID.cxx:1271
 AliAODTrackCutsDiHadronPID.cxx:1272
 AliAODTrackCutsDiHadronPID.cxx:1273
 AliAODTrackCutsDiHadronPID.cxx:1274
 AliAODTrackCutsDiHadronPID.cxx:1275
 AliAODTrackCutsDiHadronPID.cxx:1276
 AliAODTrackCutsDiHadronPID.cxx:1277
 AliAODTrackCutsDiHadronPID.cxx:1278
 AliAODTrackCutsDiHadronPID.cxx:1279
 AliAODTrackCutsDiHadronPID.cxx:1280
 AliAODTrackCutsDiHadronPID.cxx:1281
 AliAODTrackCutsDiHadronPID.cxx:1282
 AliAODTrackCutsDiHadronPID.cxx:1283
 AliAODTrackCutsDiHadronPID.cxx:1284
 AliAODTrackCutsDiHadronPID.cxx:1285
 AliAODTrackCutsDiHadronPID.cxx:1286
 AliAODTrackCutsDiHadronPID.cxx:1287
 AliAODTrackCutsDiHadronPID.cxx:1288
 AliAODTrackCutsDiHadronPID.cxx:1289
 AliAODTrackCutsDiHadronPID.cxx:1290
 AliAODTrackCutsDiHadronPID.cxx:1291
 AliAODTrackCutsDiHadronPID.cxx:1292
 AliAODTrackCutsDiHadronPID.cxx:1293
 AliAODTrackCutsDiHadronPID.cxx:1294
 AliAODTrackCutsDiHadronPID.cxx:1295
 AliAODTrackCutsDiHadronPID.cxx:1296
 AliAODTrackCutsDiHadronPID.cxx:1297
 AliAODTrackCutsDiHadronPID.cxx:1298
 AliAODTrackCutsDiHadronPID.cxx:1299
 AliAODTrackCutsDiHadronPID.cxx:1300
 AliAODTrackCutsDiHadronPID.cxx:1301
 AliAODTrackCutsDiHadronPID.cxx:1302
 AliAODTrackCutsDiHadronPID.cxx:1303
 AliAODTrackCutsDiHadronPID.cxx:1304
 AliAODTrackCutsDiHadronPID.cxx:1305
 AliAODTrackCutsDiHadronPID.cxx:1306
 AliAODTrackCutsDiHadronPID.cxx:1307
 AliAODTrackCutsDiHadronPID.cxx:1308
 AliAODTrackCutsDiHadronPID.cxx:1309
 AliAODTrackCutsDiHadronPID.cxx:1310
 AliAODTrackCutsDiHadronPID.cxx:1311
 AliAODTrackCutsDiHadronPID.cxx:1312
 AliAODTrackCutsDiHadronPID.cxx:1313
 AliAODTrackCutsDiHadronPID.cxx:1314
 AliAODTrackCutsDiHadronPID.cxx:1315
 AliAODTrackCutsDiHadronPID.cxx:1316
 AliAODTrackCutsDiHadronPID.cxx:1317
 AliAODTrackCutsDiHadronPID.cxx:1318
 AliAODTrackCutsDiHadronPID.cxx:1319
 AliAODTrackCutsDiHadronPID.cxx:1320
 AliAODTrackCutsDiHadronPID.cxx:1321
 AliAODTrackCutsDiHadronPID.cxx:1322
 AliAODTrackCutsDiHadronPID.cxx:1323
 AliAODTrackCutsDiHadronPID.cxx:1324
 AliAODTrackCutsDiHadronPID.cxx:1325
 AliAODTrackCutsDiHadronPID.cxx:1326
 AliAODTrackCutsDiHadronPID.cxx:1327
 AliAODTrackCutsDiHadronPID.cxx:1328
 AliAODTrackCutsDiHadronPID.cxx:1329
 AliAODTrackCutsDiHadronPID.cxx:1330
 AliAODTrackCutsDiHadronPID.cxx:1331
 AliAODTrackCutsDiHadronPID.cxx:1332
 AliAODTrackCutsDiHadronPID.cxx:1333
 AliAODTrackCutsDiHadronPID.cxx:1334
 AliAODTrackCutsDiHadronPID.cxx:1335
 AliAODTrackCutsDiHadronPID.cxx:1336
 AliAODTrackCutsDiHadronPID.cxx:1337
 AliAODTrackCutsDiHadronPID.cxx:1338
 AliAODTrackCutsDiHadronPID.cxx:1339
 AliAODTrackCutsDiHadronPID.cxx:1340
 AliAODTrackCutsDiHadronPID.cxx:1341
 AliAODTrackCutsDiHadronPID.cxx:1342
 AliAODTrackCutsDiHadronPID.cxx:1343
 AliAODTrackCutsDiHadronPID.cxx:1344
 AliAODTrackCutsDiHadronPID.cxx:1345
 AliAODTrackCutsDiHadronPID.cxx:1346
 AliAODTrackCutsDiHadronPID.cxx:1347
 AliAODTrackCutsDiHadronPID.cxx:1348
 AliAODTrackCutsDiHadronPID.cxx:1349
 AliAODTrackCutsDiHadronPID.cxx:1350
 AliAODTrackCutsDiHadronPID.cxx:1351
 AliAODTrackCutsDiHadronPID.cxx:1352
 AliAODTrackCutsDiHadronPID.cxx:1353
 AliAODTrackCutsDiHadronPID.cxx:1354
 AliAODTrackCutsDiHadronPID.cxx:1355
 AliAODTrackCutsDiHadronPID.cxx:1356
 AliAODTrackCutsDiHadronPID.cxx:1357
 AliAODTrackCutsDiHadronPID.cxx:1358
 AliAODTrackCutsDiHadronPID.cxx:1359
 AliAODTrackCutsDiHadronPID.cxx:1360
 AliAODTrackCutsDiHadronPID.cxx:1361
 AliAODTrackCutsDiHadronPID.cxx:1362
 AliAODTrackCutsDiHadronPID.cxx:1363
 AliAODTrackCutsDiHadronPID.cxx:1364
 AliAODTrackCutsDiHadronPID.cxx:1365
 AliAODTrackCutsDiHadronPID.cxx:1366
 AliAODTrackCutsDiHadronPID.cxx:1367
 AliAODTrackCutsDiHadronPID.cxx:1368
 AliAODTrackCutsDiHadronPID.cxx:1369
 AliAODTrackCutsDiHadronPID.cxx:1370
 AliAODTrackCutsDiHadronPID.cxx:1371
 AliAODTrackCutsDiHadronPID.cxx:1372
 AliAODTrackCutsDiHadronPID.cxx:1373
 AliAODTrackCutsDiHadronPID.cxx:1374
 AliAODTrackCutsDiHadronPID.cxx:1375
 AliAODTrackCutsDiHadronPID.cxx:1376
 AliAODTrackCutsDiHadronPID.cxx:1377
 AliAODTrackCutsDiHadronPID.cxx:1378
 AliAODTrackCutsDiHadronPID.cxx:1379
 AliAODTrackCutsDiHadronPID.cxx:1380
 AliAODTrackCutsDiHadronPID.cxx:1381
 AliAODTrackCutsDiHadronPID.cxx:1382
 AliAODTrackCutsDiHadronPID.cxx:1383
 AliAODTrackCutsDiHadronPID.cxx:1384
 AliAODTrackCutsDiHadronPID.cxx:1385
 AliAODTrackCutsDiHadronPID.cxx:1386
 AliAODTrackCutsDiHadronPID.cxx:1387
 AliAODTrackCutsDiHadronPID.cxx:1388
 AliAODTrackCutsDiHadronPID.cxx:1389
 AliAODTrackCutsDiHadronPID.cxx:1390
 AliAODTrackCutsDiHadronPID.cxx:1391
 AliAODTrackCutsDiHadronPID.cxx:1392
 AliAODTrackCutsDiHadronPID.cxx:1393
 AliAODTrackCutsDiHadronPID.cxx:1394
 AliAODTrackCutsDiHadronPID.cxx:1395
 AliAODTrackCutsDiHadronPID.cxx:1396
 AliAODTrackCutsDiHadronPID.cxx:1397
 AliAODTrackCutsDiHadronPID.cxx:1398
 AliAODTrackCutsDiHadronPID.cxx:1399
 AliAODTrackCutsDiHadronPID.cxx:1400
 AliAODTrackCutsDiHadronPID.cxx:1401
 AliAODTrackCutsDiHadronPID.cxx:1402
 AliAODTrackCutsDiHadronPID.cxx:1403
 AliAODTrackCutsDiHadronPID.cxx:1404
 AliAODTrackCutsDiHadronPID.cxx:1405
 AliAODTrackCutsDiHadronPID.cxx:1406
 AliAODTrackCutsDiHadronPID.cxx:1407
 AliAODTrackCutsDiHadronPID.cxx:1408
 AliAODTrackCutsDiHadronPID.cxx:1409
 AliAODTrackCutsDiHadronPID.cxx:1410
 AliAODTrackCutsDiHadronPID.cxx:1411
 AliAODTrackCutsDiHadronPID.cxx:1412
 AliAODTrackCutsDiHadronPID.cxx:1413
 AliAODTrackCutsDiHadronPID.cxx:1414
 AliAODTrackCutsDiHadronPID.cxx:1415
 AliAODTrackCutsDiHadronPID.cxx:1416
 AliAODTrackCutsDiHadronPID.cxx:1417
 AliAODTrackCutsDiHadronPID.cxx:1418
 AliAODTrackCutsDiHadronPID.cxx:1419
 AliAODTrackCutsDiHadronPID.cxx:1420
 AliAODTrackCutsDiHadronPID.cxx:1421
 AliAODTrackCutsDiHadronPID.cxx:1422
 AliAODTrackCutsDiHadronPID.cxx:1423
 AliAODTrackCutsDiHadronPID.cxx:1424
 AliAODTrackCutsDiHadronPID.cxx:1425
 AliAODTrackCutsDiHadronPID.cxx:1426
 AliAODTrackCutsDiHadronPID.cxx:1427
 AliAODTrackCutsDiHadronPID.cxx:1428
 AliAODTrackCutsDiHadronPID.cxx:1429
 AliAODTrackCutsDiHadronPID.cxx:1430
 AliAODTrackCutsDiHadronPID.cxx:1431
 AliAODTrackCutsDiHadronPID.cxx:1432
 AliAODTrackCutsDiHadronPID.cxx:1433
 AliAODTrackCutsDiHadronPID.cxx:1434
 AliAODTrackCutsDiHadronPID.cxx:1435
 AliAODTrackCutsDiHadronPID.cxx:1436
 AliAODTrackCutsDiHadronPID.cxx:1437
 AliAODTrackCutsDiHadronPID.cxx:1438
 AliAODTrackCutsDiHadronPID.cxx:1439
 AliAODTrackCutsDiHadronPID.cxx:1440
 AliAODTrackCutsDiHadronPID.cxx:1441
 AliAODTrackCutsDiHadronPID.cxx:1442
 AliAODTrackCutsDiHadronPID.cxx:1443
 AliAODTrackCutsDiHadronPID.cxx:1444
 AliAODTrackCutsDiHadronPID.cxx:1445
 AliAODTrackCutsDiHadronPID.cxx:1446
 AliAODTrackCutsDiHadronPID.cxx:1447
 AliAODTrackCutsDiHadronPID.cxx:1448
 AliAODTrackCutsDiHadronPID.cxx:1449
 AliAODTrackCutsDiHadronPID.cxx:1450
 AliAODTrackCutsDiHadronPID.cxx:1451
 AliAODTrackCutsDiHadronPID.cxx:1452
 AliAODTrackCutsDiHadronPID.cxx:1453
 AliAODTrackCutsDiHadronPID.cxx:1454
 AliAODTrackCutsDiHadronPID.cxx:1455
 AliAODTrackCutsDiHadronPID.cxx:1456
 AliAODTrackCutsDiHadronPID.cxx:1457
 AliAODTrackCutsDiHadronPID.cxx:1458
 AliAODTrackCutsDiHadronPID.cxx:1459
 AliAODTrackCutsDiHadronPID.cxx:1460
 AliAODTrackCutsDiHadronPID.cxx:1461
 AliAODTrackCutsDiHadronPID.cxx:1462
 AliAODTrackCutsDiHadronPID.cxx:1463
 AliAODTrackCutsDiHadronPID.cxx:1464
 AliAODTrackCutsDiHadronPID.cxx:1465
 AliAODTrackCutsDiHadronPID.cxx:1466
 AliAODTrackCutsDiHadronPID.cxx:1467
 AliAODTrackCutsDiHadronPID.cxx:1468
 AliAODTrackCutsDiHadronPID.cxx:1469
 AliAODTrackCutsDiHadronPID.cxx:1470
 AliAODTrackCutsDiHadronPID.cxx:1471
 AliAODTrackCutsDiHadronPID.cxx:1472
 AliAODTrackCutsDiHadronPID.cxx:1473
 AliAODTrackCutsDiHadronPID.cxx:1474
 AliAODTrackCutsDiHadronPID.cxx:1475
 AliAODTrackCutsDiHadronPID.cxx:1476
 AliAODTrackCutsDiHadronPID.cxx:1477
 AliAODTrackCutsDiHadronPID.cxx:1478
 AliAODTrackCutsDiHadronPID.cxx:1479
 AliAODTrackCutsDiHadronPID.cxx:1480
 AliAODTrackCutsDiHadronPID.cxx:1481
 AliAODTrackCutsDiHadronPID.cxx:1482
 AliAODTrackCutsDiHadronPID.cxx:1483
 AliAODTrackCutsDiHadronPID.cxx:1484
 AliAODTrackCutsDiHadronPID.cxx:1485
 AliAODTrackCutsDiHadronPID.cxx:1486
 AliAODTrackCutsDiHadronPID.cxx:1487
 AliAODTrackCutsDiHadronPID.cxx:1488
 AliAODTrackCutsDiHadronPID.cxx:1489
 AliAODTrackCutsDiHadronPID.cxx:1490
 AliAODTrackCutsDiHadronPID.cxx:1491
 AliAODTrackCutsDiHadronPID.cxx:1492
 AliAODTrackCutsDiHadronPID.cxx:1493
 AliAODTrackCutsDiHadronPID.cxx:1494
 AliAODTrackCutsDiHadronPID.cxx:1495
 AliAODTrackCutsDiHadronPID.cxx:1496
 AliAODTrackCutsDiHadronPID.cxx:1497
 AliAODTrackCutsDiHadronPID.cxx:1498
 AliAODTrackCutsDiHadronPID.cxx:1499
 AliAODTrackCutsDiHadronPID.cxx:1500
 AliAODTrackCutsDiHadronPID.cxx:1501
 AliAODTrackCutsDiHadronPID.cxx:1502
 AliAODTrackCutsDiHadronPID.cxx:1503
 AliAODTrackCutsDiHadronPID.cxx:1504
 AliAODTrackCutsDiHadronPID.cxx:1505
 AliAODTrackCutsDiHadronPID.cxx:1506
 AliAODTrackCutsDiHadronPID.cxx:1507
 AliAODTrackCutsDiHadronPID.cxx:1508
 AliAODTrackCutsDiHadronPID.cxx:1509
 AliAODTrackCutsDiHadronPID.cxx:1510
 AliAODTrackCutsDiHadronPID.cxx:1511
 AliAODTrackCutsDiHadronPID.cxx:1512
 AliAODTrackCutsDiHadronPID.cxx:1513
 AliAODTrackCutsDiHadronPID.cxx:1514
 AliAODTrackCutsDiHadronPID.cxx:1515
 AliAODTrackCutsDiHadronPID.cxx:1516
 AliAODTrackCutsDiHadronPID.cxx:1517
 AliAODTrackCutsDiHadronPID.cxx:1518
 AliAODTrackCutsDiHadronPID.cxx:1519
 AliAODTrackCutsDiHadronPID.cxx:1520
 AliAODTrackCutsDiHadronPID.cxx:1521
 AliAODTrackCutsDiHadronPID.cxx:1522
 AliAODTrackCutsDiHadronPID.cxx:1523
 AliAODTrackCutsDiHadronPID.cxx:1524
 AliAODTrackCutsDiHadronPID.cxx:1525
 AliAODTrackCutsDiHadronPID.cxx:1526
 AliAODTrackCutsDiHadronPID.cxx:1527
 AliAODTrackCutsDiHadronPID.cxx:1528
 AliAODTrackCutsDiHadronPID.cxx:1529
 AliAODTrackCutsDiHadronPID.cxx:1530
 AliAODTrackCutsDiHadronPID.cxx:1531
 AliAODTrackCutsDiHadronPID.cxx:1532
 AliAODTrackCutsDiHadronPID.cxx:1533
 AliAODTrackCutsDiHadronPID.cxx:1534
 AliAODTrackCutsDiHadronPID.cxx:1535
 AliAODTrackCutsDiHadronPID.cxx:1536
 AliAODTrackCutsDiHadronPID.cxx:1537
 AliAODTrackCutsDiHadronPID.cxx:1538
 AliAODTrackCutsDiHadronPID.cxx:1539
 AliAODTrackCutsDiHadronPID.cxx:1540
 AliAODTrackCutsDiHadronPID.cxx:1541
 AliAODTrackCutsDiHadronPID.cxx:1542
 AliAODTrackCutsDiHadronPID.cxx:1543
 AliAODTrackCutsDiHadronPID.cxx:1544
 AliAODTrackCutsDiHadronPID.cxx:1545
 AliAODTrackCutsDiHadronPID.cxx:1546
 AliAODTrackCutsDiHadronPID.cxx:1547
 AliAODTrackCutsDiHadronPID.cxx:1548
 AliAODTrackCutsDiHadronPID.cxx:1549
 AliAODTrackCutsDiHadronPID.cxx:1550
 AliAODTrackCutsDiHadronPID.cxx:1551
 AliAODTrackCutsDiHadronPID.cxx:1552
 AliAODTrackCutsDiHadronPID.cxx:1553
 AliAODTrackCutsDiHadronPID.cxx:1554
 AliAODTrackCutsDiHadronPID.cxx:1555
 AliAODTrackCutsDiHadronPID.cxx:1556
 AliAODTrackCutsDiHadronPID.cxx:1557
 AliAODTrackCutsDiHadronPID.cxx:1558
 AliAODTrackCutsDiHadronPID.cxx:1559
 AliAODTrackCutsDiHadronPID.cxx:1560
 AliAODTrackCutsDiHadronPID.cxx:1561
 AliAODTrackCutsDiHadronPID.cxx:1562
 AliAODTrackCutsDiHadronPID.cxx:1563
 AliAODTrackCutsDiHadronPID.cxx:1564
 AliAODTrackCutsDiHadronPID.cxx:1565
 AliAODTrackCutsDiHadronPID.cxx:1566
 AliAODTrackCutsDiHadronPID.cxx:1567
 AliAODTrackCutsDiHadronPID.cxx:1568
 AliAODTrackCutsDiHadronPID.cxx:1569
 AliAODTrackCutsDiHadronPID.cxx:1570
 AliAODTrackCutsDiHadronPID.cxx:1571
 AliAODTrackCutsDiHadronPID.cxx:1572
 AliAODTrackCutsDiHadronPID.cxx:1573
 AliAODTrackCutsDiHadronPID.cxx:1574
 AliAODTrackCutsDiHadronPID.cxx:1575
 AliAODTrackCutsDiHadronPID.cxx:1576
 AliAODTrackCutsDiHadronPID.cxx:1577
 AliAODTrackCutsDiHadronPID.cxx:1578
 AliAODTrackCutsDiHadronPID.cxx:1579
 AliAODTrackCutsDiHadronPID.cxx:1580
 AliAODTrackCutsDiHadronPID.cxx:1581
 AliAODTrackCutsDiHadronPID.cxx:1582
 AliAODTrackCutsDiHadronPID.cxx:1583
 AliAODTrackCutsDiHadronPID.cxx:1584
 AliAODTrackCutsDiHadronPID.cxx:1585
 AliAODTrackCutsDiHadronPID.cxx:1586
 AliAODTrackCutsDiHadronPID.cxx:1587
 AliAODTrackCutsDiHadronPID.cxx:1588
 AliAODTrackCutsDiHadronPID.cxx:1589
 AliAODTrackCutsDiHadronPID.cxx:1590
 AliAODTrackCutsDiHadronPID.cxx:1591
 AliAODTrackCutsDiHadronPID.cxx:1592
 AliAODTrackCutsDiHadronPID.cxx:1593
 AliAODTrackCutsDiHadronPID.cxx:1594
 AliAODTrackCutsDiHadronPID.cxx:1595
 AliAODTrackCutsDiHadronPID.cxx:1596
 AliAODTrackCutsDiHadronPID.cxx:1597
 AliAODTrackCutsDiHadronPID.cxx:1598
 AliAODTrackCutsDiHadronPID.cxx:1599
 AliAODTrackCutsDiHadronPID.cxx:1600
 AliAODTrackCutsDiHadronPID.cxx:1601
 AliAODTrackCutsDiHadronPID.cxx:1602
 AliAODTrackCutsDiHadronPID.cxx:1603
 AliAODTrackCutsDiHadronPID.cxx:1604
 AliAODTrackCutsDiHadronPID.cxx:1605
 AliAODTrackCutsDiHadronPID.cxx:1606
 AliAODTrackCutsDiHadronPID.cxx:1607
 AliAODTrackCutsDiHadronPID.cxx:1608
 AliAODTrackCutsDiHadronPID.cxx:1609
 AliAODTrackCutsDiHadronPID.cxx:1610
 AliAODTrackCutsDiHadronPID.cxx:1611
 AliAODTrackCutsDiHadronPID.cxx:1612
 AliAODTrackCutsDiHadronPID.cxx:1613
 AliAODTrackCutsDiHadronPID.cxx:1614
 AliAODTrackCutsDiHadronPID.cxx:1615
 AliAODTrackCutsDiHadronPID.cxx:1616
 AliAODTrackCutsDiHadronPID.cxx:1617
 AliAODTrackCutsDiHadronPID.cxx:1618
 AliAODTrackCutsDiHadronPID.cxx:1619
 AliAODTrackCutsDiHadronPID.cxx:1620
 AliAODTrackCutsDiHadronPID.cxx:1621
 AliAODTrackCutsDiHadronPID.cxx:1622
 AliAODTrackCutsDiHadronPID.cxx:1623
 AliAODTrackCutsDiHadronPID.cxx:1624
 AliAODTrackCutsDiHadronPID.cxx:1625
 AliAODTrackCutsDiHadronPID.cxx:1626
 AliAODTrackCutsDiHadronPID.cxx:1627
 AliAODTrackCutsDiHadronPID.cxx:1628
 AliAODTrackCutsDiHadronPID.cxx:1629
 AliAODTrackCutsDiHadronPID.cxx:1630
 AliAODTrackCutsDiHadronPID.cxx:1631
 AliAODTrackCutsDiHadronPID.cxx:1632
 AliAODTrackCutsDiHadronPID.cxx:1633
 AliAODTrackCutsDiHadronPID.cxx:1634
 AliAODTrackCutsDiHadronPID.cxx:1635
 AliAODTrackCutsDiHadronPID.cxx:1636
 AliAODTrackCutsDiHadronPID.cxx:1637
 AliAODTrackCutsDiHadronPID.cxx:1638
 AliAODTrackCutsDiHadronPID.cxx:1639
 AliAODTrackCutsDiHadronPID.cxx:1640
 AliAODTrackCutsDiHadronPID.cxx:1641
 AliAODTrackCutsDiHadronPID.cxx:1642
 AliAODTrackCutsDiHadronPID.cxx:1643
 AliAODTrackCutsDiHadronPID.cxx:1644
 AliAODTrackCutsDiHadronPID.cxx:1645
 AliAODTrackCutsDiHadronPID.cxx:1646
 AliAODTrackCutsDiHadronPID.cxx:1647
 AliAODTrackCutsDiHadronPID.cxx:1648
 AliAODTrackCutsDiHadronPID.cxx:1649
 AliAODTrackCutsDiHadronPID.cxx:1650
 AliAODTrackCutsDiHadronPID.cxx:1651
 AliAODTrackCutsDiHadronPID.cxx:1652
 AliAODTrackCutsDiHadronPID.cxx:1653
 AliAODTrackCutsDiHadronPID.cxx:1654
 AliAODTrackCutsDiHadronPID.cxx:1655
 AliAODTrackCutsDiHadronPID.cxx:1656
 AliAODTrackCutsDiHadronPID.cxx:1657
 AliAODTrackCutsDiHadronPID.cxx:1658
 AliAODTrackCutsDiHadronPID.cxx:1659
 AliAODTrackCutsDiHadronPID.cxx:1660
 AliAODTrackCutsDiHadronPID.cxx:1661
 AliAODTrackCutsDiHadronPID.cxx:1662
 AliAODTrackCutsDiHadronPID.cxx:1663
 AliAODTrackCutsDiHadronPID.cxx:1664
 AliAODTrackCutsDiHadronPID.cxx:1665
 AliAODTrackCutsDiHadronPID.cxx:1666
 AliAODTrackCutsDiHadronPID.cxx:1667
 AliAODTrackCutsDiHadronPID.cxx:1668
 AliAODTrackCutsDiHadronPID.cxx:1669
 AliAODTrackCutsDiHadronPID.cxx:1670
 AliAODTrackCutsDiHadronPID.cxx:1671
 AliAODTrackCutsDiHadronPID.cxx:1672
 AliAODTrackCutsDiHadronPID.cxx:1673
 AliAODTrackCutsDiHadronPID.cxx:1674
 AliAODTrackCutsDiHadronPID.cxx:1675
 AliAODTrackCutsDiHadronPID.cxx:1676
 AliAODTrackCutsDiHadronPID.cxx:1677
 AliAODTrackCutsDiHadronPID.cxx:1678
 AliAODTrackCutsDiHadronPID.cxx:1679
 AliAODTrackCutsDiHadronPID.cxx:1680
 AliAODTrackCutsDiHadronPID.cxx:1681
 AliAODTrackCutsDiHadronPID.cxx:1682
 AliAODTrackCutsDiHadronPID.cxx:1683
 AliAODTrackCutsDiHadronPID.cxx:1684
 AliAODTrackCutsDiHadronPID.cxx:1685
 AliAODTrackCutsDiHadronPID.cxx:1686
 AliAODTrackCutsDiHadronPID.cxx:1687
 AliAODTrackCutsDiHadronPID.cxx:1688
 AliAODTrackCutsDiHadronPID.cxx:1689
 AliAODTrackCutsDiHadronPID.cxx:1690
 AliAODTrackCutsDiHadronPID.cxx:1691
 AliAODTrackCutsDiHadronPID.cxx:1692
 AliAODTrackCutsDiHadronPID.cxx:1693
 AliAODTrackCutsDiHadronPID.cxx:1694
 AliAODTrackCutsDiHadronPID.cxx:1695
 AliAODTrackCutsDiHadronPID.cxx:1696
 AliAODTrackCutsDiHadronPID.cxx:1697
 AliAODTrackCutsDiHadronPID.cxx:1698
 AliAODTrackCutsDiHadronPID.cxx:1699
 AliAODTrackCutsDiHadronPID.cxx:1700
 AliAODTrackCutsDiHadronPID.cxx:1701
 AliAODTrackCutsDiHadronPID.cxx:1702
 AliAODTrackCutsDiHadronPID.cxx:1703
 AliAODTrackCutsDiHadronPID.cxx:1704
 AliAODTrackCutsDiHadronPID.cxx:1705
 AliAODTrackCutsDiHadronPID.cxx:1706
 AliAODTrackCutsDiHadronPID.cxx:1707
 AliAODTrackCutsDiHadronPID.cxx:1708
 AliAODTrackCutsDiHadronPID.cxx:1709
 AliAODTrackCutsDiHadronPID.cxx:1710
 AliAODTrackCutsDiHadronPID.cxx:1711
 AliAODTrackCutsDiHadronPID.cxx:1712
 AliAODTrackCutsDiHadronPID.cxx:1713
 AliAODTrackCutsDiHadronPID.cxx:1714
 AliAODTrackCutsDiHadronPID.cxx:1715
 AliAODTrackCutsDiHadronPID.cxx:1716
 AliAODTrackCutsDiHadronPID.cxx:1717
 AliAODTrackCutsDiHadronPID.cxx:1718
 AliAODTrackCutsDiHadronPID.cxx:1719
 AliAODTrackCutsDiHadronPID.cxx:1720
 AliAODTrackCutsDiHadronPID.cxx:1721
 AliAODTrackCutsDiHadronPID.cxx:1722
 AliAODTrackCutsDiHadronPID.cxx:1723
 AliAODTrackCutsDiHadronPID.cxx:1724
 AliAODTrackCutsDiHadronPID.cxx:1725
 AliAODTrackCutsDiHadronPID.cxx:1726
 AliAODTrackCutsDiHadronPID.cxx:1727
 AliAODTrackCutsDiHadronPID.cxx:1728
 AliAODTrackCutsDiHadronPID.cxx:1729
 AliAODTrackCutsDiHadronPID.cxx:1730
 AliAODTrackCutsDiHadronPID.cxx:1731
 AliAODTrackCutsDiHadronPID.cxx:1732
 AliAODTrackCutsDiHadronPID.cxx:1733
 AliAODTrackCutsDiHadronPID.cxx:1734
 AliAODTrackCutsDiHadronPID.cxx:1735
 AliAODTrackCutsDiHadronPID.cxx:1736
 AliAODTrackCutsDiHadronPID.cxx:1737
 AliAODTrackCutsDiHadronPID.cxx:1738
 AliAODTrackCutsDiHadronPID.cxx:1739
 AliAODTrackCutsDiHadronPID.cxx:1740
 AliAODTrackCutsDiHadronPID.cxx:1741
 AliAODTrackCutsDiHadronPID.cxx:1742
 AliAODTrackCutsDiHadronPID.cxx:1743
 AliAODTrackCutsDiHadronPID.cxx:1744
 AliAODTrackCutsDiHadronPID.cxx:1745
 AliAODTrackCutsDiHadronPID.cxx:1746
 AliAODTrackCutsDiHadronPID.cxx:1747
 AliAODTrackCutsDiHadronPID.cxx:1748
 AliAODTrackCutsDiHadronPID.cxx:1749
 AliAODTrackCutsDiHadronPID.cxx:1750
 AliAODTrackCutsDiHadronPID.cxx:1751
 AliAODTrackCutsDiHadronPID.cxx:1752
 AliAODTrackCutsDiHadronPID.cxx:1753
 AliAODTrackCutsDiHadronPID.cxx:1754
 AliAODTrackCutsDiHadronPID.cxx:1755
 AliAODTrackCutsDiHadronPID.cxx:1756
 AliAODTrackCutsDiHadronPID.cxx:1757
 AliAODTrackCutsDiHadronPID.cxx:1758
 AliAODTrackCutsDiHadronPID.cxx:1759
 AliAODTrackCutsDiHadronPID.cxx:1760
 AliAODTrackCutsDiHadronPID.cxx:1761
 AliAODTrackCutsDiHadronPID.cxx:1762
 AliAODTrackCutsDiHadronPID.cxx:1763
 AliAODTrackCutsDiHadronPID.cxx:1764
 AliAODTrackCutsDiHadronPID.cxx:1765
 AliAODTrackCutsDiHadronPID.cxx:1766
 AliAODTrackCutsDiHadronPID.cxx:1767
 AliAODTrackCutsDiHadronPID.cxx:1768
 AliAODTrackCutsDiHadronPID.cxx:1769
 AliAODTrackCutsDiHadronPID.cxx:1770
 AliAODTrackCutsDiHadronPID.cxx:1771
 AliAODTrackCutsDiHadronPID.cxx:1772
 AliAODTrackCutsDiHadronPID.cxx:1773
 AliAODTrackCutsDiHadronPID.cxx:1774
 AliAODTrackCutsDiHadronPID.cxx:1775
 AliAODTrackCutsDiHadronPID.cxx:1776
 AliAODTrackCutsDiHadronPID.cxx:1777
 AliAODTrackCutsDiHadronPID.cxx:1778
 AliAODTrackCutsDiHadronPID.cxx:1779
 AliAODTrackCutsDiHadronPID.cxx:1780
 AliAODTrackCutsDiHadronPID.cxx:1781
 AliAODTrackCutsDiHadronPID.cxx:1782
 AliAODTrackCutsDiHadronPID.cxx:1783
 AliAODTrackCutsDiHadronPID.cxx:1784
 AliAODTrackCutsDiHadronPID.cxx:1785
 AliAODTrackCutsDiHadronPID.cxx:1786
 AliAODTrackCutsDiHadronPID.cxx:1787
 AliAODTrackCutsDiHadronPID.cxx:1788
 AliAODTrackCutsDiHadronPID.cxx:1789
 AliAODTrackCutsDiHadronPID.cxx:1790
 AliAODTrackCutsDiHadronPID.cxx:1791
 AliAODTrackCutsDiHadronPID.cxx:1792
 AliAODTrackCutsDiHadronPID.cxx:1793
 AliAODTrackCutsDiHadronPID.cxx:1794
 AliAODTrackCutsDiHadronPID.cxx:1795
 AliAODTrackCutsDiHadronPID.cxx:1796
 AliAODTrackCutsDiHadronPID.cxx:1797
 AliAODTrackCutsDiHadronPID.cxx:1798
 AliAODTrackCutsDiHadronPID.cxx:1799
 AliAODTrackCutsDiHadronPID.cxx:1800
 AliAODTrackCutsDiHadronPID.cxx:1801
 AliAODTrackCutsDiHadronPID.cxx:1802
 AliAODTrackCutsDiHadronPID.cxx:1803
 AliAODTrackCutsDiHadronPID.cxx:1804
 AliAODTrackCutsDiHadronPID.cxx:1805
 AliAODTrackCutsDiHadronPID.cxx:1806
 AliAODTrackCutsDiHadronPID.cxx:1807
 AliAODTrackCutsDiHadronPID.cxx:1808
 AliAODTrackCutsDiHadronPID.cxx:1809
 AliAODTrackCutsDiHadronPID.cxx:1810
 AliAODTrackCutsDiHadronPID.cxx:1811
 AliAODTrackCutsDiHadronPID.cxx:1812
 AliAODTrackCutsDiHadronPID.cxx:1813
 AliAODTrackCutsDiHadronPID.cxx:1814
 AliAODTrackCutsDiHadronPID.cxx:1815
 AliAODTrackCutsDiHadronPID.cxx:1816
 AliAODTrackCutsDiHadronPID.cxx:1817
 AliAODTrackCutsDiHadronPID.cxx:1818
 AliAODTrackCutsDiHadronPID.cxx:1819
 AliAODTrackCutsDiHadronPID.cxx:1820
 AliAODTrackCutsDiHadronPID.cxx:1821
 AliAODTrackCutsDiHadronPID.cxx:1822
 AliAODTrackCutsDiHadronPID.cxx:1823
 AliAODTrackCutsDiHadronPID.cxx:1824
 AliAODTrackCutsDiHadronPID.cxx:1825
 AliAODTrackCutsDiHadronPID.cxx:1826
 AliAODTrackCutsDiHadronPID.cxx:1827
 AliAODTrackCutsDiHadronPID.cxx:1828
 AliAODTrackCutsDiHadronPID.cxx:1829
 AliAODTrackCutsDiHadronPID.cxx:1830
 AliAODTrackCutsDiHadronPID.cxx:1831
 AliAODTrackCutsDiHadronPID.cxx:1832
 AliAODTrackCutsDiHadronPID.cxx:1833
 AliAODTrackCutsDiHadronPID.cxx:1834
 AliAODTrackCutsDiHadronPID.cxx:1835
 AliAODTrackCutsDiHadronPID.cxx:1836
 AliAODTrackCutsDiHadronPID.cxx:1837
 AliAODTrackCutsDiHadronPID.cxx:1838
 AliAODTrackCutsDiHadronPID.cxx:1839
 AliAODTrackCutsDiHadronPID.cxx:1840
 AliAODTrackCutsDiHadronPID.cxx:1841
 AliAODTrackCutsDiHadronPID.cxx:1842
 AliAODTrackCutsDiHadronPID.cxx:1843
 AliAODTrackCutsDiHadronPID.cxx:1844
 AliAODTrackCutsDiHadronPID.cxx:1845
 AliAODTrackCutsDiHadronPID.cxx:1846
 AliAODTrackCutsDiHadronPID.cxx:1847
 AliAODTrackCutsDiHadronPID.cxx:1848
 AliAODTrackCutsDiHadronPID.cxx:1849
 AliAODTrackCutsDiHadronPID.cxx:1850
 AliAODTrackCutsDiHadronPID.cxx:1851
 AliAODTrackCutsDiHadronPID.cxx:1852
 AliAODTrackCutsDiHadronPID.cxx:1853
 AliAODTrackCutsDiHadronPID.cxx:1854
 AliAODTrackCutsDiHadronPID.cxx:1855
 AliAODTrackCutsDiHadronPID.cxx:1856
 AliAODTrackCutsDiHadronPID.cxx:1857
 AliAODTrackCutsDiHadronPID.cxx:1858
 AliAODTrackCutsDiHadronPID.cxx:1859
 AliAODTrackCutsDiHadronPID.cxx:1860
 AliAODTrackCutsDiHadronPID.cxx:1861
 AliAODTrackCutsDiHadronPID.cxx:1862
 AliAODTrackCutsDiHadronPID.cxx:1863
 AliAODTrackCutsDiHadronPID.cxx:1864
 AliAODTrackCutsDiHadronPID.cxx:1865
 AliAODTrackCutsDiHadronPID.cxx:1866
 AliAODTrackCutsDiHadronPID.cxx:1867
 AliAODTrackCutsDiHadronPID.cxx:1868
 AliAODTrackCutsDiHadronPID.cxx:1869
 AliAODTrackCutsDiHadronPID.cxx:1870
 AliAODTrackCutsDiHadronPID.cxx:1871
 AliAODTrackCutsDiHadronPID.cxx:1872
 AliAODTrackCutsDiHadronPID.cxx:1873
 AliAODTrackCutsDiHadronPID.cxx:1874
 AliAODTrackCutsDiHadronPID.cxx:1875
 AliAODTrackCutsDiHadronPID.cxx:1876
 AliAODTrackCutsDiHadronPID.cxx:1877
 AliAODTrackCutsDiHadronPID.cxx:1878
 AliAODTrackCutsDiHadronPID.cxx:1879
 AliAODTrackCutsDiHadronPID.cxx:1880
 AliAODTrackCutsDiHadronPID.cxx:1881
 AliAODTrackCutsDiHadronPID.cxx:1882
 AliAODTrackCutsDiHadronPID.cxx:1883
 AliAODTrackCutsDiHadronPID.cxx:1884
 AliAODTrackCutsDiHadronPID.cxx:1885
 AliAODTrackCutsDiHadronPID.cxx:1886
 AliAODTrackCutsDiHadronPID.cxx:1887
 AliAODTrackCutsDiHadronPID.cxx:1888
 AliAODTrackCutsDiHadronPID.cxx:1889
 AliAODTrackCutsDiHadronPID.cxx:1890
 AliAODTrackCutsDiHadronPID.cxx:1891
 AliAODTrackCutsDiHadronPID.cxx:1892
 AliAODTrackCutsDiHadronPID.cxx:1893
 AliAODTrackCutsDiHadronPID.cxx:1894
 AliAODTrackCutsDiHadronPID.cxx:1895
 AliAODTrackCutsDiHadronPID.cxx:1896
 AliAODTrackCutsDiHadronPID.cxx:1897
 AliAODTrackCutsDiHadronPID.cxx:1898
 AliAODTrackCutsDiHadronPID.cxx:1899
 AliAODTrackCutsDiHadronPID.cxx:1900
 AliAODTrackCutsDiHadronPID.cxx:1901
 AliAODTrackCutsDiHadronPID.cxx:1902
 AliAODTrackCutsDiHadronPID.cxx:1903
 AliAODTrackCutsDiHadronPID.cxx:1904
 AliAODTrackCutsDiHadronPID.cxx:1905
 AliAODTrackCutsDiHadronPID.cxx:1906
 AliAODTrackCutsDiHadronPID.cxx:1907
 AliAODTrackCutsDiHadronPID.cxx:1908
 AliAODTrackCutsDiHadronPID.cxx:1909
 AliAODTrackCutsDiHadronPID.cxx:1910
 AliAODTrackCutsDiHadronPID.cxx:1911
 AliAODTrackCutsDiHadronPID.cxx:1912
 AliAODTrackCutsDiHadronPID.cxx:1913
 AliAODTrackCutsDiHadronPID.cxx:1914
 AliAODTrackCutsDiHadronPID.cxx:1915
 AliAODTrackCutsDiHadronPID.cxx:1916
 AliAODTrackCutsDiHadronPID.cxx:1917
 AliAODTrackCutsDiHadronPID.cxx:1918
 AliAODTrackCutsDiHadronPID.cxx:1919
 AliAODTrackCutsDiHadronPID.cxx:1920
 AliAODTrackCutsDiHadronPID.cxx:1921
 AliAODTrackCutsDiHadronPID.cxx:1922
 AliAODTrackCutsDiHadronPID.cxx:1923
 AliAODTrackCutsDiHadronPID.cxx:1924
 AliAODTrackCutsDiHadronPID.cxx:1925
 AliAODTrackCutsDiHadronPID.cxx:1926
 AliAODTrackCutsDiHadronPID.cxx:1927
 AliAODTrackCutsDiHadronPID.cxx:1928
 AliAODTrackCutsDiHadronPID.cxx:1929
 AliAODTrackCutsDiHadronPID.cxx:1930
 AliAODTrackCutsDiHadronPID.cxx:1931
 AliAODTrackCutsDiHadronPID.cxx:1932
 AliAODTrackCutsDiHadronPID.cxx:1933
 AliAODTrackCutsDiHadronPID.cxx:1934
 AliAODTrackCutsDiHadronPID.cxx:1935
 AliAODTrackCutsDiHadronPID.cxx:1936
 AliAODTrackCutsDiHadronPID.cxx:1937
 AliAODTrackCutsDiHadronPID.cxx:1938
 AliAODTrackCutsDiHadronPID.cxx:1939
 AliAODTrackCutsDiHadronPID.cxx:1940
 AliAODTrackCutsDiHadronPID.cxx:1941
 AliAODTrackCutsDiHadronPID.cxx:1942
 AliAODTrackCutsDiHadronPID.cxx:1943
 AliAODTrackCutsDiHadronPID.cxx:1944
 AliAODTrackCutsDiHadronPID.cxx:1945
 AliAODTrackCutsDiHadronPID.cxx:1946
 AliAODTrackCutsDiHadronPID.cxx:1947
 AliAODTrackCutsDiHadronPID.cxx:1948
 AliAODTrackCutsDiHadronPID.cxx:1949
 AliAODTrackCutsDiHadronPID.cxx:1950
 AliAODTrackCutsDiHadronPID.cxx:1951
 AliAODTrackCutsDiHadronPID.cxx:1952
 AliAODTrackCutsDiHadronPID.cxx:1953
 AliAODTrackCutsDiHadronPID.cxx:1954
 AliAODTrackCutsDiHadronPID.cxx:1955
 AliAODTrackCutsDiHadronPID.cxx:1956
 AliAODTrackCutsDiHadronPID.cxx:1957
 AliAODTrackCutsDiHadronPID.cxx:1958
 AliAODTrackCutsDiHadronPID.cxx:1959
 AliAODTrackCutsDiHadronPID.cxx:1960
 AliAODTrackCutsDiHadronPID.cxx:1961
 AliAODTrackCutsDiHadronPID.cxx:1962
 AliAODTrackCutsDiHadronPID.cxx:1963
 AliAODTrackCutsDiHadronPID.cxx:1964
 AliAODTrackCutsDiHadronPID.cxx:1965
 AliAODTrackCutsDiHadronPID.cxx:1966
 AliAODTrackCutsDiHadronPID.cxx:1967
 AliAODTrackCutsDiHadronPID.cxx:1968
 AliAODTrackCutsDiHadronPID.cxx:1969
 AliAODTrackCutsDiHadronPID.cxx:1970
 AliAODTrackCutsDiHadronPID.cxx:1971
 AliAODTrackCutsDiHadronPID.cxx:1972
 AliAODTrackCutsDiHadronPID.cxx:1973
 AliAODTrackCutsDiHadronPID.cxx:1974
 AliAODTrackCutsDiHadronPID.cxx:1975
 AliAODTrackCutsDiHadronPID.cxx:1976
 AliAODTrackCutsDiHadronPID.cxx:1977
 AliAODTrackCutsDiHadronPID.cxx:1978
 AliAODTrackCutsDiHadronPID.cxx:1979
 AliAODTrackCutsDiHadronPID.cxx:1980
 AliAODTrackCutsDiHadronPID.cxx:1981