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 AliCFTrackQualityCuts is designed to select reconstructed tracks
// of high quality 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:
// - number of clusters in the ITS
// - number of clusters in the TPC
// - number of clusters in the TRD
// - ratio of found / finable number of clusters in the TPC
// - number of tracklets in the TRD
// - number TRD tracklets used for pid
// - chi2 / cluster in the ITS
// - chi2 / cluster in the TPC
// - chi2 / tracklet in the TRD
// - number of clusters in the TPC used for dEdx calculation
// - successful TPC refit
// - successful ITS refit
// - covariance matrix diagonal elements
//
// 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 <AliESDtrackCuts.h>
#include <AliLog.h>
#include "AliCFTrackQualityCuts.h"
#include "AliAODTrack.h"

ClassImp(AliCFTrackQualityCuts)

//__________________________________________________________________________________
AliCFTrackQualityCuts::AliCFTrackQualityCuts() :
  AliCFCutBase(),
  fMinNClusterTPC(0),
  fMinNClusterITS(0),
  fMinNClusterTRD(0),
  fMinFoundClusterTPC(0),
  fMinNTrackletTRD(0),
  fMinNTrackletTRDpid(0),
  fMaxChi2PerClusterTPC(0),
  fMaxChi2PerClusterITS(0),
  fMaxChi2PerTrackletTRD(0),
  fMinNdEdxClusterTPC(0),
  fCovariance11Max(0),
  fCovariance22Max(0),
  fCovariance33Max(0),
  fCovariance44Max(0),
  fCovariance55Max(0),
  fStatus(0),
  fhCutStatistics(0),
  fhCutCorrelation(0),
  fBitmap(0x0),
  fTrackCuts(0x0),
  fhNBinsClusterTPC(0),
  fhNBinsClusterITS(0),
  fhNBinsClusterTRD(0),
  fhNBinsFoundClusterTPC(0),
  fhNBinsTrackletTRD(0),
  fhNBinsTrackletTRDpid(0),
  fhNBinsChi2TPC(0),
  fhNBinsChi2ITS(0),
  fhNBinsChi2TRD(0),
  fhNBinsdEdxClusterTPC(0),
  fhNBinsCovariance11(0),
  fhNBinsCovariance22(0),
  fhNBinsCovariance33(0),
  fhNBinsCovariance44(0),
  fhNBinsCovariance55(0),
  fhBinLimClusterTPC(0x0),
  fhBinLimClusterITS(0x0),
  fhBinLimClusterTRD(0x0),
  fhBinLimFoundClusterTPC(0x0),
  fhBinLimTrackletTRD(0x0),
  fhBinLimTrackletTRDpid(0x0),
  fhBinLimChi2TPC(0x0),
  fhBinLimChi2ITS(0x0),
  fhBinLimChi2TRD(0x0),
  fhBinLimdEdxClusterTPC(0x0),
  fhBinLimCovariance11(0x0),
  fhBinLimCovariance22(0x0),
  fhBinLimCovariance33(0x0),
  fhBinLimCovariance44(0x0),
  fhBinLimCovariance55(0x0)
{
  //
  // Default constructor
  //
  Initialise();
}
//__________________________________________________________________________________
AliCFTrackQualityCuts::AliCFTrackQualityCuts(Char_t* name, Char_t* title) :
  AliCFCutBase(name,title),
  fMinNClusterTPC(0),
  fMinNClusterITS(0),
  fMinNClusterTRD(0),
  fMinFoundClusterTPC(0),
  fMinNTrackletTRD(0),
  fMinNTrackletTRDpid(0),
  fMaxChi2PerClusterTPC(0),
  fMaxChi2PerClusterITS(0),
  fMaxChi2PerTrackletTRD(0),
  fMinNdEdxClusterTPC(0),
  fCovariance11Max(0),
  fCovariance22Max(0),
  fCovariance33Max(0),
  fCovariance44Max(0),
  fCovariance55Max(0),
  fStatus(0),
  fhCutStatistics(0),
  fhCutCorrelation(0),
  fBitmap(0x0),
  fTrackCuts(0x0),
  fhNBinsClusterTPC(0),
  fhNBinsClusterITS(0),
  fhNBinsClusterTRD(0),
  fhNBinsFoundClusterTPC(0),
  fhNBinsTrackletTRD(0),
  fhNBinsTrackletTRDpid(0),
  fhNBinsChi2TPC(0),
  fhNBinsChi2ITS(0),
  fhNBinsChi2TRD(0),
  fhNBinsdEdxClusterTPC(0),
  fhNBinsCovariance11(0),
  fhNBinsCovariance22(0),
  fhNBinsCovariance33(0),
  fhNBinsCovariance44(0),
  fhNBinsCovariance55(0),
  fhBinLimClusterTPC(0x0),
  fhBinLimClusterITS(0x0),
  fhBinLimClusterTRD(0x0),
  fhBinLimFoundClusterTPC(0x0),
  fhBinLimTrackletTRD(0x0),
  fhBinLimTrackletTRDpid(0x0),
  fhBinLimChi2TPC(0x0),
  fhBinLimChi2ITS(0x0),
  fhBinLimChi2TRD(0x0),
  fhBinLimdEdxClusterTPC(0x0),
  fhBinLimCovariance11(0x0),
  fhBinLimCovariance22(0x0),
  fhBinLimCovariance33(0x0),
  fhBinLimCovariance44(0x0),
  fhBinLimCovariance55(0x0)
{
  //
  // Constructor
  //
  Initialise();
}
//__________________________________________________________________________________
AliCFTrackQualityCuts::AliCFTrackQualityCuts(const AliCFTrackQualityCuts& c) :
  AliCFCutBase(c),
  fMinNClusterTPC(c.fMinNClusterTPC),
  fMinNClusterITS(c.fMinNClusterITS),
  fMinNClusterTRD(c.fMinNClusterTRD),
  fMinFoundClusterTPC(c.fMinFoundClusterTPC),
  fMinNTrackletTRD(c.fMinNTrackletTRD),
  fMinNTrackletTRDpid(c.fMinNTrackletTRDpid),
  fMaxChi2PerClusterTPC(c.fMaxChi2PerClusterTPC),
  fMaxChi2PerClusterITS(c.fMaxChi2PerClusterITS),
  fMaxChi2PerTrackletTRD(c.fMaxChi2PerTrackletTRD),
  fMinNdEdxClusterTPC(c.fMinNdEdxClusterTPC),
  fCovariance11Max(c.fCovariance11Max),
  fCovariance22Max(c.fCovariance22Max),
  fCovariance33Max(c.fCovariance33Max),
  fCovariance44Max(c.fCovariance44Max),
  fCovariance55Max(c.fCovariance55Max),
  fStatus(c.fStatus),
  fhCutStatistics(c.fhCutStatistics),
  fhCutCorrelation(c.fhCutCorrelation),
  fBitmap(c.fBitmap),
  fTrackCuts(c.fTrackCuts),
  fhNBinsClusterTPC(c.fhNBinsClusterTPC),
  fhNBinsClusterITS(c.fhNBinsClusterITS),
  fhNBinsClusterTRD(c.fhNBinsClusterTRD),
  fhNBinsFoundClusterTPC(c.fhNBinsFoundClusterTPC),
  fhNBinsTrackletTRD(c.fhNBinsTrackletTRD),
  fhNBinsTrackletTRDpid(c.fhNBinsTrackletTRDpid),
  fhNBinsChi2TPC(c.fhNBinsChi2TPC),
  fhNBinsChi2ITS(c.fhNBinsChi2ITS),
  fhNBinsChi2TRD(c.fhNBinsChi2TRD),
  fhNBinsdEdxClusterTPC(c.fhNBinsdEdxClusterTPC),
  fhNBinsCovariance11(c.fhNBinsCovariance11),
  fhNBinsCovariance22(c.fhNBinsCovariance22),
  fhNBinsCovariance33(c.fhNBinsCovariance33),
  fhNBinsCovariance44(c.fhNBinsCovariance44),
  fhNBinsCovariance55(c.fhNBinsCovariance55),
  fhBinLimClusterTPC(c.fhBinLimClusterTPC),
  fhBinLimClusterITS(c.fhBinLimClusterITS),
  fhBinLimClusterTRD(c.fhBinLimClusterTRD),
  fhBinLimFoundClusterTPC(c.fhBinLimFoundClusterTPC),
  fhBinLimTrackletTRD(c.fhBinLimTrackletTRD),
  fhBinLimTrackletTRDpid(c.fhBinLimTrackletTRDpid),
  fhBinLimChi2TPC(c.fhBinLimChi2TPC),
  fhBinLimChi2ITS(c.fhBinLimChi2ITS),
  fhBinLimChi2TRD(c.fhBinLimChi2TRD),
  fhBinLimdEdxClusterTPC(c.fhBinLimdEdxClusterTPC),
  fhBinLimCovariance11(c.fhBinLimCovariance11),
  fhBinLimCovariance22(c.fhBinLimCovariance22),
  fhBinLimCovariance33(c.fhBinLimCovariance33),
  fhBinLimCovariance44(c.fhBinLimCovariance44),
  fhBinLimCovariance55(c.fhBinLimCovariance55)
{
  //
  // copy constructor
  //
  ((AliCFTrackQualityCuts &) c).Copy(*this);
}
//__________________________________________________________________________________
AliCFTrackQualityCuts& AliCFTrackQualityCuts::operator=(const AliCFTrackQualityCuts& c)
{
  //
  // Assignment operator
  //
  if (this != &c) {
    AliCFCutBase::operator=(c) ;
    fMinNClusterTPC = c.fMinNClusterTPC ;
    fMinNClusterITS = c.fMinNClusterITS ;
    fMinNClusterTRD = c.fMinNClusterTRD ;
    fMinFoundClusterTPC = c.fMinFoundClusterTPC ;
    fMinNTrackletTRD = c.fMinNTrackletTRD ;
    fMinNTrackletTRDpid = c.fMinNTrackletTRDpid ;
    fMaxChi2PerClusterTPC = c.fMaxChi2PerClusterTPC ;
    fMaxChi2PerClusterITS = c.fMaxChi2PerClusterITS ;
    fMaxChi2PerTrackletTRD = c.fMaxChi2PerTrackletTRD ;
    fMinNdEdxClusterTPC = c.fMinNdEdxClusterTPC;
    fCovariance11Max = c.fCovariance11Max ;
    fCovariance22Max = c.fCovariance22Max ;
    fCovariance33Max = c.fCovariance33Max ;
    fCovariance44Max = c.fCovariance44Max ;
    fCovariance55Max = c.fCovariance55Max ;
    fStatus = c.fStatus ;
    fhCutStatistics = c.fhCutStatistics ;
    fhCutCorrelation = c.fhCutCorrelation ;
    fBitmap =  c.fBitmap ;
    fTrackCuts = c.fTrackCuts ;
    fhNBinsClusterTPC = c.fhNBinsClusterTPC ;
    fhNBinsClusterITS = c.fhNBinsClusterITS ;
    fhNBinsClusterTRD = c.fhNBinsClusterTRD ;
    fhNBinsFoundClusterTPC = c.fhNBinsFoundClusterTPC ;
    fhNBinsTrackletTRD = c.fhNBinsTrackletTRD ;
    fhNBinsTrackletTRDpid = c.fhNBinsTrackletTRDpid ;
    fhNBinsChi2TPC = c.fhNBinsChi2TPC ;
    fhNBinsChi2ITS = c.fhNBinsChi2ITS ;
    fhNBinsChi2TRD = c.fhNBinsChi2TRD ;
    fhNBinsdEdxClusterTPC = c.fhNBinsdEdxClusterTPC ;
    fhNBinsCovariance11 = c.fhNBinsCovariance11 ;
    fhNBinsCovariance22 = c.fhNBinsCovariance22 ;
    fhNBinsCovariance33 = c.fhNBinsCovariance33 ;
    fhNBinsCovariance44 = c.fhNBinsCovariance44 ;
    fhNBinsCovariance55 = c.fhNBinsCovariance55 ;
    fhBinLimClusterTPC = c.fhBinLimClusterTPC ;
    fhBinLimClusterITS = c.fhBinLimClusterITS ;
    fhBinLimClusterTRD = c.fhBinLimClusterTRD ;
    fhBinLimFoundClusterTPC = c.fhBinLimFoundClusterTPC ;
    fhBinLimTrackletTRD = c.fhBinLimTrackletTRD ;
    fhBinLimTrackletTRDpid = c.fhBinLimTrackletTRDpid ;
    fhBinLimChi2TPC = c.fhBinLimChi2TPC ;
    fhBinLimChi2ITS = c.fhBinLimChi2ITS ;
    fhBinLimChi2TRD = c.fhBinLimChi2TRD ;
    fhBinLimdEdxClusterTPC = c.fhBinLimdEdxClusterTPC ;
    fhBinLimCovariance11 = c.fhBinLimCovariance11 ;
    fhBinLimCovariance22 = c.fhBinLimCovariance22 ;
    fhBinLimCovariance33 = c.fhBinLimCovariance33 ;
    fhBinLimCovariance44 = c.fhBinLimCovariance44 ;
    fhBinLimCovariance55 = c.fhBinLimCovariance55 ;

    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();
      }
    }
    ((AliCFTrackQualityCuts &) c).Copy(*this);
  }
  return *this;
}
//__________________________________________________________________________________
AliCFTrackQualityCuts::~AliCFTrackQualityCuts()
{
  //
  // 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(fTrackCuts) delete fTrackCuts;
  if(fhBinLimClusterTPC) delete fhBinLimClusterTPC;
  if(fhBinLimClusterITS) delete fhBinLimClusterITS;
  if(fhBinLimClusterTRD) delete fhBinLimClusterTRD;
  if(fhBinLimFoundClusterTPC) delete fhBinLimFoundClusterTPC;
  if(fhBinLimTrackletTRD) delete fhBinLimTrackletTRD;
  if(fhBinLimTrackletTRDpid) delete fhBinLimTrackletTRDpid;
  if(fhBinLimChi2TPC) delete fhBinLimChi2TPC;
  if(fhBinLimChi2ITS) delete fhBinLimChi2ITS;
  if(fhBinLimChi2TRD) delete fhBinLimChi2TRD;
  if(fhBinLimdEdxClusterTPC) delete fhBinLimdEdxClusterTPC;
  if(fhBinLimCovariance11) delete fhBinLimCovariance11;
  if(fhBinLimCovariance22) delete fhBinLimCovariance22;
  if(fhBinLimCovariance33) delete fhBinLimCovariance33;
  if(fhBinLimCovariance44) delete fhBinLimCovariance44;
  if(fhBinLimCovariance55) delete fhBinLimCovariance55;
}
//__________________________________________________________________________________
void AliCFTrackQualityCuts::Initialise()
{
  //
  // sets everything to zero
  //
  fMinNClusterTPC = 0;
  fMinNClusterITS = 0;
  fMinNClusterTRD = 0;
  fMinFoundClusterTPC = 0;
  fMinNTrackletTRD = 0;
  fMinNTrackletTRDpid = 0;
  fMaxChi2PerClusterTPC = 0;
  fMaxChi2PerClusterITS = 0;
  fMaxChi2PerTrackletTRD = 0;
  fMinNdEdxClusterTPC = 0;
  fCovariance11Max = 0;
  fCovariance22Max = 0;
  fCovariance33Max = 0;
  fCovariance44Max = 0;
  fCovariance55Max = 0;
  fStatus = 0;

  SetMinNClusterTPC();
  SetMinNClusterITS();
  SetMinNClusterTRD();
  SetMinFoundClusterTPC();
  SetMinNTrackletTRD();
  SetMinNTrackletTRDpid();
  SetMaxChi2PerClusterTPC();
  SetMaxChi2PerClusterITS();
  SetMaxChi2PerTrackletTRD();
  SetMinNdEdxClusterTPC();
  SetMaxCovDiagonalElements();
  SetStatus();

  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);
  fTrackCuts=new AliESDtrackCuts("aliESDtrackCuts","aliESDtrackCuts");

  //set default bining for QA histograms
  SetHistogramBins(kCutClusterTPC,165,-0.5,164.5);
  SetHistogramBins(kCutClusterITS,8,-0.5,7.5);
  SetHistogramBins(kCutClusterTRD,120,-0.5,119.5);
  SetHistogramBins(kCutMinFoundClusterTPC,110,-0.05,1.05);
  SetHistogramBins(kCutTrackletTRD,7,-0.5,6.5);
  SetHistogramBins(kCutTrackletTRDpid,7,-0.5,6.5);
  SetHistogramBins(kCutChi2TPC,500,0.,10.);
  SetHistogramBins(kCutChi2ITS,500,0.,10.);
  SetHistogramBins(kCutChi2TRD,500,0.,10.);
  SetHistogramBins(kCutdEdxClusterTPC,165,-0.5,164.5);
  SetHistogramBins(kCutCovElement11,200,0.,20.);
  SetHistogramBins(kCutCovElement22,200,0.,20.);
  SetHistogramBins(kCutCovElement33,100,0.,1.);
  SetHistogramBins(kCutCovElement44,100,0.,5.);
  SetHistogramBins(kCutCovElement55,100,0.,5.);
}
//__________________________________________________________________________________
void AliCFTrackQualityCuts::Copy(TObject &c) const
{
  //
  // Copy function
  //
  AliCFTrackQualityCuts& target = (AliCFTrackQualityCuts &) 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 AliCFTrackQualityCuts::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);

  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 ;

  fTrackCuts->SetMinNClustersTPC(fMinNClusterTPC);
  fTrackCuts->SetMinNClustersITS(fMinNClusterITS);
  fTrackCuts->SetMaxChi2PerClusterTPC(fMaxChi2PerClusterTPC);
  fTrackCuts->SetMaxChi2PerClusterITS(fMaxChi2PerClusterITS);
  fTrackCuts->SetMaxCovDiagonalElements(fCovariance11Max,fCovariance22Max,fCovariance33Max,fCovariance44Max,fCovariance55Max);

// // // remove following 5 lines when AliESDtrackCuts is updated
   Int_t    nClustersTPC = 0;
   Int_t    nClustersITS = 0 ;
   Float_t  chi2PerClusterTPC =  0 ;
   Float_t  chi2PerClusterITS = 0 ;
   Double_t extCov[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

  // get cut quantities
  Int_t   nClustersTRD = 0;
  Int_t   nTrackletsTRD = 0;
  Float_t chi2PerTrackletTRD = 0;
  Float_t fractionFoundClustersTPC = 0;

  if (isESDTrack) {
    nClustersTRD = esdTrack->GetTRDncls();
    nTrackletsTRD = esdTrack->GetTRDntracklets();
    if (nTrackletsTRD != 0) chi2PerTrackletTRD = esdTrack->GetTRDchi2() / Float_t(nTrackletsTRD);
// // // include following line when AliESDtrackCuts is updated
//     if (esdTrack->GetTPCNclsF() != 0) fractionFoundClustersTPC = fTrackCuts->GetCutVariable(2) / float(esdTrack->GetTPCNclsF());

// // // remove following 6 lines when AliESDtrackCuts is updated
     nClustersTPC = esdTrack->GetTPCclusters(0x0);
     nClustersITS = esdTrack->GetITSclusters(0x0);
     if (nClustersTPC != 0) chi2PerClusterTPC = esdTrack->GetTPCchi2() / Float_t(nClustersTPC);
     if (nClustersITS != 0) chi2PerClusterITS = esdTrack->GetITSchi2() / Float_t(nClustersITS);
     esdTrack->GetExternalCovariance(extCov);
     if (esdTrack->GetTPCNclsF() != 0) fractionFoundClustersTPC = float(nClustersTPC) / float(esdTrack->GetTPCNclsF());
  }

  // fill the bitmap
  Int_t iCutBit = 0;

// // // include following lines when AliESDtrackCuts is updated
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(2)); iCutBit++; // nClustersTPC
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(3)); iCutBit++; // nClustersITS
// // // remove following 6 lines when AliESDtrackCuts is updated
   if (nClustersTPC >= fMinNClusterTPC)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;
   if (nClustersITS >= fMinNClusterITS)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;

  if (nClustersTRD >= fMinNClusterTRD)
    fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
// // //   if ((fMinFoundClusterTPC <= 0) || (fTrackCuts->GetCutVariable(2) > 0 && (fractionFoundClustersTPC >= fMinFoundClusterTPC)))
  if ((fMinFoundClusterTPC <= 0) || (nClustersTPC > 0 && (fractionFoundClustersTPC >= fMinFoundClusterTPC)))
    fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if (nTrackletsTRD >= fMinNTrackletTRD)
    fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if (!isESDTrack || esdTrack->GetTRDntrackletsPID() >= fMinNTrackletTRDpid)
    fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

// // // include following lines when AliESDtrackCuts is updated
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(4)); iCutBit++; // chi2PerClusterTPC
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(5)); iCutBit++; // chi2PerClusterITS
// // // remove following 6 lines when AliESDtrackCuts is updated
   if (chi2PerClusterTPC <= fMaxChi2PerClusterTPC)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;
   if (chi2PerClusterITS <= fMaxChi2PerClusterITS)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;

  if (chi2PerTrackletTRD <= fMaxChi2PerTrackletTRD)
    fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;
  if (!isESDTrack || esdTrack->GetTPCsignalN() >= fMinNdEdxClusterTPC)
    fBitmap->SetBitNumber(iCutBit,kTRUE);
  iCutBit++;

// // // include following lines when AliESDtrackCuts is updated
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(6)); iCutBit++; // extCov[0]
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(7)); iCutBit++; // extCov[2]
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(8)); iCutBit++; // extCov[5]
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(9)); iCutBit++; // extCov[9]
//   fBitmap->SetBitNumber(iCutBit,fTrackCuts->GetCutDecision(10)); iCutBit++; // extCov[14]
// // // remove following lines when AliESDtrackCuts is updated
   if (extCov[0]  <= fCovariance11Max)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;
   if (extCov[2]  <= fCovariance22Max)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;
   if (extCov[5]  <= fCovariance33Max)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;
   if (extCov[9]  <= fCovariance44Max)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;
   if (extCov[14] <= fCovariance55Max)
     fBitmap->SetBitNumber(iCutBit,kTRUE);
   iCutBit++;


  if (isESDTrack) {
    if ( (esdTrack->GetStatus() & fStatus) == fStatus ) fBitmap->SetBitNumber(iCutBit,kTRUE);
  }
  else {
    if ( (aodTrack->GetStatus() & fStatus) == fStatus ) fBitmap->SetBitNumber(iCutBit,kTRUE);
  }

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

  if (index<0 || index>=kNHist) {
    Error("SetHistogramBins","could not determine histogram from index %d",index);
    return;
  }

  switch(index){
  case kCutClusterTPC:
    fhNBinsClusterTPC=nbins+1;
    fhBinLimClusterTPC=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimClusterTPC[i]=bins[i];
    break;

  case kCutClusterITS:
    fhNBinsClusterITS=nbins+1;
    fhBinLimClusterITS=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimClusterITS[i]=bins[i];
    break;

  case kCutClusterTRD:
    fhNBinsClusterTRD=nbins+1;
    fhBinLimClusterTRD=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimClusterTRD[i]=bins[i];
    break;

  case kCutMinFoundClusterTPC:
    fhNBinsFoundClusterTPC=nbins+1;
    fhBinLimFoundClusterTPC=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimFoundClusterTPC[i]=bins[i];
    break;

  case kCutTrackletTRD:
    fhNBinsTrackletTRD=nbins+1;
    fhBinLimTrackletTRD=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimTrackletTRD[i]=bins[i];
    break;

  case kCutTrackletTRDpid:
    fhNBinsTrackletTRDpid=nbins+1;
    fhBinLimTrackletTRDpid=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimTrackletTRDpid[i]=bins[i];
    break;

  case kCutChi2TPC:
    fhNBinsChi2TPC=nbins+1;
    fhBinLimChi2TPC=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimChi2TPC[i]=bins[i];
    break;

  case kCutChi2ITS:
    fhNBinsChi2ITS=nbins+1;
    fhBinLimChi2ITS=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimChi2ITS[i]=bins[i];
    break;

  case kCutChi2TRD:
    fhNBinsChi2TRD=nbins+1;
    fhBinLimChi2TRD=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimChi2TRD[i]=bins[i];
    break;

  case kCutdEdxClusterTPC:
    fhNBinsdEdxClusterTPC=nbins+1;
    fhBinLimdEdxClusterTPC=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimdEdxClusterTPC[i]=bins[i];
    break;

  case kCutCovElement11:
    fhNBinsCovariance11=nbins+1;
    fhBinLimCovariance11=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCovariance11[i]=bins[i];
    break;

  case kCutCovElement22:
    fhNBinsCovariance22=nbins+1;
    fhBinLimCovariance22=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCovariance22[i]=bins[i];
    break;

  case kCutCovElement33:
    fhNBinsCovariance33=nbins+1;
    fhBinLimCovariance33=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCovariance33[i]=bins[i];
    break;

  case kCutCovElement44:
    fhNBinsCovariance44=nbins+1;
    fhBinLimCovariance44=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCovariance44[i]=bins[i];
    break;

  case kCutCovElement55:
    fhNBinsCovariance55=nbins+1;
    fhBinLimCovariance55=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCovariance55[i]=bins[i];
    break;
 }
}
//__________________________________________________________________________________
void AliCFTrackQualityCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin, Double_t xmax)
{
  //
  // fixed bin size
  //
  if (index<0 || index>=kNHist) {
    Error("SetHistogramBins","could not determine histogram from index %d",index);
    return;
  }

  switch(index){
  case kCutClusterTPC:
    fhNBinsClusterTPC=nbins+1;
    fhBinLimClusterTPC=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimClusterTPC[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;

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

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

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

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

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

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

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

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

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

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

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

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

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

  case kCutCovElement55:
    fhNBinsCovariance55=nbins+1;
    fhBinLimCovariance55=new Double_t[nbins+1];
    for(Int_t i=0;i<nbins+1;i++)fhBinLimCovariance55[i]=xmin+i*(xmax-xmin)/Double_t(nbins);
    break;
 }
}
//__________________________________________________________________________________
 void AliCFTrackQualityCuts::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, "nClustersTPC");
  fhCutStatistics->GetXaxis()->SetBinLabel(2, "nClustersITS");
  fhCutStatistics->GetXaxis()->SetBinLabel(3, "nClustersTRD");
  fhCutStatistics->GetXaxis()->SetBinLabel(4, "fractionClustersTPC");
  fhCutStatistics->GetXaxis()->SetBinLabel(5, "ntrackletsTRD");
  fhCutStatistics->GetXaxis()->SetBinLabel(6, "ntrackletsTRDpid");
  fhCutStatistics->GetXaxis()->SetBinLabel(7, "chi2PerClusterTPC");
  fhCutStatistics->GetXaxis()->SetBinLabel(8, "chi2PerClusterITS");
  fhCutStatistics->GetXaxis()->SetBinLabel(9, "chi2PerTrackletTRD");
  fhCutStatistics->GetXaxis()->SetBinLabel(10, "ndEdxClusterTPC");
  fhCutStatistics->GetXaxis()->SetBinLabel(11, "covElement11");
  fhCutStatistics->GetXaxis()->SetBinLabel(12, "covElement22");
  fhCutStatistics->GetXaxis()->SetBinLabel(13, "covElement33");
  fhCutStatistics->GetXaxis()->SetBinLabel(14, "covElement44");
  fhCutStatistics->GetXaxis()->SetBinLabel(15, "covElement55");
  fhCutStatistics->GetXaxis()->SetBinLabel(16, "status");

  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, "nClustersTPC");
  fhCutCorrelation->GetXaxis()->SetBinLabel(2, "nClustersITS");
  fhCutCorrelation->GetXaxis()->SetBinLabel(3, "nClustersTRD");
  fhCutCorrelation->GetXaxis()->SetBinLabel(4, "fractionClustersTPC");
  fhCutCorrelation->GetXaxis()->SetBinLabel(5, "ntrackletsTRD");
  fhCutCorrelation->GetXaxis()->SetBinLabel(6, "ntrackletsTRDpid");
  fhCutCorrelation->GetXaxis()->SetBinLabel(7, "chi2PerClusterTPC");
  fhCutCorrelation->GetXaxis()->SetBinLabel(8, "chi2PerClusterITS");
  fhCutCorrelation->GetXaxis()->SetBinLabel(9, "chi2PerTrackletTRD");
  fhCutCorrelation->GetXaxis()->SetBinLabel(10, "ndEdxClustersTPC");
  fhCutCorrelation->GetXaxis()->SetBinLabel(11, "covElement11");
  fhCutCorrelation->GetXaxis()->SetBinLabel(12, "covElement22");
  fhCutCorrelation->GetXaxis()->SetBinLabel(13, "covElement33");
  fhCutCorrelation->GetXaxis()->SetBinLabel(14, "covElement44");
  fhCutCorrelation->GetXaxis()->SetBinLabel(15, "covElement55");
  fhCutCorrelation->GetXaxis()->SetBinLabel(16, "status");

  fhCutCorrelation->GetYaxis()->SetBinLabel(1, "nClustersTPC");
  fhCutCorrelation->GetYaxis()->SetBinLabel(2, "nClustersITS");
  fhCutCorrelation->GetYaxis()->SetBinLabel(3, "nClustersTRD");
  fhCutCorrelation->GetYaxis()->SetBinLabel(4, "fractionClustersTPC");
  fhCutCorrelation->GetYaxis()->SetBinLabel(5, "ntrackletsTRD");
  fhCutCorrelation->GetYaxis()->SetBinLabel(6, "ntrackletsTRDpid");
  fhCutCorrelation->GetYaxis()->SetBinLabel(7, "chi2PerClusterTPC");
  fhCutCorrelation->GetYaxis()->SetBinLabel(8, "chi2PerClusterITS");
  fhCutCorrelation->GetYaxis()->SetBinLabel(9, "chi2PerTrackletTRD");
  fhCutCorrelation->GetYaxis()->SetBinLabel(10, "ndEdxClustersTPC");
  fhCutCorrelation->GetYaxis()->SetBinLabel(11, "covElement11");
  fhCutCorrelation->GetYaxis()->SetBinLabel(12, "covElement22");
  fhCutCorrelation->GetYaxis()->SetBinLabel(13, "covElement33");
  fhCutCorrelation->GetYaxis()->SetBinLabel(14, "covElement44");
  fhCutCorrelation->GetYaxis()->SetBinLabel(15, "covElement55");
  fhCutCorrelation->GetYaxis()->SetBinLabel(16, "status");


  // 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[kCutClusterTPC][i]	= new TH1F(Form("%s_nClustersTPC%s",GetName(),str)     ,"",fhNBinsClusterTPC-1,fhBinLimClusterTPC);
    fhQA[kCutClusterITS][i]	= new TH1F(Form("%s_nClustersITS%s",GetName(),str)     ,"",fhNBinsClusterITS-1,fhBinLimClusterITS);
    fhQA[kCutClusterTRD][i]	= new TH1F(Form("%s_nClustersTRD%s",GetName(),str)     ,"",fhNBinsClusterTRD-1,fhBinLimClusterTRD);
    fhQA[kCutMinFoundClusterTPC][i]	= new TH1F(Form("%s_fractionClustersTPC%s",GetName(),str)     ,"",fhNBinsFoundClusterTPC-1,fhBinLimFoundClusterTPC);
    fhQA[kCutTrackletTRD][i]	= new TH1F(Form("%s_ntrackletsTRD%s",GetName(),str)     ,"",fhNBinsTrackletTRD-1,fhBinLimTrackletTRD);
    fhQA[kCutTrackletTRDpid][i]	= new TH1F(Form("%s_ntrackletsTRDpid%s",GetName(),str)     ,"",fhNBinsTrackletTRDpid-1,fhBinLimTrackletTRDpid);
    fhQA[kCutChi2TPC][i]	= new TH1F(Form("%s_chi2PerClusterTPC%s",GetName(),str),"",fhNBinsChi2TPC-1,fhBinLimChi2TPC);
    fhQA[kCutChi2ITS][i]	= new TH1F(Form("%s_chi2PerClusterITS%s",GetName(),str),"",fhNBinsChi2ITS-1,fhBinLimChi2ITS);
    fhQA[kCutChi2TRD][i]	= new TH1F(Form("%s_chi2PerTrackletTRD%s",GetName(),str),"",fhNBinsChi2TRD-1,fhBinLimChi2TRD);
    fhQA[kCutdEdxClusterTPC][i]	= new TH1F(Form("%s_ndEdxClustersTPC%s",GetName(),str)     ,"",fhNBinsdEdxClusterTPC-1,fhBinLimdEdxClusterTPC);
    fhQA[kCutCovElement11][i]	= new TH1F(Form("%s_covMatrixDiagonal11%s",GetName(),str),"",fhNBinsCovariance11-1,fhBinLimCovariance11);
    fhQA[kCutCovElement22][i]	= new TH1F(Form("%s_covMatrixDiagonal22%s",GetName(),str),"",fhNBinsCovariance22-1,fhBinLimCovariance22);
    fhQA[kCutCovElement33][i]	= new TH1F(Form("%s_covMatrixDiagonal33%s",GetName(),str),"",fhNBinsCovariance33-1,fhBinLimCovariance33);
    fhQA[kCutCovElement44][i]	= new TH1F(Form("%s_covMatrixDiagonal44%s",GetName(),str),"",fhNBinsCovariance44-1,fhBinLimCovariance44);
    fhQA[kCutCovElement55][i]	= new TH1F(Form("%s_covMatrixDiagonal55%s",GetName(),str),"",fhNBinsCovariance55-1,fhBinLimCovariance55);

    fhQA[kCutClusterTPC][i]	->SetXTitle("n TPC clusters");
    fhQA[kCutClusterITS][i]	->SetXTitle("n ITS clusters");
    fhQA[kCutClusterTRD][i]	->SetXTitle("n TRD clusters");
    fhQA[kCutMinFoundClusterTPC][i]->SetXTitle("fraction TPC clusters");
    fhQA[kCutTrackletTRD][i] ->SetXTitle("n tracklets TRD");
    fhQA[kCutTrackletTRDpid][i]->SetXTitle("n tracklets TRD pid");
    fhQA[kCutChi2TPC][i]	->SetXTitle("#chi^{2} per TPC cluster");
    fhQA[kCutChi2ITS][i]	->SetXTitle("#chi^{2} per ITS cluster");
    fhQA[kCutChi2TRD][i]	->SetXTitle("#chi^{2} per TRD tracklet");
    fhQA[kCutdEdxClusterTPC][i]	->SetXTitle("n dEdx TPC clusters");
    fhQA[kCutCovElement11][i]	->SetXTitle("cov 11 : #sigma_{y}^{2} (cm^{2})");
    fhQA[kCutCovElement22][i]	->SetXTitle("cov 22 : #sigma_{z}^{2} (cm^{2})");
    fhQA[kCutCovElement33][i]	->SetXTitle("cov 33 : #sigma_{sin(#phi)}^{2}");
    fhQA[kCutCovElement44][i]	->SetXTitle("cov 44 : #sigma_{tan(#theta_{dip})}^{2}");
    fhQA[kCutCovElement55][i]	->SetXTitle("cov 55 : #sigma_{1/p_{T}}^{2} ((c/GeV)^{2})");
  }

  for(Int_t i=0; i<kNHist; i++) fhQA[i][1]->SetLineColor(color);
}
//__________________________________________________________________________________
void AliCFTrackQualityCuts::FillHistograms(TObject* obj, Bool_t b)
{
  //
  // fill the QA histograms
  //

  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 ;


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

// // // remove following 5 lines when AliESDtrackCuts is updated
   Int_t    nClustersTPC = 0;
   Int_t    nClustersITS = 0 ;
   Float_t  chi2PerClusterTPC =  0 ;
   Float_t  chi2PerClusterITS = 0 ;
   Double_t extCov[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

  Int_t   nClustersTRD = 0 ;
  Int_t   nTrackletsTRD = 0 ;
  Float_t chi2PerTrackletTRD = 0 ;
  Float_t fractionFoundClustersTPC = 0;

  if (isESDTrack) {
    nClustersTRD = esdTrack->GetTRDncls();
    nTrackletsTRD = esdTrack->GetTRDntracklets();
    if (nTrackletsTRD != 0) chi2PerTrackletTRD = esdTrack->GetTRDchi2() / Float_t(nTrackletsTRD);

// // // include following line when AliESDtrackCuts is updated
//     if (esdTrack->GetTPCNclsF() != 0) fractionFoundClustersTPC = fTrackCuts->GetCutVariable(2) / float(esdTrack->GetTPCNclsF());

// // // remove following 6 lines when AliESDtrackCuts is updated
     nClustersTPC = esdTrack->GetTPCclusters(0x0);
     nClustersITS = esdTrack->GetITSclusters(0x0);
     if (nClustersTPC != 0) chi2PerClusterTPC = esdTrack->GetTPCchi2() / Float_t(nClustersTPC);
     if (nClustersITS != 0) chi2PerClusterITS = esdTrack->GetITSchi2() / Float_t(nClustersITS);
     esdTrack->GetExternalCovariance(extCov);
     if (esdTrack->GetTPCNclsF() != 0) fractionFoundClustersTPC = float(nClustersTPC) / float(esdTrack->GetTPCNclsF());
  }

// // // include following lines when AliESDtrackCuts is updated
//   fhQA[kCutClusterTPC][b]->Fill(fTrackCuts->GetCutVariable(2));
//   fhQA[kCutClusterITS][b]->Fill(fTrackCuts->GetCutVariable(3));
//   fhQA[kCutChi2TPC][b]->Fill(fTrackCuts->GetCutVariable(4));
//   fhQA[kCutChi2ITS][b]->Fill(fTrackCuts->GetCutVariable(5));
// // // remove following 4 lines when AliESDtrackCuts is updated
   fhQA[kCutClusterTPC][b]->Fill((float)nClustersTPC);
   fhQA[kCutChi2TPC][b]->Fill(chi2PerClusterTPC);
   fhQA[kCutClusterITS][b]->Fill((float)nClustersITS);
   fhQA[kCutChi2ITS][b]->Fill(chi2PerClusterITS);


  fhQA[kCutClusterTRD][b]->Fill((float)nClustersTRD);
  fhQA[kCutChi2TRD][b]->Fill(chi2PerTrackletTRD);
//   if (b==0 || (b==1 && fTrackCuts->GetCutVariable(2)>0)) fhQA[kCutMinFoundClusterTPC][b]->Fill((float)fractionFoundClustersTPC);
  if (b==0 || (b==1 && nClustersTPC>0)) fhQA[kCutMinFoundClusterTPC][b]->Fill((float)fractionFoundClustersTPC);
  fhQA[kCutTrackletTRD][b]->Fill((float)nTrackletsTRD);
  if (isESDTrack) {
   fhQA[kCutTrackletTRDpid][b]->Fill((float)esdTrack->GetTRDntrackletsPID());
   fhQA[kCutdEdxClusterTPC][b]->Fill((float)esdTrack->GetTPCsignalN());
  }
// // // include following lines when AliESDtrackCuts is updated
//   fhQA[kCutCovElement11][b]->Fill(fTrackCuts->GetCutVariable(6));
//   fhQA[kCutCovElement22][b]->Fill(fTrackCuts->GetCutVariable(7));
//   fhQA[kCutCovElement33][b]->Fill(fTrackCuts->GetCutVariable(8));
//   fhQA[kCutCovElement44][b]->Fill(fTrackCuts->GetCutVariable(9));
//   fhQA[kCutCovElement55][b]->Fill(fTrackCuts->GetCutVariable(10));
// // // remove following 5 lines when AliESDtrackCuts is updated
   fhQA[kCutCovElement11][b]->Fill(extCov[0]);
   fhQA[kCutCovElement22][b]->Fill(extCov[2]);
   fhQA[kCutCovElement33][b]->Fill(extCov[5]);
   fhQA[kCutCovElement44][b]->Fill(extCov[9]);
   fhQA[kCutCovElement55][b]->Fill(extCov[14]);


  // fill cut statistics and cut correlation histograms with information from the bitmap
  if (b) 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 AliCFTrackQualityCuts::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 AliCFTrackQualityCuts::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_Quality_1", "Track QA Quality 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_Quality_2", "Track QA Quality 2", 1200, 800);
  canvas2->Divide(2, 2);

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

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

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

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

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

  // -----

  TCanvas* canvas3 = new TCanvas("Track_QA_Quality_3", "Track QA Quality 3", 1200, 800);
  canvas3->Divide(3, 2);

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

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

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

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

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

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