ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: Yvonne Pachmayer <pachmay@physi.uni-heidelberg.de>             *
* 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 task:
// stores TPC PID quantities in a THnSparse
// output can then be used for e.g. dEdx calibration
//
// Author:
// Yvonne Pachmayer <pachmay@physi.uni-heidelberg.de>
//


#include "AliTPCcalibResidualPID.h"
#include "TChain.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
//#include "AliStack.h"
#include "AliPID.h"
#include "AliTPCcalibResidualPID.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliPIDResponse.h"
#include "AliInputEventHandler.h"
#include "AliESDInputHandler.h"
#include "AliESDv0KineCuts.h"
#include "AliESDv0.h"
#include "AliCentrality.h"
#include "THnSparse.h"
#include "TH2D.h"
#include "TCanvas.h"
#include "TGraphErrors.h"
#include "TMultiGraph.h"
#include "TAxis.h"
#include "TFile.h"
#include "TSpline.h"
#include "TStyle.h"
#include "AliTPCdEdxInfo.h"
#include "TString.h"
#include "TFitResult.h"
#include "TH1F.h"
#include "TLegend.h"
#include "TVirtualFitter.h"
#include "TTree.h"

using namespace std;

ClassImp(AliTPCcalibResidualPID)

Double_t AliTPCcalibResidualPID::fgCutGeo = 1.;   
Double_t AliTPCcalibResidualPID::fgCutNcr = 0.85; 
Double_t AliTPCcalibResidualPID::fgCutNcl = 0.7;  

//________________________________________________________________________
AliTPCcalibResidualPID::AliTPCcalibResidualPID()
  : AliAnalysisTaskSE(), fESD(0), fMC(0), fOutputContainer(0), fESDtrackCuts(0), fESDtrackCutsV0(0), fPIDResponse(0),
    fNumEtaCorrReqErrorsIssued(0),
    fNumMultCorrReqErrorsIssued(0),
    fUseTPCCutMIGeo(kFALSE),
    fUseMCinfo(kTRUE),
    fIsPbpOrpPb(kFALSE),
    fZvtxCutEvent(9999.0),
    fV0KineCuts(0x0),
    fCutOnProdRadiusForV0el(kTRUE),
    fNumTagsStored(0),
    fV0tags(0x0),
    fV0motherIndex(0x0),
    fV0motherPDG(0x0),
    fProduceAllPadTypes(0),
    fProduceGlobal(0),
    fProduceShortPads(0),
    fProduceMediumPads(0),
    fProduceLongPads(0),
    fProduceOroc(0),
    fHistPidQA(0), 
    fHistPidQAshort(0),
    fHistPidQAmedium(0),
    fHistPidQAlong(0),
    fHistPidQAoroc(0),
    fProduceTPCSignalSparse(0),
    fCorrectdEdxEtaDependence(0),
    fCorrectdEdxMultiplicityDependence(0),
    fThnspTpc(0),
    fWriteAdditionalOutput(kFALSE),
    fQAList(0x0),
    fhInvMassGamma(0x0),
    fhInvMassK0s(0x0),
    fhInvMassLambda(0x0),
    fhInvMassAntiLambda(0x0),
    fhArmenterosAll(0x0),
    fhArmenterosGamma(0x0),
    fhArmenterosK0s(0x0),
    fhArmenterosLambda(0x0),
    fhArmenterosAntiLambda(0x0),
    fHistSharedClusQAV0Pi(0x0),
    fHistSharedClusQAV0Pr(0x0),
    fHistSharedClusQAV0El(0x0),
    fTreeV0El(0x0),
    fTreeV0Pi(0x0),
    fTreeV0Pr(0x0),
    fTree_dEdx_tr(0.),
    fTree_dEdx_nb(0.),
    fTree_dEdx_vs(0.),
    fTree_dEdxExpected_tr(0.),
    fTree_p_TPC_tr(0.),
    fTree_p_TPC_nb(0.),
    fTree_p_TPC_vs(0.),
    fTree_BtimesChargeOverPt_tr(0.),
    fTree_BtimesChargeOverPt_nb(0.),
    fTree_BtimesChargeOverPt_vs(0.),
    fTree_tanTheta_tr(0.),
    fTree_tanTheta_nb(0.),
    fTree_tanTheta_vs(0.),
    fTree_distance_nb(0.),
    fTree_distance_vs(0.)
{
  // default Constructor
   /* fast compilation test
     gSystem->Load("libANALYSIS");
     gSystem->Load("libANALYSISalice");
     .L /lustre/alice/akalweit/train/trunk/util/statsQA/AliTPCcalibResidualPID.cxx++
   */

}


//________________________________________________________________________
AliTPCcalibResidualPID::AliTPCcalibResidualPID(const char *name)
  : AliAnalysisTaskSE(name), fESD(0), fMC(0), fOutputContainer(0), fESDtrackCuts(0), fESDtrackCutsV0(0), fPIDResponse(0),
    fNumEtaCorrReqErrorsIssued(0),
    fNumMultCorrReqErrorsIssued(0),
    fUseTPCCutMIGeo(kFALSE),
    fUseMCinfo(kTRUE),
    fIsPbpOrpPb(kFALSE),
    fZvtxCutEvent(9999.0),
    fV0KineCuts(0x0),
    fCutOnProdRadiusForV0el(kTRUE),
    fNumTagsStored(0),
    fV0tags(0x0),
    fV0motherIndex(0x0),
    fV0motherPDG(0x0),
    fProduceAllPadTypes(0),
    fProduceGlobal(0),
    fProduceShortPads(0),
    fProduceMediumPads(0),
    fProduceLongPads(0),
    fProduceOroc(0),
    fHistPidQA(0),
    fHistPidQAshort(0),
    fHistPidQAmedium(0),
    fHistPidQAlong(0), 
    fHistPidQAoroc(0),
    fProduceTPCSignalSparse(0),
    fCorrectdEdxEtaDependence(0),
    fCorrectdEdxMultiplicityDependence(0),
    fThnspTpc(0),
    fWriteAdditionalOutput(kFALSE),
    fQAList(0x0),
    fhInvMassGamma(0x0),
    fhInvMassK0s(0x0),
    fhInvMassLambda(0x0),
    fhInvMassAntiLambda(0x0),
    fhArmenterosAll(0x0),
    fhArmenterosGamma(0x0),
    fhArmenterosK0s(0x0),
    fhArmenterosLambda(0x0),
    fhArmenterosAntiLambda(0x0),
    fHistSharedClusQAV0Pi(0x0),
    fHistSharedClusQAV0Pr(0x0),
    fHistSharedClusQAV0El(0x0),
    fTreeV0El(0x0),
    fTreeV0Pi(0x0),
    fTreeV0Pr(0x0),
    fTree_dEdx_tr(0.),
    fTree_dEdx_nb(0.),
    fTree_dEdx_vs(0.),
    fTree_dEdxExpected_tr(0.),
    fTree_p_TPC_tr(0.),
    fTree_p_TPC_nb(0.),
    fTree_p_TPC_vs(0.),
    fTree_BtimesChargeOverPt_tr(0.),
    fTree_BtimesChargeOverPt_nb(0.),
    fTree_BtimesChargeOverPt_vs(0.),
    fTree_tanTheta_tr(0.),
    fTree_tanTheta_nb(0.),
    fTree_tanTheta_vs(0.),
    fTree_distance_nb(0.),
    fTree_distance_vs(0.)
{

  //fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE);
  //fESDtrackCutsV0 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);

  // Constructor
  DefineInput(0, TChain::Class());
  DefineOutput(1, TObjArray::Class());
  DefineOutput(2, TObjArray::Class());
  DefineOutput(3, TTree::Class());
  DefineOutput(4, TTree::Class());
  DefineOutput(5, TTree::Class());

}


//_________________________________________________
AliTPCcalibResidualPID::~AliTPCcalibResidualPID()
{
  delete fOutputContainer;
  fOutputContainer = 0;
  
  delete fQAList;
  fQAList = 0;
  
  /*
  delete fTreeV0El;
  fTreeV0El = 0;
  
  delete fTreeV0Pi;
  fTreeV0Pi = 0;
  
  delete fTreeV0Pr;
  fTreeV0Pr = 0;
  */
  
  delete fESDtrackCuts;
  fESDtrackCuts = 0;
  
  delete fESDtrackCutsV0;
  fESDtrackCutsV0 = 0;
  
  delete fV0KineCuts;
  fV0KineCuts = 0;
  
  delete fV0tags;
  fV0tags = 0;
  fNumTagsStored = 0;
  
  delete fV0motherIndex;
  fV0motherIndex = 0;
  
  delete fV0motherPDG;
  fV0motherPDG = 0;
}


//________________________________________________________________________
void AliTPCcalibResidualPID::UserCreateOutputObjects()
{
  AliInputEventHandler* inputHandler = dynamic_cast<AliInputEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
  if (!inputHandler)
    printf("Inputhandler not available \n");
  else
    fPIDResponse = inputHandler->GetPIDResponse();
  
  // THnSparse binning
  const Int_t kNdim = 9;
  //v0id,  dEdx,  TPCsigele,  TPCsigpion,  TOFbit,  eta, TPCclus, centr, p
  Int_t bins[kNdim] =    {    4,    250,    200,    200,          8,    20,        50,   20,   100};
  Double_t xmin[kNdim] = {  0.5,     30,   -10.,   -10.,       -1.5,   -1.,       60.,   0.,   0.1};
  Double_t xmax[kNdim] = {  4.5,   500.,    10.,    10.,        6.5,    1.,      160.,  100,   4};
  fThnspTpc= new THnSparseF("tpcsignals", "TPC signal;v0id;tpc signal;tpcsigele;tpcsigpion;tofbit;eta;tpcclus;centr;p (GeV/c)", kNdim, bins, xmin, xmax);
  BinLogAxis(fThnspTpc, 8);

  //
  // 0.ptot, 1.tpcSig, 2.particle ID, 3. assumed particle, 4. nSigmaTPC (4x), 5. nSigmaTOF (4x), 6. centrality
  // Concerning 2 (particle ID): 
  // - in case of MC: Contains MC ID. Bin 1-4 (<=> Slot 0-3): el, pi, ka, pr
  // - in case of data: Contains V0 particles + bin with all others: Bin 1-4 (<=> Slot 0-3): All non-V0s, V0-el, V0-pi, V0-pr
  //
      
  Int_t    binsHistQA[7] = {135, 1980,    4,    5, 40, 10,   40};
  Double_t xminHistQA[7] = {0.1,   20, -0.5, -0.5, -10, -5,   0.};
  Double_t xmaxHistQA[7] = {50., 2000,  3.5,  4.5,  10,  5, 20000};
  fHistPidQA = new THnSparseF("fHistPidQA","PID QA",7,binsHistQA,xminHistQA,xmaxHistQA);
  BinLogAxis(fHistPidQA, 0);

  //
  fHistPidQAshort  = new THnSparseF("fHistPidQAshort" ,"PID QA -- short pads",7,binsHistQA,xminHistQA,xmaxHistQA);
  fHistPidQAmedium = new THnSparseF("fHistPidQAmedium","PID QA -- med pads",7,binsHistQA,xminHistQA,xmaxHistQA);
  fHistPidQAlong   = new THnSparseF("fHistPidQAlong"  ,"PID QA -- long pads",7,binsHistQA,xminHistQA,xmaxHistQA);
  fHistPidQAoroc   = new THnSparseF("fHistPidQAoroc"  ,"PID QA -- oroc",7,binsHistQA,xminHistQA,xmaxHistQA);
  BinLogAxis(fHistPidQAshort, 0);
  BinLogAxis(fHistPidQAmedium, 0);
  BinLogAxis(fHistPidQAlong, 0);
  BinLogAxis(fHistPidQAoroc, 0);
  //
  fOutputContainer = new TObjArray(2);
  fOutputContainer->SetName(GetName());
  fOutputContainer->SetOwner();

  if(fProduceTPCSignalSparse)fOutputContainer->Add(fThnspTpc);
  if(fProduceGlobal)fOutputContainer->Add(fHistPidQA);
  if(fProduceAllPadTypes || fProduceShortPads)fOutputContainer->Add(fHistPidQAshort);
  if(fProduceAllPadTypes || fProduceMediumPads)fOutputContainer->Add(fHistPidQAmedium);
  if(fProduceAllPadTypes || fProduceLongPads)fOutputContainer->Add(fHistPidQAlong);
  if(fProduceAllPadTypes || fProduceOroc)fOutputContainer->Add(fHistPidQAoroc);
  
  // V0 Kine cuts 
  fV0KineCuts = new AliESDv0KineCuts;
  fV0KineCuts->SetGammaCutChi2NDF(5.);
  
  if (fCutOnProdRadiusForV0el) {
    // Only accept V0el with prod. radius within 45 cm -> PID will by systematically biased for larger values!
    Float_t gammaProdVertexRadiusCuts[2] = { 3.0, 45. }; 
    fV0KineCuts->SetGammaCutVertexR(&gammaProdVertexRadiusCuts[0]);
  }
  
  
  if (fWriteAdditionalOutput) {
    fQAList = new TObjArray(4);
    fQAList->SetName(GetName());
    fQAList->SetOwner();
    
    fhInvMassGamma      = new TH1F("fhInvMassGamma", "Invariant Mass of gammas; m_{ee} (GeV/#it{c}^{2}); Entries", 200, 0., 0.2);
    fhInvMassK0s        = new TH1F("fhInvMassK0s", "Invariant Mass of K0s; m_{#pi#pi} (GeV/#it{c}^{2}); Entries;", 200, 0.45, 0.55);
    fhInvMassLambda     = new TH1F("fhInvMassLambda", "Invariant Mass of lambdas; m_{p#pi^{-}} (GeV/#it{c}^{2}); Entries", 200, 1.05, 1.15);
    fhInvMassAntiLambda = new TH1F("fhInvMassAntiLambda", "Invariant Mass of anti-lambdas; m_{#pi^{+}#bar{p}} (GeV/#it{c}^{2}); Entries",
                                  200, 1.05, 1.15);
    
    fQAList->Add(fhInvMassGamma);
    fQAList->Add(fhInvMassK0s);
    fQAList->Add(fhInvMassLambda);
    fQAList->Add(fhInvMassAntiLambda);
    
    
    fhArmenterosAll = new TH2F("fhArmenterosAll",
                              "Armenteros plot all V0s;#alpha = (#it{p}^{+}_{L}-#it{p}^{-}_{L})/(#it{p}^{+}_{L}+#it{p}^{-}_{L});#it{q}_{T} (GeV/#it{c})",
                              200, -1., 1., 200, 0., 0.4);
    fhArmenterosGamma = new TH2F("fhArmenterosGamma",
                                "Armenteros plot Gamma;#alpha = (#it{p}^{+}_{L}-#it{p}^{-}_{L})/(#it{p}^{+}_{L}+#it{p}^{-}_{L});#it{q}_{T} (GeV/#it{c})",
                                200, -1., 1., 200, 0., 0.4);
    fhArmenterosK0s = new TH2F("fhArmenterosK0s",
                              "Armenteros plot K0s;#alpha = (#it{p}^{+}_{L}-#it{p}^{-}_{L})/(#it{p}^{+}_{L}+#it{p}^{-}_{L});#it{q}_{T} (GeV/#it{c})",
                              200, -1., 1., 200, 0., 0.4);
    fhArmenterosLambda = new TH2F("fhArmenterosLambda",
                                "Armenteros plot lambda;#alpha = (#it{p}^{+}_{L}-#it{p}^{-}_{L})/(#it{p}^{+}_{L}+#it{p}^{-}_{L});#it{q}_{T} (GeV/#it{c})",
                                200, -1., 1., 200, 0., 0.4);
    fhArmenterosAntiLambda = new TH2F("fhArmenterosAntiLambda",
                                      "Armenteros plot anti-lambda;#alpha = (#it{p}^{+}_{L}-#it{p}^{-}_{L})/(#it{p}^{+}_{L}+#it{p}^{-}_{L});#it{q}_{T} (GeV/#it{c})",
                                      200, -1., 1., 200, 0., 0.4);

    fQAList->Add(fhArmenterosAll);
    fQAList->Add(fhArmenterosGamma);
    fQAList->Add(fhArmenterosK0s);
    fQAList->Add(fhArmenterosLambda);
    fQAList->Add(fhArmenterosAntiLambda);
    
    
    const Int_t dimQASharedClusters = 4;
    const TString axisTitles[dimQASharedClusters] = { "#it{p}_{TPC} (GeV/#it{c})", "#it{#Delta'}", "#it{N}_{shared cl}", "Pad row"};
    Int_t    binsHistQASharedClusters[dimQASharedClusters] = { 100,  100, 160, 160};
    Double_t xminHistQASharedClusters[dimQASharedClusters] = { 0.3, 0.5,  0,   -1};
    Double_t xmaxHistQASharedClusters[dimQASharedClusters] = { 20,  1.5, 160, 159};
    
    fHistSharedClusQAV0Pi = new THnSparseF("fHistSharedClusQAV0Pi" ,"PID QA shared clusters - V0 pi", dimQASharedClusters,
                                          binsHistQASharedClusters, xminHistQASharedClusters, xmaxHistQASharedClusters);
    BinLogAxis(fHistSharedClusQAV0Pi, 0);
    for (Int_t i = 0; i < dimQASharedClusters; i++)
      fHistSharedClusQAV0Pi->GetAxis(i)->SetTitle(axisTitles[i].Data());
    fQAList->Add(fHistSharedClusQAV0Pi);
    
    fHistSharedClusQAV0Pr = new THnSparseF("fHistSharedClusQAV0Pr" ,"PID QA shared clusters - V0 pr", dimQASharedClusters,
                                          binsHistQASharedClusters, xminHistQASharedClusters, xmaxHistQASharedClusters);
    BinLogAxis(fHistSharedClusQAV0Pr, 0);
    for (Int_t i = 0; i < dimQASharedClusters; i++)
      fHistSharedClusQAV0Pi->GetAxis(i)->SetTitle(axisTitles[i].Data());
    fQAList->Add(fHistSharedClusQAV0Pr);

    fHistSharedClusQAV0El = new THnSparseF("fHistSharedClusQAV0El" ,"PID QA shared clusters - V0 el", dimQASharedClusters,
                                          binsHistQASharedClusters, xminHistQASharedClusters, xmaxHistQASharedClusters);
    BinLogAxis(fHistSharedClusQAV0El, 0);
    for (Int_t i = 0; i < dimQASharedClusters; i++)
      fHistSharedClusQAV0Pi->GetAxis(i)->SetTitle(axisTitles[i].Data());
    fQAList->Add(fHistSharedClusQAV0El);
    
    OpenFile(3);
    fTreeV0El = new TTree("treeV0El", "V0 el together with info from closest neighbour");
    fTreeV0El->Branch("dEdx_tr", &fTree_dEdx_tr);
    fTreeV0El->Branch("dEdx_nb", &fTree_dEdx_nb);
    fTreeV0El->Branch("dEdx_vs", &fTree_dEdx_vs);
    fTreeV0El->Branch("dEdxExpected_tr", &fTree_dEdxExpected_tr);
    fTreeV0El->Branch("p_TPC_tr", &fTree_p_TPC_tr);
    fTreeV0El->Branch("p_TPC_nb", &fTree_p_TPC_nb);
    fTreeV0El->Branch("p_TPC_vs", &fTree_p_TPC_vs);
    fTreeV0El->Branch("BtimesChargeOverPt_tr", &fTree_BtimesChargeOverPt_tr);
    fTreeV0El->Branch("BtimesChargeOverPt_nb", &fTree_BtimesChargeOverPt_nb);
    fTreeV0El->Branch("BtimesChargeOverPt_vs", &fTree_BtimesChargeOverPt_vs);
    fTreeV0El->Branch("tanTheta_tr", &fTree_tanTheta_tr);
    fTreeV0El->Branch("tanTheta_nb", &fTree_tanTheta_nb);
    fTreeV0El->Branch("tanTheta_vs", &fTree_tanTheta_vs);
    fTreeV0El->Branch("distance_nb", &fTree_distance_nb);
    fTreeV0El->Branch("distance_vs", &fTree_distance_vs);
    
    OpenFile(4);
    fTreeV0Pi = new TTree("treeV0Pi", "V0 pi together with info from closest neighbour");
    fTreeV0Pi->Branch("dEdx_tr", &fTree_dEdx_tr);
    fTreeV0Pi->Branch("dEdx_nb", &fTree_dEdx_nb);
    fTreeV0Pi->Branch("dEdx_vs", &fTree_dEdx_vs);
    fTreeV0Pi->Branch("dEdxExpected_tr", &fTree_dEdxExpected_tr);
    fTreeV0Pi->Branch("p_TPC_tr", &fTree_p_TPC_tr);
    fTreeV0Pi->Branch("p_TPC_nb", &fTree_p_TPC_nb);
    fTreeV0Pi->Branch("p_TPC_vs", &fTree_p_TPC_vs);
    fTreeV0Pi->Branch("BtimesChargeOverPt_tr", &fTree_BtimesChargeOverPt_tr);
    fTreeV0Pi->Branch("BtimesChargeOverPt_nb", &fTree_BtimesChargeOverPt_nb);
    fTreeV0Pi->Branch("BtimesChargeOverPt_vs", &fTree_BtimesChargeOverPt_vs);
    fTreeV0Pi->Branch("tanTheta_tr", &fTree_tanTheta_tr);
    fTreeV0Pi->Branch("tanTheta_nb", &fTree_tanTheta_nb);
    fTreeV0Pi->Branch("tanTheta_vs", &fTree_tanTheta_vs);
    fTreeV0Pi->Branch("distance_nb", &fTree_distance_nb);
    fTreeV0Pi->Branch("distance_vs", &fTree_distance_vs);
    
    OpenFile(5);
    fTreeV0Pr = new TTree("treeV0Pr", "V0 pr together with info from closest neighbour");
    fTreeV0Pr->Branch("dEdx_tr", &fTree_dEdx_tr);
    fTreeV0Pr->Branch("dEdx_nb", &fTree_dEdx_nb);
    fTreeV0Pr->Branch("dEdx_vs", &fTree_dEdx_vs);
    fTreeV0Pr->Branch("dEdxExpected_tr", &fTree_dEdxExpected_tr);
    fTreeV0Pr->Branch("p_TPC_tr", &fTree_p_TPC_tr);
    fTreeV0Pr->Branch("p_TPC_nb", &fTree_p_TPC_nb);
    fTreeV0Pr->Branch("p_TPC_vs", &fTree_p_TPC_vs);
    fTreeV0Pr->Branch("BtimesChargeOverPt_tr", &fTree_BtimesChargeOverPt_tr);
    fTreeV0Pr->Branch("BtimesChargeOverPt_nb", &fTree_BtimesChargeOverPt_nb);
    fTreeV0Pr->Branch("BtimesChargeOverPt_vs", &fTree_BtimesChargeOverPt_vs);
    fTreeV0Pr->Branch("tanTheta_tr", &fTree_tanTheta_tr);
    fTreeV0Pr->Branch("tanTheta_nb", &fTree_tanTheta_nb);
    fTreeV0Pr->Branch("tanTheta_vs", &fTree_tanTheta_vs);
    fTreeV0Pr->Branch("distance_nb", &fTree_distance_nb);
    fTreeV0Pr->Branch("distance_vs", &fTree_distance_vs);
  }
  
  PostData(1,fOutputContainer);
  if (fWriteAdditionalOutput) {
    PostData(2,fQAList);
    PostData(3,fTreeV0El);
    PostData(4,fTreeV0Pi);
    PostData(5,fTreeV0Pr);
  }
}


//_____________________________________________________________________________
void AliTPCcalibResidualPID::UserExec(Option_t *)
{
    //calls the Process function
    AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());

    if (!esdH) {
      printf("ERROR: Could not get ESDInputHandler \n");
    }
    else fESD = esdH->GetEvent();
    
    // If MC, forward MCevent
    fMC = dynamic_cast<AliMCEvent*>(MCEvent());
    //
    Process(fESD, fMC);
    //
    PostData(1,fOutputContainer);
    if (fWriteAdditionalOutput) {
      PostData(2,fQAList);
      PostData(3,fTreeV0El);
      PostData(4,fTreeV0Pi);
      PostData(5,fTreeV0Pr);
    }
}



//________________________________________________________________________
void AliTPCcalibResidualPID::Process(AliESDEvent *const esdEvent, AliMCEvent *const mcEvent)
{
  
  //called for each event
  if (!esdEvent) {
    Printf("ERROR: esdEvent not available"); 
    return;
  }

  if (!fPIDResponse || !fV0KineCuts) {
    Printf("ERROR: No PIDresponse and/or v0KineCuts!");
    return;
  }

  Float_t centralityFper=99;

  AliCentrality *esdCentrality = esdEvent->GetCentrality();
  centralityFper = esdCentrality->GetCentralityPercentile("V0M");

  if (!GetVertexIsOk(esdEvent))
    return;
  
  const AliESDVertex* fESDvertex = esdEvent->GetPrimaryVertexTracks(); 
  if (!fESDvertex)
    return;
  
  Int_t ncontr = fESDvertex->GetNContributors();
  
  if (ncontr <= 0)
    return;

  // Fill V0 arrays with V0s
  FillV0PIDlist(esdEvent);
  
  // Array with flags wheter QA for this V0 was already done or not
  const Int_t numV0s = esdEvent->GetNumberOfV0s();
  Bool_t v0QAadded[numV0s];
  for (Int_t i = 0; i < numV0s; i++)
    v0QAadded[i] = kFALSE;
  
  Int_t nTotTracks = esdEvent->GetNumberOfTracks();
  const Int_t nTotESDTracks = esdEvent->GetNumberOfESDTracks();
  
  const Double_t magField = esdEvent->GetMagneticField();
  
  Bool_t etaCorrAvail = fPIDResponse->UseTPCEtaCorrection();
  Bool_t multCorrAvail = fPIDResponse->UseTPCMultiplicityCorrection();
  
  for (Int_t iTracks = 0; iTracks < nTotTracks; iTracks++){//begin track loop 
    AliESDtrack *trackESD = esdEvent->GetTrack(iTracks);
    if(!trackESD) {
      Printf("ERROR: Could not receive track %d (esd loop)", iTracks);
      continue;
    }
    if((TMath::Abs(trackESD->Eta())) > 0.9)
      continue;
    
     // Do not distinguish positively and negatively charged V0's
    Char_t v0tagAllCharges = TMath::Abs(GetV0tag(iTracks));
    if (v0tagAllCharges == -99) {
      AliError(Form("Problem with V0 tag list (requested V0 track for track %d from %d (list status %d))!", iTracks, esdEvent->GetNumberOfTracks(),
                    fV0tags != 0x0));
      continue;
    }
    
    Bool_t isV0el = v0tagAllCharges == 14;
    Bool_t isV0pi = v0tagAllCharges == 15;
    Bool_t isV0pr = v0tagAllCharges == 16;
    Bool_t isV0 = isV0el || isV0pi || isV0pr;
    
    if (mcEvent && fUseMCinfo) {
      // For MC, do not look for V0s, i.e. demand the non-V0 track cuts
      if (fESDtrackCuts && !fESDtrackCuts->AcceptTrack(trackESD)) continue;
      
      if (fUseTPCCutMIGeo) {
        // If cut on geometry is active, don't cut on number of clusters, since such a cut is already included.
        if (!TPCCutMIGeo(trackESD, esdEvent))
          continue;
      }
      else {
        // If cut on geometry is not active, always cut on num clusters
        if (trackESD->GetTPCsignalN() < 60)
          continue;
      }
    }
    else {
      // For data, take V0 AND non-V0 with separate cuts
      //if (!isV0 && fESDtrackCuts && !fESDtrackCuts->AcceptTrack(trackESD)) continue;
      if (isV0) {
        if (fESDtrackCutsV0 && !fESDtrackCutsV0->AcceptTrack(trackESD))
          continue;
      }
      else {
        if (fESDtrackCuts && !fESDtrackCuts->AcceptTrack(trackESD))
          continue;
      }
        
      if (fUseTPCCutMIGeo) {
        // If cut on geometry is active, don't cut on number of clusters, since such a cut is already included.
        if (!isV0) {
          if (!TPCCutMIGeo(trackESD, esdEvent))
            continue;
        }
        else {
          // One should not cut on geometry for V0's since they have different topology. (Loosely) cut on num of clusters instead.
          if (trackESD->GetTPCsignalN() < 60)
            continue;
        }
      }
      else {
        // If cut on geometry is not active, always cut on num clusters
        if (trackESD->GetTPCsignalN() < 60)
          continue;
      }
    }

    const AliExternalTrackParam *paramIn = trackESD->GetInnerParam();
    Float_t precin=-1;
    if(paramIn) {
      precin=paramIn->GetP();
    } else {
      printf("Inner param not found for track %d - skipping!\n", iTracks);
      continue;
    }
    Int_t precdefault=CompareFloat(precin,-1);
    if(precdefault==1) continue; // momentum cut
    //
    
    AliMCParticle* mcTrack = 0x0;
    Int_t particleID = -1;
    Int_t v0id = 0;
    
    if (mcEvent && fUseMCinfo) {
      // MC - particle ID = MC ID
      Int_t label = trackESD->GetLabel();
      
      if (label < 0)
        continue; // If MC is available, reject tracks with negative ESD label
        
      mcTrack = dynamic_cast<AliMCParticle*>(mcEvent->GetTrack(TMath::Abs(label)));
      if (!mcTrack) {
        Printf("ERROR: Could not receive mcTrack with label %d for track %d", label, iTracks);
        continue;
      }
      
      /*// Only accept MC primaries
      if (!mcEvent->Stack()->IsPhysicalPrimary(TMath::Abs(label))) {
        continue;
      }*/
      
      Int_t pdgAbs = TMath::Abs(mcTrack->PdgCode());
      
      if (pdgAbs == 11) { // electron
        particleID = 0;
      }
      else if (pdgAbs == 211) { // pion
        particleID = 1;
      }
      else if (pdgAbs == 321) { // kaon
        particleID = 2;
      }
      else if (pdgAbs == 2212) { // proton
        particleID = 3;
      }
      else
        continue; // Reject all other particles
    }
    else {
      // Data - particle ID = V0 ID (if V0)
      if (isV0pi) { // pion
        particleID = 2;
        v0id = 2;
      }
      else if (isV0el) { // electron
        particleID = 1;
        v0id = 1;
      }
      else if (isV0pr) { // proton
        particleID = 3;
        v0id = 3;
      }
      else { // No V0-ID available (species must be determined via TPC, TOF, ...)
        particleID = 0;
      }
    }


    Float_t tpcsignal=trackESD->GetTPCsignal();
    Int_t tofbit=-1;
    Int_t iTOFpid=0;
    Int_t ikTIME=0;
    Double_t tpcnsigmaele=-10;
    Double_t tpcnsigmapion=-10;
    //
    if ((trackESD->GetStatus() & AliESDtrack::kTOFpid)) iTOFpid = 1;
    if ((trackESD->GetStatus() & AliESDtrack::kTIME)) ikTIME = 1;
    Float_t time0 = fPIDResponse->GetTOFResponse().GetTimeZero();
    //
    if((iTOFpid==1) &&(ikTIME==1)){
      Double_t tofnsigmaele= fPIDResponse->NumberOfSigmasTOF(trackESD,AliPID::kElectron, time0);
      Double_t tofnsigmapion=fPIDResponse->NumberOfSigmasTOF(trackESD,AliPID::kPion, time0);
      if (TMath::Abs(tofnsigmapion)<3) tofbit = 1;
      if (TMath::Abs(tofnsigmaele)<3)  tofbit = 0;
      tpcnsigmaele=fPIDResponse->NumberOfSigmasTPC(trackESD,AliPID::kElectron);
      tpcnsigmapion=fPIDResponse->NumberOfSigmasTPC(trackESD,AliPID::kPion);
    }
    //
    Int_t tpcnclusN=trackESD->GetTPCsignalN();
    Double_t eta=trackESD->Eta();
    
    //
    if(fProduceTPCSignalSparse){
      Double_t contentSignal[9];
      contentSignal[0]=v0id;
      contentSignal[1]=tpcsignal;
      contentSignal[2]=tpcnsigmaele;
      contentSignal[3]=tpcnsigmapion;
      contentSignal[4]=tofbit;
      contentSignal[5]=eta;
      contentSignal[6]=tpcnclusN;
      contentSignal[7]=centralityFper;
      contentSignal[8]=precin;
      //
      if (fThnspTpc->GetEntries() < 1e6) fThnspTpc->Fill(contentSignal);
    }//should it be created or not



    //
    // 2nd THnSparse
    //
    Double_t tpcQA[5] = {fPIDResponse->NumberOfSigmasTPC(trackESD, AliPID::kElectron),
			 fPIDResponse->NumberOfSigmasTPC(trackESD, AliPID::kPion),
			 fPIDResponse->NumberOfSigmasTPC(trackESD, AliPID::kKaon),
			 fPIDResponse->NumberOfSigmasTPC(trackESD, AliPID::kProton),
			 0};
    Double_t tofQA[5] = {fPIDResponse->NumberOfSigmasTOF(trackESD, AliPID::kElectron, time0),
			 fPIDResponse->NumberOfSigmasTOF(trackESD, AliPID::kPion, time0),
			 fPIDResponse->NumberOfSigmasTOF(trackESD, AliPID::kKaon, time0),
			 fPIDResponse->NumberOfSigmasTOF(trackESD, AliPID::kProton, time0),
			 0 };
       
    // id 5 is just again Kaons in restricted eta range
    tpcQA[4] = tpcQA[2];
    tofQA[4] = tofQA[2];
    
    //
    // dE/dx in different pad regions
    //
    AliTPCdEdxInfo * infoTpcPid = trackESD->GetTPCdEdxInfo();
    Double32_t signal[4]; Char_t ncl[3]; Char_t nrows[3];
    if (infoTpcPid) {
      infoTpcPid->GetTPCSignalRegionInfo(signal, ncl, nrows);
    } else {
      for(Int_t iarr = 0; iarr < 3; iarr++) {
	signal[iarr] = 0;
	ncl[iarr] = 0;
	nrows[iarr] = 0;
      }
      signal[3] = 0;
    }
    //
    UInt_t status = trackESD->GetStatus();
    Bool_t hasTOFout  = status&AliESDtrack::kTOFout; 
    Bool_t hasTOFtime = status&AliESDtrack::kTIME;
    Bool_t hasTOF     = kFALSE;
    if (hasTOFout && hasTOFtime) hasTOF = kTRUE;
    Float_t length = trackESD->GetIntegratedLength();
    // Length check only for primaries!
    if (length < 350 && !isV0) hasTOF = kFALSE;
    //
    
    if (!hasTOF) {
      // Make sure that number of sigmas is large in this case, so that the track will be rejected if a TOF cut is applied
      for (Int_t i = 0; i < 5; i++) {
        tofQA[i] = 999;
      }
    }


    Double_t processedTPCsignal[5] = { tpcsignal, tpcsignal, tpcsignal, tpcsignal, tpcsignal };
  
    if (fCorrectdEdxEtaDependence && fNumEtaCorrReqErrorsIssued < 23 && !etaCorrAvail) {
      AliError("TPC eta correction requested, but was not activated in PID response (most likely not available)!");
      fNumEtaCorrReqErrorsIssued++;
      if (fNumEtaCorrReqErrorsIssued == 23)
        AliError("Ignoring this error from now on!");
    }
    
    if (fCorrectdEdxMultiplicityDependence && fNumMultCorrReqErrorsIssued < 23 && !multCorrAvail) {
      AliError("TPC multiplicity correction requested, but was not activated in PID response (most likely not available)!");
      fNumMultCorrReqErrorsIssued++;
      if (fNumMultCorrReqErrorsIssued == 23)
        AliError("Ignoring this error from now on!");
    }
    
    if (fCorrectdEdxEtaDependence && etaCorrAvail && fCorrectdEdxMultiplicityDependence && multCorrAvail) {
      processedTPCsignal[0] = fPIDResponse->GetTPCResponse().GetEtaAndMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kElectron,
                                                                                                     AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[1] = fPIDResponse->GetTPCResponse().GetEtaAndMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kPion,
                                                                                                     AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[2] = fPIDResponse->GetTPCResponse().GetEtaAndMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kKaon,
                                                                                                     AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[3] = fPIDResponse->GetTPCResponse().GetEtaAndMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kProton,
                                                                                                     AliTPCPIDResponse::kdEdxDefault);
    }
    else if (fCorrectdEdxEtaDependence && etaCorrAvail) {
      processedTPCsignal[0] = fPIDResponse->GetTPCResponse().GetEtaCorrectedTrackdEdx(trackESD, AliPID::kElectron,
                                                                                      AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[1] = fPIDResponse->GetTPCResponse().GetEtaCorrectedTrackdEdx(trackESD, AliPID::kPion,
                                                                                      AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[2] = fPIDResponse->GetTPCResponse().GetEtaCorrectedTrackdEdx(trackESD, AliPID::kKaon,
                                                                                      AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[3] = fPIDResponse->GetTPCResponse().GetEtaCorrectedTrackdEdx(trackESD, AliPID::kProton,
                                                                                      AliTPCPIDResponse::kdEdxDefault);
    }
    else if (fCorrectdEdxMultiplicityDependence && multCorrAvail) {
      processedTPCsignal[0] = fPIDResponse->GetTPCResponse().GetMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kElectron,
                                                                                               AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[1] = fPIDResponse->GetTPCResponse().GetMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kPion,
                                                                                               AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[2] = fPIDResponse->GetTPCResponse().GetMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kKaon,
                                                                                               AliTPCPIDResponse::kdEdxDefault);
      processedTPCsignal[3] = fPIDResponse->GetTPCResponse().GetMultiplicityCorrectedTrackdEdx(trackESD, AliPID::kProton,
                                                                                               AliTPCPIDResponse::kdEdxDefault);
    }
    
    // id 5 is just again Kaons in restricted eta range
    processedTPCsignal[4] = processedTPCsignal[2];
    
    for(Int_t iPart = 0; iPart < 5; iPart++) {
      // Only accept "Kaons" within |eta| < 0.2 for index 4 in case of data (no contamination in case of MC, so this index is not used)
      if (iPart == 4 && ((mcEvent && fUseMCinfo) || abs(trackESD->Eta()) > 0.2))
        continue;
      
      Double_t vecHistQA[7] = {precin, processedTPCsignal[iPart], (Double_t)particleID, (Double_t)iPart, tpcQA[iPart], tofQA[iPart],
                               (Double_t)nTotESDTracks};
      if (fProduceGlobal) fHistPidQA->Fill(vecHistQA);
      vecHistQA[1] = signal[0]; vecHistQA[4] = ncl[0];
      if ((fProduceAllPadTypes || fProduceShortPads)) fHistPidQAshort->Fill(vecHistQA);
      //
      vecHistQA[1] = signal[1]; vecHistQA[4] = ncl[1];
      if ((fProduceAllPadTypes || fProduceMediumPads)) fHistPidQAmedium->Fill(vecHistQA);
      //
      vecHistQA[1] = signal[2]; vecHistQA[4] = ncl[2];
      if ((fProduceAllPadTypes || fProduceLongPads)) fHistPidQAlong->Fill(vecHistQA);
      //
      vecHistQA[1] = signal[3]; vecHistQA[4] = nrows[1] + nrows[2];
      if ((fProduceAllPadTypes || fProduceOroc)) fHistPidQAoroc->Fill(vecHistQA);      
    }
    
    if (fWriteAdditionalOutput && isV0) {
      
      // Find the closest neighbour and fill the information into the trees.
      fTree_p_TPC_tr = precin;
      fTree_dEdx_tr = tpcsignal;
      fTree_BtimesChargeOverPt_tr = TMath::Abs(magField) * trackESD->GetSigned1Pt();
      fTree_tanTheta_tr = trackESD->GetInnerParam()->GetTgl();
      
      Int_t closestNeighbourIndex = -1;
      const Double_t tpcInnerRadius = 85.;
      const Int_t parIndexGlobalPhi = 8;
      const Double_t z_tr = trackESD->GetInnerParam()->GetZ();
      const Double_t phi_tr = trackESD->GetInnerParam()->GetParameterAtRadius(tpcInnerRadius, magField, parIndexGlobalPhi);
      
      const Double_t distanceCut = 12.; // Cut on distance between track to closest neighbour
      
      Double_t z_nb = 9999;
      Double_t phi_nb = 9999;
      Double_t delta_z = 9999;
      Double_t delta_phi = 9999;
      
      fTree_distance_nb = -9999;
      
      for (Int_t jTracks = 0; jTracks < nTotTracks; jTracks++) {
        if (iTracks == jTracks)
          continue; // Exclude track we are looking at right now from neighbour list
        
        AliESDtrack *track_nb= esdEvent->GetTrack(jTracks);
        if(!track_nb)
          continue;
        
        const AliExternalTrackParam *paramIn_nb = track_nb->GetInnerParam();
        if (!paramIn_nb)
          continue;
        
        z_nb =  paramIn_nb->GetZ();
        delta_z = TMath::Abs(z_nb - z_tr);
        
        if (delta_z >= distanceCut)
          continue;
        
        phi_nb = paramIn_nb->GetParameterAtRadius(tpcInnerRadius, magField, parIndexGlobalPhi);
        delta_phi = TMath::Abs(phi_nb - phi_tr);
        
        const Double_t delta_r_phi = tpcInnerRadius * delta_phi;
        
        if (delta_r_phi >= distanceCut)
          continue;
        
        
        const Double_t distance = TMath::Sqrt(delta_z * delta_z + delta_r_phi * delta_r_phi);
        
        if (distance >= distanceCut)
          continue;
        
        if (closestNeighbourIndex < 0 || distance < fTree_distance_nb) {
          fTree_distance_nb = distance;
          closestNeighbourIndex = jTracks;
        }
      }
      
      if (closestNeighbourIndex >= 0 && closestNeighbourIndex < nTotTracks) {
        AliESDtrack *track_nb= esdEvent->GetTrack(closestNeighbourIndex);
        fTree_dEdx_nb = track_nb->GetTPCsignal();
        fTree_p_TPC_nb = track_nb->GetInnerParam()->GetP();
        fTree_BtimesChargeOverPt_nb = TMath::Abs(magField) * track_nb->GetSigned1Pt();
        fTree_tanTheta_nb = track_nb->GetInnerParam()->GetTgl();
      }
      else {
        // No neighbour in this range -> nevertheless store the track, but set neighbour values to invalid
        fTree_dEdx_nb = -999.;
        fTree_p_TPC_nb = -999.;
        fTree_BtimesChargeOverPt_nb = -999.;
        fTree_tanTheta_nb = -999.;
        fTree_distance_nb = -999.;
      }
      
      
      // Find the other V0 daughter and store its values
      const Int_t motherIndex = GetV0motherIndex(iTracks);
      AliESDv0* v0Mother = (AliESDv0*)esdEvent->GetV0(motherIndex);
      if (!v0Mother) {
        printf("Error: Track tagged as V0 daughter, but V0 mother not found!\n");
        continue;
      }
      
      const Int_t iTrackP = v0Mother->GetPindex();  // positive track
      const Int_t iTrackN = v0Mother->GetNindex();  // negative track_nb
      
      Int_t iTrackV0sister = -1;
      if (iTrackP == iTracks)
        iTrackV0sister = iTrackN;
      else if (iTrackN == iTracks)
        iTrackV0sister = iTrackP;
      else {
        printf("Error: V0 sister relations are wrong!\n");
        continue;
      }
      
      fTree_dEdx_vs = -999.;
      fTree_p_TPC_vs = -999.;
      fTree_BtimesChargeOverPt_vs = -999.;
      fTree_tanTheta_vs = -999.;
      fTree_distance_vs = -999.;
        
      AliESDtrack *track_vs = esdEvent->GetTrack(iTrackV0sister);
      if (track_vs) {
        const AliExternalTrackParam *paramIn_vs = track_vs->GetInnerParam();
        if (paramIn_vs) {
          fTree_dEdx_vs = track_vs->GetTPCsignal();
          fTree_p_TPC_vs = paramIn_vs->GetP();
          fTree_BtimesChargeOverPt_vs = TMath::Abs(magField) * track_vs->GetSigned1Pt();
          fTree_tanTheta_vs = paramIn_vs->GetTgl();
          
          // Calculate distance
          const Double_t z_vs =  paramIn_vs->GetZ();
          const Double_t delta_z_vs = TMath::Abs(z_vs - z_tr);
          
          const Double_t phi_vs = paramIn_vs->GetParameterAtRadius(tpcInnerRadius, magField, parIndexGlobalPhi);
          const Double_t delta_phi_vs = TMath::Abs(phi_vs - phi_tr);
          
          const Double_t delta_r_phi_vs = tpcInnerRadius * delta_phi_vs;
          
          fTree_distance_vs = TMath::Sqrt(delta_z_vs * delta_z_vs + delta_r_phi_vs * delta_r_phi_vs);
        }
      }
      
      if (isV0el) {
        fTree_dEdxExpected_tr = fPIDResponse->GetTPCResponse().GetExpectedSignal(trackESD, AliPID::kElectron, AliTPCPIDResponse::kdEdxDefault, 
                                                                                 fPIDResponse->UseTPCEtaCorrection(),
                                                                                 fPIDResponse->UseTPCMultiplicityCorrection());
        if (fTree_dEdxExpected_tr > 0)
          fTreeV0El->Fill();
      }
      else if (isV0pi) {
        fTree_dEdxExpected_tr = fPIDResponse->GetTPCResponse().GetExpectedSignal(trackESD, AliPID::kPion, AliTPCPIDResponse::kdEdxDefault, 
                                                                                 fPIDResponse->UseTPCEtaCorrection(),
                                                                                 fPIDResponse->UseTPCMultiplicityCorrection());
        if (fTree_dEdxExpected_tr > 0)
          fTreeV0Pi->Fill();
      }
      else if (isV0pr) {
        fTree_dEdxExpected_tr = fPIDResponse->GetTPCResponse().GetExpectedSignal(trackESD, AliPID::kProton, AliTPCPIDResponse::kdEdxDefault, 
                                                                                 fPIDResponse->UseTPCEtaCorrection(),
                                                                                 fPIDResponse->UseTPCMultiplicityCorrection());
        if (fTree_dEdxExpected_tr > 0)
          fTreeV0Pr->Fill();
      }
      
      // Fill QA hists for shared clusters dE/dx
      Double_t vecHistQA[4] = { precin, -1., (Double_t)trackESD->GetTPCSharedMap().CountBits(), -1. };
      THnSparse* currHist = fHistSharedClusQAV0Pi;
      
      if (isV0pi) {
        Double_t expectedDeDx = fPIDResponse->GetTPCResponse().GetExpectedSignal(trackESD, AliPID::kPion, AliTPCPIDResponse::kdEdxDefault,
                                                                                 fPIDResponse->UseTPCEtaCorrection(),
                                                                                 fPIDResponse->UseTPCMultiplicityCorrection()); 
        if (expectedDeDx > 0 ) {
          vecHistQA[1] = tpcsignal / expectedDeDx;
          currHist = fHistSharedClusQAV0Pi;
        }
      }
      else if (isV0pr) {
        Double_t expectedDeDx = fPIDResponse->GetTPCResponse().GetExpectedSignal(trackESD, AliPID::kProton, AliTPCPIDResponse::kdEdxDefault,
                                                                                 fPIDResponse->UseTPCEtaCorrection(),
                                                                                 fPIDResponse->UseTPCMultiplicityCorrection()); 
        if (expectedDeDx > 0 ) {
          vecHistQA[1] = tpcsignal / expectedDeDx;
          currHist = fHistSharedClusQAV0Pr;
        }
      }
      else if (isV0el) {
        Double_t expectedDeDx = fPIDResponse->GetTPCResponse().GetExpectedSignal(trackESD, AliPID::kElectron, AliTPCPIDResponse::kdEdxDefault,
                                                                                 fPIDResponse->UseTPCEtaCorrection(), 
                                                                                 fPIDResponse->UseTPCMultiplicityCorrection()); 
        if (expectedDeDx > 0 ) {
          vecHistQA[1] = tpcsignal / expectedDeDx;
          currHist = fHistSharedClusQAV0El;
        }
      }
      
      Int_t iRowInd = -1;
      // iRowInd == -1 for "all rows w/o multiple counting"
      currHist->Fill(vecHistQA);
      
      // Fill hist for every pad row with shared cluster
      for (iRowInd = 0; iRowInd < 159; iRowInd++) {
        if (trackESD->GetTPCSharedMap().TestBitNumber(iRowInd)) {
          vecHistQA[3] = iRowInd;
          currHist->Fill(vecHistQA);
        }
      }
      
      
      
      // Check, whether the QA for this V0 mother was already filled into the histograms (is the case if the other daughter has already
      // been processed). If not, set flag to kTRUE and fill the QA.
      const Int_t iV0 = GetV0motherIndex(iTracks);
      if (!v0QAadded[iV0]) {
        v0QAadded[iV0] = kTRUE;
      
        AliESDv0* esdV0 = (AliESDv0*)esdEvent->GetV0(iV0);
        
        if (!esdV0) {
          printf("Error: V0 tagged, but does not exist!\n");
        }
        else {
          Float_t armVar[2] = {0.0,0.0};
          fV0KineCuts->Armenteros(esdV0, armVar);
          
          const Int_t motherPDG = GetV0motherPDG(iTracks);
          
          // Mother and daughter match the requirements, otherwise it wouldn't be tagged as a V0. Now just fill the QA histos.
          fhArmenterosAll->Fill(armVar[0], armVar[1]);
          //if (esdV0->TestBit(BIT(14))) {
          if (TMath::Abs(motherPDG) == 22) {
            fhInvMassGamma->Fill(esdV0->GetEffMass(AliPID::kElectron, AliPID::kElectron));
            fhArmenterosGamma->Fill(armVar[0], armVar[1]);
          }
          else if (TMath::Abs(motherPDG) == 310) {
          //else if (esdV0->TestBit(BIT(15))) {
            fhInvMassK0s->Fill(esdV0->GetEffMass(AliPID::kPion, AliPID::kPion));
            fhArmenterosK0s->Fill(armVar[0], armVar[1]);
          }
          else if (motherPDG == 3122) {
          //else if (esdV0->TestBit(BIT(16))) {
            fhInvMassLambda->Fill(esdV0->GetEffMass(AliPID::kProton, AliPID::kPion));
            fhArmenterosLambda->Fill(armVar[0], armVar[1]);
          }
          else if (motherPDG == -3122) {
          //else if (esdV0->TestBit(BIT(17))) {
            fhInvMassAntiLambda->Fill(esdV0->GetEffMass(AliPID::kPion, AliPID::kProton));
            fhArmenterosAntiLambda->Fill(armVar[0], armVar[1]);
          }
        }
      }
    }
  } //end track loop 
  

  // Clear the V0 PID arrays
  ClearV0PIDlist();
}      


//________________________________________________________________________
Int_t  AliTPCcalibResidualPID::CompareFloat(Float_t f1, Float_t f2) const
{
    //compares if the Float_t f1 is equal with f2 and returns 1 if true and 0 if false
    Float_t precision = 0.00001;
    if (((f1 - precision) < f2) &&
	((f1 + precision) > f2))
    {
	return 1;
    }
    else
    {
	return 0;
    }
}


//________________________________________________________________________
void AliTPCcalibResidualPID::Terminate(const Option_t *)
{


}



//________________________________________________________________________
void AliTPCcalibResidualPID::BinLogAxis(const THnSparseF *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;
  
}


//________________________________________________________________________
Double_t* AliTPCcalibResidualPID::ExtractResidualPID(THnSparseF * histPidQA, const Bool_t useV0s, const Char_t * outFile,
                                                     const Char_t * type, const Char_t * period, const Char_t * pass,
                                                     const Char_t * system, const Double_t * initialParameters,
                                                     const Char_t *dedxtype,
                                                     AliTPCcalibResidualPID::FitType fitType) {
  //
  // (1.) obtain residual graphs
  //
  TObjArray * arr = 0x0;
  
  Bool_t isMC = kFALSE;
  if (strcmp(type, "MC") == 0) {
    arr = GetResidualGraphsMC(histPidQA, system);
    isMC = kTRUE;
  }
  else if (strcmp(type, "DATA") == 0) {
    arr = GetResidualGraphs(histPidQA, system, useV0s);
  }
  else {
    Printf("ERROR - ExtractResidualPID: Unknown type \"%s\" - must be \"MC\" or \"DATA\"!", type);
    
    return 0x0;
  }
  
  Bool_t isPPb = kFALSE;
  if (strcmp(system, "PPB") == 0 || strcmp(system, "PBP") == 0) {
    Printf("p-Pb/Pb-p detected - Applying special handling!");
    isPPb = kTRUE;
  }
  //
  // (2.) get old-style Bethe-Bloch parameters
  //
  TF1* parametrisation = FitBB(arr, isMC, isPPb, useV0s, initialParameters, fitType);
  //
  // (3.) obtain response functions to OADB
  //
  TObjArray* arrResponse = GetResponseFunctions(parametrisation, arr, type, period, pass, system, dedxtype);
  //
  // (4.) write results to file and exit
  //
  if (arrResponse) {
    TFile outputFile(outFile,"RECREATE");
    arrResponse->Write();
    outputFile.Close();
  }
  //
  
  return parametrisation->GetParameters();
}


//________________________________________________________________________
TObjArray * AliTPCcalibResidualPID::GetSeparation(THnSparseF * histPidQA, Int_t kParticle1, Int_t kParticle2) {

  //get THnSparse
  THnSparse * hist = histPidQA;


  Float_t nSigmaPlus1 = 0, nSigmaMinus1 = 0; //sigma of first particle in the TPC
  Float_t nSigmaPlus2 = 0, nSigmaMinus2 = 0; //sigma of second particle in the TPC
  
  if(kParticle1 == 0){ // electron
	nSigmaMinus1   =  -1.999;
    nSigmaPlus1   =  2.999;
  } else if(kParticle1 == 1){ //pion
	nSigmaMinus1   =  -1.999;
    nSigmaPlus1   =  2.999;
  } else if(kParticle1 == 2){ //kaons
	nSigmaMinus1   =  -2.999;
    nSigmaPlus1   =    2.999;
  } else if(kParticle1 == 3){ //protons
	nSigmaMinus1   =  -2.999;
    nSigmaPlus1   =    2.999;
  }
  
  //
  // 1. select and fit first particle
  //
  hist->GetAxis(3)->SetRangeUser(kParticle1,kParticle1);
  hist->GetAxis(4)->SetRangeUser(nSigmaMinus1,nSigmaPlus1); 
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  TH2D * histPart1 = (TH2D*) hist->Projection(1,0)->Clone("histPart1");
  histPart1->SetTitle(";p /(GeV/c) ; TPCSignal /(a.u.)");
  histPart1->RebinX(4);

  TObjArray arr;
  histPart1->FitSlicesY(0,0,-1,10,"QNR",&arr);
  TH1D * PartMean1 = (TH1D *) arr.At(1)->Clone("PartMean1");
  TH1D * PartSigma1 = (TH1D *) arr.At(2)->Clone("PartSigma1");
  PartMean1->SetTitle(";p /(GeV/c) ; Mean (Gauss)");
  PartSigma1->SetTitle(";p /(GeV/c) ; Sigma (Gauss)");

  histPart1->SetMarkerStyle(22);
  PartMean1->SetMarkerStyle(21);
  hist->GetAxis(4)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(5)->SetRange(0,-1); // RESET RANGES
  
  if(kParticle2==0){ // electron
	nSigmaMinus2   =  -1.999;
    nSigmaPlus2   =    2.999;
  } else if(kParticle2 == 1){ //pion
	nSigmaMinus2   =  -1.999;
    nSigmaPlus2   =    2.999;
  } else if(kParticle2 == 2){ //kaons
	nSigmaMinus2   =  -2.999;
    nSigmaPlus2   =    2.999;
  } else if(kParticle2 == 3){ //protons
	nSigmaMinus2   =  -2.999;
    nSigmaPlus2   =    2.999;
  }

  //
  // 2. select and fit second particle
  //
  hist->GetAxis(3)->SetRangeUser(kParticle2,kParticle2);
  hist->GetAxis(4)->SetRangeUser(nSigmaMinus2,nSigmaPlus2); 
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  TH2D * histPart2 = (TH2D*)hist->Projection(1,0)->Clone("histPart2");
  histPart2->RebinX(4);
  histPart2->FitSlicesY(0,0,-1,10,"QNR",&arr);
  TH1D * PartMean2 =  (TH1D *) arr.At(1)->Clone("PartMean2");
  TH1D * PartSigma2 =  (TH1D *) arr.At(2)->Clone("PartSigma2");
  PartMean2->SetTitle(";p /(GeV/c) ; Mean (Gauss)");
  PartSigma2->SetTitle(";p /(GeV/c) ; Sigma (Gauss)");
  PartMean2->SetMarkerStyle(20);
  hist->GetAxis(4)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(5)->SetRange(0,-1); // RESET RANGES

  //
  // 3. separation
  //

	TH1F *fHistSeparation=(TH1F*)PartMean1->Clone("fHistSeparation"); //to get same binning
        fHistSeparation->SetMarkerStyle(22);
	const Int_t Nbins = PartMean1->GetNbinsX();
	fHistSeparation->SetTitle(";p /(GeV/c) ; Separation");

	Float_t DeltaMean[Nbins] ;
	Float_t DeltaSigma[Nbins];

	for(Int_t i=0 ; i<Nbins; i++){
	
	DeltaMean[i] = TMath::Abs(PartMean1->GetBinContent(i) - PartMean2->GetBinContent(i));
	DeltaSigma[i] = TMath::Abs((PartSigma1->GetBinContent(i) + PartSigma2->GetBinContent(i)))/2.;

 	if(!(TMath::Abs(DeltaSigma[i])<0.000001))fHistSeparation->SetBinContent(i,DeltaMean[i]/DeltaSigma[i]);
	}//for(Int_t i=0 ; i<Nbins ; i++)

	TObjArray *array = new TObjArray();
	array->Add(histPart1);
	array->Add(histPart2);
	array->Add(PartMean1);
	array->Add(PartSigma1);
	array->Add(PartMean2);
	array->Add(PartSigma2);
 	array->Add(fHistSeparation);
	return array;

}


//________________________________________________________________________
TObjArray * AliTPCcalibResidualPID::GetResidualGraphs(THnSparseF * histPidQA, const Char_t * system, Bool_t useV0s) {
  //
  // Extracts the residual graphs from THnSparse created from data (NOT MC!)
  //
  
  const TString momTitle = "#it{p}_{TPC} (GeV/#it{c})";
  const TString dEdxTitle = "d#it{E}/d#it{x} (arb. unit)";
  
  Bool_t isPPb = kFALSE;
  if (strcmp(system, "PPB") == 0 || strcmp(system, "PBP") == 0) {
    Printf("p-Pb/Pb-p detected - Applying special handling!");
    isPPb = kTRUE;
  }
  
  // the following parameters have to be extracted from the data itself
  //
    
  Float_t nSigmaPionMinus   =  -3.999;
  Float_t nSigmaPionPlus    =   3.999;
  Float_t nSigmaKaonMinus   =  -4.199;
  Float_t nSigmaKaonPlus    =  4.7999;
  Float_t nSigmaElectronMinus = -1.999;
  Float_t nSigmaElectronPlus  =  4.999;
  
  Int_t cutForFitting = 10;
  Double_t heightFractionForFittingRange = 0.1;
  //
  THnSparse * hist = histPidQA;
  //
  TCanvas * canvasQAtpc = new TCanvas("canvasQAtpcResGraph","Control canvas for residual graphs (TPC)",100,10,1380,800);
  canvasQAtpc->Divide(2,2);
  
  TCanvas * canvasQAtof = new TCanvas("canvasQAtofResGraph","Control canvas for residual graphs (TOF)",100,10,1380,800);
  canvasQAtof->Divide(2,2);
  
  TCanvas * canvasQAv0 = new TCanvas("canvasQAv0ResGraph","Control canvas for residual graphs (V0)",100,10,1380,800);
  canvasQAv0->Divide(2,2);
  
  TCanvas * canvasQAv0plusTOF = new TCanvas("canvasQAv0plusTOFResGraph","Control canvas for residual graphs (V0+TOF)",100,10,1380,800);
  canvasQAv0plusTOF->Divide(2,2);
  
  
  TCanvas * canvasQAv0DeDxPurityEl = new TCanvas("canvasQAv0DeDxPurityEl","Control canvas for residual graphs (V0 el)",100,10,600,400);
  TCanvas * canvasQAv0DeDxPurityPi = new TCanvas("canvasQAv0DeDxPurityPi","Control canvas for residual graphs (V0 pi)",100,10,600,400);
  TCanvas * canvasQAv0DeDxPurityPr = new TCanvas("canvasQAv0DeDxPurityPr","Control canvas for residual graphs (V0 pr)",100,10,600,400);
  
  canvasQAv0DeDxPurityEl->SetLogx();
  canvasQAv0DeDxPurityPi->SetLogx();
  canvasQAv0DeDxPurityPr->SetLogx();
  
  canvasQAv0DeDxPurityEl->SetLogz();
  canvasQAv0DeDxPurityPi->SetLogz();
  canvasQAv0DeDxPurityPr->SetLogz();
  
  canvasQAv0DeDxPurityEl->SetTopMargin(0.03);
  canvasQAv0DeDxPurityPi->SetTopMargin(0.03);
  canvasQAv0DeDxPurityPr->SetTopMargin(0.03);
  
  for (Int_t i = 1; i <= 4; i++) {
    canvasQAtpc->GetPad(i)->SetGrid(1, 1);
    canvasQAtof->GetPad(i)->SetGrid(1, 1);
    canvasQAv0->GetPad(i)->SetGrid(1, 1);
    canvasQAv0plusTOF->GetPad(i)->SetGrid(1, 1);

    canvasQAtpc->GetPad(i)->SetLogz();
    canvasQAtof->GetPad(i)->SetLogz();
    canvasQAv0->GetPad(i)->SetLogz();
    canvasQAv0plusTOF->GetPad(i)->SetLogz();

    canvasQAtpc->GetPad(i)->SetLogx();
    canvasQAtof->GetPad(i)->SetLogx();
    canvasQAv0->GetPad(i)->SetLogx();
    canvasQAv0plusTOF->GetPad(i)->SetLogx();
  }
  //
  // 1. select and fit electrons
  //
  hist->GetAxis(2)->SetRangeUser(0,0); // Non-V0s
  hist->GetAxis(3)->SetRangeUser(0,0); // electrons
  hist->GetAxis(4)->SetRangeUser(nSigmaElectronMinus,nSigmaElectronPlus); // 3sigma in TPC 
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  TH2D * histElectron = hist->Projection(1,0);
  histElectron->SetName("histElectron");
  histElectron->RebinX(4);
  histElectron->GetXaxis()->SetRangeUser(0.2,3.0);
  TObjArray arr;
  FitSlicesY(histElectron, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * electronPoints = (TH1D *) arr.At(1)->Clone();
  //
  TGraphErrors * electronGraph = new TGraphErrors(electronPoints);
  electronGraph->SetName("electronGraph");
  for(Int_t ip = 0; ip < electronGraph->GetN(); ip ++) {
    Bool_t removePoint = electronGraph->GetY()[ip] < 10 || 
      electronGraph->GetEY()[ip]/electronGraph->GetY()[ip] > 0.05 || 
      electronGraph->GetX()[ip] > 2.0 || 
      electronGraph->GetX()[ip] < 0.5; 
    if (removePoint) {
      electronGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAtof->cd(1);
  histElectron->SetTitle("electrons");
  histElectron->GetYaxis()->SetRangeUser(50, 120);
  histElectron->GetXaxis()->SetTitle(momTitle.Data());
  histElectron->GetYaxis()->SetTitle(dEdxTitle.Data());
  histElectron->GetXaxis()->SetMoreLogLabels(kTRUE);
  histElectron->GetXaxis()->SetNoExponent(kTRUE);
  histElectron->Draw("colz");
  electronPoints->SetMarkerStyle(24);
  electronPoints->Draw("same");
  hist->GetAxis(4)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(5)->SetRange(0,-1); // RESET RANGES
  //
  // 2. protons
  //
  hist->GetAxis(2)->SetRangeUser(0,0); // Non-V0s
  hist->GetAxis(3)->SetRangeUser(3,3); // protons
  //
  //hist->GetAxis(4)->SetRangeUser(nSigmaProtonMinus,nSigmaProtonPlus); // protons --> not reliable, use PATTERN RECOGNITION
  TH2D * histProtonTPC = hist->Projection(1,0);
  histProtonTPC->SetName("histProtonTPC");
  histProtonTPC->GetXaxis()->SetRangeUser(0.15,0.7);
  histProtonTPC->GetYaxis()->SetRangeUser(50, hist->GetAxis(1)->GetBinUpEdge(hist->GetAxis(1)->GetNbins()));
  
  // PATTERN RECOGNITION
  //OLD TF1 betaSq("betaSq","50./TMath::Power(x,1.3)",0.1,10); 
  // Add some additional Erf - cuts away kaons for pPb and PbPb and does not hurt in pp
  TF1 betaSq("betaSq","50./TMath::Power(x,1.3) + (1-TMath::Erf((x-0.2) / 0.075)) * 100",0.1,10);
  for(Int_t ix = 1; ix <= histProtonTPC->GetXaxis()->GetNbins(); ix++) {
     for(Int_t jy = 1; jy <= histProtonTPC->GetYaxis()->GetNbins(); jy++) {
       Float_t yPos = histProtonTPC->GetYaxis()->GetBinCenter(jy);
       Float_t xPos = histProtonTPC->GetXaxis()->GetBinCenter(ix);
       Int_t bin = histProtonTPC->GetBin(ix,jy);
       if (yPos < betaSq.Eval(xPos)) histProtonTPC->SetBinContent(bin,0);
     }
  }
  //
  //TODO Use likelihood option -> Inside fitting range ~no contamination, but little statistics at low momenta requires L
  FitSlicesY(histProtonTPC, heightFractionForFittingRange, cutForFitting, "QNRL", &arr);
  TH1D * protonPointsTPC = (TH1D *) arr.At(1)->Clone();
  //
  TGraphErrors * protonTpcGraph = new TGraphErrors(protonPointsTPC);
  protonTpcGraph->SetName("protonTpcGraph");
  for(Int_t ip = 0; ip < protonTpcGraph->GetN(); ip ++) {
    Bool_t removePoint = protonTpcGraph->GetY()[ip] < 10 || protonTpcGraph->GetEY()[ip]/protonTpcGraph->GetY()[ip] > 0.05 // TODO Larger tolerance, since this is only for the correction function, where 5% are still better than no data point
                        || protonTpcGraph->GetX()[ip] > (useV0s ? (isPPb ? 0.499 : 0.349) : 0.649); // If V0s are to be used, don't use TPC only protons to too high momenta; for pPb low statistics for the moment, therefore, go a bit further with TPC protons
                        //TODO NOW -> Changed range of TPC-signal -> Hopefully, sufficient statistics now for very low momenta!|| protonTpcGraph->GetX()[ip] < 0.19; // Added this cut because almost always bad statistics below 0.19
    if (removePoint) {
      protonTpcGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  TH2D * histProtonTOF = hist->Projection(1,0);
  histProtonTOF->SetName("histProtonTOF");
  histProtonTOF->GetXaxis()->SetRangeUser(0.6,2.5);
  
  // Same pattern recognition as before
  for(Int_t ix = 1; ix <= histProtonTOF->GetXaxis()->GetNbins(); ix++) {
    for(Int_t jy = 1; jy <= histProtonTOF->GetYaxis()->GetNbins(); jy++) {
      Float_t yPos = histProtonTOF->GetYaxis()->GetBinCenter(jy);
      Float_t xPos = histProtonTOF->GetXaxis()->GetBinCenter(ix);
      Int_t bin = histProtonTOF->GetBin(ix,jy);
      if (yPos < betaSq.Eval(xPos)) histProtonTOF->SetBinContent(bin,0);
    }
  }
  
  FitSlicesY(histProtonTOF, heightFractionForFittingRange, cutForFitting, "QNR", &arr);

  TH1D * protonPointsTOF =  (TH1D *)arr.At(1)->Clone();
  //
  TGraphErrors * protonTofGraph = new TGraphErrors(protonPointsTOF);
  protonTofGraph->SetName("protonTofGraph");
  for(Int_t ip = 0; ip < protonTofGraph->GetN(); ip ++) {
    // If V0s are to be used, TPC+TOF protons are only for reference and can be plotted to higher momenta
    Bool_t removePoint = protonTofGraph->GetY()[ip] < 10 || protonTofGraph->GetEY()[ip]/protonTofGraph->GetY()[ip] > 0.02 || protonTofGraph->GetX()[ip] > (useV0s ? 3 : 2) || protonTofGraph->GetX()[ip] < 0.65;
    if (removePoint) {
      protonTofGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAtpc->cd(2);
  histProtonTPC->SetTitle("protons");
  histProtonTPC->GetXaxis()->SetTitle(momTitle.Data());
  histProtonTPC->GetYaxis()->SetTitle(dEdxTitle.Data());
  histProtonTPC->GetXaxis()->SetMoreLogLabels(kTRUE);
  histProtonTPC->GetXaxis()->SetNoExponent(kTRUE);
  histProtonTPC->Draw("colz");
  betaSq.DrawCopy("same");
  protonPointsTPC->SetMarkerStyle(20);
  protonPointsTOF->SetMarkerStyle(24);
  protonPointsTOF->Draw("same");
  protonPointsTPC->Draw("same");
  //
  protonTpcGraph->SetMarkerStyle(26);
  protonTpcGraph->SetMarkerColor(kMagenta);
  protonTpcGraph->DrawClone("p");
  protonTofGraph->SetMarkerStyle(25);
  protonTofGraph->SetMarkerColor(kMagenta);
  protonTofGraph->DrawClone("p");
  
  canvasQAtof->cd(2);
  histProtonTOF->SetTitle("protons");
  histProtonTOF->GetYaxis()->SetRangeUser(30, 250);
  histProtonTOF->GetXaxis()->SetTitle(momTitle.Data());
  histProtonTOF->GetYaxis()->SetTitle(dEdxTitle.Data());
  histProtonTOF->GetXaxis()->SetMoreLogLabels(kTRUE);
  histProtonTOF->GetXaxis()->SetNoExponent(kTRUE);
  histProtonTOF->Draw("colz");
  betaSq.DrawCopy("same");
  protonPointsTOF->Draw("same");
  protonPointsTPC->Draw("same");
  //
  protonTpcGraph->DrawClone("p");
  protonTofGraph->DrawClone("p");
  
  hist->GetAxis(4)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(5)->SetRange(0,-1); // RESET RANGES
  //
  // 3. pions
  //
  hist->GetAxis(2)->SetRangeUser(0,0); // Non-V0s
  hist->GetAxis(3)->SetRangeUser(1,1); // pions
  //
  Double_t lowerPionThreshold = 0.3;

  hist->GetAxis(4)->SetRangeUser(nSigmaPionMinus,nSigmaPionPlus); // pions
  TH2D * histPionTPC = hist->Projection(1,0);
  histPionTPC->SetName("histPionTPC");
  histPionTPC->GetXaxis()->SetRangeUser(0.15,0.7);
  FitSlicesY(histPionTPC, heightFractionForFittingRange, cutForFitting, "QNR", &arr);

  // In case of really bad splines comment last 5 lines and use the following 6 lines:
  //TH2D * histPionTPC = hist->Projection(1,0);
  //histPionTPC->SetName("histPionTPC");
  //histPionTPC->GetYaxis()->SetRangeUser(30,100);
  //histPionTPC->GetXaxis()->SetRangeUser(0.15,0.7);
  //FitSlicesY(histPionTPC, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  //lowerPionThreshold = 0.15;


  TH1D * pionPointsTPC =  (TH1D *) arr.At(1)->Clone();
  //
  TGraphErrors * pionTpcGraph = new TGraphErrors(pionPointsTPC);
  pionTpcGraph->SetName("pionTpcGraph");
  for(Int_t ip = 0; ip < pionTpcGraph->GetN(); ip ++) {
    Bool_t removePoint = pionTpcGraph->GetY()[ip] < 10 || pionTpcGraph->GetEY()[ip]/pionTpcGraph->GetY()[ip] > 0.02 || pionTpcGraph->GetX()[ip] > 0.5
                         || pionTpcGraph->GetX()[ip] < lowerPionThreshold; // Exclude contamination by electrons
    if (removePoint) {
      pionTpcGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  TH2D * histPionTOF = hist->Projection(1,0);
  histPionTOF->SetName("histPionTOF");
  histPionTOF->GetXaxis()->SetRangeUser(0.5,1.1);
  FitSlicesY(histPionTOF, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * pionPointsTOF = (TH1D *) arr.At(1)->Clone();
  TGraphErrors * pionTofGraph = new TGraphErrors(pionPointsTOF);
  pionTofGraph->SetName("pionTofGraph");
  for(Int_t ip = 0; ip < pionTofGraph->GetN(); ip ++) {
    Bool_t removePoint = pionTofGraph->GetY()[ip] < 10 || pionTofGraph->GetEY()[ip]/pionTofGraph->GetY()[ip] > 0.02 || pionTofGraph->GetX()[ip] > 1.1 || pionTofGraph->GetX()[ip] < 0.5; // Changed by Ben (was 0.35) to avoid problems with TOF efficiency/systematics
    if (removePoint) {
      pionTofGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  canvasQAtpc->cd(3);
  histPionTPC->GetYaxis()->SetRangeUser(30, 90);
  histPionTPC->SetTitle("pions");
  histPionTPC->GetXaxis()->SetTitle(momTitle.Data());
  histPionTPC->GetYaxis()->SetTitle(dEdxTitle.Data());
  histPionTPC->GetXaxis()->SetMoreLogLabels(kTRUE);
  histPionTPC->GetXaxis()->SetNoExponent(kTRUE);
  histPionTPC->Draw("colz");
  pionPointsTPC->SetMarkerStyle(20);
  pionPointsTOF->SetMarkerStyle(24);
  pionPointsTOF->Draw("same");
  pionPointsTPC->Draw("same");
  //
  pionTpcGraph->SetMarkerStyle(26);
  pionTpcGraph->SetMarkerColor(kMagenta);
  pionTpcGraph->DrawClone("p");
  pionTofGraph->SetMarkerStyle(25);
  pionTofGraph->SetMarkerColor(kMagenta);
  pionTofGraph->DrawClone("p");
  
  canvasQAtof->cd(3);
  histPionTOF->GetYaxis()->SetRangeUser(30, 80);
  histPionTOF->GetXaxis()->SetTitle(momTitle.Data());
  histPionTOF->GetYaxis()->SetTitle(dEdxTitle.Data());
  histPionTOF->GetXaxis()->SetMoreLogLabels(kTRUE);
  histPionTOF->GetXaxis()->SetNoExponent(kTRUE);
  histPionTOF->Draw("colz");
  histPionTOF->SetTitle("pions");
  pionPointsTOF->Draw("same");
  pionPointsTPC->Draw("same");
  //
  pionTpcGraph->DrawClone("p");
  pionTofGraph->DrawClone("p");

  
  hist->GetAxis(4)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(5)->SetRange(0,-1); // RESET RANGES
  //
  // 4. kaons
  //
  hist->GetAxis(2)->SetRangeUser(0,0); // Non-V0s
  hist->GetAxis(3)->SetRangeUser(2,2); // kaons
  //
  hist->GetAxis(4)->SetRangeUser(nSigmaKaonMinus,nSigmaKaonPlus); // kaons
  TH2D * histKaonTPC = hist->Projection(1,0);
  histKaonTPC->SetName("histKaonTPC");
  histKaonTPC->GetXaxis()->SetRangeUser(0.12,0.6999);
  FitSlicesY(histKaonTPC, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * kaonPointsTPC = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * kaonTpcGraph = new TGraphErrors(kaonPointsTPC);
  kaonTpcGraph->SetName("kaonTpcGraph");
  for(Int_t ip = 0; ip < kaonTpcGraph->GetN(); ip ++) {
    Bool_t removePoint = kaonTpcGraph->GetY()[ip] < 10 || kaonTpcGraph->GetEY()[ip]/kaonTpcGraph->GetY()[ip] > 0.02
                         || kaonTpcGraph->GetX()[ip] < 0.12 || kaonTpcGraph->GetX()[ip] > 0.319; //TODO BEN was > 0.399
    if (removePoint) {
      kaonTpcGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // sigma in TOF
  
  /*
  hist->GetAxis(5)->SetRangeUser(-1.999,1.999); // sigma in TOF
  
  if (hist->GetAxis(3)->GetNbins() >= 5) {
    printf("Using restricted eta range for TPC+TOF Kaons!\n");
    hist->GetAxis(3)->SetRangeUser(4,4);
  }
  else {
    printf("WARNING: Data points for restricted eta range for TPC+TOF Kaons not available! Using full eta range (worse w.r.t. contamination)\n");
  }*/
  
  TH2D * histKaonTOF = hist->Projection(1,0);
  histKaonTOF->SetName("histKaonTOF");
  histKaonTOF->GetXaxis()->SetRangeUser(0.3,1.5);
  FitSlicesY(histKaonTOF, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * kaonPointsTOF = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * kaonTofGraph = new TGraphErrors(kaonPointsTOF);
  kaonTofGraph->SetName("kaonTofGraph");
  //
  for(Int_t ip = 0; ip < kaonTofGraph->GetN(); ip ++) {
    Bool_t removePoint = kaonTofGraph->GetY()[ip] < 10 || kaonTofGraph->GetEY()[ip]/kaonTofGraph->GetY()[ip] > 0.02 || kaonTofGraph->GetX()[ip] > 1.0
                         || kaonTofGraph->GetX()[ip] < 0.36; //TODO BEN NOW was 0.5
    if (removePoint) {
      kaonTofGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAtpc->cd(4);
  histKaonTPC->SetTitle("kaons");
  histKaonTPC->GetYaxis()->SetRangeUser(30, 500);
  histKaonTPC->GetXaxis()->SetTitle(momTitle.Data());
  histKaonTPC->GetYaxis()->SetTitle(dEdxTitle.Data());
  histKaonTPC->GetXaxis()->SetMoreLogLabels(kTRUE);
  histKaonTPC->GetXaxis()->SetNoExponent(kTRUE);
  histKaonTPC->Draw("colz");
  kaonPointsTPC->SetMarkerStyle(20);
  kaonPointsTOF->SetMarkerStyle(24);
  kaonPointsTOF->Draw("same");
  kaonPointsTPC->Draw("same");
  //
  kaonTpcGraph->SetMarkerStyle(26);
  kaonTpcGraph->SetMarkerColor(kMagenta);
  kaonTpcGraph->DrawClone("p");
  kaonTofGraph->SetMarkerStyle(25);
  kaonTofGraph->SetMarkerColor(kMagenta);
  kaonTofGraph->DrawClone("p");

  
  canvasQAtof->cd(4);
  histKaonTOF->GetYaxis()->SetRangeUser(30, 250);
  histKaonTOF->SetTitle("kaons");
  histKaonTOF->GetXaxis()->SetTitle(momTitle.Data());
  histKaonTOF->GetYaxis()->SetTitle(dEdxTitle.Data());
  histKaonTOF->GetXaxis()->SetMoreLogLabels(kTRUE);
  histKaonTOF->GetXaxis()->SetNoExponent(kTRUE);
  histKaonTOF->Draw("colz");
  kaonPointsTOF->Draw("same");
  kaonPointsTPC->Draw("same");
  kaonTpcGraph->DrawClone("p");
  kaonTofGraph->DrawClone("p");
  
  hist->GetAxis(4)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(5)->SetRange(0,-1); // RESET RANGES
  
  
  //
  // 5. V0 electrons
  //
  hist->GetAxis(2)->SetRangeUser(1,1); // V0 electrons
  hist->GetAxis(3)->SetRangeUser(0,0); // electrons
  
  //
  TH2D * histElectronV0 = hist->Projection(1,0);
  histElectronV0->SetName("histElectronV0");
  //histElectronV0->RebinX(2);
  histElectronV0->GetXaxis()->SetRangeUser(0.15,5.0);
  FitSlicesY(histElectronV0, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * electronPointsV0 = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * electronV0Graph = new TGraphErrors(electronPointsV0);
  electronV0Graph->SetName("electronV0Graph");
  for(Int_t ip = 0; ip < electronV0Graph->GetN(); ip ++) {
    Bool_t removePoint = electronV0Graph->GetY()[ip] < 10 || electronV0Graph->GetEY()[ip]/electronV0Graph->GetY()[ip] > 0.02;

    if (removePoint) {
      electronV0Graph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAv0->cd(1);
  histElectronV0->SetTitle("V0 electrons");
  histElectronV0->GetYaxis()->SetRangeUser(50, 120);
  histElectronV0->GetXaxis()->SetTitle(momTitle.Data());
  histElectronV0->GetYaxis()->SetTitle(dEdxTitle.Data());
  histElectronV0->GetXaxis()->SetMoreLogLabels(kTRUE);
  histElectronV0->GetXaxis()->SetNoExponent(kTRUE);
  histElectronV0->SetStats(0);
  histElectronV0->Draw("colz");
  electronPointsV0->SetMarkerStyle(34);
  electronPointsV0->Draw("same");
  electronGraph->SetMarkerStyle(25);
  electronGraph->SetMarkerColor(kMagenta);
  electronGraph->DrawClone("p");
  
  canvasQAv0DeDxPurityEl->cd();
  gStyle->SetOptTitle(0);
  TH1D* hElNew = (TH1D*)histElectronV0->DrawClone("colz");
  hElNew->GetXaxis()->SetTitleOffset(1.0);
  hElNew->SetTitle("");
  electronPointsV0->DrawClone("same");
  gStyle->SetOptTitle(1);



  canvasQAtof->cd(1);
  electronV0Graph->SetMarkerStyle(24);
  electronV0Graph->SetMarkerColor(kMagenta);
  electronV0Graph->DrawClone("p");
  
  //
  // 6. V0 pions
  //
  hist->GetAxis(2)->SetRangeUser(2,2); // V0 pions
  hist->GetAxis(3)->SetRangeUser(1,1); // pions
  //
  TH2D * histPionV0 = hist->Projection(1,0);
  histPionV0->SetName("histPionV0");
  histPionV0->GetXaxis()->SetRangeUser(0.15,10.);
  FitSlicesY(histPionV0, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * pionPointsV0 = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * pionV0Graph = new TGraphErrors(pionPointsV0);
  pionV0Graph->SetName("pionV0Graph");
  for(Int_t ip = 0; ip < pionV0Graph->GetN(); ip ++) {
    Bool_t removePoint = pionV0Graph->GetY()[ip] < 10 || pionV0Graph->GetEY()[ip]/pionV0Graph->GetY()[ip] > 0.02;

    if (removePoint) {
      pionV0Graph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAv0->cd(3);
  histPionV0->SetTitle("V0 pions");
  histPionV0->GetYaxis()->SetRangeUser(30, 100);
  histPionV0->GetXaxis()->SetTitle(momTitle.Data());
  histPionV0->GetYaxis()->SetTitle(dEdxTitle.Data());
  histPionV0->GetXaxis()->SetMoreLogLabels(kTRUE);
  histPionV0->GetXaxis()->SetNoExponent(kTRUE);
  histPionV0->Draw("colz");
  pionPointsV0->SetMarkerStyle(34);
  pionPointsV0->Draw("same");
  pionTofGraph->DrawClone("p");
  pionTpcGraph->DrawClone("p");
  
  canvasQAv0DeDxPurityPi->cd();
  gStyle->SetOptTitle(0);
  TH1D* hPiNew = (TH1D*)histPionV0->DrawClone("colz");
  hPiNew->GetXaxis()->SetTitleOffset(1.0);
  hPiNew->SetTitle("");
  pionPointsV0->DrawClone("same");
  gStyle->SetOptTitle(1);
  
  canvasQAtof->cd(3);
  pionV0Graph->SetMarkerStyle(24);
  pionV0Graph->SetMarkerColor(kMagenta);
  pionV0Graph->DrawClone("p");

  canvasQAtpc->cd(3);
  pionV0Graph->DrawClone("p");
  
  //
  // 6. V0 protons
  //
  hist->GetAxis(2)->SetRangeUser(3,3); // V0 protons
  hist->GetAxis(3)->SetRangeUser(3,3); // protons
  //
  TH2D * histProtonV0 = hist->Projection(1,0);
  histProtonV0->SetName("histProtonV0");
  histProtonV0->GetXaxis()->SetRangeUser(0.15,10.);
  
  // Remove contamination due to el and pions and low momenta because there the statistics
  // for the V0 protons goes down and becomes comparable with the contamination
  // -> This spoils the fit, if the contamination is not removed
  
  // PATTERN RECOGNITION
  Int_t correctionUpToBin = histProtonV0->GetXaxis()->FindBin(0.6);
  
  for(Int_t ix = 1; ix <= correctionUpToBin; ix++) {
     for(Int_t jy = 1; jy <= histProtonV0->GetYaxis()->GetNbins(); jy++) {
       Float_t yPos = histProtonV0->GetYaxis()->GetBinCenter(jy);
       Float_t xPos = histProtonV0->GetXaxis()->GetBinCenter(ix);
       Int_t bin = histProtonV0->GetBin(ix,jy);
       if (yPos < betaSq.Eval(xPos)) histProtonV0->SetBinContent(bin,0);
     }
  }
  
  /*
  Int_t correctionUpToBin = histProtonV0->GetXaxis()->FindBin(0.4);
  Double_t threshold = 120.;
  
  for(Int_t ix = 1; ix <= correctionUpToBin; ix++) {
     for(Int_t jy = 1; jy <= histProtonV0->GetYaxis()->GetNbins(); jy++) {
       Float_t yPos = histProtonV0->GetYaxis()->GetBinCenter(jy);
       Int_t bin = histProtonV0->GetBin(ix,jy);
       if (yPos < threshold) histProtonV0->SetBinContent(bin,0);
       else break;
     }
  }
  */
  
  FitSlicesY(histProtonV0, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * protonPointsV0 = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * protonV0Graph = new TGraphErrors(protonPointsV0);
  protonV0Graph->SetName("protonV0Graph");
  for(Int_t ip = 0; ip < protonV0Graph->GetN(); ip ++) {
    Bool_t removePoint = protonV0Graph->GetY()[ip] < 10 || protonV0Graph->GetEY()[ip]/protonV0Graph->GetY()[ip] > 0.02;
                         
    if (removePoint) {
      protonV0Graph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAv0->cd(2);
  histProtonV0->SetTitle("V0 protons");
  histProtonV0->GetXaxis()->SetTitle(momTitle.Data());
  histProtonV0->GetYaxis()->SetTitle(dEdxTitle.Data());
  histProtonV0->GetXaxis()->SetMoreLogLabels(kTRUE);
  histProtonV0->GetXaxis()->SetNoExponent(kTRUE);
  histProtonV0->Draw("colz");
  protonPointsV0->SetMarkerStyle(34);
  protonPointsV0->Draw("same");
  protonTofGraph->DrawClone("p");
  protonTpcGraph->DrawClone("p");
  
  canvasQAv0DeDxPurityPr->cd();
  gStyle->SetOptTitle(0);
  TH1D* hPrNew = (TH1D*)histProtonV0->DrawClone("colz");
  hPrNew->GetXaxis()->SetTitleOffset(1.0);
  hPrNew->SetTitle("");
  protonPointsV0->DrawClone("same");
  gStyle->SetOptTitle(1);

  canvasQAtof->cd(2);
  protonV0Graph->SetMarkerStyle(24);
  protonV0Graph->SetMarkerColor(kMagenta);
  protonV0Graph->DrawClone("p");

  canvasQAtpc->cd(2);
  protonV0Graph->DrawClone("p");
  
  
  hist->GetAxis(2)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(3)->SetRange(0,-1); // RESET RANGES
  
  
  //
  // 5. V0 electrons + TOF
  //
  hist->GetAxis(2)->SetRangeUser(1,1); // V0 electrons
  hist->GetAxis(3)->SetRangeUser(0,0); // electrons
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  //
  TH2D * histElectronV0plusTOF = hist->Projection(1,0);
  histElectronV0plusTOF->SetName("histElectronV0plusTOF");
  histElectronV0plusTOF->RebinX(2);
  histElectronV0plusTOF->GetXaxis()->SetRangeUser(0.2,5.0);
  FitSlicesY(histElectronV0plusTOF, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * electronPointsV0plusTOF = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * electronV0plusTOFGraph = new TGraphErrors(electronPointsV0plusTOF);
  electronV0plusTOFGraph->SetName("electronV0plusTOFGraph");
  for(Int_t ip = 0; ip < electronV0plusTOFGraph->GetN(); ip ++) {
    Bool_t removePoint = electronV0plusTOFGraph->GetY()[ip] < 10 || electronV0plusTOFGraph->GetEY()[ip]/electronV0plusTOFGraph->GetY()[ip] > 0.02;

    if (removePoint) {
      electronV0plusTOFGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAv0plusTOF->cd(1);
  histElectronV0plusTOF->SetTitle("V0+TOF electrons");
  histElectronV0plusTOF->GetYaxis()->SetRangeUser(50, 120);
  histElectronV0plusTOF->GetXaxis()->SetTitle(momTitle.Data());
  histElectronV0plusTOF->GetYaxis()->SetTitle(dEdxTitle.Data());
  histElectronV0plusTOF->GetXaxis()->SetMoreLogLabels(kTRUE);
  histElectronV0plusTOF->GetXaxis()->SetNoExponent(kTRUE);
  histElectronV0plusTOF->Draw("colz");
  electronPointsV0plusTOF->SetMarkerStyle(29);
  electronPointsV0plusTOF->Draw("same");
  electronGraph->DrawClone("p");
  electronV0Graph->DrawClone("p");

  canvasQAv0->cd(1);
  electronV0plusTOFGraph->SetMarkerStyle(30);
  electronV0plusTOFGraph->SetMarkerColor(kMagenta);
  electronV0plusTOFGraph->DrawClone("p");

  canvasQAtof->cd(1);
  electronV0plusTOFGraph->DrawClone("p");
  
  //
  // 6. V0 pions + TOF
  //
  hist->GetAxis(2)->SetRangeUser(2,2); // V0 pions
  hist->GetAxis(3)->SetRangeUser(1,1); // pions
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  //
  TH2D * histPionV0plusTOF = hist->Projection(1,0);
  histPionV0plusTOF->SetName("histPionV0plusTOF");
  histPionV0plusTOF->GetXaxis()->SetRangeUser(0.15,10.);
  FitSlicesY(histPionV0plusTOF, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * pionPointsV0plusTOF = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * pionV0plusTOFGraph = new TGraphErrors(pionPointsV0plusTOF);
  pionV0plusTOFGraph->SetName("pionV0plusTOFGraph");
  for(Int_t ip = 0; ip < pionV0plusTOFGraph->GetN(); ip ++) {
    Bool_t removePoint = pionV0plusTOFGraph->GetY()[ip] < 10 || pionV0plusTOFGraph->GetEY()[ip]/pionV0plusTOFGraph->GetY()[ip] > 0.02;

    if (removePoint) {
      pionV0plusTOFGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAv0plusTOF->cd(3);
  histPionV0plusTOF->SetTitle("V0+TOF pions");
  histPionV0plusTOF->GetYaxis()->SetRangeUser(30, 100);
  histPionV0plusTOF->GetXaxis()->SetTitle(momTitle.Data());
  histPionV0plusTOF->GetYaxis()->SetTitle(dEdxTitle.Data());
  histPionV0plusTOF->GetXaxis()->SetMoreLogLabels(kTRUE);
  histPionV0plusTOF->GetXaxis()->SetNoExponent(kTRUE);
  histPionV0plusTOF->Draw("colz");
  pionPointsV0plusTOF->SetMarkerStyle(29);
  pionPointsV0plusTOF->Draw("same");
  pionV0Graph->DrawClone("p");
  pionTofGraph->DrawClone("p");
  pionTpcGraph->DrawClone("p");
  
  canvasQAv0->cd(3);
  pionV0plusTOFGraph->SetMarkerStyle(30);
  pionV0plusTOFGraph->SetMarkerColor(kMagenta);
  pionV0plusTOFGraph->DrawClone("p");
  
  canvasQAtof->cd(3);
  pionV0plusTOFGraph->DrawClone("p");
  
  canvasQAtpc->cd(3);
  pionV0plusTOFGraph->DrawClone("p");
  
  //
  // 6. V0 protons + TOF
  //
  hist->GetAxis(2)->SetRangeUser(3,3); // V0 protons
  hist->GetAxis(3)->SetRangeUser(3,3); // protons
  hist->GetAxis(5)->SetRangeUser(-2.999,2.999); // 3sigma in TOF
  //
  TH2D * histProtonV0plusTOF = hist->Projection(1,0);
  histProtonV0plusTOF->SetName("histProtonV0plusTOF");
  histProtonV0plusTOF->GetXaxis()->SetRangeUser(0.15,10.);
  
  // Remove contamination due to el and pions and low momenta because there the statistics
  // for the V0 protons goes down and becomes comparable with the contamination
  // -> This spoils the fit, if the contamination is not removed
  
  // PATTERN RECOGNITION
  correctionUpToBin = histProtonV0plusTOF->GetXaxis()->FindBin(0.6);
  
  for(Int_t ix = 1; ix <= correctionUpToBin; ix++) {
     for(Int_t jy = 1; jy <= histProtonV0plusTOF->GetYaxis()->GetNbins(); jy++) {
       Float_t yPos = histProtonV0plusTOF->GetYaxis()->GetBinCenter(jy);
       Float_t xPos = histProtonV0plusTOF->GetXaxis()->GetBinCenter(ix);
       Int_t bin = histProtonV0plusTOF->GetBin(ix,jy);
       if (yPos < betaSq.Eval(xPos)) histProtonV0plusTOF->SetBinContent(bin,0);
     }
  }
  
  FitSlicesY(histProtonV0plusTOF, heightFractionForFittingRange, cutForFitting, "QNR", &arr);
  TH1D * protonPointsV0plusTOF = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * protonV0plusTOFGraph = new TGraphErrors(protonPointsV0plusTOF);
  protonV0plusTOFGraph->SetName("protonV0plusTOFGraph");
  for(Int_t ip = 0; ip < protonV0plusTOFGraph->GetN(); ip ++) {
    Bool_t removePoint = protonV0plusTOFGraph->GetY()[ip] < 10 || protonV0plusTOFGraph->GetEY()[ip]/protonV0plusTOFGraph->GetY()[ip] > 0.02;
                         
    if (removePoint) {
      protonV0plusTOFGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAv0plusTOF->cd(2);
  histProtonV0plusTOF->SetTitle("V0+TOF protons");
  histProtonV0plusTOF->GetXaxis()->SetTitle(momTitle.Data());
  histProtonV0plusTOF->GetYaxis()->SetTitle(dEdxTitle.Data());
  histProtonV0plusTOF->GetXaxis()->SetMoreLogLabels(kTRUE);
  histProtonV0plusTOF->GetXaxis()->SetNoExponent(kTRUE);
  histProtonV0plusTOF->Draw("colz");
  protonPointsV0plusTOF->SetMarkerStyle(29);
  protonPointsV0plusTOF->Draw("same");
  protonV0Graph->DrawClone("p");
  protonTofGraph->DrawClone("p");
  protonTpcGraph->DrawClone("p");

  canvasQAv0->cd(2);
  protonV0plusTOFGraph->SetMarkerStyle(30);
  protonV0plusTOFGraph->SetMarkerColor(kMagenta);
  protonV0plusTOFGraph->DrawClone("p");
  
  canvasQAtof->cd(2);
  protonV0plusTOFGraph->DrawClone("p");

  canvasQAtpc->cd(2);
  protonV0plusTOFGraph->DrawClone("p");
  
  hist->GetAxis(2)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(3)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(5)->SetRange(0,-1); // RESET RANGES
  
  
  // Clone (V0, V0+TOF) graphs: Remove some points, which are expected to deviate from the Bethe-Bloch curve, from the original graphs, so that
  // these graphs can be used for the BB fit. The original graph will keep all point in order to determine the correction and response
  // functions
  TGraphErrors * electronV0GraphForBBfit = new TGraphErrors(*electronV0Graph);
  electronV0GraphForBBfit->SetName("electronV0GraphForBBfit");
  
  for(Int_t ip = 0; ip < electronV0GraphForBBfit->GetN(); ip ++) {
    Bool_t removePoint = electronV0GraphForBBfit->GetX()[ip] < (isPPb ? 1.2 : 0.4);// || electronV0GraphForBBfit->GetX()[ip] > 2.2;
    
    if (removePoint) {
      electronV0GraphForBBfit->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  TGraphErrors * pionV0GraphForBBfit = new TGraphErrors(*pionV0Graph);
  pionV0GraphForBBfit->SetName("pionV0GraphForBBfit");
  
  for(Int_t ip = 0; ip < pionV0GraphForBBfit->GetN(); ip ++) {
    Bool_t removePoint = pionV0GraphForBBfit->GetX()[ip] < (isPPb ? 1.0 : 0.76);// || pionV0GraphForBBfit->GetX()[ip] > 6.; //TODO NOW was < 0.4 before
    //Bool_t removePoint = pionV0GraphForBBfit->GetX()[ip] < 0.4 || pionV0GraphForBBfit->GetX()[ip] > 0.399;// In this case NOT used for BB fit
    if (removePoint) {
      pionV0GraphForBBfit->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  TGraphErrors * protonV0GraphForBBfit = new TGraphErrors(*protonV0Graph);
  protonV0GraphForBBfit->SetName("protonV0GraphForBBfit");
  
  for(Int_t ip = 0; ip < protonV0GraphForBBfit->GetN(); ip ++) {
    Bool_t removePoint = protonV0GraphForBBfit->GetX()[ip] < 0.9 || protonV0GraphForBBfit->GetX()[ip] > 5.0; //TODO NOW was 2.5 before
    //Bool_t removePoint = protonV0GraphForBBfit->GetX()[ip] < 0.9 || protonV0GraphForBBfit->GetX()[ip] > 0.599;// In this case NOT used for BB fit
    if (removePoint) {
      protonV0GraphForBBfit->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  
  // V0 plus TOF
  TGraphErrors * electronV0plusTOFGraphForBBfit = new TGraphErrors(*electronV0plusTOFGraph);
  electronV0plusTOFGraphForBBfit->SetName("electronV0plusTOFGraphForBBfit");
  
  for(Int_t ip = 0; ip < electronV0plusTOFGraphForBBfit->GetN(); ip ++) {
    Bool_t removePoint = electronV0plusTOFGraphForBBfit->GetX()[ip] < (isPPb ? 1.2 : 0.6);//0.4 || electronV0plusTOFGraphForBBfit->GetX()[ip] > 1.3799;
    if (removePoint) {
      electronV0plusTOFGraphForBBfit->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  TGraphErrors * pionV0plusTOFGraphForBBfit = new TGraphErrors(*pionV0plusTOFGraph);
  pionV0plusTOFGraphForBBfit->SetName("pionV0plusTOFGraphForBBfit");
  
  for(Int_t ip = 0; ip < pionV0plusTOFGraphForBBfit->GetN(); ip ++) {
    Bool_t removePoint = pionV0plusTOFGraphForBBfit->GetX()[ip] < 0.4;// || pionV0plusTOFGraphForBBfit->GetX()[ip] > 6.;
    if (removePoint) {
      pionV0plusTOFGraphForBBfit->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  TGraphErrors * protonV0plusTOFGraphForBBfit = new TGraphErrors(*protonV0plusTOFGraph);
  protonV0plusTOFGraphForBBfit->SetName("protonV0plusTOFGraphForBBfit");
  
  for(Int_t ip = 0; ip < protonV0plusTOFGraphForBBfit->GetN(); ip ++) {
    Bool_t removePoint = protonV0plusTOFGraphForBBfit->GetX()[ip] < 0.9 || protonV0plusTOFGraphForBBfit->GetX()[ip] > 2.5;
    if (removePoint) {
      protonV0plusTOFGraphForBBfit->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  
  //
  // rescale graphs to betaGamma
  //
  kaonTofGraph->SetMarkerStyle(21);
  kaonTpcGraph->SetMarkerStyle(22);
  for(Int_t ip = 0; ip < kaonTofGraph->GetN(); ip ++) {
    kaonTofGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
    kaonTofGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
  }
  for(Int_t ip = 0; ip < kaonTpcGraph->GetN(); ip ++) {
    kaonTpcGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
    kaonTpcGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
  }
  //
  electronGraph->SetMarkerStyle(22);
  electronV0Graph->SetMarkerStyle(34);
  electronV0GraphForBBfit->SetMarkerStyle(34);
  electronV0plusTOFGraph->SetMarkerStyle(30);
  electronV0plusTOFGraphForBBfit->SetMarkerStyle(30);
  electronGraph->SetMarkerColor(2);
  electronV0Graph->SetMarkerColor(2);
  electronV0GraphForBBfit->SetMarkerColor(2);
  electronV0plusTOFGraph->SetMarkerColor(2);
  electronV0plusTOFGraphForBBfit->SetMarkerColor(2);
  for(Int_t ip = 0; ip < electronGraph->GetN(); ip ++) {
    electronGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
    electronGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
  }
  for(Int_t ip = 0; ip < electronV0Graph->GetN(); ip ++) {
    electronV0Graph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
    electronV0Graph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
  }
  for(Int_t ip = 0; ip < electronV0GraphForBBfit->GetN(); ip ++) {
    electronV0GraphForBBfit->GetX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
    electronV0GraphForBBfit->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
  }
  for(Int_t ip = 0; ip < electronV0plusTOFGraph->GetN(); ip ++) {
    electronV0plusTOFGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
    electronV0plusTOFGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
  }
  for(Int_t ip = 0; ip < electronV0plusTOFGraphForBBfit->GetN(); ip ++) {
    electronV0plusTOFGraphForBBfit->GetX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
    electronV0plusTOFGraphForBBfit->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
  }
  //
  pionTofGraph->SetMarkerStyle(21);
  pionTpcGraph->SetMarkerStyle(22);
  pionV0Graph->SetMarkerStyle(34);
  pionV0GraphForBBfit->SetMarkerStyle(34);
  pionV0plusTOFGraph->SetMarkerStyle(30);
  pionV0plusTOFGraphForBBfit->SetMarkerStyle(30);
  pionTofGraph->SetMarkerColor(3);
  pionTpcGraph->SetMarkerColor(3);
  pionV0Graph->SetMarkerColor(3);
  pionV0GraphForBBfit->SetMarkerColor(3);
  pionV0plusTOFGraph->SetMarkerColor(3);
  pionV0plusTOFGraphForBBfit->SetMarkerColor(3);
  for(Int_t ip = 0; ip < pionTofGraph->GetN(); ip ++) {
    pionTofGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    pionTofGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  for(Int_t ip = 0; ip < pionTpcGraph->GetN(); ip ++) {
    pionTpcGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    pionTpcGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  for(Int_t ip = 0; ip < pionV0Graph->GetN(); ip ++) {
    pionV0Graph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    pionV0Graph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  for(Int_t ip = 0; ip < pionV0GraphForBBfit->GetN(); ip ++) {
    pionV0GraphForBBfit->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    pionV0GraphForBBfit->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  for(Int_t ip = 0; ip < pionV0plusTOFGraph->GetN(); ip ++) {
    pionV0plusTOFGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    pionV0plusTOFGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  for(Int_t ip = 0; ip < pionV0plusTOFGraphForBBfit->GetN(); ip ++) {
    pionV0plusTOFGraphForBBfit->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    pionV0plusTOFGraphForBBfit->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  //
  protonTofGraph->SetMarkerStyle(21);
  protonTpcGraph->SetMarkerStyle(22);
  protonV0Graph->SetMarkerStyle(34);
  protonV0GraphForBBfit->SetMarkerStyle(34);
  protonV0plusTOFGraph->SetMarkerStyle(30);
  protonV0plusTOFGraphForBBfit->SetMarkerStyle(30);
  protonTofGraph->SetMarkerColor(4);
  protonTpcGraph->SetMarkerColor(4);
  protonV0Graph->SetMarkerColor(4);
  protonV0GraphForBBfit->SetMarkerColor(4);
  protonV0plusTOFGraph->SetMarkerColor(4);
  protonV0plusTOFGraphForBBfit->SetMarkerColor(4);
  for(Int_t ip = 0; ip < protonTofGraph->GetN(); ip ++) {
    protonTofGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    protonTofGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  for(Int_t ip = 0; ip < protonTpcGraph->GetN(); ip ++) {
    protonTpcGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    protonTpcGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  for(Int_t ip = 0; ip < protonV0Graph->GetN(); ip ++) {
    protonV0Graph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    protonV0Graph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  for(Int_t ip = 0; ip < protonV0GraphForBBfit->GetN(); ip ++) {
    protonV0GraphForBBfit->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    protonV0GraphForBBfit->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  for(Int_t ip = 0; ip < protonV0plusTOFGraph->GetN(); ip ++) {
    protonV0plusTOFGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    protonV0plusTOFGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  for(Int_t ip = 0; ip < protonV0plusTOFGraphForBBfit->GetN(); ip ++) {
    protonV0plusTOFGraphForBBfit->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    protonV0plusTOFGraphForBBfit->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  //
  //
  TGraphErrors * graphAll = new TGraphErrors();
  TList * listColl = new TList();
  if (!useV0s) {
    //listColl->Add(protonTpcGraph);
    //listColl->Add(kaonTpcGraph);  
    listColl->Add(pionTpcGraph);
    listColl->Add(electronGraph);
    listColl->Add(protonTofGraph); 
    listColl->Add(kaonTofGraph);
    listColl->Add(pionTofGraph);
  }
  else {
    listColl->Add(pionV0GraphForBBfit);
    //listColl->Add(electronV0GraphForBBfit);
    listColl->Add(protonV0GraphForBBfit);
    
    //listColl->Add(pionV0plusTOFGraphForBBfit);
    listColl->Add(electronV0plusTOFGraphForBBfit);
    //listColl->Add(protonV0plusTOFGraphForBBfit);
  }
  MergeGraphErrors(graphAll, listColl);
  graphAll->SetNameTitle("beamDataPoints","beamDataPoints");
  
  // Create graph out of TPC only, V0, V0+TOF and TPC+TOF to determine correction functions
  TList * listCollPr = new TList();
  if (useV0s) {
    listCollPr->Add(protonTpcGraph);
    //listCollPr->Add(protonTofGraph);
    
    TGraphErrors * protonV0GraphCut = new TGraphErrors(*protonV0Graph);
    protonV0GraphCut->SetName("protonV0GraphCut");
    for(Int_t ip = 0; ip < protonV0GraphCut->GetN(); ip ++) {
      Double_t mom = protonV0GraphCut->GetX()[ip] * AliPID::ParticleMass(AliPID::kProton);
      //Bool_t removePoint = mom >= 0.6 || mom < 0.35; // Will take TPC protons instead (statistics) for very low momenta
      Bool_t removePoint = mom < (isPPb ? 0.6 : 0.35); // Will take TPC protons instead (statistics) for very low momenta;
                                                       // for pPb low statistics for the moment, therefore, go a bit further with TPC protons
      
      
      if (removePoint) {
        protonV0GraphCut->RemovePoint(ip);
        ip--;
        continue;
      }
    }
    /*
    TGraphErrors * protonV0plusTOFGraphCut = new TGraphErrors(*protonV0plusTOFGraph);
    protonV0plusTOFGraphCut->SetName("protonV0plusTOFGraphCut");
    for(Int_t ip = 0; ip < protonV0plusTOFGraphCut->GetN(); ip ++) {
      Double_t mom = protonV0plusTOFGraphCut->GetX()[ip] * AliPID::ParticleMass(AliPID::kProton);
      Bool_t removePoint = mom < 0.6;
      
      if (removePoint) {
        protonV0plusTOFGraphCut->RemovePoint(ip);
        ip--;
        continue;
      }
    }*/
  
    listCollPr->Add(protonV0GraphCut);
    //listCollPr->Add(protonV0plusTOFGraphCut);
  }
  else {
    listCollPr->Add(protonTpcGraph);
    listCollPr->Add(protonTofGraph);
  }
  TGraphErrors * graphPrCombined = new TGraphErrors();
  MergeGraphErrors(graphPrCombined, listCollPr);
  graphPrCombined->SetMarkerStyle(22);
  graphPrCombined->SetMarkerColor(4);
  graphPrCombined->SetNameTitle("Graph_Protons_Combined", "Graph_Protons_Combined");
  
  TList * listCollPi = new TList();
  if (useV0s) {
    //listCollPi->Add(pionTpcGraph);
    //listCollPi->Add(pionTofGraph);
    
    TGraphErrors * pionV0GraphCut = new TGraphErrors(*pionV0Graph);
    pionV0GraphCut->SetName("pionV0GraphCut");
    for(Int_t ip = 0; ip < pionV0GraphCut->GetN(); ip ++) {
      //Double_t mom = pionV0GraphCut->GetX()[ip] * AliPID::ParticleMass(AliPID::kPion);
      Bool_t removePoint = kFALSE;//mom >= 0.4;
                           //|| mom < 0.2;//TODO NOW NEEDED?
      if (removePoint) {
        pionV0GraphCut->RemovePoint(ip);
        ip--;
        continue;
      }
    }
    /*
    TGraphErrors * pionV0plusTOFGraphCut = new TGraphErrors(*pionV0plusTOFGraph);
    pionV0plusTOFGraphCut->SetName("pionV0plusTOFGraphCut");
    for(Int_t ip = 0; ip < pionV0plusTOFGraphCut->GetN(); ip ++) {
      Double_t mom = pionV0plusTOFGraphCut->GetX()[ip] * AliPID::ParticleMass(AliPID::kPion);
      Bool_t removePoint = mom < 0.4;
      
      if (removePoint) {
        pionV0plusTOFGraphCut->RemovePoint(ip);
        ip--;
        continue;
      }
    }*/
  
    listCollPi->Add(pionV0GraphCut);
    //listCollPi->Add(pionV0plusTOFGraphCut);
  }
  else {
    listCollPi->Add(pionTpcGraph);
    listCollPi->Add(pionTofGraph);
  }
  TGraphErrors * graphPiCombined = new TGraphErrors();
  MergeGraphErrors(graphPiCombined, listCollPi);
  graphPiCombined->SetMarkerStyle(22);
  graphPiCombined->SetMarkerColor(3);
  graphPiCombined->SetNameTitle("Graph_Pions_Combined", "Graph_Pions_Combined");
  
  TList * listCollKa = new TList();
  listCollKa->Add(kaonTpcGraph);
  listCollKa->Add(kaonTofGraph);
  TGraphErrors * graphKaCombined = new TGraphErrors();
  MergeGraphErrors(graphKaCombined, listCollKa);
  graphKaCombined->SetMarkerStyle(22);
  graphKaCombined->SetMarkerColor(5);
  graphKaCombined->SetNameTitle("Graph_Kaons_Combined", "Graph_Kaons_Combined");
  
  TList * listCollEl = new TList();
  if (useV0s) {
    //listCollEl->Add(electronGraph);
    
    TGraphErrors * electronV0GraphCut = new TGraphErrors(*electronV0Graph);
    electronV0GraphCut->SetName("electronV0GraphCut");
    /*
    for(Int_t ip = 0; ip < electronV0GraphCut->GetN(); ip ++) {
      Double_t mom = electronV0GraphCut->GetX()[ip] * AliPID::ParticleMass(AliPID::kElectron);
      Bool_t removePoint = mom > 0.3;
      if (removePoint) {
        electronV0GraphCut->RemovePoint(ip);
        ip--;
        continue;
      }
    }
    
    TGraphErrors * electronV0plusTOFGraphCut = new TGraphErrors(*electronV0plusTOFGraph);
    electronV0plusTOFGraphCut->SetName("electronV0plusTOFGraphCut");
    for(Int_t ip = 0; ip < electronV0plusTOFGraphCut->GetN(); ip ++) {
      Double_t mom = electronV0plusTOFGraphCut->GetX()[ip] * AliPID::ParticleMass(AliPID::kElectron);
      Bool_t removePoint = mom <= 0.4;
      
      if (removePoint) {
        electronV0plusTOFGraphCut->RemovePoint(ip);
        ip--;
        continue;
      }
    }
    */
    listCollEl->Add(electronV0GraphCut);
    //listCollEl->Add(electronV0plusTOFGraphCut);
  }
  else {
    listCollEl->Add(electronGraph);
  }
  TGraphErrors * graphElCombined = new TGraphErrors();
  MergeGraphErrors(graphElCombined, listCollEl);
  graphElCombined->SetMarkerStyle(22);
  graphElCombined->SetMarkerColor(2);
  graphElCombined->SetNameTitle("Graph_Electrons_Combined", "Graph_Electrons_Combined");
  
  
  
  //
  //  return array with all graphs
  //
  TObjArray * arrGraphs = new TObjArray();
  arrGraphs->Add(graphAll);
  //  
  arrGraphs->Add(electronGraph);
  arrGraphs->Add(electronV0Graph);
  arrGraphs->Add(electronV0plusTOFGraph);
  arrGraphs->Add(electronV0GraphForBBfit);
  arrGraphs->Add(pionTpcGraph);
  arrGraphs->Add(pionTofGraph);
  arrGraphs->Add(pionV0Graph);
  arrGraphs->Add(pionV0plusTOFGraph);
  arrGraphs->Add(pionV0GraphForBBfit);
  arrGraphs->Add(kaonTpcGraph);
  arrGraphs->Add(kaonTofGraph);
  arrGraphs->Add(protonTpcGraph);
  arrGraphs->Add(protonTofGraph);
  arrGraphs->Add(protonV0Graph);
  arrGraphs->Add(protonV0plusTOFGraph);
  arrGraphs->Add(protonV0GraphForBBfit);
  //
  arrGraphs->Add(graphElCombined);
  arrGraphs->Add(graphPiCombined);
  arrGraphs->Add(graphKaCombined);
  arrGraphs->Add(graphPrCombined);
  //
  //
  
  canvasQAtpc->SaveAs("splines_QA_ResidualGraphsTPC.root");
  canvasQAtof->SaveAs("splines_QA_ResidualGraphsTOF.root");
  canvasQAv0->SaveAs("splines_QA_ResidualGraphsV0.root");
  canvasQAv0plusTOF->SaveAs("splines_QA_ResidualGraphsV0plusTOF.root");
  
  
  canvasQAv0DeDxPurityEl->SaveAs("V0_dEdx_purity_el.root");
  canvasQAv0DeDxPurityPi->SaveAs("V0_dEdx_purity_Pi.root");
  canvasQAv0DeDxPurityPr->SaveAs("V0_dEdx_purity_Pr.root");

  return arrGraphs;

}


//________________________________________________________________________
TObjArray * AliTPCcalibResidualPID::GetResidualGraphsMC(THnSparseF * histPidQA, const Char_t * /*system*/) {
  //
  // Extracts the residual graphs from THnSparse created from MC (NOT DATA!)
  //
  
  const TString momTitle = "#it{p}_{TPC} (GeV/#it{c})";
  const TString dEdxTitle = "d#it{E}/d#it{x} (arb. unit)";
  
  Int_t cutForFitting = 10;
  Double_t heightFractionForFittingRange = 0.1; 
  
  //
  THnSparse * hist = histPidQA;
  //
  TCanvas * canvasQAmc = new TCanvas("canvasQAmcResGraph","Control canvas for residual graphs (MC)",100,10,1380,800);
  canvasQAmc->Divide(2,2);
  
  for (Int_t i = 1; i <= 4; i++) {
    canvasQAmc->GetPad(i)->SetGrid(1, 1);
    canvasQAmc->GetPad(i)->SetLogz();
    canvasQAmc->GetPad(i)->SetLogx();
  }
  //
  // 1. select and fit electrons
  //
  // In the following, axis 3 will also be limited in range, although nsigma itself is not used. This is to avoid multiple counting of entries
  hist->GetAxis(2)->SetRangeUser(0,0); // electrons
  hist->GetAxis(3)->SetRangeUser(0,0); // electrons (used for nsigma and for the eta correction of the signal)
  TH2D * histElectron = hist->Projection(1,0);
  histElectron->SetName("histElectron");
  histElectron->RebinX(2);
  histElectron->GetXaxis()->SetRangeUser(0.15,8.0);
  TObjArray arr;
  FitSlicesY(histElectron, heightFractionForFittingRange, cutForFitting, "QNRL", &arr);
  TH1D * electronPoints = (TH1D *) arr.At(1)->Clone();
  //
  TGraphErrors * electronGraph = new TGraphErrors(electronPoints);
  electronGraph->SetName("electronGraphMC");
  for(Int_t ip = 0; ip < electronGraph->GetN(); ip ++) {
    Bool_t removePoint = electronGraph->GetY()[ip] < 10 || electronGraph->GetEY()[ip]/electronGraph->GetY()[ip] > 0.03
                         || electronGraph->GetX()[ip] < 0.15;// || electronGraph->GetX()[ip] > 3.1;
    if (removePoint) {
      electronGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAmc->cd(1);
  histElectron->SetTitle("electrons");
  histElectron->GetYaxis()->SetRangeUser(50, 120);
  histElectron->GetXaxis()->SetTitle(momTitle.Data());
  histElectron->GetYaxis()->SetTitle(dEdxTitle.Data());
  histElectron->GetXaxis()->SetMoreLogLabels(kTRUE);
  histElectron->GetXaxis()->SetNoExponent(kTRUE);
  histElectron->Draw("colz");
  electronPoints->SetMarkerStyle(24);
  electronPoints->Draw("same");
  //
  // 2. protons
  //
  hist->GetAxis(2)->SetRangeUser(3,3); // protons
  hist->GetAxis(3)->SetRangeUser(3,3); // protons (used for nsigma and for the eta correction of the signal)
  //
  TH2D * histProton = hist->Projection(1,0);
  histProton->SetName("histProton");
  histProton->GetXaxis()->SetRangeUser(0.15,8);
  histProton->GetYaxis()->SetRangeUser(10, hist->GetAxis(1)->GetBinUpEdge(hist->GetAxis(1)->GetNbins()));
  FitSlicesY(histProton, heightFractionForFittingRange, cutForFitting, "QNRL", &arr);
  TH1D * protonPoints = (TH1D *) arr.At(1)->Clone();
  //
  TGraphErrors * protonGraph = new TGraphErrors(protonPoints);
  protonGraph->SetName("protonGraphMC");
  for(Int_t ip = 0; ip < protonGraph->GetN(); ip ++) {
    Bool_t removePoint = protonGraph->GetY()[ip] < 10 || protonGraph->GetEY()[ip]/protonGraph->GetY()[ip] > 0.02 || 
                         protonGraph->GetX()[ip] < 0.15 || protonGraph->GetX()[ip] > 6;
    if (removePoint) {
      protonGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAmc->cd(2);
  histProton->SetTitle("protons");
  histProton->GetXaxis()->SetTitle(momTitle.Data());
  histProton->GetYaxis()->SetTitle(dEdxTitle.Data());
  histProton->GetXaxis()->SetMoreLogLabels(kTRUE);
  histProton->GetXaxis()->SetNoExponent(kTRUE);
  histProton->Draw("colz");
  protonPoints->SetMarkerStyle(20);
  protonPoints->Draw("same");
  
  //
  // 3. pions
  //
  hist->GetAxis(2)->SetRangeUser(1,1); // pions
  hist->GetAxis(3)->SetRangeUser(1,1); // pions (used for nsigma and for the eta correction of the signal)
  //
  TH2D * histPion = hist->Projection(1,0);
  histPion->SetName("histPion");
  histPion->GetXaxis()->SetRangeUser(0.15,50);
  FitSlicesY(histPion, heightFractionForFittingRange, cutForFitting, "QNRL", &arr);
  TH1D * pionPoints =  (TH1D *) arr.At(1)->Clone();
  //
  TGraphErrors * pionGraph = new TGraphErrors(pionPoints);
  pionGraph->SetName("pionGraphMC");
  for(Int_t ip = 0; ip < pionGraph->GetN(); ip ++) {
    Bool_t removePoint = pionGraph->GetY()[ip] < 10 || pionGraph->GetEY()[ip]/pionGraph->GetY()[ip] > 0.005
                         || pionGraph->GetX()[ip] < 0.15 || pionGraph->GetX()[ip] > 30;
    if (removePoint) {
      pionGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAmc->cd(3);
  histPion->GetYaxis()->SetRangeUser(30, 90);
  histPion->GetXaxis()->SetTitle(momTitle.Data());
  histPion->GetYaxis()->SetTitle(dEdxTitle.Data());
  histPion->GetXaxis()->SetMoreLogLabels(kTRUE);
  histPion->GetXaxis()->SetNoExponent(kTRUE);
  histPion->Draw("colz");
  histPion->SetTitle("pions");
  pionPoints->SetMarkerStyle(20);
  pionPoints->Draw("same");
  
  //
  // 4. kaons
  //
  hist->GetAxis(2)->SetRangeUser(2,2); // kaons
  hist->GetAxis(3)->SetRangeUser(2,2); // kaons (used for nsigma and for the eta correction of the signal)
  //
  TH2D * histKaon = hist->Projection(1,0);
  histKaon->SetName("histKaon");
  histKaon->GetXaxis()->SetRangeUser(0.15,8);
  FitSlicesY(histKaon, heightFractionForFittingRange, cutForFitting, "QNRL", &arr);
  TH1D * kaonPoints = (TH1D*) arr.At(1)->Clone();
  //
  TGraphErrors * kaonGraph = new TGraphErrors(kaonPoints);
  kaonGraph->SetName("kaonGraphMC");
  for(Int_t ip = 0; ip < kaonGraph->GetN(); ip ++) {
    Bool_t removePoint = kaonGraph->GetY()[ip] < 10 || kaonGraph->GetEY()[ip]/kaonGraph->GetY()[ip] > 0.02
                         || kaonGraph->GetX()[ip] < 0.15;
    if (removePoint) {
      kaonGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  canvasQAmc->cd(4);
  histKaon->SetTitle("kaons");
  histKaon->GetYaxis()->SetRangeUser(30, 500);
  histKaon->GetXaxis()->SetTitle(momTitle.Data());
  histKaon->GetYaxis()->SetTitle(dEdxTitle.Data());
  histKaon->GetXaxis()->SetMoreLogLabels(kTRUE);
  histKaon->GetXaxis()->SetNoExponent(kTRUE);
  histKaon->Draw("colz");
  kaonPoints->SetMarkerStyle(20);
  kaonPoints->Draw("same");
  
  
  
  hist->GetAxis(2)->SetRange(0,-1); // RESET RANGES
  hist->GetAxis(3)->SetRange(0,-1); // RESET RANGES
  
  
  // Clone graphs to have graphs with the same names as for the data case -> same subsequent functions can be used to determine
  // the correction functions and, finally, the response functions.
  // In addition: Remove some points, which are expected to deviate from the Bethe-Bloch curve, from the original graphs, so that
  // these graphs can be used for the BB fit
  TGraphErrors * graphPrCombined = new TGraphErrors(*protonGraph);
  graphPrCombined->SetMarkerStyle(22);
  graphPrCombined->SetMarkerColor(4);
  graphPrCombined->SetNameTitle("Graph_Protons_Combined", "Graph_Protons_Combined");
  
  TGraphErrors * graphPiCombined = new TGraphErrors(*pionGraph);
  graphPiCombined->SetMarkerStyle(22);
  graphPiCombined->SetMarkerColor(3);
  graphPiCombined->SetNameTitle("Graph_Pions_Combined", "Graph_Pions_Combined");
  
  TGraphErrors * graphKaCombined = new TGraphErrors(*kaonGraph);
  graphKaCombined->SetMarkerStyle(22);
  graphKaCombined->SetMarkerColor(5);
  graphKaCombined->SetNameTitle("Graph_Kaons_Combined", "Graph_Kaons_Combined");
  
  TGraphErrors * graphElCombined = new TGraphErrors(*electronGraph);
  graphElCombined->SetMarkerStyle(22);
  graphElCombined->SetMarkerColor(2);
  graphElCombined->SetNameTitle("Graph_Electrons_Combined", "Graph_Electrons_Combined");
  
  for(Int_t ip = 0; ip < electronGraph->GetN(); ip ++) {
    Bool_t removePoint = electronGraph->GetX()[ip] < 2.5;// || electronGraph->GetX()[ip] > 5.0;
    //Bool_t removePoint = electronGraph->GetX()[ip] < 1.2 || electronGraph->GetX()[ip] > 5.0;
    if (removePoint) {
      electronGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  for(Int_t ip = 0; ip < protonGraph->GetN(); ip ++) {
    Bool_t removePoint = protonGraph->GetX()[ip] < 0.9
                         || protonGraph->GetX()[ip] > 2.5;//3.5; //TODO NEW in order not to get into conflict with pions/kaons
    if (removePoint) {
      protonGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  for(Int_t ip = 0; ip < pionGraph->GetN(); ip ++) {
    Bool_t removePoint = pionGraph->GetX()[ip] < 2.1;//TODO APR18 0.8;
    if (removePoint) {
      pionGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  
  for(Int_t ip = 0; ip < kaonGraph->GetN(); ip ++) {
    Bool_t removePoint = kaonGraph->GetX()[ip] < 1.25 || kaonGraph->GetX()[ip] > 4.0;// < 0.7;// || kaonGraph->GetX()[ip] > 4;
    if (removePoint) {
      kaonGraph->RemovePoint(ip);
      ip--;
      continue;
    }
  }
  //
  // rescale graphs to betaGamma
  //
  kaonGraph->SetMarkerStyle(22);
  for(Int_t ip = 0; ip < kaonGraph->GetN(); ip ++) {
    kaonGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
    kaonGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
  }
  for(Int_t ip = 0; ip < graphKaCombined->GetN(); ip ++) {
    graphKaCombined->GetX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
    graphKaCombined->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kKaon);
  }
  //
  electronGraph->SetMarkerStyle(22);
  electronGraph->SetMarkerColor(2);
  for(Int_t ip = 0; ip < electronGraph->GetN(); ip ++) {
    electronGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
    electronGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
  }
  for(Int_t ip = 0; ip < graphElCombined->GetN(); ip ++) {
    graphElCombined->GetX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
    graphElCombined->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kElectron);
  }
  //
  pionGraph->SetMarkerStyle(22);
  pionGraph->SetMarkerColor(3);
  for(Int_t ip = 0; ip < pionGraph->GetN(); ip ++) {
    pionGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    pionGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  for(Int_t ip = 0; ip < graphPiCombined->GetN(); ip ++) {
    graphPiCombined->GetX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
    graphPiCombined->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kPion);
  }
  //
  protonGraph->SetMarkerStyle(22);
  protonGraph->SetMarkerColor(4);
  for(Int_t ip = 0; ip < protonGraph->GetN(); ip ++) {
    protonGraph->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    protonGraph->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  for(Int_t ip = 0; ip < graphPrCombined->GetN(); ip ++) {
    graphPrCombined->GetX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
    graphPrCombined->GetEX()[ip] /= AliPID::ParticleMass(AliPID::kProton);
  }
  //
  //
  
  // Store graphs without further restriction
  TGraphErrors * graphPrAll = new TGraphErrors(*graphPrCombined);
  graphPrAll->SetNameTitle("Protons_MC_all", "Protons_MC_all");
  
  TGraphErrors * graphPiAll = new TGraphErrors(*graphPiCombined);
  graphPiAll->SetNameTitle("Pions_MC_all", "Pions_MC_all");
  
  TGraphErrors * graphKaAll = new TGraphErrors(*graphKaCombined);
  graphKaAll->SetNameTitle("Kaons_MC_all", "Kaons_MC_all");
  
  TGraphErrors * graphElAll = new TGraphErrors(*graphElCombined);
  graphElAll->SetNameTitle("Electrons_MC_all", "Electrons_MC_all");
  
  //
  //
  TGraphErrors * graphAll = new TGraphErrors();
  TList * listColl = new TList();
  listColl->Add(electronGraph);
  listColl->Add(protonGraph); 
  listColl->Add(kaonGraph);
  listColl->Add(pionGraph);
  MergeGraphErrors(graphAll, listColl);
  graphAll->SetNameTitle("beamDataPoints","beamDataPoints");
  
  //
  //  return array with all graphs
  //
  TObjArray * arrGraphs = new TObjArray();
  arrGraphs->Add(graphAll);
  //  
  arrGraphs->Add(electronGraph);
  arrGraphs->Add(pionGraph);
  arrGraphs->Add(kaonGraph);
  arrGraphs->Add(protonGraph);
  //
  arrGraphs->Add(graphElAll);
  arrGraphs->Add(graphPiAll);
  arrGraphs->Add(graphKaAll);
  arrGraphs->Add(graphPrAll);  
  //
  arrGraphs->Add(graphElCombined);
  arrGraphs->Add(graphPiCombined);
  arrGraphs->Add(graphKaCombined);
  arrGraphs->Add(graphPrCombined);
  //
  //
  
  canvasQAmc->SaveAs("splines_QA_ResidualGraphsTPC.root");

  return arrGraphs;

}


//________________________________________________________________________
TObjArray * AliTPCcalibResidualPID::GetResponseFunctions(TF1* parametrisation, TObjArray* inputGraphs, const Char_t * type, const Char_t * period, const Char_t * pass, const Char_t * system, const Char_t* dedxtype) {
  //
  //
  
  Bool_t isMC = kFALSE;
  if (strcmp(type, "MC") == 0) {
    isMC = kTRUE;
  }
  else if (strcmp(type, "DATA") == 0) {
    isMC = kFALSE;
  }
  else {
    Printf("ERROR - GetResponseFunctions: Unknown type \"%s\" - must be \"MC\" or \"DATA\"!", type);
    
    return 0x0;
  }
  
  Bool_t isPbPb = kFALSE;
  Bool_t isPPb = kFALSE;
  if (strcmp(system, "PBPB") == 0) {
    Printf("PbPb detected - Applying special handling!");
    isPbPb = kTRUE;
  }
  else if (strcmp(system, "PPB") == 0 || strcmp(system, "PBP") == 0) {
    Printf("p-Pb/Pb-p detected - Applying special handling!");
    isPPb = kTRUE;
  }
  
  TCanvas* canvasQA[4] = { 0x0, };
  for (Int_t i = 0; i < 4; i++) {
    canvasQA[i] = new TCanvas(Form("canvasQAres_%d", i), "Control canvas for residual polynomial",100,10,1380,800);
    canvasQA[i]->SetGrid(1, 1);
    canvasQA[i]->SetLogx();
  }
  /*
  TCanvas * canvasQA = new TCanvas("canvasQAres","Control canvas for residual polynomial",100,10,1380,800);
  canvasQA->Divide(2,2);
  
  for (Int_t i = 1; i <= 4; i++) {
    canvasQA->GetPad(i)->SetGrid(1, 1);
  }
  */
  //
  // smallest needed (100MeV proton) bg = 0.1/0.938(=AliPID::ParticleMass(AliPID::kProton)) = 0.1, 
  // largest needed 100 GeV electron, bg = 100/0.000511(=AliPID::ParticleMass(AliPID::kElectron)) = 200 000
  //
  Double_t from = 0.1;
  Double_t to = 200000;
  
  TF1* funcBB = new TF1(*parametrisation);
  funcBB->SetLineColor(2);
  funcBB->SetLineWidth(1);
  
  TString fitFuncString = "[0] + [1] / x + [2] / (x**2) + [3] / (x**3) + [4] / (x**4) + [5] / (x**5) + [6] * x";
  TString fitFuncString2 = "pol6";
  //
  // 1. extract proton corrections
  //
  TGraphErrors *  graphProtonTPC = (TGraphErrors *) inputGraphs->FindObject("Graph_Protons_Combined");
  TGraphErrors *  graphProtonTPCfinal = new TGraphErrors(*graphProtonTPC);
  graphProtonTPCfinal->SetName("graphProtonTPCfinal");
  for(Int_t ip = 0; ip < graphProtonTPC->GetN(); ip ++) {
    graphProtonTPC->GetY()[ip] -= funcBB->Eval(graphProtonTPC->GetX()[ip]);
    graphProtonTPC->GetY()[ip] /= funcBB->Eval(graphProtonTPC->GetX()[ip]);
    graphProtonTPC->GetEY()[ip] /= funcBB->Eval(graphProtonTPC->GetX()[ip]);;
  }
  canvasQA[0]->cd();
  //canvasQA->cd(1);
  //gPad->SetLogx();
  graphProtonTPC->GetXaxis()->SetTitle("#beta#gamma");
  graphProtonTPC->GetXaxis()->SetMoreLogLabels(kTRUE);
  graphProtonTPC->GetXaxis()->SetNoExponent(kTRUE);
  graphProtonTPC->GetYaxis()->SetLabelSize(0.04);
  graphProtonTPC->GetYaxis()->SetTitleOffset(0.85);
  graphProtonTPC->GetXaxis()->SetTitleOffset(1.0);
  graphProtonTPC->GetYaxis()->SetTitle("(data - fit) / fit");
  graphProtonTPC->Draw("ap");
  
  if (graphProtonTPC->GetN() <= 0)  {
    Printf("ERROR - GetResponseFunctions: Proton graph has no data points!");
    
    return 0x0;
  }
  graphProtonTPC->Sort(); // Sort points along x. Next, the very first point will be used to determine the starting point of the correction function
  TF1 * funcCorrProton = new TF1("funcCorrProton", fitFuncString2.Data(), TMath::Max(graphProtonTPC->GetX()[0], 0.15),1.0); // TODO BEN was 0.18 - 0.85
  graphProtonTPC->Fit(funcCorrProton, "QREX0M");
  //
  // 2. extract kaon corrections
  //
  TGraphErrors *  graphKaonTPC = (TGraphErrors *) inputGraphs->FindObject("Graph_Kaons_Combined");
  TGraphErrors *  graphKaonTPCfinal = new TGraphErrors(*graphKaonTPC);
  graphKaonTPCfinal->SetName("graphKaonTPCfinal");
  for(Int_t ip = 0; ip < graphKaonTPC->GetN(); ip ++) {
    graphKaonTPC->GetY()[ip] -= funcBB->Eval(graphKaonTPC->GetX()[ip]);
    graphKaonTPC->GetY()[ip] /= funcBB->Eval(graphKaonTPC->GetX()[ip]);
    graphKaonTPC->GetEY()[ip] /= funcBB->Eval(graphKaonTPC->GetX()[ip]);;
  }
  canvasQA[1]->cd();
  //canvasQA->cd(2);
  //gPad->SetLogx();
  graphKaonTPC->GetXaxis()->SetTitle("#beta#gamma");
  graphKaonTPC->GetYaxis()->SetTitle("(data - fit) / fit");
  graphKaonTPC->GetXaxis()->SetMoreLogLabels(kTRUE);
  graphKaonTPC->GetXaxis()->SetNoExponent(kTRUE);
  graphKaonTPC->GetYaxis()->SetLabelSize(0.04);
  graphKaonTPC->GetYaxis()->SetTitleOffset(0.85);
  graphKaonTPC->GetXaxis()->SetTitleOffset(1.0);
  graphKaonTPC->Draw("ap");
  
  if (graphKaonTPC->GetN() <= 0)  {
    Printf("ERROR - GetResponseFunctions: Kaon graph has no data points!");
    
    return 0x0;
  }
  graphKaonTPC->Sort(); // Sort points along x. Next, the very first point will be used to determine the starting point of the correction function
  
  TF1 * funcCorrKaon = 0x0;
  
  if (isMC) {
    funcCorrKaon = new TF1("funcCorrKaon", fitFuncString.Data(), TMath::Max(graphKaonTPC->GetX()[0], 0.25), isPPb ? 3.44 : 1.981);
    graphKaonTPC->Fit(funcCorrKaon, "QREX0M");
  }
  else {
    // In case of data there are sometimes problems to fit the shape with one function (could describe the overall deviation,
    // but will not cover all the details).
    // Nevertheless, this shape (including most of the "details") can be fitted with the following approach with two functions
    TF1 * funcCorrKaon1 = new TF1("funcCorrKaon1", fitFuncString.Data(),
                                  TMath::Max(graphKaonTPC->GetX()[0], 0.25), 1.981); 
    graphKaonTPC->Fit(funcCorrKaon1, "QREX0M", "same", TMath::Max(graphKaonTPC->GetX()[0], 0.25), 1.0);
    
    TF1 * funcCorrKaon2 = new TF1("funcCorrKaon2", fitFuncString2.Data(), TMath::Max(graphKaonTPC->GetX()[0], 0.25),  1.981);
    graphKaonTPC->Fit(funcCorrKaon2, "QREX0M", "same", (isMC ? 1.981 : 1.0), 1.981);
    
    funcCorrKaon = new TF1("funcCorrKaon",
                           "funcCorrKaon1 * 0.5*(1.+TMath::Erf((1 - x) / 0.1)) + ([0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x+[6]*x*x*x*x*x*x) * 0.5*(1.+TMath::Erf((x - 1) / 0.1))",
                           TMath::Max(graphKaonTPC->GetX()[0], 0.25), 1.981);
  
    for (Int_t i = funcCorrKaon1->GetNpar(), j = 0; i < funcCorrKaon1->GetNpar() + funcCorrKaon2->GetNpar(); i++, j++) {
      funcCorrKaon->SetParameter(j, funcCorrKaon2->GetParameter(j));
    }
    funcCorrKaon->SetLineColor(kRed);
    funcCorrKaon->GetHistogram()->DrawClone("csame");
    //funcCorrKaon->Draw("same");
  }
  /*TODO
  TF1 * funcCorrKaon = new TF1("funcCorrKaon", fitFuncString.Data(),//TODO BEN was fitFuncString2
                               TMath::Max(graphKaonTPC->GetX()[0], 0.25), (isMC ? 1.981 : 1.0)); //TODO BEN was 0.79 for data and 1.45 for MC
  graphKaonTPC->Fit(funcCorrKaon, "QREX0M");
  */
  //
  // 3. extract pion corrections
  //
  TGraphErrors *  graphPionTPC = (TGraphErrors *)  inputGraphs->FindObject("Graph_Pions_Combined");
  TGraphErrors *  graphPionTPCfinal = new TGraphErrors(*graphPionTPC);
  graphPionTPCfinal->SetName("graphPionTPCfinal");
  for(Int_t ip = 0; ip < graphPionTPC->GetN(); ip ++) {
    graphPionTPC->GetY()[ip] -= funcBB->Eval(graphPionTPC->GetX()[ip]);
    graphPionTPC->GetY()[ip] /= funcBB->Eval(graphPionTPC->GetX()[ip]);
    graphPionTPC->GetEY()[ip] /= funcBB->Eval(graphPionTPC->GetX()[ip]);
  }
  canvasQA[2]->cd();
  //canvasQA->cd(3);
  //gPad->SetLogx();
  graphPionTPC->GetXaxis()->SetTitle("#beta#gamma");
  graphPionTPC->GetYaxis()->SetTitle("(data - fit) / fit");
  graphPionTPC->GetXaxis()->SetMoreLogLabels(kTRUE);
  graphPionTPC->GetXaxis()->SetNoExponent(kTRUE);
  graphPionTPC->GetYaxis()->SetLabelSize(0.04);
  graphPionTPC->GetYaxis()->SetTitleOffset(0.85);
  graphPionTPC->GetXaxis()->SetTitleOffset(1.0);
  graphPionTPC->Draw("ap");
  
  if (graphPionTPC->GetN() <= 0)  {
    Printf("ERROR - GetResponseFunctions: Pion graph has no data points!");
    
    return 0x0;
  }
  graphPionTPC->Sort(); // Sort points along x. Next, the very first point will be used to determine the starting point of the correction function
  // In case of PbPb (data, not MC) only correct down to 0.2 GeV/c; otherwise: contamination due to electrons
  TF1 * funcCorrPion = new TF1("funcCorrPion", fitFuncString.Data(), ((isPbPb && !isMC) ? (0.2 / AliPID::ParticleMass(AliPID::kPion)) : graphPionTPC->GetX()[0]), isMC ? (isPPb ? 12.8 : (isPbPb ? 12.8 : 7.1)) : (isPPb ? 7.68 : 7.1)); 
  graphPionTPC->Fit(funcCorrPion, "QREX0M");
  //
  // 4. extract electron corrections
  //
  TGraphErrors *  graphElectronTPC = (TGraphErrors *)  inputGraphs->FindObject("Graph_Electrons_Combined");
  TGraphErrors *  graphElectronTPCfinal = new TGraphErrors(*graphElectronTPC);
  graphElectronTPCfinal->SetName("graphElectronTPCfinal");
  for(Int_t ip = 0; ip < graphElectronTPC->GetN(); ip ++) {
    graphElectronTPC->GetY()[ip] -= funcBB->Eval(graphElectronTPC->GetX()[ip]);
    graphElectronTPC->GetY()[ip] /= funcBB->Eval(graphElectronTPC->GetX()[ip]);
    graphElectronTPC->GetEY()[ip] /= funcBB->Eval(graphElectronTPC->GetX()[ip]);;
  }
  canvasQA[3]->cd();
  //canvasQA->cd(4);
  //gPad->SetLogx();
  graphElectronTPC->GetXaxis()->SetTitle("#beta#gamma");
  graphElectronTPC->GetYaxis()->SetTitle("(data - fit) / fit");
  graphElectronTPC->GetXaxis()->SetMoreLogLabels(kTRUE);
  graphElectronTPC->GetXaxis()->SetNoExponent(kTRUE);
  graphElectronTPC->GetYaxis()->SetLabelSize(0.04);
  graphElectronTPC->GetYaxis()->SetTitleOffset(0.85);
  graphElectronTPC->GetXaxis()->SetTitleOffset(1.0);
  graphElectronTPC->Draw("ap");
  
  if (graphElectronTPC->GetN() <= 0)  {
    Printf("ERROR - GetResponseFunctions: Electron graph has no data points!");
    
    return 0x0;
  }
  graphElectronTPC->Sort(); // Sort points along x. Next, the very first point will be used to determine the starting point of the correction function
  // In case of PbPb (data, not MC) only correct down to 0.2 GeV/c; otherwise: contamination due to pions
  TF1 * funcCorrElectron = new TF1("funcCorrElectron", fitFuncString.Data(), (!isMC && isPbPb ? (0.2 / AliPID::ParticleMass(AliPID::kElectron)) :graphElectronTPC->GetX()[0]), (isMC ? 3565 : (isPPb ? 2900 : 1920/*970*/)));// TODO was 1800 for pp data
  // NOTE: For data, the results are almost the same for fitFuncString and fitFuncString2. Maybe, fitFuncString2 is slightly better.
  graphElectronTPC->Fit(funcCorrElectron, "QREX0M");
  //
  // EXTRACT GRAPHS AND PUT THEM TO THE TOBJARRAY
  //
  const Int_t nBins = 500;
  Double_t xBetaGamma[nBins];
  Double_t yProton[nBins];
  Double_t yKaon[nBins];
  Double_t yPion[nBins];
  Double_t yElectron[nBins];
  Double_t yDefault[nBins];
  //
  // 
  //
  xBetaGamma[0] = from;
  Double_t factor = pow(to/from, 1./nBins);
  
  //
  for(Int_t kk = 0; kk < nBins; kk++) {
    if (kk > 0) xBetaGamma[kk] = factor * xBetaGamma[kk-1];
    yProton[kk] =  funcBB->Eval(xBetaGamma[kk])/50.;
    yPion[kk] =  funcBB->Eval(xBetaGamma[kk])/50.;
    yKaon[kk] =  funcBB->Eval(xBetaGamma[kk])/50.;
    yElectron[kk] =  funcBB->Eval(xBetaGamma[kk])/50.;
    yDefault[kk] = funcBB->Eval(xBetaGamma[kk])/50.;

    // Added by Ben
    Double_t widthFactor = 0.020;
    Double_t smoothProton   = 0.5*(TMath::Erf((funcCorrProton->GetXmax()-xBetaGamma[kk])*AliPID::ParticleMass(AliPID::kProton)/widthFactor) + 1);
    Double_t smoothKaon     = 0.5*(TMath::Erf((funcCorrKaon->GetXmax()-xBetaGamma[kk])*AliPID::ParticleMass(AliPID::kKaon)/widthFactor) + 1);
    Double_t smoothPion     = 0.5*(TMath::Erf((funcCorrPion->GetXmax()-xBetaGamma[kk])*AliPID::ParticleMass(AliPID::kPion)/widthFactor) + 1);
    Double_t smoothElectron = 0.5*(TMath::Erf((funcCorrElectron->GetXmax()-xBetaGamma[kk])*AliPID::ParticleMass(AliPID::kElectron)/widthFactor) + 1);

    if (xBetaGamma[kk] > funcCorrProton->GetXmax())
      yProton[kk] *= (1 + smoothProton*funcCorrProton->Eval(funcCorrProton->GetXmax()));
    // Correction is so large that one runs into trouble at low bg for Protons.
    // The deviation is smaller if one takes the lower bound of the correction function
    else if (xBetaGamma[kk] < funcCorrProton->GetXmin())
      yProton[kk] *= (1 + smoothProton*funcCorrProton->Eval(funcCorrProton->GetXmin()));
    else
      yProton[kk] *= (1 + smoothProton*funcCorrProton->Eval(xBetaGamma[kk]));
    
    if (xBetaGamma[kk] > funcCorrKaon->GetXmax())
      yKaon[kk] *= (1 + smoothKaon*funcCorrKaon->Eval(funcCorrKaon->GetXmax()));
    // Correction is so large that one runs into trouble at low bg for Kaons.
    // The deviation is smaller if one takes the lower bound of the correction function
    else if (xBetaGamma[kk] < funcCorrKaon->GetXmin())
      yKaon[kk] *= (1 + smoothKaon*funcCorrKaon->Eval(funcCorrKaon->GetXmin()));
    else
      yKaon[kk] *= (1 + smoothKaon*funcCorrKaon->Eval(xBetaGamma[kk]));

    if (xBetaGamma[kk] > funcCorrElectron->GetXmax())
      yElectron[kk] *= (1 + smoothElectron*funcCorrElectron->Eval(funcCorrElectron->GetXmax()));
    else if (xBetaGamma[kk] < funcCorrElectron->GetXmin())
      yElectron[kk] *= (1 + smoothElectron*funcCorrElectron->Eval(funcCorrElectron->GetXmin()));
    else
      yElectron[kk] *= (1 + smoothElectron*funcCorrElectron->Eval(xBetaGamma[kk]));
    
    // Only true for LHC10d.pass?: Seems not to be needed because any (very small) deviations are most likely due to electron contamination(BEN)
    if (xBetaGamma[kk] > funcCorrPion->GetXmax())
      yPion[kk] *= (1 + smoothPion*funcCorrPion->Eval(funcCorrPion->GetXmax()));
    else if (xBetaGamma[kk] < funcCorrPion->GetXmin())
      yPion[kk] *= (1 + smoothPion*funcCorrPion->Eval(funcCorrPion->GetXmin()));
    else
      yPion[kk] *= (1 + smoothPion*funcCorrPion->Eval(xBetaGamma[kk]));

    
    /* Removed by Ben
    Double_t smoothProton = 0.5*(TMath::Erf((funcCorrProton->GetXmax()-xBetaGamma[kk])/0.002) + 1);
    Double_t smoothKaon   = 0.5*(TMath::Erf((funcCorrKaon->GetXmax()-xBetaGamma[kk])/0.002) + 1);
    Double_t smoothPion   = 0.5*(TMath::Erf((funcCorrPion->GetXmax()-xBetaGamma[kk])/0.002) + 1);

    if (xBetaGamma[kk] < funcCorrProton->GetXmax() && xBetaGamma[kk] > funcCorrProton->GetXmin()) yProton[kk] *= (1 + smoothProton*funcCorrProton->Eval(xBetaGamma[kk])); 
    if (xBetaGamma[kk] < funcCorrKaon->GetXmax() && xBetaGamma[kk] > funcCorrKaon->GetXmin()) yKaon[kk] *= (1 + smoothKaon*funcCorrKaon->Eval(xBetaGamma[kk])); 
    if (xBetaGamma[kk] < funcCorrPion->GetXmax() && xBetaGamma[kk] > funcCorrPion->GetXmin()) yPion[kk] *= (1 + smoothPion*funcCorrPion->Eval(xBetaGamma[kk])); 
    //if (xBetaGamma[kk] < funcCorrElectron->GetXmax()) yElectron[kk] *= (1 + funcCorrElectron->Eval(xBetaGamma[kk])); 
    //
    if (xBetaGamma[kk] < funcCorrProton->GetXmin()) yProton[kk] *= (1 + funcCorrProton->Eval(funcCorrProton->GetXmin())); 
    if (xBetaGamma[kk] < funcCorrKaon->GetXmin()) yKaon[kk] *= (1 + funcCorrKaon->Eval(funcCorrKaon->GetXmin())); 
    if (xBetaGamma[kk] < funcCorrPion->GetXmin()) yPion[kk] *= (1 + funcCorrPion->Eval(funcCorrPion->GetXmin())); 
    */
  }
  //
  TGraph * graphProton = new TGraph(nBins, xBetaGamma, yProton);
  TGraph * graphElectron = new TGraph(nBins, xBetaGamma, yElectron);
  TGraph * graphKaon = new TGraph(nBins, xBetaGamma, yKaon);
  TGraph * graphPion = new TGraph(nBins, xBetaGamma, yPion);
  TGraph * graphDefault = new TGraph(nBins, xBetaGamma, yDefault);
  //
  //
  TSpline3 * splineProton = new TSpline3("splineProton", graphProton);
  TSpline3 * splineElectron = new TSpline3("splineElectron", graphElectron);
  TSpline3 * splineKaon = new TSpline3("splineKaon", graphKaon);
  TSpline3 * splinePion = new TSpline3("splinePion", graphPion);
  TSpline3 * splineDefault = new TSpline3("splineDefault", graphDefault);
  //
  //
  splineProton->SetNameTitle(Form("TSPLINE3_%s_PROTON_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype),
                             Form("TSPLINE3_%s_PROTON_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype));
  splineElectron->SetNameTitle(Form("TSPLINE3_%s_ELECTRON_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype),
                               Form("TSPLINE3_%s_ELECTRON_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype));
  splineKaon->SetNameTitle(Form("TSPLINE3_%s_KAON_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype),
                           Form("TSPLINE3_%s_KAON_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype));
  splinePion->SetNameTitle(Form("TSPLINE3_%s_PION_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype),
                           Form("TSPLINE3_%s_PION_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype));
  splineDefault->SetNameTitle(Form("TSPLINE3_%s_ALL_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype),
                              Form("TSPLINE3_%s_ALL_%s_%s_%s_%sMEAN",type,period,pass,system,dedxtype));
  //
  TObjArray * arrResponse = new TObjArray();
  arrResponse->SetName("TPCpidResponseFunctions");
  arrResponse->AddLast(splineProton);
  arrResponse->AddLast(splineElectron);
  arrResponse->AddLast(splineKaon);
  arrResponse->AddLast(splinePion);
  arrResponse->AddLast(splineDefault);
  //
  
  // Draw deviation from final results
  for(Int_t ip = 0; ip < graphProtonTPCfinal->GetN(); ip ++) {
    graphProtonTPCfinal->GetY()[ip] -= 50. * splineProton->Eval(graphProtonTPCfinal->GetX()[ip]);
    graphProtonTPCfinal->GetY()[ip] /= 50. * splineProton->Eval(graphProtonTPCfinal->GetX()[ip]);
    graphProtonTPCfinal->GetEY()[ip] /= 50. * splineProton->Eval(graphProtonTPCfinal->GetX()[ip]);;
  }
  canvasQA[0]->cd();
  //canvasQA->cd(1);
  graphProtonTPCfinal->SetMarkerStyle(26);
  graphProtonTPCfinal->Draw("psame");
  
  for(Int_t ip = 0; ip < graphKaonTPCfinal->GetN(); ip ++) {
    graphKaonTPCfinal->GetY()[ip] -= 50. * splineKaon->Eval(graphKaonTPCfinal->GetX()[ip]);
    graphKaonTPCfinal->GetY()[ip] /= 50. * splineKaon->Eval(graphKaonTPCfinal->GetX()[ip]);
    graphKaonTPCfinal->GetEY()[ip] /= 50. * splineKaon->Eval(graphKaonTPCfinal->GetX()[ip]);;
  }
  canvasQA[1]->cd();
  //canvasQA->cd(2);
  graphKaonTPCfinal->SetMarkerStyle(26);
  graphKaonTPCfinal->Draw("psame");
  
  for(Int_t ip = 0; ip < graphPionTPCfinal->GetN(); ip ++) {
    graphPionTPCfinal->GetY()[ip] -= 50. * splinePion->Eval(graphPionTPCfinal->GetX()[ip]);
    graphPionTPCfinal->GetY()[ip] /= 50. * splinePion->Eval(graphPionTPCfinal->GetX()[ip]);
    graphPionTPCfinal->GetEY()[ip] /= 50. * splinePion->Eval(graphPionTPCfinal->GetX()[ip]);;
  }
  canvasQA[2]->cd();
  //canvasQA->cd(3);
  graphPionTPCfinal->SetMarkerStyle(26);
  graphPionTPCfinal->Draw("psame");
  
  for(Int_t ip = 0; ip < graphElectronTPCfinal->GetN(); ip ++) {
    graphElectronTPCfinal->GetY()[ip] -= 50. * splineElectron->Eval(graphElectronTPCfinal->GetX()[ip]);
    graphElectronTPCfinal->GetY()[ip] /= 50. * splineElectron->Eval(graphElectronTPCfinal->GetX()[ip]);
    graphElectronTPCfinal->GetEY()[ip] /= 50. * splineElectron->Eval(graphElectronTPCfinal->GetX()[ip]);;
  }
  canvasQA[3]->cd();
  //canvasQA->cd(4);
  graphElectronTPCfinal->SetMarkerStyle(26);
  graphElectronTPCfinal->Draw("psame");
  
  TFile* fSave = TFile::Open("splines_QA_ResidualPolynomials.root", "RECREATE");
  fSave->cd();
  for (Int_t i = 0; i < 4; i++)
    canvasQA[i]->Write();  
  
  fSave->Close();
  //canvasQA->SaveAs("splines_QA_ResidualPolynomials.root");
  
  
  delete funcBB;
  
  return arrResponse;
}


//________________________________________________________________________
TF1* AliTPCcalibResidualPID::FitBB(TObjArray* inputGraphs, Bool_t isMC, Bool_t isPPb, const Bool_t useV0s, 
                                   const Double_t * initialParameters, AliTPCcalibResidualPID::FitType fitType) {
  //
  // Fit Bethe-Bloch parametrisation to data points (inputGraphs)
  //
  const Int_t nPar = 6;
  TGraphErrors * graphAll = (TGraphErrors *) inputGraphs->FindObject("beamDataPoints");
  //
  Float_t from = 0.9; //TODO ADJUST -> Very important
  Float_t to = graphAll->GetXaxis()->GetXmax() * 2;
  
  
  
  TF1* funcBB = 0x0;
  
  Double_t parametersBBForward[nPar] = { 0, };
  
  TVirtualFitter::SetMaxIterations(5e6);
  
  if (fitType == AliTPCcalibResidualPID::kSaturatedLund) {
    printf("Fit function: Saturated Lund\n");
    
    funcBB = new TF1("SaturatedLund", SaturatedLund, from, to, nPar);
    //Double_t parametersBB[nPar] = {34.0446, 8.42221, 4.16724, 1.29473, 80.6663, 0}; //Xianguos values
    //Double_t parametersBB[nPar] = {35.5, 8.7, 2.0, 1.09, 75.6, 0}; // No saturation
    Double_t parametersBB[nPar] = {61.0, 8.7, 1.86, 0.85, 113.4, -38}; // Yields reasonable results for data and MC ~ all periods
    
    if (isPPb && !isMC) {
      parametersBB[0] = 51.6;
      parametersBB[1] = 9.7;
      parametersBB[2] = 1.62;
      parametersBB[3] = 0.99;
      parametersBB[4] = 104.4;
      parametersBB[5] = -27.0;
    }
    if (isMC) {
      parametersBB[0] = 41.4;
      parametersBB[1] = 8.6;
      parametersBB[2] = 2.2;
      parametersBB[3] = 0.92;
      parametersBB[4] = 90.4;
      parametersBB[5] = -20.0;
    }
    funcBB->SetParameters(parametersBB);
    
    Double_t parameterErrorsBB[nPar] = {5., 0.5, 0.2, 0.05, 10, 10};
    funcBB->SetParErrors(parameterErrorsBB);
    
    for (Int_t i = 0; i < nPar; i++)
      parametersBBForward[i] = parametersBB[i];
  }
  else if (fitType == AliTPCcalibResidualPID::kLund) {
    printf("Fit function: Lund\n");
    printf("****WARNING: Fit settings not tuned for this fit function, only for saturated Lund!\n");

    funcBB = new TF1("SaturatedLund", SaturatedLund, from, to, nPar);
    //Double_t parametersBB[nPar] = {34.0446, 8.42221, 4.16724, 1.29473, 80.6663, 0}; //Xianguos values
    //Double_t parametersBB[nPar] = {35.5, 8.7, 2.0, 1.09, 75.6, 0}; // No saturation
    Double_t parametersBB[nPar] = {35.0, 7., 1.86, 1., 75., 0}; // Yields reasonable results for data and MC ~ all periods
    
    funcBB->SetParameters(parametersBB);
    
    Double_t parameterErrorsBB[nPar] = {5., 0.5, 0.2, 0.05, 10, 10};
    funcBB->SetParErrors(parameterErrorsBB);
    
    funcBB->FixParameter(5, 0.0); // No saturation
    
    for (Int_t i = 0; i < nPar; i++)
      parametersBBForward[i] = parametersBB[i];
  }
  else if (fitType == kAlephWithAdditionalParam) {
    printf("Fit function: Aleph with additional parameter\n");
    printf("****WARNING: Fit settings not tuned for this fit function, only for saturated Lund!\n");
    
    // NOTE: This form is equivalent to the original form, but with parameter [2] redefined for better numerical stability.
    // The additional parameter [5] has been introduced later and is unity originally. It seems not to be needed and is, thus,
    // fixed to unity
    funcBB = new TF1("funcAleph",
                     "[0]/TMath::Power(TMath::Sqrt(1. + x*x)/x , [3])*([1]-[2]-[5]*TMath::Power(TMath::Sqrt(1. + x*x)/x , [3])-TMath::Log(1. + TMath::Power(x, -[4])*TMath::Exp(-[2])))", from, to);
                     //OLD"[0]*([1]*TMath::Power(TMath::Sqrt(1 + x*x)/x , [3]) - [5] - TMath::Power(TMath::Sqrt(1 + x*x)/x , [3])*TMath::Log(TMath::Exp([2]) + 1/TMath::Power(x, [4])))", from, to); 
    
    Double_t parametersBB[nPar] = {2.6,14.3,-15,2.2,2.7, 0.06};
    //OLD with different sign for [3]: Double_t parametersBB[nPar] = {0.0762*50.3,10.632,TMath::Log(1.34e-05),1.863,1.948, 1};
    funcBB->SetParameters(parametersBB);
    
    for (Int_t i = 0; i < nPar; i++)
      parametersBBForward[i] = parametersBB[i];
  }
  else if (fitType == AliTPCcalibResidualPID::kAleph) {
    printf("Fit function: Aleph\n");
    printf("****WARNING: Fit settings not tuned for this fit function, only for saturated Lund!\n");
    
    // NOTE: This form is equivalent to the original form, but with parameter [2] redefined for better numerical stability.
    // The additional parameter [5] has been introduced later and is unity originally. It seems not to be needed and is, thus,
    // fixed to unity
    funcBB = new TF1("funcAleph",
                     "[0]/TMath::Power(x/TMath::Sqrt(1. + x*x) , [3])*([1]-[2]-[5]*TMath::Power(x/TMath::Sqrt(1. + x*x) , [3])-TMath::Log(1. + TMath::Power(x, -[4])*TMath::Exp(-[2])))", from, to);
                     //OLD"[0]*([1]*TMath::Power(TMath::Sqrt(1 + x*x)/x , [3]) - [5] - TMath::Power(TMath::Sqrt(1 + x*x)/x , [3])*TMath::Log(TMath::Exp([2]) + 1/TMath::Power(x, [4])))", from, to); 
    //TEST Double_t parametersBB[nPar] = {1.2, 26.0, -30.0, -2.15, 5.6, 1};
    Double_t parametersBB[nPar] = {1.25, 27.5, -29.0, 2.2, 5.2, 1};
    
    // For [5] floating: Double_t parametersBB[nPar] = {2.42,15.2,-16,-2.24,2.8, 0.057};
    //OLD with different sign for [3] and [5] not fix: Double_t parametersBB[nPar] = {2.6,14.3,-15,2.2,2.7, 0.06};
    //OLD with different sign for [3]: Double_t parametersBB[nPar] = {0.0762*50.3,10.632,TMath::Log(1.34e-05),1.863,1.948, 1};
    funcBB->SetParameters(parametersBB);
    
    // Fix parameter 5 to original value of unity
    funcBB->FixParameter(5, 1); 
    
    for (Int_t i = 0; i < nPar; i++)
      parametersBBForward[i] = parametersBB[i];
  }
  else {
    printf("Error: fitType not supported!\n");
    return 0x0;
  }
  
  funcBB->SetLineColor(2);
  funcBB->SetLineWidth(1);
  
  // Override initial parameters, if user provides some
  if (initialParameters) {
    printf("Setting user initial parameters!\n");
    funcBB->SetParameters(initialParameters);
  }
  
  //
  //
  //
  TGraphErrors * graphDelta = new TGraphErrors(*graphAll);
  graphDelta->SetName("graphDelta");
  
  // In MC case: Remove errors from fit -> Some data points with extremely small errors otherwise completely dominate the fit,
  // but these points could still be wrong due to systematics (low p effects, e.g.)
  if (isMC) {
    for(Int_t ip = 0; ip < graphAll->GetN(); ip++) {
      graphAll->SetPointError(ip, 0, 0);
    }
  }
  else if (useV0s) {
    // Increase weight in plateau by reducing errors. Neccessary because errors are large there compared to other data points
    for(Int_t ip = 0; ip < graphAll->GetN(); ip++) {
      if (graphAll->GetX()[ip] >= 2500) { 
        graphAll->SetPointError(ip, 0, graphAll->GetEY()[ip] / 6.0); 
      }
      // Same for pions in the very rel. rise
      if (graphAll->GetX()[ip] >= 25 && graphAll->GetX()[ip] < 1000) {
        graphAll->SetPointError(ip, 0, graphAll->GetEY()[ip] / 6.0); 
      }
      // Same for protons in the MIP region
      if (graphAll->GetX()[ip] >= 2 && graphAll->GetX()[ip] < 4) {
        graphAll->SetPointError(ip, 0, graphAll->GetEY()[ip] / 6.0); 
      }
    }
  }
  graphAll->Fit(funcBB, "REX0M");  
  funcBB->SetRange(from, to);
  funcBB->GetParameters(parametersBBForward);
  //
  //
  //
  for(Int_t ip = 0; ip < graphDelta->GetN(); ip++) {
    graphDelta->GetY()[ip] -= funcBB->Eval(graphDelta->GetX()[ip]);
    graphDelta->GetY()[ip] /= funcBB->Eval(graphDelta->GetX()[ip]);
    graphDelta->GetEY()[ip] /= funcBB->Eval(graphDelta->GetX()[ip]);
  }
  TCanvas * canvDelta_1 = new TCanvas("canvDelta_1","control histogram for Bethe-Bloch fit 1",100,10,1380,800);
  TCanvas * canvDelta_2 = new TCanvas("canvDelta_2","control histogram for Bethe-Bloch fit 2",100,10,1380,800);
  canvDelta_1->SetGrid(1, 1);
  canvDelta_1->SetLogx();
  canvDelta_2->SetGrid(1, 1);
  canvDelta_2->SetLogx();
  /*
  canvDelta->Divide(2, 1);
  canvDelta->GetPad(1)->SetGrid(1, 1);
  canvDelta->GetPad(1)->SetLogx();
  canvDelta->GetPad(2)->SetGrid(1, 1);
  canvDelta->GetPad(2)->SetLogx();
  */

  canvDelta_1->cd();
  //canvDelta->cd(1);
  TH1F *hBBdummy=new TH1F("hBBdummy","BB fit;#beta#gamma;#LTdE/dx#GT (arb. unit)",100,.8,1e4);
  hBBdummy->SetMinimum(45);
  hBBdummy->SetMaximum(120);
  hBBdummy->GetXaxis()->SetTitleOffset(1.1);
  hBBdummy->SetStats(kFALSE);
  hBBdummy->Draw();

  graphAll->SetTitle("BB multi-graph fit");
  graphAll->SetMarkerStyle(22);
  graphAll->SetMarkerColor(kMagenta);
  graphAll->Draw("p");

  TLegend *leg=new TLegend(.7,.12,.89,isMC?.4:.6);
  leg->SetFillColor(10);
  leg->SetBorderSize(1);

  //overlay individual graphs
  TGraph *gr=0x0;
  if (isMC) {
    gr=(TGraph*)inputGraphs->FindObject("Protons_MC_all");
    gr->SetMarkerColor(kRed);
    gr->SetMarkerStyle(24);
    gr->Draw("p");
    leg->AddEntry(gr,"p (MC)","p");
    gr=(TGraph*)inputGraphs->FindObject("Pions_MC_all");
    gr->SetMarkerColor(kBlue);
    gr->SetMarkerStyle(24);
    gr->Draw("p");
    leg->AddEntry(gr,"#pi (MC)","p");
    gr=(TGraph*)inputGraphs->FindObject("Kaons_MC_all");
    gr->SetMarkerColor(kGreen);
    gr->SetMarkerStyle(24);
    gr->Draw("p");
    leg->AddEntry(gr,"K (MC)","p");
    gr=(TGraph*)inputGraphs->FindObject("Electrons_MC_all");
    gr->SetMarkerColor(kBlack);
    gr->SetMarkerStyle(24);
    gr->Draw("p");
    leg->AddEntry(gr,"e (MC)","p");
  }
  else {
    gr=(TGraph*)inputGraphs->FindObject("protonTpcGraph");
    gr->SetMarkerColor(kRed);
    gr->SetMarkerStyle(26);
    gr->Draw("p");
    leg->AddEntry(gr,"p (TPC)","p");
    gr=(TGraph*)inputGraphs->FindObject("protonTofGraph");
    gr->SetMarkerColor(kRed);
    gr->SetMarkerStyle(25);
    gr->Draw("p");
    leg->AddEntry(gr,"p (TOF)","p");
    gr=(TGraph*)inputGraphs->FindObject("protonV0Graph");//ForBBfit");
    gr->SetMarkerColor(kRed);
    gr->SetMarkerStyle(24);
    gr->Draw("p");
    leg->AddEntry(gr,"p (V0)","p");
    gr=(TGraph*)inputGraphs->FindObject("protonV0plusTOFGraph");//ForBBfit");
    gr->SetMarkerColor(kRed);
    gr->SetMarkerStyle(30);
    gr->Draw("p");
    leg->AddEntry(gr,"p (V0+TOF)","p");
    gr=(TGraph*)inputGraphs->FindObject("pionTpcGraph");
    gr->SetMarkerColor(kBlue);
    gr->SetMarkerStyle(26);
    gr->Draw("p");
    leg->AddEntry(gr,"#pi (TPC)","p");
    gr=(TGraph*)inputGraphs->FindObject("pionTofGraph");
    gr->SetMarkerColor(kBlue);
    gr->SetMarkerStyle(25);
    gr->Draw("p");
    leg->AddEntry(gr,"#pi (TOF)","p");
    gr=(TGraph*)inputGraphs->FindObject("pionV0Graph");//ForBBfit");
    gr->SetMarkerColor(kBlue);
    gr->SetMarkerStyle(24);
    gr->Draw("p");
    leg->AddEntry(gr,"#pi (V0)","p");
    gr=(TGraph*)inputGraphs->FindObject("pionV0plusTOFGraph");//ForBBfit");
    gr->SetMarkerColor(kBlue);
    gr->SetMarkerStyle(30);
    gr->Draw("p");
    leg->AddEntry(gr,"#pi (V0+TOF)","p");
    gr=(TGraph*)inputGraphs->FindObject("kaonTpcGraph");
    gr->SetMarkerColor(kGreen);
    gr->SetMarkerStyle(26);
    gr->Draw("p");
    leg->AddEntry(gr,"K (TPC)","p");
    gr=(TGraph*)inputGraphs->FindObject("kaonTofGraph");
    gr->SetMarkerColor(kGreen);
    gr->SetMarkerStyle(25);
    gr->Draw("p");
    leg->AddEntry(gr,"K (TOF)","p");
    gr=(TGraph*)inputGraphs->FindObject("electronGraph");
    gr->SetMarkerColor(kBlack);
    gr->SetMarkerStyle(25);
    gr->Draw("p");
    leg->AddEntry(gr,"e","p");
    gr=(TGraph*)inputGraphs->FindObject("electronV0Graph");//ForBBfit");
    gr->SetMarkerColor(kBlack);
    gr->SetMarkerStyle(24);
    gr->Draw("p");
    leg->AddEntry(gr,"e (V0)","p");
    gr=(TGraph*)inputGraphs->FindObject("electronV0plusTOFGraph");//ForBBfit");
    gr->SetMarkerColor(kBlack);
    gr->SetMarkerStyle(30);
    gr->Draw("p");
    leg->AddEntry(gr,"e (V0+TOF)","p");
  }
  
  graphAll->GetXaxis()->SetTitle("#beta#gamma");
  graphAll->GetYaxis()->SetTitle("<dE/dx> (arb. unit)");
  graphAll->Draw("p");
  funcBB->GetHistogram()->DrawClone("csame");
 
  leg->AddEntry(graphAll,"used","p");
  leg->AddEntry(funcBB,"fit","l");
  leg->Draw("same");

  canvDelta_2->cd();
  //canvDelta->cd(2);
  TH1F *hBBresdummy=new TH1F("hBBresdummy","residuals of BB fit;#beta#gamma;(data-fit)/fit",100,.8,1e4);
  hBBresdummy->SetMinimum(-0.04);
  hBBresdummy->SetMaximum(0.04);
  hBBresdummy->GetXaxis()->SetTitleOffset(1.1);
  hBBresdummy->GetYaxis()->SetTitleOffset(0.8);
  hBBresdummy->SetStats(kFALSE);
  hBBresdummy->Draw();

  graphDelta->SetTitle("residuals of BB fit to multi-graph");
  graphDelta->GetXaxis()->SetTitle("#beta#gamma");
  graphDelta->GetYaxis()->SetTitle("(data - fit) / fit");
  graphDelta->SetMarkerStyle(22);
  graphDelta->SetMarkerColor(4);
  graphDelta->Draw("p");
  
  TFile* fSave = TFile::Open("splines_QA_BetheBlochFit.root", "RECREATE");
  fSave->cd();
  canvDelta_1->Write();
  canvDelta_2->Write();
  
  TString fitResults = "Fit results:\n";
  for (Int_t i = 0; i < nPar; i++) {
    fitResults.Append(Form("par%d:\t%f +- %f\n", i, funcBB->GetParameters()[i], funcBB->GetParErrors()[i]));
  }
  
  TNamed* settings = new TNamed(fitResults.Data(), fitResults.Data());
  settings->Write();
  fSave->Close();
  
  
  printf("\n\n%s", fitResults.Data());
  
  return funcBB;
}


//________________________________________________________________________
Double_t AliTPCcalibResidualPID::Lund(Double_t* xx, Double_t* par)
{
  // bg is beta*gamma
  const Double_t bg = xx[0];

  const Double_t beta2 = bg*bg / (1.0 + bg*bg);
  
  const Double_t a = par[0];
  const Double_t b = par[1];
  const Double_t c = par[2];
  const Double_t e = par[3];
  const Double_t f = par[4];
  
  const Double_t d = TMath::Exp(c*(a - f) / b);
 
  const Double_t powbg = TMath::Power(1.0 + bg, c);
 
  const Double_t value = a / TMath::Power(beta2,e) +
    b/c * TMath::Log(powbg / (1.0 + d*powbg));
    
  return value;
}


//________________________________________________________________________
Double_t AliTPCcalibResidualPID::SaturatedLund(Double_t* xx, Double_t* par)
{
  const Double_t qq = Lund(xx, par);
  return qq * TMath::Exp(par[5] / qq);
}


//________________________________________________________________________
void AliTPCcalibResidualPID::FitSlicesY(TH2 *hist, Double_t heightFractionForRange, Int_t cutThreshold, TString fitOption, TObjArray *arr)
{
  //heightPercentageForRange
  // custom slices fit
  //

  if (!hist) return;
  if (!arr) return;

  // If old style is to be used
  /*
  hist->FitSlicesY(0, 0, -1, cutThreshold, fitOption.Data(), &arr);
  return;
  */
  
  
  arr->Clear();
  arr->SetOwner();
  arr->Expand(4);
  
  TAxis *axis=hist->GetXaxis();
  const TArrayD *bins = axis->GetXbins();
  TH1D** hList = new TH1D*[4];
  
  for (Int_t i = 0; i < 4; i++) {
    delete gDirectory->FindObject(Form("%s_%d", hist->GetName(), i));
    
    if (bins->fN == 0) {
      hList[i] = new TH1D(Form("%s_%d", hist->GetName(), i), i < 3 ? Form("Fitted value of par[%d]", i) : "Chi2/NDF",
                          hist->GetNbinsX(), axis->GetXmin(), axis->GetXmax());
    } else {
      hList[i] = new TH1D(Form("%s_%d", hist->GetName(), i), i < 3 ? Form("Fitted value of par[%d]", i) : "Chi2/NDF", hist->GetNbinsX(), bins->fArray);
    }
    
    (*arr)[i] = hList[i];
  }
  
  for (Int_t ibin=axis->GetFirst(); ibin<=axis->GetLast(); ++ibin){
    TH1 *h=hist->ProjectionY("_temp",ibin,ibin);
    if (!h)
      continue;
    
    if (h->GetEntries() < cutThreshold) {
      delete h;
      continue;
    }
    
    // Average around maximum bin -> Might catch some outliers
    Int_t maxBin = h->GetMaximumBin();
    Double_t maxVal = h->GetBinContent(maxBin);
    
    if (maxVal < 2) { // It could happen that all entries are in overflow/underflow; don't fit in this case
      delete h;
      continue;
    }
    
    UChar_t usedBins = 1;
    if (maxBin > 1) {
      maxVal += h->GetBinContent(maxBin - 1);
      usedBins++;
    }
    if (maxBin < h->GetNbinsX()) {
      maxVal += h->GetBinContent(maxBin + 1);
      usedBins++;
    }
    maxVal /= usedBins;
    
    Double_t thresholdFraction = heightFractionForRange * maxVal; 
    Int_t lowThrBin = TMath::Max(1, h->FindFirstBinAbove(thresholdFraction));
    Int_t highThrBin = TMath::Min(h->GetNbinsX(), h->FindLastBinAbove(thresholdFraction));
    
    Double_t lowThreshold = h->GetBinCenter(lowThrBin);
    Double_t highThreshold = h->GetBinCenter(highThrBin);

    TFitResultPtr res = h->Fit("gaus", Form("%sS", fitOption.Data()), "", lowThreshold, highThreshold);
    
    if ((Int_t)res == 0) {
      Int_t resBin = ibin;
      hList[0]->SetBinContent(resBin,res->GetParams()[0]);
      hList[0]->SetBinError(resBin,res->GetErrors()[0]);
      hList[1]->SetBinContent(resBin,res->GetParams()[1]);
      hList[1]->SetBinError(resBin,res->GetErrors()[1]);
      hList[2]->SetBinContent(resBin,res->GetParams()[2]);
      hList[2]->SetBinError(resBin,res->GetErrors()[2]);
      hList[3]->SetBinContent(resBin,res->Ndf()>0?res->Chi2()/res->Ndf():0);
    }
    
    delete h;
  }
}


//______________________________________________________________________________
Bool_t AliTPCcalibResidualPID::GetVertexIsOk(AliVEvent* event) const
{
  AliAODEvent* aod = 0x0;
  AliESDEvent* esd = 0x0;
  
  aod = dynamic_cast<AliAODEvent*>(event);
  if (!aod) {
    esd = dynamic_cast<AliESDEvent*>(event);
    
    if (!esd) {
      AliError("Event seems to be neither AOD nor ESD!");
      return kFALSE;
    }
  }
    
  if (fIsPbpOrpPb) {
    const AliVVertex* trkVtx = (aod ? dynamic_cast<const AliVVertex*>(aod->GetPrimaryVertex()) :
                                      dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertex()));
      
    if (!trkVtx || trkVtx->GetNContributors() <= 0)
      return kFALSE;
      
    TString vtxTtl = trkVtx->GetTitle();
    if (!vtxTtl.Contains("VertexerTracks"))
      return kFALSE;
      
    Float_t zvtx = trkVtx->GetZ();
    const AliVVertex* spdVtx = (aod ? dynamic_cast<const AliVVertex*>(aod->GetPrimaryVertexSPD()) :
                                      dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertexSPD()));
    if (spdVtx->GetNContributors() <= 0)
      return kFALSE;
      
    TString vtxTyp = spdVtx->GetTitle();
    Double_t cov[6] = {0};
    spdVtx->GetCovarianceMatrix(cov);
    Double_t zRes = TMath::Sqrt(cov[5]);
    if (vtxTyp.Contains("vertexer:Z") && (zRes > 0.25))
      return kFALSE;
      
    if (TMath::Abs(spdVtx->GetZ() - trkVtx->GetZ()) > 0.5)
      return kFALSE;

    if (TMath::Abs(zvtx) > fZvtxCutEvent) //Default: 10 cm
      return kFALSE;
      
    return kTRUE;
  }
    
  
  // pp and PbPb
  const AliVVertex* primaryVertex = (aod ? dynamic_cast<const AliVVertex*>(aod->GetPrimaryVertex()) :
                                           dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertexTracks()));
    
  if (!primaryVertex || primaryVertex->GetNContributors() <= 0)
    return kFALSE;
      
  if (TMath::Abs(primaryVertex->GetZ()) >= fZvtxCutEvent) //Default: 10 cm
    return kFALSE;
  
  return kTRUE;
}


//______________________________________________________________________________
void AliTPCcalibResidualPID::FillV0PIDlist(AliESDEvent* event)
{
  //
  // Fill the PID tag list
  //
  
  // If no event forwarded as parameter (default), cast current input event.
  // Dynamic cast to ESD events (DO NOTHING for AOD events)
  if (!event)
    event = dynamic_cast<AliESDEvent *>(InputEvent());
  
  // If this fails, do nothing
  if (!event)
    return;
  
  if (!fV0KineCuts) {
    AliError("V0KineCuts not available!");
    return;
  }
  
  TString beamType(event->GetBeamType());
  
  if (beamType.CompareTo("Pb-Pb") == 0 || beamType.CompareTo("A-A") == 0) {
    fV0KineCuts->SetMode(AliESDv0KineCuts::kPurity, AliESDv0KineCuts::kPbPb);
  }
  else {
    fV0KineCuts->SetMode(AliESDv0KineCuts::kPurity, AliESDv0KineCuts::kPP); 
  }

  // V0 selection
  // set event
  fV0KineCuts->SetEvent(event);

  const Int_t numTracks = event->GetNumberOfTracks();
  fV0tags = new Char_t[numTracks];
  for (Int_t i = 0; i < numTracks; i++)
    fV0tags[i] = 0;
  
  fV0motherIndex = new Int_t[numTracks];
  for (Int_t i = 0; i < numTracks; i++)
    fV0motherIndex[i] = -1;
  
  fV0motherPDG = new Int_t[numTracks];
  for (Int_t i = 0; i < numTracks; i++)
    fV0motherPDG[i] = 0;
  
  fNumTagsStored = numTracks;
  
  
  
  
  
  // loop over V0 particles
  for (Int_t iv0 = 0; iv0 < event->GetNumberOfV0s(); iv0++) {
    AliESDv0* v0 = (AliESDv0*)event->GetV0(iv0);
 
    if (!v0)
      continue;
    
    // Reject onFly V0's <-> Only take V0's from offline V0 finder
    if (v0->GetOnFlyStatus())
      continue; 
  
    // Get the particle selection 
    Bool_t foundV0 = kFALSE;
    Int_t pdgV0 = 0, pdgP = 0, pdgN = 0;
    
    foundV0 = fV0KineCuts->ProcessV0(v0, pdgV0, pdgP, pdgN);
    if (!foundV0)
      continue;
    
    Int_t iTrackP = v0->GetPindex();  // positive track
    Int_t iTrackN = v0->GetNindex();  // negative track

    /*
    AliESDtrack* trackP = event->GetTrack(iTrackP);
    AliESDtrack* trackN = event->GetTrack(iTrackN);
    
    if (!trackP || !trackN)
      continue;
    
    
    
    Float_t xy = 999, z = 999;
    trackP->GetImpactParameters(xy, z);
    
    Bool_t reject = kFALSE;
    if (TMath::Abs(z) > 1)
      continue;
    
    trackN->GetImpactParameters(xy, z);
    if (TMath::Abs(z) > 1)
      continue;
    */
    
    
    // Fill the Object arrays
    // positive particles
    if (pdgP == -11) {
      fV0tags[iTrackP] = 14;
    }
    else if (pdgP == 211) {
      fV0tags[iTrackP] = 15;
    }
    else if(pdgP == 2212) {
      fV0tags[iTrackP] = 16;
    }
    
    fV0motherIndex[iTrackP] = iv0;
    fV0motherPDG[iTrackP] = pdgV0;

    // negative particles
    if( pdgN == 11){
      fV0tags[iTrackN] = -14;
    }
    else if( pdgN == -211){
      fV0tags[iTrackN] = -15;
    }
    else if( pdgN == -2212){
      fV0tags[iTrackN] = -16;
    }
    
    fV0motherIndex[iTrackN] = iv0;
    fV0motherPDG[iTrackN] = pdgV0;

  }
}


//______________________________________________________________________________
void AliTPCcalibResidualPID::ClearV0PIDlist()
{
  //
  // Clear the PID tag list
  //

  delete fV0tags;
  fV0tags = 0;
  
  delete fV0motherIndex;
  fV0motherIndex = 0;
  
  delete fV0motherPDG;
  fV0motherPDG = 0;
  
  fNumTagsStored = 0;
}


//______________________________________________________________________________
Char_t AliTPCcalibResidualPID::GetV0tag(Int_t trackIndex) const
{
  //
  // Get the tag for the corresponding trackIndex. Returns -99 in case of invalid index/tag list.
  //
  
  if (trackIndex < 0 || trackIndex >= fNumTagsStored || !fV0tags)
    return -99;
  
  return fV0tags[trackIndex];
}


//______________________________________________________________________________
Int_t AliTPCcalibResidualPID::GetV0motherIndex(Int_t trackIndex) const
{
  //
  // Get the index of the V0 mother for the corresponding trackIndex. Returns -99 in case of invalid index/mother index list.
  //
  
  if (trackIndex < 0 || trackIndex >= fNumTagsStored || !fV0motherIndex)
    return -99;
  
  return fV0motherIndex[trackIndex];
}


//______________________________________________________________________________
Int_t AliTPCcalibResidualPID::GetV0motherPDG(Int_t trackIndex) const
{
  //
  // Get the PDG code of the V0 mother for the corresponding trackIndex. Returns 0 in case of invalid index/mother index list.
  //
  
  if (trackIndex < 0 || trackIndex >= fNumTagsStored || !fV0motherPDG)
    return 0;
  
  return fV0motherPDG[trackIndex];
}


//______________________________________________________________________________
Int_t AliTPCcalibResidualPID::MergeGraphErrors(TGraphErrors* mergedGraph, TCollection* li) 
{
  // Adds all graphs with errors from the collection to this graph.
  // Returns the total number of poins in the result or -1 in case of an error.
  
  // TODO "Normal" merge of latest root trunk will also take into account the error bars,
  // so this function can be replaced by the normal root function with the latest root version.
  
  TIter next(li);
  while (TObject* o = next()) {
    TGraph *g = dynamic_cast<TGraph*>(o);
    if (!g) {
      Printf("ERROR: Cannot merge an object which doesn't inherit from TGraph found in the list");
      return -1;
    }
    int n0 = mergedGraph->GetN();
    int n1 = n0+g->GetN();
    mergedGraph->Set(n1);
    Double_t * x = g->GetX();
    Double_t * y = g->GetY();
    Double_t * ex = g->GetEX();
    Double_t * ey = g->GetEY();
    for (Int_t i = 0 ; i < g->GetN(); i++) {
      mergedGraph->SetPoint(n0+i, x[i], y[i]);
      Double_t exPoint = ex ? ex[i] : 0;
      Double_t eyPoint = ey ? ey[i] : 0;
      mergedGraph->SetPointError(n0+i, exPoint, eyPoint);
    }
  }
  return mergedGraph->GetN();
}

//________________________________________________________________________
Bool_t AliTPCcalibResidualPID::TPCCutMIGeo(const AliVTrack* track, const AliVEvent* evt, TTreeStream* streamer)
{
  //
  // TPC Cut MIGeo
  //

  if (!track || !evt)
    return kFALSE;
  
  const Short_t sign = track->Charge();
  Double_t xyz[50];
  Double_t pxpypz[50];
  Double_t cv[100];

  track->GetXYZ(xyz);
  track->GetPxPyPz(pxpypz);

  AliExternalTrackParam* par = new AliExternalTrackParam(xyz, pxpypz, cv, sign);
  const AliESDtrack dummy;

  const Double_t magField = evt->GetMagneticField();
  Double_t varGeom = dummy.GetLengthInActiveZone(par, 3, 236, magField, 0, 0);
  Double_t varNcr  = track->GetTPCClusterInfo(3, 1);
  Double_t varNcls = track->GetTPCsignalN();

  const Double_t varEval = 130. - 5. * TMath::Abs(1. / track->Pt());
  Bool_t cutGeom   = varGeom > fgCutGeo * varEval;
  Bool_t cutNcr    = varNcr  > fgCutNcr * varEval;
  Bool_t cutNcls   = varNcls > fgCutNcl * varEval;

  Bool_t kout = cutGeom && cutNcr && cutNcls;

  if (streamer) {
    Double_t dedx = track->GetTPCsignal();

    (*streamer)<<"tree"<<
      "param.="<< par<<
      "varGeom="<<varGeom<<
      "varNcr="<<varNcr<<
      "varNcls="<<varNcls<<
      
      "cutGeom="<<cutGeom<<
      "cutNcr="<<cutNcr<<
      "cutNcls="<<cutNcls<<
      
      "kout="<<kout<<
      "dedx="<<dedx<<
      
      "\n";
  }
  
  delete par;
  
  return kout;
}
 AliTPCcalibResidualPID.cxx:1
 AliTPCcalibResidualPID.cxx:2
 AliTPCcalibResidualPID.cxx:3
 AliTPCcalibResidualPID.cxx:4
 AliTPCcalibResidualPID.cxx:5
 AliTPCcalibResidualPID.cxx:6
 AliTPCcalibResidualPID.cxx:7
 AliTPCcalibResidualPID.cxx:8
 AliTPCcalibResidualPID.cxx:9
 AliTPCcalibResidualPID.cxx:10
 AliTPCcalibResidualPID.cxx:11
 AliTPCcalibResidualPID.cxx:12
 AliTPCcalibResidualPID.cxx:13
 AliTPCcalibResidualPID.cxx:14
 AliTPCcalibResidualPID.cxx:15
 AliTPCcalibResidualPID.cxx:16
 AliTPCcalibResidualPID.cxx:17
 AliTPCcalibResidualPID.cxx:18
 AliTPCcalibResidualPID.cxx:19
 AliTPCcalibResidualPID.cxx:20
 AliTPCcalibResidualPID.cxx:21
 AliTPCcalibResidualPID.cxx:22
 AliTPCcalibResidualPID.cxx:23
 AliTPCcalibResidualPID.cxx:24
 AliTPCcalibResidualPID.cxx:25
 AliTPCcalibResidualPID.cxx:26
 AliTPCcalibResidualPID.cxx:27
 AliTPCcalibResidualPID.cxx:28
 AliTPCcalibResidualPID.cxx:29
 AliTPCcalibResidualPID.cxx:30
 AliTPCcalibResidualPID.cxx:31
 AliTPCcalibResidualPID.cxx:32
 AliTPCcalibResidualPID.cxx:33
 AliTPCcalibResidualPID.cxx:34
 AliTPCcalibResidualPID.cxx:35
 AliTPCcalibResidualPID.cxx:36
 AliTPCcalibResidualPID.cxx:37
 AliTPCcalibResidualPID.cxx:38
 AliTPCcalibResidualPID.cxx:39
 AliTPCcalibResidualPID.cxx:40
 AliTPCcalibResidualPID.cxx:41
 AliTPCcalibResidualPID.cxx:42
 AliTPCcalibResidualPID.cxx:43
 AliTPCcalibResidualPID.cxx:44
 AliTPCcalibResidualPID.cxx:45
 AliTPCcalibResidualPID.cxx:46
 AliTPCcalibResidualPID.cxx:47
 AliTPCcalibResidualPID.cxx:48
 AliTPCcalibResidualPID.cxx:49
 AliTPCcalibResidualPID.cxx:50
 AliTPCcalibResidualPID.cxx:51
 AliTPCcalibResidualPID.cxx:52
 AliTPCcalibResidualPID.cxx:53
 AliTPCcalibResidualPID.cxx:54
 AliTPCcalibResidualPID.cxx:55
 AliTPCcalibResidualPID.cxx:56
 AliTPCcalibResidualPID.cxx:57
 AliTPCcalibResidualPID.cxx:58
 AliTPCcalibResidualPID.cxx:59
 AliTPCcalibResidualPID.cxx:60
 AliTPCcalibResidualPID.cxx:61
 AliTPCcalibResidualPID.cxx:62
 AliTPCcalibResidualPID.cxx:63
 AliTPCcalibResidualPID.cxx:64
 AliTPCcalibResidualPID.cxx:65
 AliTPCcalibResidualPID.cxx:66
 AliTPCcalibResidualPID.cxx:67
 AliTPCcalibResidualPID.cxx:68
 AliTPCcalibResidualPID.cxx:69
 AliTPCcalibResidualPID.cxx:70
 AliTPCcalibResidualPID.cxx:71
 AliTPCcalibResidualPID.cxx:72
 AliTPCcalibResidualPID.cxx:73
 AliTPCcalibResidualPID.cxx:74
 AliTPCcalibResidualPID.cxx:75
 AliTPCcalibResidualPID.cxx:76
 AliTPCcalibResidualPID.cxx:77
 AliTPCcalibResidualPID.cxx:78
 AliTPCcalibResidualPID.cxx:79
 AliTPCcalibResidualPID.cxx:80
 AliTPCcalibResidualPID.cxx:81
 AliTPCcalibResidualPID.cxx:82
 AliTPCcalibResidualPID.cxx:83
 AliTPCcalibResidualPID.cxx:84
 AliTPCcalibResidualPID.cxx:85
 AliTPCcalibResidualPID.cxx:86
 AliTPCcalibResidualPID.cxx:87
 AliTPCcalibResidualPID.cxx:88
 AliTPCcalibResidualPID.cxx:89
 AliTPCcalibResidualPID.cxx:90
 AliTPCcalibResidualPID.cxx:91
 AliTPCcalibResidualPID.cxx:92
 AliTPCcalibResidualPID.cxx:93
 AliTPCcalibResidualPID.cxx:94
 AliTPCcalibResidualPID.cxx:95
 AliTPCcalibResidualPID.cxx:96
 AliTPCcalibResidualPID.cxx:97
 AliTPCcalibResidualPID.cxx:98
 AliTPCcalibResidualPID.cxx:99
 AliTPCcalibResidualPID.cxx:100
 AliTPCcalibResidualPID.cxx:101
 AliTPCcalibResidualPID.cxx:102
 AliTPCcalibResidualPID.cxx:103
 AliTPCcalibResidualPID.cxx:104
 AliTPCcalibResidualPID.cxx:105
 AliTPCcalibResidualPID.cxx:106
 AliTPCcalibResidualPID.cxx:107
 AliTPCcalibResidualPID.cxx:108
 AliTPCcalibResidualPID.cxx:109
 AliTPCcalibResidualPID.cxx:110
 AliTPCcalibResidualPID.cxx:111
 AliTPCcalibResidualPID.cxx:112
 AliTPCcalibResidualPID.cxx:113
 AliTPCcalibResidualPID.cxx:114
 AliTPCcalibResidualPID.cxx:115
 AliTPCcalibResidualPID.cxx:116
 AliTPCcalibResidualPID.cxx:117
 AliTPCcalibResidualPID.cxx:118
 AliTPCcalibResidualPID.cxx:119
 AliTPCcalibResidualPID.cxx:120
 AliTPCcalibResidualPID.cxx:121
 AliTPCcalibResidualPID.cxx:122
 AliTPCcalibResidualPID.cxx:123
 AliTPCcalibResidualPID.cxx:124
 AliTPCcalibResidualPID.cxx:125
 AliTPCcalibResidualPID.cxx:126
 AliTPCcalibResidualPID.cxx:127
 AliTPCcalibResidualPID.cxx:128
 AliTPCcalibResidualPID.cxx:129
 AliTPCcalibResidualPID.cxx:130
 AliTPCcalibResidualPID.cxx:131
 AliTPCcalibResidualPID.cxx:132
 AliTPCcalibResidualPID.cxx:133
 AliTPCcalibResidualPID.cxx:134
 AliTPCcalibResidualPID.cxx:135
 AliTPCcalibResidualPID.cxx:136
 AliTPCcalibResidualPID.cxx:137
 AliTPCcalibResidualPID.cxx:138
 AliTPCcalibResidualPID.cxx:139
 AliTPCcalibResidualPID.cxx:140
 AliTPCcalibResidualPID.cxx:141
 AliTPCcalibResidualPID.cxx:142
 AliTPCcalibResidualPID.cxx:143
 AliTPCcalibResidualPID.cxx:144
 AliTPCcalibResidualPID.cxx:145
 AliTPCcalibResidualPID.cxx:146
 AliTPCcalibResidualPID.cxx:147
 AliTPCcalibResidualPID.cxx:148
 AliTPCcalibResidualPID.cxx:149
 AliTPCcalibResidualPID.cxx:150
 AliTPCcalibResidualPID.cxx:151
 AliTPCcalibResidualPID.cxx:152
 AliTPCcalibResidualPID.cxx:153
 AliTPCcalibResidualPID.cxx:154
 AliTPCcalibResidualPID.cxx:155
 AliTPCcalibResidualPID.cxx:156
 AliTPCcalibResidualPID.cxx:157
 AliTPCcalibResidualPID.cxx:158
 AliTPCcalibResidualPID.cxx:159
 AliTPCcalibResidualPID.cxx:160
 AliTPCcalibResidualPID.cxx:161
 AliTPCcalibResidualPID.cxx:162
 AliTPCcalibResidualPID.cxx:163
 AliTPCcalibResidualPID.cxx:164
 AliTPCcalibResidualPID.cxx:165
 AliTPCcalibResidualPID.cxx:166
 AliTPCcalibResidualPID.cxx:167
 AliTPCcalibResidualPID.cxx:168
 AliTPCcalibResidualPID.cxx:169
 AliTPCcalibResidualPID.cxx:170
 AliTPCcalibResidualPID.cxx:171
 AliTPCcalibResidualPID.cxx:172
 AliTPCcalibResidualPID.cxx:173
 AliTPCcalibResidualPID.cxx:174
 AliTPCcalibResidualPID.cxx:175
 AliTPCcalibResidualPID.cxx:176
 AliTPCcalibResidualPID.cxx:177
 AliTPCcalibResidualPID.cxx:178
 AliTPCcalibResidualPID.cxx:179
 AliTPCcalibResidualPID.cxx:180
 AliTPCcalibResidualPID.cxx:181
 AliTPCcalibResidualPID.cxx:182
 AliTPCcalibResidualPID.cxx:183
 AliTPCcalibResidualPID.cxx:184
 AliTPCcalibResidualPID.cxx:185
 AliTPCcalibResidualPID.cxx:186
 AliTPCcalibResidualPID.cxx:187
 AliTPCcalibResidualPID.cxx:188
 AliTPCcalibResidualPID.cxx:189
 AliTPCcalibResidualPID.cxx:190
 AliTPCcalibResidualPID.cxx:191
 AliTPCcalibResidualPID.cxx:192
 AliTPCcalibResidualPID.cxx:193
 AliTPCcalibResidualPID.cxx:194
 AliTPCcalibResidualPID.cxx:195
 AliTPCcalibResidualPID.cxx:196
 AliTPCcalibResidualPID.cxx:197
 AliTPCcalibResidualPID.cxx:198
 AliTPCcalibResidualPID.cxx:199
 AliTPCcalibResidualPID.cxx:200
 AliTPCcalibResidualPID.cxx:201
 AliTPCcalibResidualPID.cxx:202
 AliTPCcalibResidualPID.cxx:203
 AliTPCcalibResidualPID.cxx:204
 AliTPCcalibResidualPID.cxx:205
 AliTPCcalibResidualPID.cxx:206
 AliTPCcalibResidualPID.cxx:207
 AliTPCcalibResidualPID.cxx:208
 AliTPCcalibResidualPID.cxx:209
 AliTPCcalibResidualPID.cxx:210
 AliTPCcalibResidualPID.cxx:211
 AliTPCcalibResidualPID.cxx:212
 AliTPCcalibResidualPID.cxx:213
 AliTPCcalibResidualPID.cxx:214
 AliTPCcalibResidualPID.cxx:215
 AliTPCcalibResidualPID.cxx:216
 AliTPCcalibResidualPID.cxx:217
 AliTPCcalibResidualPID.cxx:218
 AliTPCcalibResidualPID.cxx:219
 AliTPCcalibResidualPID.cxx:220
 AliTPCcalibResidualPID.cxx:221
 AliTPCcalibResidualPID.cxx:222
 AliTPCcalibResidualPID.cxx:223
 AliTPCcalibResidualPID.cxx:224
 AliTPCcalibResidualPID.cxx:225
 AliTPCcalibResidualPID.cxx:226
 AliTPCcalibResidualPID.cxx:227
 AliTPCcalibResidualPID.cxx:228
 AliTPCcalibResidualPID.cxx:229
 AliTPCcalibResidualPID.cxx:230
 AliTPCcalibResidualPID.cxx:231
 AliTPCcalibResidualPID.cxx:232
 AliTPCcalibResidualPID.cxx:233
 AliTPCcalibResidualPID.cxx:234
 AliTPCcalibResidualPID.cxx:235
 AliTPCcalibResidualPID.cxx:236
 AliTPCcalibResidualPID.cxx:237
 AliTPCcalibResidualPID.cxx:238
 AliTPCcalibResidualPID.cxx:239
 AliTPCcalibResidualPID.cxx:240
 AliTPCcalibResidualPID.cxx:241
 AliTPCcalibResidualPID.cxx:242
 AliTPCcalibResidualPID.cxx:243
 AliTPCcalibResidualPID.cxx:244
 AliTPCcalibResidualPID.cxx:245
 AliTPCcalibResidualPID.cxx:246
 AliTPCcalibResidualPID.cxx:247
 AliTPCcalibResidualPID.cxx:248
 AliTPCcalibResidualPID.cxx:249
 AliTPCcalibResidualPID.cxx:250
 AliTPCcalibResidualPID.cxx:251
 AliTPCcalibResidualPID.cxx:252
 AliTPCcalibResidualPID.cxx:253
 AliTPCcalibResidualPID.cxx:254
 AliTPCcalibResidualPID.cxx:255
 AliTPCcalibResidualPID.cxx:256
 AliTPCcalibResidualPID.cxx:257
 AliTPCcalibResidualPID.cxx:258
 AliTPCcalibResidualPID.cxx:259
 AliTPCcalibResidualPID.cxx:260
 AliTPCcalibResidualPID.cxx:261
 AliTPCcalibResidualPID.cxx:262
 AliTPCcalibResidualPID.cxx:263
 AliTPCcalibResidualPID.cxx:264
 AliTPCcalibResidualPID.cxx:265
 AliTPCcalibResidualPID.cxx:266
 AliTPCcalibResidualPID.cxx:267
 AliTPCcalibResidualPID.cxx:268
 AliTPCcalibResidualPID.cxx:269
 AliTPCcalibResidualPID.cxx:270
 AliTPCcalibResidualPID.cxx:271
 AliTPCcalibResidualPID.cxx:272
 AliTPCcalibResidualPID.cxx:273
 AliTPCcalibResidualPID.cxx:274
 AliTPCcalibResidualPID.cxx:275
 AliTPCcalibResidualPID.cxx:276
 AliTPCcalibResidualPID.cxx:277
 AliTPCcalibResidualPID.cxx:278
 AliTPCcalibResidualPID.cxx:279
 AliTPCcalibResidualPID.cxx:280
 AliTPCcalibResidualPID.cxx:281
 AliTPCcalibResidualPID.cxx:282
 AliTPCcalibResidualPID.cxx:283
 AliTPCcalibResidualPID.cxx:284
 AliTPCcalibResidualPID.cxx:285
 AliTPCcalibResidualPID.cxx:286
 AliTPCcalibResidualPID.cxx:287
 AliTPCcalibResidualPID.cxx:288
 AliTPCcalibResidualPID.cxx:289
 AliTPCcalibResidualPID.cxx:290
 AliTPCcalibResidualPID.cxx:291
 AliTPCcalibResidualPID.cxx:292
 AliTPCcalibResidualPID.cxx:293
 AliTPCcalibResidualPID.cxx:294
 AliTPCcalibResidualPID.cxx:295
 AliTPCcalibResidualPID.cxx:296
 AliTPCcalibResidualPID.cxx:297
 AliTPCcalibResidualPID.cxx:298
 AliTPCcalibResidualPID.cxx:299
 AliTPCcalibResidualPID.cxx:300
 AliTPCcalibResidualPID.cxx:301
 AliTPCcalibResidualPID.cxx:302
 AliTPCcalibResidualPID.cxx:303
 AliTPCcalibResidualPID.cxx:304
 AliTPCcalibResidualPID.cxx:305
 AliTPCcalibResidualPID.cxx:306
 AliTPCcalibResidualPID.cxx:307
 AliTPCcalibResidualPID.cxx:308
 AliTPCcalibResidualPID.cxx:309
 AliTPCcalibResidualPID.cxx:310
 AliTPCcalibResidualPID.cxx:311
 AliTPCcalibResidualPID.cxx:312
 AliTPCcalibResidualPID.cxx:313
 AliTPCcalibResidualPID.cxx:314
 AliTPCcalibResidualPID.cxx:315
 AliTPCcalibResidualPID.cxx:316
 AliTPCcalibResidualPID.cxx:317
 AliTPCcalibResidualPID.cxx:318
 AliTPCcalibResidualPID.cxx:319
 AliTPCcalibResidualPID.cxx:320
 AliTPCcalibResidualPID.cxx:321
 AliTPCcalibResidualPID.cxx:322
 AliTPCcalibResidualPID.cxx:323
 AliTPCcalibResidualPID.cxx:324
 AliTPCcalibResidualPID.cxx:325
 AliTPCcalibResidualPID.cxx:326
 AliTPCcalibResidualPID.cxx:327
 AliTPCcalibResidualPID.cxx:328
 AliTPCcalibResidualPID.cxx:329
 AliTPCcalibResidualPID.cxx:330
 AliTPCcalibResidualPID.cxx:331
 AliTPCcalibResidualPID.cxx:332
 AliTPCcalibResidualPID.cxx:333
 AliTPCcalibResidualPID.cxx:334
 AliTPCcalibResidualPID.cxx:335
 AliTPCcalibResidualPID.cxx:336
 AliTPCcalibResidualPID.cxx:337
 AliTPCcalibResidualPID.cxx:338
 AliTPCcalibResidualPID.cxx:339
 AliTPCcalibResidualPID.cxx:340
 AliTPCcalibResidualPID.cxx:341
 AliTPCcalibResidualPID.cxx:342
 AliTPCcalibResidualPID.cxx:343
 AliTPCcalibResidualPID.cxx:344
 AliTPCcalibResidualPID.cxx:345
 AliTPCcalibResidualPID.cxx:346
 AliTPCcalibResidualPID.cxx:347
 AliTPCcalibResidualPID.cxx:348
 AliTPCcalibResidualPID.cxx:349
 AliTPCcalibResidualPID.cxx:350
 AliTPCcalibResidualPID.cxx:351
 AliTPCcalibResidualPID.cxx:352
 AliTPCcalibResidualPID.cxx:353
 AliTPCcalibResidualPID.cxx:354
 AliTPCcalibResidualPID.cxx:355
 AliTPCcalibResidualPID.cxx:356
 AliTPCcalibResidualPID.cxx:357
 AliTPCcalibResidualPID.cxx:358
 AliTPCcalibResidualPID.cxx:359
 AliTPCcalibResidualPID.cxx:360
 AliTPCcalibResidualPID.cxx:361
 AliTPCcalibResidualPID.cxx:362
 AliTPCcalibResidualPID.cxx:363
 AliTPCcalibResidualPID.cxx:364
 AliTPCcalibResidualPID.cxx:365
 AliTPCcalibResidualPID.cxx:366
 AliTPCcalibResidualPID.cxx:367
 AliTPCcalibResidualPID.cxx:368
 AliTPCcalibResidualPID.cxx:369
 AliTPCcalibResidualPID.cxx:370
 AliTPCcalibResidualPID.cxx:371
 AliTPCcalibResidualPID.cxx:372
 AliTPCcalibResidualPID.cxx:373
 AliTPCcalibResidualPID.cxx:374
 AliTPCcalibResidualPID.cxx:375
 AliTPCcalibResidualPID.cxx:376
 AliTPCcalibResidualPID.cxx:377
 AliTPCcalibResidualPID.cxx:378
 AliTPCcalibResidualPID.cxx:379
 AliTPCcalibResidualPID.cxx:380
 AliTPCcalibResidualPID.cxx:381
 AliTPCcalibResidualPID.cxx:382
 AliTPCcalibResidualPID.cxx:383
 AliTPCcalibResidualPID.cxx:384
 AliTPCcalibResidualPID.cxx:385
 AliTPCcalibResidualPID.cxx:386
 AliTPCcalibResidualPID.cxx:387
 AliTPCcalibResidualPID.cxx:388
 AliTPCcalibResidualPID.cxx:389
 AliTPCcalibResidualPID.cxx:390
 AliTPCcalibResidualPID.cxx:391
 AliTPCcalibResidualPID.cxx:392
 AliTPCcalibResidualPID.cxx:393
 AliTPCcalibResidualPID.cxx:394
 AliTPCcalibResidualPID.cxx:395
 AliTPCcalibResidualPID.cxx:396
 AliTPCcalibResidualPID.cxx:397
 AliTPCcalibResidualPID.cxx:398
 AliTPCcalibResidualPID.cxx:399
 AliTPCcalibResidualPID.cxx:400
 AliTPCcalibResidualPID.cxx:401
 AliTPCcalibResidualPID.cxx:402
 AliTPCcalibResidualPID.cxx:403
 AliTPCcalibResidualPID.cxx:404
 AliTPCcalibResidualPID.cxx:405
 AliTPCcalibResidualPID.cxx:406
 AliTPCcalibResidualPID.cxx:407
 AliTPCcalibResidualPID.cxx:408
 AliTPCcalibResidualPID.cxx:409
 AliTPCcalibResidualPID.cxx:410
 AliTPCcalibResidualPID.cxx:411
 AliTPCcalibResidualPID.cxx:412
 AliTPCcalibResidualPID.cxx:413
 AliTPCcalibResidualPID.cxx:414
 AliTPCcalibResidualPID.cxx:415
 AliTPCcalibResidualPID.cxx:416
 AliTPCcalibResidualPID.cxx:417
 AliTPCcalibResidualPID.cxx:418
 AliTPCcalibResidualPID.cxx:419
 AliTPCcalibResidualPID.cxx:420
 AliTPCcalibResidualPID.cxx:421
 AliTPCcalibResidualPID.cxx:422
 AliTPCcalibResidualPID.cxx:423
 AliTPCcalibResidualPID.cxx:424
 AliTPCcalibResidualPID.cxx:425
 AliTPCcalibResidualPID.cxx:426
 AliTPCcalibResidualPID.cxx:427
 AliTPCcalibResidualPID.cxx:428
 AliTPCcalibResidualPID.cxx:429
 AliTPCcalibResidualPID.cxx:430
 AliTPCcalibResidualPID.cxx:431
 AliTPCcalibResidualPID.cxx:432
 AliTPCcalibResidualPID.cxx:433
 AliTPCcalibResidualPID.cxx:434
 AliTPCcalibResidualPID.cxx:435
 AliTPCcalibResidualPID.cxx:436
 AliTPCcalibResidualPID.cxx:437
 AliTPCcalibResidualPID.cxx:438
 AliTPCcalibResidualPID.cxx:439
 AliTPCcalibResidualPID.cxx:440
 AliTPCcalibResidualPID.cxx:441
 AliTPCcalibResidualPID.cxx:442
 AliTPCcalibResidualPID.cxx:443
 AliTPCcalibResidualPID.cxx:444
 AliTPCcalibResidualPID.cxx:445
 AliTPCcalibResidualPID.cxx:446
 AliTPCcalibResidualPID.cxx:447
 AliTPCcalibResidualPID.cxx:448
 AliTPCcalibResidualPID.cxx:449
 AliTPCcalibResidualPID.cxx:450
 AliTPCcalibResidualPID.cxx:451
 AliTPCcalibResidualPID.cxx:452
 AliTPCcalibResidualPID.cxx:453
 AliTPCcalibResidualPID.cxx:454
 AliTPCcalibResidualPID.cxx:455
 AliTPCcalibResidualPID.cxx:456
 AliTPCcalibResidualPID.cxx:457
 AliTPCcalibResidualPID.cxx:458
 AliTPCcalibResidualPID.cxx:459
 AliTPCcalibResidualPID.cxx:460
 AliTPCcalibResidualPID.cxx:461
 AliTPCcalibResidualPID.cxx:462
 AliTPCcalibResidualPID.cxx:463
 AliTPCcalibResidualPID.cxx:464
 AliTPCcalibResidualPID.cxx:465
 AliTPCcalibResidualPID.cxx:466
 AliTPCcalibResidualPID.cxx:467
 AliTPCcalibResidualPID.cxx:468
 AliTPCcalibResidualPID.cxx:469
 AliTPCcalibResidualPID.cxx:470
 AliTPCcalibResidualPID.cxx:471
 AliTPCcalibResidualPID.cxx:472
 AliTPCcalibResidualPID.cxx:473
 AliTPCcalibResidualPID.cxx:474
 AliTPCcalibResidualPID.cxx:475
 AliTPCcalibResidualPID.cxx:476
 AliTPCcalibResidualPID.cxx:477
 AliTPCcalibResidualPID.cxx:478
 AliTPCcalibResidualPID.cxx:479
 AliTPCcalibResidualPID.cxx:480
 AliTPCcalibResidualPID.cxx:481
 AliTPCcalibResidualPID.cxx:482
 AliTPCcalibResidualPID.cxx:483
 AliTPCcalibResidualPID.cxx:484
 AliTPCcalibResidualPID.cxx:485
 AliTPCcalibResidualPID.cxx:486
 AliTPCcalibResidualPID.cxx:487
 AliTPCcalibResidualPID.cxx:488
 AliTPCcalibResidualPID.cxx:489
 AliTPCcalibResidualPID.cxx:490
 AliTPCcalibResidualPID.cxx:491
 AliTPCcalibResidualPID.cxx:492
 AliTPCcalibResidualPID.cxx:493
 AliTPCcalibResidualPID.cxx:494
 AliTPCcalibResidualPID.cxx:495
 AliTPCcalibResidualPID.cxx:496
 AliTPCcalibResidualPID.cxx:497
 AliTPCcalibResidualPID.cxx:498
 AliTPCcalibResidualPID.cxx:499
 AliTPCcalibResidualPID.cxx:500
 AliTPCcalibResidualPID.cxx:501
 AliTPCcalibResidualPID.cxx:502
 AliTPCcalibResidualPID.cxx:503
 AliTPCcalibResidualPID.cxx:504
 AliTPCcalibResidualPID.cxx:505
 AliTPCcalibResidualPID.cxx:506
 AliTPCcalibResidualPID.cxx:507
 AliTPCcalibResidualPID.cxx:508
 AliTPCcalibResidualPID.cxx:509
 AliTPCcalibResidualPID.cxx:510
 AliTPCcalibResidualPID.cxx:511
 AliTPCcalibResidualPID.cxx:512
 AliTPCcalibResidualPID.cxx:513
 AliTPCcalibResidualPID.cxx:514
 AliTPCcalibResidualPID.cxx:515
 AliTPCcalibResidualPID.cxx:516
 AliTPCcalibResidualPID.cxx:517
 AliTPCcalibResidualPID.cxx:518
 AliTPCcalibResidualPID.cxx:519
 AliTPCcalibResidualPID.cxx:520
 AliTPCcalibResidualPID.cxx:521
 AliTPCcalibResidualPID.cxx:522
 AliTPCcalibResidualPID.cxx:523
 AliTPCcalibResidualPID.cxx:524
 AliTPCcalibResidualPID.cxx:525
 AliTPCcalibResidualPID.cxx:526
 AliTPCcalibResidualPID.cxx:527
 AliTPCcalibResidualPID.cxx:528
 AliTPCcalibResidualPID.cxx:529
 AliTPCcalibResidualPID.cxx:530
 AliTPCcalibResidualPID.cxx:531
 AliTPCcalibResidualPID.cxx:532
 AliTPCcalibResidualPID.cxx:533
 AliTPCcalibResidualPID.cxx:534
 AliTPCcalibResidualPID.cxx:535
 AliTPCcalibResidualPID.cxx:536
 AliTPCcalibResidualPID.cxx:537
 AliTPCcalibResidualPID.cxx:538
 AliTPCcalibResidualPID.cxx:539
 AliTPCcalibResidualPID.cxx:540
 AliTPCcalibResidualPID.cxx:541
 AliTPCcalibResidualPID.cxx:542
 AliTPCcalibResidualPID.cxx:543
 AliTPCcalibResidualPID.cxx:544
 AliTPCcalibResidualPID.cxx:545
 AliTPCcalibResidualPID.cxx:546
 AliTPCcalibResidualPID.cxx:547
 AliTPCcalibResidualPID.cxx:548
 AliTPCcalibResidualPID.cxx:549
 AliTPCcalibResidualPID.cxx:550
 AliTPCcalibResidualPID.cxx:551
 AliTPCcalibResidualPID.cxx:552
 AliTPCcalibResidualPID.cxx:553
 AliTPCcalibResidualPID.cxx:554
 AliTPCcalibResidualPID.cxx:555
 AliTPCcalibResidualPID.cxx:556
 AliTPCcalibResidualPID.cxx:557
 AliTPCcalibResidualPID.cxx:558
 AliTPCcalibResidualPID.cxx:559
 AliTPCcalibResidualPID.cxx:560
 AliTPCcalibResidualPID.cxx:561
 AliTPCcalibResidualPID.cxx:562
 AliTPCcalibResidualPID.cxx:563
 AliTPCcalibResidualPID.cxx:564
 AliTPCcalibResidualPID.cxx:565
 AliTPCcalibResidualPID.cxx:566
 AliTPCcalibResidualPID.cxx:567
 AliTPCcalibResidualPID.cxx:568
 AliTPCcalibResidualPID.cxx:569
 AliTPCcalibResidualPID.cxx:570
 AliTPCcalibResidualPID.cxx:571
 AliTPCcalibResidualPID.cxx:572
 AliTPCcalibResidualPID.cxx:573
 AliTPCcalibResidualPID.cxx:574
 AliTPCcalibResidualPID.cxx:575
 AliTPCcalibResidualPID.cxx:576
 AliTPCcalibResidualPID.cxx:577
 AliTPCcalibResidualPID.cxx:578
 AliTPCcalibResidualPID.cxx:579
 AliTPCcalibResidualPID.cxx:580
 AliTPCcalibResidualPID.cxx:581
 AliTPCcalibResidualPID.cxx:582
 AliTPCcalibResidualPID.cxx:583
 AliTPCcalibResidualPID.cxx:584
 AliTPCcalibResidualPID.cxx:585
 AliTPCcalibResidualPID.cxx:586
 AliTPCcalibResidualPID.cxx:587
 AliTPCcalibResidualPID.cxx:588
 AliTPCcalibResidualPID.cxx:589
 AliTPCcalibResidualPID.cxx:590
 AliTPCcalibResidualPID.cxx:591
 AliTPCcalibResidualPID.cxx:592
 AliTPCcalibResidualPID.cxx:593
 AliTPCcalibResidualPID.cxx:594
 AliTPCcalibResidualPID.cxx:595
 AliTPCcalibResidualPID.cxx:596
 AliTPCcalibResidualPID.cxx:597
 AliTPCcalibResidualPID.cxx:598
 AliTPCcalibResidualPID.cxx:599
 AliTPCcalibResidualPID.cxx:600
 AliTPCcalibResidualPID.cxx:601
 AliTPCcalibResidualPID.cxx:602
 AliTPCcalibResidualPID.cxx:603
 AliTPCcalibResidualPID.cxx:604
 AliTPCcalibResidualPID.cxx:605
 AliTPCcalibResidualPID.cxx:606
 AliTPCcalibResidualPID.cxx:607
 AliTPCcalibResidualPID.cxx:608
 AliTPCcalibResidualPID.cxx:609
 AliTPCcalibResidualPID.cxx:610
 AliTPCcalibResidualPID.cxx:611
 AliTPCcalibResidualPID.cxx:612
 AliTPCcalibResidualPID.cxx:613
 AliTPCcalibResidualPID.cxx:614
 AliTPCcalibResidualPID.cxx:615
 AliTPCcalibResidualPID.cxx:616
 AliTPCcalibResidualPID.cxx:617
 AliTPCcalibResidualPID.cxx:618
 AliTPCcalibResidualPID.cxx:619
 AliTPCcalibResidualPID.cxx:620
 AliTPCcalibResidualPID.cxx:621
 AliTPCcalibResidualPID.cxx:622
 AliTPCcalibResidualPID.cxx:623
 AliTPCcalibResidualPID.cxx:624
 AliTPCcalibResidualPID.cxx:625
 AliTPCcalibResidualPID.cxx:626
 AliTPCcalibResidualPID.cxx:627
 AliTPCcalibResidualPID.cxx:628
 AliTPCcalibResidualPID.cxx:629
 AliTPCcalibResidualPID.cxx:630
 AliTPCcalibResidualPID.cxx:631
 AliTPCcalibResidualPID.cxx:632
 AliTPCcalibResidualPID.cxx:633
 AliTPCcalibResidualPID.cxx:634
 AliTPCcalibResidualPID.cxx:635
 AliTPCcalibResidualPID.cxx:636
 AliTPCcalibResidualPID.cxx:637
 AliTPCcalibResidualPID.cxx:638
 AliTPCcalibResidualPID.cxx:639
 AliTPCcalibResidualPID.cxx:640
 AliTPCcalibResidualPID.cxx:641
 AliTPCcalibResidualPID.cxx:642
 AliTPCcalibResidualPID.cxx:643
 AliTPCcalibResidualPID.cxx:644
 AliTPCcalibResidualPID.cxx:645
 AliTPCcalibResidualPID.cxx:646
 AliTPCcalibResidualPID.cxx:647
 AliTPCcalibResidualPID.cxx:648
 AliTPCcalibResidualPID.cxx:649
 AliTPCcalibResidualPID.cxx:650
 AliTPCcalibResidualPID.cxx:651
 AliTPCcalibResidualPID.cxx:652
 AliTPCcalibResidualPID.cxx:653
 AliTPCcalibResidualPID.cxx:654
 AliTPCcalibResidualPID.cxx:655
 AliTPCcalibResidualPID.cxx:656
 AliTPCcalibResidualPID.cxx:657
 AliTPCcalibResidualPID.cxx:658
 AliTPCcalibResidualPID.cxx:659
 AliTPCcalibResidualPID.cxx:660
 AliTPCcalibResidualPID.cxx:661
 AliTPCcalibResidualPID.cxx:662
 AliTPCcalibResidualPID.cxx:663
 AliTPCcalibResidualPID.cxx:664
 AliTPCcalibResidualPID.cxx:665
 AliTPCcalibResidualPID.cxx:666
 AliTPCcalibResidualPID.cxx:667
 AliTPCcalibResidualPID.cxx:668
 AliTPCcalibResidualPID.cxx:669
 AliTPCcalibResidualPID.cxx:670
 AliTPCcalibResidualPID.cxx:671
 AliTPCcalibResidualPID.cxx:672
 AliTPCcalibResidualPID.cxx:673
 AliTPCcalibResidualPID.cxx:674
 AliTPCcalibResidualPID.cxx:675
 AliTPCcalibResidualPID.cxx:676
 AliTPCcalibResidualPID.cxx:677
 AliTPCcalibResidualPID.cxx:678
 AliTPCcalibResidualPID.cxx:679
 AliTPCcalibResidualPID.cxx:680
 AliTPCcalibResidualPID.cxx:681
 AliTPCcalibResidualPID.cxx:682
 AliTPCcalibResidualPID.cxx:683
 AliTPCcalibResidualPID.cxx:684
 AliTPCcalibResidualPID.cxx:685
 AliTPCcalibResidualPID.cxx:686
 AliTPCcalibResidualPID.cxx:687
 AliTPCcalibResidualPID.cxx:688
 AliTPCcalibResidualPID.cxx:689
 AliTPCcalibResidualPID.cxx:690
 AliTPCcalibResidualPID.cxx:691
 AliTPCcalibResidualPID.cxx:692
 AliTPCcalibResidualPID.cxx:693
 AliTPCcalibResidualPID.cxx:694
 AliTPCcalibResidualPID.cxx:695
 AliTPCcalibResidualPID.cxx:696
 AliTPCcalibResidualPID.cxx:697
 AliTPCcalibResidualPID.cxx:698
 AliTPCcalibResidualPID.cxx:699
 AliTPCcalibResidualPID.cxx:700
 AliTPCcalibResidualPID.cxx:701
 AliTPCcalibResidualPID.cxx:702
 AliTPCcalibResidualPID.cxx:703
 AliTPCcalibResidualPID.cxx:704
 AliTPCcalibResidualPID.cxx:705
 AliTPCcalibResidualPID.cxx:706
 AliTPCcalibResidualPID.cxx:707
 AliTPCcalibResidualPID.cxx:708
 AliTPCcalibResidualPID.cxx:709
 AliTPCcalibResidualPID.cxx:710
 AliTPCcalibResidualPID.cxx:711
 AliTPCcalibResidualPID.cxx:712
 AliTPCcalibResidualPID.cxx:713
 AliTPCcalibResidualPID.cxx:714
 AliTPCcalibResidualPID.cxx:715
 AliTPCcalibResidualPID.cxx:716
 AliTPCcalibResidualPID.cxx:717
 AliTPCcalibResidualPID.cxx:718
 AliTPCcalibResidualPID.cxx:719
 AliTPCcalibResidualPID.cxx:720
 AliTPCcalibResidualPID.cxx:721
 AliTPCcalibResidualPID.cxx:722
 AliTPCcalibResidualPID.cxx:723
 AliTPCcalibResidualPID.cxx:724
 AliTPCcalibResidualPID.cxx:725
 AliTPCcalibResidualPID.cxx:726
 AliTPCcalibResidualPID.cxx:727
 AliTPCcalibResidualPID.cxx:728
 AliTPCcalibResidualPID.cxx:729
 AliTPCcalibResidualPID.cxx:730
 AliTPCcalibResidualPID.cxx:731
 AliTPCcalibResidualPID.cxx:732
 AliTPCcalibResidualPID.cxx:733
 AliTPCcalibResidualPID.cxx:734
 AliTPCcalibResidualPID.cxx:735
 AliTPCcalibResidualPID.cxx:736
 AliTPCcalibResidualPID.cxx:737
 AliTPCcalibResidualPID.cxx:738
 AliTPCcalibResidualPID.cxx:739
 AliTPCcalibResidualPID.cxx:740
 AliTPCcalibResidualPID.cxx:741
 AliTPCcalibResidualPID.cxx:742
 AliTPCcalibResidualPID.cxx:743
 AliTPCcalibResidualPID.cxx:744
 AliTPCcalibResidualPID.cxx:745
 AliTPCcalibResidualPID.cxx:746
 AliTPCcalibResidualPID.cxx:747
 AliTPCcalibResidualPID.cxx:748
 AliTPCcalibResidualPID.cxx:749
 AliTPCcalibResidualPID.cxx:750
 AliTPCcalibResidualPID.cxx:751
 AliTPCcalibResidualPID.cxx:752
 AliTPCcalibResidualPID.cxx:753
 AliTPCcalibResidualPID.cxx:754
 AliTPCcalibResidualPID.cxx:755
 AliTPCcalibResidualPID.cxx:756
 AliTPCcalibResidualPID.cxx:757
 AliTPCcalibResidualPID.cxx:758
 AliTPCcalibResidualPID.cxx:759
 AliTPCcalibResidualPID.cxx:760
 AliTPCcalibResidualPID.cxx:761
 AliTPCcalibResidualPID.cxx:762
 AliTPCcalibResidualPID.cxx:763
 AliTPCcalibResidualPID.cxx:764
 AliTPCcalibResidualPID.cxx:765
 AliTPCcalibResidualPID.cxx:766
 AliTPCcalibResidualPID.cxx:767
 AliTPCcalibResidualPID.cxx:768
 AliTPCcalibResidualPID.cxx:769
 AliTPCcalibResidualPID.cxx:770
 AliTPCcalibResidualPID.cxx:771
 AliTPCcalibResidualPID.cxx:772
 AliTPCcalibResidualPID.cxx:773
 AliTPCcalibResidualPID.cxx:774
 AliTPCcalibResidualPID.cxx:775
 AliTPCcalibResidualPID.cxx:776
 AliTPCcalibResidualPID.cxx:777
 AliTPCcalibResidualPID.cxx:778
 AliTPCcalibResidualPID.cxx:779
 AliTPCcalibResidualPID.cxx:780
 AliTPCcalibResidualPID.cxx:781
 AliTPCcalibResidualPID.cxx:782
 AliTPCcalibResidualPID.cxx:783
 AliTPCcalibResidualPID.cxx:784
 AliTPCcalibResidualPID.cxx:785
 AliTPCcalibResidualPID.cxx:786
 AliTPCcalibResidualPID.cxx:787
 AliTPCcalibResidualPID.cxx:788
 AliTPCcalibResidualPID.cxx:789
 AliTPCcalibResidualPID.cxx:790
 AliTPCcalibResidualPID.cxx:791
 AliTPCcalibResidualPID.cxx:792
 AliTPCcalibResidualPID.cxx:793
 AliTPCcalibResidualPID.cxx:794
 AliTPCcalibResidualPID.cxx:795
 AliTPCcalibResidualPID.cxx:796
 AliTPCcalibResidualPID.cxx:797
 AliTPCcalibResidualPID.cxx:798
 AliTPCcalibResidualPID.cxx:799
 AliTPCcalibResidualPID.cxx:800
 AliTPCcalibResidualPID.cxx:801
 AliTPCcalibResidualPID.cxx:802
 AliTPCcalibResidualPID.cxx:803
 AliTPCcalibResidualPID.cxx:804
 AliTPCcalibResidualPID.cxx:805
 AliTPCcalibResidualPID.cxx:806
 AliTPCcalibResidualPID.cxx:807
 AliTPCcalibResidualPID.cxx:808
 AliTPCcalibResidualPID.cxx:809
 AliTPCcalibResidualPID.cxx:810
 AliTPCcalibResidualPID.cxx:811
 AliTPCcalibResidualPID.cxx:812
 AliTPCcalibResidualPID.cxx:813
 AliTPCcalibResidualPID.cxx:814
 AliTPCcalibResidualPID.cxx:815
 AliTPCcalibResidualPID.cxx:816
 AliTPCcalibResidualPID.cxx:817
 AliTPCcalibResidualPID.cxx:818
 AliTPCcalibResidualPID.cxx:819
 AliTPCcalibResidualPID.cxx:820
 AliTPCcalibResidualPID.cxx:821
 AliTPCcalibResidualPID.cxx:822
 AliTPCcalibResidualPID.cxx:823
 AliTPCcalibResidualPID.cxx:824
 AliTPCcalibResidualPID.cxx:825
 AliTPCcalibResidualPID.cxx:826
 AliTPCcalibResidualPID.cxx:827
 AliTPCcalibResidualPID.cxx:828
 AliTPCcalibResidualPID.cxx:829
 AliTPCcalibResidualPID.cxx:830
 AliTPCcalibResidualPID.cxx:831
 AliTPCcalibResidualPID.cxx:832
 AliTPCcalibResidualPID.cxx:833
 AliTPCcalibResidualPID.cxx:834
 AliTPCcalibResidualPID.cxx:835
 AliTPCcalibResidualPID.cxx:836
 AliTPCcalibResidualPID.cxx:837
 AliTPCcalibResidualPID.cxx:838
 AliTPCcalibResidualPID.cxx:839
 AliTPCcalibResidualPID.cxx:840
 AliTPCcalibResidualPID.cxx:841
 AliTPCcalibResidualPID.cxx:842
 AliTPCcalibResidualPID.cxx:843
 AliTPCcalibResidualPID.cxx:844
 AliTPCcalibResidualPID.cxx:845
 AliTPCcalibResidualPID.cxx:846
 AliTPCcalibResidualPID.cxx:847
 AliTPCcalibResidualPID.cxx:848
 AliTPCcalibResidualPID.cxx:849
 AliTPCcalibResidualPID.cxx:850
 AliTPCcalibResidualPID.cxx:851
 AliTPCcalibResidualPID.cxx:852
 AliTPCcalibResidualPID.cxx:853
 AliTPCcalibResidualPID.cxx:854
 AliTPCcalibResidualPID.cxx:855
 AliTPCcalibResidualPID.cxx:856
 AliTPCcalibResidualPID.cxx:857
 AliTPCcalibResidualPID.cxx:858
 AliTPCcalibResidualPID.cxx:859
 AliTPCcalibResidualPID.cxx:860
 AliTPCcalibResidualPID.cxx:861
 AliTPCcalibResidualPID.cxx:862
 AliTPCcalibResidualPID.cxx:863
 AliTPCcalibResidualPID.cxx:864
 AliTPCcalibResidualPID.cxx:865
 AliTPCcalibResidualPID.cxx:866
 AliTPCcalibResidualPID.cxx:867
 AliTPCcalibResidualPID.cxx:868
 AliTPCcalibResidualPID.cxx:869
 AliTPCcalibResidualPID.cxx:870
 AliTPCcalibResidualPID.cxx:871
 AliTPCcalibResidualPID.cxx:872
 AliTPCcalibResidualPID.cxx:873
 AliTPCcalibResidualPID.cxx:874
 AliTPCcalibResidualPID.cxx:875
 AliTPCcalibResidualPID.cxx:876
 AliTPCcalibResidualPID.cxx:877
 AliTPCcalibResidualPID.cxx:878
 AliTPCcalibResidualPID.cxx:879
 AliTPCcalibResidualPID.cxx:880
 AliTPCcalibResidualPID.cxx:881
 AliTPCcalibResidualPID.cxx:882
 AliTPCcalibResidualPID.cxx:883
 AliTPCcalibResidualPID.cxx:884
 AliTPCcalibResidualPID.cxx:885
 AliTPCcalibResidualPID.cxx:886
 AliTPCcalibResidualPID.cxx:887
 AliTPCcalibResidualPID.cxx:888
 AliTPCcalibResidualPID.cxx:889
 AliTPCcalibResidualPID.cxx:890
 AliTPCcalibResidualPID.cxx:891
 AliTPCcalibResidualPID.cxx:892
 AliTPCcalibResidualPID.cxx:893
 AliTPCcalibResidualPID.cxx:894
 AliTPCcalibResidualPID.cxx:895
 AliTPCcalibResidualPID.cxx:896
 AliTPCcalibResidualPID.cxx:897
 AliTPCcalibResidualPID.cxx:898
 AliTPCcalibResidualPID.cxx:899
 AliTPCcalibResidualPID.cxx:900
 AliTPCcalibResidualPID.cxx:901
 AliTPCcalibResidualPID.cxx:902
 AliTPCcalibResidualPID.cxx:903
 AliTPCcalibResidualPID.cxx:904
 AliTPCcalibResidualPID.cxx:905
 AliTPCcalibResidualPID.cxx:906
 AliTPCcalibResidualPID.cxx:907
 AliTPCcalibResidualPID.cxx:908
 AliTPCcalibResidualPID.cxx:909
 AliTPCcalibResidualPID.cxx:910
 AliTPCcalibResidualPID.cxx:911
 AliTPCcalibResidualPID.cxx:912
 AliTPCcalibResidualPID.cxx:913
 AliTPCcalibResidualPID.cxx:914
 AliTPCcalibResidualPID.cxx:915
 AliTPCcalibResidualPID.cxx:916
 AliTPCcalibResidualPID.cxx:917
 AliTPCcalibResidualPID.cxx:918
 AliTPCcalibResidualPID.cxx:919
 AliTPCcalibResidualPID.cxx:920
 AliTPCcalibResidualPID.cxx:921
 AliTPCcalibResidualPID.cxx:922
 AliTPCcalibResidualPID.cxx:923
 AliTPCcalibResidualPID.cxx:924
 AliTPCcalibResidualPID.cxx:925
 AliTPCcalibResidualPID.cxx:926
 AliTPCcalibResidualPID.cxx:927
 AliTPCcalibResidualPID.cxx:928
 AliTPCcalibResidualPID.cxx:929
 AliTPCcalibResidualPID.cxx:930
 AliTPCcalibResidualPID.cxx:931
 AliTPCcalibResidualPID.cxx:932
 AliTPCcalibResidualPID.cxx:933
 AliTPCcalibResidualPID.cxx:934
 AliTPCcalibResidualPID.cxx:935
 AliTPCcalibResidualPID.cxx:936
 AliTPCcalibResidualPID.cxx:937
 AliTPCcalibResidualPID.cxx:938
 AliTPCcalibResidualPID.cxx:939
 AliTPCcalibResidualPID.cxx:940
 AliTPCcalibResidualPID.cxx:941
 AliTPCcalibResidualPID.cxx:942
 AliTPCcalibResidualPID.cxx:943
 AliTPCcalibResidualPID.cxx:944
 AliTPCcalibResidualPID.cxx:945
 AliTPCcalibResidualPID.cxx:946
 AliTPCcalibResidualPID.cxx:947
 AliTPCcalibResidualPID.cxx:948
 AliTPCcalibResidualPID.cxx:949
 AliTPCcalibResidualPID.cxx:950
 AliTPCcalibResidualPID.cxx:951
 AliTPCcalibResidualPID.cxx:952
 AliTPCcalibResidualPID.cxx:953
 AliTPCcalibResidualPID.cxx:954
 AliTPCcalibResidualPID.cxx:955
 AliTPCcalibResidualPID.cxx:956
 AliTPCcalibResidualPID.cxx:957
 AliTPCcalibResidualPID.cxx:958
 AliTPCcalibResidualPID.cxx:959
 AliTPCcalibResidualPID.cxx:960
 AliTPCcalibResidualPID.cxx:961
 AliTPCcalibResidualPID.cxx:962
 AliTPCcalibResidualPID.cxx:963
 AliTPCcalibResidualPID.cxx:964
 AliTPCcalibResidualPID.cxx:965
 AliTPCcalibResidualPID.cxx:966
 AliTPCcalibResidualPID.cxx:967
 AliTPCcalibResidualPID.cxx:968
 AliTPCcalibResidualPID.cxx:969
 AliTPCcalibResidualPID.cxx:970
 AliTPCcalibResidualPID.cxx:971
 AliTPCcalibResidualPID.cxx:972
 AliTPCcalibResidualPID.cxx:973
 AliTPCcalibResidualPID.cxx:974
 AliTPCcalibResidualPID.cxx:975
 AliTPCcalibResidualPID.cxx:976
 AliTPCcalibResidualPID.cxx:977
 AliTPCcalibResidualPID.cxx:978
 AliTPCcalibResidualPID.cxx:979
 AliTPCcalibResidualPID.cxx:980
 AliTPCcalibResidualPID.cxx:981
 AliTPCcalibResidualPID.cxx:982
 AliTPCcalibResidualPID.cxx:983
 AliTPCcalibResidualPID.cxx:984
 AliTPCcalibResidualPID.cxx:985
 AliTPCcalibResidualPID.cxx:986
 AliTPCcalibResidualPID.cxx:987
 AliTPCcalibResidualPID.cxx:988
 AliTPCcalibResidualPID.cxx:989
 AliTPCcalibResidualPID.cxx:990
 AliTPCcalibResidualPID.cxx:991
 AliTPCcalibResidualPID.cxx:992
 AliTPCcalibResidualPID.cxx:993
 AliTPCcalibResidualPID.cxx:994
 AliTPCcalibResidualPID.cxx:995
 AliTPCcalibResidualPID.cxx:996
 AliTPCcalibResidualPID.cxx:997
 AliTPCcalibResidualPID.cxx:998
 AliTPCcalibResidualPID.cxx:999
 AliTPCcalibResidualPID.cxx:1000
 AliTPCcalibResidualPID.cxx:1001
 AliTPCcalibResidualPID.cxx:1002
 AliTPCcalibResidualPID.cxx:1003
 AliTPCcalibResidualPID.cxx:1004
 AliTPCcalibResidualPID.cxx:1005
 AliTPCcalibResidualPID.cxx:1006
 AliTPCcalibResidualPID.cxx:1007
 AliTPCcalibResidualPID.cxx:1008
 AliTPCcalibResidualPID.cxx:1009
 AliTPCcalibResidualPID.cxx:1010
 AliTPCcalibResidualPID.cxx:1011
 AliTPCcalibResidualPID.cxx:1012
 AliTPCcalibResidualPID.cxx:1013
 AliTPCcalibResidualPID.cxx:1014
 AliTPCcalibResidualPID.cxx:1015
 AliTPCcalibResidualPID.cxx:1016
 AliTPCcalibResidualPID.cxx:1017
 AliTPCcalibResidualPID.cxx:1018
 AliTPCcalibResidualPID.cxx:1019
 AliTPCcalibResidualPID.cxx:1020
 AliTPCcalibResidualPID.cxx:1021
 AliTPCcalibResidualPID.cxx:1022
 AliTPCcalibResidualPID.cxx:1023
 AliTPCcalibResidualPID.cxx:1024
 AliTPCcalibResidualPID.cxx:1025
 AliTPCcalibResidualPID.cxx:1026
 AliTPCcalibResidualPID.cxx:1027
 AliTPCcalibResidualPID.cxx:1028
 AliTPCcalibResidualPID.cxx:1029
 AliTPCcalibResidualPID.cxx:1030
 AliTPCcalibResidualPID.cxx:1031
 AliTPCcalibResidualPID.cxx:1032
 AliTPCcalibResidualPID.cxx:1033
 AliTPCcalibResidualPID.cxx:1034
 AliTPCcalibResidualPID.cxx:1035
 AliTPCcalibResidualPID.cxx:1036
 AliTPCcalibResidualPID.cxx:1037
 AliTPCcalibResidualPID.cxx:1038
 AliTPCcalibResidualPID.cxx:1039
 AliTPCcalibResidualPID.cxx:1040
 AliTPCcalibResidualPID.cxx:1041
 AliTPCcalibResidualPID.cxx:1042
 AliTPCcalibResidualPID.cxx:1043
 AliTPCcalibResidualPID.cxx:1044
 AliTPCcalibResidualPID.cxx:1045
 AliTPCcalibResidualPID.cxx:1046
 AliTPCcalibResidualPID.cxx:1047
 AliTPCcalibResidualPID.cxx:1048
 AliTPCcalibResidualPID.cxx:1049
 AliTPCcalibResidualPID.cxx:1050
 AliTPCcalibResidualPID.cxx:1051
 AliTPCcalibResidualPID.cxx:1052
 AliTPCcalibResidualPID.cxx:1053
 AliTPCcalibResidualPID.cxx:1054
 AliTPCcalibResidualPID.cxx:1055
 AliTPCcalibResidualPID.cxx:1056
 AliTPCcalibResidualPID.cxx:1057
 AliTPCcalibResidualPID.cxx:1058
 AliTPCcalibResidualPID.cxx:1059
 AliTPCcalibResidualPID.cxx:1060
 AliTPCcalibResidualPID.cxx:1061
 AliTPCcalibResidualPID.cxx:1062
 AliTPCcalibResidualPID.cxx:1063
 AliTPCcalibResidualPID.cxx:1064
 AliTPCcalibResidualPID.cxx:1065
 AliTPCcalibResidualPID.cxx:1066
 AliTPCcalibResidualPID.cxx:1067
 AliTPCcalibResidualPID.cxx:1068
 AliTPCcalibResidualPID.cxx:1069
 AliTPCcalibResidualPID.cxx:1070
 AliTPCcalibResidualPID.cxx:1071
 AliTPCcalibResidualPID.cxx:1072
 AliTPCcalibResidualPID.cxx:1073
 AliTPCcalibResidualPID.cxx:1074
 AliTPCcalibResidualPID.cxx:1075
 AliTPCcalibResidualPID.cxx:1076
 AliTPCcalibResidualPID.cxx:1077
 AliTPCcalibResidualPID.cxx:1078
 AliTPCcalibResidualPID.cxx:1079
 AliTPCcalibResidualPID.cxx:1080
 AliTPCcalibResidualPID.cxx:1081
 AliTPCcalibResidualPID.cxx:1082
 AliTPCcalibResidualPID.cxx:1083
 AliTPCcalibResidualPID.cxx:1084
 AliTPCcalibResidualPID.cxx:1085
 AliTPCcalibResidualPID.cxx:1086
 AliTPCcalibResidualPID.cxx:1087
 AliTPCcalibResidualPID.cxx:1088
 AliTPCcalibResidualPID.cxx:1089
 AliTPCcalibResidualPID.cxx:1090
 AliTPCcalibResidualPID.cxx:1091
 AliTPCcalibResidualPID.cxx:1092
 AliTPCcalibResidualPID.cxx:1093
 AliTPCcalibResidualPID.cxx:1094
 AliTPCcalibResidualPID.cxx:1095
 AliTPCcalibResidualPID.cxx:1096
 AliTPCcalibResidualPID.cxx:1097
 AliTPCcalibResidualPID.cxx:1098
 AliTPCcalibResidualPID.cxx:1099
 AliTPCcalibResidualPID.cxx:1100
 AliTPCcalibResidualPID.cxx:1101
 AliTPCcalibResidualPID.cxx:1102
 AliTPCcalibResidualPID.cxx:1103
 AliTPCcalibResidualPID.cxx:1104
 AliTPCcalibResidualPID.cxx:1105
 AliTPCcalibResidualPID.cxx:1106
 AliTPCcalibResidualPID.cxx:1107
 AliTPCcalibResidualPID.cxx:1108
 AliTPCcalibResidualPID.cxx:1109
 AliTPCcalibResidualPID.cxx:1110
 AliTPCcalibResidualPID.cxx:1111
 AliTPCcalibResidualPID.cxx:1112
 AliTPCcalibResidualPID.cxx:1113
 AliTPCcalibResidualPID.cxx:1114
 AliTPCcalibResidualPID.cxx:1115
 AliTPCcalibResidualPID.cxx:1116
 AliTPCcalibResidualPID.cxx:1117
 AliTPCcalibResidualPID.cxx:1118
 AliTPCcalibResidualPID.cxx:1119
 AliTPCcalibResidualPID.cxx:1120
 AliTPCcalibResidualPID.cxx:1121
 AliTPCcalibResidualPID.cxx:1122
 AliTPCcalibResidualPID.cxx:1123
 AliTPCcalibResidualPID.cxx:1124
 AliTPCcalibResidualPID.cxx:1125
 AliTPCcalibResidualPID.cxx:1126
 AliTPCcalibResidualPID.cxx:1127
 AliTPCcalibResidualPID.cxx:1128
 AliTPCcalibResidualPID.cxx:1129
 AliTPCcalibResidualPID.cxx:1130
 AliTPCcalibResidualPID.cxx:1131
 AliTPCcalibResidualPID.cxx:1132
 AliTPCcalibResidualPID.cxx:1133
 AliTPCcalibResidualPID.cxx:1134
 AliTPCcalibResidualPID.cxx:1135
 AliTPCcalibResidualPID.cxx:1136
 AliTPCcalibResidualPID.cxx:1137
 AliTPCcalibResidualPID.cxx:1138
 AliTPCcalibResidualPID.cxx:1139
 AliTPCcalibResidualPID.cxx:1140
 AliTPCcalibResidualPID.cxx:1141
 AliTPCcalibResidualPID.cxx:1142
 AliTPCcalibResidualPID.cxx:1143
 AliTPCcalibResidualPID.cxx:1144
 AliTPCcalibResidualPID.cxx:1145
 AliTPCcalibResidualPID.cxx:1146
 AliTPCcalibResidualPID.cxx:1147
 AliTPCcalibResidualPID.cxx:1148
 AliTPCcalibResidualPID.cxx:1149
 AliTPCcalibResidualPID.cxx:1150
 AliTPCcalibResidualPID.cxx:1151
 AliTPCcalibResidualPID.cxx:1152
 AliTPCcalibResidualPID.cxx:1153
 AliTPCcalibResidualPID.cxx:1154
 AliTPCcalibResidualPID.cxx:1155
 AliTPCcalibResidualPID.cxx:1156
 AliTPCcalibResidualPID.cxx:1157
 AliTPCcalibResidualPID.cxx:1158
 AliTPCcalibResidualPID.cxx:1159
 AliTPCcalibResidualPID.cxx:1160
 AliTPCcalibResidualPID.cxx:1161
 AliTPCcalibResidualPID.cxx:1162
 AliTPCcalibResidualPID.cxx:1163
 AliTPCcalibResidualPID.cxx:1164
 AliTPCcalibResidualPID.cxx:1165
 AliTPCcalibResidualPID.cxx:1166
 AliTPCcalibResidualPID.cxx:1167
 AliTPCcalibResidualPID.cxx:1168
 AliTPCcalibResidualPID.cxx:1169
 AliTPCcalibResidualPID.cxx:1170
 AliTPCcalibResidualPID.cxx:1171
 AliTPCcalibResidualPID.cxx:1172
 AliTPCcalibResidualPID.cxx:1173
 AliTPCcalibResidualPID.cxx:1174
 AliTPCcalibResidualPID.cxx:1175
 AliTPCcalibResidualPID.cxx:1176
 AliTPCcalibResidualPID.cxx:1177
 AliTPCcalibResidualPID.cxx:1178
 AliTPCcalibResidualPID.cxx:1179
 AliTPCcalibResidualPID.cxx:1180
 AliTPCcalibResidualPID.cxx:1181
 AliTPCcalibResidualPID.cxx:1182
 AliTPCcalibResidualPID.cxx:1183
 AliTPCcalibResidualPID.cxx:1184
 AliTPCcalibResidualPID.cxx:1185
 AliTPCcalibResidualPID.cxx:1186
 AliTPCcalibResidualPID.cxx:1187
 AliTPCcalibResidualPID.cxx:1188
 AliTPCcalibResidualPID.cxx:1189
 AliTPCcalibResidualPID.cxx:1190
 AliTPCcalibResidualPID.cxx:1191
 AliTPCcalibResidualPID.cxx:1192
 AliTPCcalibResidualPID.cxx:1193
 AliTPCcalibResidualPID.cxx:1194
 AliTPCcalibResidualPID.cxx:1195
 AliTPCcalibResidualPID.cxx:1196
 AliTPCcalibResidualPID.cxx:1197
 AliTPCcalibResidualPID.cxx:1198
 AliTPCcalibResidualPID.cxx:1199
 AliTPCcalibResidualPID.cxx:1200
 AliTPCcalibResidualPID.cxx:1201
 AliTPCcalibResidualPID.cxx:1202
 AliTPCcalibResidualPID.cxx:1203
 AliTPCcalibResidualPID.cxx:1204
 AliTPCcalibResidualPID.cxx:1205
 AliTPCcalibResidualPID.cxx:1206
 AliTPCcalibResidualPID.cxx:1207
 AliTPCcalibResidualPID.cxx:1208
 AliTPCcalibResidualPID.cxx:1209
 AliTPCcalibResidualPID.cxx:1210
 AliTPCcalibResidualPID.cxx:1211
 AliTPCcalibResidualPID.cxx:1212
 AliTPCcalibResidualPID.cxx:1213
 AliTPCcalibResidualPID.cxx:1214
 AliTPCcalibResidualPID.cxx:1215
 AliTPCcalibResidualPID.cxx:1216
 AliTPCcalibResidualPID.cxx:1217
 AliTPCcalibResidualPID.cxx:1218
 AliTPCcalibResidualPID.cxx:1219
 AliTPCcalibResidualPID.cxx:1220
 AliTPCcalibResidualPID.cxx:1221
 AliTPCcalibResidualPID.cxx:1222
 AliTPCcalibResidualPID.cxx:1223
 AliTPCcalibResidualPID.cxx:1224
 AliTPCcalibResidualPID.cxx:1225
 AliTPCcalibResidualPID.cxx:1226
 AliTPCcalibResidualPID.cxx:1227
 AliTPCcalibResidualPID.cxx:1228
 AliTPCcalibResidualPID.cxx:1229
 AliTPCcalibResidualPID.cxx:1230
 AliTPCcalibResidualPID.cxx:1231
 AliTPCcalibResidualPID.cxx:1232
 AliTPCcalibResidualPID.cxx:1233
 AliTPCcalibResidualPID.cxx:1234
 AliTPCcalibResidualPID.cxx:1235
 AliTPCcalibResidualPID.cxx:1236
 AliTPCcalibResidualPID.cxx:1237
 AliTPCcalibResidualPID.cxx:1238
 AliTPCcalibResidualPID.cxx:1239
 AliTPCcalibResidualPID.cxx:1240
 AliTPCcalibResidualPID.cxx:1241
 AliTPCcalibResidualPID.cxx:1242
 AliTPCcalibResidualPID.cxx:1243
 AliTPCcalibResidualPID.cxx:1244
 AliTPCcalibResidualPID.cxx:1245
 AliTPCcalibResidualPID.cxx:1246
 AliTPCcalibResidualPID.cxx:1247
 AliTPCcalibResidualPID.cxx:1248
 AliTPCcalibResidualPID.cxx:1249
 AliTPCcalibResidualPID.cxx:1250
 AliTPCcalibResidualPID.cxx:1251
 AliTPCcalibResidualPID.cxx:1252
 AliTPCcalibResidualPID.cxx:1253
 AliTPCcalibResidualPID.cxx:1254
 AliTPCcalibResidualPID.cxx:1255
 AliTPCcalibResidualPID.cxx:1256
 AliTPCcalibResidualPID.cxx:1257
 AliTPCcalibResidualPID.cxx:1258
 AliTPCcalibResidualPID.cxx:1259
 AliTPCcalibResidualPID.cxx:1260
 AliTPCcalibResidualPID.cxx:1261
 AliTPCcalibResidualPID.cxx:1262
 AliTPCcalibResidualPID.cxx:1263
 AliTPCcalibResidualPID.cxx:1264
 AliTPCcalibResidualPID.cxx:1265
 AliTPCcalibResidualPID.cxx:1266
 AliTPCcalibResidualPID.cxx:1267
 AliTPCcalibResidualPID.cxx:1268
 AliTPCcalibResidualPID.cxx:1269
 AliTPCcalibResidualPID.cxx:1270
 AliTPCcalibResidualPID.cxx:1271
 AliTPCcalibResidualPID.cxx:1272
 AliTPCcalibResidualPID.cxx:1273
 AliTPCcalibResidualPID.cxx:1274
 AliTPCcalibResidualPID.cxx:1275
 AliTPCcalibResidualPID.cxx:1276
 AliTPCcalibResidualPID.cxx:1277
 AliTPCcalibResidualPID.cxx:1278
 AliTPCcalibResidualPID.cxx:1279
 AliTPCcalibResidualPID.cxx:1280
 AliTPCcalibResidualPID.cxx:1281
 AliTPCcalibResidualPID.cxx:1282
 AliTPCcalibResidualPID.cxx:1283
 AliTPCcalibResidualPID.cxx:1284
 AliTPCcalibResidualPID.cxx:1285
 AliTPCcalibResidualPID.cxx:1286
 AliTPCcalibResidualPID.cxx:1287
 AliTPCcalibResidualPID.cxx:1288
 AliTPCcalibResidualPID.cxx:1289
 AliTPCcalibResidualPID.cxx:1290
 AliTPCcalibResidualPID.cxx:1291
 AliTPCcalibResidualPID.cxx:1292
 AliTPCcalibResidualPID.cxx:1293
 AliTPCcalibResidualPID.cxx:1294
 AliTPCcalibResidualPID.cxx:1295
 AliTPCcalibResidualPID.cxx:1296
 AliTPCcalibResidualPID.cxx:1297
 AliTPCcalibResidualPID.cxx:1298
 AliTPCcalibResidualPID.cxx:1299
 AliTPCcalibResidualPID.cxx:1300
 AliTPCcalibResidualPID.cxx:1301
 AliTPCcalibResidualPID.cxx:1302
 AliTPCcalibResidualPID.cxx:1303
 AliTPCcalibResidualPID.cxx:1304
 AliTPCcalibResidualPID.cxx:1305
 AliTPCcalibResidualPID.cxx:1306
 AliTPCcalibResidualPID.cxx:1307
 AliTPCcalibResidualPID.cxx:1308
 AliTPCcalibResidualPID.cxx:1309
 AliTPCcalibResidualPID.cxx:1310
 AliTPCcalibResidualPID.cxx:1311
 AliTPCcalibResidualPID.cxx:1312
 AliTPCcalibResidualPID.cxx:1313
 AliTPCcalibResidualPID.cxx:1314
 AliTPCcalibResidualPID.cxx:1315
 AliTPCcalibResidualPID.cxx:1316
 AliTPCcalibResidualPID.cxx:1317
 AliTPCcalibResidualPID.cxx:1318
 AliTPCcalibResidualPID.cxx:1319
 AliTPCcalibResidualPID.cxx:1320
 AliTPCcalibResidualPID.cxx:1321
 AliTPCcalibResidualPID.cxx:1322
 AliTPCcalibResidualPID.cxx:1323
 AliTPCcalibResidualPID.cxx:1324
 AliTPCcalibResidualPID.cxx:1325
 AliTPCcalibResidualPID.cxx:1326
 AliTPCcalibResidualPID.cxx:1327
 AliTPCcalibResidualPID.cxx:1328
 AliTPCcalibResidualPID.cxx:1329
 AliTPCcalibResidualPID.cxx:1330
 AliTPCcalibResidualPID.cxx:1331
 AliTPCcalibResidualPID.cxx:1332
 AliTPCcalibResidualPID.cxx:1333
 AliTPCcalibResidualPID.cxx:1334
 AliTPCcalibResidualPID.cxx:1335
 AliTPCcalibResidualPID.cxx:1336
 AliTPCcalibResidualPID.cxx:1337
 AliTPCcalibResidualPID.cxx:1338
 AliTPCcalibResidualPID.cxx:1339
 AliTPCcalibResidualPID.cxx:1340
 AliTPCcalibResidualPID.cxx:1341
 AliTPCcalibResidualPID.cxx:1342
 AliTPCcalibResidualPID.cxx:1343
 AliTPCcalibResidualPID.cxx:1344
 AliTPCcalibResidualPID.cxx:1345
 AliTPCcalibResidualPID.cxx:1346
 AliTPCcalibResidualPID.cxx:1347
 AliTPCcalibResidualPID.cxx:1348
 AliTPCcalibResidualPID.cxx:1349
 AliTPCcalibResidualPID.cxx:1350
 AliTPCcalibResidualPID.cxx:1351
 AliTPCcalibResidualPID.cxx:1352
 AliTPCcalibResidualPID.cxx:1353
 AliTPCcalibResidualPID.cxx:1354
 AliTPCcalibResidualPID.cxx:1355
 AliTPCcalibResidualPID.cxx:1356
 AliTPCcalibResidualPID.cxx:1357
 AliTPCcalibResidualPID.cxx:1358
 AliTPCcalibResidualPID.cxx:1359
 AliTPCcalibResidualPID.cxx:1360
 AliTPCcalibResidualPID.cxx:1361
 AliTPCcalibResidualPID.cxx:1362
 AliTPCcalibResidualPID.cxx:1363
 AliTPCcalibResidualPID.cxx:1364
 AliTPCcalibResidualPID.cxx:1365
 AliTPCcalibResidualPID.cxx:1366
 AliTPCcalibResidualPID.cxx:1367
 AliTPCcalibResidualPID.cxx:1368
 AliTPCcalibResidualPID.cxx:1369
 AliTPCcalibResidualPID.cxx:1370
 AliTPCcalibResidualPID.cxx:1371
 AliTPCcalibResidualPID.cxx:1372
 AliTPCcalibResidualPID.cxx:1373
 AliTPCcalibResidualPID.cxx:1374
 AliTPCcalibResidualPID.cxx:1375
 AliTPCcalibResidualPID.cxx:1376
 AliTPCcalibResidualPID.cxx:1377
 AliTPCcalibResidualPID.cxx:1378
 AliTPCcalibResidualPID.cxx:1379
 AliTPCcalibResidualPID.cxx:1380
 AliTPCcalibResidualPID.cxx:1381
 AliTPCcalibResidualPID.cxx:1382
 AliTPCcalibResidualPID.cxx:1383
 AliTPCcalibResidualPID.cxx:1384
 AliTPCcalibResidualPID.cxx:1385
 AliTPCcalibResidualPID.cxx:1386
 AliTPCcalibResidualPID.cxx:1387
 AliTPCcalibResidualPID.cxx:1388
 AliTPCcalibResidualPID.cxx:1389
 AliTPCcalibResidualPID.cxx:1390
 AliTPCcalibResidualPID.cxx:1391
 AliTPCcalibResidualPID.cxx:1392
 AliTPCcalibResidualPID.cxx:1393
 AliTPCcalibResidualPID.cxx:1394
 AliTPCcalibResidualPID.cxx:1395
 AliTPCcalibResidualPID.cxx:1396
 AliTPCcalibResidualPID.cxx:1397
 AliTPCcalibResidualPID.cxx:1398
 AliTPCcalibResidualPID.cxx:1399
 AliTPCcalibResidualPID.cxx:1400
 AliTPCcalibResidualPID.cxx:1401
 AliTPCcalibResidualPID.cxx:1402
 AliTPCcalibResidualPID.cxx:1403
 AliTPCcalibResidualPID.cxx:1404
 AliTPCcalibResidualPID.cxx:1405
 AliTPCcalibResidualPID.cxx:1406
 AliTPCcalibResidualPID.cxx:1407
 AliTPCcalibResidualPID.cxx:1408
 AliTPCcalibResidualPID.cxx:1409
 AliTPCcalibResidualPID.cxx:1410
 AliTPCcalibResidualPID.cxx:1411
 AliTPCcalibResidualPID.cxx:1412
 AliTPCcalibResidualPID.cxx:1413
 AliTPCcalibResidualPID.cxx:1414
 AliTPCcalibResidualPID.cxx:1415
 AliTPCcalibResidualPID.cxx:1416
 AliTPCcalibResidualPID.cxx:1417
 AliTPCcalibResidualPID.cxx:1418
 AliTPCcalibResidualPID.cxx:1419
 AliTPCcalibResidualPID.cxx:1420
 AliTPCcalibResidualPID.cxx:1421
 AliTPCcalibResidualPID.cxx:1422
 AliTPCcalibResidualPID.cxx:1423
 AliTPCcalibResidualPID.cxx:1424
 AliTPCcalibResidualPID.cxx:1425
 AliTPCcalibResidualPID.cxx:1426
 AliTPCcalibResidualPID.cxx:1427
 AliTPCcalibResidualPID.cxx:1428
 AliTPCcalibResidualPID.cxx:1429
 AliTPCcalibResidualPID.cxx:1430
 AliTPCcalibResidualPID.cxx:1431
 AliTPCcalibResidualPID.cxx:1432
 AliTPCcalibResidualPID.cxx:1433
 AliTPCcalibResidualPID.cxx:1434
 AliTPCcalibResidualPID.cxx:1435
 AliTPCcalibResidualPID.cxx:1436
 AliTPCcalibResidualPID.cxx:1437
 AliTPCcalibResidualPID.cxx:1438
 AliTPCcalibResidualPID.cxx:1439
 AliTPCcalibResidualPID.cxx:1440
 AliTPCcalibResidualPID.cxx:1441
 AliTPCcalibResidualPID.cxx:1442
 AliTPCcalibResidualPID.cxx:1443
 AliTPCcalibResidualPID.cxx:1444
 AliTPCcalibResidualPID.cxx:1445
 AliTPCcalibResidualPID.cxx:1446
 AliTPCcalibResidualPID.cxx:1447
 AliTPCcalibResidualPID.cxx:1448
 AliTPCcalibResidualPID.cxx:1449
 AliTPCcalibResidualPID.cxx:1450
 AliTPCcalibResidualPID.cxx:1451
 AliTPCcalibResidualPID.cxx:1452
 AliTPCcalibResidualPID.cxx:1453
 AliTPCcalibResidualPID.cxx:1454
 AliTPCcalibResidualPID.cxx:1455
 AliTPCcalibResidualPID.cxx:1456
 AliTPCcalibResidualPID.cxx:1457
 AliTPCcalibResidualPID.cxx:1458
 AliTPCcalibResidualPID.cxx:1459
 AliTPCcalibResidualPID.cxx:1460
 AliTPCcalibResidualPID.cxx:1461
 AliTPCcalibResidualPID.cxx:1462
 AliTPCcalibResidualPID.cxx:1463
 AliTPCcalibResidualPID.cxx:1464
 AliTPCcalibResidualPID.cxx:1465
 AliTPCcalibResidualPID.cxx:1466
 AliTPCcalibResidualPID.cxx:1467
 AliTPCcalibResidualPID.cxx:1468
 AliTPCcalibResidualPID.cxx:1469
 AliTPCcalibResidualPID.cxx:1470
 AliTPCcalibResidualPID.cxx:1471
 AliTPCcalibResidualPID.cxx:1472
 AliTPCcalibResidualPID.cxx:1473
 AliTPCcalibResidualPID.cxx:1474
 AliTPCcalibResidualPID.cxx:1475
 AliTPCcalibResidualPID.cxx:1476
 AliTPCcalibResidualPID.cxx:1477
 AliTPCcalibResidualPID.cxx:1478
 AliTPCcalibResidualPID.cxx:1479
 AliTPCcalibResidualPID.cxx:1480
 AliTPCcalibResidualPID.cxx:1481
 AliTPCcalibResidualPID.cxx:1482
 AliTPCcalibResidualPID.cxx:1483
 AliTPCcalibResidualPID.cxx:1484
 AliTPCcalibResidualPID.cxx:1485
 AliTPCcalibResidualPID.cxx:1486
 AliTPCcalibResidualPID.cxx:1487
 AliTPCcalibResidualPID.cxx:1488
 AliTPCcalibResidualPID.cxx:1489
 AliTPCcalibResidualPID.cxx:1490
 AliTPCcalibResidualPID.cxx:1491
 AliTPCcalibResidualPID.cxx:1492
 AliTPCcalibResidualPID.cxx:1493
 AliTPCcalibResidualPID.cxx:1494
 AliTPCcalibResidualPID.cxx:1495
 AliTPCcalibResidualPID.cxx:1496
 AliTPCcalibResidualPID.cxx:1497
 AliTPCcalibResidualPID.cxx:1498
 AliTPCcalibResidualPID.cxx:1499
 AliTPCcalibResidualPID.cxx:1500
 AliTPCcalibResidualPID.cxx:1501
 AliTPCcalibResidualPID.cxx:1502
 AliTPCcalibResidualPID.cxx:1503
 AliTPCcalibResidualPID.cxx:1504
 AliTPCcalibResidualPID.cxx:1505
 AliTPCcalibResidualPID.cxx:1506
 AliTPCcalibResidualPID.cxx:1507
 AliTPCcalibResidualPID.cxx:1508
 AliTPCcalibResidualPID.cxx:1509
 AliTPCcalibResidualPID.cxx:1510
 AliTPCcalibResidualPID.cxx:1511
 AliTPCcalibResidualPID.cxx:1512
 AliTPCcalibResidualPID.cxx:1513
 AliTPCcalibResidualPID.cxx:1514
 AliTPCcalibResidualPID.cxx:1515
 AliTPCcalibResidualPID.cxx:1516
 AliTPCcalibResidualPID.cxx:1517
 AliTPCcalibResidualPID.cxx:1518
 AliTPCcalibResidualPID.cxx:1519
 AliTPCcalibResidualPID.cxx:1520
 AliTPCcalibResidualPID.cxx:1521
 AliTPCcalibResidualPID.cxx:1522
 AliTPCcalibResidualPID.cxx:1523
 AliTPCcalibResidualPID.cxx:1524
 AliTPCcalibResidualPID.cxx:1525
 AliTPCcalibResidualPID.cxx:1526
 AliTPCcalibResidualPID.cxx:1527
 AliTPCcalibResidualPID.cxx:1528
 AliTPCcalibResidualPID.cxx:1529
 AliTPCcalibResidualPID.cxx:1530
 AliTPCcalibResidualPID.cxx:1531
 AliTPCcalibResidualPID.cxx:1532
 AliTPCcalibResidualPID.cxx:1533
 AliTPCcalibResidualPID.cxx:1534
 AliTPCcalibResidualPID.cxx:1535
 AliTPCcalibResidualPID.cxx:1536
 AliTPCcalibResidualPID.cxx:1537
 AliTPCcalibResidualPID.cxx:1538
 AliTPCcalibResidualPID.cxx:1539
 AliTPCcalibResidualPID.cxx:1540
 AliTPCcalibResidualPID.cxx:1541
 AliTPCcalibResidualPID.cxx:1542
 AliTPCcalibResidualPID.cxx:1543
 AliTPCcalibResidualPID.cxx:1544
 AliTPCcalibResidualPID.cxx:1545
 AliTPCcalibResidualPID.cxx:1546
 AliTPCcalibResidualPID.cxx:1547
 AliTPCcalibResidualPID.cxx:1548
 AliTPCcalibResidualPID.cxx:1549
 AliTPCcalibResidualPID.cxx:1550
 AliTPCcalibResidualPID.cxx:1551
 AliTPCcalibResidualPID.cxx:1552
 AliTPCcalibResidualPID.cxx:1553
 AliTPCcalibResidualPID.cxx:1554
 AliTPCcalibResidualPID.cxx:1555
 AliTPCcalibResidualPID.cxx:1556
 AliTPCcalibResidualPID.cxx:1557
 AliTPCcalibResidualPID.cxx:1558
 AliTPCcalibResidualPID.cxx:1559
 AliTPCcalibResidualPID.cxx:1560
 AliTPCcalibResidualPID.cxx:1561
 AliTPCcalibResidualPID.cxx:1562
 AliTPCcalibResidualPID.cxx:1563
 AliTPCcalibResidualPID.cxx:1564
 AliTPCcalibResidualPID.cxx:1565
 AliTPCcalibResidualPID.cxx:1566
 AliTPCcalibResidualPID.cxx:1567
 AliTPCcalibResidualPID.cxx:1568
 AliTPCcalibResidualPID.cxx:1569
 AliTPCcalibResidualPID.cxx:1570
 AliTPCcalibResidualPID.cxx:1571
 AliTPCcalibResidualPID.cxx:1572
 AliTPCcalibResidualPID.cxx:1573
 AliTPCcalibResidualPID.cxx:1574
 AliTPCcalibResidualPID.cxx:1575
 AliTPCcalibResidualPID.cxx:1576
 AliTPCcalibResidualPID.cxx:1577
 AliTPCcalibResidualPID.cxx:1578
 AliTPCcalibResidualPID.cxx:1579
 AliTPCcalibResidualPID.cxx:1580
 AliTPCcalibResidualPID.cxx:1581
 AliTPCcalibResidualPID.cxx:1582
 AliTPCcalibResidualPID.cxx:1583
 AliTPCcalibResidualPID.cxx:1584
 AliTPCcalibResidualPID.cxx:1585
 AliTPCcalibResidualPID.cxx:1586
 AliTPCcalibResidualPID.cxx:1587
 AliTPCcalibResidualPID.cxx:1588
 AliTPCcalibResidualPID.cxx:1589
 AliTPCcalibResidualPID.cxx:1590
 AliTPCcalibResidualPID.cxx:1591
 AliTPCcalibResidualPID.cxx:1592
 AliTPCcalibResidualPID.cxx:1593
 AliTPCcalibResidualPID.cxx:1594
 AliTPCcalibResidualPID.cxx:1595
 AliTPCcalibResidualPID.cxx:1596
 AliTPCcalibResidualPID.cxx:1597
 AliTPCcalibResidualPID.cxx:1598
 AliTPCcalibResidualPID.cxx:1599
 AliTPCcalibResidualPID.cxx:1600
 AliTPCcalibResidualPID.cxx:1601
 AliTPCcalibResidualPID.cxx:1602
 AliTPCcalibResidualPID.cxx:1603
 AliTPCcalibResidualPID.cxx:1604
 AliTPCcalibResidualPID.cxx:1605
 AliTPCcalibResidualPID.cxx:1606
 AliTPCcalibResidualPID.cxx:1607
 AliTPCcalibResidualPID.cxx:1608
 AliTPCcalibResidualPID.cxx:1609
 AliTPCcalibResidualPID.cxx:1610
 AliTPCcalibResidualPID.cxx:1611
 AliTPCcalibResidualPID.cxx:1612
 AliTPCcalibResidualPID.cxx:1613
 AliTPCcalibResidualPID.cxx:1614
 AliTPCcalibResidualPID.cxx:1615
 AliTPCcalibResidualPID.cxx:1616
 AliTPCcalibResidualPID.cxx:1617
 AliTPCcalibResidualPID.cxx:1618
 AliTPCcalibResidualPID.cxx:1619
 AliTPCcalibResidualPID.cxx:1620
 AliTPCcalibResidualPID.cxx:1621
 AliTPCcalibResidualPID.cxx:1622
 AliTPCcalibResidualPID.cxx:1623
 AliTPCcalibResidualPID.cxx:1624
 AliTPCcalibResidualPID.cxx:1625
 AliTPCcalibResidualPID.cxx:1626
 AliTPCcalibResidualPID.cxx:1627
 AliTPCcalibResidualPID.cxx:1628
 AliTPCcalibResidualPID.cxx:1629
 AliTPCcalibResidualPID.cxx:1630
 AliTPCcalibResidualPID.cxx:1631
 AliTPCcalibResidualPID.cxx:1632
 AliTPCcalibResidualPID.cxx:1633
 AliTPCcalibResidualPID.cxx:1634
 AliTPCcalibResidualPID.cxx:1635
 AliTPCcalibResidualPID.cxx:1636
 AliTPCcalibResidualPID.cxx:1637
 AliTPCcalibResidualPID.cxx:1638
 AliTPCcalibResidualPID.cxx:1639
 AliTPCcalibResidualPID.cxx:1640
 AliTPCcalibResidualPID.cxx:1641
 AliTPCcalibResidualPID.cxx:1642
 AliTPCcalibResidualPID.cxx:1643
 AliTPCcalibResidualPID.cxx:1644
 AliTPCcalibResidualPID.cxx:1645
 AliTPCcalibResidualPID.cxx:1646
 AliTPCcalibResidualPID.cxx:1647
 AliTPCcalibResidualPID.cxx:1648
 AliTPCcalibResidualPID.cxx:1649
 AliTPCcalibResidualPID.cxx:1650
 AliTPCcalibResidualPID.cxx:1651
 AliTPCcalibResidualPID.cxx:1652
 AliTPCcalibResidualPID.cxx:1653
 AliTPCcalibResidualPID.cxx:1654
 AliTPCcalibResidualPID.cxx:1655
 AliTPCcalibResidualPID.cxx:1656
 AliTPCcalibResidualPID.cxx:1657
 AliTPCcalibResidualPID.cxx:1658
 AliTPCcalibResidualPID.cxx:1659
 AliTPCcalibResidualPID.cxx:1660
 AliTPCcalibResidualPID.cxx:1661
 AliTPCcalibResidualPID.cxx:1662
 AliTPCcalibResidualPID.cxx:1663
 AliTPCcalibResidualPID.cxx:1664
 AliTPCcalibResidualPID.cxx:1665
 AliTPCcalibResidualPID.cxx:1666
 AliTPCcalibResidualPID.cxx:1667
 AliTPCcalibResidualPID.cxx:1668
 AliTPCcalibResidualPID.cxx:1669
 AliTPCcalibResidualPID.cxx:1670
 AliTPCcalibResidualPID.cxx:1671
 AliTPCcalibResidualPID.cxx:1672
 AliTPCcalibResidualPID.cxx:1673
 AliTPCcalibResidualPID.cxx:1674
 AliTPCcalibResidualPID.cxx:1675
 AliTPCcalibResidualPID.cxx:1676
 AliTPCcalibResidualPID.cxx:1677
 AliTPCcalibResidualPID.cxx:1678
 AliTPCcalibResidualPID.cxx:1679
 AliTPCcalibResidualPID.cxx:1680
 AliTPCcalibResidualPID.cxx:1681
 AliTPCcalibResidualPID.cxx:1682
 AliTPCcalibResidualPID.cxx:1683
 AliTPCcalibResidualPID.cxx:1684
 AliTPCcalibResidualPID.cxx:1685
 AliTPCcalibResidualPID.cxx:1686
 AliTPCcalibResidualPID.cxx:1687
 AliTPCcalibResidualPID.cxx:1688
 AliTPCcalibResidualPID.cxx:1689
 AliTPCcalibResidualPID.cxx:1690
 AliTPCcalibResidualPID.cxx:1691
 AliTPCcalibResidualPID.cxx:1692
 AliTPCcalibResidualPID.cxx:1693
 AliTPCcalibResidualPID.cxx:1694
 AliTPCcalibResidualPID.cxx:1695
 AliTPCcalibResidualPID.cxx:1696
 AliTPCcalibResidualPID.cxx:1697
 AliTPCcalibResidualPID.cxx:1698
 AliTPCcalibResidualPID.cxx:1699
 AliTPCcalibResidualPID.cxx:1700
 AliTPCcalibResidualPID.cxx:1701
 AliTPCcalibResidualPID.cxx:1702
 AliTPCcalibResidualPID.cxx:1703
 AliTPCcalibResidualPID.cxx:1704
 AliTPCcalibResidualPID.cxx:1705
 AliTPCcalibResidualPID.cxx:1706
 AliTPCcalibResidualPID.cxx:1707
 AliTPCcalibResidualPID.cxx:1708
 AliTPCcalibResidualPID.cxx:1709
 AliTPCcalibResidualPID.cxx:1710
 AliTPCcalibResidualPID.cxx:1711
 AliTPCcalibResidualPID.cxx:1712
 AliTPCcalibResidualPID.cxx:1713
 AliTPCcalibResidualPID.cxx:1714
 AliTPCcalibResidualPID.cxx:1715
 AliTPCcalibResidualPID.cxx:1716
 AliTPCcalibResidualPID.cxx:1717
 AliTPCcalibResidualPID.cxx:1718
 AliTPCcalibResidualPID.cxx:1719
 AliTPCcalibResidualPID.cxx:1720
 AliTPCcalibResidualPID.cxx:1721
 AliTPCcalibResidualPID.cxx:1722
 AliTPCcalibResidualPID.cxx:1723
 AliTPCcalibResidualPID.cxx:1724
 AliTPCcalibResidualPID.cxx:1725
 AliTPCcalibResidualPID.cxx:1726
 AliTPCcalibResidualPID.cxx:1727
 AliTPCcalibResidualPID.cxx:1728
 AliTPCcalibResidualPID.cxx:1729
 AliTPCcalibResidualPID.cxx:1730
 AliTPCcalibResidualPID.cxx:1731
 AliTPCcalibResidualPID.cxx:1732
 AliTPCcalibResidualPID.cxx:1733
 AliTPCcalibResidualPID.cxx:1734
 AliTPCcalibResidualPID.cxx:1735
 AliTPCcalibResidualPID.cxx:1736
 AliTPCcalibResidualPID.cxx:1737
 AliTPCcalibResidualPID.cxx:1738
 AliTPCcalibResidualPID.cxx:1739
 AliTPCcalibResidualPID.cxx:1740
 AliTPCcalibResidualPID.cxx:1741
 AliTPCcalibResidualPID.cxx:1742
 AliTPCcalibResidualPID.cxx:1743
 AliTPCcalibResidualPID.cxx:1744
 AliTPCcalibResidualPID.cxx:1745
 AliTPCcalibResidualPID.cxx:1746
 AliTPCcalibResidualPID.cxx:1747
 AliTPCcalibResidualPID.cxx:1748
 AliTPCcalibResidualPID.cxx:1749
 AliTPCcalibResidualPID.cxx:1750
 AliTPCcalibResidualPID.cxx:1751
 AliTPCcalibResidualPID.cxx:1752
 AliTPCcalibResidualPID.cxx:1753
 AliTPCcalibResidualPID.cxx:1754
 AliTPCcalibResidualPID.cxx:1755
 AliTPCcalibResidualPID.cxx:1756
 AliTPCcalibResidualPID.cxx:1757
 AliTPCcalibResidualPID.cxx:1758
 AliTPCcalibResidualPID.cxx:1759
 AliTPCcalibResidualPID.cxx:1760
 AliTPCcalibResidualPID.cxx:1761
 AliTPCcalibResidualPID.cxx:1762
 AliTPCcalibResidualPID.cxx:1763
 AliTPCcalibResidualPID.cxx:1764
 AliTPCcalibResidualPID.cxx:1765
 AliTPCcalibResidualPID.cxx:1766
 AliTPCcalibResidualPID.cxx:1767
 AliTPCcalibResidualPID.cxx:1768
 AliTPCcalibResidualPID.cxx:1769
 AliTPCcalibResidualPID.cxx:1770
 AliTPCcalibResidualPID.cxx:1771
 AliTPCcalibResidualPID.cxx:1772
 AliTPCcalibResidualPID.cxx:1773
 AliTPCcalibResidualPID.cxx:1774
 AliTPCcalibResidualPID.cxx:1775
 AliTPCcalibResidualPID.cxx:1776
 AliTPCcalibResidualPID.cxx:1777
 AliTPCcalibResidualPID.cxx:1778
 AliTPCcalibResidualPID.cxx:1779
 AliTPCcalibResidualPID.cxx:1780
 AliTPCcalibResidualPID.cxx:1781
 AliTPCcalibResidualPID.cxx:1782
 AliTPCcalibResidualPID.cxx:1783
 AliTPCcalibResidualPID.cxx:1784
 AliTPCcalibResidualPID.cxx:1785
 AliTPCcalibResidualPID.cxx:1786
 AliTPCcalibResidualPID.cxx:1787
 AliTPCcalibResidualPID.cxx:1788
 AliTPCcalibResidualPID.cxx:1789
 AliTPCcalibResidualPID.cxx:1790
 AliTPCcalibResidualPID.cxx:1791
 AliTPCcalibResidualPID.cxx:1792
 AliTPCcalibResidualPID.cxx:1793
 AliTPCcalibResidualPID.cxx:1794
 AliTPCcalibResidualPID.cxx:1795
 AliTPCcalibResidualPID.cxx:1796
 AliTPCcalibResidualPID.cxx:1797
 AliTPCcalibResidualPID.cxx:1798
 AliTPCcalibResidualPID.cxx:1799
 AliTPCcalibResidualPID.cxx:1800
 AliTPCcalibResidualPID.cxx:1801
 AliTPCcalibResidualPID.cxx:1802
 AliTPCcalibResidualPID.cxx:1803
 AliTPCcalibResidualPID.cxx:1804
 AliTPCcalibResidualPID.cxx:1805
 AliTPCcalibResidualPID.cxx:1806
 AliTPCcalibResidualPID.cxx:1807
 AliTPCcalibResidualPID.cxx:1808
 AliTPCcalibResidualPID.cxx:1809
 AliTPCcalibResidualPID.cxx:1810
 AliTPCcalibResidualPID.cxx:1811
 AliTPCcalibResidualPID.cxx:1812
 AliTPCcalibResidualPID.cxx:1813
 AliTPCcalibResidualPID.cxx:1814
 AliTPCcalibResidualPID.cxx:1815
 AliTPCcalibResidualPID.cxx:1816
 AliTPCcalibResidualPID.cxx:1817
 AliTPCcalibResidualPID.cxx:1818
 AliTPCcalibResidualPID.cxx:1819
 AliTPCcalibResidualPID.cxx:1820
 AliTPCcalibResidualPID.cxx:1821
 AliTPCcalibResidualPID.cxx:1822
 AliTPCcalibResidualPID.cxx:1823
 AliTPCcalibResidualPID.cxx:1824
 AliTPCcalibResidualPID.cxx:1825
 AliTPCcalibResidualPID.cxx:1826
 AliTPCcalibResidualPID.cxx:1827
 AliTPCcalibResidualPID.cxx:1828
 AliTPCcalibResidualPID.cxx:1829
 AliTPCcalibResidualPID.cxx:1830
 AliTPCcalibResidualPID.cxx:1831
 AliTPCcalibResidualPID.cxx:1832
 AliTPCcalibResidualPID.cxx:1833
 AliTPCcalibResidualPID.cxx:1834
 AliTPCcalibResidualPID.cxx:1835
 AliTPCcalibResidualPID.cxx:1836
 AliTPCcalibResidualPID.cxx:1837
 AliTPCcalibResidualPID.cxx:1838
 AliTPCcalibResidualPID.cxx:1839
 AliTPCcalibResidualPID.cxx:1840
 AliTPCcalibResidualPID.cxx:1841
 AliTPCcalibResidualPID.cxx:1842
 AliTPCcalibResidualPID.cxx:1843
 AliTPCcalibResidualPID.cxx:1844
 AliTPCcalibResidualPID.cxx:1845
 AliTPCcalibResidualPID.cxx:1846
 AliTPCcalibResidualPID.cxx:1847
 AliTPCcalibResidualPID.cxx:1848
 AliTPCcalibResidualPID.cxx:1849
 AliTPCcalibResidualPID.cxx:1850
 AliTPCcalibResidualPID.cxx:1851
 AliTPCcalibResidualPID.cxx:1852
 AliTPCcalibResidualPID.cxx:1853
 AliTPCcalibResidualPID.cxx:1854
 AliTPCcalibResidualPID.cxx:1855
 AliTPCcalibResidualPID.cxx:1856
 AliTPCcalibResidualPID.cxx:1857
 AliTPCcalibResidualPID.cxx:1858
 AliTPCcalibResidualPID.cxx:1859
 AliTPCcalibResidualPID.cxx:1860
 AliTPCcalibResidualPID.cxx:1861
 AliTPCcalibResidualPID.cxx:1862
 AliTPCcalibResidualPID.cxx:1863
 AliTPCcalibResidualPID.cxx:1864
 AliTPCcalibResidualPID.cxx:1865
 AliTPCcalibResidualPID.cxx:1866
 AliTPCcalibResidualPID.cxx:1867
 AliTPCcalibResidualPID.cxx:1868
 AliTPCcalibResidualPID.cxx:1869
 AliTPCcalibResidualPID.cxx:1870
 AliTPCcalibResidualPID.cxx:1871
 AliTPCcalibResidualPID.cxx:1872
 AliTPCcalibResidualPID.cxx:1873
 AliTPCcalibResidualPID.cxx:1874
 AliTPCcalibResidualPID.cxx:1875
 AliTPCcalibResidualPID.cxx:1876
 AliTPCcalibResidualPID.cxx:1877
 AliTPCcalibResidualPID.cxx:1878
 AliTPCcalibResidualPID.cxx:1879
 AliTPCcalibResidualPID.cxx:1880
 AliTPCcalibResidualPID.cxx:1881
 AliTPCcalibResidualPID.cxx:1882
 AliTPCcalibResidualPID.cxx:1883
 AliTPCcalibResidualPID.cxx:1884
 AliTPCcalibResidualPID.cxx:1885
 AliTPCcalibResidualPID.cxx:1886
 AliTPCcalibResidualPID.cxx:1887
 AliTPCcalibResidualPID.cxx:1888
 AliTPCcalibResidualPID.cxx:1889
 AliTPCcalibResidualPID.cxx:1890
 AliTPCcalibResidualPID.cxx:1891
 AliTPCcalibResidualPID.cxx:1892
 AliTPCcalibResidualPID.cxx:1893
 AliTPCcalibResidualPID.cxx:1894
 AliTPCcalibResidualPID.cxx:1895
 AliTPCcalibResidualPID.cxx:1896
 AliTPCcalibResidualPID.cxx:1897
 AliTPCcalibResidualPID.cxx:1898
 AliTPCcalibResidualPID.cxx:1899
 AliTPCcalibResidualPID.cxx:1900
 AliTPCcalibResidualPID.cxx:1901
 AliTPCcalibResidualPID.cxx:1902
 AliTPCcalibResidualPID.cxx:1903
 AliTPCcalibResidualPID.cxx:1904
 AliTPCcalibResidualPID.cxx:1905
 AliTPCcalibResidualPID.cxx:1906
 AliTPCcalibResidualPID.cxx:1907
 AliTPCcalibResidualPID.cxx:1908
 AliTPCcalibResidualPID.cxx:1909
 AliTPCcalibResidualPID.cxx:1910
 AliTPCcalibResidualPID.cxx:1911
 AliTPCcalibResidualPID.cxx:1912
 AliTPCcalibResidualPID.cxx:1913
 AliTPCcalibResidualPID.cxx:1914
 AliTPCcalibResidualPID.cxx:1915
 AliTPCcalibResidualPID.cxx:1916
 AliTPCcalibResidualPID.cxx:1917
 AliTPCcalibResidualPID.cxx:1918
 AliTPCcalibResidualPID.cxx:1919
 AliTPCcalibResidualPID.cxx:1920
 AliTPCcalibResidualPID.cxx:1921
 AliTPCcalibResidualPID.cxx:1922
 AliTPCcalibResidualPID.cxx:1923
 AliTPCcalibResidualPID.cxx:1924
 AliTPCcalibResidualPID.cxx:1925
 AliTPCcalibResidualPID.cxx:1926
 AliTPCcalibResidualPID.cxx:1927
 AliTPCcalibResidualPID.cxx:1928
 AliTPCcalibResidualPID.cxx:1929
 AliTPCcalibResidualPID.cxx:1930
 AliTPCcalibResidualPID.cxx:1931
 AliTPCcalibResidualPID.cxx:1932
 AliTPCcalibResidualPID.cxx:1933
 AliTPCcalibResidualPID.cxx:1934
 AliTPCcalibResidualPID.cxx:1935
 AliTPCcalibResidualPID.cxx:1936
 AliTPCcalibResidualPID.cxx:1937
 AliTPCcalibResidualPID.cxx:1938
 AliTPCcalibResidualPID.cxx:1939
 AliTPCcalibResidualPID.cxx:1940
 AliTPCcalibResidualPID.cxx:1941
 AliTPCcalibResidualPID.cxx:1942
 AliTPCcalibResidualPID.cxx:1943
 AliTPCcalibResidualPID.cxx:1944
 AliTPCcalibResidualPID.cxx:1945
 AliTPCcalibResidualPID.cxx:1946
 AliTPCcalibResidualPID.cxx:1947
 AliTPCcalibResidualPID.cxx:1948
 AliTPCcalibResidualPID.cxx:1949
 AliTPCcalibResidualPID.cxx:1950
 AliTPCcalibResidualPID.cxx:1951
 AliTPCcalibResidualPID.cxx:1952
 AliTPCcalibResidualPID.cxx:1953
 AliTPCcalibResidualPID.cxx:1954
 AliTPCcalibResidualPID.cxx:1955
 AliTPCcalibResidualPID.cxx:1956
 AliTPCcalibResidualPID.cxx:1957
 AliTPCcalibResidualPID.cxx:1958
 AliTPCcalibResidualPID.cxx:1959
 AliTPCcalibResidualPID.cxx:1960
 AliTPCcalibResidualPID.cxx:1961
 AliTPCcalibResidualPID.cxx:1962
 AliTPCcalibResidualPID.cxx:1963
 AliTPCcalibResidualPID.cxx:1964
 AliTPCcalibResidualPID.cxx:1965
 AliTPCcalibResidualPID.cxx:1966
 AliTPCcalibResidualPID.cxx:1967
 AliTPCcalibResidualPID.cxx:1968
 AliTPCcalibResidualPID.cxx:1969
 AliTPCcalibResidualPID.cxx:1970
 AliTPCcalibResidualPID.cxx:1971
 AliTPCcalibResidualPID.cxx:1972
 AliTPCcalibResidualPID.cxx:1973
 AliTPCcalibResidualPID.cxx:1974
 AliTPCcalibResidualPID.cxx:1975
 AliTPCcalibResidualPID.cxx:1976
 AliTPCcalibResidualPID.cxx:1977
 AliTPCcalibResidualPID.cxx:1978
 AliTPCcalibResidualPID.cxx:1979
 AliTPCcalibResidualPID.cxx:1980
 AliTPCcalibResidualPID.cxx:1981
 AliTPCcalibResidualPID.cxx:1982
 AliTPCcalibResidualPID.cxx:1983
 AliTPCcalibResidualPID.cxx:1984
 AliTPCcalibResidualPID.cxx:1985
 AliTPCcalibResidualPID.cxx:1986
 AliTPCcalibResidualPID.cxx:1987
 AliTPCcalibResidualPID.cxx:1988
 AliTPCcalibResidualPID.cxx:1989
 AliTPCcalibResidualPID.cxx:1990
 AliTPCcalibResidualPID.cxx:1991
 AliTPCcalibResidualPID.cxx:1992
 AliTPCcalibResidualPID.cxx:1993
 AliTPCcalibResidualPID.cxx:1994
 AliTPCcalibResidualPID.cxx:1995
 AliTPCcalibResidualPID.cxx:1996
 AliTPCcalibResidualPID.cxx:1997
 AliTPCcalibResidualPID.cxx:1998
 AliTPCcalibResidualPID.cxx:1999
 AliTPCcalibResidualPID.cxx:2000
 AliTPCcalibResidualPID.cxx:2001
 AliTPCcalibResidualPID.cxx:2002
 AliTPCcalibResidualPID.cxx:2003
 AliTPCcalibResidualPID.cxx:2004
 AliTPCcalibResidualPID.cxx:2005
 AliTPCcalibResidualPID.cxx:2006
 AliTPCcalibResidualPID.cxx:2007
 AliTPCcalibResidualPID.cxx:2008
 AliTPCcalibResidualPID.cxx:2009
 AliTPCcalibResidualPID.cxx:2010
 AliTPCcalibResidualPID.cxx:2011
 AliTPCcalibResidualPID.cxx:2012
 AliTPCcalibResidualPID.cxx:2013
 AliTPCcalibResidualPID.cxx:2014
 AliTPCcalibResidualPID.cxx:2015
 AliTPCcalibResidualPID.cxx:2016
 AliTPCcalibResidualPID.cxx:2017
 AliTPCcalibResidualPID.cxx:2018
 AliTPCcalibResidualPID.cxx:2019
 AliTPCcalibResidualPID.cxx:2020
 AliTPCcalibResidualPID.cxx:2021
 AliTPCcalibResidualPID.cxx:2022
 AliTPCcalibResidualPID.cxx:2023
 AliTPCcalibResidualPID.cxx:2024
 AliTPCcalibResidualPID.cxx:2025
 AliTPCcalibResidualPID.cxx:2026
 AliTPCcalibResidualPID.cxx:2027
 AliTPCcalibResidualPID.cxx:2028
 AliTPCcalibResidualPID.cxx:2029
 AliTPCcalibResidualPID.cxx:2030
 AliTPCcalibResidualPID.cxx:2031
 AliTPCcalibResidualPID.cxx:2032
 AliTPCcalibResidualPID.cxx:2033
 AliTPCcalibResidualPID.cxx:2034
 AliTPCcalibResidualPID.cxx:2035
 AliTPCcalibResidualPID.cxx:2036
 AliTPCcalibResidualPID.cxx:2037
 AliTPCcalibResidualPID.cxx:2038
 AliTPCcalibResidualPID.cxx:2039
 AliTPCcalibResidualPID.cxx:2040
 AliTPCcalibResidualPID.cxx:2041
 AliTPCcalibResidualPID.cxx:2042
 AliTPCcalibResidualPID.cxx:2043
 AliTPCcalibResidualPID.cxx:2044
 AliTPCcalibResidualPID.cxx:2045
 AliTPCcalibResidualPID.cxx:2046
 AliTPCcalibResidualPID.cxx:2047
 AliTPCcalibResidualPID.cxx:2048
 AliTPCcalibResidualPID.cxx:2049
 AliTPCcalibResidualPID.cxx:2050
 AliTPCcalibResidualPID.cxx:2051
 AliTPCcalibResidualPID.cxx:2052
 AliTPCcalibResidualPID.cxx:2053
 AliTPCcalibResidualPID.cxx:2054
 AliTPCcalibResidualPID.cxx:2055
 AliTPCcalibResidualPID.cxx:2056
 AliTPCcalibResidualPID.cxx:2057
 AliTPCcalibResidualPID.cxx:2058
 AliTPCcalibResidualPID.cxx:2059
 AliTPCcalibResidualPID.cxx:2060
 AliTPCcalibResidualPID.cxx:2061
 AliTPCcalibResidualPID.cxx:2062
 AliTPCcalibResidualPID.cxx:2063
 AliTPCcalibResidualPID.cxx:2064
 AliTPCcalibResidualPID.cxx:2065
 AliTPCcalibResidualPID.cxx:2066
 AliTPCcalibResidualPID.cxx:2067
 AliTPCcalibResidualPID.cxx:2068
 AliTPCcalibResidualPID.cxx:2069
 AliTPCcalibResidualPID.cxx:2070
 AliTPCcalibResidualPID.cxx:2071
 AliTPCcalibResidualPID.cxx:2072
 AliTPCcalibResidualPID.cxx:2073
 AliTPCcalibResidualPID.cxx:2074
 AliTPCcalibResidualPID.cxx:2075
 AliTPCcalibResidualPID.cxx:2076
 AliTPCcalibResidualPID.cxx:2077
 AliTPCcalibResidualPID.cxx:2078
 AliTPCcalibResidualPID.cxx:2079
 AliTPCcalibResidualPID.cxx:2080
 AliTPCcalibResidualPID.cxx:2081
 AliTPCcalibResidualPID.cxx:2082
 AliTPCcalibResidualPID.cxx:2083
 AliTPCcalibResidualPID.cxx:2084
 AliTPCcalibResidualPID.cxx:2085
 AliTPCcalibResidualPID.cxx:2086
 AliTPCcalibResidualPID.cxx:2087
 AliTPCcalibResidualPID.cxx:2088
 AliTPCcalibResidualPID.cxx:2089
 AliTPCcalibResidualPID.cxx:2090
 AliTPCcalibResidualPID.cxx:2091
 AliTPCcalibResidualPID.cxx:2092
 AliTPCcalibResidualPID.cxx:2093
 AliTPCcalibResidualPID.cxx:2094
 AliTPCcalibResidualPID.cxx:2095
 AliTPCcalibResidualPID.cxx:2096
 AliTPCcalibResidualPID.cxx:2097
 AliTPCcalibResidualPID.cxx:2098
 AliTPCcalibResidualPID.cxx:2099
 AliTPCcalibResidualPID.cxx:2100
 AliTPCcalibResidualPID.cxx:2101
 AliTPCcalibResidualPID.cxx:2102
 AliTPCcalibResidualPID.cxx:2103
 AliTPCcalibResidualPID.cxx:2104
 AliTPCcalibResidualPID.cxx:2105
 AliTPCcalibResidualPID.cxx:2106
 AliTPCcalibResidualPID.cxx:2107
 AliTPCcalibResidualPID.cxx:2108
 AliTPCcalibResidualPID.cxx:2109
 AliTPCcalibResidualPID.cxx:2110
 AliTPCcalibResidualPID.cxx:2111
 AliTPCcalibResidualPID.cxx:2112
 AliTPCcalibResidualPID.cxx:2113
 AliTPCcalibResidualPID.cxx:2114
 AliTPCcalibResidualPID.cxx:2115
 AliTPCcalibResidualPID.cxx:2116
 AliTPCcalibResidualPID.cxx:2117
 AliTPCcalibResidualPID.cxx:2118
 AliTPCcalibResidualPID.cxx:2119
 AliTPCcalibResidualPID.cxx:2120
 AliTPCcalibResidualPID.cxx:2121
 AliTPCcalibResidualPID.cxx:2122
 AliTPCcalibResidualPID.cxx:2123
 AliTPCcalibResidualPID.cxx:2124
 AliTPCcalibResidualPID.cxx:2125
 AliTPCcalibResidualPID.cxx:2126
 AliTPCcalibResidualPID.cxx:2127
 AliTPCcalibResidualPID.cxx:2128
 AliTPCcalibResidualPID.cxx:2129
 AliTPCcalibResidualPID.cxx:2130
 AliTPCcalibResidualPID.cxx:2131
 AliTPCcalibResidualPID.cxx:2132
 AliTPCcalibResidualPID.cxx:2133
 AliTPCcalibResidualPID.cxx:2134
 AliTPCcalibResidualPID.cxx:2135
 AliTPCcalibResidualPID.cxx:2136
 AliTPCcalibResidualPID.cxx:2137
 AliTPCcalibResidualPID.cxx:2138
 AliTPCcalibResidualPID.cxx:2139
 AliTPCcalibResidualPID.cxx:2140
 AliTPCcalibResidualPID.cxx:2141
 AliTPCcalibResidualPID.cxx:2142
 AliTPCcalibResidualPID.cxx:2143
 AliTPCcalibResidualPID.cxx:2144
 AliTPCcalibResidualPID.cxx:2145
 AliTPCcalibResidualPID.cxx:2146
 AliTPCcalibResidualPID.cxx:2147
 AliTPCcalibResidualPID.cxx:2148
 AliTPCcalibResidualPID.cxx:2149
 AliTPCcalibResidualPID.cxx:2150
 AliTPCcalibResidualPID.cxx:2151
 AliTPCcalibResidualPID.cxx:2152
 AliTPCcalibResidualPID.cxx:2153
 AliTPCcalibResidualPID.cxx:2154
 AliTPCcalibResidualPID.cxx:2155
 AliTPCcalibResidualPID.cxx:2156
 AliTPCcalibResidualPID.cxx:2157
 AliTPCcalibResidualPID.cxx:2158
 AliTPCcalibResidualPID.cxx:2159
 AliTPCcalibResidualPID.cxx:2160
 AliTPCcalibResidualPID.cxx:2161
 AliTPCcalibResidualPID.cxx:2162
 AliTPCcalibResidualPID.cxx:2163
 AliTPCcalibResidualPID.cxx:2164
 AliTPCcalibResidualPID.cxx:2165
 AliTPCcalibResidualPID.cxx:2166
 AliTPCcalibResidualPID.cxx:2167
 AliTPCcalibResidualPID.cxx:2168
 AliTPCcalibResidualPID.cxx:2169
 AliTPCcalibResidualPID.cxx:2170
 AliTPCcalibResidualPID.cxx:2171
 AliTPCcalibResidualPID.cxx:2172
 AliTPCcalibResidualPID.cxx:2173
 AliTPCcalibResidualPID.cxx:2174
 AliTPCcalibResidualPID.cxx:2175
 AliTPCcalibResidualPID.cxx:2176
 AliTPCcalibResidualPID.cxx:2177
 AliTPCcalibResidualPID.cxx:2178
 AliTPCcalibResidualPID.cxx:2179
 AliTPCcalibResidualPID.cxx:2180
 AliTPCcalibResidualPID.cxx:2181
 AliTPCcalibResidualPID.cxx:2182
 AliTPCcalibResidualPID.cxx:2183
 AliTPCcalibResidualPID.cxx:2184
 AliTPCcalibResidualPID.cxx:2185
 AliTPCcalibResidualPID.cxx:2186
 AliTPCcalibResidualPID.cxx:2187
 AliTPCcalibResidualPID.cxx:2188
 AliTPCcalibResidualPID.cxx:2189
 AliTPCcalibResidualPID.cxx:2190
 AliTPCcalibResidualPID.cxx:2191
 AliTPCcalibResidualPID.cxx:2192
 AliTPCcalibResidualPID.cxx:2193
 AliTPCcalibResidualPID.cxx:2194
 AliTPCcalibResidualPID.cxx:2195
 AliTPCcalibResidualPID.cxx:2196
 AliTPCcalibResidualPID.cxx:2197
 AliTPCcalibResidualPID.cxx:2198
 AliTPCcalibResidualPID.cxx:2199
 AliTPCcalibResidualPID.cxx:2200
 AliTPCcalibResidualPID.cxx:2201
 AliTPCcalibResidualPID.cxx:2202
 AliTPCcalibResidualPID.cxx:2203
 AliTPCcalibResidualPID.cxx:2204
 AliTPCcalibResidualPID.cxx:2205
 AliTPCcalibResidualPID.cxx:2206
 AliTPCcalibResidualPID.cxx:2207
 AliTPCcalibResidualPID.cxx:2208
 AliTPCcalibResidualPID.cxx:2209
 AliTPCcalibResidualPID.cxx:2210
 AliTPCcalibResidualPID.cxx:2211
 AliTPCcalibResidualPID.cxx:2212
 AliTPCcalibResidualPID.cxx:2213
 AliTPCcalibResidualPID.cxx:2214
 AliTPCcalibResidualPID.cxx:2215
 AliTPCcalibResidualPID.cxx:2216
 AliTPCcalibResidualPID.cxx:2217
 AliTPCcalibResidualPID.cxx:2218
 AliTPCcalibResidualPID.cxx:2219
 AliTPCcalibResidualPID.cxx:2220
 AliTPCcalibResidualPID.cxx:2221
 AliTPCcalibResidualPID.cxx:2222
 AliTPCcalibResidualPID.cxx:2223
 AliTPCcalibResidualPID.cxx:2224
 AliTPCcalibResidualPID.cxx:2225
 AliTPCcalibResidualPID.cxx:2226
 AliTPCcalibResidualPID.cxx:2227
 AliTPCcalibResidualPID.cxx:2228
 AliTPCcalibResidualPID.cxx:2229
 AliTPCcalibResidualPID.cxx:2230
 AliTPCcalibResidualPID.cxx:2231
 AliTPCcalibResidualPID.cxx:2232
 AliTPCcalibResidualPID.cxx:2233
 AliTPCcalibResidualPID.cxx:2234
 AliTPCcalibResidualPID.cxx:2235
 AliTPCcalibResidualPID.cxx:2236
 AliTPCcalibResidualPID.cxx:2237
 AliTPCcalibResidualPID.cxx:2238
 AliTPCcalibResidualPID.cxx:2239
 AliTPCcalibResidualPID.cxx:2240
 AliTPCcalibResidualPID.cxx:2241
 AliTPCcalibResidualPID.cxx:2242
 AliTPCcalibResidualPID.cxx:2243
 AliTPCcalibResidualPID.cxx:2244
 AliTPCcalibResidualPID.cxx:2245
 AliTPCcalibResidualPID.cxx:2246
 AliTPCcalibResidualPID.cxx:2247
 AliTPCcalibResidualPID.cxx:2248
 AliTPCcalibResidualPID.cxx:2249
 AliTPCcalibResidualPID.cxx:2250
 AliTPCcalibResidualPID.cxx:2251
 AliTPCcalibResidualPID.cxx:2252
 AliTPCcalibResidualPID.cxx:2253
 AliTPCcalibResidualPID.cxx:2254
 AliTPCcalibResidualPID.cxx:2255
 AliTPCcalibResidualPID.cxx:2256
 AliTPCcalibResidualPID.cxx:2257
 AliTPCcalibResidualPID.cxx:2258
 AliTPCcalibResidualPID.cxx:2259
 AliTPCcalibResidualPID.cxx:2260
 AliTPCcalibResidualPID.cxx:2261
 AliTPCcalibResidualPID.cxx:2262
 AliTPCcalibResidualPID.cxx:2263
 AliTPCcalibResidualPID.cxx:2264
 AliTPCcalibResidualPID.cxx:2265
 AliTPCcalibResidualPID.cxx:2266
 AliTPCcalibResidualPID.cxx:2267
 AliTPCcalibResidualPID.cxx:2268
 AliTPCcalibResidualPID.cxx:2269
 AliTPCcalibResidualPID.cxx:2270
 AliTPCcalibResidualPID.cxx:2271
 AliTPCcalibResidualPID.cxx:2272
 AliTPCcalibResidualPID.cxx:2273
 AliTPCcalibResidualPID.cxx:2274
 AliTPCcalibResidualPID.cxx:2275
 AliTPCcalibResidualPID.cxx:2276
 AliTPCcalibResidualPID.cxx:2277
 AliTPCcalibResidualPID.cxx:2278
 AliTPCcalibResidualPID.cxx:2279
 AliTPCcalibResidualPID.cxx:2280
 AliTPCcalibResidualPID.cxx:2281
 AliTPCcalibResidualPID.cxx:2282
 AliTPCcalibResidualPID.cxx:2283
 AliTPCcalibResidualPID.cxx:2284
 AliTPCcalibResidualPID.cxx:2285
 AliTPCcalibResidualPID.cxx:2286
 AliTPCcalibResidualPID.cxx:2287
 AliTPCcalibResidualPID.cxx:2288
 AliTPCcalibResidualPID.cxx:2289
 AliTPCcalibResidualPID.cxx:2290
 AliTPCcalibResidualPID.cxx:2291
 AliTPCcalibResidualPID.cxx:2292
 AliTPCcalibResidualPID.cxx:2293
 AliTPCcalibResidualPID.cxx:2294
 AliTPCcalibResidualPID.cxx:2295
 AliTPCcalibResidualPID.cxx:2296
 AliTPCcalibResidualPID.cxx:2297
 AliTPCcalibResidualPID.cxx:2298
 AliTPCcalibResidualPID.cxx:2299
 AliTPCcalibResidualPID.cxx:2300
 AliTPCcalibResidualPID.cxx:2301
 AliTPCcalibResidualPID.cxx:2302
 AliTPCcalibResidualPID.cxx:2303
 AliTPCcalibResidualPID.cxx:2304
 AliTPCcalibResidualPID.cxx:2305
 AliTPCcalibResidualPID.cxx:2306
 AliTPCcalibResidualPID.cxx:2307
 AliTPCcalibResidualPID.cxx:2308
 AliTPCcalibResidualPID.cxx:2309
 AliTPCcalibResidualPID.cxx:2310
 AliTPCcalibResidualPID.cxx:2311
 AliTPCcalibResidualPID.cxx:2312
 AliTPCcalibResidualPID.cxx:2313
 AliTPCcalibResidualPID.cxx:2314
 AliTPCcalibResidualPID.cxx:2315
 AliTPCcalibResidualPID.cxx:2316
 AliTPCcalibResidualPID.cxx:2317
 AliTPCcalibResidualPID.cxx:2318
 AliTPCcalibResidualPID.cxx:2319
 AliTPCcalibResidualPID.cxx:2320
 AliTPCcalibResidualPID.cxx:2321
 AliTPCcalibResidualPID.cxx:2322
 AliTPCcalibResidualPID.cxx:2323
 AliTPCcalibResidualPID.cxx:2324
 AliTPCcalibResidualPID.cxx:2325
 AliTPCcalibResidualPID.cxx:2326
 AliTPCcalibResidualPID.cxx:2327
 AliTPCcalibResidualPID.cxx:2328
 AliTPCcalibResidualPID.cxx:2329
 AliTPCcalibResidualPID.cxx:2330
 AliTPCcalibResidualPID.cxx:2331
 AliTPCcalibResidualPID.cxx:2332
 AliTPCcalibResidualPID.cxx:2333
 AliTPCcalibResidualPID.cxx:2334
 AliTPCcalibResidualPID.cxx:2335
 AliTPCcalibResidualPID.cxx:2336
 AliTPCcalibResidualPID.cxx:2337
 AliTPCcalibResidualPID.cxx:2338
 AliTPCcalibResidualPID.cxx:2339
 AliTPCcalibResidualPID.cxx:2340
 AliTPCcalibResidualPID.cxx:2341
 AliTPCcalibResidualPID.cxx:2342
 AliTPCcalibResidualPID.cxx:2343
 AliTPCcalibResidualPID.cxx:2344
 AliTPCcalibResidualPID.cxx:2345
 AliTPCcalibResidualPID.cxx:2346
 AliTPCcalibResidualPID.cxx:2347
 AliTPCcalibResidualPID.cxx:2348
 AliTPCcalibResidualPID.cxx:2349
 AliTPCcalibResidualPID.cxx:2350
 AliTPCcalibResidualPID.cxx:2351
 AliTPCcalibResidualPID.cxx:2352
 AliTPCcalibResidualPID.cxx:2353
 AliTPCcalibResidualPID.cxx:2354
 AliTPCcalibResidualPID.cxx:2355
 AliTPCcalibResidualPID.cxx:2356
 AliTPCcalibResidualPID.cxx:2357
 AliTPCcalibResidualPID.cxx:2358
 AliTPCcalibResidualPID.cxx:2359
 AliTPCcalibResidualPID.cxx:2360
 AliTPCcalibResidualPID.cxx:2361
 AliTPCcalibResidualPID.cxx:2362
 AliTPCcalibResidualPID.cxx:2363
 AliTPCcalibResidualPID.cxx:2364
 AliTPCcalibResidualPID.cxx:2365
 AliTPCcalibResidualPID.cxx:2366
 AliTPCcalibResidualPID.cxx:2367
 AliTPCcalibResidualPID.cxx:2368
 AliTPCcalibResidualPID.cxx:2369
 AliTPCcalibResidualPID.cxx:2370
 AliTPCcalibResidualPID.cxx:2371
 AliTPCcalibResidualPID.cxx:2372
 AliTPCcalibResidualPID.cxx:2373
 AliTPCcalibResidualPID.cxx:2374
 AliTPCcalibResidualPID.cxx:2375
 AliTPCcalibResidualPID.cxx:2376
 AliTPCcalibResidualPID.cxx:2377
 AliTPCcalibResidualPID.cxx:2378
 AliTPCcalibResidualPID.cxx:2379
 AliTPCcalibResidualPID.cxx:2380
 AliTPCcalibResidualPID.cxx:2381
 AliTPCcalibResidualPID.cxx:2382
 AliTPCcalibResidualPID.cxx:2383
 AliTPCcalibResidualPID.cxx:2384
 AliTPCcalibResidualPID.cxx:2385
 AliTPCcalibResidualPID.cxx:2386
 AliTPCcalibResidualPID.cxx:2387
 AliTPCcalibResidualPID.cxx:2388
 AliTPCcalibResidualPID.cxx:2389
 AliTPCcalibResidualPID.cxx:2390
 AliTPCcalibResidualPID.cxx:2391
 AliTPCcalibResidualPID.cxx:2392
 AliTPCcalibResidualPID.cxx:2393
 AliTPCcalibResidualPID.cxx:2394
 AliTPCcalibResidualPID.cxx:2395
 AliTPCcalibResidualPID.cxx:2396
 AliTPCcalibResidualPID.cxx:2397
 AliTPCcalibResidualPID.cxx:2398
 AliTPCcalibResidualPID.cxx:2399
 AliTPCcalibResidualPID.cxx:2400
 AliTPCcalibResidualPID.cxx:2401
 AliTPCcalibResidualPID.cxx:2402
 AliTPCcalibResidualPID.cxx:2403
 AliTPCcalibResidualPID.cxx:2404
 AliTPCcalibResidualPID.cxx:2405
 AliTPCcalibResidualPID.cxx:2406
 AliTPCcalibResidualPID.cxx:2407
 AliTPCcalibResidualPID.cxx:2408
 AliTPCcalibResidualPID.cxx:2409
 AliTPCcalibResidualPID.cxx:2410
 AliTPCcalibResidualPID.cxx:2411
 AliTPCcalibResidualPID.cxx:2412
 AliTPCcalibResidualPID.cxx:2413
 AliTPCcalibResidualPID.cxx:2414
 AliTPCcalibResidualPID.cxx:2415
 AliTPCcalibResidualPID.cxx:2416
 AliTPCcalibResidualPID.cxx:2417
 AliTPCcalibResidualPID.cxx:2418
 AliTPCcalibResidualPID.cxx:2419
 AliTPCcalibResidualPID.cxx:2420
 AliTPCcalibResidualPID.cxx:2421
 AliTPCcalibResidualPID.cxx:2422
 AliTPCcalibResidualPID.cxx:2423
 AliTPCcalibResidualPID.cxx:2424
 AliTPCcalibResidualPID.cxx:2425
 AliTPCcalibResidualPID.cxx:2426
 AliTPCcalibResidualPID.cxx:2427
 AliTPCcalibResidualPID.cxx:2428
 AliTPCcalibResidualPID.cxx:2429
 AliTPCcalibResidualPID.cxx:2430
 AliTPCcalibResidualPID.cxx:2431
 AliTPCcalibResidualPID.cxx:2432
 AliTPCcalibResidualPID.cxx:2433
 AliTPCcalibResidualPID.cxx:2434
 AliTPCcalibResidualPID.cxx:2435
 AliTPCcalibResidualPID.cxx:2436
 AliTPCcalibResidualPID.cxx:2437
 AliTPCcalibResidualPID.cxx:2438
 AliTPCcalibResidualPID.cxx:2439
 AliTPCcalibResidualPID.cxx:2440
 AliTPCcalibResidualPID.cxx:2441
 AliTPCcalibResidualPID.cxx:2442
 AliTPCcalibResidualPID.cxx:2443
 AliTPCcalibResidualPID.cxx:2444
 AliTPCcalibResidualPID.cxx:2445
 AliTPCcalibResidualPID.cxx:2446
 AliTPCcalibResidualPID.cxx:2447
 AliTPCcalibResidualPID.cxx:2448
 AliTPCcalibResidualPID.cxx:2449
 AliTPCcalibResidualPID.cxx:2450
 AliTPCcalibResidualPID.cxx:2451
 AliTPCcalibResidualPID.cxx:2452
 AliTPCcalibResidualPID.cxx:2453
 AliTPCcalibResidualPID.cxx:2454
 AliTPCcalibResidualPID.cxx:2455
 AliTPCcalibResidualPID.cxx:2456
 AliTPCcalibResidualPID.cxx:2457
 AliTPCcalibResidualPID.cxx:2458
 AliTPCcalibResidualPID.cxx:2459
 AliTPCcalibResidualPID.cxx:2460
 AliTPCcalibResidualPID.cxx:2461
 AliTPCcalibResidualPID.cxx:2462
 AliTPCcalibResidualPID.cxx:2463
 AliTPCcalibResidualPID.cxx:2464
 AliTPCcalibResidualPID.cxx:2465
 AliTPCcalibResidualPID.cxx:2466
 AliTPCcalibResidualPID.cxx:2467
 AliTPCcalibResidualPID.cxx:2468
 AliTPCcalibResidualPID.cxx:2469
 AliTPCcalibResidualPID.cxx:2470
 AliTPCcalibResidualPID.cxx:2471
 AliTPCcalibResidualPID.cxx:2472
 AliTPCcalibResidualPID.cxx:2473
 AliTPCcalibResidualPID.cxx:2474
 AliTPCcalibResidualPID.cxx:2475
 AliTPCcalibResidualPID.cxx:2476
 AliTPCcalibResidualPID.cxx:2477
 AliTPCcalibResidualPID.cxx:2478
 AliTPCcalibResidualPID.cxx:2479
 AliTPCcalibResidualPID.cxx:2480
 AliTPCcalibResidualPID.cxx:2481
 AliTPCcalibResidualPID.cxx:2482
 AliTPCcalibResidualPID.cxx:2483
 AliTPCcalibResidualPID.cxx:2484
 AliTPCcalibResidualPID.cxx:2485
 AliTPCcalibResidualPID.cxx:2486
 AliTPCcalibResidualPID.cxx:2487
 AliTPCcalibResidualPID.cxx:2488
 AliTPCcalibResidualPID.cxx:2489
 AliTPCcalibResidualPID.cxx:2490
 AliTPCcalibResidualPID.cxx:2491
 AliTPCcalibResidualPID.cxx:2492
 AliTPCcalibResidualPID.cxx:2493
 AliTPCcalibResidualPID.cxx:2494
 AliTPCcalibResidualPID.cxx:2495
 AliTPCcalibResidualPID.cxx:2496
 AliTPCcalibResidualPID.cxx:2497
 AliTPCcalibResidualPID.cxx:2498
 AliTPCcalibResidualPID.cxx:2499
 AliTPCcalibResidualPID.cxx:2500
 AliTPCcalibResidualPID.cxx:2501
 AliTPCcalibResidualPID.cxx:2502
 AliTPCcalibResidualPID.cxx:2503
 AliTPCcalibResidualPID.cxx:2504
 AliTPCcalibResidualPID.cxx:2505
 AliTPCcalibResidualPID.cxx:2506
 AliTPCcalibResidualPID.cxx:2507
 AliTPCcalibResidualPID.cxx:2508
 AliTPCcalibResidualPID.cxx:2509
 AliTPCcalibResidualPID.cxx:2510
 AliTPCcalibResidualPID.cxx:2511
 AliTPCcalibResidualPID.cxx:2512
 AliTPCcalibResidualPID.cxx:2513
 AliTPCcalibResidualPID.cxx:2514
 AliTPCcalibResidualPID.cxx:2515
 AliTPCcalibResidualPID.cxx:2516
 AliTPCcalibResidualPID.cxx:2517
 AliTPCcalibResidualPID.cxx:2518
 AliTPCcalibResidualPID.cxx:2519
 AliTPCcalibResidualPID.cxx:2520
 AliTPCcalibResidualPID.cxx:2521
 AliTPCcalibResidualPID.cxx:2522
 AliTPCcalibResidualPID.cxx:2523
 AliTPCcalibResidualPID.cxx:2524
 AliTPCcalibResidualPID.cxx:2525
 AliTPCcalibResidualPID.cxx:2526
 AliTPCcalibResidualPID.cxx:2527
 AliTPCcalibResidualPID.cxx:2528
 AliTPCcalibResidualPID.cxx:2529
 AliTPCcalibResidualPID.cxx:2530
 AliTPCcalibResidualPID.cxx:2531
 AliTPCcalibResidualPID.cxx:2532
 AliTPCcalibResidualPID.cxx:2533
 AliTPCcalibResidualPID.cxx:2534
 AliTPCcalibResidualPID.cxx:2535
 AliTPCcalibResidualPID.cxx:2536
 AliTPCcalibResidualPID.cxx:2537
 AliTPCcalibResidualPID.cxx:2538
 AliTPCcalibResidualPID.cxx:2539
 AliTPCcalibResidualPID.cxx:2540
 AliTPCcalibResidualPID.cxx:2541
 AliTPCcalibResidualPID.cxx:2542
 AliTPCcalibResidualPID.cxx:2543
 AliTPCcalibResidualPID.cxx:2544
 AliTPCcalibResidualPID.cxx:2545
 AliTPCcalibResidualPID.cxx:2546
 AliTPCcalibResidualPID.cxx:2547
 AliTPCcalibResidualPID.cxx:2548
 AliTPCcalibResidualPID.cxx:2549
 AliTPCcalibResidualPID.cxx:2550
 AliTPCcalibResidualPID.cxx:2551
 AliTPCcalibResidualPID.cxx:2552
 AliTPCcalibResidualPID.cxx:2553
 AliTPCcalibResidualPID.cxx:2554
 AliTPCcalibResidualPID.cxx:2555
 AliTPCcalibResidualPID.cxx:2556
 AliTPCcalibResidualPID.cxx:2557
 AliTPCcalibResidualPID.cxx:2558
 AliTPCcalibResidualPID.cxx:2559
 AliTPCcalibResidualPID.cxx:2560
 AliTPCcalibResidualPID.cxx:2561
 AliTPCcalibResidualPID.cxx:2562
 AliTPCcalibResidualPID.cxx:2563
 AliTPCcalibResidualPID.cxx:2564
 AliTPCcalibResidualPID.cxx:2565
 AliTPCcalibResidualPID.cxx:2566
 AliTPCcalibResidualPID.cxx:2567
 AliTPCcalibResidualPID.cxx:2568
 AliTPCcalibResidualPID.cxx:2569
 AliTPCcalibResidualPID.cxx:2570
 AliTPCcalibResidualPID.cxx:2571
 AliTPCcalibResidualPID.cxx:2572
 AliTPCcalibResidualPID.cxx:2573
 AliTPCcalibResidualPID.cxx:2574
 AliTPCcalibResidualPID.cxx:2575
 AliTPCcalibResidualPID.cxx:2576
 AliTPCcalibResidualPID.cxx:2577
 AliTPCcalibResidualPID.cxx:2578
 AliTPCcalibResidualPID.cxx:2579
 AliTPCcalibResidualPID.cxx:2580
 AliTPCcalibResidualPID.cxx:2581
 AliTPCcalibResidualPID.cxx:2582
 AliTPCcalibResidualPID.cxx:2583
 AliTPCcalibResidualPID.cxx:2584
 AliTPCcalibResidualPID.cxx:2585
 AliTPCcalibResidualPID.cxx:2586
 AliTPCcalibResidualPID.cxx:2587
 AliTPCcalibResidualPID.cxx:2588
 AliTPCcalibResidualPID.cxx:2589
 AliTPCcalibResidualPID.cxx:2590
 AliTPCcalibResidualPID.cxx:2591
 AliTPCcalibResidualPID.cxx:2592
 AliTPCcalibResidualPID.cxx:2593
 AliTPCcalibResidualPID.cxx:2594
 AliTPCcalibResidualPID.cxx:2595
 AliTPCcalibResidualPID.cxx:2596
 AliTPCcalibResidualPID.cxx:2597
 AliTPCcalibResidualPID.cxx:2598
 AliTPCcalibResidualPID.cxx:2599
 AliTPCcalibResidualPID.cxx:2600
 AliTPCcalibResidualPID.cxx:2601
 AliTPCcalibResidualPID.cxx:2602
 AliTPCcalibResidualPID.cxx:2603
 AliTPCcalibResidualPID.cxx:2604
 AliTPCcalibResidualPID.cxx:2605
 AliTPCcalibResidualPID.cxx:2606
 AliTPCcalibResidualPID.cxx:2607
 AliTPCcalibResidualPID.cxx:2608
 AliTPCcalibResidualPID.cxx:2609
 AliTPCcalibResidualPID.cxx:2610
 AliTPCcalibResidualPID.cxx:2611
 AliTPCcalibResidualPID.cxx:2612
 AliTPCcalibResidualPID.cxx:2613
 AliTPCcalibResidualPID.cxx:2614
 AliTPCcalibResidualPID.cxx:2615
 AliTPCcalibResidualPID.cxx:2616
 AliTPCcalibResidualPID.cxx:2617
 AliTPCcalibResidualPID.cxx:2618
 AliTPCcalibResidualPID.cxx:2619
 AliTPCcalibResidualPID.cxx:2620
 AliTPCcalibResidualPID.cxx:2621
 AliTPCcalibResidualPID.cxx:2622
 AliTPCcalibResidualPID.cxx:2623
 AliTPCcalibResidualPID.cxx:2624
 AliTPCcalibResidualPID.cxx:2625
 AliTPCcalibResidualPID.cxx:2626
 AliTPCcalibResidualPID.cxx:2627
 AliTPCcalibResidualPID.cxx:2628
 AliTPCcalibResidualPID.cxx:2629
 AliTPCcalibResidualPID.cxx:2630
 AliTPCcalibResidualPID.cxx:2631
 AliTPCcalibResidualPID.cxx:2632
 AliTPCcalibResidualPID.cxx:2633
 AliTPCcalibResidualPID.cxx:2634
 AliTPCcalibResidualPID.cxx:2635
 AliTPCcalibResidualPID.cxx:2636
 AliTPCcalibResidualPID.cxx:2637
 AliTPCcalibResidualPID.cxx:2638
 AliTPCcalibResidualPID.cxx:2639
 AliTPCcalibResidualPID.cxx:2640
 AliTPCcalibResidualPID.cxx:2641
 AliTPCcalibResidualPID.cxx:2642
 AliTPCcalibResidualPID.cxx:2643
 AliTPCcalibResidualPID.cxx:2644
 AliTPCcalibResidualPID.cxx:2645
 AliTPCcalibResidualPID.cxx:2646
 AliTPCcalibResidualPID.cxx:2647
 AliTPCcalibResidualPID.cxx:2648
 AliTPCcalibResidualPID.cxx:2649
 AliTPCcalibResidualPID.cxx:2650
 AliTPCcalibResidualPID.cxx:2651
 AliTPCcalibResidualPID.cxx:2652
 AliTPCcalibResidualPID.cxx:2653
 AliTPCcalibResidualPID.cxx:2654
 AliTPCcalibResidualPID.cxx:2655
 AliTPCcalibResidualPID.cxx:2656
 AliTPCcalibResidualPID.cxx:2657
 AliTPCcalibResidualPID.cxx:2658
 AliTPCcalibResidualPID.cxx:2659
 AliTPCcalibResidualPID.cxx:2660
 AliTPCcalibResidualPID.cxx:2661
 AliTPCcalibResidualPID.cxx:2662
 AliTPCcalibResidualPID.cxx:2663
 AliTPCcalibResidualPID.cxx:2664
 AliTPCcalibResidualPID.cxx:2665
 AliTPCcalibResidualPID.cxx:2666
 AliTPCcalibResidualPID.cxx:2667
 AliTPCcalibResidualPID.cxx:2668
 AliTPCcalibResidualPID.cxx:2669
 AliTPCcalibResidualPID.cxx:2670
 AliTPCcalibResidualPID.cxx:2671
 AliTPCcalibResidualPID.cxx:2672
 AliTPCcalibResidualPID.cxx:2673
 AliTPCcalibResidualPID.cxx:2674
 AliTPCcalibResidualPID.cxx:2675
 AliTPCcalibResidualPID.cxx:2676
 AliTPCcalibResidualPID.cxx:2677
 AliTPCcalibResidualPID.cxx:2678
 AliTPCcalibResidualPID.cxx:2679
 AliTPCcalibResidualPID.cxx:2680
 AliTPCcalibResidualPID.cxx:2681
 AliTPCcalibResidualPID.cxx:2682
 AliTPCcalibResidualPID.cxx:2683
 AliTPCcalibResidualPID.cxx:2684
 AliTPCcalibResidualPID.cxx:2685
 AliTPCcalibResidualPID.cxx:2686
 AliTPCcalibResidualPID.cxx:2687
 AliTPCcalibResidualPID.cxx:2688
 AliTPCcalibResidualPID.cxx:2689
 AliTPCcalibResidualPID.cxx:2690
 AliTPCcalibResidualPID.cxx:2691
 AliTPCcalibResidualPID.cxx:2692
 AliTPCcalibResidualPID.cxx:2693
 AliTPCcalibResidualPID.cxx:2694
 AliTPCcalibResidualPID.cxx:2695
 AliTPCcalibResidualPID.cxx:2696
 AliTPCcalibResidualPID.cxx:2697
 AliTPCcalibResidualPID.cxx:2698
 AliTPCcalibResidualPID.cxx:2699
 AliTPCcalibResidualPID.cxx:2700
 AliTPCcalibResidualPID.cxx:2701
 AliTPCcalibResidualPID.cxx:2702
 AliTPCcalibResidualPID.cxx:2703
 AliTPCcalibResidualPID.cxx:2704
 AliTPCcalibResidualPID.cxx:2705
 AliTPCcalibResidualPID.cxx:2706
 AliTPCcalibResidualPID.cxx:2707
 AliTPCcalibResidualPID.cxx:2708
 AliTPCcalibResidualPID.cxx:2709
 AliTPCcalibResidualPID.cxx:2710
 AliTPCcalibResidualPID.cxx:2711
 AliTPCcalibResidualPID.cxx:2712
 AliTPCcalibResidualPID.cxx:2713
 AliTPCcalibResidualPID.cxx:2714
 AliTPCcalibResidualPID.cxx:2715
 AliTPCcalibResidualPID.cxx:2716
 AliTPCcalibResidualPID.cxx:2717
 AliTPCcalibResidualPID.cxx:2718
 AliTPCcalibResidualPID.cxx:2719
 AliTPCcalibResidualPID.cxx:2720
 AliTPCcalibResidualPID.cxx:2721
 AliTPCcalibResidualPID.cxx:2722
 AliTPCcalibResidualPID.cxx:2723
 AliTPCcalibResidualPID.cxx:2724
 AliTPCcalibResidualPID.cxx:2725
 AliTPCcalibResidualPID.cxx:2726
 AliTPCcalibResidualPID.cxx:2727
 AliTPCcalibResidualPID.cxx:2728
 AliTPCcalibResidualPID.cxx:2729
 AliTPCcalibResidualPID.cxx:2730
 AliTPCcalibResidualPID.cxx:2731
 AliTPCcalibResidualPID.cxx:2732
 AliTPCcalibResidualPID.cxx:2733
 AliTPCcalibResidualPID.cxx:2734
 AliTPCcalibResidualPID.cxx:2735
 AliTPCcalibResidualPID.cxx:2736
 AliTPCcalibResidualPID.cxx:2737
 AliTPCcalibResidualPID.cxx:2738
 AliTPCcalibResidualPID.cxx:2739
 AliTPCcalibResidualPID.cxx:2740
 AliTPCcalibResidualPID.cxx:2741
 AliTPCcalibResidualPID.cxx:2742
 AliTPCcalibResidualPID.cxx:2743
 AliTPCcalibResidualPID.cxx:2744
 AliTPCcalibResidualPID.cxx:2745
 AliTPCcalibResidualPID.cxx:2746
 AliTPCcalibResidualPID.cxx:2747
 AliTPCcalibResidualPID.cxx:2748
 AliTPCcalibResidualPID.cxx:2749
 AliTPCcalibResidualPID.cxx:2750
 AliTPCcalibResidualPID.cxx:2751
 AliTPCcalibResidualPID.cxx:2752
 AliTPCcalibResidualPID.cxx:2753
 AliTPCcalibResidualPID.cxx:2754
 AliTPCcalibResidualPID.cxx:2755
 AliTPCcalibResidualPID.cxx:2756
 AliTPCcalibResidualPID.cxx:2757
 AliTPCcalibResidualPID.cxx:2758
 AliTPCcalibResidualPID.cxx:2759
 AliTPCcalibResidualPID.cxx:2760
 AliTPCcalibResidualPID.cxx:2761
 AliTPCcalibResidualPID.cxx:2762
 AliTPCcalibResidualPID.cxx:2763
 AliTPCcalibResidualPID.cxx:2764
 AliTPCcalibResidualPID.cxx:2765
 AliTPCcalibResidualPID.cxx:2766
 AliTPCcalibResidualPID.cxx:2767
 AliTPCcalibResidualPID.cxx:2768
 AliTPCcalibResidualPID.cxx:2769
 AliTPCcalibResidualPID.cxx:2770
 AliTPCcalibResidualPID.cxx:2771
 AliTPCcalibResidualPID.cxx:2772
 AliTPCcalibResidualPID.cxx:2773
 AliTPCcalibResidualPID.cxx:2774
 AliTPCcalibResidualPID.cxx:2775
 AliTPCcalibResidualPID.cxx:2776
 AliTPCcalibResidualPID.cxx:2777
 AliTPCcalibResidualPID.cxx:2778
 AliTPCcalibResidualPID.cxx:2779
 AliTPCcalibResidualPID.cxx:2780
 AliTPCcalibResidualPID.cxx:2781
 AliTPCcalibResidualPID.cxx:2782
 AliTPCcalibResidualPID.cxx:2783
 AliTPCcalibResidualPID.cxx:2784
 AliTPCcalibResidualPID.cxx:2785
 AliTPCcalibResidualPID.cxx:2786
 AliTPCcalibResidualPID.cxx:2787
 AliTPCcalibResidualPID.cxx:2788
 AliTPCcalibResidualPID.cxx:2789
 AliTPCcalibResidualPID.cxx:2790
 AliTPCcalibResidualPID.cxx:2791
 AliTPCcalibResidualPID.cxx:2792
 AliTPCcalibResidualPID.cxx:2793
 AliTPCcalibResidualPID.cxx:2794
 AliTPCcalibResidualPID.cxx:2795
 AliTPCcalibResidualPID.cxx:2796
 AliTPCcalibResidualPID.cxx:2797
 AliTPCcalibResidualPID.cxx:2798
 AliTPCcalibResidualPID.cxx:2799
 AliTPCcalibResidualPID.cxx:2800
 AliTPCcalibResidualPID.cxx:2801
 AliTPCcalibResidualPID.cxx:2802
 AliTPCcalibResidualPID.cxx:2803
 AliTPCcalibResidualPID.cxx:2804
 AliTPCcalibResidualPID.cxx:2805
 AliTPCcalibResidualPID.cxx:2806
 AliTPCcalibResidualPID.cxx:2807
 AliTPCcalibResidualPID.cxx:2808
 AliTPCcalibResidualPID.cxx:2809
 AliTPCcalibResidualPID.cxx:2810
 AliTPCcalibResidualPID.cxx:2811
 AliTPCcalibResidualPID.cxx:2812
 AliTPCcalibResidualPID.cxx:2813
 AliTPCcalibResidualPID.cxx:2814
 AliTPCcalibResidualPID.cxx:2815
 AliTPCcalibResidualPID.cxx:2816
 AliTPCcalibResidualPID.cxx:2817
 AliTPCcalibResidualPID.cxx:2818
 AliTPCcalibResidualPID.cxx:2819
 AliTPCcalibResidualPID.cxx:2820
 AliTPCcalibResidualPID.cxx:2821
 AliTPCcalibResidualPID.cxx:2822
 AliTPCcalibResidualPID.cxx:2823
 AliTPCcalibResidualPID.cxx:2824
 AliTPCcalibResidualPID.cxx:2825
 AliTPCcalibResidualPID.cxx:2826
 AliTPCcalibResidualPID.cxx:2827
 AliTPCcalibResidualPID.cxx:2828
 AliTPCcalibResidualPID.cxx:2829
 AliTPCcalibResidualPID.cxx:2830
 AliTPCcalibResidualPID.cxx:2831
 AliTPCcalibResidualPID.cxx:2832
 AliTPCcalibResidualPID.cxx:2833
 AliTPCcalibResidualPID.cxx:2834
 AliTPCcalibResidualPID.cxx:2835
 AliTPCcalibResidualPID.cxx:2836
 AliTPCcalibResidualPID.cxx:2837
 AliTPCcalibResidualPID.cxx:2838
 AliTPCcalibResidualPID.cxx:2839
 AliTPCcalibResidualPID.cxx:2840
 AliTPCcalibResidualPID.cxx:2841
 AliTPCcalibResidualPID.cxx:2842
 AliTPCcalibResidualPID.cxx:2843
 AliTPCcalibResidualPID.cxx:2844
 AliTPCcalibResidualPID.cxx:2845
 AliTPCcalibResidualPID.cxx:2846
 AliTPCcalibResidualPID.cxx:2847
 AliTPCcalibResidualPID.cxx:2848
 AliTPCcalibResidualPID.cxx:2849
 AliTPCcalibResidualPID.cxx:2850
 AliTPCcalibResidualPID.cxx:2851
 AliTPCcalibResidualPID.cxx:2852
 AliTPCcalibResidualPID.cxx:2853
 AliTPCcalibResidualPID.cxx:2854
 AliTPCcalibResidualPID.cxx:2855
 AliTPCcalibResidualPID.cxx:2856
 AliTPCcalibResidualPID.cxx:2857
 AliTPCcalibResidualPID.cxx:2858
 AliTPCcalibResidualPID.cxx:2859
 AliTPCcalibResidualPID.cxx:2860
 AliTPCcalibResidualPID.cxx:2861
 AliTPCcalibResidualPID.cxx:2862
 AliTPCcalibResidualPID.cxx:2863
 AliTPCcalibResidualPID.cxx:2864
 AliTPCcalibResidualPID.cxx:2865
 AliTPCcalibResidualPID.cxx:2866
 AliTPCcalibResidualPID.cxx:2867
 AliTPCcalibResidualPID.cxx:2868
 AliTPCcalibResidualPID.cxx:2869
 AliTPCcalibResidualPID.cxx:2870
 AliTPCcalibResidualPID.cxx:2871
 AliTPCcalibResidualPID.cxx:2872
 AliTPCcalibResidualPID.cxx:2873
 AliTPCcalibResidualPID.cxx:2874
 AliTPCcalibResidualPID.cxx:2875
 AliTPCcalibResidualPID.cxx:2876
 AliTPCcalibResidualPID.cxx:2877
 AliTPCcalibResidualPID.cxx:2878
 AliTPCcalibResidualPID.cxx:2879
 AliTPCcalibResidualPID.cxx:2880
 AliTPCcalibResidualPID.cxx:2881
 AliTPCcalibResidualPID.cxx:2882
 AliTPCcalibResidualPID.cxx:2883
 AliTPCcalibResidualPID.cxx:2884
 AliTPCcalibResidualPID.cxx:2885
 AliTPCcalibResidualPID.cxx:2886
 AliTPCcalibResidualPID.cxx:2887
 AliTPCcalibResidualPID.cxx:2888
 AliTPCcalibResidualPID.cxx:2889
 AliTPCcalibResidualPID.cxx:2890
 AliTPCcalibResidualPID.cxx:2891
 AliTPCcalibResidualPID.cxx:2892
 AliTPCcalibResidualPID.cxx:2893
 AliTPCcalibResidualPID.cxx:2894
 AliTPCcalibResidualPID.cxx:2895
 AliTPCcalibResidualPID.cxx:2896
 AliTPCcalibResidualPID.cxx:2897
 AliTPCcalibResidualPID.cxx:2898
 AliTPCcalibResidualPID.cxx:2899
 AliTPCcalibResidualPID.cxx:2900
 AliTPCcalibResidualPID.cxx:2901
 AliTPCcalibResidualPID.cxx:2902
 AliTPCcalibResidualPID.cxx:2903
 AliTPCcalibResidualPID.cxx:2904
 AliTPCcalibResidualPID.cxx:2905
 AliTPCcalibResidualPID.cxx:2906
 AliTPCcalibResidualPID.cxx:2907
 AliTPCcalibResidualPID.cxx:2908
 AliTPCcalibResidualPID.cxx:2909
 AliTPCcalibResidualPID.cxx:2910
 AliTPCcalibResidualPID.cxx:2911
 AliTPCcalibResidualPID.cxx:2912
 AliTPCcalibResidualPID.cxx:2913
 AliTPCcalibResidualPID.cxx:2914
 AliTPCcalibResidualPID.cxx:2915
 AliTPCcalibResidualPID.cxx:2916
 AliTPCcalibResidualPID.cxx:2917
 AliTPCcalibResidualPID.cxx:2918
 AliTPCcalibResidualPID.cxx:2919
 AliTPCcalibResidualPID.cxx:2920
 AliTPCcalibResidualPID.cxx:2921
 AliTPCcalibResidualPID.cxx:2922
 AliTPCcalibResidualPID.cxx:2923
 AliTPCcalibResidualPID.cxx:2924
 AliTPCcalibResidualPID.cxx:2925
 AliTPCcalibResidualPID.cxx:2926
 AliTPCcalibResidualPID.cxx:2927
 AliTPCcalibResidualPID.cxx:2928
 AliTPCcalibResidualPID.cxx:2929
 AliTPCcalibResidualPID.cxx:2930
 AliTPCcalibResidualPID.cxx:2931
 AliTPCcalibResidualPID.cxx:2932
 AliTPCcalibResidualPID.cxx:2933
 AliTPCcalibResidualPID.cxx:2934
 AliTPCcalibResidualPID.cxx:2935
 AliTPCcalibResidualPID.cxx:2936
 AliTPCcalibResidualPID.cxx:2937
 AliTPCcalibResidualPID.cxx:2938
 AliTPCcalibResidualPID.cxx:2939
 AliTPCcalibResidualPID.cxx:2940
 AliTPCcalibResidualPID.cxx:2941
 AliTPCcalibResidualPID.cxx:2942
 AliTPCcalibResidualPID.cxx:2943
 AliTPCcalibResidualPID.cxx:2944
 AliTPCcalibResidualPID.cxx:2945
 AliTPCcalibResidualPID.cxx:2946
 AliTPCcalibResidualPID.cxx:2947
 AliTPCcalibResidualPID.cxx:2948
 AliTPCcalibResidualPID.cxx:2949
 AliTPCcalibResidualPID.cxx:2950
 AliTPCcalibResidualPID.cxx:2951
 AliTPCcalibResidualPID.cxx:2952
 AliTPCcalibResidualPID.cxx:2953
 AliTPCcalibResidualPID.cxx:2954
 AliTPCcalibResidualPID.cxx:2955
 AliTPCcalibResidualPID.cxx:2956
 AliTPCcalibResidualPID.cxx:2957
 AliTPCcalibResidualPID.cxx:2958
 AliTPCcalibResidualPID.cxx:2959
 AliTPCcalibResidualPID.cxx:2960
 AliTPCcalibResidualPID.cxx:2961
 AliTPCcalibResidualPID.cxx:2962
 AliTPCcalibResidualPID.cxx:2963
 AliTPCcalibResidualPID.cxx:2964
 AliTPCcalibResidualPID.cxx:2965
 AliTPCcalibResidualPID.cxx:2966
 AliTPCcalibResidualPID.cxx:2967
 AliTPCcalibResidualPID.cxx:2968
 AliTPCcalibResidualPID.cxx:2969
 AliTPCcalibResidualPID.cxx:2970
 AliTPCcalibResidualPID.cxx:2971
 AliTPCcalibResidualPID.cxx:2972
 AliTPCcalibResidualPID.cxx:2973
 AliTPCcalibResidualPID.cxx:2974
 AliTPCcalibResidualPID.cxx:2975
 AliTPCcalibResidualPID.cxx:2976
 AliTPCcalibResidualPID.cxx:2977
 AliTPCcalibResidualPID.cxx:2978
 AliTPCcalibResidualPID.cxx:2979
 AliTPCcalibResidualPID.cxx:2980
 AliTPCcalibResidualPID.cxx:2981
 AliTPCcalibResidualPID.cxx:2982
 AliTPCcalibResidualPID.cxx:2983
 AliTPCcalibResidualPID.cxx:2984
 AliTPCcalibResidualPID.cxx:2985
 AliTPCcalibResidualPID.cxx:2986
 AliTPCcalibResidualPID.cxx:2987
 AliTPCcalibResidualPID.cxx:2988
 AliTPCcalibResidualPID.cxx:2989
 AliTPCcalibResidualPID.cxx:2990
 AliTPCcalibResidualPID.cxx:2991
 AliTPCcalibResidualPID.cxx:2992
 AliTPCcalibResidualPID.cxx:2993
 AliTPCcalibResidualPID.cxx:2994
 AliTPCcalibResidualPID.cxx:2995
 AliTPCcalibResidualPID.cxx:2996
 AliTPCcalibResidualPID.cxx:2997
 AliTPCcalibResidualPID.cxx:2998
 AliTPCcalibResidualPID.cxx:2999
 AliTPCcalibResidualPID.cxx:3000
 AliTPCcalibResidualPID.cxx:3001
 AliTPCcalibResidualPID.cxx:3002
 AliTPCcalibResidualPID.cxx:3003
 AliTPCcalibResidualPID.cxx:3004
 AliTPCcalibResidualPID.cxx:3005
 AliTPCcalibResidualPID.cxx:3006
 AliTPCcalibResidualPID.cxx:3007
 AliTPCcalibResidualPID.cxx:3008
 AliTPCcalibResidualPID.cxx:3009
 AliTPCcalibResidualPID.cxx:3010
 AliTPCcalibResidualPID.cxx:3011
 AliTPCcalibResidualPID.cxx:3012
 AliTPCcalibResidualPID.cxx:3013
 AliTPCcalibResidualPID.cxx:3014
 AliTPCcalibResidualPID.cxx:3015
 AliTPCcalibResidualPID.cxx:3016
 AliTPCcalibResidualPID.cxx:3017
 AliTPCcalibResidualPID.cxx:3018
 AliTPCcalibResidualPID.cxx:3019
 AliTPCcalibResidualPID.cxx:3020
 AliTPCcalibResidualPID.cxx:3021
 AliTPCcalibResidualPID.cxx:3022
 AliTPCcalibResidualPID.cxx:3023
 AliTPCcalibResidualPID.cxx:3024
 AliTPCcalibResidualPID.cxx:3025
 AliTPCcalibResidualPID.cxx:3026
 AliTPCcalibResidualPID.cxx:3027
 AliTPCcalibResidualPID.cxx:3028
 AliTPCcalibResidualPID.cxx:3029
 AliTPCcalibResidualPID.cxx:3030
 AliTPCcalibResidualPID.cxx:3031
 AliTPCcalibResidualPID.cxx:3032
 AliTPCcalibResidualPID.cxx:3033
 AliTPCcalibResidualPID.cxx:3034
 AliTPCcalibResidualPID.cxx:3035
 AliTPCcalibResidualPID.cxx:3036
 AliTPCcalibResidualPID.cxx:3037
 AliTPCcalibResidualPID.cxx:3038
 AliTPCcalibResidualPID.cxx:3039
 AliTPCcalibResidualPID.cxx:3040
 AliTPCcalibResidualPID.cxx:3041
 AliTPCcalibResidualPID.cxx:3042
 AliTPCcalibResidualPID.cxx:3043
 AliTPCcalibResidualPID.cxx:3044
 AliTPCcalibResidualPID.cxx:3045
 AliTPCcalibResidualPID.cxx:3046
 AliTPCcalibResidualPID.cxx:3047
 AliTPCcalibResidualPID.cxx:3048
 AliTPCcalibResidualPID.cxx:3049
 AliTPCcalibResidualPID.cxx:3050
 AliTPCcalibResidualPID.cxx:3051
 AliTPCcalibResidualPID.cxx:3052
 AliTPCcalibResidualPID.cxx:3053
 AliTPCcalibResidualPID.cxx:3054
 AliTPCcalibResidualPID.cxx:3055
 AliTPCcalibResidualPID.cxx:3056
 AliTPCcalibResidualPID.cxx:3057
 AliTPCcalibResidualPID.cxx:3058
 AliTPCcalibResidualPID.cxx:3059
 AliTPCcalibResidualPID.cxx:3060
 AliTPCcalibResidualPID.cxx:3061
 AliTPCcalibResidualPID.cxx:3062
 AliTPCcalibResidualPID.cxx:3063
 AliTPCcalibResidualPID.cxx:3064
 AliTPCcalibResidualPID.cxx:3065
 AliTPCcalibResidualPID.cxx:3066
 AliTPCcalibResidualPID.cxx:3067
 AliTPCcalibResidualPID.cxx:3068
 AliTPCcalibResidualPID.cxx:3069
 AliTPCcalibResidualPID.cxx:3070
 AliTPCcalibResidualPID.cxx:3071
 AliTPCcalibResidualPID.cxx:3072
 AliTPCcalibResidualPID.cxx:3073
 AliTPCcalibResidualPID.cxx:3074
 AliTPCcalibResidualPID.cxx:3075
 AliTPCcalibResidualPID.cxx:3076
 AliTPCcalibResidualPID.cxx:3077
 AliTPCcalibResidualPID.cxx:3078
 AliTPCcalibResidualPID.cxx:3079
 AliTPCcalibResidualPID.cxx:3080
 AliTPCcalibResidualPID.cxx:3081
 AliTPCcalibResidualPID.cxx:3082
 AliTPCcalibResidualPID.cxx:3083
 AliTPCcalibResidualPID.cxx:3084
 AliTPCcalibResidualPID.cxx:3085
 AliTPCcalibResidualPID.cxx:3086
 AliTPCcalibResidualPID.cxx:3087
 AliTPCcalibResidualPID.cxx:3088
 AliTPCcalibResidualPID.cxx:3089
 AliTPCcalibResidualPID.cxx:3090
 AliTPCcalibResidualPID.cxx:3091
 AliTPCcalibResidualPID.cxx:3092
 AliTPCcalibResidualPID.cxx:3093
 AliTPCcalibResidualPID.cxx:3094
 AliTPCcalibResidualPID.cxx:3095
 AliTPCcalibResidualPID.cxx:3096
 AliTPCcalibResidualPID.cxx:3097
 AliTPCcalibResidualPID.cxx:3098
 AliTPCcalibResidualPID.cxx:3099
 AliTPCcalibResidualPID.cxx:3100
 AliTPCcalibResidualPID.cxx:3101
 AliTPCcalibResidualPID.cxx:3102
 AliTPCcalibResidualPID.cxx:3103
 AliTPCcalibResidualPID.cxx:3104
 AliTPCcalibResidualPID.cxx:3105
 AliTPCcalibResidualPID.cxx:3106
 AliTPCcalibResidualPID.cxx:3107
 AliTPCcalibResidualPID.cxx:3108
 AliTPCcalibResidualPID.cxx:3109
 AliTPCcalibResidualPID.cxx:3110
 AliTPCcalibResidualPID.cxx:3111
 AliTPCcalibResidualPID.cxx:3112
 AliTPCcalibResidualPID.cxx:3113
 AliTPCcalibResidualPID.cxx:3114
 AliTPCcalibResidualPID.cxx:3115
 AliTPCcalibResidualPID.cxx:3116
 AliTPCcalibResidualPID.cxx:3117
 AliTPCcalibResidualPID.cxx:3118
 AliTPCcalibResidualPID.cxx:3119
 AliTPCcalibResidualPID.cxx:3120
 AliTPCcalibResidualPID.cxx:3121
 AliTPCcalibResidualPID.cxx:3122
 AliTPCcalibResidualPID.cxx:3123
 AliTPCcalibResidualPID.cxx:3124
 AliTPCcalibResidualPID.cxx:3125
 AliTPCcalibResidualPID.cxx:3126
 AliTPCcalibResidualPID.cxx:3127
 AliTPCcalibResidualPID.cxx:3128
 AliTPCcalibResidualPID.cxx:3129
 AliTPCcalibResidualPID.cxx:3130
 AliTPCcalibResidualPID.cxx:3131
 AliTPCcalibResidualPID.cxx:3132
 AliTPCcalibResidualPID.cxx:3133
 AliTPCcalibResidualPID.cxx:3134
 AliTPCcalibResidualPID.cxx:3135
 AliTPCcalibResidualPID.cxx:3136
 AliTPCcalibResidualPID.cxx:3137
 AliTPCcalibResidualPID.cxx:3138
 AliTPCcalibResidualPID.cxx:3139
 AliTPCcalibResidualPID.cxx:3140
 AliTPCcalibResidualPID.cxx:3141
 AliTPCcalibResidualPID.cxx:3142
 AliTPCcalibResidualPID.cxx:3143
 AliTPCcalibResidualPID.cxx:3144
 AliTPCcalibResidualPID.cxx:3145
 AliTPCcalibResidualPID.cxx:3146
 AliTPCcalibResidualPID.cxx:3147
 AliTPCcalibResidualPID.cxx:3148
 AliTPCcalibResidualPID.cxx:3149
 AliTPCcalibResidualPID.cxx:3150
 AliTPCcalibResidualPID.cxx:3151
 AliTPCcalibResidualPID.cxx:3152
 AliTPCcalibResidualPID.cxx:3153
 AliTPCcalibResidualPID.cxx:3154
 AliTPCcalibResidualPID.cxx:3155
 AliTPCcalibResidualPID.cxx:3156
 AliTPCcalibResidualPID.cxx:3157
 AliTPCcalibResidualPID.cxx:3158
 AliTPCcalibResidualPID.cxx:3159
 AliTPCcalibResidualPID.cxx:3160
 AliTPCcalibResidualPID.cxx:3161
 AliTPCcalibResidualPID.cxx:3162
 AliTPCcalibResidualPID.cxx:3163
 AliTPCcalibResidualPID.cxx:3164
 AliTPCcalibResidualPID.cxx:3165
 AliTPCcalibResidualPID.cxx:3166
 AliTPCcalibResidualPID.cxx:3167
 AliTPCcalibResidualPID.cxx:3168
 AliTPCcalibResidualPID.cxx:3169
 AliTPCcalibResidualPID.cxx:3170
 AliTPCcalibResidualPID.cxx:3171
 AliTPCcalibResidualPID.cxx:3172
 AliTPCcalibResidualPID.cxx:3173
 AliTPCcalibResidualPID.cxx:3174
 AliTPCcalibResidualPID.cxx:3175
 AliTPCcalibResidualPID.cxx:3176
 AliTPCcalibResidualPID.cxx:3177
 AliTPCcalibResidualPID.cxx:3178
 AliTPCcalibResidualPID.cxx:3179
 AliTPCcalibResidualPID.cxx:3180
 AliTPCcalibResidualPID.cxx:3181
 AliTPCcalibResidualPID.cxx:3182
 AliTPCcalibResidualPID.cxx:3183
 AliTPCcalibResidualPID.cxx:3184
 AliTPCcalibResidualPID.cxx:3185
 AliTPCcalibResidualPID.cxx:3186
 AliTPCcalibResidualPID.cxx:3187
 AliTPCcalibResidualPID.cxx:3188
 AliTPCcalibResidualPID.cxx:3189
 AliTPCcalibResidualPID.cxx:3190
 AliTPCcalibResidualPID.cxx:3191
 AliTPCcalibResidualPID.cxx:3192
 AliTPCcalibResidualPID.cxx:3193
 AliTPCcalibResidualPID.cxx:3194
 AliTPCcalibResidualPID.cxx:3195
 AliTPCcalibResidualPID.cxx:3196
 AliTPCcalibResidualPID.cxx:3197
 AliTPCcalibResidualPID.cxx:3198
 AliTPCcalibResidualPID.cxx:3199
 AliTPCcalibResidualPID.cxx:3200
 AliTPCcalibResidualPID.cxx:3201
 AliTPCcalibResidualPID.cxx:3202
 AliTPCcalibResidualPID.cxx:3203
 AliTPCcalibResidualPID.cxx:3204
 AliTPCcalibResidualPID.cxx:3205
 AliTPCcalibResidualPID.cxx:3206
 AliTPCcalibResidualPID.cxx:3207
 AliTPCcalibResidualPID.cxx:3208
 AliTPCcalibResidualPID.cxx:3209
 AliTPCcalibResidualPID.cxx:3210
 AliTPCcalibResidualPID.cxx:3211
 AliTPCcalibResidualPID.cxx:3212
 AliTPCcalibResidualPID.cxx:3213
 AliTPCcalibResidualPID.cxx:3214
 AliTPCcalibResidualPID.cxx:3215
 AliTPCcalibResidualPID.cxx:3216
 AliTPCcalibResidualPID.cxx:3217
 AliTPCcalibResidualPID.cxx:3218
 AliTPCcalibResidualPID.cxx:3219
 AliTPCcalibResidualPID.cxx:3220
 AliTPCcalibResidualPID.cxx:3221
 AliTPCcalibResidualPID.cxx:3222
 AliTPCcalibResidualPID.cxx:3223
 AliTPCcalibResidualPID.cxx:3224
 AliTPCcalibResidualPID.cxx:3225
 AliTPCcalibResidualPID.cxx:3226
 AliTPCcalibResidualPID.cxx:3227
 AliTPCcalibResidualPID.cxx:3228
 AliTPCcalibResidualPID.cxx:3229
 AliTPCcalibResidualPID.cxx:3230
 AliTPCcalibResidualPID.cxx:3231
 AliTPCcalibResidualPID.cxx:3232
 AliTPCcalibResidualPID.cxx:3233
 AliTPCcalibResidualPID.cxx:3234
 AliTPCcalibResidualPID.cxx:3235
 AliTPCcalibResidualPID.cxx:3236
 AliTPCcalibResidualPID.cxx:3237
 AliTPCcalibResidualPID.cxx:3238
 AliTPCcalibResidualPID.cxx:3239
 AliTPCcalibResidualPID.cxx:3240
 AliTPCcalibResidualPID.cxx:3241
 AliTPCcalibResidualPID.cxx:3242
 AliTPCcalibResidualPID.cxx:3243
 AliTPCcalibResidualPID.cxx:3244
 AliTPCcalibResidualPID.cxx:3245
 AliTPCcalibResidualPID.cxx:3246
 AliTPCcalibResidualPID.cxx:3247
 AliTPCcalibResidualPID.cxx:3248
 AliTPCcalibResidualPID.cxx:3249
 AliTPCcalibResidualPID.cxx:3250
 AliTPCcalibResidualPID.cxx:3251
 AliTPCcalibResidualPID.cxx:3252
 AliTPCcalibResidualPID.cxx:3253
 AliTPCcalibResidualPID.cxx:3254
 AliTPCcalibResidualPID.cxx:3255
 AliTPCcalibResidualPID.cxx:3256
 AliTPCcalibResidualPID.cxx:3257
 AliTPCcalibResidualPID.cxx:3258
 AliTPCcalibResidualPID.cxx:3259
 AliTPCcalibResidualPID.cxx:3260
 AliTPCcalibResidualPID.cxx:3261
 AliTPCcalibResidualPID.cxx:3262
 AliTPCcalibResidualPID.cxx:3263
 AliTPCcalibResidualPID.cxx:3264
 AliTPCcalibResidualPID.cxx:3265
 AliTPCcalibResidualPID.cxx:3266
 AliTPCcalibResidualPID.cxx:3267
 AliTPCcalibResidualPID.cxx:3268
 AliTPCcalibResidualPID.cxx:3269
 AliTPCcalibResidualPID.cxx:3270
 AliTPCcalibResidualPID.cxx:3271
 AliTPCcalibResidualPID.cxx:3272
 AliTPCcalibResidualPID.cxx:3273
 AliTPCcalibResidualPID.cxx:3274
 AliTPCcalibResidualPID.cxx:3275
 AliTPCcalibResidualPID.cxx:3276
 AliTPCcalibResidualPID.cxx:3277
 AliTPCcalibResidualPID.cxx:3278
 AliTPCcalibResidualPID.cxx:3279
 AliTPCcalibResidualPID.cxx:3280
 AliTPCcalibResidualPID.cxx:3281
 AliTPCcalibResidualPID.cxx:3282
 AliTPCcalibResidualPID.cxx:3283
 AliTPCcalibResidualPID.cxx:3284
 AliTPCcalibResidualPID.cxx:3285
 AliTPCcalibResidualPID.cxx:3286
 AliTPCcalibResidualPID.cxx:3287
 AliTPCcalibResidualPID.cxx:3288
 AliTPCcalibResidualPID.cxx:3289
 AliTPCcalibResidualPID.cxx:3290
 AliTPCcalibResidualPID.cxx:3291
 AliTPCcalibResidualPID.cxx:3292
 AliTPCcalibResidualPID.cxx:3293
 AliTPCcalibResidualPID.cxx:3294
 AliTPCcalibResidualPID.cxx:3295
 AliTPCcalibResidualPID.cxx:3296
 AliTPCcalibResidualPID.cxx:3297
 AliTPCcalibResidualPID.cxx:3298
 AliTPCcalibResidualPID.cxx:3299
 AliTPCcalibResidualPID.cxx:3300
 AliTPCcalibResidualPID.cxx:3301
 AliTPCcalibResidualPID.cxx:3302
 AliTPCcalibResidualPID.cxx:3303
 AliTPCcalibResidualPID.cxx:3304
 AliTPCcalibResidualPID.cxx:3305
 AliTPCcalibResidualPID.cxx:3306
 AliTPCcalibResidualPID.cxx:3307
 AliTPCcalibResidualPID.cxx:3308
 AliTPCcalibResidualPID.cxx:3309
 AliTPCcalibResidualPID.cxx:3310
 AliTPCcalibResidualPID.cxx:3311
 AliTPCcalibResidualPID.cxx:3312
 AliTPCcalibResidualPID.cxx:3313
 AliTPCcalibResidualPID.cxx:3314
 AliTPCcalibResidualPID.cxx:3315
 AliTPCcalibResidualPID.cxx:3316
 AliTPCcalibResidualPID.cxx:3317
 AliTPCcalibResidualPID.cxx:3318
 AliTPCcalibResidualPID.cxx:3319
 AliTPCcalibResidualPID.cxx:3320
 AliTPCcalibResidualPID.cxx:3321
 AliTPCcalibResidualPID.cxx:3322
 AliTPCcalibResidualPID.cxx:3323
 AliTPCcalibResidualPID.cxx:3324
 AliTPCcalibResidualPID.cxx:3325
 AliTPCcalibResidualPID.cxx:3326
 AliTPCcalibResidualPID.cxx:3327
 AliTPCcalibResidualPID.cxx:3328
 AliTPCcalibResidualPID.cxx:3329
 AliTPCcalibResidualPID.cxx:3330
 AliTPCcalibResidualPID.cxx:3331
 AliTPCcalibResidualPID.cxx:3332
 AliTPCcalibResidualPID.cxx:3333
 AliTPCcalibResidualPID.cxx:3334
 AliTPCcalibResidualPID.cxx:3335
 AliTPCcalibResidualPID.cxx:3336
 AliTPCcalibResidualPID.cxx:3337
 AliTPCcalibResidualPID.cxx:3338
 AliTPCcalibResidualPID.cxx:3339
 AliTPCcalibResidualPID.cxx:3340
 AliTPCcalibResidualPID.cxx:3341
 AliTPCcalibResidualPID.cxx:3342
 AliTPCcalibResidualPID.cxx:3343
 AliTPCcalibResidualPID.cxx:3344
 AliTPCcalibResidualPID.cxx:3345
 AliTPCcalibResidualPID.cxx:3346
 AliTPCcalibResidualPID.cxx:3347
 AliTPCcalibResidualPID.cxx:3348
 AliTPCcalibResidualPID.cxx:3349
 AliTPCcalibResidualPID.cxx:3350
 AliTPCcalibResidualPID.cxx:3351
 AliTPCcalibResidualPID.cxx:3352
 AliTPCcalibResidualPID.cxx:3353
 AliTPCcalibResidualPID.cxx:3354
 AliTPCcalibResidualPID.cxx:3355
 AliTPCcalibResidualPID.cxx:3356
 AliTPCcalibResidualPID.cxx:3357
 AliTPCcalibResidualPID.cxx:3358
 AliTPCcalibResidualPID.cxx:3359
 AliTPCcalibResidualPID.cxx:3360
 AliTPCcalibResidualPID.cxx:3361
 AliTPCcalibResidualPID.cxx:3362
 AliTPCcalibResidualPID.cxx:3363
 AliTPCcalibResidualPID.cxx:3364
 AliTPCcalibResidualPID.cxx:3365
 AliTPCcalibResidualPID.cxx:3366
 AliTPCcalibResidualPID.cxx:3367
 AliTPCcalibResidualPID.cxx:3368
 AliTPCcalibResidualPID.cxx:3369
 AliTPCcalibResidualPID.cxx:3370
 AliTPCcalibResidualPID.cxx:3371
 AliTPCcalibResidualPID.cxx:3372
 AliTPCcalibResidualPID.cxx:3373
 AliTPCcalibResidualPID.cxx:3374
 AliTPCcalibResidualPID.cxx:3375
 AliTPCcalibResidualPID.cxx:3376
 AliTPCcalibResidualPID.cxx:3377
 AliTPCcalibResidualPID.cxx:3378
 AliTPCcalibResidualPID.cxx:3379
 AliTPCcalibResidualPID.cxx:3380
 AliTPCcalibResidualPID.cxx:3381
 AliTPCcalibResidualPID.cxx:3382
 AliTPCcalibResidualPID.cxx:3383
 AliTPCcalibResidualPID.cxx:3384
 AliTPCcalibResidualPID.cxx:3385
 AliTPCcalibResidualPID.cxx:3386
 AliTPCcalibResidualPID.cxx:3387
 AliTPCcalibResidualPID.cxx:3388
 AliTPCcalibResidualPID.cxx:3389
 AliTPCcalibResidualPID.cxx:3390
 AliTPCcalibResidualPID.cxx:3391
 AliTPCcalibResidualPID.cxx:3392
 AliTPCcalibResidualPID.cxx:3393
 AliTPCcalibResidualPID.cxx:3394
 AliTPCcalibResidualPID.cxx:3395
 AliTPCcalibResidualPID.cxx:3396
 AliTPCcalibResidualPID.cxx:3397
 AliTPCcalibResidualPID.cxx:3398
 AliTPCcalibResidualPID.cxx:3399
 AliTPCcalibResidualPID.cxx:3400
 AliTPCcalibResidualPID.cxx:3401
 AliTPCcalibResidualPID.cxx:3402
 AliTPCcalibResidualPID.cxx:3403
 AliTPCcalibResidualPID.cxx:3404
 AliTPCcalibResidualPID.cxx:3405
 AliTPCcalibResidualPID.cxx:3406
 AliTPCcalibResidualPID.cxx:3407
 AliTPCcalibResidualPID.cxx:3408
 AliTPCcalibResidualPID.cxx:3409
 AliTPCcalibResidualPID.cxx:3410
 AliTPCcalibResidualPID.cxx:3411
 AliTPCcalibResidualPID.cxx:3412
 AliTPCcalibResidualPID.cxx:3413
 AliTPCcalibResidualPID.cxx:3414
 AliTPCcalibResidualPID.cxx:3415
 AliTPCcalibResidualPID.cxx:3416
 AliTPCcalibResidualPID.cxx:3417
 AliTPCcalibResidualPID.cxx:3418
 AliTPCcalibResidualPID.cxx:3419
 AliTPCcalibResidualPID.cxx:3420
 AliTPCcalibResidualPID.cxx:3421
 AliTPCcalibResidualPID.cxx:3422
 AliTPCcalibResidualPID.cxx:3423
 AliTPCcalibResidualPID.cxx:3424
 AliTPCcalibResidualPID.cxx:3425
 AliTPCcalibResidualPID.cxx:3426
 AliTPCcalibResidualPID.cxx:3427
 AliTPCcalibResidualPID.cxx:3428
 AliTPCcalibResidualPID.cxx:3429
 AliTPCcalibResidualPID.cxx:3430
 AliTPCcalibResidualPID.cxx:3431
 AliTPCcalibResidualPID.cxx:3432
 AliTPCcalibResidualPID.cxx:3433
 AliTPCcalibResidualPID.cxx:3434
 AliTPCcalibResidualPID.cxx:3435
 AliTPCcalibResidualPID.cxx:3436
 AliTPCcalibResidualPID.cxx:3437
 AliTPCcalibResidualPID.cxx:3438
 AliTPCcalibResidualPID.cxx:3439
 AliTPCcalibResidualPID.cxx:3440
 AliTPCcalibResidualPID.cxx:3441
 AliTPCcalibResidualPID.cxx:3442
 AliTPCcalibResidualPID.cxx:3443
 AliTPCcalibResidualPID.cxx:3444
 AliTPCcalibResidualPID.cxx:3445
 AliTPCcalibResidualPID.cxx:3446
 AliTPCcalibResidualPID.cxx:3447
 AliTPCcalibResidualPID.cxx:3448
 AliTPCcalibResidualPID.cxx:3449
 AliTPCcalibResidualPID.cxx:3450
 AliTPCcalibResidualPID.cxx:3451
 AliTPCcalibResidualPID.cxx:3452
 AliTPCcalibResidualPID.cxx:3453
 AliTPCcalibResidualPID.cxx:3454
 AliTPCcalibResidualPID.cxx:3455
 AliTPCcalibResidualPID.cxx:3456
 AliTPCcalibResidualPID.cxx:3457
 AliTPCcalibResidualPID.cxx:3458
 AliTPCcalibResidualPID.cxx:3459
 AliTPCcalibResidualPID.cxx:3460
 AliTPCcalibResidualPID.cxx:3461
 AliTPCcalibResidualPID.cxx:3462
 AliTPCcalibResidualPID.cxx:3463
 AliTPCcalibResidualPID.cxx:3464
 AliTPCcalibResidualPID.cxx:3465
 AliTPCcalibResidualPID.cxx:3466
 AliTPCcalibResidualPID.cxx:3467
 AliTPCcalibResidualPID.cxx:3468
 AliTPCcalibResidualPID.cxx:3469
 AliTPCcalibResidualPID.cxx:3470
 AliTPCcalibResidualPID.cxx:3471
 AliTPCcalibResidualPID.cxx:3472
 AliTPCcalibResidualPID.cxx:3473
 AliTPCcalibResidualPID.cxx:3474
 AliTPCcalibResidualPID.cxx:3475
 AliTPCcalibResidualPID.cxx:3476
 AliTPCcalibResidualPID.cxx:3477
 AliTPCcalibResidualPID.cxx:3478
 AliTPCcalibResidualPID.cxx:3479
 AliTPCcalibResidualPID.cxx:3480
 AliTPCcalibResidualPID.cxx:3481
 AliTPCcalibResidualPID.cxx:3482
 AliTPCcalibResidualPID.cxx:3483
 AliTPCcalibResidualPID.cxx:3484
 AliTPCcalibResidualPID.cxx:3485
 AliTPCcalibResidualPID.cxx:3486
 AliTPCcalibResidualPID.cxx:3487
 AliTPCcalibResidualPID.cxx:3488
 AliTPCcalibResidualPID.cxx:3489
 AliTPCcalibResidualPID.cxx:3490
 AliTPCcalibResidualPID.cxx:3491
 AliTPCcalibResidualPID.cxx:3492
 AliTPCcalibResidualPID.cxx:3493
 AliTPCcalibResidualPID.cxx:3494
 AliTPCcalibResidualPID.cxx:3495
 AliTPCcalibResidualPID.cxx:3496
 AliTPCcalibResidualPID.cxx:3497
 AliTPCcalibResidualPID.cxx:3498
 AliTPCcalibResidualPID.cxx:3499
 AliTPCcalibResidualPID.cxx:3500
 AliTPCcalibResidualPID.cxx:3501
 AliTPCcalibResidualPID.cxx:3502
 AliTPCcalibResidualPID.cxx:3503
 AliTPCcalibResidualPID.cxx:3504
 AliTPCcalibResidualPID.cxx:3505
 AliTPCcalibResidualPID.cxx:3506
 AliTPCcalibResidualPID.cxx:3507
 AliTPCcalibResidualPID.cxx:3508
 AliTPCcalibResidualPID.cxx:3509
 AliTPCcalibResidualPID.cxx:3510
 AliTPCcalibResidualPID.cxx:3511
 AliTPCcalibResidualPID.cxx:3512
 AliTPCcalibResidualPID.cxx:3513
 AliTPCcalibResidualPID.cxx:3514
 AliTPCcalibResidualPID.cxx:3515
 AliTPCcalibResidualPID.cxx:3516
 AliTPCcalibResidualPID.cxx:3517
 AliTPCcalibResidualPID.cxx:3518
 AliTPCcalibResidualPID.cxx:3519
 AliTPCcalibResidualPID.cxx:3520
 AliTPCcalibResidualPID.cxx:3521
 AliTPCcalibResidualPID.cxx:3522
 AliTPCcalibResidualPID.cxx:3523
 AliTPCcalibResidualPID.cxx:3524
 AliTPCcalibResidualPID.cxx:3525
 AliTPCcalibResidualPID.cxx:3526
 AliTPCcalibResidualPID.cxx:3527
 AliTPCcalibResidualPID.cxx:3528
 AliTPCcalibResidualPID.cxx:3529
 AliTPCcalibResidualPID.cxx:3530
 AliTPCcalibResidualPID.cxx:3531
 AliTPCcalibResidualPID.cxx:3532
 AliTPCcalibResidualPID.cxx:3533
 AliTPCcalibResidualPID.cxx:3534
 AliTPCcalibResidualPID.cxx:3535
 AliTPCcalibResidualPID.cxx:3536
 AliTPCcalibResidualPID.cxx:3537
 AliTPCcalibResidualPID.cxx:3538
 AliTPCcalibResidualPID.cxx:3539
 AliTPCcalibResidualPID.cxx:3540
 AliTPCcalibResidualPID.cxx:3541
 AliTPCcalibResidualPID.cxx:3542
 AliTPCcalibResidualPID.cxx:3543
 AliTPCcalibResidualPID.cxx:3544
 AliTPCcalibResidualPID.cxx:3545
 AliTPCcalibResidualPID.cxx:3546
 AliTPCcalibResidualPID.cxx:3547
 AliTPCcalibResidualPID.cxx:3548
 AliTPCcalibResidualPID.cxx:3549
 AliTPCcalibResidualPID.cxx:3550
 AliTPCcalibResidualPID.cxx:3551
 AliTPCcalibResidualPID.cxx:3552
 AliTPCcalibResidualPID.cxx:3553
 AliTPCcalibResidualPID.cxx:3554
 AliTPCcalibResidualPID.cxx:3555
 AliTPCcalibResidualPID.cxx:3556
 AliTPCcalibResidualPID.cxx:3557
 AliTPCcalibResidualPID.cxx:3558
 AliTPCcalibResidualPID.cxx:3559
 AliTPCcalibResidualPID.cxx:3560
 AliTPCcalibResidualPID.cxx:3561
 AliTPCcalibResidualPID.cxx:3562
 AliTPCcalibResidualPID.cxx:3563
 AliTPCcalibResidualPID.cxx:3564
 AliTPCcalibResidualPID.cxx:3565
 AliTPCcalibResidualPID.cxx:3566
 AliTPCcalibResidualPID.cxx:3567
 AliTPCcalibResidualPID.cxx:3568
 AliTPCcalibResidualPID.cxx:3569
 AliTPCcalibResidualPID.cxx:3570
 AliTPCcalibResidualPID.cxx:3571
 AliTPCcalibResidualPID.cxx:3572
 AliTPCcalibResidualPID.cxx:3573
 AliTPCcalibResidualPID.cxx:3574
 AliTPCcalibResidualPID.cxx:3575
 AliTPCcalibResidualPID.cxx:3576
 AliTPCcalibResidualPID.cxx:3577
 AliTPCcalibResidualPID.cxx:3578
 AliTPCcalibResidualPID.cxx:3579
 AliTPCcalibResidualPID.cxx:3580
 AliTPCcalibResidualPID.cxx:3581
 AliTPCcalibResidualPID.cxx:3582
 AliTPCcalibResidualPID.cxx:3583
 AliTPCcalibResidualPID.cxx:3584
 AliTPCcalibResidualPID.cxx:3585
 AliTPCcalibResidualPID.cxx:3586
 AliTPCcalibResidualPID.cxx:3587
 AliTPCcalibResidualPID.cxx:3588
 AliTPCcalibResidualPID.cxx:3589
 AliTPCcalibResidualPID.cxx:3590
 AliTPCcalibResidualPID.cxx:3591
 AliTPCcalibResidualPID.cxx:3592
 AliTPCcalibResidualPID.cxx:3593
 AliTPCcalibResidualPID.cxx:3594
 AliTPCcalibResidualPID.cxx:3595
 AliTPCcalibResidualPID.cxx:3596
 AliTPCcalibResidualPID.cxx:3597
 AliTPCcalibResidualPID.cxx:3598
 AliTPCcalibResidualPID.cxx:3599
 AliTPCcalibResidualPID.cxx:3600
 AliTPCcalibResidualPID.cxx:3601
 AliTPCcalibResidualPID.cxx:3602
 AliTPCcalibResidualPID.cxx:3603
 AliTPCcalibResidualPID.cxx:3604
 AliTPCcalibResidualPID.cxx:3605
 AliTPCcalibResidualPID.cxx:3606
 AliTPCcalibResidualPID.cxx:3607
 AliTPCcalibResidualPID.cxx:3608
 AliTPCcalibResidualPID.cxx:3609
 AliTPCcalibResidualPID.cxx:3610
 AliTPCcalibResidualPID.cxx:3611
 AliTPCcalibResidualPID.cxx:3612
 AliTPCcalibResidualPID.cxx:3613
 AliTPCcalibResidualPID.cxx:3614
 AliTPCcalibResidualPID.cxx:3615
 AliTPCcalibResidualPID.cxx:3616
 AliTPCcalibResidualPID.cxx:3617
 AliTPCcalibResidualPID.cxx:3618
 AliTPCcalibResidualPID.cxx:3619
 AliTPCcalibResidualPID.cxx:3620
 AliTPCcalibResidualPID.cxx:3621
 AliTPCcalibResidualPID.cxx:3622
 AliTPCcalibResidualPID.cxx:3623
 AliTPCcalibResidualPID.cxx:3624
 AliTPCcalibResidualPID.cxx:3625
 AliTPCcalibResidualPID.cxx:3626
 AliTPCcalibResidualPID.cxx:3627
 AliTPCcalibResidualPID.cxx:3628
 AliTPCcalibResidualPID.cxx:3629
 AliTPCcalibResidualPID.cxx:3630
 AliTPCcalibResidualPID.cxx:3631
 AliTPCcalibResidualPID.cxx:3632
 AliTPCcalibResidualPID.cxx:3633
 AliTPCcalibResidualPID.cxx:3634
 AliTPCcalibResidualPID.cxx:3635
 AliTPCcalibResidualPID.cxx:3636
 AliTPCcalibResidualPID.cxx:3637
 AliTPCcalibResidualPID.cxx:3638
 AliTPCcalibResidualPID.cxx:3639
 AliTPCcalibResidualPID.cxx:3640
 AliTPCcalibResidualPID.cxx:3641
 AliTPCcalibResidualPID.cxx:3642
 AliTPCcalibResidualPID.cxx:3643
 AliTPCcalibResidualPID.cxx:3644
 AliTPCcalibResidualPID.cxx:3645
 AliTPCcalibResidualPID.cxx:3646
 AliTPCcalibResidualPID.cxx:3647
 AliTPCcalibResidualPID.cxx:3648
 AliTPCcalibResidualPID.cxx:3649
 AliTPCcalibResidualPID.cxx:3650
 AliTPCcalibResidualPID.cxx:3651
 AliTPCcalibResidualPID.cxx:3652
 AliTPCcalibResidualPID.cxx:3653
 AliTPCcalibResidualPID.cxx:3654
 AliTPCcalibResidualPID.cxx:3655
 AliTPCcalibResidualPID.cxx:3656
 AliTPCcalibResidualPID.cxx:3657
 AliTPCcalibResidualPID.cxx:3658
 AliTPCcalibResidualPID.cxx:3659
 AliTPCcalibResidualPID.cxx:3660
 AliTPCcalibResidualPID.cxx:3661
 AliTPCcalibResidualPID.cxx:3662
 AliTPCcalibResidualPID.cxx:3663
 AliTPCcalibResidualPID.cxx:3664
 AliTPCcalibResidualPID.cxx:3665
 AliTPCcalibResidualPID.cxx:3666
 AliTPCcalibResidualPID.cxx:3667
 AliTPCcalibResidualPID.cxx:3668
 AliTPCcalibResidualPID.cxx:3669
 AliTPCcalibResidualPID.cxx:3670
 AliTPCcalibResidualPID.cxx:3671
 AliTPCcalibResidualPID.cxx:3672
 AliTPCcalibResidualPID.cxx:3673
 AliTPCcalibResidualPID.cxx:3674
 AliTPCcalibResidualPID.cxx:3675
 AliTPCcalibResidualPID.cxx:3676
 AliTPCcalibResidualPID.cxx:3677
 AliTPCcalibResidualPID.cxx:3678
 AliTPCcalibResidualPID.cxx:3679
 AliTPCcalibResidualPID.cxx:3680
 AliTPCcalibResidualPID.cxx:3681
 AliTPCcalibResidualPID.cxx:3682
 AliTPCcalibResidualPID.cxx:3683
 AliTPCcalibResidualPID.cxx:3684
 AliTPCcalibResidualPID.cxx:3685
 AliTPCcalibResidualPID.cxx:3686
 AliTPCcalibResidualPID.cxx:3687
 AliTPCcalibResidualPID.cxx:3688
 AliTPCcalibResidualPID.cxx:3689
 AliTPCcalibResidualPID.cxx:3690
 AliTPCcalibResidualPID.cxx:3691
 AliTPCcalibResidualPID.cxx:3692
 AliTPCcalibResidualPID.cxx:3693
 AliTPCcalibResidualPID.cxx:3694
 AliTPCcalibResidualPID.cxx:3695
 AliTPCcalibResidualPID.cxx:3696
 AliTPCcalibResidualPID.cxx:3697
 AliTPCcalibResidualPID.cxx:3698
 AliTPCcalibResidualPID.cxx:3699
 AliTPCcalibResidualPID.cxx:3700
 AliTPCcalibResidualPID.cxx:3701
 AliTPCcalibResidualPID.cxx:3702
 AliTPCcalibResidualPID.cxx:3703
 AliTPCcalibResidualPID.cxx:3704
 AliTPCcalibResidualPID.cxx:3705
 AliTPCcalibResidualPID.cxx:3706
 AliTPCcalibResidualPID.cxx:3707
 AliTPCcalibResidualPID.cxx:3708
 AliTPCcalibResidualPID.cxx:3709
 AliTPCcalibResidualPID.cxx:3710
 AliTPCcalibResidualPID.cxx:3711
 AliTPCcalibResidualPID.cxx:3712
 AliTPCcalibResidualPID.cxx:3713
 AliTPCcalibResidualPID.cxx:3714
 AliTPCcalibResidualPID.cxx:3715
 AliTPCcalibResidualPID.cxx:3716
 AliTPCcalibResidualPID.cxx:3717
 AliTPCcalibResidualPID.cxx:3718
 AliTPCcalibResidualPID.cxx:3719
 AliTPCcalibResidualPID.cxx:3720
 AliTPCcalibResidualPID.cxx:3721
 AliTPCcalibResidualPID.cxx:3722
 AliTPCcalibResidualPID.cxx:3723
 AliTPCcalibResidualPID.cxx:3724
 AliTPCcalibResidualPID.cxx:3725
 AliTPCcalibResidualPID.cxx:3726
 AliTPCcalibResidualPID.cxx:3727
 AliTPCcalibResidualPID.cxx:3728
 AliTPCcalibResidualPID.cxx:3729
 AliTPCcalibResidualPID.cxx:3730
 AliTPCcalibResidualPID.cxx:3731
 AliTPCcalibResidualPID.cxx:3732
 AliTPCcalibResidualPID.cxx:3733
 AliTPCcalibResidualPID.cxx:3734
 AliTPCcalibResidualPID.cxx:3735
 AliTPCcalibResidualPID.cxx:3736
 AliTPCcalibResidualPID.cxx:3737
 AliTPCcalibResidualPID.cxx:3738
 AliTPCcalibResidualPID.cxx:3739
 AliTPCcalibResidualPID.cxx:3740
 AliTPCcalibResidualPID.cxx:3741
 AliTPCcalibResidualPID.cxx:3742
 AliTPCcalibResidualPID.cxx:3743
 AliTPCcalibResidualPID.cxx:3744
 AliTPCcalibResidualPID.cxx:3745
 AliTPCcalibResidualPID.cxx:3746
 AliTPCcalibResidualPID.cxx:3747
 AliTPCcalibResidualPID.cxx:3748
 AliTPCcalibResidualPID.cxx:3749
 AliTPCcalibResidualPID.cxx:3750
 AliTPCcalibResidualPID.cxx:3751
 AliTPCcalibResidualPID.cxx:3752
 AliTPCcalibResidualPID.cxx:3753
 AliTPCcalibResidualPID.cxx:3754
 AliTPCcalibResidualPID.cxx:3755
 AliTPCcalibResidualPID.cxx:3756
 AliTPCcalibResidualPID.cxx:3757
 AliTPCcalibResidualPID.cxx:3758
 AliTPCcalibResidualPID.cxx:3759
 AliTPCcalibResidualPID.cxx:3760
 AliTPCcalibResidualPID.cxx:3761
 AliTPCcalibResidualPID.cxx:3762
 AliTPCcalibResidualPID.cxx:3763
 AliTPCcalibResidualPID.cxx:3764
 AliTPCcalibResidualPID.cxx:3765
 AliTPCcalibResidualPID.cxx:3766
 AliTPCcalibResidualPID.cxx:3767
 AliTPCcalibResidualPID.cxx:3768
 AliTPCcalibResidualPID.cxx:3769
 AliTPCcalibResidualPID.cxx:3770
 AliTPCcalibResidualPID.cxx:3771
 AliTPCcalibResidualPID.cxx:3772
 AliTPCcalibResidualPID.cxx:3773
 AliTPCcalibResidualPID.cxx:3774
 AliTPCcalibResidualPID.cxx:3775
 AliTPCcalibResidualPID.cxx:3776
 AliTPCcalibResidualPID.cxx:3777
 AliTPCcalibResidualPID.cxx:3778
 AliTPCcalibResidualPID.cxx:3779
 AliTPCcalibResidualPID.cxx:3780
 AliTPCcalibResidualPID.cxx:3781
 AliTPCcalibResidualPID.cxx:3782
 AliTPCcalibResidualPID.cxx:3783
 AliTPCcalibResidualPID.cxx:3784
 AliTPCcalibResidualPID.cxx:3785
 AliTPCcalibResidualPID.cxx:3786
 AliTPCcalibResidualPID.cxx:3787
 AliTPCcalibResidualPID.cxx:3788
 AliTPCcalibResidualPID.cxx:3789
 AliTPCcalibResidualPID.cxx:3790
 AliTPCcalibResidualPID.cxx:3791
 AliTPCcalibResidualPID.cxx:3792
 AliTPCcalibResidualPID.cxx:3793
 AliTPCcalibResidualPID.cxx:3794
 AliTPCcalibResidualPID.cxx:3795
 AliTPCcalibResidualPID.cxx:3796
 AliTPCcalibResidualPID.cxx:3797
 AliTPCcalibResidualPID.cxx:3798
 AliTPCcalibResidualPID.cxx:3799
 AliTPCcalibResidualPID.cxx:3800
 AliTPCcalibResidualPID.cxx:3801
 AliTPCcalibResidualPID.cxx:3802
 AliTPCcalibResidualPID.cxx:3803
 AliTPCcalibResidualPID.cxx:3804
 AliTPCcalibResidualPID.cxx:3805
 AliTPCcalibResidualPID.cxx:3806
 AliTPCcalibResidualPID.cxx:3807
 AliTPCcalibResidualPID.cxx:3808
 AliTPCcalibResidualPID.cxx:3809
 AliTPCcalibResidualPID.cxx:3810
 AliTPCcalibResidualPID.cxx:3811
 AliTPCcalibResidualPID.cxx:3812
 AliTPCcalibResidualPID.cxx:3813
 AliTPCcalibResidualPID.cxx:3814
 AliTPCcalibResidualPID.cxx:3815
 AliTPCcalibResidualPID.cxx:3816
 AliTPCcalibResidualPID.cxx:3817
 AliTPCcalibResidualPID.cxx:3818
 AliTPCcalibResidualPID.cxx:3819
 AliTPCcalibResidualPID.cxx:3820
 AliTPCcalibResidualPID.cxx:3821
 AliTPCcalibResidualPID.cxx:3822
 AliTPCcalibResidualPID.cxx:3823
 AliTPCcalibResidualPID.cxx:3824
 AliTPCcalibResidualPID.cxx:3825
 AliTPCcalibResidualPID.cxx:3826
 AliTPCcalibResidualPID.cxx:3827
 AliTPCcalibResidualPID.cxx:3828
 AliTPCcalibResidualPID.cxx:3829
 AliTPCcalibResidualPID.cxx:3830
 AliTPCcalibResidualPID.cxx:3831
 AliTPCcalibResidualPID.cxx:3832
 AliTPCcalibResidualPID.cxx:3833
 AliTPCcalibResidualPID.cxx:3834
 AliTPCcalibResidualPID.cxx:3835
 AliTPCcalibResidualPID.cxx:3836
 AliTPCcalibResidualPID.cxx:3837
 AliTPCcalibResidualPID.cxx:3838
 AliTPCcalibResidualPID.cxx:3839
 AliTPCcalibResidualPID.cxx:3840
 AliTPCcalibResidualPID.cxx:3841
 AliTPCcalibResidualPID.cxx:3842
 AliTPCcalibResidualPID.cxx:3843
 AliTPCcalibResidualPID.cxx:3844
 AliTPCcalibResidualPID.cxx:3845
 AliTPCcalibResidualPID.cxx:3846
 AliTPCcalibResidualPID.cxx:3847
 AliTPCcalibResidualPID.cxx:3848
 AliTPCcalibResidualPID.cxx:3849
 AliTPCcalibResidualPID.cxx:3850
 AliTPCcalibResidualPID.cxx:3851
 AliTPCcalibResidualPID.cxx:3852
 AliTPCcalibResidualPID.cxx:3853
 AliTPCcalibResidualPID.cxx:3854
 AliTPCcalibResidualPID.cxx:3855
 AliTPCcalibResidualPID.cxx:3856
 AliTPCcalibResidualPID.cxx:3857
 AliTPCcalibResidualPID.cxx:3858
 AliTPCcalibResidualPID.cxx:3859
 AliTPCcalibResidualPID.cxx:3860
 AliTPCcalibResidualPID.cxx:3861
 AliTPCcalibResidualPID.cxx:3862
 AliTPCcalibResidualPID.cxx:3863
 AliTPCcalibResidualPID.cxx:3864
 AliTPCcalibResidualPID.cxx:3865
 AliTPCcalibResidualPID.cxx:3866
 AliTPCcalibResidualPID.cxx:3867
 AliTPCcalibResidualPID.cxx:3868
 AliTPCcalibResidualPID.cxx:3869
 AliTPCcalibResidualPID.cxx:3870
 AliTPCcalibResidualPID.cxx:3871
 AliTPCcalibResidualPID.cxx:3872
 AliTPCcalibResidualPID.cxx:3873
 AliTPCcalibResidualPID.cxx:3874
 AliTPCcalibResidualPID.cxx:3875
 AliTPCcalibResidualPID.cxx:3876
 AliTPCcalibResidualPID.cxx:3877
 AliTPCcalibResidualPID.cxx:3878
 AliTPCcalibResidualPID.cxx:3879
 AliTPCcalibResidualPID.cxx:3880
 AliTPCcalibResidualPID.cxx:3881
 AliTPCcalibResidualPID.cxx:3882
 AliTPCcalibResidualPID.cxx:3883
 AliTPCcalibResidualPID.cxx:3884
 AliTPCcalibResidualPID.cxx:3885
 AliTPCcalibResidualPID.cxx:3886
 AliTPCcalibResidualPID.cxx:3887
 AliTPCcalibResidualPID.cxx:3888
 AliTPCcalibResidualPID.cxx:3889
 AliTPCcalibResidualPID.cxx:3890
 AliTPCcalibResidualPID.cxx:3891
 AliTPCcalibResidualPID.cxx:3892
 AliTPCcalibResidualPID.cxx:3893
 AliTPCcalibResidualPID.cxx:3894
 AliTPCcalibResidualPID.cxx:3895
 AliTPCcalibResidualPID.cxx:3896
 AliTPCcalibResidualPID.cxx:3897
 AliTPCcalibResidualPID.cxx:3898
 AliTPCcalibResidualPID.cxx:3899
 AliTPCcalibResidualPID.cxx:3900
 AliTPCcalibResidualPID.cxx:3901
 AliTPCcalibResidualPID.cxx:3902
 AliTPCcalibResidualPID.cxx:3903
 AliTPCcalibResidualPID.cxx:3904
 AliTPCcalibResidualPID.cxx:3905
 AliTPCcalibResidualPID.cxx:3906
 AliTPCcalibResidualPID.cxx:3907
 AliTPCcalibResidualPID.cxx:3908
 AliTPCcalibResidualPID.cxx:3909
 AliTPCcalibResidualPID.cxx:3910
 AliTPCcalibResidualPID.cxx:3911
 AliTPCcalibResidualPID.cxx:3912
 AliTPCcalibResidualPID.cxx:3913
 AliTPCcalibResidualPID.cxx:3914
 AliTPCcalibResidualPID.cxx:3915
 AliTPCcalibResidualPID.cxx:3916
 AliTPCcalibResidualPID.cxx:3917
 AliTPCcalibResidualPID.cxx:3918
 AliTPCcalibResidualPID.cxx:3919
 AliTPCcalibResidualPID.cxx:3920
 AliTPCcalibResidualPID.cxx:3921
 AliTPCcalibResidualPID.cxx:3922
 AliTPCcalibResidualPID.cxx:3923
 AliTPCcalibResidualPID.cxx:3924
 AliTPCcalibResidualPID.cxx:3925
 AliTPCcalibResidualPID.cxx:3926
 AliTPCcalibResidualPID.cxx:3927
 AliTPCcalibResidualPID.cxx:3928
 AliTPCcalibResidualPID.cxx:3929
 AliTPCcalibResidualPID.cxx:3930
 AliTPCcalibResidualPID.cxx:3931
 AliTPCcalibResidualPID.cxx:3932
 AliTPCcalibResidualPID.cxx:3933
 AliTPCcalibResidualPID.cxx:3934
 AliTPCcalibResidualPID.cxx:3935
 AliTPCcalibResidualPID.cxx:3936
 AliTPCcalibResidualPID.cxx:3937
 AliTPCcalibResidualPID.cxx:3938
 AliTPCcalibResidualPID.cxx:3939
 AliTPCcalibResidualPID.cxx:3940
 AliTPCcalibResidualPID.cxx:3941
 AliTPCcalibResidualPID.cxx:3942
 AliTPCcalibResidualPID.cxx:3943
 AliTPCcalibResidualPID.cxx:3944
 AliTPCcalibResidualPID.cxx:3945
 AliTPCcalibResidualPID.cxx:3946
 AliTPCcalibResidualPID.cxx:3947
 AliTPCcalibResidualPID.cxx:3948
 AliTPCcalibResidualPID.cxx:3949
 AliTPCcalibResidualPID.cxx:3950
 AliTPCcalibResidualPID.cxx:3951
 AliTPCcalibResidualPID.cxx:3952
 AliTPCcalibResidualPID.cxx:3953
 AliTPCcalibResidualPID.cxx:3954
 AliTPCcalibResidualPID.cxx:3955
 AliTPCcalibResidualPID.cxx:3956
 AliTPCcalibResidualPID.cxx:3957
 AliTPCcalibResidualPID.cxx:3958
 AliTPCcalibResidualPID.cxx:3959
 AliTPCcalibResidualPID.cxx:3960
 AliTPCcalibResidualPID.cxx:3961
 AliTPCcalibResidualPID.cxx:3962
 AliTPCcalibResidualPID.cxx:3963
 AliTPCcalibResidualPID.cxx:3964
 AliTPCcalibResidualPID.cxx:3965
 AliTPCcalibResidualPID.cxx:3966
 AliTPCcalibResidualPID.cxx:3967
 AliTPCcalibResidualPID.cxx:3968
 AliTPCcalibResidualPID.cxx:3969
 AliTPCcalibResidualPID.cxx:3970
 AliTPCcalibResidualPID.cxx:3971
 AliTPCcalibResidualPID.cxx:3972
 AliTPCcalibResidualPID.cxx:3973
 AliTPCcalibResidualPID.cxx:3974
 AliTPCcalibResidualPID.cxx:3975
 AliTPCcalibResidualPID.cxx:3976
 AliTPCcalibResidualPID.cxx:3977
 AliTPCcalibResidualPID.cxx:3978
 AliTPCcalibResidualPID.cxx:3979
 AliTPCcalibResidualPID.cxx:3980
 AliTPCcalibResidualPID.cxx:3981
 AliTPCcalibResidualPID.cxx:3982
 AliTPCcalibResidualPID.cxx:3983
 AliTPCcalibResidualPID.cxx:3984
 AliTPCcalibResidualPID.cxx:3985
 AliTPCcalibResidualPID.cxx:3986
 AliTPCcalibResidualPID.cxx:3987
 AliTPCcalibResidualPID.cxx:3988
 AliTPCcalibResidualPID.cxx:3989
 AliTPCcalibResidualPID.cxx:3990
 AliTPCcalibResidualPID.cxx:3991
 AliTPCcalibResidualPID.cxx:3992
 AliTPCcalibResidualPID.cxx:3993
 AliTPCcalibResidualPID.cxx:3994
 AliTPCcalibResidualPID.cxx:3995
 AliTPCcalibResidualPID.cxx:3996
 AliTPCcalibResidualPID.cxx:3997
 AliTPCcalibResidualPID.cxx:3998
 AliTPCcalibResidualPID.cxx:3999
 AliTPCcalibResidualPID.cxx:4000
 AliTPCcalibResidualPID.cxx:4001
 AliTPCcalibResidualPID.cxx:4002
 AliTPCcalibResidualPID.cxx:4003
 AliTPCcalibResidualPID.cxx:4004
 AliTPCcalibResidualPID.cxx:4005
 AliTPCcalibResidualPID.cxx:4006
 AliTPCcalibResidualPID.cxx:4007
 AliTPCcalibResidualPID.cxx:4008
 AliTPCcalibResidualPID.cxx:4009
 AliTPCcalibResidualPID.cxx:4010