ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, proviyaded that the above copyright notice appears in all *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purapose. It is         *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////
//                                                                       //
//                                                                       //
// Analysis for identified charged hadron spectra in pPb.                //
//                                                                       //
//                                                                       //
///////////////////////////////////////////////////////////////////////////

#include "Riostream.h"
#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2D.h"
#include "TH3F.h"
#include "TList.h"
#include "TMath.h"
#include "TCanvas.h"
#include "TObjArray.h"
#include "TF1.h"
#include "TFile.h"

#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"

#include "AliHeader.h"
#include "AliGenPythiaEventHeader.h"
#include "AliGenCocktailEventHeader.h"

#include "AliPID.h"
#include "AliESDtrackCuts.h"
#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrack.h"
#include "AliESDpid.h"
#include "AliCentrality.h"
#include "AliESDUtils.h"
#include "AliMultiplicity.h"

#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"

#include "AliLog.h"                 

#include "AliAnalysisTPCTOFpA.h"


ClassImp(AliAnalysisTPCTOFpA)

//________________________________________________________________________
AliAnalysisTPCTOFpA::AliAnalysisTPCTOFpA() 
  : AliAnalysisTaskSE("TaskChargedHadron"), fESD(0), fListHist(0), fESDtrackCuts(0),fESDTrackCutsMult(0),fESDpid(0),
  fMCtrue(0),
  fOnlyQA(0),
  fUseHBTmultiplicity(0),
  fUseTPConlyTracks(0),
  fSaveMotherPDG(0),
  fSmallTHnSparse(0),
  fIspA(0),
  fRapCMS(0),
  fCentEst(0),
  fTOFmisMatch(0),
  fTRDinReject(0),
  fTOFwindow(0),
  fDCAzCut(0),
  fCrossedRows(0),
  fRatioRowsClusters(0),
  fTPCnSigmaCutLow(0),
  fTPCnSigmaCutHigh(0),
  fRapidityCutLow(0),
  fRapidityCutHigh(0),
  fEvenDCAbinning(0),
  fAlephParameters(),
  fHistRealTracks(0),
  fHistMCparticles(0),
  fHistPidQA(0),
  fHistMult(0),
  fHistCentrality(0),
  fHistTOFwindow(0)
{
  // default Constructor
  /* fast compilation test
     gSystem->Load("libANALYSIS");
     gSystem->Load("libANALYSISalice");
     .L /d/alice09/akalweit/train/trunk/akalweit_hadronSpectra/AliAnalysisTPCTOFpA.cxx++
   */
}


//________________________________________________________________________
AliAnalysisTPCTOFpA::AliAnalysisTPCTOFpA(const char *name) 
  : AliAnalysisTaskSE(name), fESD(0), fListHist(0), fESDtrackCuts(0),fESDTrackCutsMult(0),fESDpid(0),
    fMCtrue(0),
    fOnlyQA(0),
    fUseHBTmultiplicity(0),
    fUseTPConlyTracks(0),
    fSaveMotherPDG(0),
    fSmallTHnSparse(0),
    fIspA(0),
    fRapCMS(0),
    fCentEst(0),
    fTOFmisMatch(0),
    fTRDinReject(0),
    fTOFwindow(0),
    fDCAzCut(0),
    fCrossedRows(0),
    fRatioRowsClusters(0),
    fTPCnSigmaCutLow(0),
    fTPCnSigmaCutHigh(0),
    fRapidityCutLow(0),
    fRapidityCutHigh(0),
    fEvenDCAbinning(0),
    fAlephParameters(),
    fHistRealTracks(0),
    fHistMCparticles(0),
    fHistPidQA(0),
    fHistMult(0),
    fHistCentrality(0),
    fHistTOFwindow(0)
    {
  //
  // standard constructur which should be used
  //
  Printf("*** CONSTRUCTOR CALLED ****");
  //
  fMCtrue = kTRUE; 
  fOnlyQA = kFALSE;
  fUseHBTmultiplicity = kTRUE;
  fUseTPConlyTracks = kFALSE;


  fUseTPConlyTracks =kFALSE;
  fSaveMotherPDG = kFALSE;
  fSmallTHnSparse = kTRUE;
  fTPCnSigmaCutLow = -3.;
  fTPCnSigmaCutHigh = 3.;
  fRapidityCutLow = 0.;
  fRapidityCutHigh = 0.5;
  fEvenDCAbinning = kFALSE;
  fIspA = kTRUE;
  fRapCMS = kTRUE;
  fCentEst = "V0A";
  fEvenDCAbinning = kFALSE;
  fTOFmisMatch = 2;
  fTRDinReject = kFALSE;
  fTOFwindow = 10.;
  fDCAzCut = 2.;
  fCrossedRows = 70;
  fRatioRowsClusters = 0.8;



  /* real */
  fAlephParameters[0] = 0.0283086;
  fAlephParameters[1] = 2.63394e+01;
  fAlephParameters[2] = 5.04114e-11;
  fAlephParameters[3] = 2.12543e+00;
  fAlephParameters[4] = 4.88663e+00;
  //
  // initialize PID object
  //
  //fESDpid = new AliESDpid();
  //
  // create track cuts
  //
  fESDtrackCuts = new AliESDtrackCuts("AliESDtrackCuts","AliESDtrackCuts");
  //
  //Initialize();
  // Output slot #0 writes into a TList container
  DefineOutput(1, TList::Class());

}


//________________________________________________________________________
void AliAnalysisTPCTOFpA::Initialize()
{
  //
  // updating parameters in case of changes
  //
  // 1. pid parameters
  //
  //fESDpid->GetTPCResponse().SetBetheBlochParameters(fAlephParameters[0],fAlephParameters[1],fAlephParameters[2],fAlephParameters[3],fAlephParameters[4]);
  //
  // 2. track cuts
  //
  /*
  fESDtrackCuts->SetMaxCovDiagonalElements(2, 2, 0.5, 0.5, 2);  // BEWARE STANDARD VALUES ARE: 2, 2, 0.5, 0.5, 2
  fESDtrackCuts->SetMaxNsigmaToVertex(3);
  fESDtrackCuts->SetRequireSigmaToVertex(kTRUE);
  fESDtrackCuts->SetAcceptKinkDaughters(kFALSE);
  fESDtrackCuts->SetMinNClustersTPC(70);
  fESDtrackCuts->SetMaxChi2PerClusterTPC(4);
  fESDtrackCuts->SetMaxDCAToVertexXY(3);
  fESDtrackCuts->SetMaxDCAToVertexZ(3);
  fESDtrackCuts->SetRequireTPCRefit(kTRUE);
  fESDtrackCuts->SetRequireITSRefit(kTRUE);
  fESDtrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny); //TEMPORARY <-> REMOVE
  fESDtrackCuts->SetMinNClustersITS(3);
  */
  //fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE); // kTRUE = sel. primaries --> patch for the moment, do TFractionFitter later


  if (!fUseTPConlyTracks) {
    fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE,kTRUE);
	  fESDtrackCuts->SetMaxDCAToVertexXY(3);
	  //fESDtrackCuts->SetMaxDCAToVertexZ(2);
	  fESDtrackCuts->SetEtaRange(-0.8,0.8);
  }
  else {
	  //fESDtrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
	  fESDtrackCuts->SetMinNClustersTPC(70);
	  fESDtrackCuts->SetMaxChi2PerClusterTPC(4);
	  fESDtrackCuts->SetAcceptKinkDaughters(kFALSE);
	  fESDtrackCuts->SetRequireTPCRefit(kFALSE);

	  fESDtrackCuts->SetMaxDCAToVertexXY(15);
	  fESDtrackCuts->SetMaxDCAToVertexZ(6);
	  fESDtrackCuts->SetDCAToVertex2D(kFALSE);
	  fESDtrackCuts->SetRequireSigmaToVertex(kFALSE);

	  fESDtrackCuts->SetEtaRange(-0.9,0.9);
  }


  //change DCA z cut here with flags set before:
  fESDtrackCuts->SetMaxDCAToVertexZ(fDCAzCut);
  fESDtrackCuts->SetMinNCrossedRowsTPC(fCrossedRows);
  fESDtrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(fRatioRowsClusters);

  //
  //
  //
  //
  fESDTrackCutsMult = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE);
  fESDTrackCutsMult->SetEtaRange(-1.2,+1.2);
  fESDTrackCutsMult->SetPtRange(0.15,1e10);

}


//________________________________________________________________________
void AliAnalysisTPCTOFpA::UserCreateOutputObjects() 
{
  // Create histograms
  // Called once
  fListHist = new TList();
  fListHist->SetOwner(kTRUE);
  //
  const Int_t kPtBins = 35;
  const Int_t kMultBins = 11;

  Int_t kDcaBinsTemp = 76;
  if (fEvenDCAbinning) kDcaBinsTemp = 150;
  const Int_t kDcaBins = (Int_t) kDcaBinsTemp;

  const Float_t kDcaBinsTPConlyFactor = 5; //need to change binning of DCA plot for tpconly
  // sort pT-bins ..
  Double_t binsPt[77] = {0., 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0};

  Double_t binsDca[77] =  {-3,-2.85,-2.7,-2.55,-2.4,-2.25,-2.1,-1.95,-1.8,-1.65,-1.5,-1.35,-1.2,-1.05,-0.9,-0.75,-0.6,-0.45,-0.3,-0.285,-0.27,-0.255,-0.24,-0.225,-0.21,-0.195,-0.18,-0.165,-0.15,-0.135,-0.12,-0.105,-0.09,-0.075,-0.06,-0.045,-0.03,-0.015,0,0.015,0.03,0.045,0.06,0.075,0.09,0.105,0.12,0.135,0.15,0.165,0.18,0.195,0.21,0.225,0.24,0.255,0.27,0.285,0.3,0.45,0.6,0.75,0.9,1.05,1.2,1.35,1.5,1.65,1.8,1.95,2.1,2.25,2.4,2.55,2.7,2.85,3};

  // DCA bins borders get multiplied by constant factor for TPConlyTracks
  Double_t binsDcaTPConly[77];
  for (Int_t i = 0; i< 77; i++) {
  	binsDcaTPConly[i] = kDcaBinsTPConlyFactor * binsDca[i];
  }

  //
  // create the histograms with all necessary information --> it is filled 4x for each particle assumption
  //
  // (0.) assumed particle: 0. pion, 1. kaon, 2. proton, 3. deuteron
  // (1.) multiplicity or centrality -- number of accepted ESD tracks per events (deprecated), but now classes from 1 to 10, 0: Min. Bias
  // (2.) pT
  // (3.) sign
  // (4.) rapidity --> filled 4x
  // (5.)  pull TPC dEx --> filled 4x
  // (6.) has valid TOF pid signal
  // (7.) nsigma TOF --> filled 4x
  // (8..) dca_xy
  // (9.) CODE -- only MC 0-generated, 1-true rec. primaries, 2-misident prim, 3-second weak, 4-second material, 5-misident sec, 6-sec. K0, 7-sec. lambda, 8-sec sigma+
  //
  
  //dimensions of standard THnSparse
  //                              0,           1,           2,  3,       4,    5,     6,   7,     8
  Int_t    binsHistReal[9] = {   3,   kMultBins,     kPtBins,  2,       20,    50,    2,  16,    kDcaBins};
  Double_t xminHistReal[9] = {-0.5,        -1.5,           0, -2,      -1.0,   -5, -0.5,  -8,       -3};
  Double_t xmaxHistReal[9] = { 2.5,         9.5,           3,  2,       1.0,    5,  1.5,   8,        3};

  //dimensions of small THnSparse
  //                              0,           1,           2,  3,                        4,   5,       6
  Int_t    binsHistRealSm[7] = {   3,   kMultBins,     kPtBins,  2,  /*    10,   50,*/    2,  80, kDcaBins};
  Double_t xminHistRealSm[7] = {-0.5,        -1.5,           0, -2,  /*  -0.5,   -5,*/ -0.5,  -8,       -3};
  Double_t xmaxHistRealSm[7] = { 2.5,         9.5,           3,  2,  /*   0.5,    5,*/  1.5,   8,        3};

  if (!fSmallTHnSparse) fHistRealTracks = new THnSparseF("fHistRealTracks","real tracks",9,binsHistReal,xminHistReal,xmaxHistReal);
  else                  fHistRealTracks = new THnSparseF("fHistRealTracks","real tracks",7,binsHistRealSm,xminHistRealSm,xmaxHistRealSm);
  //
  fHistRealTracks->GetAxis(2)->Set(kPtBins, binsPt);

  //different DCAxy binning for TPConlyTracks

  Int_t dcaAxisNumber = 8;
  if (fSmallTHnSparse) dcaAxisNumber = 6;

  if (!fUseTPConlyTracks){
    if (fEvenDCAbinning) fHistRealTracks->GetAxis(dcaAxisNumber)->Set(kDcaBins,-3.,3.);
    else fHistRealTracks->GetAxis(dcaAxisNumber)->Set(kDcaBins, binsDca);
  }
  else {
    if (fEvenDCAbinning) fHistRealTracks->GetAxis(dcaAxisNumber)->Set(kDcaBins,-15.,15.);
    else fHistRealTracks->GetAxis(dcaAxisNumber)->Set(kDcaBins, binsDcaTPConly);
   }
  fListHist->Add(fHistRealTracks);
  //
  //                      0.ptot,1.tpcSig,2.hasTOF, 3. assumed part., 4. nclDedx, 5. nSigmaTPC (4x), 6. nSigmaTOF (4x), 7. centrality
  fHistPidQA = new TH3D("fHistPidQA","PID QA",500,0.1,10,1000,0,1000,2,-2,2);
  BinLogAxis(fHistPidQA);
  fListHist->Add(fHistPidQA);
  
  // dimensions of standard THnSparse
  //                            0,            1,           2,  3,      4,   5,    6,   7,       8.,    9.
  Int_t    binsHistMC[10] = {   3,    kMultBins,     kPtBins,  2,     20,  50,    2,  16, kDcaBins,    6};
  Double_t xminHistMC[10] = {-0.5,         -1.5,           0, -2,   -1.0,  -5, -0.5,  -8,       -3, -0.5};
  Double_t xmaxHistMC[10] = { 2.5,          9.5,           3,  2,    1.0,   5,  1.5,   8,        3,  5.5};

  //dimensions of small THnSparse
  //                              0,           1,           2,  3,                     4,   5,       6.,    7.
  Int_t    binsHistMCSm[8] = {   3,    kMultBins,     kPtBins,  2,  /*   10,  50,*/    2,  80, kDcaBins,    6};
  Double_t xminHistMCSm[8] = {-0.5,         -1.5,           0, -2,  /* -0.5,  -5,*/ -0.5,  -8,       -3, -0.5};
  Double_t xmaxHistMCSm[8] = { 2.5,          9.5,           3,  2,  /*  0.5,   5,*/  1.5,   8,        3,  5.5};

  //different binning for CODE axis, if we want to save motherPDG
  if (fSaveMotherPDG) {
    binsHistMC[9] = 9;
    xmaxHistMC[9] = 8.5;
    binsHistMCSm[7] = 9;
    xmaxHistMCSm[7] = 8.5;
  }


  if (!fSmallTHnSparse) fHistMCparticles = new THnSparseF("fHistMCparticles","MC histogram",10,binsHistMC,xminHistMC,xmaxHistMC);
  else                  fHistMCparticles = new THnSparseF("fHistMCparticles","MC histogram",8,binsHistMCSm,xminHistMCSm,xmaxHistMCSm);


  fHistMCparticles->GetAxis(2)->Set(kPtBins, binsPt);

  /*
  //different DCAxy binning for TPConlyTracks
  if (!fEvenDCAbinning){
    if (!fUseTPConlyTracks) fHistMCparticles->GetAxis(dcaAxisNumber)->Set(kDcaBins, binsDca);
    else fHistMCparticles->GetAxis(dcaAxisNumber)->Set(kDcaBins, binsDcaTPConly);
  }
  */

  if (!fUseTPConlyTracks){
    if (fEvenDCAbinning) fHistMCparticles->GetAxis(dcaAxisNumber)->Set(kDcaBins,-3.,3.);
    else fHistMCparticles->GetAxis(dcaAxisNumber)->Set(kDcaBins, binsDca);
  }
  else {
    if (fEvenDCAbinning) fHistMCparticles->GetAxis(dcaAxisNumber)->Set(kDcaBins,-15.,15.);
    else fHistMCparticles->GetAxis(dcaAxisNumber)->Set(kDcaBins, binsDcaTPConly);
   }



  fListHist->Add(fHistMCparticles);
  //
  fHistMult = new TH2D("fHistMult", "control histogram to count number of events", 502, -2.5, 499.5,4,-0.5,3.5);
  fHistCentrality = new TH1D("fHistCentrality", "control histogram to count number of events", 22, -1.5, 20.5);
  fHistTOFwindow = new TH2D("fHistTOFwindow", "control hisogram for TOF window",160,-10.,10.,160,-10.,10.);
  fHistTOFwindow->GetXaxis()->SetTitle("dx");
  fHistTOFwindow->GetYaxis()->SetTitle("dz");
  fListHist->Add(fHistMult);
  fListHist->Add(fHistCentrality);
  fListHist->Add(fHistTOFwindow);

  PostData(1, fListHist);

}

//________________________________________________________________________
void AliAnalysisTPCTOFpA::UserExec(Option_t *) 
{
  //
  // main event loop
  //
  if (!fESDpid) fESDpid = ((AliESDInputHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->GetESDpid();
  if (!fESDpid) {
    fESDpid = new AliESDpid(); // HACK FOR MC PBPB --> PLEASE REMOVE AS SOON AS POSSIBLE
    fESDpid->GetTPCResponse().SetBetheBlochParameters(1.28778e+00/50., 3.13539e+01, TMath::Exp(-3.16327e+01), 1.87901e+00, 6.41583e+00);
  }
  //AliLog::SetGlobalLogLevel(AliLog::kError);
  //
  // Check Monte Carlo information and other access first:
  //
  AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
  if (!eventHandler) {
    //Printf("ERROR: Could not retrieve MC event handler");
    fMCtrue = kFALSE;
  }
  //
  AliMCEvent* mcEvent = 0x0;
  AliStack* stack = 0x0;
  if (eventHandler) mcEvent = eventHandler->MCEvent();
  if (!mcEvent) {
    //Printf("ERROR: Could not retrieve MC event");
    if (fMCtrue) return;
  }
  if (fMCtrue) {
    stack = mcEvent->Stack();
    if (!stack) return;
  }
  //
  fESD = dynamic_cast<AliESDEvent*>( InputEvent() );
  if (!fESD) {
    //Printf("ERROR: fESD not available");
    return;
  }
  
  if (!fESDtrackCuts) {
    Printf("ERROR: fESDtrackCuts not available");
    return;
  }
  //
  // check if event is selected by physics selection class
  //
  Bool_t isSelected = kTRUE; // for reasons of backward compatibility --> check is now in AddTask macro
  /*
  Bool_t isSelected = kFALSE;
  isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) == AliVEvent::kMB;
  */
  //
  // monitor vertex position
  //
  Bool_t isVertexOk = kTRUE;
  const AliESDVertex *vertex = fESD->GetPrimaryVertexTracks();
  if(vertex->GetNContributors()<1) {
    // SPD vertex
    vertex = fESD->GetPrimaryVertexSPD();
    /* quality checks on SPD-vertex */ 
    if (!vertex) {
      isVertexOk = kFALSE;
    }
    else {
      TString vertexType = vertex->GetTitle();
      if (vertexType.Contains("vertexer: Z") && (vertex->GetDispersion() > 0.04 || vertex->GetZRes() > 0.25))  isVertexOk = kFALSE; //vertex = 0x0; //
      if (vertex->GetNContributors()<1)  isVertexOk = kFALSE; //vertex = 0x0; //
    }
  }  

  //
  // small track loop to determine trigger Pt, multiplicity or centrality
  //
  Double_t triggerPt = 0;
  for (Int_t i=0;i<fESD->GetNumberOfTracks();++i) {
    AliESDtrack *track =fESD->GetTrack(i);
    if (!fESDTrackCutsMult->AcceptTrack(track)) continue;
    if (track->Pt() > triggerPt) triggerPt = track->Pt();
  }
  Int_t trackCounter = fESDTrackCutsMult->CountAcceptedTracks(fESD);
  //
  // 2nd multiplicity estimator SPD hits; replaces multiplicity from HBT
  //
  Float_t spdCorr = -1;
  const AliMultiplicity *mult = fESD->GetMultiplicity();
  Float_t nClusters[6]={0.0,0.0,0.0,0.0,0.0,0.0};
  for(Int_t ilay=0; ilay<6; ilay++) nClusters[ilay] = (Float_t)mult->GetNumberOfITSClusters(ilay);
  if (vertex) spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],vertex->GetZ());
  //
  Float_t centrality = -99;
  //
  // IMPORTANT CENTRALITY DEFINITION FOR pp
  //
  if (!fUseHBTmultiplicity) {
    // test binning to check if multiplicity-dependence is due to diffractive events being s
    if (trackCounter >= 0  && trackCounter <= 0)  centrality = 0;
    if (trackCounter >= 1  && trackCounter <= 1)  centrality = 1;
    if (trackCounter >= 2  && trackCounter <= 2)  centrality = 2;
    if (trackCounter >= 3  && trackCounter <= 3)  centrality = 3;
    if (trackCounter >= 4  && trackCounter <= 4)  centrality = 4;
    if (trackCounter >= 5  && trackCounter <= 5)  centrality = 5;
    // this was all the original bin 1 being [0..5]
    if (trackCounter >= 6  && trackCounter <= 9)  centrality = 6;
    if (trackCounter >= 10 && trackCounter <= 14) centrality = 7;
    if (trackCounter >= 15 && trackCounter <= 22) centrality = 8;
    if (trackCounter >= 23 && trackCounter <= 32) centrality = 9;
    if (trackCounter >= 33 && trackCounter <= 42) centrality = 10;
    /*
    if (trackCounter >= 43 && trackCounter <= 52) centrality = 7
    if (trackCounter >= 53 && trackCounter <= 62) centrality = 8;
    if (trackCounter >= 63 && trackCounter <= 72) centrality = 9;
    if (trackCounter >= 73 && trackCounter <= 82) centrality = 10;
    */
  } else {
    if (spdCorr >= 0  && spdCorr <=  2)  centrality  = 0;
    if (spdCorr >= 3  && spdCorr <=  5)  centrality  = 1;
    if (spdCorr >= 6  && spdCorr <=  8)  centrality  = 2;
    if (spdCorr >= 9  && spdCorr <= 11)  centrality  = 3;
    if (spdCorr >= 12 && spdCorr <= 14)  centrality  = 4;
    if (spdCorr >= 15 && spdCorr <= 16)  centrality  = 5;
    // this was all the original bin 1 being [0..16]
    if (spdCorr >= 17 && spdCorr <= 30)  centrality =  6;
    if (spdCorr >= 31 && spdCorr <= 45)  centrality =  7;
    if (spdCorr >= 46 && spdCorr <= 68)  centrality =  8;
    if (spdCorr >= 69 && spdCorr <= 97)  centrality =  9;
    if (spdCorr >= 98)                   centrality = 10;
    /*
    if (spdCorr >= 17 && spdCorr <= 30)  centrality = 2;
    if (spdCorr >= 31 && spdCorr <= 45)  centrality = 3;
    if (spdCorr >= 46 && spdCorr <= 68)  centrality = 4;
    if (spdCorr >= 69 && spdCorr <= 97)  centrality = 5;
    if (spdCorr >= 98)                   centrality = 6;
    */
  }
  //
  //Int_t rootS = fESD->GetBeamEnergy() < 1000 ? 0 : 1;
  if (fESD->GetEventSpecie() == 4) { // PbPb
    //rootS = 2;
    AliCentrality *esdCentrality = fESD->GetCentrality();
    centrality = esdCentrality->GetCentralityClass10("V0M") + 1; // centrality percentile determined with V0
    if (TMath::Abs(centrality - 1) < 1e-5) {
      centrality = esdCentrality->GetCentralityClass5("V0M");
    }
  }

  if (fIspA) {
    AliCentrality *esdCentrality = fESD->GetCentrality();
    Float_t pApercentile = esdCentrality->GetCentralityPercentile(fCentEst.Data()); // centrality percentile determined with V0M
    if (pApercentile >=  0. && pApercentile <  5.) centrality = -1; 
    else if (pApercentile >=  5. && pApercentile < 10.) centrality = 0; 
    else if (pApercentile >= 10. && pApercentile < 20.) centrality = 1;
    else if (pApercentile >= 20. && pApercentile < 30.) centrality = 2;
    else if (pApercentile >= 30. && pApercentile < 40.) centrality = 3;
    else if (pApercentile >= 40. && pApercentile < 50.) centrality = 4;
    else if (pApercentile >= 50. && pApercentile < 60.) centrality = 5; 
    else if (pApercentile >= 60. && pApercentile < 70.) centrality = 6;
    else if (pApercentile >= 70. && pApercentile < 80.) centrality = 7;
    else if (pApercentile >= 80. && pApercentile < 90.) centrality = 8;
    else if (pApercentile >= 90. && pApercentile <= 100.) centrality = 9;
    else centrality = -99;

    /*
    cout << "*****************ispA switch works***************************" << endl;
    cout << "centrality estimator  is:  " << fCentEst.Data() << endl; 
    cout << "centrality percentile is:  " << pApercentile << endl;
    cout << "*************************************************************" << endl;
    */
  }



  
  //Int_t nContributors = 0;
  //if (fESD->GetPrimaryVertexTPC()) nContributors = fESD->GetPrimaryVertexTPC()->GetNContributors();
  //
  
  //  Int_t processtype = 0;
  Int_t processCode = 0;
  //
  // important change: fill generated only after vertex cut in case of heavy-ions
  //

  
  if (!vertex || !isVertexOk) {
    fHistMult->Fill(-1, processCode);
    PostData(1, fListHist);
    return;
  } else {
    if (TMath::Abs(vertex->GetZ()) > 10) {
      fHistMult->Fill(-1, processCode);
      PostData(1, fListHist);
      return;
    }
  }
  //
  
  

  if (fMCtrue) {
    //
    //
    //
    /*
    AliHeader * header = mcEvent->Header();
    processtype = GetPythiaEventProcessType(header);
    // non diffractive
    if (processtype !=92 && processtype !=93 && processtype != 94) processCode = 1;
    // single diffractive
    if ((processtype == 92 || processtype == 93)) processCode = 2;
    // double diffractive
    if (processtype == 94) processCode = 3;
    //
    */

    for(Int_t i = 0; i < stack->GetNtrack(); i++) {
      TParticle * trackMC = stack->Particle(i);
      Int_t pdg = trackMC->GetPdgCode();
      //
      Double_t xv = trackMC->Vx();
      Double_t yv = trackMC->Vy();
      //Double_t zv = trackMC->Vz();
      Double_t dxy = 0;
      dxy = TMath::Sqrt(xv*xv + yv*yv); // so stupid to avoid warnings
      //Double_t dz = 0;
      //dz = TMath::Abs(zv); // so stupid to avoid warnings
      //
      // vertex cut - selection of primaries
      //
      //if (dxy > 3 || dz > 10) continue; // fixed cut at 3cm in r
      //
      if (!stack->IsPhysicalPrimary(i)) continue;
      //
      // fill MC histograms here...
      // 
      Double_t rap = trackMC->Y();
      if (fRapCMS) rap = rap + 0.465;
      Double_t pT  = trackMC->Pt();
      Int_t sign = pdg < 0 ? -1 : 1; // only works for charged pi,K,p !!
//      Double_t transMass = TMath::Sqrt(trackMC->Pt()*trackMC->Pt() + trackMC->GetMass()*trackMC->GetMass()) - trackMC->GetMass();
      //
      Int_t iPart = -1;
      if (TMath::Abs(pdg) == 211)  iPart = 0; // select Pi+/Pi- only
      if (TMath::Abs(pdg) == 321)  iPart = 1; // select K+/K- only
      if (TMath::Abs(pdg) == 2212) iPart = 2; // select p+/p- only
      if (iPart == -1) continue;
      //

      if (!fSmallTHnSparse){
	Double_t vecHistMC[10] = {static_cast<Double_t>(iPart), centrality,  pT, static_cast<Double_t>(sign), rap, 0, 1, 0, dxy, 0};
	if (!fOnlyQA) fHistMCparticles->Fill(vecHistMC);
      }
      else{
	if (rap>fRapidityCutLow && rap<fRapidityCutHigh){
	  Double_t vecHistMC[8] = {static_cast<Double_t>(iPart), centrality,  pT, static_cast<Double_t>(sign), 1, 0, dxy, 0};
	  if (!fOnlyQA) fHistMCparticles->Fill(vecHistMC);
	}
      }
    }
  }
  //
  if (!isSelected && !fOnlyQA) {
    PostData(1, fListHist);
    return;
  }
  //
  if (!vertex || !isVertexOk) {
    fHistMult->Fill(-1, processCode);
    PostData(1, fListHist);
    return;
  } else {
    if (TMath::Abs(vertex->GetZ()) > 10) {
      fHistMult->Fill(-1, processCode);
      PostData(1, fListHist);
      return;
    }
  }
  //
  // count events after physics selection and after vertex selection
  //
  //cout << "MULTIPLICITY " << trackCounter << " " << fESD->GetEventNumberInFile() <<endl;
  fHistMult->Fill(trackCounter, processCode);
  fHistCentrality->Fill(centrality);


  //***************************************************
  // track loop
  //***************************************************
  //const Float_t kNsigmaCut = 3;
  //const Float_t k2sigmaCorr = 1/(0.5*(TMath::Erf(kNsigmaCut/sqrt(2))-TMath::Erf(-kNsigmaCut/sqrt(2))))/*1/0.9545*/;
  //
  Float_t dca[2], cov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z for the vertex cut
  //
  for (Int_t i=0;i<fESD->GetNumberOfTracks();++i) {
	
	AliESDtrack *track = 0;
	AliESDtrack *trackForTOF = 0; //normal track for all TOF information needed when using tpconly-tracks
	
	//normal tracks, if tpconly flag is set, use tpconlytracks
	if (!fUseTPConlyTracks){
    	track =fESD->GetTrack(i); 
	}
	else {
   		track = fESDtrackCuts->GetTPCOnlyTrack(fESD,i);
		if (!track) continue;
		trackForTOF = fESD->GetTrack(i);
	}
    //
    if (!track->GetInnerParam()) {
		if (fUseTPConlyTracks) {delete track; track = 0;} //need to delete tpconlytrack
		continue;
	}
    Double_t ptot = track->GetInnerParam()->GetP(); // momentum for dEdx determination
    Double_t pT = track->Pt();
    track->GetImpactParameters(dca, cov);
    //
    //
    // cut for dead regions in the detector
    // if (track->Eta() > 0.1 && (track->Eta() < 0.2 && track->Phi() > 0.1 && track->Phi() < 0.1) continue;
    //
    // 2.a) apply some standard track cuts according to general recommendations
    //
    if (!fESDtrackCuts->AcceptTrack(track)) {
		if (fUseTPConlyTracks) {delete track; track = 0;} //need to delete tpconlytrack
		continue;
	}

	UInt_t status = 0;
    if (!fUseTPConlyTracks) status = track->GetStatus();
	else status = trackForTOF->GetStatus();
    Bool_t hasTOFout  = status&AliESDtrack::kTOFout; 
    Bool_t hasTOFtime = status&AliESDtrack::kTIME;
    Bool_t hasTOFpid  = status&AliESDtrack::kTOFpid;
    //Bool_t hasTOFmismatch  = status&AliESDtrack::kTOFmismatch;
    Bool_t hasTOF     = kFALSE;
    if (hasTOFout && hasTOFtime && hasTOFpid) hasTOF = kTRUE;


    //check if TRD contributed to tracking and throw track away if  fTRDinReject flag is set
    Bool_t hasTRDin = status&AliESDtrack::kTRDin; 
    if (hasTRDin && fTRDinReject) {
      //hasTOF = kFALSE;
      if (fUseTPConlyTracks) {delete track; track = 0;} //need to delete tpconlytrack
      continue;
    }


    //check TOF window
    Float_t dxTOF = track->GetTOFsignalDx();
    Float_t dzTOF = track->GetTOFsignalDz();

    if (hasTOF) fHistTOFwindow->Fill(dxTOF,dzTOF);

    //******************************************
    //*******NEEDS PROPER CUT SETTER************
    //******************************************
    //cut on TOF window here
    if (TMath::Abs(dxTOF) > fTOFwindow || TMath::Abs(dzTOF) > fTOFwindow) hasTOF = kFALSE;

    

    Float_t length = 0.;
    if (!fUseTPConlyTracks) length = track->GetIntegratedLength(); 
    else length = trackForTOF->GetIntegratedLength();

    if (length < 350.) hasTOF = kFALSE;

    //
    // calculate rapidities and kinematics
    // 
    //
    Double_t pvec[3];
    track->GetPxPyPz(pvec);
    Double_t energyPion = TMath::Sqrt(track->GetP()*track->GetP() + AliPID::ParticleMass(AliPID::kPion)*AliPID::ParticleMass(AliPID::kPion));
    Double_t energyKaon = TMath::Sqrt(track->GetP()*track->GetP() + AliPID::ParticleMass(AliPID::kKaon)*AliPID::ParticleMass(AliPID::kKaon));
    Double_t energyProton = TMath::Sqrt(track->GetP()*track->GetP() + AliPID::ParticleMass(AliPID::kProton)*AliPID::ParticleMass(AliPID::kProton));
    Double_t energyDeuteron = TMath::Sqrt(track->GetP()*track->GetP() + 4*AliPID::ParticleMass(AliPID::kProton)*AliPID::ParticleMass(AliPID::kProton));
    //
    Double_t rapPion = 0.5*TMath::Log((energyPion + pvec[2])/(energyPion - pvec[2]));
    Double_t rapKaon = 0.5*TMath::Log((energyKaon + pvec[2])/(energyKaon - pvec[2]));
    Double_t rapProton = 0.5*TMath::Log((energyProton + pvec[2])/(energyProton - pvec[2]));
    Double_t rapDeuteron = 0.5*TMath::Log((energyDeuteron + pvec[2])/(energyDeuteron - pvec[2]));

    if (fRapCMS) {
      rapPion = rapPion + 0.465;
      rapKaon = rapKaon + 0.465;
      rapProton = rapProton + 0.465;
      rapDeuteron = rapDeuteron + 0.465;
    }


    //
//    Double_t transMassPion = TMath::Sqrt(track->Pt()*track->Pt() + AliPID::ParticleMass(AliPID::kPion)*AliPID::ParticleMass(AliPID::kPion))      -  AliPID::ParticleMass(AliPID::kPion);
//    Double_t transMassKaon = TMath::Sqrt(track->Pt()*track->Pt() + AliPID::ParticleMass(AliPID::kKaon)*AliPID::ParticleMass(AliPID::kKaon))     -  AliPID::ParticleMass(AliPID::kKaon);
 //   Double_t transMassProton = TMath::Sqrt(track->Pt()*track->Pt() + AliPID::ParticleMass(AliPID::kProton)*AliPID::ParticleMass(AliPID::kProton))    -  AliPID::ParticleMass(AliPID::kProton);
//    Double_t transMassDeuteron = TMath::Sqrt(track->Pt()*track->Pt() + 4*AliPID::ParticleMass(AliPID::kProton)*AliPID::ParticleMass(AliPID::kProton))    -  2*AliPID::ParticleMass(AliPID::kProton);
    //
    // 3. make the PID
    //
    Double_t sign = track->GetSign();   
    Double_t tpcSignal = track->GetTPCsignal();
    //
    //
    // 3.a. calculate expected signals in nsigma
    //
    //  
    // (0.) assumed particle: 0. pion, 1. kaon, 2. proton, 3. deuteron
    // (1.) multiplicity or centrality -- number of accepted ESD tracks per events (deprecated), but now classes from 1 to 10, 0: Min. Bias
    // (2.) pT
    // (3.) sign
    // (4.) rapidity --> filled 4x
    // (5.)  pull TPC dEx --> filled 4x
    // (6.) has valid TOF pid signal
    // (7.) nsigma TOF --> filled 4x
    // (8..) dca_xy
    // (9.) CODE -- only MC 0-generated, 1-true rec. primaries, 2-misident, 3-second weak, 4-second material
    //
//    Double_t transMass[4] = {transMassPion,transMassKaon,transMassProton,transMassDeuteron};
    Double_t rap[4] = {rapPion,rapKaon,rapProton,rapDeuteron};
    Double_t pullsTPC[4] = {fESDpid->NumberOfSigmasTPC(track,AliPID::kPion),
			    fESDpid->NumberOfSigmasTPC(track,AliPID::kKaon),
			    fESDpid->NumberOfSigmasTPC(track,AliPID::kProton),
			    0}; // ASK FOR PUTTING THE DEUTERON TO AliPID !!!!!!!!!!!!!!


    Float_t time0 = fESDpid->GetTOFResponse().GetStartTime(track->P());
    //Float_t time0 = fESDpid->GetTOFResponse().GetTimeZero(); //old way of getting time0
    //fESDpid->GetTOFResponse().SetTimeResolution(130.);
    Double_t pullsTOF[4] ={0.,0.,0.,0.};
    if (!fUseTPConlyTracks) {
      pullsTOF[0] = fESDpid->NumberOfSigmasTOF(track,AliPID::kPion, time0);
      pullsTOF[1] = fESDpid->NumberOfSigmasTOF(track,AliPID::kKaon, time0);
      pullsTOF[2] = fESDpid->NumberOfSigmasTOF(track,AliPID::kProton, time0);
      pullsTOF[3] = 0; // ASK FOR PUTTING THE DEUTERON TO AliPID !!!!!!!!!!!!!!;
    }
    else {
      pullsTOF[0] = fESDpid->NumberOfSigmasTOF(trackForTOF,AliPID::kPion, time0);
      pullsTOF[1] = fESDpid->NumberOfSigmasTOF(trackForTOF,AliPID::kKaon, time0);
      pullsTOF[2] = fESDpid->NumberOfSigmasTOF(trackForTOF,AliPID::kProton, time0);
      pullsTOF[3] = 0; // ASK FOR PUTTING THE DEUTERON TO AliPID !!!!!!!!!!!!!!;
    }

    //
//    Double_t tpcQA[4] = {fESDpid->NumberOfSigmasTPC(track,AliPID::kElectron),
//			 fESDpid->NumberOfSigmasTPC(track,AliPID::kPion),
//			 fESDpid->NumberOfSigmasTPC(track,AliPID::kKaon),
//			 fESDpid->NumberOfSigmasTPC(track,AliPID::kProton)};

/*
    Double_t tofQA[4] = {0.,0.,0.,0.}; 
    if (!fUseTPConlyTracks) {
      tofQA[0] = fESDpid->NumberOfSigmasTOF(track,AliPID::kElectron, time0);
      tofQA[0] = fESDpid->NumberOfSigmasTOF(track,AliPID::kPion, time0);
      tofQA[0] = fESDpid->NumberOfSigmasTOF(track,AliPID::kKaon, time0);
      tofQA[0] = fESDpid->NumberOfSigmasTOF(track,AliPID::kProton, time0);
    }
    else{
      tofQA[0] = fESDpid->NumberOfSigmasTOF(trackForTOF,AliPID::kElectron, time0);
      tofQA[0] = fESDpid->NumberOfSigmasTOF(trackForTOF,AliPID::kPion, time0);
      tofQA[0] = fESDpid->NumberOfSigmasTOF(trackForTOF,AliPID::kKaon, time0);
      tofQA[0] = fESDpid->NumberOfSigmasTOF(trackForTOF,AliPID::kProton, time0);
    }
*/

    //save information for every particle type  // loop over assumed particle type
    for(Int_t iPart = 0; iPart < 3; iPart++) {

      if (!fSmallTHnSparse) {
	Double_t vecHistReal[9]  = {static_cast<Double_t>(iPart),  centrality,   pT, static_cast<Double_t>(sign),  rap[iPart], pullsTPC[iPart], static_cast<Double_t>(hasTOF), pullsTOF[iPart], dca[0]};
	if (!fOnlyQA) fHistRealTracks->Fill(vecHistReal);
      }
      else {
	if (pullsTPC[iPart]>fTPCnSigmaCutLow && pullsTPC[iPart]<fTPCnSigmaCutHigh && rap[iPart]>fRapidityCutLow && rap[iPart]<fRapidityCutHigh) {
	  Double_t vecHistReal[7]  = {static_cast<Double_t>(iPart),  centrality,   pT, static_cast<Double_t>(sign), static_cast<Double_t>(hasTOF), pullsTOF[iPart], dca[0]};
	  if (!fOnlyQA) fHistRealTracks->Fill(vecHistReal);
	}
      }


      // using MC truth for precise efficiencies...
      //
      if (fMCtrue && !fOnlyQA) {
	Int_t code = 9; // code: 0-generated, 1-true rec. primaries, 2-misident, 3-second weak, 4-second material
	Int_t assumedPdg = 0;//2212(proton); 321(Kaon); 211(pion);
	Int_t motherCode = -1;
	if (iPart == 0) assumedPdg = 211;
	if (iPart == 1) assumedPdg = 321;
	if (iPart == 2) assumedPdg = 2212;
	//
	//
	TParticle *trackMC = stack->Particle(TMath::Abs(track->GetLabel()));
	Int_t pdg = TMath::Abs(trackMC->GetPdgCode());
	//
	if (pdg != assumedPdg) code = 2;
	//if (pdg != assumedPdg && stack->IsSecondaryFromWeakDecay(TMath::Abs(track->GetLabel()))) code = 5;
	if (pdg == assumedPdg && stack->IsPhysicalPrimary(TMath::Abs(track->GetLabel()))) code = 1;
	if (pdg == assumedPdg && stack->IsSecondaryFromWeakDecay(TMath::Abs(track->GetLabel()))) {
	  code = 3;
	  if (fSaveMotherPDG){
	    TParticle *trackMother =  stack->Particle(TMath::Abs(trackMC->GetFirstMother()));
	    if (trackMother->GetPdgCode() == 310) motherCode = 6; //K0
	    if (trackMother->GetPdgCode() == 3122) motherCode = 7; //Lambda
	    if (trackMother->GetPdgCode() == 3222) motherCode = 8; //Sigma+
	  }
	}


	//FILL MATERIAL TEMPLATE FOR KAONS WITH ELECTRONS
	if (iPart != 1){
	  if (pdg == assumedPdg && stack->IsSecondaryFromMaterial(TMath::Abs(track->GetLabel()))) code = 4;
	}	
	else {
	  if (pdg == 11) code = 4;
	  //cout << "got an electron for  kaons!" << endl;
	}

	//
	// muons need special treatment, because they are indistinguishable from pions
	//
	if (iPart == 0 && pdg == 13  && stack->IsPhysicalPrimary(TMath::Abs(track->GetLabel()))) code = 1;
	if (iPart == 0 && pdg == 13  && stack->IsSecondaryFromWeakDecay(TMath::Abs(track->GetLabel()))) code = 3;
	//
	// check TOF mismatch on MC basis with TOF label
	//
	Int_t tofLabel[3];
	if (!fUseTPConlyTracks) track->GetTOFLabel(tofLabel);
	else trackForTOF->GetTOFLabel(tofLabel);


	//three options:
	//0: do NOT check at all
	//1: do check
	//2: in case of decays, check if mother label matches --> if yes, assign hasTOF = kTRUE

	if (fTOFmisMatch == 0) {
	  //if (TMath::Abs(track->GetLabel()) != TMath::Abs(tofLabel[0]) || tofLabel[1] > 0) hasTOF = kFALSE;
	}
	if (fTOFmisMatch == 1) {
	  if (TMath::Abs(track->GetLabel()) != TMath::Abs(tofLabel[0]) || tofLabel[1] > 0) hasTOF = kFALSE;
	}
	if (fTOFmisMatch == 2) {
	  if (TMath::Abs(track->GetLabel()) != TMath::Abs(tofLabel[0]) || tofLabel[1] > 0) hasTOF = kFALSE;
 	  TParticle *matchedTrack = stack->Particle(TMath::Abs(tofLabel[0]));
	  if (TMath::Abs(matchedTrack->GetFirstMother()) == TMath::Abs(track->GetLabel())) hasTOF = kTRUE;
	}

	  

	  //
	// IMPORTANT BIG PROBLEM HERE THE PROBABLILITY TO HAVE A PID SIGNAL MUST BE IN !!!!!!!!!!!!
	//
	if (!fSmallTHnSparse){
	  Double_t vectorHistMC[10] = {static_cast<Double_t>(iPart),  centrality,  pT, static_cast<Double_t>(sign),  rap[iPart], pullsTPC[iPart], static_cast<Double_t>(hasTOF), pullsTOF[iPart], dca[0], static_cast<Double_t>(code)};
	  if (!fOnlyQA) { 
	    fHistMCparticles->Fill(vectorHistMC);
	    if (motherCode != -1 && fSaveMotherPDG) { //if mother of weak decay is K0, lambda or sigma+ add track again with this information
	      Double_t vectorHistMCmother[10] = {static_cast<Double_t>(iPart),  centrality,  pT, static_cast<Double_t>(sign),  rap[iPart], pullsTPC[iPart], static_cast<Double_t>(hasTOF), pullsTOF[iPart], dca[0], static_cast<Double_t>(motherCode)};
	      fHistMCparticles->Fill(vectorHistMCmother);
	    }
	  }
	}
	else{
	  if (pullsTPC[iPart]>fTPCnSigmaCutLow && pullsTPC[iPart]<fTPCnSigmaCutHigh && rap[iPart]>fRapidityCutLow && rap[iPart]<fRapidityCutHigh) {
	    //                              0,           1,   2,    3,           4,               5,      6,               7,      8,   9
	    Double_t vectorHistMC[8] = {static_cast<Double_t>(iPart),  centrality,  pT, static_cast<Double_t>(sign), static_cast<Double_t>(hasTOF), pullsTOF[iPart], dca[0], static_cast<Double_t>(code)};
	    if (!fOnlyQA) { 
	      fHistMCparticles->Fill(vectorHistMC);
	      if (motherCode != -1 && fSaveMotherPDG) { //if mother of weak decay is K0, lambda or sigma+ add track again with this information
		Double_t vectorHistMCmother[8] = {static_cast<Double_t>(iPart),  centrality,  pT, static_cast<Double_t>(sign), static_cast<Double_t>(hasTOF), pullsTOF[iPart], dca[0], static_cast<Double_t>(motherCode)};
		fHistMCparticles->Fill(vectorHistMCmother);
	      }
	    }
	  }
	}
      }
      //
      //
      Int_t tpcShared = track->GetTPCnclsS();
      if (TMath::Abs(track->Eta()) < 0.8 && iPart == 0 && tpcShared < 4) fHistPidQA->Fill(ptot,tpcSignal,sign);
    } // end loop over assumed particle type

	  //need to delete tpconlytrack
	  if (fUseTPConlyTracks){
 		delete track; 
  		track = 0;     
  	  }

  } // end of track loop
  
  // Post output data  
  PostData(1, fListHist);
  
}      


//________________________________________________________________________
void AliAnalysisTPCTOFpA::Terminate(Option_t *) 
{
  // Draw result to the screen
  // Called once at the end of the query
  Printf("*** CONSTRUCTOR CALLED ****");

}


//________________________________________________________________________
Bool_t AliAnalysisTPCTOFpA::SelectOnImpPar(AliESDtrack* t) {
  //
  // cut on transverse impact parameter // DEPRECATED
  //
  Float_t d0z0[2],covd0z0[3];
  t->GetImpactParameters(d0z0,covd0z0);
  Float_t sigma= 0.0050+0.0060/TMath::Power(t->Pt(),0.9);
  Float_t d0max = 7.*sigma;
  //
  Float_t sigmaZ = 0.0146+0.0070/TMath::Power(t->Pt(),1.114758);
  if (t->Pt() > 1) sigmaZ = 0.0216;
  Float_t d0maxZ = 5.*sigmaZ;
  //
  if(TMath::Abs(d0z0[0]) < d0max && TMath::Abs(d0z0[1]) < d0maxZ) return kTRUE;
  return kFALSE;
}


//________________________________________________________________________
void AliAnalysisTPCTOFpA::BinLogAxis(const TH1 *h) {
  //
  // Method for the correct logarithmic binning of histograms
  //
  TAxis *axis = const_cast<TAxis*>(h->GetXaxis());
  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;
  
}


//________________________________________________________________________
Int_t AliAnalysisTPCTOFpA::GetPythiaEventProcessType(const AliHeader* aHeader, const Bool_t adebug) const {
  //
  // get the process type of the event.
  //

  // can only read pythia headers, either directly or from cocktalil header
  AliGenPythiaEventHeader* pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(aHeader->GenEventHeader());

  if (!pythiaGenHeader) {

    AliGenCocktailEventHeader* genCocktailHeader = dynamic_cast<AliGenCocktailEventHeader*>(aHeader->GenEventHeader());
    if (!genCocktailHeader) {
      //printf("AliAnalysisTPCTOFpA::GetProcessType : Unknown header type (not Pythia or Cocktail). \n");
      return -1;
    }

    TList* headerList = genCocktailHeader->GetHeaders();
    if (!headerList) {
      return -1;
    }

    for (Int_t i=0; i<headerList->GetEntries(); i++) {
      pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(headerList->At(i));
      if (pythiaGenHeader)
        break;
    }

    if (!pythiaGenHeader) {
      //printf("AliAnalysisTPCTOFpA::GetProcessType : Could not find Pythia header. \n");
      return -1;
    }
  }

  if (adebug) {
    //printf("AliAnalysisTPCTOFpA::GetProcessType : Pythia process type found: %d \n",pythiaGenHeader->ProcessType());
  }

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