ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2010, 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.                  *
 **************************************************************************/

/* $Id$ */

/////////////////////////////////////////////////////////////
//
// Class for cuts on AOD reconstructed D0->Kpi
//
// Author: A.Dainese, andrea.dainese@pd.infn.it
/////////////////////////////////////////////////////////////

#include <TDatabasePDG.h>
#include <Riostream.h>

#include "AliRDHFCutsD0toKpi.h"
#include "AliAODRecoDecayHF2Prong.h"
#include "AliAODTrack.h"
#include "AliESDtrack.h"
#include "AliAODPid.h"
#include "AliTPCPIDResponse.h"
#include "AliAODVertex.h"
#include "AliKFVertex.h"
#include "AliKFParticle.h"

using std::cout;
using std::endl;

ClassImp(AliRDHFCutsD0toKpi)

//--------------------------------------------------------------------------
AliRDHFCutsD0toKpi::AliRDHFCutsD0toKpi(const char* name) :
   AliRDHFCuts(name),
   fUseSpecialCuts(kFALSE),
   fLowPt(kTRUE),
   fDefaultPID(kFALSE),
   fUseKF(kFALSE),
   fPtLowPID(2.),
   fPtMaxSpecialCuts(9999.),
   fmaxPtrackForPID(9999),
   fCombPID(kFALSE),
   fnSpecies(AliPID::kSPECIES),
   fWeightsPositive(0),
   fWeightsNegative(0),
   fProbThreshold(0.5),
   fBayesianStrategy(0),
   fBayesianCondition(0)
{
  //
  // Default Constructor
  //
  Int_t nvars=11;
  SetNVars(nvars);
  TString varNames[11]={"inv. mass [GeV]",   
			"dca [cm]",
			"cosThetaStar", 
			"pTK [GeV/c]",
			"pTPi [GeV/c]",
			"d0K [cm]",
			"d0Pi [cm]",
			"d0d0 [cm^2]",
			"cosThetaPoint",
			"|cosThetaPointXY|", 
			"NormDecayLenghtXY"};
  Bool_t isUpperCut[11]={kTRUE,
			 kTRUE,
			 kTRUE,
			 kFALSE,
			 kFALSE,
			 kTRUE,
			 kTRUE,
			 kTRUE,
			 kFALSE,
			 kFALSE, 
			 kFALSE};
  SetVarNames(nvars,varNames,isUpperCut);
  Bool_t forOpt[11]={kFALSE,
		     kTRUE,
		     kTRUE,
		     kFALSE,
		     kFALSE,
		     kFALSE,
		     kFALSE,
		     kTRUE,
		     kTRUE,
		     kFALSE,
		     kFALSE};
  SetVarsForOpt(4,forOpt);
  Float_t limits[2]={0,999999999.};
  SetPtBins(2,limits);

  fWeightsNegative = new Double_t[AliPID::kSPECIES];
  fWeightsPositive = new Double_t[AliPID::kSPECIES];
  
  for (Int_t i = 0; i<AliPID::kSPECIES; i++) {
    fWeightsPositive[i] = 0.;
    fWeightsNegative[i] = 0.;
  }
 
}
//--------------------------------------------------------------------------
AliRDHFCutsD0toKpi::AliRDHFCutsD0toKpi(const AliRDHFCutsD0toKpi &source) :
  AliRDHFCuts(source),   
  fUseSpecialCuts(source.fUseSpecialCuts),
  fLowPt(source.fLowPt),
  fDefaultPID(source.fDefaultPID),
  fUseKF(source.fUseKF),
  fPtLowPID(source.fPtLowPID),
  fPtMaxSpecialCuts(source.fPtMaxSpecialCuts),
  fmaxPtrackForPID(source.fmaxPtrackForPID),
  fCombPID(source.fCombPID),
  fnSpecies(source.fnSpecies),
  fWeightsPositive(source.fWeightsPositive),
  fWeightsNegative(source.fWeightsNegative),
  fProbThreshold(source.fProbThreshold),
  fBayesianStrategy(source.fBayesianStrategy),
  fBayesianCondition(source.fBayesianCondition)
{
  //
  // Copy constructor
  //

}
//--------------------------------------------------------------------------
AliRDHFCutsD0toKpi &AliRDHFCutsD0toKpi::operator=(const AliRDHFCutsD0toKpi &source)
{
  //
  // assignment operator
  //
  if(&source == this) return *this;

  AliRDHFCuts::operator=(source); 
  fUseSpecialCuts=source.fUseSpecialCuts;
  fLowPt=source.fLowPt;
  fDefaultPID=source.fDefaultPID;
  fUseKF=source.fUseKF;
  fPtLowPID=source.fPtLowPID;
  fPtMaxSpecialCuts=source.fPtMaxSpecialCuts;
  fmaxPtrackForPID=source.fmaxPtrackForPID;
  fCombPID = source.fCombPID;
  fnSpecies = source.fnSpecies;
  fWeightsPositive = source.fWeightsPositive;
  fWeightsNegative = source.fWeightsNegative;
  fProbThreshold = source.fProbThreshold;
  fBayesianStrategy = source.fBayesianStrategy;
  fBayesianCondition = source.fBayesianCondition;
  return *this;
}



//---------------------------------------------------------------------------
AliRDHFCutsD0toKpi::~AliRDHFCutsD0toKpi()
{
//
// Destructor
//
  if (fWeightsNegative) {
    delete[] fWeightsNegative;
    fWeightsNegative = 0;
  }
  if (fWeightsPositive) {
    delete[] fWeightsNegative;
    fWeightsNegative = 0;
  }
}

//---------------------------------------------------------------------------
void AliRDHFCutsD0toKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod) {
  // 
  // Fills in vars the values of the variables 
  //

  if(nvars!=fnVarsForOpt) {
    printf("AliRDHFCutsD0toKpi::GetCutsVarsForOpt: wrong number of variables\n");
    return;
  }

  AliAODRecoDecayHF2Prong *dd = (AliAODRecoDecayHF2Prong*)d;
 
  //recalculate vertex w/o daughters
  Bool_t cleanvtx=kFALSE;
  AliAODVertex *origownvtx=0x0;
  if(fRemoveDaughtersFromPrimary) {
    if(dd->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*dd->GetOwnPrimaryVtx());
    cleanvtx=kTRUE;
    if(!RecalcOwnPrimaryVtx(dd,aod)) {
      CleanOwnPrimaryVtx(dd,aod,origownvtx);
      cleanvtx=kFALSE;
    }
  }

  Int_t iter=-1;
  if(fVarsForOpt[0]){
    iter++;
    if(TMath::Abs(pdgdaughters[0])==211) {
      vars[iter]=dd->InvMassD0();
    } else {
      vars[iter]=dd->InvMassD0bar();
    }
  }
  if(fVarsForOpt[1]){
    iter++;
    vars[iter]=dd->GetDCA();
  }
  if(fVarsForOpt[2]){
    iter++;
    if(TMath::Abs(pdgdaughters[0])==211) {
      vars[iter] = dd->CosThetaStarD0();
    } else {
      vars[iter] = dd->CosThetaStarD0bar();
    }
  }
  if(fVarsForOpt[3]){
    iter++;
   if(TMath::Abs(pdgdaughters[0])==321) {
     vars[iter]=dd->PtProng(0);
   }
   else{
     vars[iter]=dd->PtProng(1);
   }
  }
  if(fVarsForOpt[4]){
    iter++;
   if(TMath::Abs(pdgdaughters[0])==211) {
     vars[iter]=dd->PtProng(0);
   }
   else{
     vars[iter]=dd->PtProng(1);
   }
  }
  if(fVarsForOpt[5]){
    iter++;
    if(TMath::Abs(pdgdaughters[0])==321) {
     vars[iter]=dd->Getd0Prong(0);
   }
   else{
     vars[iter]=dd->Getd0Prong(1);
   }
  }
  if(fVarsForOpt[6]){
    iter++;
     if(TMath::Abs(pdgdaughters[0])==211) {
     vars[iter]=dd->Getd0Prong(0);
   }
   else{
     vars[iter]=dd->Getd0Prong(1);
   }
  }
  if(fVarsForOpt[7]){
    iter++;
    vars[iter]= dd->Prodd0d0();
  }
  if(fVarsForOpt[8]){
    iter++;
    vars[iter]=dd->CosPointingAngle();
  }
  
  if(fVarsForOpt[9]){
		iter++;
		vars[iter]=TMath::Abs(dd->CosPointingAngleXY());
	}
  
   if(fVarsForOpt[10]){
		iter++;
	   vars[iter]=dd->NormalizedDecayLengthXY();
	}

   if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);

  return;
}
//---------------------------------------------------------------------------
Int_t AliRDHFCutsD0toKpi::IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent* aod) {
  //
  // Apply selection
  //
 

  fIsSelectedCuts=0;
  fIsSelectedPID=0;

  if(!fCutsRD){
    cout<<"Cut matrice not inizialized. Exit..."<<endl;
    return 0;
  }
  //PrintAll();
  AliAODRecoDecayHF2Prong* d=(AliAODRecoDecayHF2Prong*)obj;
  if(!d){
    cout<<"AliAODRecoDecayHF2Prong null"<<endl;
    return 0;
  }

  if(fKeepSignalMC) if(IsSignalMC(d,aod,421)) return 3;

  Double_t ptD=d->Pt();
  if(ptD<fMinPtCand) return 0;
  if(ptD>fMaxPtCand) return 0;

  if(fUseTrackSelectionWithFilterBits && d->HasBadDaughters()) return 0;

  // returnvalue: 0 not sel, 1 only D0, 2 only D0bar, 3 both
  Int_t returnvaluePID=3;
  Int_t returnvalueCuts=3;

  // selection on candidate
  if(selectionLevel==AliRDHFCuts::kAll || 
     selectionLevel==AliRDHFCuts::kCandidate) {

    if(!fUseKF) {

      //recalculate vertex w/o daughters
      AliAODVertex *origownvtx=0x0;
      if(fRemoveDaughtersFromPrimary && !fUseMCVertex) {
	if(d->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*d->GetOwnPrimaryVtx());
	if(!RecalcOwnPrimaryVtx(d,aod)) { 
	  CleanOwnPrimaryVtx(d,aod,origownvtx);
	  return 0;
	}
      }

      if(fUseMCVertex) {
	if(d->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*d->GetOwnPrimaryVtx());
	if(!SetMCPrimaryVtx(d,aod)) {
	  CleanOwnPrimaryVtx(d,aod,origownvtx);
	  return 0;
	}
      }
      
      Double_t pt=d->Pt();
      
      Int_t okD0=0,okD0bar=0;
      
      Int_t ptbin=PtBin(pt);
      if (ptbin==-1) {
	CleanOwnPrimaryVtx(d,aod,origownvtx);
	return 0;
      }

      Double_t mD0,mD0bar,ctsD0,ctsD0bar;
      okD0=1; okD0bar=1;
      
      Double_t mD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass();

      d->InvMassD0(mD0,mD0bar);
      if(TMath::Abs(mD0-mD0PDG) > fCutsRD[GetGlobalIndex(0,ptbin)]) okD0 = 0;
      if(TMath::Abs(mD0bar-mD0PDG) > fCutsRD[GetGlobalIndex(0,ptbin)])  okD0bar = 0;
      if(!okD0 && !okD0bar)  {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}

      if(d->Prodd0d0() > fCutsRD[GetGlobalIndex(7,ptbin)])  {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
    
      
      if(d->Pt2Prong(1) < fCutsRD[GetGlobalIndex(3,ptbin)]*fCutsRD[GetGlobalIndex(3,ptbin)] || d->Pt2Prong(0) < fCutsRD[GetGlobalIndex(4,ptbin)]*fCutsRD[GetGlobalIndex(4,ptbin)]) okD0 = 0;
      if(d->Pt2Prong(0) < fCutsRD[GetGlobalIndex(3,ptbin)]*fCutsRD[GetGlobalIndex(3,ptbin)] || d->Pt2Prong(1) < fCutsRD[GetGlobalIndex(4,ptbin)]*fCutsRD[GetGlobalIndex(4,ptbin)]) okD0bar = 0;
      if(!okD0 && !okD0bar) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
      
      
      if(TMath::Abs(d->Getd0Prong(1)) > fCutsRD[GetGlobalIndex(5,ptbin)] || 
	 TMath::Abs(d->Getd0Prong(0)) > fCutsRD[GetGlobalIndex(6,ptbin)]) okD0 = 0;
      if(TMath::Abs(d->Getd0Prong(0)) > fCutsRD[GetGlobalIndex(6,ptbin)] ||
	 TMath::Abs(d->Getd0Prong(1)) > fCutsRD[GetGlobalIndex(5,ptbin)]) okD0bar = 0;
      if(!okD0 && !okD0bar)  {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
      
      if(d->GetDCA() > fCutsRD[GetGlobalIndex(1,ptbin)])  {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
      
    
      d->CosThetaStarD0(ctsD0,ctsD0bar);
      if(TMath::Abs(ctsD0) > fCutsRD[GetGlobalIndex(2,ptbin)]) okD0 = 0; 
      if(TMath::Abs(ctsD0bar) > fCutsRD[GetGlobalIndex(2,ptbin)]) okD0bar = 0;
      if(!okD0 && !okD0bar)   {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
    
      if(d->CosPointingAngle() < fCutsRD[GetGlobalIndex(8,ptbin)])  {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}

      
      if(TMath::Abs(d->CosPointingAngleXY()) < fCutsRD[GetGlobalIndex(9,ptbin)])  {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
	
      Double_t normalDecayLengXY=d->NormalizedDecayLengthXY();
      if (normalDecayLengXY < fCutsRD[GetGlobalIndex(10, ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
      
      if (returnvalueCuts!=0) {
	if (okD0) returnvalueCuts=1; //cuts passed as D0
	if (okD0bar) returnvalueCuts=2; //cuts passed as D0bar
	if (okD0 && okD0bar) returnvalueCuts=3; //cuts passed as D0 and D0bar
      }

      // call special cuts
      Int_t special=1;
      if(fUseSpecialCuts && (pt<fPtMaxSpecialCuts)) special=IsSelectedSpecialCuts(d);
      if(!special) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}

      // unset recalculated primary vertex when not needed any more
      CleanOwnPrimaryVtx(d,aod,origownvtx);

    } else {
      // go to selection with Kalman vertexing, if requested
      returnvalueCuts = IsSelectedKF(d,aod);
    }

    fIsSelectedCuts=returnvalueCuts;
    if(!returnvalueCuts) return 0;
  }


  // selection on PID 
  if(selectionLevel==AliRDHFCuts::kAll || 
     selectionLevel==AliRDHFCuts::kCandidate ||
     selectionLevel==AliRDHFCuts::kPID) {
    if (!fCombPID) {
      returnvaluePID = IsSelectedPID(d);
      fIsSelectedPID=returnvaluePID;
      if(!returnvaluePID) return 0;
   } else {
      returnvaluePID = IsSelectedCombPID(d);
      if(!returnvaluePID) return 0;
      }
    }
  


  Int_t returnvalueComb=CombineSelectionLevels(3,returnvalueCuts,returnvaluePID);

  if(!returnvalueComb) return 0;

  // selection on daughter tracks 
  if(selectionLevel==AliRDHFCuts::kAll || 
     selectionLevel==AliRDHFCuts::kTracks) {
    if(!AreDaughtersSelected(d)) return 0;
  }
 
  //  cout<<"Pid = "<<returnvaluePID<<endl;
  return returnvalueComb;
}

//------------------------------------------------------------------------------------------
Int_t AliRDHFCutsD0toKpi::IsSelectedKF(AliAODRecoDecayHF2Prong *d,
				       AliAODEvent* aod) const {
  //
  // Apply selection using KF-vertexing
  //
	
  AliAODTrack *track0 = (AliAODTrack*)d->GetDaughter(0);
  AliAODTrack *track1 = (AliAODTrack*)d->GetDaughter(1); 
   
  if(!track0 || !track1) {
    cout<<"one or two D0 daughters missing!"<<endl;
    return 0;
  }

  // returnvalue: 0 not sel, 1 only D0, 2 only D0bar, 3 both
  Int_t returnvalueCuts=3;
	 
  // candidate selection with AliKF
  AliKFParticle::SetField(aod->GetMagneticField()); // set the magnetic field
  
  Int_t okD0=0,okD0bar=0;
  okD0=1; okD0bar=1;
  
  // convert tracks into AliKFParticles
  
  AliKFParticle negPiKF(*track1,-211); // neg pion kandidate
  AliKFParticle negKKF(*track1,-321); // neg kaon kandidate
  AliKFParticle posPiKF(*track0,211); // pos pion kandidate
  AliKFParticle posKKF(*track0,321); // pos kaon kandidate
  
  // build D0 candidates
  
  AliKFParticle d0c(negKKF,posPiKF); // D0 candidate
  AliKFParticle ad0c(posKKF,negPiKF); // D0bar candidate
  
  // create kf primary vertices
  
  AliAODVertex *vtx1 = aod->GetPrimaryVertex();
  AliKFVertex primVtx(*vtx1); 
  AliKFVertex aprimVtx(*vtx1);
  
  if(primVtx.GetNContributors()<=0) okD0 = 0;
  if(aprimVtx.GetNContributors()<=0) okD0bar = 0;
  if(!okD0 && !okD0bar) returnvalueCuts=0;
	
  // calculate mass
	
  Double_t d0mass = d0c.GetMass();
  Double_t ad0mass = ad0c.GetMass();
	
  // calculate P of D0 and D0bar
  Double_t d0P = d0c.GetP();
  Double_t d0Px = d0c.GetPx();
  Double_t d0Py = d0c.GetPy();
  Double_t d0Pz = d0c.GetPz();
  Double_t ad0P = ad0c.GetP(); 
  Double_t ad0Px = ad0c.GetPx();
  Double_t ad0Py = ad0c.GetPy();
  Double_t ad0Pz = ad0c.GetPz();
  
  //calculate Pt of D0 and D0bar
	
  Double_t pt=d0c.GetPt(); 
  Double_t apt=ad0c.GetPt();
	
  // remove D0 daughters from primary vertices (if used in vertex fit) and add D0-candidates
  
  if(track0->GetUsedForPrimVtxFit()) {
    primVtx -= posPiKF; 
    aprimVtx -= posKKF;
  }
  
  if(track1->GetUsedForPrimVtxFit()) { 
    primVtx -= negKKF; 
    aprimVtx -= negPiKF;
  }
  
  primVtx += d0c;
  aprimVtx += ad0c;
  
  if(primVtx.GetNContributors()<=0) okD0 = 0;
  if(aprimVtx.GetNContributors()<=0) okD0bar = 0;
  if(!okD0 && !okD0bar) returnvalueCuts=0;
  
  //calculate cut variables
  
  // calculate impact params of daughters w.r.t recalculated vertices
  
  Double_t impactPi = posPiKF.GetDistanceFromVertexXY(primVtx);
  Double_t aimpactPi = negPiKF.GetDistanceFromVertexXY(aprimVtx);
  Double_t impactKa = negKKF.GetDistanceFromVertexXY(primVtx);
  Double_t aimpactKa = posKKF.GetDistanceFromVertexXY(aprimVtx);
	
  // calculate Product of Impact Params
	
  Double_t prodParam = impactPi*impactKa;
  Double_t aprodParam = aimpactPi*aimpactKa;
	
  // calculate cosine of pointing angles
	
  TVector3 mom(d0c.GetPx(),d0c.GetPy(),d0c.GetPz());
  TVector3 fline(d0c.GetX()-primVtx.GetX(),
		 d0c.GetY()-primVtx.GetY(),
		 d0c.GetZ()-primVtx.GetZ());
  Double_t pta = mom.Angle(fline);
  Double_t cosP = TMath::Cos(pta); // cosine of pta for D0 candidate
  
  TVector3 amom(ad0c.GetPx(),ad0c.GetPy(),ad0c.GetPz());
  TVector3 afline(ad0c.GetX()-aprimVtx.GetX(),
		  ad0c.GetY()-aprimVtx.GetY(),
		  ad0c.GetZ()-aprimVtx.GetZ());
  Double_t apta = amom.Angle(afline);
  Double_t acosP = TMath::Cos(apta); // cosine of pta for D0bar candidate
  
  // calculate P of Pions at Decay Position of D0 and D0bar candidates
  negKKF.TransportToParticle(d0c);
  posPiKF.TransportToParticle(d0c);
  posKKF.TransportToParticle(ad0c);
  negPiKF.TransportToParticle(ad0c);
  
  Double_t pxPi =  posPiKF.GetPx();
  Double_t pyPi =  posPiKF.GetPy();
  Double_t pzPi =  posPiKF.GetPz();
  Double_t ptPi =  posPiKF.GetPt();
  
  Double_t apxPi =  negPiKF.GetPx();
  Double_t apyPi =  negPiKF.GetPy();
  Double_t apzPi =  negPiKF.GetPz();
  Double_t aptPi =  negPiKF.GetPt();
  
  // calculate Pt of Kaons at Decay Position of D0 and D0bar candidates
  
  Double_t ptK =  negKKF.GetPt();
  Double_t aptK =  posKKF.GetPt();
	
  //calculate cos(thetastar)
  Double_t massvtx = TDatabasePDG::Instance()->GetParticle(421)->Mass();
  Double_t massp[2];
  massp[0] = TDatabasePDG::Instance()->GetParticle(321)->Mass();
  massp[1] = TDatabasePDG::Instance()->GetParticle(211)->Mass();
  Double_t pStar = TMath::Sqrt(TMath::Power(massvtx*massvtx-massp[0]*massp[0]-massp[1]*massp[1],2.)
			       -4.*massp[0]*massp[0]*massp[1]*massp[1])/(2.*massvtx);
  
  // cos(thetastar) for D0 and Pion
  
  Double_t d0E = TMath::Sqrt(massvtx*massvtx + d0P*d0P);
  Double_t beta = d0P/d0E;
  Double_t gamma = d0E/massvtx;
  TVector3 momPi(pxPi,pyPi,pzPi);
  TVector3 momTot(d0Px,d0Py,d0Pz);
  Double_t q1 = momPi.Dot(momTot)/momTot.Mag();
  Double_t cts = (q1/gamma-beta*TMath::Sqrt(pStar*pStar+massp[1]*massp[1]))/pStar;	
    	
  // cos(thetastar) for D0bar and Pion	
  
  Double_t ad0E = TMath::Sqrt(massvtx*massvtx + ad0P*ad0P);
  Double_t abeta = ad0P/ad0E;
  Double_t agamma = ad0E/massvtx;
  TVector3 amomPi(apxPi,apyPi,apzPi);
  TVector3 amomTot(ad0Px,ad0Py,ad0Pz);
  Double_t aq1 = amomPi.Dot(amomTot)/amomTot.Mag();
  Double_t acts = (aq1/agamma-abeta*TMath::Sqrt(pStar*pStar+massp[1]*massp[1]))/pStar;	
  
  // calculate reduced Chi2 for the full D0 fit
  d0c.SetProductionVertex(primVtx);
  ad0c.SetProductionVertex(aprimVtx);
  negKKF.SetProductionVertex(d0c);
  posPiKF.SetProductionVertex(d0c);
  posKKF.SetProductionVertex(ad0c);
  negPiKF.SetProductionVertex(ad0c);
  d0c.TransportToProductionVertex();
  ad0c.TransportToProductionVertex();
	
  // calculate the decay length
  Double_t decayLengthD0 = d0c.GetDecayLength();
  Double_t adecayLengthD0 = ad0c.GetDecayLength();
  
  Double_t chi2D0 = 50.;
  if(d0c.GetNDF() > 0 && d0c.GetChi2() >= 0) {
    chi2D0 = d0c.GetChi2()/d0c.GetNDF();
  }
  
  Double_t achi2D0 = 50.;
  if(ad0c.GetNDF() > 0 && ad0c.GetChi2() >= 0) {
    achi2D0 = ad0c.GetChi2()/ad0c.GetNDF();
  }
	
  // Get the Pt-bins
  Int_t ptbin=PtBin(pt);
  Int_t aptbin=PtBin(apt);

  if(ptbin < 0) okD0 = 0;
  if(aptbin < 0) okD0bar = 0;
  if(!okD0 && !okD0bar) returnvalueCuts=0;
  
  if(ptK < fCutsRD[GetGlobalIndex(3,ptbin)] || ptPi < fCutsRD[GetGlobalIndex(4,ptbin)]) okD0 = 0;
  if(aptK < fCutsRD[GetGlobalIndex(3,aptbin)] || aptPi < fCutsRD[GetGlobalIndex(4,aptbin)]) okD0bar = 0;
  if(!okD0 && !okD0bar) returnvalueCuts=0;
  
  
  if(TMath::Abs(impactKa) > fCutsRD[GetGlobalIndex(5,ptbin)] || 
     TMath::Abs(impactPi) > fCutsRD[GetGlobalIndex(6,ptbin)]) okD0 = 0;
  
  if(TMath::Abs(aimpactKa) > fCutsRD[GetGlobalIndex(5,aptbin)] ||
     TMath::Abs(aimpactPi) > fCutsRD[GetGlobalIndex(6,aptbin)]) okD0bar = 0;
  
  if(!okD0 && !okD0bar)  returnvalueCuts=0;
  
  // for the moment via the standard method due to bug in AliKF
  if(d->GetDCA() > fCutsRD[GetGlobalIndex(1,ptbin)]) okD0 = 0;
  if(d->GetDCA() > fCutsRD[GetGlobalIndex(1,aptbin)]) okD0bar = 0;
  if(!okD0 && !okD0bar) returnvalueCuts=0;
    
    
  if(TMath::Abs(d0mass-massvtx) > fCutsRD[GetGlobalIndex(0,ptbin)]) okD0 = 0;
  if(TMath::Abs(ad0mass-massvtx) > fCutsRD[GetGlobalIndex(0,aptbin)])  okD0bar = 0;
  if(!okD0 && !okD0bar)  returnvalueCuts=0;
  
  
  if(TMath::Abs(cts) > fCutsRD[GetGlobalIndex(2,ptbin)]) okD0 = 0; 
  if(TMath::Abs(acts) > fCutsRD[GetGlobalIndex(2,aptbin)]) okD0bar = 0;
  if(!okD0 && !okD0bar)   returnvalueCuts=0;
  
  if(prodParam  > fCutsRD[GetGlobalIndex(7,ptbin)]) okD0 = 0;
  if(aprodParam > fCutsRD[GetGlobalIndex(7,aptbin)]) okD0bar = 0;
  if(!okD0 && !okD0bar)  returnvalueCuts=0;
    
  if(cosP  < fCutsRD[GetGlobalIndex(8,ptbin)]) okD0 = 0; 
  if(acosP < fCutsRD[GetGlobalIndex(8,aptbin)]) okD0bar = 0;
  if(!okD0 && !okD0bar)  returnvalueCuts=0;
	
  if(chi2D0  > fCutsRD[GetGlobalIndex(10,ptbin)]) okD0 = 0; 
  if(achi2D0 > fCutsRD[GetGlobalIndex(10,aptbin)]) okD0bar = 0;
  if(!okD0 && !okD0bar)  returnvalueCuts=0;
	
  if(decayLengthD0  < fCutsRD[GetGlobalIndex(9,ptbin)]) okD0 = 0; 
  if(adecayLengthD0 < fCutsRD[GetGlobalIndex(9,aptbin)]) okD0bar = 0;
  if(!okD0 && !okD0bar)  returnvalueCuts=0;
    
  if(returnvalueCuts!=0) {
    if(okD0) returnvalueCuts=1; //cuts passed as D0
    if(okD0bar) returnvalueCuts=2; //cuts passed as D0bar
    if(okD0 && okD0bar) returnvalueCuts=3; //cuts passed as D0 and D0bar
  }

  return returnvalueCuts;  
}

//---------------------------------------------------------------------------

Bool_t AliRDHFCutsD0toKpi::IsInFiducialAcceptance(Double_t pt, Double_t y) const
{
  //
  // Checking if D0 is in fiducial acceptance region 
  //

  if(fMaxRapidityCand>-998.){
    if(TMath::Abs(y) > fMaxRapidityCand) return kFALSE;
    else return kTRUE;
  }

  if(pt > 5.) {
    // applying cut for pt > 5 GeV
    AliDebug(2,Form("pt of D0 = %f (> 5), cutting at |y| < 0.8\n",pt)); 
    if (TMath::Abs(y) > 0.8){
      return kFALSE;
    }
  } else {
    // appliying smooth cut for pt < 5 GeV
    Double_t maxFiducialY = -0.2/15*pt*pt+1.9/15*pt+0.5; 
    Double_t minFiducialY = 0.2/15*pt*pt-1.9/15*pt-0.5;		
    AliDebug(2,Form("pt of D0 = %f (< 5), cutting  according to the fiducial zone [%f, %f]\n",pt,minFiducialY,maxFiducialY)); 
    if (y < minFiducialY || y > maxFiducialY){
      return kFALSE;
    }
  }

  return kTRUE;
}
//---------------------------------------------------------------------------
Int_t AliRDHFCutsD0toKpi::IsSelectedPID(AliAODRecoDecayHF* d) 
{
  // ############################################################
  //
  // Apply PID selection
  //
  //
  // ############################################################

  if(!fUsePID) return 3;
  if(fDefaultPID) return IsSelectedPIDdefault(d);
  if (fCombPID) return IsSelectedCombPID(d); //to use Bayesian method if applicable
  fWhyRejection=0;
  Int_t isD0D0barPID[2]={1,2};
  Int_t combinedPID[2][2];// CONVENTION: [daught][isK,IsPi]; [0][0]=(prong 1, isK)=value [0][1]=(prong 1, isPi)=value; 
  //                                                                                                 same for prong 2
  //                                               values convention -1 = discarded 
  //                                                                  0 = not identified (but compatible) || No PID (->hasPID flag)
  //                                                                  1 = identified
  // PID search:   pion (TPC) or not K (TOF), Kaon hypothesis for both 
  // Initial hypothesis: unknwon (but compatible) 
  combinedPID[0][0]=0;  // prima figlia, Kaon
  combinedPID[0][1]=0;  // prima figlia, pione
  combinedPID[1][0]=0;  // seconda figlia, Kaon
  combinedPID[1][1]=0;  // seconda figlia, pion
  
  Bool_t checkPIDInfo[2]={kTRUE,kTRUE};
  Double_t sigma_tmp[3]={fPidHF->GetSigma(0),fPidHF->GetSigma(1),fPidHF->GetSigma(2)};
  Bool_t isTOFused=fPidHF->GetTOF(),isCompat=fPidHF->GetCompat();
  for(Int_t daught=0;daught<2;daught++){
    //Loop con prongs
    AliAODTrack *aodtrack=(AliAODTrack*)d->GetDaughter(daught);
    if(fPidHF->IsTOFPiKexcluded(aodtrack,5.)) return 0; 
    
    if(!(fPidHF->CheckStatus(aodtrack,"TPC")) && !(fPidHF->CheckStatus(aodtrack,"TOF"))) {
      checkPIDInfo[daught]=kFALSE; 
      continue;
    }
    Double_t pProng=aodtrack->P();

    // identify kaon
    if(pProng<fmaxPtrackForPID){
      combinedPID[daught][0]=fPidHF->MakeRawPid(aodtrack,3);
    }
    // identify pion
    if(pProng<fmaxPtrackForPID){
      if(!(fPidHF->CheckStatus(aodtrack,"TPC"))) {
	combinedPID[daught][1]=0;
      }else{
	fPidHF->SetTOF(kFALSE);
	combinedPID[daught][1]=fPidHF->MakeRawPid(aodtrack,2);
	if(isTOFused)fPidHF->SetTOF(kTRUE);
	if(isCompat)fPidHF->SetCompat(kTRUE);
      }
    }
  
    if(combinedPID[daught][0]<=-1&&combinedPID[daught][1]<=-1){ // if not a K- and not a pi- both D0 and D0bar excluded
      isD0D0barPID[0]=0;
      isD0D0barPID[1]=0;
    }
    else if(combinedPID[daught][0]==2&&combinedPID[daught][1]>=1){
      if(aodtrack->Charge()==-1)isD0D0barPID[1]=0;//if K- D0bar excluded
      else isD0D0barPID[0]=0;// if K+ D0 excluded
    }
    /*    else if(combinedPID[daught][0]==1&&combinedPID[daught][1]>=1){
	  isD0D0barPID[0]=0;
	  isD0D0barPID[1]=0;
	  }
    */
    else if(combinedPID[daught][0]>=1||combinedPID[daught][1]<=-1){ 
      if(aodtrack->Charge()==-1)isD0D0barPID[1]=0;// not a D0bar if K- or if pi- excluded
      else isD0D0barPID[0]=0;//  not a D0 if K+ or if pi+ excluded
    }
    else if(combinedPID[daught][0]<=-1||combinedPID[daught][1]>=1){
      if(aodtrack->Charge()==-1)isD0D0barPID[0]=0;// not a D0 if pi- or if K- excluded
      else isD0D0barPID[1]=0;// not a D0bar if pi+ or if K+ excluded
    }

    if(fLowPt && d->Pt()<fPtLowPID){
     Double_t sigmaTPC[3]={3.,2.,0.};
     fPidHF->SetSigmaForTPC(sigmaTPC);
    // identify kaon
    combinedPID[daught][0]=fPidHF->MakeRawPid(aodtrack,3);

    if(pProng<0.6){
     fPidHF->SetCompat(kFALSE);
     combinedPID[daught][0]=fPidHF->MakeRawPid(aodtrack,3);
     fPidHF->SetCompat(kTRUE);
    }

    if(!(fPidHF->CheckStatus(aodtrack,"TPC"))) {
     combinedPID[daught][1]=0;
    }else{
      fPidHF->SetTOF(kFALSE);
      Double_t sigmaTPCpi[3]={3.,3.,0.};
      fPidHF->SetSigmaForTPC(sigmaTPCpi);
      combinedPID[daught][1]=fPidHF->MakeRawPid(aodtrack,2);
      fPidHF->SetTOF(kTRUE);
       if(pProng<0.8){
        Bool_t isTPCpion=fPidHF->IsPionRaw(aodtrack,"TPC");
        if(isTPCpion){
         combinedPID[daught][1]=1;
        }else{
         combinedPID[daught][1]=-1;
        }
      }
    }

   }
   fPidHF->SetSigmaForTPC(sigma_tmp);
  }// END OF LOOP ON DAUGHTERS

   if(!checkPIDInfo[0] && !checkPIDInfo[1]) {
    if(fLowPt) fPidHF->SetSigmaForTPC(sigma_tmp);
    return 0;
   }


  // FURTHER PID REQUEST (both daughter info is needed)
  if(combinedPID[0][0]<=-1&&combinedPID[1][0]<=-1){
    fWhyRejection=31;// reject cases in which no kaon-compatible tracks are found
    if(fLowPt) fPidHF->SetSigmaForTPC(sigma_tmp);
    return 0;
  }

  if(fLowPt && d->Pt()<fPtLowPID){    
    if(combinedPID[0][0]<=0&&combinedPID[1][0]<=0){
      fWhyRejection=32;// reject cases where the Kaon is not identified
      fPidHF->SetSigmaForTPC(sigma_tmp);
      return 0;
    }
  }
    if(fLowPt) fPidHF->SetSigmaForTPC(sigma_tmp);

  //  cout<<"Why? "<<fWhyRejection<<endl;  
  return isD0D0barPID[0]+isD0D0barPID[1];
}
//---------------------------------------------------------------------------
Int_t AliRDHFCutsD0toKpi::IsSelectedPIDdefault(AliAODRecoDecayHF* d) 
{
  // ############################################################
  //
  // Apply PID selection
  //
  //
  // temporary selection: PID AS USED FOR D0 by Andrea Rossi (up to 28/06/2010)
  //
  // d must be a AliAODRecoDecayHF2Prong object
  // returns 0 if both D0 and D0bar are rejectecd
  //         1 if D0 is accepted while D0bar is rejected
  //         2 if D0bar is accepted while D0 is rejected
  //         3 if both are accepted
  // fWhyRejection variable (not returned for the moment, print it if needed)
  //               keeps some information on why a candidate has been 
  //               rejected according to the following (unfriendly?) scheme 
  //             if more rejection cases are considered interesting, just add numbers
  //
  //      TO BE CONSIDERED WITH A GRAIN OF SALT (the order in which cut are applied is relevant) 
  //              from 20 to 30: "detector" selection (PID acceptance)                                             
  //                                                  26: TPC refit
  //                                                  27: ITS refit
  //                                                  28: no (TOF||TPC) pid information (no kTOFpid,kTOFout,kTIME,kTPCpid,...)
  //
  //              from 30 to 40: PID selection
  //                                                  31: no Kaon compatible tracks found between daughters
  //                                                  32: no Kaon identified tracks found (strong sel. at low momenta)
  //                                                  33: both mass hypotheses are rejected 
  //                  
  // ############################################################

  if(!fUsePID) return 3;
  fWhyRejection=0;
  Int_t isD0D0barPID[2]={1,2};
  Double_t nsigmaTPCpi=-1., nsigmaTPCK=-1.; //used for TPC pid
  Double_t tofSig,times[5];// used fot TOF pid
  Int_t hasPID[2]={2,2};// flag to count how many detectors give PID info for the daughters
  Int_t isKaonPionTOF[2][2],isKaonPionTPC[2][2];
  Int_t combinedPID[2][2];// CONVENTION: [daught][isK,IsPi]; [0][0]=(prong 1, isK)=value [0][1]=(prong 1, isPi)=value; 
  //                                                                                                 same for prong 2
  //                                               values convention -1 = discarded 
  //                                                                  0 = not identified (but compatible) || No PID (->hasPID flag)
  //                                                                  1 = identified
  // PID search:   pion (TPC) or not K (TOF), Kaon hypothesis for both 
  // Initial hypothesis: unknwon (but compatible) 
  isKaonPionTOF[0][0]=0;
  isKaonPionTOF[0][1]=0;
  isKaonPionTOF[1][0]=0;
  isKaonPionTOF[1][1]=0;
  
  isKaonPionTPC[0][0]=0;
  isKaonPionTPC[0][1]=0;
  isKaonPionTPC[1][0]=0;
  isKaonPionTPC[1][1]=0;
  
  combinedPID[0][0]=0;
  combinedPID[0][1]=0;
  combinedPID[1][0]=0;
  combinedPID[1][1]=0;
  
  
 
  for(Int_t daught=0;daught<2;daught++){
    //Loop con prongs
    
    // ########### Step 0- CHECKING minimal PID "ACCEPTANCE" ####################

    AliAODTrack *aodtrack=(AliAODTrack*)d->GetDaughter(daught); 
   
    if(!(aodtrack->GetStatus()&AliESDtrack::kTPCrefit)){
      fWhyRejection=26;
      return 0;
    } 
    if(!(aodtrack->GetStatus()&AliESDtrack::kITSrefit)){
      fWhyRejection=27;
      return 0;
    } 
    
    AliAODPid *pid=aodtrack->GetDetPid();
    if(!pid) {
      //delete esdtrack;
      hasPID[daught]--;
      continue;
    }
  
    // ########### Step 1- Check of TPC and TOF response ####################

    Double_t ptrack=aodtrack->P();
    //#################### TPC PID #######################
     if (!(aodtrack->GetStatus()&AliESDtrack::kTPCpid )){
       // NO TPC PID INFO FOR THIS TRACK 
       hasPID[daught]--;
     }
     else {
       static AliTPCPIDResponse theTPCpid;
       AliAODPid *pidObj = aodtrack->GetDetPid();
       Double_t ptProng=pidObj->GetTPCmomentum();
       nsigmaTPCpi = theTPCpid.GetNumberOfSigmas(ptProng,(Float_t)pid->GetTPCsignal(),(Int_t)aodtrack->GetTPCClusterMap().CountBits(),AliPID::kPion);
       nsigmaTPCK =  theTPCpid.GetNumberOfSigmas(ptProng,(Float_t)pid->GetTPCsignal(),(Int_t)aodtrack->GetTPCClusterMap().CountBits(),AliPID::kKaon);
       //if(ptrack<0.6){
       if(ptProng<0.6){
	 if(TMath::Abs(nsigmaTPCK)<2.)isKaonPionTPC[daught][0]=1;
	 else if(TMath::Abs(nsigmaTPCK)>3.)isKaonPionTPC[daught][0]=-1;
	 if(TMath::Abs(nsigmaTPCpi)<2.)isKaonPionTPC[daught][1]=1;
	 else if(TMath::Abs(nsigmaTPCpi)>3.)isKaonPionTPC[daught][1]=-1;
       }
       //else if(ptrack<.8){
       else if(ptProng<.8){
	 if(TMath::Abs(nsigmaTPCK)<1.)isKaonPionTPC[daught][0]=1;
	 else if(TMath::Abs(nsigmaTPCK)>3.)isKaonPionTPC[daught][0]=-1;
	 if(TMath::Abs(nsigmaTPCpi)<1.)isKaonPionTPC[daught][1]=1;
	 else if(TMath::Abs(nsigmaTPCpi)>3.)isKaonPionTPC[daught][1]=-1;
       }     
       else {
	 //	if(nsigmaTPCK>-2.&&nsigmaTPCK<1.)isKaonPionTPC[daught][0]=1;
	 if(TMath::Abs(nsigmaTPCK)>3.)isKaonPionTPC[daught][0]=-1;
	 //if(nsigmaTPCpi>-1.&&nsigmaTPCpi<2.)isKaonPionTPC[daught][1]=1;
	 if(TMath::Abs(nsigmaTPCpi)>3.)isKaonPionTPC[daught][1]=-1;
       }
     }
    
    
    // ##### TOF PID: do not ask nothing for pion/protons ############
     if(!((aodtrack->GetStatus()&AliESDtrack::kTOFpid)&&(aodtrack->GetStatus()&AliESDtrack::kTOFout)&&(aodtrack->GetStatus()&AliESDtrack::kTIME))){
       // NO TOF PID INFO FOR THIS TRACK      
       hasPID[daught]--;
     }
     else{
       tofSig=pid->GetTOFsignal(); 
       pid->GetIntegratedTimes(times);
       if((tofSig-times[3])>5.*160.)return 0;// PROTON REJECTION
       if(TMath::Abs(tofSig-times[3])>3.*160.){
	 isKaonPionTOF[daught][0]=-1;
       }
       else {	 
	 if(ptrack<1.5){
	   isKaonPionTOF[daught][0]=1;
	 }
       }
     }
     
     //######### Step 2: COMBINE TOF and TPC PID ###############
     // we apply the following convention: if TPC and TOF disagree (discarded Vs identified) -> unknown
     combinedPID[daught][0]=isKaonPionTOF[daught][0]+isKaonPionTPC[daught][0];
     combinedPID[daught][1]=isKaonPionTOF[daught][1]+isKaonPionTPC[daught][1];
     
     
     //######### Step 3:   USE PID INFO     
     
     if(combinedPID[daught][0]<=-1&&combinedPID[daught][1]<=-1){// if not a K- and not a pi- both D0 and D0bar excluded
       isD0D0barPID[0]=0;
       isD0D0barPID[1]=0;
     }
     else if(combinedPID[daught][0]==2&&combinedPID[daught][1]>=1){// if in conflict (both pi- and K-), if k for both TPC and TOF -> is K
       if(aodtrack->Charge()==-1)isD0D0barPID[1]=0;//if K- D0bar excluded
       else isD0D0barPID[0]=0;// if K+ D0 excluded
     }
     else if(combinedPID[daught][0]==1&&combinedPID[daught][1]>=1){// if in conflict (both pi- and K-) and k- only for TPC or TOF -> reject
       isD0D0barPID[0]=0;
       isD0D0barPID[1]=0;
     }
     else if(combinedPID[daught][0]>=1||combinedPID[daught][1]<=-1){
       if(aodtrack->Charge()==-1)isD0D0barPID[1]=0;// not a D0bar if K- or if pi- excluded
       else isD0D0barPID[0]=0;//  not a D0 if K+ or if pi+ excluded
     }
     else if(combinedPID[daught][0]<=-1||combinedPID[daught][1]>=1){
       if(aodtrack->Charge()==-1)isD0D0barPID[0]=0;// not a D0 if pi- or if K- excluded
      else isD0D0barPID[1]=0;// not a D0bar if pi+ or if K+ excluded
     }
     
     // ##########  ALSO DIFFERENT TPC PID REQUEST FOR LOW pt D0: request of K identification      ###############################
     // ########## more tolerant criteria for single particle ID-> more selective criteria for D0   ##############################
     // ###############                     NOT OPTIMIZED YET                                  ###################################
     if(d->Pt()<2.){
       isKaonPionTPC[daught][0]=0;
       isKaonPionTPC[daught][1]=0;
       AliAODPid *pidObj = aodtrack->GetDetPid();
       Double_t ptProng=pidObj->GetTPCmomentum();
       //if(ptrack<0.6){
       if(ptProng<0.6){
	 if(TMath::Abs(nsigmaTPCK)<3.)isKaonPionTPC[daught][0]=1;
	 else if(TMath::Abs(nsigmaTPCK)>3.)isKaonPionTPC[daught][0]=-1;
	 if(TMath::Abs(nsigmaTPCpi)<3.)isKaonPionTPC[daught][1]=1;
	 else if(TMath::Abs(nsigmaTPCpi)>3.)isKaonPionTPC[daught][1]=-1;
     }
       //else if(ptrack<.8){
       else if(ptProng<.8){
	 if(TMath::Abs(nsigmaTPCK)<2.)isKaonPionTPC[daught][0]=1;
	 else if(TMath::Abs(nsigmaTPCK)>3.)isKaonPionTPC[daught][0]=-1;
	 if(TMath::Abs(nsigmaTPCpi)<3.)isKaonPionTPC[daught][1]=1;
	 else if(TMath::Abs(nsigmaTPCpi)>3.)isKaonPionTPC[daught][1]=-1;
       }     
       else {
	 if(TMath::Abs(nsigmaTPCK)>3.)isKaonPionTPC[daught][0]=-1;
	 if(TMath::Abs(nsigmaTPCpi)>3.)isKaonPionTPC[daught][1]=-1;
       }
     }
     
  }// END OF LOOP ON DAUGHTERS
  
  // FURTHER PID REQUEST (both daughter info is needed)
  if(combinedPID[0][0]<=-1&&combinedPID[1][0]<=-1){
    fWhyRejection=31;// reject cases in which no kaon-compatible tracks are found
    return 0;
  }
  else if(hasPID[0]==0&&hasPID[1]==0){
    fWhyRejection=28;// reject cases in which no PID info is available  
    return 0;
  }
  if(d->Pt()<2.){
    // request of K identification at low D0 pt
    combinedPID[0][0]=0;
    combinedPID[0][1]=0;
    combinedPID[1][0]=0;
    combinedPID[1][1]=0;
    
    combinedPID[0][0]=isKaonPionTOF[0][0]+isKaonPionTPC[0][0];
    combinedPID[0][1]=isKaonPionTOF[0][1]+isKaonPionTPC[0][1];
    combinedPID[1][0]=isKaonPionTOF[1][0]+isKaonPionTPC[1][0];
    combinedPID[1][1]=isKaonPionTOF[1][1]+isKaonPionTPC[1][1];
    
    if(combinedPID[0][0]<=0&&combinedPID[1][0]<=0){
      fWhyRejection=32;// reject cases where the Kaon is not identified
      return 0;
    }
  }

  //  cout<<"Why? "<<fWhyRejection<<endl;  
  return isD0D0barPID[0]+isD0D0barPID[1];
}



//---------------------------------------------------------------------------
Int_t AliRDHFCutsD0toKpi::CombineSelectionLevels(Int_t selectionvalTrack,
						 Int_t selectionvalCand,
						 Int_t selectionvalPID) const
{
  //
  // This method combines the tracks, PID and cuts selection results
  //
  if(selectionvalTrack==0) return 0;

  Int_t returnvalue;

  switch(selectionvalPID) {
  case 0:
    returnvalue=0;
    break;
  case 1:
    returnvalue=((selectionvalCand==1 || selectionvalCand==3) ? 1 : 0);
    break;
  case 2:
    returnvalue=((selectionvalCand==2 || selectionvalCand==3) ? 2 : 0);
    break;
  case 3:
    returnvalue=selectionvalCand;
    break;
  default:
    returnvalue=0;
    break;
  }

  return returnvalue;
}
//----------------------------------------------------------------------------
Int_t AliRDHFCutsD0toKpi::IsSelectedSpecialCuts(AliAODRecoDecayHF *d) const
{
  //
  // Note: this method is temporary
  // Additional cuts on decay lenght and lower cut for d0 norm are applied using vertex without candidate's daughters
  //

  //apply cuts

  Float_t normDecLengthCut=1.,decLengthCut=TMath::Min(d->P()*0.0066+0.01,0.06/*cm*/), normd0Cut=0.5;
  // "decay length" expo law with tau' = beta*gamma*ctau= p/m*ctau =p*0.0123/1.864~p*0.0066
  // decay lenght > ctau' implies to retain (1-1/e) (for signal without considering detector resolution), 

  Int_t returnvalue=3; //cut passed
  for(Int_t i=0;i<2/*prongs*/;i++){
    if(TMath::Abs(d->Normalizedd0Prong(i))<normd0Cut) return 0; //normd0Cut not passed
  }
  if(d->DecayLength2()<decLengthCut*decLengthCut)  return 0; //decLengthCut not passed
  if(d->NormalizedDecayLength2()<normDecLengthCut*normDecLengthCut)  return 0; //decLengthCut not passed
	
  return returnvalue;
}

//----------------------------------------------
void AliRDHFCutsD0toKpi::SetUseKF(Bool_t useKF)
{
  //switch on candidate selection via AliKFparticle
  if(!useKF) return;
  if(useKF){
    fUseKF=useKF;
    Int_t nvarsKF=11;
    SetNVars(nvarsKF);
    TString varNamesKF[11]={"inv. mass [GeV]",   
		            "dca [cm]",
		            "cosThetaStar", 
		            "pTK [GeV/c]",
		            "pTPi [GeV/c]",
		            "d0K [cm]",
		            "d0Pi [cm]",
		            "d0d0 [cm^2]",
		            "cosThetaPoint"
		            "DecayLength[cm]",
		            "RedChi2"};
    Bool_t isUpperCutKF[11]={kTRUE,
			     kTRUE,
			     kTRUE,
			     kFALSE,
			     kFALSE,
			     kTRUE,
			     kTRUE,
			     kTRUE,
			     kFALSE,
			     kFALSE,
			     kTRUE};
    SetVarNames(nvarsKF,varNamesKF,isUpperCutKF);
    SetGlobalIndex();
    Bool_t forOpt[11]={kFALSE,
		    kTRUE,
		    kTRUE,
		    kFALSE,
		    kFALSE,
		    kFALSE,
		    kFALSE,
		    kTRUE,
		    kTRUE,
		    kFALSE,
		    kFALSE};
    SetVarsForOpt(4,forOpt);
  }
  return;
}


//---------------------------------------------------------------------------
void AliRDHFCutsD0toKpi::SetStandardCutsPP2010() {
  //
  //STANDARD CUTS USED FOR 2010 pp analysis 
  //dca cut will be enlarged soon to 400 micron
  //
  
  SetName("D0toKpiCutsStandard");
  SetTitle("Standard Cuts for D0 analysis");
  
  // PILE UP REJECTION
  SetOptPileup(AliRDHFCuts::kRejectPileupEvent);

  // EVENT CUTS
  SetMinVtxContr(1);
 // MAX Z-VERTEX CUT
  SetMaxVtxZ(10.);
  
  // TRACKS ON SINGLE TRACKS
  AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  //  esdTrackCuts->SetMinNClustersITS(4);
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
  esdTrackCuts->SetMinDCAToVertexXY(0.);
  esdTrackCuts->SetEtaRange(-0.8,0.8);
  esdTrackCuts->SetPtRange(0.3,1.e10);
  
  AddTrackCuts(esdTrackCuts);
  delete esdTrackCuts;
  esdTrackCuts=NULL;
  
  const Int_t nptbins =14;
  const Double_t ptmax = 9999.;
  const Int_t nvars=11;
  Float_t ptbins[nptbins+1];
  ptbins[0]=0.;
  ptbins[1]=0.5;	
  ptbins[2]=1.;
  ptbins[3]=2.;
  ptbins[4]=3.;
  ptbins[5]=4.;
  ptbins[6]=5.;
  ptbins[7]=6.;
  ptbins[8]=7.;
  ptbins[9]=8.;
  ptbins[10]=12.;
  ptbins[11]=16.;
  ptbins[12]=20.;
  ptbins[13]=24.;
  ptbins[14]=ptmax;

  SetGlobalIndex(nvars,nptbins);
  SetPtBins(nptbins+1,ptbins);
  
  Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.400,350.*1E-4,0.8,0.5,0.5,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.80,0.,0.},/* pt<0.5*/
						  {0.400,350.*1E-4,0.8,0.5,0.5,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.80,0.,0.},/* 0.5<pt<1*/
						  {0.400,300.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-25000.*1E-8,0.80,0.,0.},/* 1<pt<2 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-15000.*1E-8,0.85,0.,0.},/* 2<pt<3 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-8000.*1E-8,0.85,0.,0.},/* 3<pt<4 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-8000.*1E-8,0.85,0.,0.},/* 4<pt<5 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-8000.*1E-8,0.85,0.,0.},/* 5<pt<6 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-8000.*1E-8,0.85,0.,0.},/* 6<pt<7 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-7000.*1E-8,0.85,0.,0.},/* 7<pt<8 */
						  {0.400,300.*1E-4,0.9,0.7,0.7,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.85,0.,0.},/* 8<pt<12 */
						  {0.400,300.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,10000.*1E-8,0.85,0.,0.},/* 12<pt<16 */
						  {0.400,300.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,999999.*1E-8,0.85,0.,0.},/* 16<pt<20 */
						  {0.400,300.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,999999.*1E-8,0.85,0.,0.},/* 20<pt<24 */
						  {0.400,300.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,999999.*1E-8,0.85,0.,0.}};/* pt>24 */
  
  
  //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
  Float_t **cutsMatrixTransposeStand=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=new Float_t[nptbins];
  
  for (Int_t ibin=0;ibin<nptbins;ibin++){
    for (Int_t ivar = 0; ivar<nvars; ivar++){
      cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixD0toKpiStand[ibin][ivar];      
    }
  }
  
  SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
  SetUseSpecialCuts(kTRUE);
  SetRemoveDaughtersFromPrim(kTRUE);
  
  for(Int_t iv=0;iv<nvars;iv++) delete [] cutsMatrixTransposeStand[iv];
  delete [] cutsMatrixTransposeStand;
  cutsMatrixTransposeStand=NULL;

  // PID SETTINGS
  AliAODPidHF* pidObj=new AliAODPidHF();
  //pidObj->SetName("pid4D0");
  Int_t mode=1;
  const Int_t nlims=2;
  Double_t plims[nlims]={0.6,0.8}; //TPC limits in momentum [GeV/c]
  Bool_t compat=kTRUE; //effective only for this mode
  Bool_t asym=kTRUE;
  Double_t sigmas[5]={2.,1.,0.,3.,0.}; //to be checked and to be modified with new implementation of setters by Rossella
  pidObj->SetAsym(asym);// if you want to use the asymmetric bands in TPC
  pidObj->SetMatch(mode);
  pidObj->SetPLimit(plims,nlims);
  pidObj->SetSigma(sigmas);
  pidObj->SetCompat(compat);
  pidObj->SetTPC(kTRUE);
  pidObj->SetTOF(kTRUE);
  pidObj->SetPCompatTOF(1.5);
  pidObj->SetSigmaForTPCCompat(3.);
  pidObj->SetSigmaForTOFCompat(3.);
  pidObj->SetOldPid(kTRUE);

  SetPidHF(pidObj);
  SetUsePID(kTRUE);
  SetUseDefaultPID(kFALSE);

  SetLowPt(kFALSE);

  PrintAll();

  delete pidObj;
  pidObj=NULL;

  return;

}

//___________________________________________________________________________
void AliRDHFCutsD0toKpi::SetStandardCutsPP2010vsMult() {
  //
  // Cuts for 2010 pp 7 TeV data analysis in Ntracklets bins (vs multiplicity)
  //
  SetName("D0toKpiCuts");
  SetTitle("Cuts for D0 analysis in 2010-data pp 7 TeV vs multiplicity");

  //
  // Track cuts
  //
  AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  //default
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  esdTrackCuts->SetEtaRange(-0.8,0.8);
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
					 AliESDtrackCuts::kAny); 
 // default is kBoth, otherwise kAny
  esdTrackCuts->SetMinDCAToVertexXY(0.);
  esdTrackCuts->SetPtRange(0.3,1.e10);

  AddTrackCuts(esdTrackCuts);
  delete esdTrackCuts;
  esdTrackCuts=NULL;


  //
  // Cut values per pt bin
  //
  const Int_t nvars=11;
  const Int_t nptbins=14;
  Float_t* ptbins;
  ptbins=new Float_t[nptbins+1];
  ptbins[0]=0.;
  ptbins[1]=0.5;
  ptbins[2]=1.;
  ptbins[3]=2.;
  ptbins[4]=3.;
  ptbins[5]=4.;
  ptbins[6]=5.;
  ptbins[7]=6.;
  ptbins[8]=7.;
  ptbins[9]=8.;
  ptbins[10]=12.;
  ptbins[11]=16.;
  ptbins[12]=20.;
  ptbins[13]=24.;
  ptbins[14]=9999.;

  SetPtBins(nptbins+1,ptbins);
  
  //setting cut values
  Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.400,350.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.80,0.,3.},/* pt<0.5*/
                                                  {0.400,350.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.80,0.,3.},/* 0.5<pt<1*/
                                                  {0.400,300.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-30000.*1E-8,0.80,0.,4.},/* 1<pt<2 */
                                                  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-20000.*1E-8,0.85,0.,4.},/* 2<pt<3 */
                                                  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-15000.*1E-8,0.85,0.,4.},/* 3<pt<4 */
                                                  {0.400,300.*1E-4,0.75,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.875,0.,0.},/* 4<pt<5 */
                                                  {0.400,300.*1E-4,0.75,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.875,0.,0.},/* 5<pt<6 */
                                                  {0.400,400.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-8000.*1E-8,0.85,0.,0.},/* 6<pt<7 */
                                                  {0.400,400.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-8000.*1E-8,0.85,0.,0.},/* 7<pt<8 */
						  {0.400,0.06,0.85,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00001,0.85,0.,0.},/* 8<pt<12 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.},/* 12<pt<16 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.},/* 16<pt<20 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.},/* 20<pt<24 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.}};/* pt>24 */
  
  
  //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
  Float_t **cutsMatrixTransposeStand=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=new Float_t[nptbins];
  
  for (Int_t ibin=0;ibin<nptbins;ibin++){
    for (Int_t ivar = 0; ivar<nvars; ivar++){
      cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixD0toKpiStand[ibin][ivar];      
    }
  }
  
  SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
  for(Int_t iv=0;iv<nvars;iv++) delete [] cutsMatrixTransposeStand[iv];
  delete [] cutsMatrixTransposeStand;

  SetUseSpecialCuts(kTRUE);
  SetMaximumPtSpecialCuts(8.);

  //Do recalculate the vertex
  SetRemoveDaughtersFromPrim(kTRUE);

  //
  // Pid settings
  //
  Bool_t pidflag=kTRUE;
  SetUsePID(pidflag);
  if(pidflag) cout<<"PID is used"<<endl;
  else cout<<"PID is not used"<<endl;
  //
  AliAODPidHF* pidObj=new AliAODPidHF();
  Int_t mode=1;
  const Int_t nlims=2;
  Double_t plims[nlims]={0.6,0.8}; //TPC limits in momentum [GeV/c]
  Bool_t compat=kTRUE; //effective only for this mode
  Bool_t asym=kTRUE;
  Double_t sigmas[5]={2.,1.,0.,3.,0.}; //to be checked and to be modified with new implementation of setters by Rossella
  pidObj->SetAsym(asym);// if you want to use the asymmetric bands in TPC
  pidObj->SetMatch(mode);
  pidObj->SetPLimit(plims,nlims);
  pidObj->SetSigma(sigmas);
  pidObj->SetCompat(compat);
  pidObj->SetTPC(kTRUE);
  pidObj->SetTOF(kTRUE);
  pidObj->SetPCompatTOF(1.5);
  pidObj->SetSigmaForTPCCompat(3.);
  pidObj->SetSigmaForTOFCompat(3.);
  pidObj->SetOldPid(kTRUE);
  //  pidObj->SetOldPid(kFALSE);
  SetPidHF(pidObj);

  SetUseDefaultPID(kFALSE); //to use the AliAODPidHF

  SetLowPt(kFALSE);

  //activate pileup rejection (for pp)
  SetOptPileup(AliRDHFCuts::kRejectPileupEvent);


  PrintAll();

  delete pidObj;
  pidObj=NULL;
  delete [] ptbins;
  ptbins=NULL;

  return;
}

//---------------------------------------------------------------------------
void AliRDHFCutsD0toKpi::SetStandardCutsPP2011_276TeV() {
  //
  // STANDARD CUTS USED FOR 2011 pp analysis at 2.76TeV
  //
  
  SetName("D0toKpiCutsStandard");
  SetTitle("Standard Cuts for D0 analysis in pp2011 at 2.76TeV run");

  //
  // Track cuts
  //
  AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  //default
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  esdTrackCuts->SetEtaRange(-0.8,0.8);
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
					 AliESDtrackCuts::kAny); 
 // default is kBoth, otherwise kAny
  esdTrackCuts->SetMinDCAToVertexXY(0.);
  esdTrackCuts->SetPtRange(0.3,1.e10);

  esdTrackCuts->SetMaxDCAToVertexXY(1.);
  esdTrackCuts->SetMaxDCAToVertexZ(1.);
  esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");

  AddTrackCuts(esdTrackCuts);
  delete esdTrackCuts;
  esdTrackCuts=NULL;


  const Int_t nvars=11;
  const Int_t nptbins=13;
  Float_t ptbins[nptbins+1];
  ptbins[0]=0.;
  ptbins[1]=0.5;
  ptbins[2]=1.;
  ptbins[3]=2.;
  ptbins[4]=3.;
  ptbins[5]=4.;
  ptbins[6]=5.;
  ptbins[7]=6.;
  ptbins[8]=8.;
  ptbins[9]=12.;
  ptbins[10]=16.;
  ptbins[11]=20.;
  ptbins[12]=24.;
  ptbins[13]=9999.;

  SetPtBins(nptbins+1,ptbins);

	
  Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.400,0.04,0.75,0.3,0.3,1000.*1E-4,1000.*1E-4,0.,0.85,0.,0.},/* pt<0.5*/
						  {0.400,0.04,0.75,0.3,0.3,1000.*1E-4,1000.*1E-4,0.,0.85,0.,0.},/* 0.5<pt<1*/
						  {0.400,0.03,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-25000.*1E-8,0.8,0.,0.},/* 1<pt<2 */
						  {0.400,0.03,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.0003,0.9,0.,0.},/* 2<pt<3 */
						  {0.400,0.03,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.0002,0.9,0.,0.},/* 3<pt<4 */
						  {0.400,0.03,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00015,0.9,0.,0.},/* 4<pt<5 */
						  {0.400,0.03,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.0001,0.9,0.,0.},/* 5<pt<6 */
						  {0.400,0.09,0.85,0.7,0.7,1000.*1E-4,1000.*1E-4,0.,0.85,0.,0.},/* 6<pt<8 */
						  {0.400,0.06,0.85,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00001,0.85,0.,0.},/* 8<pt<12 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.},/* 12<pt<16 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.},/* 16<pt<20 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.},/* 20<pt<24 */
						  {0.400,0.09,1.0,0.7,0.7,9999.,9999.,0.,0.,0.,0.}};/* pt>24 */
    
  //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
  Float_t **cutsMatrixTransposeStand=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=new Float_t[nptbins];
  for (Int_t ibin=0;ibin<nptbins;ibin++){
    for (Int_t ivar = 0; ivar<nvars; ivar++){
      cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixD0toKpiStand[ibin][ivar];
    }
  }
  SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
  for(Int_t iv=0;iv<nvars;iv++) delete [] cutsMatrixTransposeStand[iv];
  delete [] cutsMatrixTransposeStand;


  //pid settings
  AliAODPidHF* pidObj=new AliAODPidHF();
  Int_t mode=1;
  const Int_t nlims=2;
  Double_t plims[nlims]={0.6,0.8}; //TPC limits in momentum [GeV/c]
  Bool_t compat=kTRUE; //effective only for this mode
  Bool_t asym=kTRUE;
  Double_t sigmas[5]={2.,1.,0.,3.,0.}; //to be checked and to be modified with new implementation of setters by Rossella
  pidObj->SetAsym(asym);// if you want to use the asymmetric bands in TPC
  pidObj->SetMatch(mode);
  pidObj->SetPLimit(plims,nlims);
  pidObj->SetSigma(sigmas);
  pidObj->SetCompat(compat);
  pidObj->SetTPC(kTRUE);
  pidObj->SetTOF(kTRUE);
  pidObj->SetOldPid(kTRUE);
  SetPidHF(pidObj);

  SetUseDefaultPID(kFALSE); //to use the AliAODPidHF

  SetUsePID(kTRUE);

  //activate pileup rejection (for pp)
  SetOptPileup(AliRDHFCuts::kRejectPileupEvent);

  //Do recalculate the vertex
  SetRemoveDaughtersFromPrim(kTRUE);

  // Cut on the zvtx
  SetMaxVtxZ(10.);
  
  // Use the kFirst selection for tracks with candidate D with pt<2
  SetSelectCandTrackSPDFirst(kTRUE,2.);

  // Use special cuts for D candidates with pt<2
  SetUseSpecialCuts(kTRUE);
  SetMaximumPtSpecialCuts(2.);

  PrintAll();

  delete pidObj;
  pidObj=NULL;

  return;
}


//---------------------------------------------------------------------------
void AliRDHFCutsD0toKpi::SetStandardCutsPbPb2010() {
  //
  // Final CUTS USED FOR 2010 PbPb analysis of central events
  // REMEMBER TO EVENTUALLY SWITCH ON 
  //          SetUseAOD049(kTRUE);
  // 
  
  SetName("D0toKpiCutsStandard");
  SetTitle("Standard Cuts for D0 analysis in PbPb2010 run");
  
  
  // CENTRALITY SELECTION
  SetMinCentrality(0.);
  SetMaxCentrality(80.);
  SetUseCentrality(AliRDHFCuts::kCentV0M);


  
  // EVENT CUTS
  SetMinVtxContr(1);
  // MAX Z-VERTEX CUT
  SetMaxVtxZ(10.);
  // PILE UP
  SetOptPileup(AliRDHFCuts::kNoPileupSelection);
  // PILE UP REJECTION
  //SetOptPileup(AliRDHFCuts::kRejectPileupEvent);

  // TRACKS ON SINGLE TRACKS
  AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  //  esdTrackCuts->SetMinNClustersITS(4);
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
  esdTrackCuts->SetMinDCAToVertexXY(0.);
  esdTrackCuts->SetEtaRange(-0.8,0.8);
  esdTrackCuts->SetPtRange(0.7,1.e10);

  esdTrackCuts->SetMaxDCAToVertexXY(1.);  
  esdTrackCuts->SetMaxDCAToVertexZ(1.);
  esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");  


  AddTrackCuts(esdTrackCuts);
  delete esdTrackCuts;
  esdTrackCuts=NULL;
  // SPD k FIRST for Pt<3 GeV/c
  SetSelectCandTrackSPDFirst(kTRUE, 3); 

  // CANDIDATE CUTS  
  const Int_t nptbins =13;
  const Double_t ptmax = 9999.;
  const Int_t nvars=11;
  Float_t ptbins[nptbins+1];
  ptbins[0]=0.;
  ptbins[1]=0.5;	
  ptbins[2]=1.;
  ptbins[3]=2.;
  ptbins[4]=3.;
  ptbins[5]=4.;
  ptbins[6]=5.;
  ptbins[7]=6.;
  ptbins[8]=8.;
  ptbins[9]=12.;
  ptbins[10]=16.;
  ptbins[11]=20.;
  ptbins[12]=24.;
  ptbins[13]=ptmax;

  SetGlobalIndex(nvars,nptbins);
  SetPtBins(nptbins+1,ptbins);
  SetMinPtCandidate(2.);

  Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.400,400.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.85,0.99,2.},/* pt<0.5*/
						  {0.400,400.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-35000.*1E-8,0.9,0.99,2.},/* 0.5<pt<1*/
						  {0.400,400.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-43000.*1E-8,0.85,0.995,8.},/* 1<pt<2 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-45000.*1E-8,0.95,0.998,7.},/* 2<pt<3 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-36000.*1E-8,0.95,0.998,5.},/* 3<pt<4 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-27000.*1E-8,0.95,0.998,5.},/* 4<pt<5 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-21000.*1E-8,0.92,0.998,5.},/* 5<pt<6 */
						  {0.400,270.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-14000.*1E-8,0.88,0.998,5.},/* 6<pt<8 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.85,0.998,5.},/* 8<pt<12 */
						  {0.400,350.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,-1000.*1E-8,0.83,0.998,8.},/* 12<pt<16 */
						  {0.400,400.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,-1000.*1E-8,0.82,0.995,6.},/* 16<pt<20 */
						  {0.400,400.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,-1000.*1E-8,0.81,0.995,6.},/* 20<pt<24 */
						  {0.400,400.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,-1000.*1E-8,0.8,0.99,2.}};/* pt>24 */
  
  
  //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
  Float_t **cutsMatrixTransposeStand=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=new Float_t[nptbins];
  
  for (Int_t ibin=0;ibin<nptbins;ibin++){
    for (Int_t ivar = 0; ivar<nvars; ivar++){
      cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixD0toKpiStand[ibin][ivar];      
    }
  }
  
  SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
  SetUseSpecialCuts(kTRUE);
  SetRemoveDaughtersFromPrim(kFALSE);// THIS IS VERY IMPORTANT! TOO SLOW IN PbPb
  for(Int_t iv=0;iv<nvars;iv++) delete [] cutsMatrixTransposeStand[iv];
  delete [] cutsMatrixTransposeStand;
  cutsMatrixTransposeStand=NULL;
  
  // PID SETTINGS
  AliAODPidHF* pidObj=new AliAODPidHF();
  //pidObj->SetName("pid4D0");
  Int_t mode=1;
  const Int_t nlims=2;
  Double_t plims[nlims]={0.6,0.8}; //TPC limits in momentum [GeV/c]
  Bool_t compat=kTRUE; //effective only for this mode
  Bool_t asym=kTRUE;
  Double_t sigmas[5]={2.,1.,0.,3.,0.}; //to be checked and to be modified with new implementation of setters by Rossella
  pidObj->SetAsym(asym);// if you want to use the asymmetric bands in TPC
  pidObj->SetMatch(mode);
  pidObj->SetPLimit(plims,nlims);
  pidObj->SetSigma(sigmas);
  pidObj->SetCompat(compat);
  pidObj->SetTPC(kTRUE);
  pidObj->SetTOF(kTRUE);
  pidObj->SetPCompatTOF(2.);
  pidObj->SetSigmaForTPCCompat(3.);
  pidObj->SetSigmaForTOFCompat(3.);  
  pidObj->SetOldPid(kTRUE);


  SetPidHF(pidObj);
  SetUsePID(kTRUE);
  SetUseDefaultPID(kFALSE);


  PrintAll();


  delete pidObj;
  pidObj=NULL;

  return;

}

//---------------------------------------------------------------------------
void AliRDHFCutsD0toKpi::SetStandardCutsPbPb2010Peripherals() {
  // CUTS USED FOR D0 RAA for the CENTRALITY RANGE 20-80%

  
  SetName("D0toKpiCutsStandard");
  SetTitle("Standard Cuts for D0 analysis in PbPb2010 run, for peripheral events");
  
  
  // CENTRALITY SELECTION
  SetMinCentrality(40.);
  SetMaxCentrality(80.);
  SetUseCentrality(AliRDHFCuts::kCentV0M);
  
  // EVENT CUTS
  SetMinVtxContr(1);
  // MAX Z-VERTEX CUT
  SetMaxVtxZ(10.);
  // PILE UP
  SetOptPileup(AliRDHFCuts::kNoPileupSelection);
  // PILE UP REJECTION
  //SetOptPileup(AliRDHFCuts::kRejectPileupEvent);

  // TRACKS ON SINGLE TRACKS
  AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  //  esdTrackCuts->SetMinNClustersITS(4);
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
  esdTrackCuts->SetMinDCAToVertexXY(0.);
  esdTrackCuts->SetEtaRange(-0.8,0.8);
  esdTrackCuts->SetPtRange(0.5,1.e10);

  esdTrackCuts->SetMaxDCAToVertexXY(1.);  
  esdTrackCuts->SetMaxDCAToVertexZ(1.);
  esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0025*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");  


  AddTrackCuts(esdTrackCuts);
  delete esdTrackCuts;
  esdTrackCuts=NULL;
  // SPD k FIRST for Pt<3 GeV/c
  SetSelectCandTrackSPDFirst(kTRUE, 3); 

  // CANDIDATE CUTS  
  const Int_t nptbins =13;
  const Double_t ptmax = 9999.;
  const Int_t nvars=11;
  Float_t ptbins[nptbins+1];
  ptbins[0]=0.;
  ptbins[1]=0.5;	
  ptbins[2]=1.;
  ptbins[3]=2.;
  ptbins[4]=3.;
  ptbins[5]=4.;
  ptbins[6]=5.;
  ptbins[7]=6.;
  ptbins[8]=8.;
  ptbins[9]=12.;
  ptbins[10]=16.;
  ptbins[11]=20.;
  ptbins[12]=24.;
  ptbins[13]=ptmax;

  SetGlobalIndex(nvars,nptbins);
  SetPtBins(nptbins+1,ptbins);
  SetMinPtCandidate(0.);

  Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.400,400.*1E-4,0.8,0.5,0.5,1000.*1E-4,1000.*1E-4,-20000.*1E-8,0.7,0.993,2.},/* pt<0.5*/
						  {0.400,400.*1E-4,0.8,0.5,0.5,1000.*1E-4,1000.*1E-4,-25000.*1E-8,0.85,0.993,2.},/* 0.5<pt<1*/
						  {0.400,400.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-40000.*1E-8,0.85,0.995,6.},/* 1<pt<2 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-40000.*1E-8,0.95,0.991,5.},/* 2<pt<3 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-36000.*1E-8,0.95,0.993,5.},/* 3<pt<4 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-27000.*1E-8,0.95,0.995,5.},/* 4<pt<5 */
						  {0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-21000.*1E-8,0.92,0.998,5.},/* 5<pt<6 */
						  {0.400,270.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-14000.*1E-8,0.88,0.998,5.},/* 6<pt<8 */
						  {0.400,300.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.85,0.995,5.},/* 8<pt<12 */
						  {0.400,350.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,0.*1E-8,0.83,0.995,4.},/* 12<pt<16 */
						  {0.400,400.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,0.*1E-8,0.82,0.995,4.},/* 16<pt<20 */
						  {0.400,400.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,0.*1E-8,0.81,0.995,4.},/* 20<pt<24 */
						  {0.400,400.*1E-4,1.0,0.7,0.7,1000.*1E-4,1000.*1E-4,0.*1E-8,0.8,0.995,4.}};/* pt>24 */
  
  
  //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
  Float_t **cutsMatrixTransposeStand=new Float_t*[nvars];
  for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=new Float_t[nptbins];
  
  for (Int_t ibin=0;ibin<nptbins;ibin++){
    for (Int_t ivar = 0; ivar<nvars; ivar++){
      cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixD0toKpiStand[ibin][ivar];      
    }
  }
  
  SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
  SetUseSpecialCuts(kTRUE);
  SetRemoveDaughtersFromPrim(kFALSE);// THIS IS VERY IMPORTANT! TOO SLOW IN PbPb
  for(Int_t iv=0;iv<nvars;iv++) delete [] cutsMatrixTransposeStand[iv];
  delete [] cutsMatrixTransposeStand;
  cutsMatrixTransposeStand=NULL;
  
  // PID SETTINGS
  AliAODPidHF* pidObj=new AliAODPidHF();
  //pidObj->SetName("pid4D0");
  Int_t mode=1;
  const Int_t nlims=2;
  Double_t plims[nlims]={0.6,0.8}; //TPC limits in momentum [GeV/c]
  Bool_t compat=kTRUE; //effective only for this mode
  Bool_t asym=kTRUE;
  Double_t sigmas[5]={2.,1.,0.,3.,0.}; //to be checked and to be modified with new implementation of setters by Rossella
  pidObj->SetAsym(asym);// if you want to use the asymmetric bands in TPC
  pidObj->SetMatch(mode);
  pidObj->SetPLimit(plims,nlims);
  pidObj->SetSigma(sigmas);
  pidObj->SetCompat(compat);
  pidObj->SetTPC(kTRUE);
  pidObj->SetTOF(kTRUE);
  pidObj->SetPCompatTOF(2.);
  pidObj->SetSigmaForTPCCompat(3.);
  pidObj->SetSigmaForTOFCompat(3.);  
  pidObj->SetOldPid(kTRUE);

  SetPidHF(pidObj);
  SetUsePID(kTRUE);
  SetUseDefaultPID(kFALSE);

  SetLowPt(kTRUE,2.);

  PrintAll();


  delete pidObj;
  pidObj=NULL;

  return;
  
}


//---------------------------------------------------------------------------
void AliRDHFCutsD0toKpi::SetStandardCutsPbPb2011() {
  
  // Default 2010 PbPb cut object
  SetStandardCutsPbPb2010();
  AliAODPidHF *pidobj=GetPidHF();

  pidobj->SetOldPid(kFALSE);

  //
  // Enable all 2011 PbPb run triggers
  //  
  SetTriggerClass("");
  ResetMaskAndEnableMBTrigger();
  EnableCentralTrigger();
  EnableSemiCentralTrigger();

}

//---------------------------------------------------------------------------
Int_t AliRDHFCutsD0toKpi::IsSelectedCombPID(AliAODRecoDecayHF* d)
{
  // ############################################################
  //
  // Apply Bayesian PID selection
  // Implementation of Bayesian PID: Jeremy Wilkinson
  //
  // ############################################################

  if (!fUsePID || !d) return 3;

  
  if (fBayesianStrategy == kBayesWeightNoFilter) {
     //WeightNoFilter: Accept all particles (no PID cut) but fill mass histos with weights in task
     CalculateBayesianWeights(d);
     return 3;
  }



  Int_t isD0 = 0;
  Int_t isD0bar = 0;
  Int_t returnvalue = 0;

  Int_t isPosKaon = 0, isNegKaon = 0, isPosPion = 0, isNegPion = 0;

  //Bayesian methods used here check for ID of kaon, and whether it is positive or negative.
  
  
  Bool_t checkPIDInfo[2] = {kTRUE, kTRUE};
  AliAODTrack *aodtrack[2] = {(AliAODTrack*)d->GetDaughter(0), (AliAODTrack*)d->GetDaughter(1)};

  if ((aodtrack[0]->Charge()*aodtrack[1]->Charge()) != -1) {
    return 0;  //reject if charges not opposite
  }
   Double_t momentumpositive=0., momentumnegative=0.;	//Used in "prob > prior" method
  for (Int_t daught = 0; daught < 2; daught++) {
    //Loop over prongs

      if (aodtrack[daught]->Charge() == -1) {
         momentumnegative = aodtrack[daught]->P();
      }
      if (aodtrack[daught]->Charge() == +1) {
         momentumpositive = aodtrack[daught]->P();
      }
	  if (!(fPidHF->CheckStatus(aodtrack[daught], "TPC")) && !(fPidHF->CheckStatus(aodtrack[daught], "TOF"))) {
	     checkPIDInfo[daught] = kFALSE;
	     continue;
	  }

   }

   //Loop over daughters ends here

   if (!checkPIDInfo[0] && !checkPIDInfo[1]) {
      return 0;      //Reject if both daughters lack both TPC and TOF info
   }


   CalculateBayesianWeights(d);        //Calculates all Bayesian probabilities for both positive and negative tracks
    //      Double_t prob0[AliPID::kSPECIES];
    //      fPidHF->GetPidCombined()->ComputeProbabilities(aodtrack[daught], fPidHF->GetPidResponse(), prob0);
   ///Three possible Bayesian probability cuts: Picked using SetBayesianCondition(int).
   switch (fBayesianCondition) {
      ///A: Standard max. probability method (accept most likely species) 
      case kMaxProb:
	if (TMath::MaxElement(AliPID::kSPECIES, fWeightsPositive) == fWeightsPositive[AliPID::kKaon]) { //If highest probability lies with kaon
	  isPosKaon = 1;  //flag [daught] as a kaon
	}
	
	if (TMath::MaxElement(AliPID::kSPECIES, fWeightsPositive) == fWeightsPositive[AliPID::kPion]) { //If highest probability lies with pion
	  isPosPion = 1;  //flag [daught] as a pion
	}            
	
	if (TMath::MaxElement(AliPID::kSPECIES, fWeightsNegative) == fWeightsNegative[AliPID::kKaon]) { //If highest probability lies with kaon
	  isNegKaon = 1;  //flag [daught] as a kaon
	}
	
	if (TMath::MaxElement(AliPID::kSPECIES, fWeightsNegative) == fWeightsNegative[AliPID::kPion]) { //If highest probability lies with kaon
	  isNegPion = 1;  //flag [daught] as a pion
	}
	
	
	break;
	///B: Accept if probability greater than prior
   case kAbovePrior:
     
     if (fWeightsNegative[AliPID::kKaon] > (fPidHF->GetPidCombined()->GetPriorDistribution(AliPID::kKaon)->
					    GetBinContent(fPidHF->GetPidCombined()->GetPriorDistribution(AliPID::kKaon)->FindBin(momentumnegative)))) {  //Retrieves relevant prior, gets value at momentum
       isNegKaon = 1;
     }
     if (fWeightsPositive[AliPID::kKaon] > (fPidHF->GetPidCombined()->GetPriorDistribution(AliPID::kKaon)->
					    GetBinContent(fPidHF->GetPidCombined()->GetPriorDistribution(AliPID::kKaon)->FindBin(momentumpositive)))) {  //Retrieves relevant prior, gets value at momentum
       isPosKaon = 1;
     }
     
     break;
     
     ///C: Accept if probability greater than user-defined threshold
      case kThreshold:
         if (fWeightsNegative[AliPID::kKaon] > fProbThreshold) {
            isNegKaon = 1;
         }
         if (fWeightsNegative[AliPID::kPion] > fProbThreshold) {
            isNegPion = 1;
         }
         
         if (fWeightsPositive[AliPID::kKaon] > fProbThreshold) {
            isPosKaon = 1;
         }
        
         if (fWeightsPositive[AliPID::kPion] > fProbThreshold) {
            isPosPion = 1;
         }

         break;
   }
   
     
     //Momentum-based selection (also applied to filtered weighted method)
     
     if (fBayesianStrategy == kBayesMomentum || fBayesianCondition == kBayesWeight) {
         if (isNegKaon && isPosKaon) { // If both are kaons, reject
            isD0 = 1;
            isD0bar = 1;
         } else if (isNegKaon && isPosPion) {       //If negative kaon present, D0
            isD0 = 1;
         } else if (isPosKaon && isNegPion) {       //If positive kaon present, D0bar
            isD0bar = 1;
         } else {                      //If neither ID'd as kaon, subject to extra tests
            isD0 = 1;
            isD0bar = 1;
            if (aodtrack[0]->P() < 1.5 && (fPidHF->CheckStatus(aodtrack[0], "TOF"))) { //If it's low momentum and not ID'd as a kaon, we assume it must be a pion
               if (aodtrack[0]->Charge() == -1) {
            isD0 = 0;  //Check charge and reject based on pion hypothesis
               }
               if (aodtrack[0]->Charge() == 1) {
            isD0bar = 0;
               }
            }
            if (aodtrack[1]->P() < 1.5 && (fPidHF->CheckStatus(aodtrack[1], "TOF"))) {
               if (aodtrack[1]->Charge() == -1) {
            isD0 = 0;
               }
               if (aodtrack[1]->Charge() == 1) {
            isD0bar = 0;
               }
            }
         }

            

         if (isD0 && isD0bar) {
            returnvalue = 3;
         }
         if (isD0 && !isD0bar) {
            returnvalue = 1;
         }
         if (!isD0 && isD0bar) {
            returnvalue = 2;
         }
         if (!isD0 && !isD0bar) {
            returnvalue = 0;
         }
     }

    //Simple Bayesian
    if (fBayesianStrategy == kBayesSimple) {
       
         if (isPosKaon && isNegKaon)   {  //If both are ID'd as kaons, accept as possible
               returnvalue = 3;
            } else if (isNegKaon && isPosPion)   {     //If negative kaon, D0
               returnvalue = 1;
            } else if (isPosKaon && isNegPion)   {     //If positive kaon, D0-bar
               returnvalue = 2;
            } else if (isPosPion && isNegPion)   {
               returnvalue = 0;  //If neither kaon, reject
            } else {returnvalue = 0;}  //default
            
    }
    
  return returnvalue;



}



//---------------------------------------------------------------------------
void AliRDHFCutsD0toKpi::CalculateBayesianWeights(AliAODRecoDecayHF* d)

{
  //Function to compute weights for Bayesian method

  AliAODTrack *aodtrack[2] = {(AliAODTrack*)d->GetDaughter(0), (AliAODTrack*)d->GetDaughter(1)};
  if ((aodtrack[0]->Charge() * aodtrack[1]->Charge()) != -1) {
    return;  //Reject if charges do not oppose
  }
  for (Int_t daught = 0; daught < 2; daught++) {
    //Loop over prongs

    if (!(fPidHF->CheckStatus(aodtrack[daught], "TPC")) && !(fPidHF->CheckStatus(aodtrack[daught], "TOF"))) {
      continue;
    }


    // identify kaon, define weights
    if (aodtrack[daught]->Charge() == +1) {
    fPidHF->GetPidCombined()->ComputeProbabilities(aodtrack[daught], fPidHF->GetPidResponse(), fWeightsPositive);
    }
    
    if (aodtrack[daught]->Charge() == -1) {
    fPidHF->GetPidCombined()->ComputeProbabilities(aodtrack[daught], fPidHF->GetPidResponse(), fWeightsNegative);
    }
  }
}



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