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 AliCFTrackIsPrimaryCut is designed to select reconstructed tracks
// with a small impact parameter and tracks which are (not) daughters of kink
// decays 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, 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:
// - min. and max. distance to main vertex in transverse plane (xy)
// - min. and max. longitudinal distance to main vertex (z)
// - min. and max. distance to main vertex as ellpise in xy - z plane
// - all above cuts on absolute values or in units of sigma (resolution)
// - min. and max. distance to main vertex in units of sigma (resolution)
// - max. transverse (xy) and longitudinal (z) impact parameter resolution
// - require that the dca calculation doesn't fail
// - accept or not accept daughter tracks of kink decays
//
// By default, the distance to 'vertex calculated from tracks' is used.
// Optionally the SPD (tracklet based) or TPC (TPC only tracks based) vertex
// can be used.
// Note: the distance to the TPC-vertex is already stored in the ESD,
// the distance to the SPD-vertex has to be re-calculated by propagating each
// track while executing this cut.
//
// 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 <AliESDtrack.h>
#include <AliAODTrack.h>
#include <AliESDEvent.h>
#include <AliAODEvent.h>
#include <AliLog.h>
#include "AliCFTrackIsPrimaryCuts.h"

ClassImp(AliCFTrackIsPrimaryCuts)

//__________________________________________________________________________________
AliCFTrackIsPrimaryCuts::AliCFTrackIsPrimaryCuts() :
  AliCFCutBase(),
  fEvt(0x0),
  fUseSPDvertex(0),
  fUseTPCvertex(0),
  fMinDCAToVertexXY(0),
  fMinDCAToVertexZ(0),
  fMaxDCAToVertexXY(0),
  fMaxDCAToVertexZ(0),
  fDCAToVertex2D(0),
  fAbsDCAToVertex(0),
  fNSigmaToVertexMin(0),
  fNSigmaToVertexMax(0),
  fSigmaDCAxy(0),
  fSigmaDCAz(0),
  fRequireSigmaToVertex(0),
  fAODType(AliAODTrack::kUndef),
  fAcceptKinkDaughters(0),
  fhCutStatistics(0),
  fhCutCorrelation(0),
  fBitmap(0x0),
  fhNBinsNSigma(0),
  fhNBinsRequireSigma(0),
  fhNBinsAcceptKink(0),
  fhNBinsDcaXY(0),
  fhNBinsDcaZ(0),
  fhNBinsDcaXYnorm(0),
  fhNBinsDcaZnorm(0),
  fhNBinsSigmaDcaXY(0),
  fhNBinsSigmaDcaZ(0),
  fhBinLimNSigma(0x0),
  fhBinLimRequireSigma(0x0),
  fhBinLimAcceptKink(0x0),
  fhBinLimDcaXY(0x0),
  fhBinLimDcaZ(0x0),
  fhBinLimDcaXYnorm(0x0),
  fhBinLimDcaZnorm(0x0),
  fhBinLimSigmaDcaXY(0x0),
  fhBinLimSigmaDcaZ(0x0)
{
  //
  // Default constructor
  //
  Initialise();
}
//__________________________________________________________________________________
AliCFTrackIsPrimaryCuts::AliCFTrackIsPrimaryCuts(Char_t* name, Char_t* title) :
  AliCFCutBase(name,title),
  fEvt(0x0),
  fUseSPDvertex(0),
  fUseTPCvertex(0),
  fMinDCAToVertexXY(0),
  fMinDCAToVertexZ(0),
  fMaxDCAToVertexXY(0),
  fMaxDCAToVertexZ(0),
  fDCAToVertex2D(0),
  fAbsDCAToVertex(0),
  fNSigmaToVertexMin(0),
  fNSigmaToVertexMax(0),
  fSigmaDCAxy(0),
  fSigmaDCAz(0),
  fRequireSigmaToVertex(0),
  fAODType(AliAODTrack::kUndef),
  fAcceptKinkDaughters(0),
  fhCutStatistics(0),
  fhCutCorrelation(0),
  fBitmap(0x0),
  fhNBinsNSigma(0),
  fhNBinsRequireSigma(0),
  fhNBinsAcceptKink(0),
  fhNBinsDcaXY(0),
  fhNBinsDcaZ(0),
  fhNBinsDcaXYnorm(0),
  fhNBinsDcaZnorm(0),
  fhNBinsSigmaDcaXY(0),
  fhNBinsSigmaDcaZ(0),
  fhBinLimNSigma(0x0),
  fhBinLimRequireSigma(0x0),
  fhBinLimAcceptKink(0x0),
  fhBinLimDcaXY(0x0),
  fhBinLimDcaZ(0x0),
  fhBinLimDcaXYnorm(0x0),
  fhBinLimDcaZnorm(0x0),
  fhBinLimSigmaDcaXY(0x0),
  fhBinLimSigmaDcaZ(0x0)
{
  //
  // Constructor
  //
  Initialise();
}
//__________________________________________________________________________________
AliCFTrackIsPrimaryCuts::AliCFTrackIsPrimaryCuts(const AliCFTrackIsPrimaryCuts& c) :
  AliCFCutBase(c),
  fEvt(c.fEvt),
  fUseSPDvertex(c.fUseSPDvertex),
  fUseTPCvertex(c.fUseTPCvertex),
  fMinDCAToVertexXY(c.fMinDCAToVertexXY),
  fMinDCAToVertexZ(c.fMinDCAToVertexZ),
  fMaxDCAToVertexXY(c.fMaxDCAToVertexXY),
  fMaxDCAToVertexZ(c.fMaxDCAToVertexZ),
  fDCAToVertex2D(c.fDCAToVertex2D),
  fAbsDCAToVertex(c.fAbsDCAToVertex),
  fNSigmaToVertexMin(c.fNSigmaToVertexMin),
  fNSigmaToVertexMax(c.fNSigmaToVertexMax),
  fSigmaDCAxy(c.fSigmaDCAxy),
  fSigmaDCAz(c.fSigmaDCAz),
  fRequireSigmaToVertex(c.fRequireSigmaToVertex),
  fAODType(c.fAODType),
  fAcceptKinkDaughters(c.fAcceptKinkDaughters),
  fhCutStatistics(c.fhCutStatistics),
  fhCutCorrelation(c.fhCutCorrelation),
  fBitmap(c.fBitmap),
  fhNBinsNSigma(c.fhNBinsNSigma),
  fhNBinsRequireSigma(c.fhNBinsRequireSigma),
  fhNBinsAcceptKink(c.fhNBinsAcceptKink),
  fhNBinsDcaXY(c.fhNBinsDcaXY),
  fhNBinsDcaZ(c.fhNBinsDcaZ),
  fhNBinsDcaXYnorm(c.fhNBinsDcaXYnorm),
  fhNBinsDcaZnorm(c.fhNBinsDcaZnorm),
  fhNBinsSigmaDcaXY(c.fhNBinsSigmaDcaXY),
  fhNBinsSigmaDcaZ(c.fhNBinsSigmaDcaZ),
  fhBinLimNSigma(c.fhBinLimNSigma),
  fhBinLimRequireSigma(c.fhBinLimRequireSigma),
  fhBinLimAcceptKink(c.fhBinLimAcceptKink),
  fhBinLimDcaXY(c.fhBinLimDcaXY),
  fhBinLimDcaZ(c.fhBinLimDcaZ),
  fhBinLimDcaXYnorm(c.fhBinLimDcaXYnorm),
  fhBinLimDcaZnorm(c.fhBinLimDcaZnorm),
  fhBinLimSigmaDcaXY(c.fhBinLimSigmaDcaXY),
  fhBinLimSigmaDcaZ(c.fhBinLimSigmaDcaZ)
{
  //
  // copy constructor
  //
  ((AliCFTrackIsPrimaryCuts &) c).Copy(*this);
}
//__________________________________________________________________________________
AliCFTrackIsPrimaryCuts& AliCFTrackIsPrimaryCuts::operator=(const AliCFTrackIsPrimaryCuts& c)
{
  //
  // Assignment operator
  //
  if (this != &c) {
    AliCFCutBase::operator=(c) ;
    fEvt = c.fEvt;
    fUseSPDvertex = c.fUseSPDvertex;
    fUseTPCvertex = c.fUseTPCvertex;
    fMinDCAToVertexXY = c.fMinDCAToVertexXY;
    fMinDCAToVertexZ = c.fMinDCAToVertexZ;
    fMaxDCAToVertexXY = c.fMaxDCAToVertexXY;
    fMaxDCAToVertexZ = c.fMaxDCAToVertexZ;
    fDCAToVertex2D = c.fDCAToVertex2D;
    fAbsDCAToVertex = c.fAbsDCAToVertex;
    fNSigmaToVertexMin = c.fNSigmaToVertexMin ;
    fNSigmaToVertexMax = c.fNSigmaToVertexMax ;
    fSigmaDCAxy = c.fSigmaDCAxy ;
    fSigmaDCAz = c.fSigmaDCAz ;
    fRequireSigmaToVertex = c.fRequireSigmaToVertex ;
    fAODType = c.fAODType ;
    fAcceptKinkDaughters = c.fAcceptKinkDaughters ;
    fhCutStatistics = c.fhCutStatistics ;
    fhCutCorrelation = c.fhCutCorrelation ;
    fBitmap =  c.fBitmap;
    fhNBinsNSigma = c.fhNBinsNSigma;
    fhNBinsRequireSigma = c.fhNBinsRequireSigma;
    fhNBinsAcceptKink = c.fhNBinsAcceptKink;
    fhNBinsDcaXY = c.fhNBinsDcaXY;
    fhNBinsDcaZ = c.fhNBinsDcaZ;
    fhNBinsDcaXYnorm = c.fhNBinsDcaXYnorm;
    fhNBinsDcaZnorm = c.fhNBinsDcaZnorm;
    fhNBinsSigmaDcaXY = c.fhNBinsSigmaDcaXY;
    fhNBinsSigmaDcaZ = c.fhNBinsSigmaDcaZ;
    fhBinLimNSigma = c.fhBinLimNSigma;
    fhBinLimRequireSigma = c.fhBinLimRequireSigma;
    fhBinLimAcceptKink = c.fhBinLimAcceptKink;
    fhBinLimDcaXY = c.fhBinLimDcaXY;
    fhBinLimDcaZ = c.fhBinLimDcaZ;
    fhBinLimDcaXYnorm = c.fhBinLimDcaXYnorm;
    fhBinLimDcaZnorm = c.fhBinLimDcaZnorm;
    fhBinLimSigmaDcaXY = c.fhBinLimSigmaDcaXY;
    fhBinLimSigmaDcaZ = c.fhBinLimSigmaDcaZ;

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

  for (Int_t j=0; j<kNStepQA; j++){
    if(fhDcaXYvsDcaZ[j])	delete fhDcaXYvsDcaZ[j];
    for (Int_t i=0; i<kNHist; i++)
      if(fhQA[i][j]) 		delete fhQA[i][j];
  }
  if(fEvt) 			delete fEvt;
  if(fBitmap) 			delete fBitmap;
  if(fhBinLimNSigma) 		delete fhBinLimNSigma;
  if(fhBinLimRequireSigma) 	delete fhBinLimRequireSigma;
  if(fhBinLimAcceptKink) 	delete fhBinLimAcceptKink;
  if(fhBinLimDcaXY) 		delete fhBinLimDcaXY;
  if(fhBinLimDcaZ) 		delete fhBinLimDcaZ;
  if(fhBinLimDcaXYnorm) 	delete fhBinLimDcaXYnorm;
  if(fhBinLimDcaZnorm) 		delete fhBinLimDcaZnorm;
  if(fhBinLimSigmaDcaXY) 	delete fhBinLimSigmaDcaXY;
  if(fhBinLimSigmaDcaZ) 	delete fhBinLimSigmaDcaZ;
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::Initialise()
{
  //
  // sets everything to zero
  //
  fUseSPDvertex = 0;
  fUseTPCvertex = 0;
  fMinDCAToVertexXY = 0;
  fMinDCAToVertexZ = 0;
  fMaxDCAToVertexXY = 0;
  fMaxDCAToVertexZ = 0;
  fDCAToVertex2D = 0;
  fAbsDCAToVertex = 0;
  fNSigmaToVertexMin = 0;
  fNSigmaToVertexMax = 0;
  fSigmaDCAxy = 0;
  fSigmaDCAz = 0;
  fRequireSigmaToVertex = 0;
  fAcceptKinkDaughters = 0;
  fAODType = AliAODTrack::kUndef;

  SetMinDCAToVertexXY();
  SetMinDCAToVertexZ();
  SetMaxDCAToVertexXY();
  SetMaxDCAToVertexZ();
  SetDCAToVertex2D();
  SetAbsDCAToVertex();
  SetMinNSigmaToVertex();
  SetMaxNSigmaToVertex();
  SetMaxSigmaDCAxy();
  SetMaxSigmaDCAz();
  SetRequireSigmaToVertex();
  SetAcceptKinkDaughters();
  SetAODType();

  for (Int_t j=0; j<6; j++) fDCA[j] = 0.;
  for (Int_t j=0; j<kNStepQA; j++)  {
    fhDcaXYvsDcaZ[j] = 0x0;
    for (Int_t i=0; i<kNHist; i++)
      fhQA[i][j] = 0x0;
  }
  fhCutStatistics = 0;
  fhCutCorrelation = 0;
  fBitmap=new TBits(0);

  //set default bining for QA histograms
  SetHistogramBins(kCutNSigmaToVertex,100,0.,10.);
  SetHistogramBins(kCutRequireSigmaToVertex,5,-0.75,1.75);
  SetHistogramBins(kCutAcceptKinkDaughters,5,-0.75,1.75);
  SetHistogramBins(kDcaXY,500,-10.,10.);
  SetHistogramBins(kDcaZ,500,-10.,10.);
  SetHistogramBins(kDcaXYnorm,500,-10.,10.);
  SetHistogramBins(kDcaZnorm,500,-10.,10.);
  SetHistogramBins(kSigmaDcaXY,500,-0.1,0.9);
  SetHistogramBins(kSigmaDcaZ,500,-0.1,0.9);
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::Copy(TObject &c) const
{
  //
  // Copy function
  //
  AliCFTrackIsPrimaryCuts& target = (AliCFTrackIsPrimaryCuts &) c;

  target.Initialise();

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

  for (Int_t j=0; j<6; j++) target.fDCA[j] = fDCA[j];
  for (Int_t j=0; j<kNStepQA; j++){
    if(fhDcaXYvsDcaZ[j]) target.fhDcaXYvsDcaZ[j] = (TH2F*)fhDcaXYvsDcaZ[j]->Clone();
    for (Int_t i=0; i<kNHist; i++)
      if(fhQA[i][j]) target.fhQA[i][j] = (TH1F*)fhQA[i][j]->Clone();
  }
  TNamed::Copy(c);
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::SetRecEventInfo(const TObject* evt) {
  //
  // Sets pointer to event information (AliESDEvent or AliAODEvent)
  //
  if (!evt) {
    AliError("Pointer to AliVEvent !");
    return;
  }
  TString className(evt->ClassName());
  if (! (className.CompareTo("AliESDEvent")==0 || className.CompareTo("AliAODEvent")==0)) {
    AliError("argument must point to an AliESDEvent or AliAODEvent !");
    return ;
  }
  fEvt = (AliVEvent*) evt;
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::UseSPDvertex(Bool_t b) {
  fUseSPDvertex = b;
  if(fUseTPCvertex && fUseSPDvertex) {
	fUseSPDvertex = kFALSE;
	AliError("SPD and TPC vertex chosen. TPC vertex is preferred.");
  }
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::UseTPCvertex(Bool_t b) {
  fUseTPCvertex = b;
  if(fUseTPCvertex) fUseSPDvertex = kFALSE;
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::GetDCA(AliESDtrack* esdTrack)
{
  if (!esdTrack) return;

  Float_t b[2] = {0.,0.};
  Float_t bCov[3] = {0.,0.,0.};
  if(!fUseSPDvertex && !fUseTPCvertex)	esdTrack->GetImpactParameters(b,bCov);
  if( fUseTPCvertex)			esdTrack->GetImpactParametersTPC(b,bCov);

  if( fUseSPDvertex) {
	if (!fEvt) return;
	AliESDEvent * evt = 0x0 ; 
	evt = dynamic_cast<AliESDEvent*>(fEvt);
	if (!evt) {
	  AliError("event not found");
	  return;
	}
	const AliESDVertex *vtx = evt->GetVertex();
	const Double_t Bz = evt->GetMagneticField();
	AliExternalTrackParam *cParam = 0;
	Bool_t success = esdTrack->RelateToVertex(vtx, Bz, kVeryBig, cParam);
	if (success) esdTrack->GetImpactParameters(b,bCov);
  }

  if (bCov[0]<=0 || bCov[2]<=0) {
      bCov[0]=0; bCov[2]=0;
  }
  fDCA[0] = b[0]; // impact parameter xy
  fDCA[1] = b[1]; // impact parameter z
  fDCA[2] = TMath::Sqrt(bCov[0]); // resolution xy
  fDCA[3] = TMath::Sqrt(bCov[2]); // resolution z

  if (!fAbsDCAToVertex) {
	if (fDCA[2] > 0) fDCA[0] = fDCA[0]/fDCA[2]; // normalised impact parameter xy
	if (fDCA[3] > 0) fDCA[1] = fDCA[1]/fDCA[3]; // normalised impact parameter z
  }

  // get n_sigma
  if(!fUseSPDvertex && !fUseTPCvertex)
	fDCA[5] = AliESDtrackCuts::GetSigmaToVertex(esdTrack);

  if(fUseTPCvertex) {
	fDCA[5] = -1;
	if (fDCA[2]==0 || fDCA[3]==0)
	  return;
	fDCA[5] = 1000.;
	Float_t d = TMath::Sqrt(TMath::Power(b[0]/fDCA[2],2) + TMath::Power(b[1]/fDCA[3],2));
	if (TMath::Exp(-d * d / 2) < 1e-15)
	  return;
	fDCA[5] = TMath::ErfInverse(1 - TMath::Exp(-d * d / 2)) * TMath::Sqrt(2);
  }
  return;
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::GetDCA(AliAODTrack* aodTrack)
{
  if (!aodTrack) return;

  Double_t p[3] = {0.,0.,0.};
  Double_t cov[21] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};

  aodTrack->XYZAtDCA(p); // position at DCA
  aodTrack->GetCovarianceXYZPxPyPz(cov);


  fDCA[5] = -1; // n_sigma
  if (p[0]==-999. || p[1]==-999. ||  p[2]==-999.) {
    AliError("dca info not available !");
    fDCA[0] = -999.; // impact parameter xy
    fDCA[1] = -999.; // impact parameter z
    return;
  }

  AliAODEvent * evt = 0x0;
  evt = dynamic_cast<AliAODEvent*>(fEvt);
  if (!evt) return;

  // primary vertex is the "best": tracks, SPD or TPC vertex
  AliAODVertex * primaryVertex = evt->GetVertex(0);
  // dca = track postion - primary vertex position
  p[0] = p[0] - primaryVertex->GetX();
  p[1] = p[1] - primaryVertex->GetY();
  p[2] = p[2] - primaryVertex->GetZ();
  // calculate dca in transverse plane
  Float_t b[2] = {0.,0.};
  b[0] = TMath::Sqrt(p[0]*p[0]+p[1]*p[1]);
  b[1] = p[2];
  // resolution
  Double_t bCov[3] = {0.,0.,0.};
  // how to calculate the resoultion in the transverse plane ?
  bCov[0] = 0.; // to do: calculate cov in transverse plane
  bCov[2] = 0.; // from cov in x and y, need to know correlation

  if (bCov[0]<=0 || bCov[2]<=0) {
      bCov[0]=0; bCov[2]=0;
  }
  fDCA[0] = b[0]; // impact parameter xy
  fDCA[1] = b[1]; // impact parameter z
  fDCA[2] = TMath::Sqrt(bCov[0]); // resolution xy
  fDCA[3] = TMath::Sqrt(bCov[2]); // resolution z

  if (!fAbsDCAToVertex) {
	AliError("resolution of impact parameter not available, use absolute dca cut instead !");
	if (fDCA[2] > 0) fDCA[0] = fDCA[0]/fDCA[2]; // normalised impact parameter xy
	if (fDCA[3] > 0) fDCA[1] = fDCA[1]/fDCA[3]; // normalised impact parameter z
  }

  // get n_sigma
  if (fDCA[2]==0 || fDCA[3]==0)
	return;
  fDCA[5] = 1000.;
  Float_t d = TMath::Sqrt(TMath::Power(b[0]/fDCA[2],2) + TMath::Power(b[1]/fDCA[3],2));
  if (TMath::Exp(-d * d / 2) < 1e-15)
	return;
  fDCA[5] = TMath::ErfInverse(1 - TMath::Exp(-d * d / 2)) * TMath::Sqrt(2);

  return;
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::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 ESDtrack
  if (!obj) return;
  if (!obj->InheritsFrom("AliVParticle")) {
    AliError("object must derived from AliVParticle !");
    return;
  }
  
  AliESDtrack * esdTrack = dynamic_cast<AliESDtrack*>(obj);
  AliAODTrack * aodTrack = dynamic_cast<AliAODTrack*>(obj);

  if (!(esdTrack || aodTrack)) {
    AliError("object must be an ESDtrack or an AODtrack !");
    return;
  }

  Bool_t isESDTrack = kFALSE;
  Bool_t isAODTrack = kFALSE;

  if (esdTrack) isESDTrack = strcmp(obj->ClassName(),"AliESDtrack") == 0 ? kTRUE : kFALSE ;
  if (aodTrack) isAODTrack = strcmp(obj->ClassName(),"AliAODTrack") == 0 ? kTRUE : kFALSE ;

  // get the track to vertex parameter for ESD track
  if (isESDTrack) GetDCA(esdTrack);
  if (isAODTrack) GetDCA(aodTrack);

  // check whether dca info is filled
  Bool_t dcaInfo = 0;
  if (fDCA[0]>-990. && fDCA[1]>-990.) dcaInfo = 1;

  Float_t bxy = 0, bz = 0;
  bxy = TMath::Abs(fDCA[0]);
  bz  = TMath::Abs(fDCA[1]);

  Float_t b2Dmin = 0, b2Dmax = 0;
  if (fMinDCAToVertexXY>0 && fMinDCAToVertexZ>0)
    b2Dmin = fDCA[0]*fDCA[0]/fMinDCAToVertexXY/fMinDCAToVertexXY + fDCA[1]*fDCA[1]/fMinDCAToVertexZ/fMinDCAToVertexZ;
  if (fMaxDCAToVertexXY>0 && fMaxDCAToVertexZ>0) 
    b2Dmax = fDCA[0]*fDCA[0]/fMaxDCAToVertexXY/fMaxDCAToVertexXY + fDCA[1]*fDCA[1]/fMaxDCAToVertexZ/fMaxDCAToVertexZ;


  // fill the bitmap
  Int_t iCutBit = 0;

  if (!dcaInfo || fDCAToVertex2D || (!fDCAToVertex2D && bxy >= fMinDCAToVertexXY && bxy <= fMaxDCAToVertexXY))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (!dcaInfo || fDCAToVertex2D || (!fDCAToVertex2D && bz  >= fMinDCAToVertexZ && bz  <= fMaxDCAToVertexZ))
	fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (!dcaInfo || !fDCAToVertex2D || (fDCAToVertex2D && TMath::Sqrt(b2Dmin) > 1  && TMath::Sqrt(b2Dmax) < 1))
      fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (!dcaInfo || (fDCA[5] >= fNSigmaToVertexMin && fDCA[5] <= fNSigmaToVertexMax))
      fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (!dcaInfo || fDCA[2] < fSigmaDCAxy)
      fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (!dcaInfo || fDCA[3] < fSigmaDCAz)
      fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (!dcaInfo || !fRequireSigmaToVertex || (fDCA[5]>=0 && fRequireSigmaToVertex))
      fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (!dcaInfo || fAcceptKinkDaughters || (!fAcceptKinkDaughters && esdTrack->GetKinkIndex(0)<=0))
      fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

  if (isAODTrack) {
    if (fAODType==AliAODTrack::kUndef || fAODType == aodTrack->GetType()) {
      fBitmap->SetBitNumber(iCutBit,kTRUE);
    }
  }
  else fBitmap->SetBitNumber(iCutBit,kTRUE);

  return;
}
//__________________________________________________________________________________
Bool_t AliCFTrackIsPrimaryCuts::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 AliCFTrackIsPrimaryCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t *bins)
{
  //
  // variable bin size
  //
  if(!fIsQAOn) return;

  switch(index){
  case kCutNSigmaToVertex:
    fhNBinsNSigma=nbins+1;
    fhBinLimNSigma=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimNSigma[i]=bins[i];
    break;

  case kCutRequireSigmaToVertex:
    fhNBinsRequireSigma=nbins+1;
    fhBinLimRequireSigma=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimRequireSigma[i]=bins[i];
    break;

  case kCutAcceptKinkDaughters:
    fhNBinsAcceptKink=nbins+1;
    fhBinLimAcceptKink=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimAcceptKink[i]=bins[i];
    break;

  case kDcaXY:
    fhNBinsDcaXY=nbins+1;
    fhBinLimDcaXY=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimDcaXY[i]=bins[i];
    break;

  case kDcaZ:
    fhNBinsDcaZ=nbins+1;
    fhBinLimDcaZ=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimDcaZ[i]=bins[i];
    break;

  case kDcaXYnorm:
    fhNBinsDcaXYnorm=nbins+1;
    fhBinLimDcaXYnorm=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimDcaXYnorm[i]=bins[i];
    break;

  case kDcaZnorm:
    fhNBinsDcaZnorm=nbins+1;
    fhBinLimDcaZnorm=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimDcaZnorm[i]=bins[i];
    break;

  case kSigmaDcaXY:
    fhNBinsSigmaDcaXY=nbins+1;
    fhBinLimSigmaDcaXY=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimSigmaDcaXY[i]=bins[i];
    break;

  case kSigmaDcaZ:
    fhNBinsSigmaDcaZ=nbins+1;
    fhBinLimSigmaDcaZ=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimSigmaDcaZ[i]=bins[i];
    break;
  }
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin, Double_t xmax)
{
  //
  // fixed bin size
  //
  switch(index){
  case kCutNSigmaToVertex:
    fhNBinsNSigma=nbins+1;
    fhBinLimNSigma=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimNSigma[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

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

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

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

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

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

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

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

  case kSigmaDcaZ:
    fhNBinsSigmaDcaZ=nbins+1;
    fhBinLimSigmaDcaZ=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimSigmaDcaZ[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;
  }
}
//__________________________________________________________________________________
 void AliCFTrackIsPrimaryCuts::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,"dca xy");
  fhCutStatistics->GetXaxis()->SetBinLabel(2,"dca z");
  fhCutStatistics->GetXaxis()->SetBinLabel(3,"dca ellipse");
  fhCutStatistics->GetXaxis()->SetBinLabel(4,"n dca");
  fhCutStatistics->GetXaxis()->SetBinLabel(5,"sigma dca xy");
  fhCutStatistics->GetXaxis()->SetBinLabel(6,"sigma dca z");
  fhCutStatistics->GetXaxis()->SetBinLabel(7,"require dca");
  fhCutStatistics->GetXaxis()->SetBinLabel(8,"kink daughter");
  fhCutStatistics->GetXaxis()->SetBinLabel(9,"AOD type");

  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,"dca xy");
  fhCutCorrelation->GetXaxis()->SetBinLabel(2,"dca z");
  fhCutCorrelation->GetXaxis()->SetBinLabel(3,"dca ellipse");
  fhCutCorrelation->GetXaxis()->SetBinLabel(4,"n dca");
  fhCutCorrelation->GetXaxis()->SetBinLabel(5,"sigma dca xy");
  fhCutCorrelation->GetXaxis()->SetBinLabel(6,"sigma dca z");
  fhCutCorrelation->GetXaxis()->SetBinLabel(7,"require dca");
  fhCutCorrelation->GetXaxis()->SetBinLabel(8,"kink daughter");
  fhCutCorrelation->GetXaxis()->SetBinLabel(9,"AOD type");

  fhCutCorrelation->GetYaxis()->SetBinLabel(1,"dca xy");
  fhCutCorrelation->GetYaxis()->SetBinLabel(2,"dca z");
  fhCutCorrelation->GetYaxis()->SetBinLabel(3,"dca ellipse");
  fhCutCorrelation->GetYaxis()->SetBinLabel(4,"n dca");
  fhCutCorrelation->GetYaxis()->SetBinLabel(5,"sigma dca xy");
  fhCutCorrelation->GetYaxis()->SetBinLabel(6,"sigma dca z");
  fhCutCorrelation->GetYaxis()->SetBinLabel(7,"require dca");
  fhCutCorrelation->GetYaxis()->SetBinLabel(8,"kink daughter");
  fhCutCorrelation->GetYaxis()->SetBinLabel(9,"AOD type");

  // 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");

    fhDcaXYvsDcaZ[i]            = new  TH2F(Form("%s_dcaXYvsDcaZ%s",GetName(),str),"",200,-10,10,200,-10,10);
    fhQA[kCutNSigmaToVertex][i]	= new TH1F(Form("%s_nSigmaToVertex%s",GetName(),str),"",fhNBinsNSigma-1,fhBinLimNSigma);
    fhQA[kCutRequireSigmaToVertex][i] = new TH1F(Form("%s_requireSigmaToVertex%s",GetName(),str),"",fhNBinsRequireSigma-1,fhBinLimRequireSigma);
    fhQA[kCutAcceptKinkDaughters][i] = new TH1F(Form("%s_acceptKinkDaughters%s",GetName(),str),"",fhNBinsAcceptKink-1,fhBinLimAcceptKink);
    fhQA[kDcaXY][i]		= new TH1F(Form("%s_dcaXY%s",GetName(),str),"",fhNBinsDcaXY-1,fhBinLimDcaXY);
    fhQA[kDcaZ][i]		= new TH1F(Form("%s_dcaZ%s",GetName(),str),"",fhNBinsDcaZ-1,fhBinLimDcaZ);
    fhQA[kDcaXYnorm][i]		= new TH1F(Form("%s_dcaXYnorm%s",GetName(),str),"",fhNBinsDcaXYnorm-1,fhBinLimDcaXYnorm);
    fhQA[kDcaZnorm][i]		= new TH1F(Form("%s_dcaZnorm%s",GetName(),str),"",fhNBinsDcaZnorm-1,fhBinLimDcaZnorm);
    fhQA[kSigmaDcaXY][i]	= new TH1F(Form("%s_sigmaDcaXY%s",GetName(),str),"",fhNBinsSigmaDcaXY-1,fhBinLimSigmaDcaXY);
    fhQA[kSigmaDcaZ][i]		= new TH1F(Form("%s_sigmaDcaZ%s",GetName(),str),"",fhNBinsSigmaDcaZ-1,fhBinLimSigmaDcaZ);

    fhDcaXYvsDcaZ[i]->SetXTitle("impact par. d_{z}");
    fhDcaXYvsDcaZ[i]->SetYTitle("impact par. d_{xy}");

    fhQA[kCutNSigmaToVertex][i]->SetXTitle("n #sigma to vertex");
    fhQA[kCutRequireSigmaToVertex][i]->SetXTitle("require #sigma to vertex");
    fhQA[kCutAcceptKinkDaughters][i]->SetXTitle("accept kink daughters");
    fhQA[kDcaXY][i]->SetXTitle("impact par. d_{xy}");
    fhQA[kDcaZ][i]->SetXTitle("impact par. d_{z}");
    fhQA[kDcaXYnorm][i]->SetXTitle("norm. impact par. d_{xy} / #sigma_{xy}");
    fhQA[kDcaZnorm][i]->SetXTitle("norm. impact par. d_{z} / #sigma_{z}");
    fhQA[kSigmaDcaXY][i]->SetXTitle("impact par. resolution #sigma_{xy}");
    fhQA[kSigmaDcaZ][i]->SetXTitle("impact par. resolution #sigma_{z}");
  }
  for(Int_t i=0; i<kNHist; i++) fhQA[i][1]->SetLineColor(color);
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::FillHistograms(TObject* obj, Bool_t f)
{
  //
  // fill the QA histograms
  //

  if (!obj) return;
  Bool_t isESDTrack = strcmp(obj->ClassName(),"AliESDtrack") == 0 ? kTRUE : kFALSE ;
  Bool_t isAODTrack = strcmp(obj->ClassName(),"AliAODTrack") == 0 ? kTRUE : kFALSE ;

  AliESDtrack * esdTrack = 0x0 ;
  AliAODTrack * aodTrack = 0x0 ; 
  if (isESDTrack) esdTrack = dynamic_cast<AliESDtrack*>(obj);
  if (isAODTrack) aodTrack = dynamic_cast<AliAODTrack*>(obj);

  // f = 0: fill histograms before cuts
  // f = 1: fill histograms after cuts

  // get the track to vertex parameter for ESD track
  if (esdTrack) {

    fhQA[kDcaZ][f]->Fill(fDCA[1]);
    fhQA[kDcaXY][f]->Fill(fDCA[0]);
    fhDcaXYvsDcaZ[f]->Fill(fDCA[1],fDCA[0]);
    fhQA[kSigmaDcaXY][f]->Fill(fDCA[2]);
    fhQA[kSigmaDcaZ][f]->Fill(fDCA[3]);
// // // // // // //  delete histograms
      fhQA[kDcaZnorm][f]->Fill(fDCA[1]);
      fhQA[kDcaXYnorm][f]->Fill(fDCA[0]);

    fhQA[kCutNSigmaToVertex][f]->Fill(fDCA[5]);
    if (fDCA[5]<0 && fRequireSigmaToVertex) 
      fhQA[kCutRequireSigmaToVertex][f]->Fill(0.);
    else 
      fhQA[kCutRequireSigmaToVertex][f]->Fill(1.);

    if (!fAcceptKinkDaughters && esdTrack->GetKinkIndex(0)>0)
      fhQA[kCutAcceptKinkDaughters][f]->Fill(0.);
    else 
      fhQA[kCutAcceptKinkDaughters][f]->Fill(1.);
  }

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

  // Get the bitmap of the single cuts
  SelectionBitMap(obj);

  // 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 AliCFTrackIsPrimaryCuts::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");

    fhDcaXYvsDcaZ[j]    ->Write();

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

    gDirectory->cd("../");
  }
  gDirectory->cd("../");
}
//__________________________________________________________________________________
void AliCFTrackIsPrimaryCuts::DrawHistograms()
{
  //
  // 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_Primary_1", "Track QA Primary 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_Primary_2", "Track QA Primary 2", 800, 800);
  canvas2->Divide(2, 2);

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

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

  canvas2->cd(3);
//   fhDXYvsDZ[0]->SetStats(kFALSE);
  gPad->SetLogz();
  gPad->SetLeftMargin(bottom);
  gPad->SetTopMargin(0.1);
  gPad->SetBottomMargin(bottom);
  gPad->SetRightMargin(0.2);
  fhDcaXYvsDcaZ[0]->Draw("COLZ");

  canvas2->cd(4);
//   fhDXYvsDZ[1]->SetStats(kFALSE);
  gPad->SetLogz();
  gPad->SetLeftMargin(bottom);
  gPad->SetTopMargin(0.1);
  gPad->SetBottomMargin(bottom);
  gPad->SetRightMargin(0.2);
  fhDcaXYvsDcaZ[1]->Draw("COLZ");

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

  // -----

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

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

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

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

  // -----

  TCanvas* canvas4 = new TCanvas("Track_QA_Primary_4", "Track QA Primary 4", 1200, 800);
  canvas4->Divide(3, 2);

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

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

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

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

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

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

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

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