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

// The class AliCFTrackKineCuts is designed to select both generated 
// and reconstructed tracks of a given range in momentum space,
// electric charge and azimuthal emission angle phi
// and to provide corresponding QA histograms.
// This class inherits from the Analysis' Framework abstract base class
// AliAnalysisCuts and is a part of the Correction Framework.
// This class acts on single, generated and reconstructed tracks, it is 
// applicable on ESD and AOD data.
// It mainly consists of a IsSelected function that returns a boolean.
// This function checks whether the considered track passes a set of cuts:
// - total momentum
// - pt
// - px
// - py
// - pz
// - eta
// - rapidity
// - phi
// - charge
// - is charged
//
// The cut values for these cuts are set with the corresponding set functions.
// All cut classes provided by the correction framework are supposed to be
// added in the Analysis Framwork's class AliAnalysisFilter and applied by
// the filter via a loop.
//
// author: I. Kraus (Ingrid.Kraus@cern.ch)
// idea taken form
// AliESDtrackCuts writte by Jan Fiete Grosse-Oetringhaus and
// AliRsnDaughterCut class written by A. Pulvirenti.

#include <TCanvas.h>
#include <TDirectory.h>
#include <TH2.h>
#include <TBits.h>

#include <AliVParticle.h>
#include <AliLog.h>
#include "AliCFTrackKineCuts.h"

ClassImp(AliCFTrackKineCuts)

//__________________________________________________________________________________
AliCFTrackKineCuts::AliCFTrackKineCuts() :
  AliCFCutBase(),
  fMomentumMin(0),
  fMomentumMax(0),
  fPtMin(0),
  fPtMax(0),
  fPxMin(0),
  fPxMax(0),
  fPyMin(0),
  fPyMax(0),
  fPzMin(0),
  fPzMax(0),
  fEtaMin(0),
  fEtaMax(0),
  fRapidityMin(0),
  fRapidityMax(0),
  fPhiMin(0),
  fPhiMax(0),
  fCharge(0),
  fRequireIsCharged(0),
  fhCutStatistics(0),
  fhCutCorrelation(0),
  fBitmap(0x0),
  fhNBinsMomentum(0),
  fhNBinsPt(0),
  fhNBinsPx(0),
  fhNBinsPy(0),
  fhNBinsPz(0),
  fhNBinsEta(0),
  fhNBinsRapidity(0),
  fhNBinsPhi(0),
  fhNBinsCharge(0),
  fhBinLimMomentum(0x0),
  fhBinLimPt(0x0),
  fhBinLimPx(0x0),
  fhBinLimPy(0x0),
  fhBinLimPz(0x0),
  fhBinLimEta(0x0),
  fhBinLimRapidity(0x0),
  fhBinLimPhi(0x0),
  fhBinLimCharge(0x0)
{
  //
  // Default constructor
  //
  Initialise();
}
//__________________________________________________________________________________
AliCFTrackKineCuts::AliCFTrackKineCuts(Char_t* name, Char_t* title) :
  AliCFCutBase(name,title),
  fMomentumMin(0),
  fMomentumMax(0),
  fPtMin(0),
  fPtMax(0),
  fPxMin(0),
  fPxMax(0),
  fPyMin(0),
  fPyMax(0),
  fPzMin(0),
  fPzMax(0),
  fEtaMin(0),
  fEtaMax(0),
  fRapidityMin(0),
  fRapidityMax(0),
  fPhiMin(0),
  fPhiMax(0),
  fCharge(0),
  fRequireIsCharged(0),
  fhCutStatistics(0),
  fhCutCorrelation(0),
  fBitmap(0x0),
  fhNBinsMomentum(0),
  fhNBinsPt(0),
  fhNBinsPx(0),
  fhNBinsPy(0),
  fhNBinsPz(0),
  fhNBinsEta(0),
  fhNBinsRapidity(0),
  fhNBinsPhi(0),
  fhNBinsCharge(0),
  fhBinLimMomentum(0x0),
  fhBinLimPt(0x0),
  fhBinLimPx(0x0),
  fhBinLimPy(0x0),
  fhBinLimPz(0x0),
  fhBinLimEta(0x0),
  fhBinLimRapidity(0x0),
  fhBinLimPhi(0x0),
  fhBinLimCharge(0x0)
{
  //
  // Constructor
  //
  Initialise();
}
//__________________________________________________________________________________
AliCFTrackKineCuts::AliCFTrackKineCuts(const AliCFTrackKineCuts& c) :
  AliCFCutBase(c),
  fMomentumMin(c.fMomentumMin),
  fMomentumMax(c.fMomentumMax),
  fPtMin(c.fPtMin),
  fPtMax(c.fPtMax),
  fPxMin(c.fPxMin),
  fPxMax(c.fPxMax),
  fPyMin(c.fPyMin),
  fPyMax(c.fPyMax),
  fPzMin(c.fPzMin),
  fPzMax(c.fPzMax),
  fEtaMin(c.fEtaMin),
  fEtaMax(c.fEtaMax),
  fRapidityMin(c.fRapidityMin),
  fRapidityMax(c.fRapidityMax),
  fPhiMin(c.fPhiMin),
  fPhiMax(c.fPhiMax),
  fCharge(c.fCharge),
  fRequireIsCharged(c.fRequireIsCharged),
  fhCutStatistics(c.fhCutStatistics),
  fhCutCorrelation(c.fhCutCorrelation),
  fBitmap(c.fBitmap),
  fhNBinsMomentum(c.fhNBinsMomentum),
  fhNBinsPt(c.fhNBinsPt),
  fhNBinsPx(c.fhNBinsPx),
  fhNBinsPy(c.fhNBinsPy),
  fhNBinsPz(c.fhNBinsPz),
  fhNBinsEta(c.fhNBinsEta),
  fhNBinsRapidity(c.fhNBinsRapidity),
  fhNBinsPhi(c.fhNBinsPhi),
  fhNBinsCharge(c.fhNBinsCharge),
  fhBinLimMomentum(c.fhBinLimMomentum),
  fhBinLimPt(c.fhBinLimPt),
  fhBinLimPx(c.fhBinLimPx),
  fhBinLimPy(c.fhBinLimPy),
  fhBinLimPz(c.fhBinLimPz),
  fhBinLimEta(c.fhBinLimEta),
  fhBinLimRapidity(c.fhBinLimRapidity),
  fhBinLimPhi(c.fhBinLimPhi),
  fhBinLimCharge(c.fhBinLimCharge)
{
  //
  // copy constructor
  //
  ((AliCFTrackKineCuts &) c).Copy(*this);
}
//__________________________________________________________________________________
AliCFTrackKineCuts& AliCFTrackKineCuts::operator=(const AliCFTrackKineCuts& c)
{
  //
  // Assignment operator
  //
  if (this != &c) {
    AliCFCutBase::operator=(c) ;
    fMomentumMin = c.fMomentumMin ;
    fMomentumMax = c.fMomentumMax ;
    fPtMin = c.fPtMin ;
    fPtMax = c.fPtMax ;
    fPxMin = c.fPxMin ;
    fPxMax = c.fPxMax ;
    fPyMin = c.fPyMin ;
    fPyMax = c.fPyMax ;
    fPzMin = c.fPzMin ;
    fPzMax = c.fPzMax ;
    fEtaMin = c.fEtaMin ;
    fEtaMax = c.fEtaMax ;
    fRapidityMin = c.fRapidityMin ;
    fRapidityMax = c.fRapidityMax ;
    fPhiMin = c.fPhiMin ;
    fPhiMax = c.fPhiMax ;
    fCharge = c.fCharge ;
    fRequireIsCharged = c.fRequireIsCharged ;
    fhCutStatistics = c.fhCutStatistics ;
    fhCutCorrelation = c.fhCutCorrelation ;
    fBitmap = c.fBitmap;
    fhNBinsMomentum = c.fhNBinsMomentum;
    fhNBinsPt = c.fhNBinsPt;
    fhNBinsPx = c.fhNBinsPx;
    fhNBinsPy = c.fhNBinsPy;
    fhNBinsPz = c.fhNBinsPz;
    fhNBinsEta = c.fhNBinsEta;
    fhNBinsRapidity = c.fhNBinsRapidity;
    fhNBinsPhi = c.fhNBinsPhi;
    fhNBinsCharge = c.fhNBinsCharge;
    fhBinLimMomentum = c.fhBinLimMomentum;
    fhBinLimPt = c.fhBinLimPt;
    fhBinLimPx = c.fhBinLimPx;
    fhBinLimPy = c.fhBinLimPy;
    fhBinLimPz = c.fhBinLimPz;
    fhBinLimEta = c.fhBinLimEta;
    fhBinLimRapidity = c.fhBinLimRapidity;
    fhBinLimPhi = c.fhBinLimPhi;
    fhBinLimCharge = c.fhBinLimCharge;

    for (Int_t i=0; i<c.kNHist; i++){
      for (Int_t j=0; j<c.kNStepQA; j++){
	if(c.fhQA[i][j]) fhQA[i][j] = (TH1F*)c.fhQA[i][j]->Clone();
      }
    }
    ((AliCFTrackKineCuts &) c).Copy(*this);
  }
  return *this ;
}
//__________________________________________________________________________________
AliCFTrackKineCuts::~AliCFTrackKineCuts()
{
  //
  // destructor
  //
  if (fhCutStatistics)			delete fhCutStatistics;
  if (fhCutCorrelation)			delete fhCutCorrelation;

  for (Int_t i=0; i<kNHist; i++){
    for (Int_t j=0; j<kNStepQA; j++){
      if(fhQA[i][j]) delete fhQA[i][j];
    }
  }
  if(fBitmap) delete fBitmap;
  if(fhBinLimMomentum) delete fhBinLimMomentum;
  if(fhBinLimPt) delete fhBinLimPt;
  if(fhBinLimPx) delete fhBinLimPx;
  if(fhBinLimPy) delete fhBinLimPy;
  if(fhBinLimPz) delete fhBinLimPz;
  if(fhBinLimEta) delete fhBinLimEta;
  if(fhBinLimRapidity) delete fhBinLimRapidity;
  if(fhBinLimPhi) delete fhBinLimPhi;
  if(fhBinLimCharge) delete fhBinLimCharge;
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::Initialise()
{
  //
  // sets everything to zero
  //
  fMomentumMin = 0;
  fMomentumMax = 0;
  fPtMin = 0;
  fPtMax = 0;
  fPxMin = 0;
  fPxMax = 0;
  fPyMin = 0;
  fPyMax = 0;
  fPzMin = 0;
  fPzMax = 0;
  fEtaMin = 0;
  fEtaMax = 0;
  fRapidityMin = 0;
  fRapidityMax = 0;
  fPhiMin = 0;
  fPhiMax = 0;
  fCharge = 0;
  fRequireIsCharged = 0;

  SetMomentumRange();
  SetPtRange();
  SetPxRange();
  SetPyRange();
  SetPzRange();
  SetEtaRange();
  SetRapidityRange();
  SetPhiRange();
  SetChargeRec();
  SetChargeMC();
  SetRequireIsCharged();

  for (Int_t i=0; i<kNHist; i++){
    for (Int_t j=0; j<kNStepQA; j++)  {
      fhQA[i][j] = 0x0;
    }
  }

  fhCutStatistics = 0;
  fhCutCorrelation = 0;
  fBitmap=new TBits(0);

  //set default bining for QA histograms
  SetHistogramBins(kCutP,200,0.,20.);
  SetHistogramBins(kCutPt,200,0.,20.);
  SetHistogramBins(kCutPx,400,-20.,20.);
  SetHistogramBins(kCutPy,400,-20.,20.);
  SetHistogramBins(kCutPz,400,-20.,20.);
  SetHistogramBins(kCutRapidity,200,-10.,10.);
  SetHistogramBins(kCutEta,200,-10.,10.);
  SetHistogramBins(kCutPhi,38,-0.6,7.);
  SetHistogramBins(kCutCharge,21,-10.5,10.5);
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::Copy(TObject &c) const
{
  //
  // Copy function
  //
  AliCFTrackKineCuts& target = (AliCFTrackKineCuts &) c;

  target.Initialise();

  if (fhCutStatistics)  target.fhCutStatistics = (TH1F*) fhCutStatistics->Clone();
  if (fhCutCorrelation) target.fhCutCorrelation = (TH2F*) fhCutCorrelation->Clone();

  for (Int_t i=0; i<kNHist; i++){
    for (Int_t j=0; j<kNStepQA; j++){
      if(fhQA[i][j]) target.fhQA[i][j] = (TH1F*)fhQA[i][j]->Clone();
    }
  }
  TNamed::Copy(c);
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::SelectionBitMap(TObject* obj) {
  //
  // test if the track passes the single cuts
  // and store the information in a bitmap
  //

  // bitmap stores the decision of each single cut
  for(Int_t i=0; i<kNCuts; i++)fBitmap->SetBitNumber(i,kFALSE);

  // check TObject and cast into VParticle
  if (!obj) return  ;
  if (!obj->InheritsFrom("AliVParticle")) AliError("object must derived from AliVParticle !");
  AliVParticle* particle = dynamic_cast<AliVParticle *>(obj);
  if ( !particle ) return;

  Int_t iCutBit = 0;
  if((particle->P() >= fMomentumMin) && (particle->P() <= fMomentumMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if ((particle->Pt() >= fPtMin) && (particle->Pt() <= fPtMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if ((particle->Px() >= fPxMin) && (particle->Px() <= fPxMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if ((particle->Py() >= fPyMin) && (particle->Py() <= fPyMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if ((particle->Pz() >= fPzMin) && (particle->Pz() <= fPzMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if ((particle->Eta() >= fEtaMin) && (particle->Eta() <= fEtaMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if ((particle->Y() >= fRapidityMin) && (particle->Y() <= fRapidityMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if ((particle->Phi() >= fPhiMin) && (particle->Phi() <= fPhiMax))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if (fCharge >= 10 || (particle->Charge() == fCharge))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if (fRequireIsCharged && particle->Charge()!=0)
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  if (!fRequireIsCharged)
	fBitmap->SetBitNumber(iCutBit,kTRUE);

  return;
}
//__________________________________________________________________________________
Bool_t AliCFTrackKineCuts::IsSelected(TObject* obj) {
  //
  // loops over decisions of single cuts and returns if the track is accepted
  //
  SelectionBitMap(obj);

  if (fIsQAOn) FillHistograms(obj,0);
  Bool_t isSelected = kTRUE;

  for (UInt_t icut=0; icut<fBitmap->GetNbits();icut++) {
    if(!fBitmap->TestBitNumber(icut)) {
	isSelected = kFALSE;
	break;
    }
  }
  if (!isSelected) return kFALSE ;
  if (fIsQAOn) FillHistograms(obj,1);
  return kTRUE;
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t *bins)
{
  //
  // variable bin size
  //
  if(!fIsQAOn) return;

  switch(index){
  case kCutP:
    fhNBinsMomentum=nbins+1;
    fhBinLimMomentum=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimMomentum[i]=bins[i];
    break;

  case kCutPt:
    fhNBinsPt=nbins+1;
    fhBinLimPt=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPt[i]=bins[i];
    break;

  case kCutPx:
    fhNBinsPx=nbins+1;
    fhBinLimPx=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPx[i]=bins[i];
    break;

  case kCutPy:
    fhNBinsPy=nbins+1;
    fhBinLimPy=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPy[i]=bins[i];
    break;

  case kCutPz:
    fhNBinsPz=nbins+1;
    fhBinLimPz=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPz[i]=bins[i];
    break;

  case kCutRapidity:
    fhNBinsRapidity=nbins+1;
    fhBinLimRapidity=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimRapidity[i]=bins[i];
    break;

  case kCutEta:
    fhNBinsEta=nbins+1;
    fhBinLimEta=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimEta[i]=bins[i];
    break;

  case kCutPhi:
    fhNBinsPhi=nbins+1;
    fhBinLimPhi=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPhi[i]=bins[i];
    break;

  case kCutCharge:
    fhNBinsCharge=nbins+1;
    fhBinLimCharge=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCharge[i]=bins[i];
    break;
  }
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin, Double_t xmax)
{
  //
  // fixed bin size
  //
  switch(index){
  case kCutP:
    fhNBinsMomentum=nbins+1;
    fhBinLimMomentum=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimMomentum[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutPt:
    fhNBinsPt=nbins+1;
    fhBinLimPt=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPt[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutPx:
    fhNBinsPx=nbins+1;
    fhBinLimPx=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPx[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutPy:
    fhNBinsPy=nbins+1;
    fhBinLimPy=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPy[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutPz:
    fhNBinsPz=nbins+1;
    fhBinLimPz=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPz[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutRapidity:
    fhNBinsRapidity=nbins+1;
    fhBinLimRapidity=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimRapidity[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutEta:
    fhNBinsEta=nbins+1;
    fhBinLimEta=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimEta[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutPhi:
    fhNBinsPhi=nbins+1;
    fhBinLimPhi=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimPhi[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

  case kCutCharge:
    fhNBinsCharge=nbins+1;
    fhBinLimCharge=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCharge[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;
  }
}
//__________________________________________________________________________________
 void AliCFTrackKineCuts::DefineHistograms() {
  //
  // histograms for cut variables, cut statistics and cut correlations
  //
  Int_t color = 2;

  // book cut statistics and cut correlation histograms
  fhCutStatistics = new TH1F(Form("%s_cut_statistics",GetName()), Form("%s cut statistics",GetName()), kNCuts,0.5,kNCuts+0.5);
  fhCutStatistics->SetLineWidth(2);
  fhCutStatistics->GetXaxis()->SetBinLabel(1,"p");
  fhCutStatistics->GetXaxis()->SetBinLabel(2,"pt");
  fhCutStatistics->GetXaxis()->SetBinLabel(3,"px");
  fhCutStatistics->GetXaxis()->SetBinLabel(4,"py");
  fhCutStatistics->GetXaxis()->SetBinLabel(5,"pz");
  fhCutStatistics->GetXaxis()->SetBinLabel(6,"eta");
  fhCutStatistics->GetXaxis()->SetBinLabel(7,"y");
  fhCutStatistics->GetXaxis()->SetBinLabel(8,"phi");
  fhCutStatistics->GetXaxis()->SetBinLabel(9,"charge");
  fhCutStatistics->GetXaxis()->SetBinLabel(10,"is charged");

  fhCutCorrelation = new TH2F(Form("%s_cut_correlation",GetName()), Form("%s cut  correlation",GetName()), kNCuts,0.5,kNCuts+0.5,kNCuts,0.5,kNCuts+0.5);
  fhCutCorrelation->SetLineWidth(2);
  fhCutCorrelation->GetXaxis()->SetBinLabel(1,"p");
  fhCutCorrelation->GetXaxis()->SetBinLabel(2,"pt");
  fhCutCorrelation->GetXaxis()->SetBinLabel(3,"px");
  fhCutCorrelation->GetXaxis()->SetBinLabel(4,"py");
  fhCutCorrelation->GetXaxis()->SetBinLabel(5,"pz");
  fhCutCorrelation->GetXaxis()->SetBinLabel(6,"eta");
  fhCutCorrelation->GetXaxis()->SetBinLabel(7,"y");
  fhCutCorrelation->GetXaxis()->SetBinLabel(8,"phi");
  fhCutCorrelation->GetXaxis()->SetBinLabel(9,"charge");
  fhCutCorrelation->GetXaxis()->SetBinLabel(10,"is charged");

  fhCutCorrelation->GetYaxis()->SetBinLabel(1,"p");
  fhCutCorrelation->GetYaxis()->SetBinLabel(2,"pt");
  fhCutCorrelation->GetYaxis()->SetBinLabel(3,"px");
  fhCutCorrelation->GetYaxis()->SetBinLabel(4,"py");
  fhCutCorrelation->GetYaxis()->SetBinLabel(5,"pz");
  fhCutCorrelation->GetYaxis()->SetBinLabel(6,"eta");
  fhCutCorrelation->GetYaxis()->SetBinLabel(7,"y");
  fhCutCorrelation->GetYaxis()->SetBinLabel(8,"phi");
  fhCutCorrelation->GetYaxis()->SetBinLabel(9,"charge");
  fhCutCorrelation->GetYaxis()->SetBinLabel(10,"is charged");


  // book QA histograms
  Char_t str[5];
  for (Int_t i=0; i<kNStepQA; i++) {
    if (i==0) snprintf(str,5," ");
    else snprintf(str,5,"_cut");
  
    fhQA[kCutP][i]	= new  TH1F(Form("%s_momentum%s",GetName(),str),	"",fhNBinsMomentum-1,fhBinLimMomentum);
    fhQA[kCutPt][i]	= new  TH1F(Form("%s_transverse_momentum%s",GetName(),str),"",fhNBinsPt-1,fhBinLimPt);
    fhQA[kCutPx][i]	= new  TH1F(Form("%s_px%s",GetName(),str),		"",fhNBinsPx-1,fhBinLimPx);
    fhQA[kCutPy][i]	= new  TH1F(Form("%s_py%s",GetName(),str),		"",fhNBinsPy-1,fhBinLimPy);
    fhQA[kCutPz][i]	= new  TH1F(Form("%s_pz%s",GetName(),str),		"",fhNBinsPz-1,fhBinLimPz);
    fhQA[kCutRapidity][i]=new  TH1F(Form("%s_rapidity%s",GetName(),str),	"",fhNBinsRapidity-1,fhBinLimRapidity);
    fhQA[kCutEta][i]	= new  TH1F(Form("%s_eta%s",GetName(),str),		"",fhNBinsEta-1,fhBinLimEta);
    fhQA[kCutPhi][i]	= new  TH1F(Form("%s_phi%s",GetName(),str),		"",fhNBinsPhi-1,fhBinLimPhi);
    fhQA[kCutCharge][i]	= new  TH1F(Form("%s_charge%s",GetName(),str),		"",fhNBinsCharge-1,fhBinLimCharge);

    fhQA[kCutP][i]	->SetXTitle("momentum p (GeV/c)");
    fhQA[kCutPt][i]	->SetXTitle("p_{T} (GeV/c)");
    fhQA[kCutPx][i]	->SetXTitle("p_{x} (GeV/c)");
    fhQA[kCutPy][i]	->SetXTitle("p_{y} (GeV/c)");
    fhQA[kCutPz][i]	->SetXTitle("p_{z} (GeV/c)");
    fhQA[kCutRapidity][i]->SetXTitle("rapidity y");
    fhQA[kCutEta][i]	->SetXTitle("pseudo rapidity #eta");
    fhQA[kCutPhi][i]	->SetXTitle("azimuth #phi (rad)");
    fhQA[kCutCharge][i]	->SetXTitle("charge");
  }
  for(Int_t i=0; i<kNHist; i++) fhQA[i][1]->SetLineColor(color);
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::FillHistograms(TObject* obj, Bool_t b)
{
  //
  // fill the QA histograms
  //

  // cast TObject into VParticle
  if (!obj) return;
  AliVParticle* particle = dynamic_cast<AliVParticle *>(obj);
  if ( !particle ) return;

  // b = 0: fill histograms before cuts
  // b = 1: fill histograms after cuts
  fhQA[kCutP][b]->Fill(particle->P());
  fhQA[kCutPt][b]->Fill(particle->Pt());
  fhQA[kCutPx][b]->Fill(particle->Px());
  fhQA[kCutPy][b]->Fill(particle->Py());
  fhQA[kCutPz][b]->Fill(particle->Pz());
  fhQA[kCutRapidity][b]->Fill(particle->Y());
  fhQA[kCutEta][b]->Fill(particle->Eta());
  fhQA[kCutPhi][b]->Fill(particle->Phi());
  fhQA[kCutCharge][b]->Fill((float)particle->Charge());

  // fill cut statistics and cut correlation histograms with information from the bitmap
  if (b) return;

  // Number of single cuts in this class
  UInt_t ncuts = fBitmap->GetNbits();
  for(UInt_t bit=0; bit<ncuts;bit++) {
    if (!fBitmap->TestBitNumber(bit)) {
      fhCutStatistics->Fill(bit+1);
      for (UInt_t bit2=bit; bit2<ncuts;bit2++) {
        if (!fBitmap->TestBitNumber(bit2)) 
          fhCutCorrelation->Fill(bit+1,bit2+1);
      }
    }
  }
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::SaveHistograms(const Char_t* dir) {
  //
  // saves the histograms in a directory (dir)
  //
  if(!fIsQAOn) return;

  if (!dir)
    dir = GetName();

  gDirectory->mkdir(dir);
  gDirectory->cd(dir);

  gDirectory->mkdir("before_cuts");
  gDirectory->mkdir("after_cuts");

  fhCutStatistics->Write();
  fhCutCorrelation->Write();

  for (Int_t j=0; j<kNStepQA; j++) {
    if (j==0)
      gDirectory->cd("before_cuts");
    else
      gDirectory->cd("after_cuts");

    for(Int_t i=0; i<kNHist; i++) fhQA[i][j]->Write();

    gDirectory->cd("../");
  }
  gDirectory->cd("../");
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::DrawHistograms(Bool_t drawLogScale)
{
  //
  // draws some histograms
  //
  if(!fIsQAOn) return;

  // pad margins
  Float_t right = 0.03;
  Float_t left = 0.175;
  Float_t top = 0.03;
  Float_t bottom = 0.175;

  TCanvas* canvas1 = new TCanvas("Track_QA_Kinematics_1", "Track QA Kinematics 1", 800, 500);
  canvas1->Divide(2, 1);

  canvas1->cd(1);
  fhCutStatistics->SetStats(kFALSE);
  fhCutStatistics->LabelsOption("v");
  gPad->SetLeftMargin(left);
  gPad->SetBottomMargin(0.25);
  gPad->SetRightMargin(right);
  gPad->SetTopMargin(0.1);
  fhCutStatistics->Draw();

  canvas1->cd(2);
  fhCutCorrelation->SetStats(kFALSE);
  fhCutCorrelation->LabelsOption("v");
  gPad->SetLeftMargin(0.30);
  gPad->SetRightMargin(bottom);
  gPad->SetTopMargin(0.1);
  gPad->SetBottomMargin(0.25);
  fhCutCorrelation->Draw("COLZ");

  canvas1->SaveAs(Form("%s.eps", canvas1->GetName()));
  canvas1->SaveAs(Form("%s.ps", canvas1->GetName()));

  // -----

  TCanvas* canvas2 = new TCanvas("Track_QA_Kinematics_2", "Track QA Kinematics 2", 1600, 800);
  canvas2->Divide(4, 2);

  canvas2->cd(1);
  fhQA[kCutP][0]->SetStats(kFALSE);
  if(drawLogScale) gPad->SetLogy();
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutP][0]->Draw();
  fhQA[kCutP][1]->Draw("same");

  canvas2->cd(2);
  fhQA[kCutPt][0]->SetStats(kFALSE);
  if(drawLogScale) gPad->SetLogy();
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutPt][0]->Draw();
  fhQA[kCutPt][1]->Draw("same");

  canvas2->cd(3);
  fhQA[kCutRapidity][0]->SetStats(kFALSE);
  if(drawLogScale) gPad->SetLogy();
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutRapidity][0]->Draw();
  fhQA[kCutRapidity][1]->Draw("same");

  canvas2->cd(4);
  fhQA[kCutEta][0]->SetStats(kFALSE);
  if(drawLogScale) gPad->SetLogy();
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutEta][0]->Draw();
  fhQA[kCutEta][1]->Draw("same");

  canvas2->cd(5);
  fhQA[kCutPx][0]->SetStats(kFALSE);
  if(drawLogScale) gPad->SetLogy();
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutPx][0]->Draw();
  fhQA[kCutPx][1]->Draw("same");

  canvas2->cd(6);
  fhQA[kCutPy][0]->SetStats(kFALSE);
  if(drawLogScale) gPad->SetLogy();
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutPy][0]->Draw();
  fhQA[kCutPy][1]->Draw("same");

  canvas2->cd(7);
  fhQA[kCutPz][0]->SetStats(kFALSE);
  if(drawLogScale) gPad->SetLogy();
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutPz][0]->Draw();
  fhQA[kCutPz][1]->Draw("same");

  canvas2->SaveAs(Form("%s.eps", canvas2->GetName()));
  canvas2->SaveAs(Form("%s.ps", canvas2->GetName()));

  // -----

  TCanvas* canvas3 = new TCanvas("Track_QA_Kinematics_3", "Track QA Kinematics 3", 800, 400);
  canvas3->Divide(2, 1);

  canvas3->cd(1);
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutPhi][0]->SetStats(kFALSE);
  fhQA[kCutPhi][0]->Draw();
  fhQA[kCutPhi][1]->Draw("same");

  canvas3->cd(2);
  gPad->SetRightMargin(right);
  gPad->SetLeftMargin(left);
  gPad->SetTopMargin(top);
  gPad->SetBottomMargin(bottom);
  fhQA[kCutCharge][0]->SetStats(kFALSE);
  fhQA[kCutCharge][0]->Draw();
  fhQA[kCutCharge][1]->Draw("same");

  canvas3->SaveAs(Form("%s.eps", canvas3->GetName()));
  canvas3->SaveAs(Form("%s.ps", canvas3->GetName()));
}
//__________________________________________________________________________________
void AliCFTrackKineCuts::AddQAHistograms(TList *qaList) {
  //
  // saves the histograms in a TList
  //
  DefineHistograms();

  qaList->Add(fhCutStatistics);
  qaList->Add(fhCutCorrelation);

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