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, proviyaded 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 purapose. It is         *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//////////////////////////////////////////////////////////////////////////////
//                                                                          //
// Analysis task for the systematic study of the uncertainties related to   //
// the tracking and ITS-TPC matching efficiency for different particle      //
// species.                                                                 //
//                                                                          //
//////////////////////////////////////////////////////////////////////////////


#include "Riostream.h"
#include "TH1F.h"
#include "TH2D.h"
#include "TH3F.h"
#include "THn.h"
#include "TList.h"
#include "TMath.h"
#include "TParticlePDG.h"
//
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliPID.h"
#include "AliESDtrackCuts.h"
#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrack.h"
#include "AliESDpid.h"
#include "AliESDUtils.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliLog.h"
//
#include "AliAnalysisTrackingUncertainties.h"


ClassImp(AliAnalysisTrackingUncertainties)

// histogram constants
const Int_t kNumberOfAxes = 5;

//________________________________________________________________________
AliAnalysisTrackingUncertainties::AliAnalysisTrackingUncertainties() 
  : AliAnalysisTaskSE("TaskTestPA"), 
    fESD(0),
    fESDpid(0),
    fUtils(0),
    fMCtrue(0),
    fListHist(0),
    fESDtrackCuts(0),
    fMatchTr(),
    fMatchChi(),
    fExcludeMomFromChi2ITSTPC(0) 
{
  // default Constructor
  /* fast compilation test

     gSystem->Load("libANALYSIS");
     gSystem->Load("libANALYSISalice");
     .L AliAnalysisTrackingUncertainties.cxx++
   */
}


//________________________________________________________________________
AliAnalysisTrackingUncertainties::AliAnalysisTrackingUncertainties(const char *name) 
  : AliAnalysisTaskSE(name),
    fESD(0),
    fESDpid(0),
    fUtils(0),
    fMCtrue(0),
    fListHist(0),
    fESDtrackCuts(0),
    fMatchTr(),
    fMatchChi(),
    fExcludeMomFromChi2ITSTPC(0) 
{
  //
  // standard constructur which should be used
  //
  fMCtrue = kTRUE; 
  //
  // create track cuts
  //
  fESDtrackCuts = new AliESDtrackCuts("AliESDtrackCuts","AliESDtrackCuts");
  fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
  fESDtrackCuts->SetEtaRange(-1., 1.);
  //
  // analysis utils if needed
  //
  fUtils = new AliAnalysisUtils();
  //

  // Output slot #0 writes into a TList container
  DefineOutput(1, TList::Class());

}


//________________________________________________________________________
void AliAnalysisTrackingUncertainties::UserCreateOutputObjects() 
{
  //
  // Create histograms
  // Called once
  //
  fListHist = new TList();
  fListHist->SetOwner(kTRUE);
  //
  // (1.) basic QA and statistics histograms
  //
  TH2F * histVertexSelection = new TH2F("histVertexSelection", "vertex selection; vertex z (cm); accepted/rejected", 100, -50., 50., 2, -0.5, 1.5);
  fListHist->Add(histVertexSelection);
  //
  // (2.) track cut variation histograms
  //
  InitializeTrackCutHistograms();
  //
  // (3.) ITS -> TPC matching histograms
  //
  //  Int_t    binsMatch[kNumberOfAxes] = { 10,   50,    20,            18,  6};
  //  Double_t minMatch[kNumberOfAxes]  = {  0,  0.1,    -1,             0, -0.5};
  //  Double_t maxMatch[kNumberOfAxes]  = {200,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  //  TString axisNameMatch[kNumberOfAxes]  = {"matchChi2","pT","eta","phi","pid"};
  //  TString axisTitleMatch[kNumberOfAxes] = {"matchChi2","pT","eta","phi","pid"};
  //
  //  THnF * hBestMatch = new THnF("hBestMatch","ITS -> TPC matching ",kNumberOfAxes, binsMatch, minMatch, maxMatch);
  //  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
  //    hBestMatch->GetAxis(iaxis)->SetName(axisNameMatch[iaxis]);
  // hBestMatch->GetAxis(iaxis)->SetTitle(axisTitleMatch[iaxis]);
  //  }
  //  BinLogAxis(hBestMatch, 1);
  //  fListHist->Add(hBestMatch);
  //
  //
  //
  const int nbPt=40;
  const double ptMax=5;
  //
  TH2F * hNMatch    = new TH2F("hNMatch","N Matches",nbPt,0,ptMax,kMaxMatch+1,-0.5,kMaxMatch+0.5);
  TH2F * hBestMatch = new TH2F("hBestMatch","Best Match Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2); // OB
  TH2F * hBestMatch_cuts = new TH2F("hBestMatch_cuts","Best Match Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2);
  TH2F * hAllMatch  = new TH2F("hAllMatch","All Matches Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2);
  TH2F * hAllMatchGlo  = new TH2F("hAllMatchGlo","All Matches Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2);
  TH2F * hPtCorr_ITSTPC = new TH2F("hPtCorr_ITSTPC","PtCorr",nbPt,0,ptMax,nbPt,0,ptMax);
  TH2F * hdPtRel_ITSTPC = new TH2F("hdPtRel_ITSTPC","dPt/pt",nbPt,0,ptMax,2*nbPt+1,-0.4*ptMax,0.4*ptMax);
  TH2F * hdInvPtRel_ITSTPC = new TH2F("hdInvPtRel_ITSTPC","pt*dPt^{-1}",nbPt,0,ptMax,2*nbPt+1,-0.4*ptMax,0.4*ptMax);
  //
  fListHist->Add(hNMatch);
  fListHist->Add(hBestMatch);
  fListHist->Add(hBestMatch_cuts);
  fListHist->Add(hAllMatch);
  fListHist->Add(hAllMatchGlo);
  fListHist->Add(hPtCorr_ITSTPC);
  fListHist->Add(hdPtRel_ITSTPC);
  fListHist->Add(hdInvPtRel_ITSTPC);
  //
  //
  TH2F * hNMatchBg    = new TH2F("hNMatchBg","N Matches",nbPt,0,ptMax,kMaxMatch+1,-0.5,kMaxMatch+0.5);
  TH2F * hBestMatchBg = new TH2F("hBestMatchBg","Best Match Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2);
  TH2F * hBestMatchBg_cuts = new TH2F("hBestMatchBg_cuts","Best Match Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2); // OB
  TH2F * hAllMatchBg  = new TH2F("hAllMatchBg","All Matches Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2);
  TH2F * hAllMatchGloBg  = new TH2F("hAllMatchGloBg","All Matches Chi2",nbPt,0,ptMax,2*int(TMath::Max(1.1,kMaxChi2)),0,kMaxChi2);
  TH2F * hdPtRelBg_ITSTPC = new TH2F("hdPtRelBg_ITSTPC","dPt/pt",nbPt,0,ptMax,2*nbPt+1,-0.4*ptMax,0.4*ptMax);
  TH2F * hdInvPtRelBg_ITSTPC = new TH2F("hdInvPtRelBg_ITSTPC","pt*dPt^{-1}",nbPt,0,ptMax,2*nbPt+1,-0.4*ptMax,0.4*ptMax);

  //cout<<" here 0 : hdPtRelBg_ITSTPC "<<hdPtRelBg_ITSTPC<<" hdInvPtRelBg_ITSTPC "<<hdInvPtRelBg_ITSTPC<<endl;

  fListHist->Add(hNMatchBg);
  fListHist->Add(hBestMatchBg);
  fListHist->Add(hBestMatchBg_cuts);
  fListHist->Add(hAllMatchBg);
  fListHist->Add(hAllMatchGloBg);
   fListHist->Add(hdPtRelBg_ITSTPC);
  fListHist->Add(hdInvPtRelBg_ITSTPC);
  //add default track cuts in the output list
  fListHist->Add(fESDtrackCuts);
  //
  // post data
  //
  PostData(1, fListHist);


}



//________________________________________________________________________
void AliAnalysisTrackingUncertainties::UserExec(Option_t *) 
{
  //
  // main event loop
  //
  fESD = dynamic_cast<AliESDEvent*>( InputEvent() );
  if (!fESD) {
    PostData(1, fListHist);
    return;
  }
  //
  if (!fESDpid) fESDpid = ((AliESDInputHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->GetESDpid();
  //
  // Check Monte Carlo information and other access first:
  //
  AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
  if (!eventHandler) {
    fMCtrue = kFALSE;
  }
  //
  // extract generated particles information
  //
  AliMCEvent* mcEvent = 0x0;
  AliStack* stack = 0x0;
  if (eventHandler) mcEvent = eventHandler->MCEvent();
  if (!mcEvent) {
    if (fMCtrue) return;
  }
  if (fMCtrue) {
    //
    stack = mcEvent->Stack();
    if (!stack) return;
    //
    for(Int_t i = 0; i < stack->GetNtrack(); i++) {
      /* at the moment nothing is needed here
      TParticle * trackMC = stack->Particle(i);
      Double_t rap = trackMC->Eta();
      Double_t y = trackMC->Y();
      Double_t pT  = trackMC->Pt();
      */
      //
    }

  }
  //
  if (!fESDtrackCuts) {
    PostData(1, fListHist);
    return;
  }
  //
  // monitor vertex position and selection
  //
  TH2F * histVertexSelection = (TH2F *) fListHist->FindObject("histVertexSelection");
  //
  Float_t vertexZ = 0.;
  if (IsVertexAccepted(fESD, vertexZ)) {
    histVertexSelection->Fill(vertexZ, 0);
  } else {
    histVertexSelection->Fill(vertexZ, 1);
    return;
  }
  //
  // fill track cut variation histograms
  //
  ProcessTrackCutVariation();
  //
  // fill ITS->TPC matching histograms
  //
  ProcessItsTpcMatching();
  
  // Post output data  
  PostData(1, fListHist);
  
}      


//________________________________________________________________________
void  AliAnalysisTrackingUncertainties::ProcessItsTpcMatching(){
  //
  // check how many its-sa tracks get matched to TPC
  //
  int ntr = fESD->GetNumberOfTracks();
  //
  // initialize histograms
  //
  TH2F * hNMatch         = (TH2F*) fListHist->FindObject("hNMatch");
  TH2F * hBestMatch      = (TH2F*) fListHist->FindObject("hBestMatch");
  TH2F * hBestMatch_cuts = (TH2F*) fListHist->FindObject("hBestMatch_cuts");
  TH2F * hAllMatch       = (TH2F*) fListHist->FindObject("hAllMatch");
  TH2F * hAllMatchGlo    = (TH2F*) fListHist->FindObject("hAllMatchGlo");  
  TH2F * hPtCorr_ITSTPC  = (TH2F*) fListHist->FindObject("hPtCorr_ITSTPC");
  TH2F * hdPtRel_ITSTPC  = (TH2F*) fListHist->FindObject("hdPtRel_ITSTPC");
  TH2F * hdInvPtRel_ITSTPC = (TH2F*) fListHist->FindObject("hdInvPtRel_ITSTPC");

  //
  TH2F * hNMatchBg          = (TH2F*) fListHist->FindObject("hNMatchBg");
  TH2F * hBestMatchBg       = (TH2F*) fListHist->FindObject("hBestMatchBg");
  TH2F * hBestMatchBg_cuts  = (TH2F*) fListHist->FindObject("hBestMatchBg_cuts");
  TH2F * hAllMatchBg        = (TH2F*) fListHist->FindObject("hAllMatchBg");
  TH2F * hAllMatchGloBg     = (TH2F*) fListHist->FindObject("hAllMatchGloBg");    
  TH2F * hdPtRelBg_ITSTPC    = (TH2F*) fListHist->FindObject("hdPtRelBg_ITSTPC");
  TH2F * hdInvPtRelBg_ITSTPC = (TH2F*) fListHist->FindObject("hdInvPtRelBg_ITSTPC");

  //cout<<" here 1: hdPtRelBg_ITSTPC "<<hdPtRelBg_ITSTPC<<" hdInvPtRelBg_ITSTPC "<<hdInvPtRelBg_ITSTPC<<endl;

  //
  for (int it=0;it<ntr;it++) {
    AliESDtrack* trSA = fESD->GetTrack(it);
    if (!trSA->IsOn(AliESDtrack::kITSpureSA) || !trSA->IsOn(AliESDtrack::kITSrefit)) continue;
    double pt = trSA->Pt();

    // OB - fiducial eta and pt cuts
    Double_t etaSA = trSA->Eta();
    // std::cout<<" etaSA "<<etaSA<<std::endl; // eta range up to +/- 1.4

    Double_t ptSA  = trSA->Pt();

    if(TMath::Abs(etaSA)>0.8) continue;

    //
    Int_t nmatch = 0;
    for (int i=kMaxMatch;i--;) {fMatchChi[i]=0; fMatchTr[i]=0;}
    for (int it1=0;it1<ntr;it1++){

      //std::cout<<" here 0, it1 "<<it1<<" it "<<it<<std::endl;

      if (it1==it) continue;
      
      //std::cout<<" here 2, it1 "<<it1<<" it "<<it<<std::endl;

      AliESDtrack* trESD = fESD->GetTrack(it1);
      if (!trESD->IsOn(AliESDtrack::kTPCrefit)) continue;
      
      //std::cout<<" call match: it1 "<<it1<<" it "<<it<<" nmatch "<<nmatch<<std::endl;
      Match(trSA,trESD, nmatch, fExcludeMomFromChi2ITSTPC);
      //std::cout<<" left match: it1 "<<it1<<" it "<<it<<" nmatch "<<nmatch<<std::endl;
    }
    //
    
    // std::cout<<" if "<<it<<" filling nmatch "<<nmatch<<" best chi2 "<<fMatchChi[0]<<std::endl;
    
    hNMatch->Fill(pt,nmatch);
    if (nmatch>0){
      hBestMatch->Fill(pt,fMatchChi[0]);
      hPtCorr_ITSTPC->Fill(pt,fMatchTr[0]->Pt()); 
      hdPtRel_ITSTPC->Fill(pt,(pt-fMatchTr[0]->Pt())/pt); 
      hdInvPtRel_ITSTPC->Fill(pt,pt*( 1/pt - (1/fMatchTr[0]->Pt()) )); 
    }
    
    if (nmatch>0 && fESDtrackCuts){
      
      if(fESDtrackCuts->AcceptTrack(fMatchTr[0])){
	hBestMatch_cuts->Fill(pt,fMatchChi[0]);
      }
    }
    
    //
    for (int imt=nmatch;imt--;) {
      hAllMatch->Fill(pt,fMatchChi[imt]);
      if (fMatchTr[imt]->IsOn(AliESDtrack::kITSrefit)) hAllMatchGlo->Fill(pt,fMatchChi[imt]);
    }
    //
    nmatch = 0;
    for (int i=kMaxMatch;i--;) {fMatchChi[i]=0; fMatchTr[i]=0;}
    for (int it1=0;it1<ntr;it1++) {
      if (it1==it) continue;
      AliESDtrack* trESD = fESD->GetTrack(it1);
      if (!trESD->IsOn(AliESDtrack::kTPCrefit)) continue;
      Match(trSA,trESD, nmatch, fExcludeMomFromChi2ITSTPC, TMath::Pi());
    }
    //
    hNMatchBg->Fill(pt,nmatch);
    if (nmatch>0){
      hBestMatchBg->Fill(pt,fMatchChi[0]);
      hdPtRelBg_ITSTPC->Fill(pt,(pt-fMatchTr[0]->Pt())/pt); 
      hdInvPtRelBg_ITSTPC->Fill(pt,pt*( 1/pt - (1/fMatchTr[0]->Pt()) )); 
    }

    if (nmatch>0 && fESDtrackCuts){
      if(fESDtrackCuts->AcceptTrack(fMatchTr[0])){
	hBestMatchBg_cuts->Fill(pt,fMatchChi[0]);
      }
    }

    for (int imt=nmatch;imt--;) {
      hAllMatchBg->Fill(pt,fMatchChi[imt]);
      if (fMatchTr[imt]->IsOn(AliESDtrack::kITSrefit)) hAllMatchGloBg->Fill(pt,fMatchChi[imt]);
    }
    //
  }


}


void AliAnalysisTrackingUncertainties::Match(const AliESDtrack* tr0, const AliESDtrack* tr1, Int_t& nmatch, 
					     Bool_t excludeMom, Double_t rotate) {
  //
  // check if two tracks are matching, possible rotation for combinatoric backgr.
  // 
  Float_t bField = fESD->GetMagneticField();
  //
  const AliExternalTrackParam* trtpc0 = tr1->GetInnerParam();
  if (!trtpc0) return;
  AliExternalTrackParam trtpc(*trtpc0);
  //
  if (TMath::Abs(rotate)>1e-5) {
    const double *par = trtpc.GetParameter();
    const double *cov = trtpc.GetCovariance();
    double alp = trtpc.GetAlpha() + rotate;
    trtpc.Set(trtpc.GetX(),alp,par,cov);
  }
  //
  if (!trtpc.Rotate(tr0->GetAlpha())) return;
  if (!trtpc.PropagateTo(tr0->GetX(),bField)) return;
  double chi2 = tr0->GetPredictedChi2(&trtpc);

  //std::cout<<" in Match, nmatch "<<nmatch<<" par[4] before "<<trtpc.GetParameter()[4]<<" chi2 "<<chi2<<endl;

  // OB chi2 excluding pt 
  if(excludeMom){
    ((double*)trtpc.GetParameter())[4] = tr0->GetParameter()[4]; // set ITS mom equal TPC mom
    chi2 = tr0->GetPredictedChi2(&trtpc);

    //std::cout<<" in Match, nmatch "<<nmatch<<" par[4] after "<<trtpc.GetParameter()[4]<<" tr0 mom "<<tr0->GetParameter()[4]
    //	     <<" chi2 "<<chi2<<std::endl;
  }


  if (chi2>kMaxChi2) return;

  // std::cout<<" found good match, tr1 "<<tr1<<" chi2 "<<chi2<<std::endl;
  // std::cout<<" before: fMatchChi[0]  "<<fMatchChi[0]<<" [1] "<<fMatchChi[1]
  // 	   <<" [2]  "<<fMatchChi[2]<<" [3] "<<fMatchChi[3]
  // 	   <<" [4]  "<<fMatchChi[4]<<std::endl; 

  // std::cout<<" before: fMatchTr[0]  "<<fMatchTr[0]<<" [1] "<<fMatchTr[1]
  // 	   <<" [2]  "<<fMatchTr[2]<<" [3] "<<fMatchTr[3]
  // 	   <<" [4]  "<<fMatchTr[4]<<std::endl; 

  //
  int ins;
  for (ins=0;ins<nmatch;ins++) if (chi2<fMatchChi[ins]) break;
  if (ins>=kMaxMatch) return;
  
  for (int imv=nmatch;imv>ins;imv--) {
    if (imv>=kMaxMatch) continue;
    fMatchTr[imv]  = fMatchTr[imv-1];
    fMatchChi[imv] = fMatchChi[imv-1];
  }
  fMatchTr[ins] = tr1;
  fMatchChi[ins] = chi2;
  nmatch++;
  if (nmatch>=kMaxMatch) nmatch = kMaxMatch;
  //
}


//________________________________________________________________________
void AliAnalysisTrackingUncertainties::ProcessTrackCutVariation() {
  //
  // fill track cut variation histograms - undo cuts step-by-step and fill histograms
  //
  //
  // initialize histograms
  //
  THnF * histNcl         = (THnF *) fListHist->FindObject("histNcl");
  THnF * histChi2Tpc     = (THnF *) fListHist->FindObject("histChi2Tpc");
  THnF * histDcaZ        = (THnF *) fListHist->FindObject("histDcaZ");
  THnF * histSpd         = (THnF *) fListHist->FindObject("histSpd");
  THnF * histNcr         = (THnF *) fListHist->FindObject("histNcr");
  THnF * histCRoverFC    = (THnF *) fListHist->FindObject("histCRoverFC");
  THnF * histChi2Its     = (THnF *) fListHist->FindObject("histChi2Its");
  THnF * histTpcLength   = (THnF *) fListHist->FindObject("histTpcLength");
  THnF * histTpcItsMatch = (THnF *) fListHist->FindObject("histTpcItsMatch");
  //
  Float_t dca[2], cov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z for the vertex cut
  //
  for (Int_t i=0;i<fESD->GetNumberOfTracks();++i) {
    //
    AliESDtrack *track =fESD->GetTrack(i);
    //
    // relevant variables
    //
    //Double_t pid        = Double_t(GetPid(track));
    //
    Int_t nclsTPC       = track->GetTPCncls();
    Float_t pT          = track->Pt();
    Float_t eta         = track->Eta();
    Float_t phi         = track->Phi();
    Float_t chi2TPC     = track->GetTPCchi2();
    Float_t ncrTPC      = track->GetTPCCrossedRows();
    Int_t nclsTPCF      = track->GetTPCNclsF(); 
    Float_t nCRoverFC   = track->GetTPCCrossedRows();
    Double_t chi2ITS    = track->GetITSchi2();
    Int_t nclsITS       = track->GetITSclusters(0);
    Float_t tpcLength   = 0.;

    if (track->GetInnerParam() && track->GetESDEvent()) {
      tpcLength = track->GetLengthInActiveZone(1, 1.8, 220, track->GetESDEvent()->GetMagneticField());
    }

    if (nclsTPC != 0) {
      chi2TPC /= nclsTPC; 
    } else {
      chi2TPC = 999.;
    }

    if (nclsTPCF !=0) {
      nCRoverFC /= nclsTPCF;
    } else {
      nCRoverFC = 999.;
    }

    if (nclsITS != 0){
      chi2ITS /= nclsITS;
    }else {
      chi2ITS = 999.;
    }
    //
    track->GetImpactParameters(dca, cov);
    //
    // (1.) fill number of clusters histogram
    //
    Int_t minNclsTPC = fESDtrackCuts->GetMinNClusterTPC();
    fESDtrackCuts->SetMinNClustersTPC(0);
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistNcl[kNumberOfAxes] = {static_cast<Double_t>(nclsTPC), pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histNcl->Fill(vecHistNcl);
      }
    }
    fESDtrackCuts->SetMinNClustersTPC(minNclsTPC);
    //
    // (2.) fill chi2 TPC histogram
    //
    Float_t maxChi2 = fESDtrackCuts->GetMaxChi2PerClusterTPC();
    fESDtrackCuts->SetMaxChi2PerClusterTPC(999.);
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistChi2Tpc[kNumberOfAxes] = {chi2TPC, pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histChi2Tpc->Fill(vecHistChi2Tpc);
      }
    }
    fESDtrackCuts->SetMaxChi2PerClusterTPC(maxChi2);
    //
    // (3.) fill dca_z histogram
    //
    Float_t maxDcaZ = fESDtrackCuts->GetMaxDCAToVertexZ();
    fESDtrackCuts->SetMaxDCAToVertexZ(999.);
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistDcaZ[kNumberOfAxes] = {TMath::Abs(dca[1]), pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histDcaZ->Fill(vecHistDcaZ);
      }
    }
    fESDtrackCuts->SetMaxDCAToVertexZ(maxDcaZ);
    //
    // (4.) fill hit in SPD histogram
    //
    fESDtrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
    if (fESDtrackCuts->AcceptTrack(track)) {
      Int_t hasPoint = 0;
      if (track->HasPointOnITSLayer(0) || track->HasPointOnITSLayer(1)) hasPoint = 1;
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistSpd[kNumberOfAxes] = {static_cast<Double_t>(hasPoint), pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histSpd->Fill(vecHistSpd);
      }
    }
    fESDtrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
    //
    // (5.) fill number of crossed rows histogram
    //
    //Int_t minNcrTPC = fESDtrackCuts->GetMinNCrossedRowsTPC(); //wait for getter in ESDtrackCuts
    Int_t minNcrTPC = 0;  //for now use standard value from 2010 !!
    fESDtrackCuts->SetMinNCrossedRowsTPC(0);
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistNcr[kNumberOfAxes] = {static_cast<Double_t>(ncrTPC), pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histNcr->Fill(vecHistNcr);
      }
    }
    fESDtrackCuts->SetMinNCrossedRowsTPC(minNcrTPC);
    //
    // (6.) fill crossed rows over findable clusters histogram
    //
    //Int_t minCRoverFC = fESDtrackCuts->GetMinRatioCrossedRowsOverFindableClustersTPC(); //wait for getter in ESDtrackCuts
    Int_t minCRoverFC = 0.; //for now use standard value from 2010 !!
    fESDtrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.);
    if (fESDtrackCuts->AcceptTrack(track)) {
       for(Int_t iPid = 0; iPid < 6; iPid++) {
	 Double_t vecHistCRoverFC[kNumberOfAxes] = {static_cast<Double_t>(nCRoverFC), pT, eta, phi, static_cast<Double_t>(iPid)};
	 if (IsConsistentWithPid(iPid, track)) histCRoverFC->Fill(vecHistCRoverFC);
       }
    }
    fESDtrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minCRoverFC);
    //
    // (7.) fill chi2 ITS histogram
    //
    Float_t maxChi2ITS = fESDtrackCuts->GetMaxChi2PerClusterITS();
    fESDtrackCuts->SetMaxChi2PerClusterITS(999.);
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistChi2ITS[kNumberOfAxes] = {chi2ITS, pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histChi2Its->Fill(vecHistChi2ITS);
      }
    }
    fESDtrackCuts->SetMaxChi2PerClusterITS(maxChi2ITS);
    //
    // (8.) fill active length in TPC histogram
    //
    Int_t minTpcLength = fESDtrackCuts->GetMinLengthActiveVolumeTPC();
    fESDtrackCuts->SetMinLengthActiveVolumeTPC(0);
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistTpcLength[kNumberOfAxes] = {tpcLength, pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histTpcLength->Fill(vecHistTpcLength);
      }
    }
    fESDtrackCuts->SetMinLengthActiveVolumeTPC(minTpcLength);
    //
    // (9.) fill TPC->ITS matching efficiency histogram
    //
    Bool_t isMatched = kFALSE;
    // remove all ITS requirements
    //
    // Leonardo and Emilia: 
    //  -> if MC is available: fill it only for true primaries, 
    //        --to be done for every cut?
    //  -> Postprocessing: plot histogram with 1 divided by histogram with 0 as a function of pT/eta/phi
    //  -> Do we want to remove the DCA cut?
    Bool_t refit=fESDtrackCuts->GetRequireITSRefit();
    Float_t chi2tpc= fESDtrackCuts->GetMaxChi2TPCConstrainedGlobal();
    Float_t chi2its= fESDtrackCuts->GetMaxChi2PerClusterITS();
    //TString str = fESDtrackCuts->GetMaxDCAToVertexXYPtDep();
    
    fESDtrackCuts->SetRequireITSRefit(kFALSE);
    fESDtrackCuts->SetMaxChi2TPCConstrainedGlobal(99999.);
    fESDtrackCuts->SetMaxChi2PerClusterITS(999999.);
	//TString str = fESDtrackCuts->GetMaxDCAToVertexXYPtDep();
    //fESDtrackCuts->SetMaxDCAToVertexXYPtDep();
    fESDtrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kOff);
    
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistTpcItsMatch[kNumberOfAxes] = {static_cast<Double_t>(isMatched), pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histTpcItsMatch->Fill(vecHistTpcItsMatch); // fill with 1 here
      }
    }
    //apply back the cuts
    fESDtrackCuts->SetRequireITSRefit(refit);
    fESDtrackCuts->SetMaxChi2TPCConstrainedGlobal(chi2tpc);
    fESDtrackCuts->SetMaxChi2PerClusterITS(chi2its);
    //fESDtrackCuts->SetMaxDCAToVertexXYPtDep(str.Data());
    fESDtrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
    //set is matched
    isMatched=kTRUE;
    if (fESDtrackCuts->AcceptTrack(track)) {
      for(Int_t iPid = 0; iPid < 6; iPid++) {
	Double_t vecHistTpcItsMatch[kNumberOfAxes] = {static_cast<Double_t>(isMatched), pT, eta, phi, static_cast<Double_t>(iPid)};
	if (IsConsistentWithPid(iPid, track)) histTpcItsMatch->Fill(vecHistTpcItsMatch); // fill with 0 here
      }
    }
    
  } // end of track loop


}



//________________________________________________________________________
void AliAnalysisTrackingUncertainties::Terminate(Option_t *) 
{
  // Draw result to the screen
  // Called once at the end of the query


}


//________________________________________________________________________
void AliAnalysisTrackingUncertainties::BinLogAxis(const THn *h, Int_t axisNumber) {
  //
  // Method for the correct logarithmic binning of histograms
  //
  TAxis *axis = h->GetAxis(axisNumber);
  int bins = axis->GetNbins();

  Double_t from = axis->GetXmin();
  Double_t to = axis->GetXmax();
  Double_t *newBins = new Double_t[bins + 1];
   
  newBins[0] = from;
  Double_t factor = pow(to/from, 1./bins);
  
  for (int i = 1; i <= bins; i++) {
   newBins[i] = factor * newBins[i-1];
  }
  axis->Set(bins, newBins);
  delete [] newBins;
  
}


//________________________________________________________________________
Bool_t AliAnalysisTrackingUncertainties::IsVertexAccepted(AliESDEvent * esd, Float_t &vertexZ) {
  //
  // function to check if a proper vertex is reconstructed and write z-position in vertexZ
  //
  vertexZ = -999.;
  Bool_t vertexOkay = kFALSE;
  const AliESDVertex *vertex = esd->GetPrimaryVertexTracks();
  if (vertex->GetNContributors() < 1) {
    //
    vertex = esd->GetPrimaryVertexSPD();
    if (vertex->GetNContributors() < 1) {
      vertexOkay = kFALSE; }
    else {
      vertexOkay = kTRUE;
    }
    //
    TString vtxTyp = vertex->GetTitle();
    Double_t cov[6]={0};
    vertex->GetCovarianceMatrix(cov);
    Double_t zRes = TMath::Sqrt(cov[5]);
    if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) vertexOkay = kFALSE;
  }
  else {
    vertexOkay = kTRUE;
  }

  vertexZ = vertex->GetZ();  
  return vertexOkay;

}

//________________________________________________________________________
AliAnalysisTrackingUncertainties::ESpecies_t AliAnalysisTrackingUncertainties::GetPid(const AliESDtrack * const tr, Bool_t useTPCTOF) const {
    //
    // Determine particle species for a given track
    // Two approaches can be used: As default the selection is done using TPC-only, in addition
    // the TOF usage is optional. In case of TPC-TOF, a valid TOF signal has to be provided for 
    // the given track. The identification is delegated to helper function for each species. 
    // Tracks which are selected as more than one species (ambiguous decision) are rejected.
    //
    // @Return: Particles species (kUndef in case no identification is possible)
    //
    if(!fESDpid) return kUndef;
    if(useTPCTOF && !(tr->GetStatus() & AliVTrack::kTOFpid)) return kUndef;

    Bool_t isElectron(kFALSE), isPion(kFALSE), isKaon(kFALSE), isProton(kFALSE);
    Int_t nspec(0);
    if((isElectron = IsElectron(tr, useTPCTOF))) nspec++;
    if((isPion = IsPion(tr, useTPCTOF))) nspec++;
    if((isKaon = IsKaon(tr, useTPCTOF))) nspec++;
    if((isProton = IsProton(tr,useTPCTOF))) nspec++;
    if(nspec != 1) return kUndef;   // No decision or ambiguous decision;
    if(isElectron) return kSpecElectron;
    if(isPion) return kSpecPion;
    if(isProton) return kSpecProton;
    if(isKaon) return kSpecKaon;
    return kUndef;
}

//________________________________________________________________________
Bool_t AliAnalysisTrackingUncertainties::IsElectron(const AliESDtrack * const tr, Bool_t useTPCTOF) const {
    //
    // Selection of electron candidates using the upper half of the TPC sigma band, starting at 
    // the mean ignoring its shift, and going up to 3 sigma above the mean. In case TOF information 
    // is available, tracks which are incompatible with electrons within 3 sigma are rejected. If 
    // no TOF information is used, the momentum regions where the kaon and the proton line cross 
    // the electron line are cut out using a 3 sigma cut around the kaon or proton line.
    //

    Float_t nsigmaElectronTPC = fESDpid->NumberOfSigmasTPC(tr, AliPID::kElectron);
    if(nsigmaElectronTPC < 0 || nsigmaElectronTPC  > 3) return kFALSE;

    if(useTPCTOF){
        Float_t nsigmaElectronTOF = fESDpid->NumberOfSigmasTOF(tr, AliPID::kElectron);
        if(TMath::Abs(nsigmaElectronTOF) > 3) return kFALSE;
        else return kTRUE;
    } else {
        Float_t nsigmaKaonTPC = fESDpid->NumberOfSigmasTPC(tr, AliPID::kKaon),
                nsigmaProtonTPC =fESDpid->NumberOfSigmasTPC(tr, AliPID::kProton);
        if(TMath::Abs(nsigmaKaonTPC < 3) || TMath::Abs(nsigmaProtonTPC < 3)) return kFALSE;
        else return kTRUE;
    }
}

//________________________________________________________________________
Bool_t AliAnalysisTrackingUncertainties::IsConsistentWithPid(Int_t type, const AliESDtrack * const tr) {
  //
  // just check if the PID is consistent with a given hypothesis in order to 
  // investigate effects which are only dependent on the energy loss.
  //
  if (type == kSpecPion)     return IsPion(tr);
  if (type == kSpecKaon)     return IsKaon(tr);
  if (type == kSpecProton)   return IsProton(tr);
  if (type == kSpecElectron) return IsElectron(tr);
  if (type == kAll)          return kTRUE;
  return kFALSE;

}

//________________________________________________________________________
Bool_t AliAnalysisTrackingUncertainties::IsPion(const AliESDtrack * const tr, Bool_t /*useTPCPTOF*/) const{
  //
  // Selectron of pion candidates
  // @TODO: To be implemented
  //
  Float_t nsigmaPionTPC = fESDpid->NumberOfSigmasTPC(tr, AliPID::kPion);
  if (TMath::Abs(nsigmaPionTPC) < 3) return kTRUE;
  return kFALSE;

}

//________________________________________________________________________
Bool_t AliAnalysisTrackingUncertainties::IsKaon(const AliESDtrack * const tr, Bool_t /*useTPCPTOF*/) const {
  //
  // Selection of kaon candidates
  // @TODO: To be implemented
  //
  Float_t nsigmaKaonTPC = fESDpid->NumberOfSigmasTPC(tr, AliPID::kKaon);
  if (TMath::Abs(nsigmaKaonTPC) < 3) return kTRUE;
  return kFALSE;

}

//________________________________________________________________________
Bool_t AliAnalysisTrackingUncertainties::IsProton(const AliESDtrack * const tr, Bool_t /*useTPCPTOF*/) const{
  // 
  // Selection of proton candidates
  // @TODO: To be implemented
  //
  Float_t nsigmaProtonTPC = fESDpid->NumberOfSigmasTPC(tr, AliPID::kProton);
  if (TMath::Abs(nsigmaProtonTPC) < 3) return kTRUE;
  return kFALSE;
  
}

//________________________________________________________________________
void AliAnalysisTrackingUncertainties::InitializeTrackCutHistograms() {
  //
  // create histograms for the track cut studies
  //
  //
  // (1.) number of clusters       
  //                               0-ncl, 1-pt, 2-eta,         3-phi, 4-pid(0-3 -> electron-proton, 4 -> undef, 5 -> all)
  Int_t    binsNcl[kNumberOfAxes] = { 40,   50,    20,            18,  6};
  Double_t minNcl[kNumberOfAxes]  = { 20,  0.1,    -1,             0, -0.5};
  Double_t maxNcl[kNumberOfAxes]  = {160,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameNcl[kNumberOfAxes]  = {"ncl","pT","eta","phi","pid"};
  TString axisTitleNcl[kNumberOfAxes] = {"ncl","pT","eta","phi","pid"};
  //
  THnF * histNcl = new THnF("histNcl","number of clusters histogram",kNumberOfAxes, binsNcl, minNcl, maxNcl);
  BinLogAxis(histNcl, 1);
  fListHist->Add(histNcl);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histNcl->GetAxis(iaxis)->SetName(axisNameNcl[iaxis]);
    histNcl->GetAxis(iaxis)->SetTitle(axisTitleNcl[iaxis]);
  }
  //
  // (2.) chi2/cls-TPC            
  //                                  0-chi2, 1-pt, 2-eta,         3-phi, 4-pid(0-3 -> electron-proton, 4 -> undef, 5 -> all)
  Int_t    binsChi2Tpc[kNumberOfAxes] = { 40,   50,    20,            18,  6};
  Double_t minChi2Tpc[kNumberOfAxes]  = {  0,  0.1,    -1,             0, -0.5};
  Double_t maxChi2Tpc[kNumberOfAxes]  = {  8,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameChi2Tpc[kNumberOfAxes]  = {"chi2tpc","pT","eta","phi","pid"};
  TString axisTitleChi2Tpc[kNumberOfAxes] = {"chi2tpc","pT","eta","phi","pid"};
  //
  THnF * histChi2Tpc = new THnF("histChi2Tpc","chi2 per cls. in TPC",kNumberOfAxes, binsChi2Tpc, minChi2Tpc, maxChi2Tpc);
  BinLogAxis(histChi2Tpc, 1);
  fListHist->Add(histChi2Tpc);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histChi2Tpc->GetAxis(iaxis)->SetName(axisNameChi2Tpc[iaxis]);
    histChi2Tpc->GetAxis(iaxis)->SetTitle(axisTitleChi2Tpc[iaxis]);
  }
  //
  // (3.) dca_z
  //                               0-dcaZ, 1-pt, 2-eta,         3-phi, 4-pid(0-3 -> electron-proton, 4 -> undef, 5 -> all)
  Int_t    binsDcaZ[kNumberOfAxes] = { 20,   50,    20,            18,  6};
  Double_t minDcaZ[kNumberOfAxes]  = {  0,  0.1,    -1,             0, -0.5};
  Double_t maxDcaZ[kNumberOfAxes]  = {  4,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameDcaZ[kNumberOfAxes]  = {"dcaZ","pT","eta","phi","pid"};
  TString axisTitleDcaZ[kNumberOfAxes] = {"dcaZ","pT","eta","phi","pid"};
  //
  THnF * histDcaZ = new THnF("histDcaZ","dca_z to prim. vtx.",kNumberOfAxes, binsDcaZ, minDcaZ, maxDcaZ);
  BinLogAxis(histDcaZ, 1);
  fListHist->Add(histDcaZ);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histDcaZ->GetAxis(iaxis)->SetName(axisNameDcaZ[iaxis]);
    histDcaZ->GetAxis(iaxis)->SetTitle(axisTitleDcaZ[iaxis]);
  }
  //
  // (4.) hit in SPD layer
  //                              0-spdHit, 1-pt, 2-eta,         3-phi, 4-pid(0-3 -> electron-proton, 4 -> undef, 5 -> all)
  Int_t    binsSpd[kNumberOfAxes] = {    2,   50,    20,            18,  6};
  Double_t minSpd[kNumberOfAxes]  = { -0.5,  0.1,    -1,             0, -0.5};
  Double_t maxSpd[kNumberOfAxes]  = {  1.5,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameSpd[kNumberOfAxes]  = {"spdHit","pT","eta","phi","pid"};
  TString axisTitleSpd[kNumberOfAxes] = {"spdHit","pT","eta","phi","pid"};
  //
  THnF * histSpd = new THnF("histSpd","hit in SPD layer or not",kNumberOfAxes, binsSpd, minSpd, maxSpd);
  BinLogAxis(histSpd, 1);
  fListHist->Add(histSpd);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histSpd->GetAxis(iaxis)->SetName(axisNameSpd[iaxis]);
    histSpd->GetAxis(iaxis)->SetTitle(axisTitleSpd[iaxis]);
  }
  //
  // (5.) number of crossed rows       
  //                               0-ncr, 1-pt, 2-eta,         3-phi, 4-pid(0,unid,etc.)
  Int_t    binsNcr[kNumberOfAxes] = { 40,   50,    20,            18,  6};
  Double_t minNcr[kNumberOfAxes]  = { 20,  0.1,    -1,             0, -0.5};
  Double_t maxNcr[kNumberOfAxes]  = {160,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameNcr[kNumberOfAxes]  = {"Ncr","pT","eta","phi","pid"};
  TString axisTitleNcr[kNumberOfAxes] = {"Ncr","pT","eta","phi","pid"};
  //
  THnF * histNcr = new THnF("histNcr","number of crossed rows TPC histogram",kNumberOfAxes, binsNcr, minNcr, maxNcr);
  BinLogAxis(histNcr, 1);
  fListHist->Add(histNcr);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histNcr->GetAxis(iaxis)->SetName(axisNameNcr[iaxis]);
    histNcr->GetAxis(iaxis)->SetTitle(axisTitleNcr[iaxis]);
  }
  //
  // (6.) ratio crossed rows over findable clusters       
  //                                0-CRoverFC, 1-pt, 2-eta,         3-phi, 4-pid(0,unid,etc.)
  Int_t    binsCRoverFC[kNumberOfAxes] = {  26,   50,    20,            18,  6};
  Double_t minCRoverFC[kNumberOfAxes]  = { 0.4,  0.1,    -1,             0, -0.5};
  Double_t maxCRoverFC[kNumberOfAxes]  = { 1.8,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameCRoverFC[kNumberOfAxes]  = {"CRoverFC","pT","eta","phi","pid"};
  TString axisTitleCRoverFC[kNumberOfAxes] = {"CRoverFC","pT","eta","phi","pid"};
  //
  THnF * histCRoverFC = new THnF("histCRoverFC","number of crossed rows over findable clusters histogram",kNumberOfAxes, binsCRoverFC, minCRoverFC, maxCRoverFC);
  BinLogAxis(histCRoverFC, 1);
  fListHist->Add(histCRoverFC);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histCRoverFC->GetAxis(iaxis)->SetName(axisNameCRoverFC[iaxis]);
    histCRoverFC->GetAxis(iaxis)->SetTitle(axisTitleCRoverFC[iaxis]);
  }
  //
  // (7.) max chi2 / ITS cluster       
  //                               0-Chi2Its, 1-pt, 2-eta,         3-phi, 4-pid(0,unid,etc.)
  Int_t    binsChi2Its[kNumberOfAxes] = { 25,   50,    20,            18,  6};
  Double_t minChi2Its[kNumberOfAxes]  = {  0,  0.1,    -1,             0, -0.5};
  Double_t maxChi2Its[kNumberOfAxes]  = { 50,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameChi2Its[kNumberOfAxes]  = {"Chi2Its","pT","eta","phi","pid"};
  TString axisTitleChi2Its[kNumberOfAxes] = {"Chi2Its","pT","eta","phi","pid"};
  //
  THnF * histChi2Its = new THnF("histChi2Its","number of crossed rows TPC histogram",kNumberOfAxes, binsChi2Its, minChi2Its, maxChi2Its);
  BinLogAxis(histChi2Its, 1);
  fListHist->Add(histChi2Its);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histChi2Its->GetAxis(iaxis)->SetName(axisNameChi2Its[iaxis]);
    histChi2Its->GetAxis(iaxis)->SetTitle(axisTitleChi2Its[iaxis]);
  }
  //
  // (8.) tpc active volume length       
  //                                0-TpcLength, 1-pt, 2-eta,         3-phi, 4-pid(0,unid,etc.)
  Int_t    binsTpcLength[kNumberOfAxes] = {  40,   50,    20,            18,  6};
  Double_t minTpcLength[kNumberOfAxes]  = {   0,  0.1,    -1,             0, -0.5};
  Double_t maxTpcLength[kNumberOfAxes]  = { 170,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameTpcLength[kNumberOfAxes]  = {"TpcLength","pT","eta","phi","pid"};
  TString axisTitleTpcLength[kNumberOfAxes] = {"TpcLength","pT","eta","phi","pid"};
  //
  THnF * histTpcLength = new THnF("histTpcLength","number of crossed rows TPC histogram",kNumberOfAxes, binsTpcLength, minTpcLength, maxTpcLength);
  BinLogAxis(histTpcLength, 1);
  fListHist->Add(histTpcLength);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histTpcLength->GetAxis(iaxis)->SetName(axisNameTpcLength[iaxis]);
    histTpcLength->GetAxis(iaxis)->SetTitle(axisTitleTpcLength[iaxis]);
  }
  //
  // (9.) match TPC->ITS
  //                                  0-is matched, 1-pt, 2-eta,         3-phi, 4-pid(0-3 -> electron-proton, 4 -> undef, 5 -> all)
  Int_t    binsTpcItsMatch[kNumberOfAxes] = {    2,   50,    20,            18,  6};
  Double_t minTpcItsMatch[kNumberOfAxes]  = { -0.5,  0.1,    -1,             0, -0.5};
  Double_t maxTpcItsMatch[kNumberOfAxes]  = {  1.5,   20,    +1, 2*TMath::Pi(),  5.5};
  //
  TString axisNameTpcItsMatch[kNumberOfAxes]  = {"isMatched","pT","eta","phi","pid"};
  TString axisTitleTpcItsMatch[kNumberOfAxes] = {"isMatched","pT","eta","phi","pid"};
  //
  THnF * histTpcItsMatch = new THnF("histTpcItsMatch","TPC -> ITS matching",kNumberOfAxes, binsTpcItsMatch, minTpcItsMatch, maxTpcItsMatch);
  BinLogAxis(histTpcItsMatch, 1);
  fListHist->Add(histTpcItsMatch);
  //
  for (Int_t iaxis=0; iaxis<kNumberOfAxes;iaxis++){
    histTpcItsMatch->GetAxis(iaxis)->SetName(axisNameTpcItsMatch[iaxis]);
    histTpcItsMatch->GetAxis(iaxis)->SetTitle(axisTitleTpcItsMatch[iaxis]);
  }




}

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