]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/SPECTRA/PiKaPr/TOF/PbPb276/macros/TOFmatchEff.C
Split: removed dirs now in AliPhysics
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TOF / PbPb276 / macros / TOFmatchEff.C
diff --git a/PWGLF/SPECTRA/PiKaPr/TOF/PbPb276/macros/TOFmatchEff.C b/PWGLF/SPECTRA/PiKaPr/TOF/PbPb276/macros/TOFmatchEff.C
deleted file mode 100644 (file)
index a3e0594..0000000
+++ /dev/null
@@ -1,1459 +0,0 @@
-enum EHisto_t {
-  kAcceptedTracks,
-  kMatchedTracks,
-  kMismatchedTracks,
-  kUncorrelatedTracks,
-  kMatchedCorrelatedTracks,
-  kMatchedGoodTracks,
-  kNHistos
-};
-const Char_t *histoName[kNHistos] = {
-  "hAcceptedTracks",
-  "hMatchedTracks",
-  "hMismatchedTracks",
-  "hUncorrelatedTracks",
-  "hMatchedCorrelatedTracks",
-  "hMatchedGoodTracks"
-};
-
-enum ECharge_t {
-  kPositive,
-  kNegative,
-  kNCharges
-};
-const Char_t *chargeName[kNCharges] = {
-  "positive",
-  "negative"
-};
-
-enum EParam_t {
-  kCentrality,
-  kPt,
-  kEta,
-  kPhi,
-  kNParams
-};
-
-const Int_t NcentralityBins = 10;
-Double_t centralityBin[NcentralityBins + 1] = {0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90.};
-
-const Int_t NptBins = 46;
-Double_t ptBin[NptBins + 1] = {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.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.0};
-
-const Int_t NetaBins = 20;
-Double_t etaMin = -1.;
-Double_t etaMax = 1.;
-Double_t etaStep = (etaMax - etaMin) / NetaBins;
-Double_t etaBin[NetaBins + 1]; /* computed at run-time */
-
-const Int_t NphiBins = 200;
-Double_t phiMin = 0.;
-Double_t phiMax = 2. * TMath::Pi();
-Double_t phiStep = (phiMax - phiMin) / NphiBins;
-Double_t phiBin[NphiBins + 1]; /* computed at run-time */
-
-const Int_t NptsubBins = 5;
-Double_t ptsubBin[NptsubBins + 1] = {0.2, 0.5, 1.0, 1.5, 3.0, 5.0};
-Int_t ptsubBinMin[NptsubBins] = {0, 6, 16, 21, 36};
-Int_t ptsubBinMax[NptsubBins] = {5, 15, 20, 35, 45};
-
-Int_t multcentColor[10] = {
-  kRed,
-  kOrange+1,
-  kOrange,
-  kYellow,
-  kYellow+1,
-  kGreen,
-  kGreen+1,
-  kCyan+1,
-  kBlue,
-  kMagenta,
-  //  kMagenta+1  
-};
-
-const Char_t *extendedChargeName[2] = {"positive", "negative"};
-
-const Double_t kEpsilon = 0.001;
-
-TOFmatchEff(const Char_t *filename, const Char_t *enabledfilename = NULL, Int_t evMax = kMaxInt)
-{
-  
-  /* include path for ACLic */
-  gSystem->AddIncludePath("-I$ALICE_ROOT/include");
-  gSystem->AddIncludePath("-I$ALICE_ROOT/TOF");
-  /* load libraries */
-  gSystem->Load("libANALYSIS");
-  gSystem->Load("libANALYSISalice");
-  /* build analysis task class */
-  gROOT->LoadMacro("AliAnalysisParticle.cxx+g");
-  gROOT->LoadMacro("AliAnalysisEvent.cxx+g");
-  gROOT->LoadMacro("AliAnalysisTrack.cxx+g");
-  /* open file, get tree and connect */
-  TFile *filein = TFile::Open(filename);
-  TTree *treein = (TTree *)filein->Get("aodTree");
-  printf("got \"aodTree\": %d entries\n", treein->GetEntries());
-  AliAnalysisEvent *analysisEvent = new AliAnalysisEvent();
-  TClonesArray *analysisTrackArray = new TClonesArray("AliAnalysisTrack");
-  AliAnalysisTrack *analysisTrack = NULL;
-  treein->SetBranchAddress("AnalysisEvent", &analysisEvent);
-  treein->SetBranchAddress("AnalysisTrack", &analysisTrackArray);
-
-  /* open enabled flag map */
-  TH1F *hEnabledFlag = NULL;
-  if (enabledfilename) {
-    TFile *enabledfile = TFile::Open(enabledfilename);
-    hEnabledFlag = (TH1F *)enabledfile->Get("hEnabledFlag");
-  }
-
-  /* binning */
-  for (Int_t ieta = 0; ieta < NetaBins + 1; ieta++)
-    etaBin[ieta] = etaMin + ieta * etaStep;
-  for (Int_t iphi = 0; iphi < NphiBins + 1; iphi++)
-    phiBin[iphi] = phiMin + iphi * phiStep;
-  /* THnSparse */
-  Int_t NparamBins[kNParams] = {NcentralityBins, NptBins, NetaBins, NphiBins};
-  Double_t *paramBin[kNParams] = {centralityBin, ptBin, etaBin, phiBin};
-  THnSparseF *hHisto[kNHistos][kNCharges];
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++)
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      hHisto[ihisto][icharge] = new THnSparseF(Form("hHisto_%s_%s", histoName[ihisto], chargeName[icharge]), "", kNParams, NparamBins);
-      for (Int_t iparam = 0; iparam < kNParams; iparam++)
-       hHisto[ihisto][icharge]->SetBinEdges(iparam, paramBin[iparam]);
-    }
-#if 0
-  TH2F *hHistoPID[kNHistos][AliPID::kSPECIES][kNCharges];
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++)
-    for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++)
-      for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-       hHistoPID[ihisto][ipart][icharge] = new TH2F(Form("hHistoPID_%s_%s_%s", histoName[ihisto], AliPID::ParticleName(ipart), chargeName[icharge]), "", NcentralityBins, centralityBin, NptBins, ptBin);
-      }
-#endif
-  /* histos */
-  TH2F *hFEAMap = new TH2F("hFEAMap", "", 72, 0., 18., 91, 0., 91.);
-
-  /* start stopwatch */
-  TStopwatch timer;
-  timer.Start();
-  
-  /* loop over events */
-  Double_t param[kNParams];
-  Int_t charge;
-  Int_t index, sector, sectorStrip, padx, fea;
-  Float_t hitmapx, hitmapy;
-  AliTOFcalibHisto calib;
-  calib.LoadCalibHisto();
-  for (Int_t iev = 0; iev < treein->GetEntries() && iev < evMax; iev++) {
-    /* get event */
-    treein->GetEvent(iev);
-    if (iev % 1000 == 0) printf("iev = %d\n", iev);
-    /* check vertex */
-    if (!analysisEvent->AcceptVertex()) continue;
-    /* check collision candidate */
-    if (!analysisEvent->IsCollisionCandidate()) continue;
-    /* check centrality quality */
-    if (analysisEvent->GetCentralityQuality() != 0.) continue;
-
-    /*** ACCEPTED EVENT ***/
-
-    /* get centrality */
-    param[kCentrality] = analysisEvent->GetCentralityPercentile(AliAnalysisEvent::kCentEst_V0M);
-    
-    /* loop over tracks */
-    for (Int_t itrk = 0; itrk < analysisTrackArray->GetEntries(); itrk++) {
-      /* get track */
-      analysisTrack = (AliAnalysisTrack *)analysisTrackArray->At(itrk);
-      if (!analysisTrack) continue;
-      /* check accepted track */
-      if (!analysisTrack->AcceptTrack()) continue;
-
-      /*** ACCEPTED TRACK ***/
-      
-      /* get track info */
-      param[kPt] = analysisTrack->GetPt();
-      param[kEta] = analysisTrack->GetEta();
-      param[kPhi] = analysisTrack->GetPhi();
-      charge = analysisTrack->GetSign() > 0. ? kPositive : kNegative;
-      index = analysisTrack->GetTOFIndex();
-      
-      /* fill accepted tracks histos */
-      hHisto[kAcceptedTracks][charge]->Fill(param);
-#if 0
-      for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++) {
-       if (TMath::Abs(analysisTrack->GetY(AliPID::ParticleMass(ipart))) > 0.5) continue;
-       hHistoPID[kAcceptedTracks][ipart][charge]->Fill(param[kCentrality], param[kPt]);
-      }
-#endif
-
-      /* check TOF PID */
-      if (!analysisTrack->HasTOFPID()) continue;
-      /* check channel enabled */
-      //      if (hEnabledFlag && hEnabledFlag->GetBinContent(index + 1) == 0.) continue;
-
-      /*** ACCEPTED TRACK WITH TOF SIGNAL ***/
-
-      /* fill FEA map */
-      sector = calib.GetCalibMap(AliTOFcalibHisto::kSector, index);
-      sectorStrip = calib.GetCalibMap(AliTOFcalibHisto::kSectorStrip, index);
-      padx = calib.GetCalibMap(AliTOFcalibHisto::kPadX, index);
-      fea = padx / 12;
-      hitmapx = sector + ((Double_t)(3 - fea) + 0.5) / 4.;
-      hitmapy = sectorStrip;
-      hFEAMap->Fill(hitmapx, hitmapy);
-      
-      /* fill matched tracks histos */
-      hHisto[kMatchedTracks][charge]->Fill(param);
-      if (!analysisTrack->IsMismatchMC()) {
-       hHisto[kMatchedGoodTracks][charge]->Fill(param);
-       hHisto[kMatchedCorrelatedTracks][charge]->Fill(param);
-      }
-      else {
-       hHisto[kMismatchedTracks][charge]->Fill(param);
-       if (!analysisTrack->IsUncorrelatedMismatchMC())
-         hHisto[kMatchedCorrelatedTracks][charge]->Fill(param);
-       else
-         hHisto[kUncorrelatedTracks][charge]->Fill(param);
-      }
-#if 0
-      for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++) {
-       if (TMath::Abs(analysisTrack->GetY(AliPID::ParticleMass(ipart))) > 0.5) continue;
-       hHistoPID[kMatchedTracks][ipart][charge]->Fill(param[kCentrality], param[kPt]);
-       if (!analysisTrack->IsMismatchMC()) {
-         hHistoPID[kMatchedGoodTracks][charge]->Fill(param);
-         hHistoPID[kMatchedCorrelatedTracks][charge]->Fill(param);
-       }
-       else {
-         hHistoPID[kMismatchedTracks][charge]->Fill(param);
-         if (!analysisTrack->IsUncorrelatedMismatchMC())
-           hHistoPID[kMatchedCorrelatedTracks][charge]->Fill(param);
-         else
-           hHistoPID[kUncorrelatedTracks][charge]->Fill(param);
-       }
-      }
-#endif
-    }
-  }
-
-  /* stop stopwatch */
-  timer.Stop();
-  timer.Print();
-
-  TFile *fileout = TFile::Open(Form("TOFmatchEff.%s", filename), "RECREATE");
-  hFEAMap->Write();
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++)
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      hHisto[ihisto][icharge]->Write();
-    }
-#if 0
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++)
-    for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++)
-      for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-       hHistoPID[ihisto][ipart][icharge]->Write();
-      }
-#endif
-  fileout->Close();
-  
-}
-
-//_____________________________________________________________________________-
-
-TOFmatchEff_efficiencyPt(const Char_t *filename)
-{
-
-  /* get data */
-  TFile *filein = TFile::Open(filename);
-  THnSparseF *hHisto[kNHistos][kNCharges];
-  TH2F *hHistoPID[kNHistos][AliPID::kSPECIES][kNCharges];
-  TH1D *hHistoPt_MB[kNHistos][kNCharges], *hHistoPt_centrality[NcentralityBins][kNHistos][kNCharges];
-  TH1D *hHistoPIDPt_MB[kNHistos][AliPID::kSPECIES][kNCharges], *hHistoPIDPt_centrality[NcentralityBins][kNHistos][AliPID::kSPECIES][kNCharges];
-  TH1D *hHistoAllPt_MB[kNHistos], *hHistoAllPt_centrality[NcentralityBins][kNHistos];
-  /* loop over histos */
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++) {
-
-    /* INCLUSIVE */
-
-    hHistoAllPt_MB[ihisto] = new TH1D(Form("hHistoAllPt_MB_%s", histoName[ihisto]), "", NptBins, ptBin);
-    for (Int_t icent = 0; icent < NcentralityBins; icent++)
-      hHistoAllPt_centrality[icent][ihisto] = new TH1D(Form("hHistoAllPt_centrality%d_%s", icent, histoName[ihisto]), "", NptBins, ptBin);
-
-    /* SINGLE PARTICLE */
-
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      
-      /* get histo */
-      hHisto[ihisto][icharge] = (THnSparseF *)filein->Get(Form("hHisto_%s_%s", histoName[ihisto], chargeName[icharge]));
-      
-      /* MB projection */
-      hHistoPt_MB[ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kPt);
-      hHistoPt_MB[ihisto][icharge]->SetName(Form("hHistoPt_MB_%s_%s", histoName[ihisto], chargeName[icharge]));
-      hHistoPt_MB[ihisto][icharge]->Sumw2();
-      hHistoAllPt_MB[ihisto]->Add(hHistoPt_MB[ihisto][icharge]);
-       
-      /* centrality projection */
-      for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-
-       hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(icent + 1, icent + 1);
-       hHistoPt_centrality[icent][ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kPt);
-       hHistoPt_centrality[icent][ihisto][icharge]->SetName(Form("hHistoPt_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hHistoPt_centrality[icent][ihisto][icharge]->Sumw2();
-       hHistoAllPt_centrality[icent][ihisto]->Add(hHistoPt_centrality[icent][ihisto][icharge]);
-      }
-      
-#if 0
-      for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++) {
-
-       /* get histo */
-       hHistoPID[ihisto][ipart][icharge] = (TH2F *)filein->Get(Form("hHistoPID_%s_%s_%s", histoName[ihisto], AliPID::ParticleName(ipart), chargeName[icharge]));
-
-       /* MB projection */
-       hHistoPIDPt_MB[ihisto][ipart][icharge] = hHistoPID[ihisto][ipart][icharge]->ProjectionY("hpy");
-       hHistoPIDPt_MB[ihisto][ipart][icharge]->SetName(Form("hHistoPIDPt_MB_%s_%s_%s", histoName[ihisto], AliPID::ParticleName(ipart), chargeName[icharge]));
-       hHistoPIDPt_MB[ihisto][ipart][icharge]->Sumw2();
-       
-       /* centrality projection */
-       for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-         hHistoPIDPt_centrality[icent][ihisto][ipart][icharge] = hHistoPID[ihisto][ipart][icharge]->ProjectionY("hpy", icent + 1, icent + 1);
-         hHistoPIDPt_centrality[icent][ihisto][ipart][icharge]->SetName(Form("hHistoPIDPt_centrality%d_%s_%s_%s", icent, histoName[ihisto], AliPID::ParticleName(ipart), chargeName[icharge]));
-         hHistoPIDPt_centrality[icent][ihisto][ipart][icharge]->Sumw2();
-
-       }
-       
-      }
-#endif
-      
-    }
-  }
-
-  /* output */
-  TString str = filename;
-  str.Insert(str.Length() - TString(".root").Length(), ".efficiencyPt");
-  TFile *fileout = TFile::Open(str.Data(), "RECREATE");
-  
-  /* efficiencies/fractions and write */
-  TH1D *hEfficiencyPt_MB[kNHistos][kNCharges], *hEfficiencyPt_centrality[NcentralityBins][kNHistos][kNCharges], *hEfficiencyPt_ratioMB_centrality[NcentralityBins][kNHistos][kNCharges];
-  TH1D *hEfficiencyPIDPt_MB[kNHistos][AliPID::kSPECIES][kNCharges], *hEfficiencyPIDPt_centrality[NcentralityBins][kNHistos][AliPID::kSPECIES][kNCharges], *hEfficiencyPIDPt_ratioMB_centrality[NcentralityBins][kNHistos][AliPID::kSPECIES][kNCharges];
-  TH1D *hEfficiencyAllPt_MB[kNHistos], *hEfficiencyAllPt_centrality[NcentralityBins][kNHistos], *hEfficiencyAllPt_ratioMB_centrality[NcentralityBins][kNHistos];
-
-  TH1D *hFractionPt_MB[kNHistos][kNCharges], *hFractionPt_centrality[NcentralityBins][kNHistos][kNCharges], *hFractionPt_ratioMB_centrality[NcentralityBins][kNHistos][kNCharges];
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++) {
-    
-    if (ihisto == kAcceptedTracks) continue;
-    
-    /* INCLUSIVE */
-    
-    /* MB efficiency */
-    hEfficiencyAllPt_MB[ihisto] = new TH1D(*hHistoAllPt_MB[ihisto]);
-    hEfficiencyAllPt_MB[ihisto]->SetName(Form("hEfficiencyAllPt_MB_%s", histoName[ihisto]));
-    hEfficiencyAllPt_MB[ihisto]->SetLineWidth(2);
-    hEfficiencyAllPt_MB[ihisto]->SetLineColor(1);
-    hEfficiencyAllPt_MB[ihisto]->SetMarkerStyle(20);
-    hEfficiencyAllPt_MB[ihisto]->SetMarkerColor(1);
-    hEfficiencyAllPt_MB[ihisto]->Divide(hEfficiencyAllPt_MB[ihisto], hHistoAllPt_MB[kAcceptedTracks], 1, 1, "B");
-    hEfficiencyAllPt_MB[ihisto]->Write();
-    
-    /* multiplicity/centrality efficiency */
-    for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-      hEfficiencyAllPt_centrality[icent][ihisto] = new TH1D(*hHistoAllPt_centrality[icent][ihisto]);
-      hEfficiencyAllPt_centrality[icent][ihisto]->SetName(Form("hEfficiencyAllPt_centrality%d_%s", icent, histoName[ihisto]));
-      hEfficiencyAllPt_centrality[icent][ihisto]->SetLineWidth(2);
-      hEfficiencyAllPt_centrality[icent][ihisto]->SetLineColor(multcentColor[icent]);
-      hEfficiencyAllPt_centrality[icent][ihisto]->SetMarkerStyle(20);
-      hEfficiencyAllPt_centrality[icent][ihisto]->SetMarkerColor(multcentColor[icent]);
-      hEfficiencyAllPt_centrality[icent][ihisto]->Divide(hEfficiencyAllPt_centrality[icent][ihisto], hHistoAllPt_centrality[icent][kAcceptedTracks], 1, 1, "B");
-      hEfficiencyAllPt_centrality[icent][ihisto]->Write();
-      
-      /* ratio wrt. MB */
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto] = new TH1D(*hEfficiencyAllPt_centrality[icent][ihisto]);
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto]->SetName(Form("hEfficiencyAllPt_ratioMB_centrality%d_%s", icent, histoName[ihisto]));
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto]->SetLineWidth(2);
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto]->SetLineColor(multcentColor[icent]);
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto]->SetMarkerStyle(20);
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto]->SetMarkerColor(multcentColor[icent]);
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto]->Divide(hEfficiencyAllPt_MB[ihisto]);
-      hEfficiencyAllPt_ratioMB_centrality[icent][ihisto]->Write();
-    }
-    
-    /* SINGLE PARTICLE */
-    
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      
-      /* MB efficiency */
-      hEfficiencyPt_MB[ihisto][icharge] = new TH1D(*hHistoPt_MB[ihisto][icharge]);
-      hEfficiencyPt_MB[ihisto][icharge]->SetName(Form("hEfficiencyPt_MB_%s_%s", histoName[ihisto], chargeName[icharge]));
-      hEfficiencyPt_MB[ihisto][icharge]->SetLineWidth(2);
-      hEfficiencyPt_MB[ihisto][icharge]->SetLineColor(1);
-      hEfficiencyPt_MB[ihisto][icharge]->SetMarkerStyle(20);
-      hEfficiencyPt_MB[ihisto][icharge]->SetMarkerColor(1);
-      hEfficiencyPt_MB[ihisto][icharge]->Divide(hEfficiencyPt_MB[ihisto][icharge], hHistoPt_MB[kAcceptedTracks][icharge], 1, 1, "B");
-      hEfficiencyPt_MB[ihisto][icharge]->Write();
-      
-      /* multiplicity/centrality efficiency */
-      for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-       hEfficiencyPt_centrality[icent][ihisto][icharge] = new TH1D(*hHistoPt_centrality[icent][ihisto][icharge]);
-       hEfficiencyPt_centrality[icent][ihisto][icharge]->SetName(Form("hEfficiencyPt_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyPt_centrality[icent][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyPt_centrality[icent][ihisto][icharge]->SetLineColor(multcentColor[icent]);
-       hEfficiencyPt_centrality[icent][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyPt_centrality[icent][ihisto][icharge]->SetMarkerColor(multcentColor[icent]);
-       hEfficiencyPt_centrality[icent][ihisto][icharge]->Divide(hEfficiencyPt_centrality[icent][ihisto][icharge], hHistoPt_centrality[icent][kAcceptedTracks][icharge], 1, 1, "B");
-       hEfficiencyPt_centrality[icent][ihisto][icharge]->Write();
-       
-       /* ratio wrt. MB */
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge] = new TH1D(*hEfficiencyPt_centrality[icent][ihisto][icharge]);
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge]->SetName(Form("hEfficiencyPt_ratioMB_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge]->SetLineColor(multcentColor[icent]);
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge]->SetMarkerColor(multcentColor[icent]);
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge]->Divide(hEfficiencyPt_MB[ihisto][icharge]);
-       hEfficiencyPt_ratioMB_centrality[icent][ihisto][icharge]->Write();
-      }
-     
-#if 0
-      for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++) {
-
-       /* MB efficiency */
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge] = new TH1D(*hHistoPIDPt_MB[ihisto][ipart][icharge]);
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge]->SetName(Form("hEfficiencyPIDPt_MB_%s_%s_%s", histoName[ihisto], AliPID::ParticleName(ipart), chargeName[icharge]));
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge]->SetLineWidth(2);
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge]->SetLineColor(1);
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge]->SetMarkerStyle(20);
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge]->SetMarkerColor(1);
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge]->Divide(hEfficiencyPIDPt_MB[ihisto][ipart][icharge], hHistoPIDPt_MB[kAcceptedTracks][ipart][icharge], 1, 1, "B");
-       hEfficiencyPIDPt_MB[ihisto][ipart][icharge]->Write();
-       
-       /* multiplicity/centrality efficiency */
-       for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge] = new TH1D(*hHistoPIDPt_centrality[icent][ihisto][ipart][icharge]);
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]->SetName(Form("hEfficiencyPIDPt_centrality%d_%s_%s_%s", icent, histoName[ihisto], AliPID::ParticleName(ipart), chargeName[icharge]));
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]->SetLineWidth(2);
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]->SetLineColor(multcentColor[icent]);
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]->SetMarkerStyle(20);
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]->SetMarkerColor(multcentColor[icent]);
-
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]->Divide(hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge], hHistoPIDPt_centrality[icent][kAcceptedTracks][ipart][icharge], 1, 1, "B");
-         hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]->Write();
-
-         /* ratio wrt. MB */
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge] = new TH1D(*hEfficiencyPIDPt_centrality[icent][ihisto][ipart][icharge]);
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge]->SetName(Form("hEfficiencyPIDPt_ratioMB_centrality%d_%s_%s_%s", icent, histoName[ihisto], AliPID::ParticleName(ipart), chargeName[icharge]));
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge]->SetLineWidth(2);
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge]->SetLineColor(multcentColor[icent]);
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge]->SetMarkerStyle(20);
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge]->SetMarkerColor(multcentColor[icent]);
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge]->Divide(hEfficiencyPIDPt_MB[ihisto][ipart][icharge]);
-         hEfficiencyPIDPt_ratioMB_centrality[icent][ihisto][ipart][icharge]->Write();
-       }
-       
-       
-      }
-#endif
-      
-    }       
-  }
-  
-  fileout->Close();
-            
-}
-
-//_____________________________________________________________________________-
-
-TOFmatchEff_efficiencyPhi(const Char_t *filename)
-{
-
-  /* get data */
-  TFile *filein = TFile::Open(filename);
-  THnSparseF *hHisto[kNHistos][kNCharges];
-  TH1D *hHistoPhi_MB[kNHistos][kNCharges], *hHistoPhi_centrality[NcentralityBins][kNHistos][kNCharges];
-  TH1D *hHistoPhi_MB_pt[NptsubBins][kNHistos][kNCharges], *hHistoPhi_centrality_pt[NcentralityBins][NptsubBins][kNHistos][kNCharges];
-  /* loop over histos */
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++)
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      
-      /* get histo */
-      hHisto[ihisto][icharge] = (THnSparseF *)filein->Get(Form("hHisto_%s_%s", histoName[ihisto], chargeName[icharge]));
-      
-      /* MB projection */
-      hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(0, 0);
-      hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(0, 0);
-      hHistoPhi_MB[ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kPhi);
-      hHistoPhi_MB[ihisto][icharge]->SetName(Form("hHistoPhi_MB_%s_%s", histoName[ihisto], chargeName[icharge]));
-      hHistoPhi_MB[ihisto][icharge]->Sumw2();
-      /* pt bins */
-      for (Int_t ipt = 0; ipt < NptsubBins; ipt++) {
-       hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(ptsubBinMin[ipt] + 1, ptsubBinMax[ipt] + 1);
-       hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(0, 0);
-       hHistoPhi_MB_pt[ipt][ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kPhi);
-       hHistoPhi_MB_pt[ipt][ihisto][icharge]->SetName(Form("hHistoPhi_MB_pt%d_%s_%s", ipt, histoName[ihisto], chargeName[icharge]));
-       hHistoPhi_MB_pt[ipt][ihisto][icharge]->Sumw2();
-      }
-      
-      /* centrality projection */
-      for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-       hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(0, 0);
-       hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(icent + 1, icent + 1);
-       hHistoPhi_centrality[icent][ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kPhi);
-       hHistoPhi_centrality[icent][ihisto][icharge]->SetName(Form("hHistoPhi_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hHistoPhi_centrality[icent][ihisto][icharge]->Sumw2();
-       /* pt bins */
-       for (Int_t ipt = 0; ipt < NptsubBins; ipt++) {
-         hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(ptsubBinMin[ipt] + 1, ptsubBinMax[ipt] + 1);
-         hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(icent + 1, icent + 1);
-         hHistoPhi_centrality_pt[icent][ipt][ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kPhi);
-         hHistoPhi_centrality_pt[icent][ipt][ihisto][icharge]->SetName(Form("hHistoPhi_centrality%d_pt%d_%s_%s", icent, ipt, histoName[ihisto], chargeName[icharge]));
-         hHistoPhi_centrality_pt[icent][ipt][ihisto][icharge]->Sumw2();
-       }
-      }
-    }
-  
-  /* output */
-  TString str = filename;
-  str.Insert(str.Length() - TString(".root").Length(), ".efficiencyPhi");
-  TFile *fileout = TFile::Open(str.Data(), "RECREATE");
-  
-  /* efficiencies/fractions and write */
-  TH1D *hEfficiencyPhi_MB[kNHistos][kNCharges], *hEfficiencyPhi_centrality[NcentralityBins][kNHistos][kNCharges], *hEfficiencyPhi_ratioMB_centrality[NcentralityBins][kNHistos][kNCharges];
-  TH1D *hEfficiencyPhi_MB_pt[NptsubBins][kNHistos][kNCharges], *hEfficiencyPhi_centrality_pt[NcentralityBins][NptsubBins][kNHistos][kNCharges], *hEfficiencyPhi_ratioMB_centrality_pt[NcentralityBins][NptsubBins][kNHistos][kNCharges];
-
-
-  TH1D *hFractionPhi_MB[kNHistos][kNCharges], *hFractionPhi_centrality[NcentralityBins][kNHistos][kNCharges], *hFractionPhi_ratioMB_centrality[NcentralityBins][kNHistos][kNCharges];
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++) {
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      
-      if (ihisto == kAcceptedTracks) continue;
-      
-      /* MB efficiency */
-      hEfficiencyPhi_MB[ihisto][icharge] = new TH1D(*hHistoPhi_MB[ihisto][icharge]);
-      hEfficiencyPhi_MB[ihisto][icharge]->SetName(Form("hEfficiencyPhi_MB_%s_%s", histoName[ihisto], chargeName[icharge]));
-      hEfficiencyPhi_MB[ihisto][icharge]->SetLineWidth(2);
-      hEfficiencyPhi_MB[ihisto][icharge]->SetLineColor(1);
-      hEfficiencyPhi_MB[ihisto][icharge]->SetMarkerStyle(20);
-      hEfficiencyPhi_MB[ihisto][icharge]->SetMarkerColor(1);
-      hEfficiencyPhi_MB[ihisto][icharge]->Divide(hEfficiencyPhi_MB[ihisto][icharge], hHistoPhi_MB[kAcceptedTracks][icharge], 1, 1, "B");
-      hEfficiencyPhi_MB[ihisto][icharge]->Write();
-      /* pt bins */
-      for (Int_t ipt = 0; ipt < NptsubBins; ipt++) {
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge] = new TH1D(*hHistoPhi_MB_pt[ipt][ihisto][icharge]);
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge]->SetName(Form("hEfficiencyPhi_MB_pt%d_%s_%s", ipt, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge]->SetLineColor(1);
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge]->SetMarkerColor(1);
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge]->Divide(hEfficiencyPhi_MB_pt[ipt][ihisto][icharge], hHistoPhi_MB_pt[ipt][kAcceptedTracks][icharge], 1, 1, "B");
-       hEfficiencyPhi_MB_pt[ipt][ihisto][icharge]->Write();
-      }
-      
-      /* multiplicity/centrality efficiency */
-      for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-       hEfficiencyPhi_centrality[icent][ihisto][icharge] = new TH1D(*hHistoPhi_centrality[icent][ihisto][icharge]);
-       hEfficiencyPhi_centrality[icent][ihisto][icharge]->SetName(Form("hEfficiencyPhi_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyPhi_centrality[icent][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyPhi_centrality[icent][ihisto][icharge]->SetLineColor(multcentColor[icent]);
-       hEfficiencyPhi_centrality[icent][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyPhi_centrality[icent][ihisto][icharge]->SetMarkerColor(multcentColor[icent]);
-       hEfficiencyPhi_centrality[icent][ihisto][icharge]->Divide(hEfficiencyPhi_centrality[icent][ihisto][icharge], hHistoPhi_centrality[icent][kAcceptedTracks][icharge], 1, 1, "B");
-       hEfficiencyPhi_centrality[icent][ihisto][icharge]->Write();
-       
-       /* ratio wrt. MB */
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge] = new TH1D(*hEfficiencyPhi_centrality[icent][ihisto][icharge]);
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge]->SetName(Form("hEfficiencyPhi_ratioMB_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge]->SetLineColor(multcentColor[icent]);
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge]->SetMarkerColor(multcentColor[icent]);
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge]->Divide(hEfficiencyPhi_MB[ihisto][icharge]);
-       hEfficiencyPhi_ratioMB_centrality[icent][ihisto][icharge]->Write();
-      }
-      
-    }       
-  }
-  
-  fileout->Close();
-            
-}
-
-//_____________________________________________________________________________-
-
-TOFmatchEff_efficiencyEta(const Char_t *filename)
-{
-
-  /* get data */
-  TFile *filein = TFile::Open(filename);
-  THnSparseF *hHisto[kNHistos][kNCharges];
-  TH1D *hHistoEta_MB[kNHistos][kNCharges], *hHistoEta_centrality[NcentralityBins][kNHistos][kNCharges];
-  TH1D *hHistoEta_MB_pt[NptsubBins][kNHistos][kNCharges], *hHistoEta_centrality_pt[NcentralityBins][NptsubBins][kNHistos][kNCharges];
-  /* loop over histos */
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++)
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      
-      /* get histo */
-      hHisto[ihisto][icharge] = (THnSparseF *)filein->Get(Form("hHisto_%s_%s", histoName[ihisto], chargeName[icharge]));
-      
-      /* MB projection */
-      hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(0, 0);
-      hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(0, 0);
-      hHistoEta_MB[ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kEta);
-      hHistoEta_MB[ihisto][icharge]->SetName(Form("hHistoEta_MB_%s_%s", histoName[ihisto], chargeName[icharge]));
-      hHistoEta_MB[ihisto][icharge]->Sumw2();
-      /* pt bins */
-      for (Int_t ipt = 0; ipt < NptsubBins; ipt++) {
-       hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(ptsubBinMin[ipt] + 1, ptsubBinMax[ipt] + 1);
-       hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(0, 0);
-       hHistoEta_MB_pt[ipt][ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kEta);
-       hHistoEta_MB_pt[ipt][ihisto][icharge]->SetName(Form("hHistoEta_MB_pt%d_%s_%s", ipt, histoName[ihisto], chargeName[icharge]));
-       hHistoEta_MB_pt[ipt][ihisto][icharge]->Sumw2();
-      }
-      
-      /* centrality projection */
-      for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-       hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(0, 0);
-       hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(icent + 1, icent + 1);
-       hHistoEta_centrality[icent][ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kEta);
-       hHistoEta_centrality[icent][ihisto][icharge]->SetName(Form("hHistoEta_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hHistoEta_centrality[icent][ihisto][icharge]->Sumw2();
-       /* pt bins */
-       for (Int_t ipt = 0; ipt < NptsubBins; ipt++) {
-         hHisto[ihisto][icharge]->GetAxis(kPt)->SetRange(ptsubBinMin[ipt] + 1, ptsubBinMax[ipt] + 1);
-         hHisto[ihisto][icharge]->GetAxis(kCentrality)->SetRange(icent + 1, icent + 1);
-         hHistoEta_centrality_pt[icent][ipt][ihisto][icharge] = hHisto[ihisto][icharge]->Projection(kEta);
-         hHistoEta_centrality_pt[icent][ipt][ihisto][icharge]->SetName(Form("hHistoEta_centrality%d_pt%d_%s_%s", icent, ipt, histoName[ihisto], chargeName[icharge]));
-         hHistoEta_centrality_pt[icent][ipt][ihisto][icharge]->Sumw2();
-       }
-      }
-    }
-  
-  /* output */
-  TString str = filename;
-  str.Insert(str.Length() - TString(".root").Length(), ".efficiencyEta");
-  TFile *fileout = TFile::Open(str.Data(), "RECREATE");
-  
-  /* efficiencies/fractions and write */
-  TH1D *hEfficiencyEta_MB[kNHistos][kNCharges], *hEfficiencyEta_centrality[NcentralityBins][kNHistos][kNCharges], *hEfficiencyEta_ratioMB_centrality[NcentralityBins][kNHistos][kNCharges];
-  TH1D *hEfficiencyEta_MB_pt[NptsubBins][kNHistos][kNCharges], *hEfficiencyEta_centrality_pt[NcentralityBins][NptsubBins][kNHistos][kNCharges], *hEfficiencyEta_ratioMB_centrality_pt[NcentralityBins][NptsubBins][kNHistos][kNCharges];
-
-
-  TH1D *hFractionEta_MB[kNHistos][kNCharges], *hFractionEta_centrality[NcentralityBins][kNHistos][kNCharges], *hFractionEta_ratioMB_centrality[NcentralityBins][kNHistos][kNCharges];
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++) {
-    for (Int_t icharge = 0; icharge < kNCharges; icharge++) {
-      
-      if (ihisto == kAcceptedTracks) continue;
-      
-      /* MB efficiency */
-      hEfficiencyEta_MB[ihisto][icharge] = new TH1D(*hHistoEta_MB[ihisto][icharge]);
-      hEfficiencyEta_MB[ihisto][icharge]->SetName(Form("hEfficiencyEta_MB_%s_%s", histoName[ihisto], chargeName[icharge]));
-      hEfficiencyEta_MB[ihisto][icharge]->SetLineWidth(2);
-      hEfficiencyEta_MB[ihisto][icharge]->SetLineColor(1);
-      hEfficiencyEta_MB[ihisto][icharge]->SetMarkerStyle(20);
-      hEfficiencyEta_MB[ihisto][icharge]->SetMarkerColor(1);
-      hEfficiencyEta_MB[ihisto][icharge]->Divide(hEfficiencyEta_MB[ihisto][icharge], hHistoEta_MB[kAcceptedTracks][icharge], 1, 1, "B");
-      hEfficiencyEta_MB[ihisto][icharge]->Write();
-      /* pt bins */
-      for (Int_t ipt = 0; ipt < NptsubBins; ipt++) {
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge] = new TH1D(*hHistoEta_MB_pt[ipt][ihisto][icharge]);
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge]->SetName(Form("hEfficiencyEta_MB_pt%d_%s_%s", ipt, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge]->SetLineColor(1);
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge]->SetMarkerColor(1);
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge]->Divide(hEfficiencyEta_MB_pt[ipt][ihisto][icharge], hHistoEta_MB_pt[ipt][kAcceptedTracks][icharge], 1, 1, "B");
-       hEfficiencyEta_MB_pt[ipt][ihisto][icharge]->Write();
-      }
-      
-      /* multiplicity/centrality efficiency */
-      for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-       hEfficiencyEta_centrality[icent][ihisto][icharge] = new TH1D(*hHistoEta_centrality[icent][ihisto][icharge]);
-       hEfficiencyEta_centrality[icent][ihisto][icharge]->SetName(Form("hEfficiencyEta_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyEta_centrality[icent][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyEta_centrality[icent][ihisto][icharge]->SetLineColor(multcentColor[icent]);
-       hEfficiencyEta_centrality[icent][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyEta_centrality[icent][ihisto][icharge]->SetMarkerColor(multcentColor[icent]);
-       hEfficiencyEta_centrality[icent][ihisto][icharge]->Divide(hEfficiencyEta_centrality[icent][ihisto][icharge], hHistoEta_centrality[icent][kAcceptedTracks][icharge], 1, 1, "B");
-       hEfficiencyEta_centrality[icent][ihisto][icharge]->Write();
-       
-       /* ratio wrt. MB */
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge] = new TH1D(*hEfficiencyEta_centrality[icent][ihisto][icharge]);
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge]->SetName(Form("hEfficiencyEta_ratioMB_centrality%d_%s_%s", icent, histoName[ihisto], chargeName[icharge]));
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge]->SetLineWidth(2);
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge]->SetLineColor(multcentColor[icent]);
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge]->SetMarkerStyle(20);
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge]->SetMarkerColor(multcentColor[icent]);
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge]->Divide(hEfficiencyEta_MB[ihisto][icharge]);
-       hEfficiencyEta_ratioMB_centrality[icent][ihisto][icharge]->Write();
-      }
-      
-    }       
-  }
-  
-  fileout->Close();
-            
-}
-
-#if 0
-//_____________________________________________________________________________-
-
-TOFmatchMC_efficiencyCent(const Char_t *filename, const Char_t *particle = "", const Char_t *charge = "", const Char_t *trdmode = "")
-{
-
-  const Int_t npt = 4;
-  Double_t pt[npt + 1] = {0., 0.5, 1.0, 1.5, 5.0};
-
-  /* get data */
-  TFile *filein = TFile::Open(filename);
-  THnSparseF *hHisto[kNHistos];
-  TH1D *hHisto_all[kNHistos], *hHisto_MB_all[kNHistos], *hHisto_pt[kNHistos][MAXMULTCENTBINS], *hHisto_MB_pt[kNHistos][MAXMULTCENTBINS];
-  /* loop over histos */
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++) {
-    if (ihisto == kMatchedCorrelatedTracks) continue;
-    /* get histo */
-    hHisto[ihisto] = (THnSparseF *)filein->Get(histoName[ihisto]);
-    /* set range limits */
-    hHisto[ihisto]->GetAxis(kRapidity)->SetRangeUser(-0.5 + kEpsilon, 0.5 - kEpsilon);
-    hHisto[ihisto]->GetAxis(kEta)->SetRangeUser(-0.8 + kEpsilon, 0.8 - kEpsilon);
-    hHisto[ihisto]->GetAxis(kPt)->SetRangeUser(0. + kEpsilon, 5.0 - kEpsilon);
-    /* select particle if requested */
-    for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++)
-      if (TString(particle) == AliPID::ParticleName(ipart))
-       hHisto[ihisto]->GetAxis(kParticle)->SetRange(ipart + 1, ipart + 1);
-    /* select charge if requested */
-    if (TString(charge) == "plus")
-      hHisto[ihisto]->GetAxis(kCharge)->SetRange(1, 1);
-    else if (TString(charge) == "minus")
-      hHisto[ihisto]->GetAxis(kCharge)->SetRange(2, 2);
-    /* select TRD mode if requested */
-    if (TString(trdmode) == "trdout")
-      hHisto[ihisto]->GetAxis(kTRDmode)->SetRange(1, 1);
-    else if (TString(trdmode) == "notrdout")
-      hHisto[ihisto]->GetAxis(kTRDmode)->SetRange(2, 2);
-    /* all projection */
-    hHisto_all[ihisto] = hHisto[ihisto]->Projection(kMultCent);
-    hHisto_all[ihisto]->SetName(Form("%s_all", histoName[ihisto]));
-    hHisto_all[ihisto]->Sumw2();
-    /* MB all projection */
-    hHisto_MB_all[ihisto] = new TH1D(*hHisto_all[ihisto]);
-    hHisto_MB_all[ihisto]->SetName(Form("%s_MB_all", histoName[ihisto]));
-    for (Int_t i = 0; i < hHisto_MB_all[ihisto]->GetNbinsX(); i++) {
-      hHisto_MB_all[ihisto]->SetBinContent(i + 1, hHisto_all[ihisto]->Integral());
-      hHisto_MB_all[ihisto]->SetBinError(i + 1, TMath::Sqrt(hHisto_all[ihisto]->Integral()));
-    }
-    /* pt projection */
-    for (Int_t ibin = 0; ibin < npt; ibin++) {
-      hHisto[ihisto]->GetAxis(kPt)->SetRangeUser(pt[ibin] + kEpsilon, pt[ibin + 1] - kEpsilon);
-      hHisto_pt[ihisto][ibin] = hHisto[ihisto]->Projection(kMultCent);
-      hHisto_pt[ihisto][ibin]->SetName(Form("%s_pt%3.1f-%3.1f", histoName[ihisto], pt[ibin], pt[ibin + 1]));
-      hHisto_pt[ihisto][ibin]->Sumw2();
-      /* MB pt projection */
-      hHisto_MB_pt[ihisto][ibin] = new TH1D(*hHisto_pt[ihisto][ibin]);
-      hHisto_MB_pt[ihisto][ibin]->SetName(Form("%s_MB_pt%3.1f-%3.1f", histoName[ihisto], pt[ibin], pt[ibin + 1]));
-      for (Int_t i = 0; i < hHisto_MB_pt[ihisto][ibin]->GetNbinsX(); i++) {
-       hHisto_MB_pt[ihisto][ibin]->SetBinContent(i + 1, hHisto_pt[ihisto][ibin]->Integral());
-       hHisto_MB_pt[ihisto][ibin]->SetBinError(i + 1, TMath::Sqrt(hHisto_pt[ihisto][ibin]->Integral()));
-      }
-    }
-  }
-  /*** matched correlated histos ***/
-  /* all projection */
-  hHisto_all[kMatchedCorrelatedTracks] = new TH1D(*hHisto_all[kMatchedTracks]);
-  hHisto_all[kMatchedCorrelatedTracks]->Add(hHisto_all[kUncorrelatedTracks], -1.);
-  hHisto_all[kMatchedCorrelatedTracks]->SetName(Form("%s_all", histoName[kMatchedCorrelatedTracks]));
-  /* MB all projection */
-  hHisto_MB_all[kMatchedCorrelatedTracks] = new TH1D(*hHisto_MB_all[kMatchedTracks]);
-  hHisto_MB_all[kMatchedCorrelatedTracks]->Add(hHisto_MB_all[kUncorrelatedTracks], -1.);
-  hHisto_MB_all[kMatchedCorrelatedTracks]->SetName(Form("%s_MB_all", histoName[kMatchedCorrelatedTracks]));
-  /* pt projection */
-  for (Int_t ibin = 0; ibin < npt; ibin++) {
-    hHisto_pt[kMatchedCorrelatedTracks][ibin] = new TH1D(*hHisto_pt[kMatchedTracks][ibin]);
-    hHisto_pt[kMatchedCorrelatedTracks][ibin]->Add(hHisto_pt[kUncorrelatedTracks][ibin], -1.);
-    hHisto_pt[kMatchedCorrelatedTracks][ibin]->SetName(Form("%s_pt%3.1f-%3.1f", histoName[kMatchedCorrelatedTracks], pt[ibin], pt[ibin + 1]));
-    /* MB pt projection */
-    hHisto_MB_pt[kMatchedCorrelatedTracks][ibin] = new TH1D(*hHisto_MB_pt[kMatchedTracks][ibin]);
-    hHisto_MB_pt[kMatchedCorrelatedTracks][ibin]->Add(hHisto_MB_pt[kUncorrelatedTracks][ibin], -1.);
-    hHisto_MB_pt[kMatchedCorrelatedTracks][ibin]->SetName(Form("%s_MB_pt%3.1f-%3.1f", histoName[kMatchedCorrelatedTracks], pt[ibin], pt[ibin + 1]));
-  }
-
-  /* output */
-  TString str = filename;
-  str.Insert(str.Length() - TString(".root").Length(), ".efficiencyCent");
-  for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++)
-    if (TString(particle) == AliPID::ParticleName(ipart))
-      str.Insert(str.Length() - TString(".root").Length(), Form(".%s", AliPID::ParticleName(ipart)));
-  if (TString(charge) == "plus")
-    str.Insert(str.Length() - TString(".root").Length(), ".plus");
-  else if (TString(charge) == "minus")
-    str.Insert(str.Length() - TString(".root").Length(), ".minus");
-  if (TString(trdmode) == "trdout")
-    str.Insert(str.Length() - TString(".root").Length(), ".trdout");
-  else if (TString(trdmode) == "notrdout")
-    str.Insert(str.Length() - TString(".root").Length(), ".notrdout");
-  TFile *fileout = TFile::Open(str.Data(), "RECREATE");
-  
-  /* efficiencies/fractions and write */
-  TH1D *hEfficiency_all[kNHistos], *hEfficiency_MB_all[kNHistos], *hEfficiency_ratioMB_all[kNHistos], *hEfficiency_pt[kNHistos][MAXMULTCENTBINS], *hEfficiency_MB_pt[kNHistos][MAXMULTCENTBINS], *hEfficiency_ratioMB_pt[kNHistos][MAXMULTCENTBINS];
-
-
-  //  TH1D *hEfficiency_MB[kNHistos], *hEfficiency_multcent[kNHistos][MAXMULTCENTBINS], *hEfficiency_ratioMB_multcent[kNHistos][MAXMULTCENTBINS];
-  //  TH1D *hFraction_MB[kNHistos], *hFraction_multcent[kNHistos][MAXMULTCENTBINS], *hFraction_ratioMB_multcent[kNHistos][MAXMULTCENTBINS];
-  for (Int_t ihisto = 0; ihisto < kNHistos; ihisto++) {
-    if (ihisto == kAcceptedTracks) continue;
-    /* all efficiency */
-    hEfficiency_all[ihisto] = new TH1D(*hHisto_all[ihisto]);
-    hEfficiency_all[ihisto]->SetName(Form("%s_efficiency_all", histoName[ihisto]));
-    hEfficiency_all[ihisto]->SetLineWidth(2);
-    hEfficiency_all[ihisto]->SetLineColor(1);
-    hEfficiency_all[ihisto]->SetMarkerStyle(20);
-    hEfficiency_all[ihisto]->SetMarkerColor(1);
-    hEfficiency_all[ihisto]->Divide(hHisto_all[kAcceptedTracks]);
-    hEfficiency_all[ihisto]->Write();
-    /* MB all efficiency */
-    hEfficiency_MB_all[ihisto] = new TH1D(*hHisto_MB_all[ihisto]);
-    hEfficiency_MB_all[ihisto]->SetName(Form("%s_efficiency_MB_all", histoName[ihisto]));
-    hEfficiency_MB_all[ihisto]->Divide(hHisto_MB_all[kAcceptedTracks]);
-    hEfficiency_MB_all[ihisto]->Write();
-    /* ratio wrt. MB */
-    hEfficiency_ratioMB_all[ihisto] = new TH1D(*hEfficiency_all[ihisto]);
-    hEfficiency_ratioMB_all[ihisto]->SetName(Form("%s_efficiency_ratioMB_all", histoName[ihisto]));
-    hEfficiency_ratioMB_all[ihisto]->Divide(hEfficiency_MB_all[ihisto]);
-    hEfficiency_ratioMB_all[ihisto]->Write();
-    /* pt efficiency */
-    for (Int_t ibin = 0; ibin < npt; ibin++) {
-      hEfficiency_pt[ihisto][ibin] = new TH1D(*hHisto_pt[ihisto][ibin]);
-      hEfficiency_pt[ihisto][ibin]->SetName(Form("%s_efficiency_pt%3.1f-%3.1f", histoName[ihisto], pt[ibin], pt[ibin + 1]));
-      hEfficiency_pt[ihisto][ibin]->SetLineWidth(2);
-      hEfficiency_pt[ihisto][ibin]->SetLineColor(multcentColor[ibin]);
-      hEfficiency_pt[ihisto][ibin]->SetMarkerStyle(20);
-      hEfficiency_pt[ihisto][ibin]->SetMarkerColor(multcentColor[ibin]);
-      hEfficiency_pt[ihisto][ibin]->Divide(hHisto_pt[kAcceptedTracks][ibin]);
-      hEfficiency_pt[ihisto][ibin]->Write();
-      /* MB pt efficiency */
-      hEfficiency_MB_pt[ihisto][ibin] = new TH1D(*hHisto_MB_pt[ihisto][ibin]);
-      hEfficiency_MB_pt[ihisto][ibin]->SetName(Form("%s_efficiency_MB_pt%3.1f-%3.1f", histoName[ihisto], pt[ibin], pt[ibin + 1]));
-      hEfficiency_MB_pt[ihisto][ibin]->Divide(hHisto_MB_pt[kAcceptedTracks][ibin]);
-      hEfficiency_MB_pt[ihisto][ibin]->Write();
-      /* ratio wrt. central */
-      hEfficiency_ratioMB_pt[ihisto][ibin] = new TH1D(*hEfficiency_pt[ihisto][ibin]);
-      hEfficiency_ratioMB_pt[ihisto][ibin]->SetName(Form("%s_efficiency_ratioMB_pt%3.1f-%3.1f", histoName[ihisto], pt[ibin], pt[ibin + 1]));
-      hEfficiency_ratioMB_pt[ihisto][ibin]->Divide(hEfficiency_MB_pt[ihisto][ibin]);
-      hEfficiency_ratioMB_pt[ihisto][ibin]->Write();
-    }
-
-#if 0
-
-    if (ihisto == kAcceptedTracks || ihisto == kMatchedTracks) continue;
-    /* MB fraction */
-    hFraction_MB[ihisto] = new TH1D(*hHisto_MB[ihisto]);
-    hFraction_MB[ihisto]->SetName(Form("%s_fraction_MB", histoName[ihisto]));
-    hFraction_MB[ihisto]->SetLineWidth(2);
-    hFraction_MB[ihisto]->SetLineColor(1);
-    hFraction_MB[ihisto]->SetMarkerStyle(20);
-    hFraction_MB[ihisto]->SetMarkerColor(1);
-    hFraction_MB[ihisto]->Divide(hHisto_MB[kMatchedTracks]);
-    hFraction_MB[ihisto]->Write();
-    /* multiplicity/centrality fraction */
-    for (Int_t ibin = 0; ibin < hHisto[kMatchedTracks]->GetAxis(kMultCent)->GetNbins(); ibin++) {
-       hFraction_multcent[ihisto][ibin] = new TH1D(*hHisto_multcent[ihisto][ibin]);
-       hFraction_multcent[ihisto][ibin]->SetName(Form("%s_fraction_multcent%d", histoName[ihisto], ibin));
-       hFraction_multcent[ihisto][ibin]->SetLineWidth(2);
-       hFraction_multcent[ihisto][ibin]->SetLineColor(multcentColor[ibin]);
-       hFraction_multcent[ihisto][ibin]->SetMarkerStyle(20);
-       hFraction_multcent[ihisto][ibin]->SetMarkerColor(multcentColor[ibin]);
-       hFraction_multcent[ihisto][ibin]->Divide(hHisto_multcent[kMatchedTracks][ibin]);
-       hFraction_multcent[ihisto][ibin]->Write();
-       /* ratio wrt. MB */
-       hFraction_ratioMB_multcent[ihisto][ibin] = new TH1D(*hFraction_multcent[ihisto][ibin]);
-       hFraction_ratioMB_multcent[ihisto][ibin]->SetName(Form("%s_fraction_ratioMB_multcent%d", histoName[ihisto], ibin));
-       hFraction_ratioMB_multcent[ihisto][ibin]->SetLineWidth(2);
-       hFraction_ratioMB_multcent[ihisto][ibin]->SetLineColor(multcentColor[ibin]);
-       hFraction_ratioMB_multcent[ihisto][ibin]->SetMarkerStyle(20);
-       hFraction_ratioMB_multcent[ihisto][ibin]->SetMarkerColor(multcentColor[ibin]);
-       hFraction_ratioMB_multcent[ihisto][ibin]->Divide(hFraction_MB[ihisto]);
-       hFraction_ratioMB_multcent[ihisto][ibin]->Write();
-    }
-
-    #endif
-  }
-  fileout->Close();
-  
-}
-#endif
-
-//_____________________________________________________________________________-
-
-TH1D *
-TOFmatchMC_get(const Char_t *filename, const Char_t *name, Option_t *opt = "", Int_t color = 1, Int_t marker = 20)
-{
-
-  TFile *f = TFile::Open(filename);
-  if (!f || !f->IsOpen())
-    return NULL;
-  TH1D *h = (TH1D *)f->Get(name);
-  if (!h)
-    return NULL;
-  h->SetLineColor(color);
-  h->SetLineWidth(2);
-  h->SetMarkerColor(color);
-  h->SetMarkerStyle(marker);
-  h->Draw(opt);
-  return h;
-}
-
-//_____________________________________________________________________________-
-
-TH1D *
-TOFmatchMC_divide(const Char_t *filename, const Char_t *name1, const Char_t *name2, Option_t *opt = "")
-{
-
-  TFile *f = TFile::Open(filename);
-  if (!f || !f->IsOpen())
-    return NULL;
-  TH1D *h1 = (TH1D *)f->Get(name1);
-  TH1D *h2 = (TH1D *)f->Get(name2);
-  if (!h1 || !h2)
-    return NULL;
-  TH1D *hr = new TH1D(*h1);
-  hr->Divide(h2);
-  hr->Draw(opt);
-  return hr;
-}
-
-//_____________________________________________________________________________-
-
-TH1D *
-TOFmatchMC_sub(const Char_t *filename, const Char_t *name1, const Char_t *name2, Option_t *opt = "", Int_t color = 1, Int_t marker = 20)
-{
-
-  TFile *f = TFile::Open(filename);
-  if (!f || !f->IsOpen())
-    return NULL;
-  TH1D *h1 = (TH1D *)f->Get(name1);
-  TH1D *h2 = (TH1D *)f->Get(name2);
-  if (!h1 || !h2)
-    return NULL;
-  TH1D *hr = new TH1D(*h1);
-  hr->Add(h2, -1.);
-  hr->SetLineColor(color);
-  hr->SetLineWidth(2);
-  hr->SetMarkerColor(color);
-  hr->SetMarkerStyle(marker);
-  hr->Draw(opt);
-  return hr;
-}
-
-//_____________________________________________________________________________-
-
-TH1D *
-TOFmatchMC_compare(const Char_t *filename1, const Char_t *filename2, const Char_t *name, Option_t *opt = "", Int_t color = 1, Int_t marker = 20)
-{
-
-  TFile *f1 = TFile::Open(filename1);
-  TFile *f2 = TFile::Open(filename2);
-  if (!f1 || !f2 || !f1->IsOpen() || !f2->IsOpen())
-    return NULL;
-  TH1D *h1 = (TH1D *)f1->Get(name);
-  TH1D *h2 = (TH1D *)f2->Get(name);
-  if (!h1 || !h2)
-    return NULL;
-  TH1D *hr = new TH1D(*h1);
-  hr->Divide(h2);
-  hr->SetLineColor(color);
-  hr->SetLineWidth(2);
-  hr->SetMarkerColor(color);
-  hr->SetMarkerStyle(marker);
-  hr->Draw(opt);
-  return hr;
-}
-
-//_____________________________________________________________________________-
-
-TH1D *
-TOFmatchMC_comparesub(const Char_t *filename1, const Char_t *filename2, const Char_t *name1, const Char_t *name2, Option_t *opt = "", Int_t color = 1, Int_t marker = 20)
-{
-
-  TFile *f1 = TFile::Open(filename1);
-  TFile *f2 = TFile::Open(filename2);
-  if (!f1 || !f2 || !f1->IsOpen() || !f2->IsOpen())
-    return NULL;
-  TH1D *h11 = (TH1D *)f1->Get(name1);
-  TH1D *h21 = (TH1D *)f2->Get(name1);
-  TH1D *h12 = (TH1D *)f1->Get(name2);
-  TH1D *h22 = (TH1D *)f2->Get(name2);
-  if (!h11 || !h21 || !h12 || !h22)
-    return NULL;
-  TH1D *hs1 = new TH1D(*h11);
-  hs1->Add(h12, -1.);
-  TH1D *hs2 = new TH1D(*h21);
-  hs2->Add(h22, -1.);
-  TH1D *hr = new TH1D(*hs1);
-  hr->Divide(hs2);
-  hr->SetLineColor(color);
-  hr->SetLineWidth(2);
-  hr->SetMarkerColor(color);
-  hr->SetMarkerStyle(marker);
-  hr->Draw(opt);
-  return hr;
-}
-
-
-TH1D *
-TOFmatchEff_efficiencyPt_MB_plot(const Char_t *filename, Int_t ihisto = kMatchedTracks, Int_t icharge, Int_t marker = 20, Int_t color = 2, Option_t *opt = "")
-{
-  
-  TCanvas *cCanvas1 = new TCanvas("cCanvas1");
-  TCanvas *cCanvas2 = new TCanvas("cCanvas2");
-  const Char_t *destdir = "matchingEfficiency_DATA";
-  
-  Double_t ptMin = 0.5;
-  Double_t ptMax = 5.0;
-
-  TF1 *fEff = new TF1("fEff", "[0] + [1] * x - [2] * TMath::Exp(-[3] * TMath::Power(x, [4]))", 0., 5.0);
-  fEff->SetParameter(0, 0.5);
-  fEff->SetParameter(1, 0.);
-  fEff->SetParameter(2, 0.5);
-  fEff->SetParameter(3, 1.);
-  fEff->SetParameter(4, 2.);
-
-
-  TFile *filein = TFile::Open(filename);
-  TH1D *hEfficiencyPt = (TH1D *)filein->Get(Form("hEfficiencyPt_MB_%s_%s", histoName[ihisto], chargeName[icharge]));
-  hEfficiencyPt->Fit(fEff, "0", "", 0.5, 5.0);
-  hEfficiencyPt->SetTitle(Form("%s tracks;p_{T} (GeV/c);acceptance #times efficiency;", extendedChargeName[icharge]));
-  hEfficiencyPt->SetMinimum(0.4);
-  hEfficiencyPt->SetMaximum(0.8);
-  hEfficiencyPt->SetMarkerStyle(marker);
-  hEfficiencyPt->SetMarkerColor(color);
-  hEfficiencyPt->SetMarkerSize(1.5);
-  hEfficiencyPt->SetLineWidth(2);
-  hEfficiencyPt->SetLineColor(color);
-  hEfficiencyPt->GetXaxis()->SetRangeUser(ptMin + 0.001, ptMax - 0.001);
-  hEfficiencyPt->SetStats(kFALSE);
-  cCanvas1->cd();
-  hEfficiencyPt->Draw(opt);
-  fEff->Draw("same");
-
-  cCanvas1->SetGridx();
-  cCanvas1->SetGridy();
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_%s.C", destdir, chargeName[icharge]));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_%s.root", destdir, chargeName[icharge]));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_%s.png", destdir, chargeName[icharge]));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_%s.eps", destdir, chargeName[icharge]));
-  
-  TH1D *hRatioPt = new TH1D(*hEfficiencyPt);
-  hRatioPt->Divide(fEff);
-  hRatioPt->SetTitle(Form("%s tracks;p_{T} (GeV/c);ratio wrt. fitted dependence;", extendedChargeName[icharge]));
-  hRatioPt->SetMinimum(0.9);
-  hRatioPt->SetMaximum(1.1);
-  cCanvas2->cd();
-  hRatioPt->Draw();
-
-  cCanvas2->SetGridx();
-  cCanvas2->SetGridy();
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_%s.C", destdir, chargeName[icharge]));
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_%s.root", destdir, chargeName[icharge]));
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_%s.png", destdir, chargeName[icharge]));
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_%s.eps", destdir, chargeName[icharge]));
-  
-
-  //  hEfficiencyPt->Add(fEff, -1.);
-  return hEfficiencyPt;
-}
-
-
-//_____________________________________________________________________________-
-
-TH1D *
-TOFmatchEff_efficiencyPt_centrality_all_plot(const Char_t *filename, Int_t ihisto = kMatchedTracks, Int_t marker = 20, Int_t color = 1, Option_t *opt = "")
-{
-  
-  TCanvas *cCanvas1 = new TCanvas("cCanvas1");
-  TCanvas *cCanvas2 = new TCanvas("cCanvas2");
-  const Char_t *destdir = "matchingEfficiency_DATA";
-  
-  Double_t ptMin = 0.5;
-  Double_t ptMax = 5.0;
-
-  TF1 *fMismatchFrac = new TF1("fMismatchFrac", "([0]+[1]*TMath::Exp(-[2]*TMath::Power(x,[3])))*[4]", 0., 5.0);
-  fMismatchFrac->SetParameter(0, 0.0447133);
-  fMismatchFrac->SetParameter(1, 0.179172);
-  fMismatchFrac->SetParameter(2, 2.54333);
-  fMismatchFrac->SetParameter(3, 1.16819);
-  fMismatchFrac->SetParameter(4, 1.);
-  
-  TF1 *fEff = new TF1("fEff", "([0] + [1] * x - [2] * TMath::Exp(-[3] * TMath::Power(x, [4]))) * [5]", 0., 5.0);
-  fEff->SetParameter(0, 0.5);
-  fEff->SetParameter(1, 0.);
-  fEff->SetParameter(2, 0.5);
-  fEff->SetParameter(3, 1.);
-  fEff->SetParameter(4, 2.);
-  fEff->FixParameter(5, 1.);
-  
-  TFile *filein = TFile::Open(filename);
-  TH1D *hEfficiencyPt = (TH1D *)filein->Get(Form("hEfficiencyAllPt_MB_%s", histoName[ihisto]));
-  hEfficiencyPt->Fit(fEff, "0", "", 0.5, 5.0);
-  hEfficiencyPt->SetTitle("all particles;p_{T} (GeV/c);acceptance #times efficiency;");
-  hEfficiencyPt->SetMinimum(0.4);
-  hEfficiencyPt->SetMaximum(0.8);
-  hEfficiencyPt->SetMarkerStyle(marker);
-  hEfficiencyPt->SetMarkerColor(color);
-  hEfficiencyPt->SetMarkerSize(1.5);
-  hEfficiencyPt->SetLineWidth(2);
-  hEfficiencyPt->SetLineColor(color);
-  hEfficiencyPt->GetXaxis()->SetRangeUser(0.5 + 0.001, 5.0 - 0.001);
-  hEfficiencyPt->SetStats(kFALSE);
-  cCanvas1->cd();
-  hEfficiencyPt->Draw(opt);
-  fEff->Draw("same");
-
-  cCanvas1->SetGridx();
-  cCanvas1->SetGridy();
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.C", destdir));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.root", destdir));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.png", destdir));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.eps", destdir));
-
-  TH1D *hRatioPt = new TH1D(*hEfficiencyPt);
-  hRatioPt->Divide(fEff);
-  hRatioPt->SetTitle("all particles;p_{T} (GeV/c);ratio wrt. fitted dependence;");
-  hRatioPt->SetMinimum(0.9);
-  hRatioPt->SetMaximum(1.1);
-  cCanvas2->cd();
-  hRatioPt->Draw();
-
-  cCanvas2->SetGridx();
-  cCanvas2->SetGridy();
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_all.C", destdir));
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_all.root", destdir));
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_all.png", destdir));
-  cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_MB_all.eps", destdir));
-  
-  /* fix efficiency shape and release scale factor */
-  fEff->FixParameter(0, fEff->GetParameter(0));
-  fEff->FixParameter(1, fEff->GetParameter(1));
-  fEff->FixParameter(2, fEff->GetParameter(2));
-  fEff->FixParameter(3, fEff->GetParameter(3));
-  fEff->FixParameter(4, fEff->GetParameter(4));
-  fEff->ReleaseParameter(5);
-  
-  TH1D *hEfficiencyCent = new TH1D("hEfficiencyCent", "all particles;centrality percentile;acceptance x efficiency scale factor;", NcentralityBins, centralityBin);
-  hEfficiencyCent->SetMinimum(0.95);
-  hEfficiencyCent->SetMaximum(1.05);
-  hEfficiencyCent->SetMarkerStyle(marker);
-  hEfficiencyCent->SetMarkerColor(color);
-  hEfficiencyCent->SetMarkerSize(1.5);
-  hEfficiencyCent->SetLineWidth(2);
-  hEfficiencyCent->SetLineColor(color);
-  hEfficiencyCent->SetStats(kFALSE);
-  
-  
-  TH1D *hEfficiencyPt_cent[NcentralityBins];
-  TH1D *hRatioPt_cent[NcentralityBins];
-  for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-    
-  
-    hEfficiencyPt_cent[icent] = (TH1D *)filein->Get(Form("hEfficiencyAllPt_centrality%d_%s", icent, histoName[ihisto]));
-    hEfficiencyPt_cent[icent]->Fit(fEff, "", "", 0.5, 5.0);
-    
-    hEfficiencyPt_cent[icent]->SetTitle(Form("all particles (%d-%d\%);p_{T} (GeV/c);acceptance #times efficiency;", (Int_t)centralityBin[icent], (Int_t)centralityBin[icent + 1]));
-    hEfficiencyPt_cent[icent]->SetMinimum(0.2);
-    hEfficiencyPt_cent[icent]->SetMaximum(0.8);
-    hEfficiencyPt_cent[icent]->SetMarkerStyle(marker);
-    hEfficiencyPt_cent[icent]->SetMarkerColor(color);
-    hEfficiencyPt_cent[icent]->SetMarkerSize(1.5);
-    hEfficiencyPt_cent[icent]->SetLineWidth(2);
-    hEfficiencyPt_cent[icent]->SetLineColor(color);
-    hEfficiencyPt_cent[icent]->GetXaxis()->SetRangeUser(0.5 + 0.001, 5.0 - 0.001);
-    hEfficiencyPt_cent[icent]->SetStats(kFALSE);
-    cCanvas1->cd();
-    hEfficiencyPt_cent[icent]->Draw(opt);
-    fEff->Draw("same");
-    
-    hEfficiencyCent->SetBinContent(icent + 1, fEff->GetParameter(5));
-    hEfficiencyCent->SetBinError(icent + 1, fEff->GetParError(5));
-    
-    cCanvas1->SetGridx();
-    cCanvas1->SetGridy();
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.C", destdir, icent));
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.root", destdir, icent));
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.png", destdir, icent));
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.eps", destdir, icent));
-    
-    hRatioPt_cent[icent] = new TH1D(*hEfficiencyPt_cent[icent]);
-    hRatioPt_cent[icent]->Divide(fEff);
-    hRatioPt_cent[icent]->SetTitle(Form("all particles (%d-%d\%);p_{T} (GeV/c);ratio wrt. fitted dependence;", (Int_t)centralityBin[icent], (Int_t)centralityBin[icent + 1]));
-    hRatioPt_cent[icent]->SetMinimum(0.9);
-    hRatioPt_cent[icent]->SetMaximum(1.1);
-    cCanvas2->cd();
-    hRatioPt_cent[icent]->Draw();
-
-    cCanvas2->SetGridx();
-    cCanvas2->SetGridy();
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.C", destdir, icent));
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.root", destdir, icent));
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.png", destdir, icent));
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.eps", destdir, icent));
-
-    
-  }
-
-  TF1 *fEffCent = new TF1("fEffCent", "[0] - [1] * TMath::Exp(-[2] * TMath::Power(x, [3]))", 0., 90.);
-  fEffCent->SetParameter(0, 1.02);
-  fEffCent->SetParameter(1, 0.04);
-  fEffCent->SetParameter(2, 0.001);
-  fEffCent->SetParameter(3, 2.);
-  //  hEfficiencyCent->Fit(fEffCent, "q0", "", 0., 90.);
-  
-  TCanvas *cCanvas3 = new TCanvas("cCanvas3");
-  hEfficiencyCent->Draw();
-  //  fEffCent->Draw("same");
-  
-  cCanvas3->SetGridx();
-  cCanvas3->SetGridy();
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.C", destdir));
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.root", destdir));
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.png", destdir));
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.eps", destdir));
-
-  TCanvas *cCanvas4 = new TCanvas("cCanvas4");
-
-  TH1D *hRatioCent = new TH1D(*hEfficiencyCent);
-  hRatioCent->Divide(fEffCent);
-  hRatioCent->SetTitle(Form("all particles;centrality percentile;ratio wrt. fitted dependence;"));
-  hRatioCent->SetMinimum(0.95);
-  hRatioCent->SetMaximum(1.05);
-  cCanvas4->cd();
-  hRatioCent->Draw();
-
-  cCanvas4->SetGridx();
-  cCanvas4->SetGridy();
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.C", destdir));
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.root", destdir));
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.png", destdir));
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.eps", destdir));
-  
-
-
-  //  hEfficiencyPt->Add(fEff, -1.);
-  return hEfficiencyCent;
-}
-
-
-//_____________________________________________________________________________-
-
-TH1D *
-TOFmatchEff_efficiencyPt_centrality_all_plot_nomismatch(const Char_t *filename, Int_t ihisto = kMatchedTracks, Int_t marker = 20, Int_t color = 1, Option_t *opt = "")
-{
-
-  TF1 *fpol0 = (TF1 *)gROOT->GetFunction("pol0");
-  fpol0->SetRange(0., 5.0);
-
-  TCanvas *cCanvas1 = new TCanvas("cCanvas1");
-  TCanvas *cCanvas2 = new TCanvas("cCanvas2");
-  const Char_t *destdir = "matchingEfficiency_DATA";
-  
-  Double_t ptMin = 0.5;
-  Double_t ptMax = 5.0;
-
-  TF1 *fMismatchCorr = new TF1("fMismatchCorr", "1. - ([0]+[1]*TMath::Exp(-[2]*TMath::Power(x,[3])))*[4]", 0., 5.0);
-  fMismatchCorr->SetParameter(0, 4.47133e-02);
-  fMismatchCorr->SetParameter(1, 1.79172e-01);
-  fMismatchCorr->SetParameter(2, 2.54333e+00);
-  fMismatchCorr->SetParameter(3, 1.16819e+00);
-  fMismatchCorr->SetParameter(4, 1.);
-
-  TF1 *fMismatchScale = new TF1("fMismatchScale", "[0] + [1] * TMath::Exp(-[2] * x)", 0., 100.);
-  fMismatchScale->SetParameter(0, -6.36877e-02);
-  fMismatchScale->SetParameter(1, 1.74818e+00);
-  fMismatchScale->SetParameter(2, 3.00818e-02);
-  
-  TFile *filein = TFile::Open(filename);
-  TH1D *hEfficiencyPt = (TH1D *)filein->Get(Form("hEfficiencyAllPt_MB_%s", histoName[ihisto]));
-  if (ihisto != kMatchedCorrelatedTracks)
-    hEfficiencyPt->Multiply(fMismatchCorr);
-  hEfficiencyPt->SetTitle("all particles;p_{T} (GeV/c);acceptance #times efficiency;");
-  hEfficiencyPt->SetMinimum(0.4);
-  hEfficiencyPt->SetMaximum(0.8);
-  hEfficiencyPt->SetMarkerStyle(marker);
-  hEfficiencyPt->SetMarkerColor(color);
-  hEfficiencyPt->SetMarkerSize(1.5);
-  hEfficiencyPt->SetLineWidth(2);
-  hEfficiencyPt->SetLineColor(color);
-  hEfficiencyPt->GetXaxis()->SetRangeUser(0.5 + 0.001, 5.0 - 0.001);
-  hEfficiencyPt->SetStats(kFALSE);
-  cCanvas1->cd();
-  hEfficiencyPt->Draw(opt);
-
-  cCanvas1->SetGridx();
-  cCanvas1->SetGridy();
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.C", destdir));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.root", destdir));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.png", destdir));
-  cCanvas1->SaveAs(Form("%s/efficiencyPt_MB_all.eps", destdir));
-
-  TH1D *hEfficiencyCent = new TH1D("hEfficiencyCent", "all particles;centrality percentile;acceptance x efficiency scale factor;", NcentralityBins, centralityBin);
-  hEfficiencyCent->SetMinimum(0.95);
-  hEfficiencyCent->SetMaximum(1.05);
-  hEfficiencyCent->SetMarkerStyle(marker);
-  hEfficiencyCent->SetMarkerColor(color);
-  hEfficiencyCent->SetMarkerSize(1.5);
-  hEfficiencyCent->SetLineWidth(2);
-  hEfficiencyCent->SetLineColor(color);
-  hEfficiencyCent->SetStats(kFALSE);
-  
-  
-  TH1D *hEfficiencyPt_cent[NcentralityBins];
-  TH1D *hRatioPt_cent[NcentralityBins];
-  Double_t centmean;
-  for (Int_t icent = 0; icent < NcentralityBins; icent++) {
-    
-    centmean = 0.5 * (centralityBin[icent] + centralityBin[icent + 1]);
-    hEfficiencyPt_cent[icent] = (TH1D *)filein->Get(Form("hEfficiencyAllPt_centrality%d_%s", icent, histoName[ihisto]));
-    fMismatchCorr->SetParameter(4, fMismatchScale->Eval(centmean));
-    if (ihisto != kMatchedCorrelatedTracks)
-      hEfficiencyPt_cent[icent]->Multiply(fMismatchCorr);
-    hEfficiencyPt_cent[icent]->Divide(hEfficiencyPt);
-    hEfficiencyPt_cent[icent]->Fit(fpol0, "q0", "", 0.5, 5.0);
-    hEfficiencyPt_cent[icent]->SetTitle(Form("all particles (%d-%d\%);p_{T} (GeV/c);acceptance #times efficiency;", (Int_t)centralityBin[icent], (Int_t)centralityBin[icent + 1]));
-    hEfficiencyPt_cent[icent]->SetMinimum(0.2);
-    hEfficiencyPt_cent[icent]->SetMaximum(0.8);
-    hEfficiencyPt_cent[icent]->SetMarkerStyle(marker);
-    hEfficiencyPt_cent[icent]->SetMarkerColor(color);
-    hEfficiencyPt_cent[icent]->SetMarkerSize(1.5);
-    hEfficiencyPt_cent[icent]->SetLineWidth(2);
-    hEfficiencyPt_cent[icent]->SetLineColor(color);
-    hEfficiencyPt_cent[icent]->GetXaxis()->SetRangeUser(0.5 + 0.001, 5.0 - 0.001);
-    hEfficiencyPt_cent[icent]->SetStats(kFALSE);
-    cCanvas1->cd();
-    hEfficiencyPt_cent[icent]->Draw(opt);
-    fpol0->Draw("same");
-    
-    hEfficiencyCent->SetBinContent(icent + 1, fpol0->GetParameter(0));
-    hEfficiencyCent->SetBinError(icent + 1, fpol0->GetParError(0));
-    
-    cCanvas1->SetGridx();
-    cCanvas1->SetGridy();
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.C", destdir, icent));
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.root", destdir, icent));
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.png", destdir, icent));
-    cCanvas1->SaveAs(Form("%s/efficiencyPt_centrality%d_all.eps", destdir, icent));
-    
-    hRatioPt_cent[icent] = new TH1D(*hEfficiencyPt_cent[icent]);
-    hRatioPt_cent[icent]->Divide(fpol0);
-    hRatioPt_cent[icent]->SetTitle(Form("all particles (%d-%d\%);p_{T} (GeV/c);ratio wrt. fitted dependence;", (Int_t)centralityBin[icent], (Int_t)centralityBin[icent + 1]));
-    hRatioPt_cent[icent]->SetMinimum(0.9);
-    hRatioPt_cent[icent]->SetMaximum(1.1);
-    cCanvas2->cd();
-    hRatioPt_cent[icent]->Draw();
-
-    cCanvas2->SetGridx();
-    cCanvas2->SetGridy();
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.C", destdir, icent));
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.root", destdir, icent));
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.png", destdir, icent));
-    cCanvas2->SaveAs(Form("%s/efficiencyPt_ratioFit_centrality%d_all.eps", destdir, icent));
-
-    
-  }
-
-  TF1 *fEffCent = new TF1("fEffCent", "[0] - [1] * TMath::Exp(-[2] * TMath::Power(x, [3]))", 0., 90.);
-  fEffCent->SetParameter(0, 1.02);
-  fEffCent->SetParameter(1, 0.04);
-  fEffCent->SetParameter(2, 0.001);
-  fEffCent->SetParameter(3, 2.);
-  //  hEfficiencyCent->Fit(fEffCent, "q0", "", 0., 90.);
-  
-  TCanvas *cCanvas3 = new TCanvas("cCanvas3");
-  hEfficiencyCent->Draw();
-  //  fEffCent->Draw("same");
-  
-  cCanvas3->SetGridx();
-  cCanvas3->SetGridy();
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.C", destdir));
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.root", destdir));
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.png", destdir));
-  cCanvas3->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_all.eps", destdir));
-
-  TCanvas *cCanvas4 = new TCanvas("cCanvas4");
-
-  TH1D *hRatioCent = new TH1D(*hEfficiencyCent);
-  hRatioCent->Divide(fEffCent);
-  hRatioCent->SetTitle(Form("all particles;centrality percentile;ratio wrt. fitted dependence;"));
-  hRatioCent->SetMinimum(0.95);
-  hRatioCent->SetMaximum(1.05);
-  cCanvas4->cd();
-  hRatioCent->Draw();
-
-  cCanvas4->SetGridx();
-  cCanvas4->SetGridy();
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.C", destdir));
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.root", destdir));
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.png", destdir));
-  cCanvas4->SaveAs(Form("%s/efficiencyCentrality_scaleFactor_ratioFit_all.eps", destdir));
-  
-
-
-  //  hEfficiencyPt->Add(fEff, -1.);
-  return hEfficiencyCent;
-}
-
-
-TH1D *
-TOFmatchEff_rapidityCut(const Char_t *filename, Int_t ipart, Int_t icharge, Int_t color = 2, Int_t marker = 20, Option_t *opt = "")
-{
-
-  TFile *filein = TFile::Open(filename);
-  TH1D *hEfficiency_MB = (TH1D *)filein->Get(Form("hEfficiencyPt_MB_hMatchedTracks_%s", chargeName[icharge]));
-  TH1D *hEfficiencyPID_MB = (TH1D *)filein->Get(Form("hEfficiencyPIDPt_MB_hMatchedTracks_%s_%s", AliPID::ParticleName(ipart), chargeName[icharge]));
-
-  TH1D *hRatio = new TH1D(*hEfficiencyPID_MB);
-  hRatio->Divide(hEfficiency_MB);
-  hRatio->SetLineColor(color);
-  hRatio->SetLineWidth(2);
-  hRatio->SetMarkerColor(color);
-  hRatio->SetMarkerStyle(marker);
-  hRatio->Draw(opt);
-  return hRatio;
-}
-
-void
-TOFmatchEff_checkFEAmap(const Char_t *filename)
-{
-
-  TFile *filein = TFile::Open(filename);
-  TH2F *hFEAMap = (TH2F *)filein->Get("hFEAMap");
-  TH2F *hEmptyFEA = new TH2F("hEmptyFEA", "", 72, 0., 18., 91, 0., 91.);
-
-  Float_t nhits = hFEAMap->GetEntries();
-  if (nhits <= 0) {
-    printf("found not hits.\n");
-    return;
-  }
-  printf("found %d hits\n", nhits);
-  Float_t avhits = nhits / (hFEAMap->GetNbinsX() * hFEAMap->GetNbinsX());
-  printf("on average %f hits/FEA\n", avhits);
-  
-  TH1F *hFEANormHit = new TH1F("hFEANormHit", "", 1000, 0., 3.);
-  for (Int_t ibinx = 0; ibinx < hFEAMap->GetNbinsX(); ibinx++)
-    for (Int_t ibiny = 0; ibiny < hFEAMap->GetNbinsY(); ibiny++) {
-      if (hFEAMap->GetBinContent(ibinx + 1, ibiny + 1) == 0.) {
-       hEmptyFEA->SetBinContent(ibinx + 1, ibiny + 1, 1.);
-       continue;
-      }
-      hFEANormHit->Fill(hFEAMap->GetBinContent(ibinx + 1, ibiny + 1) / avhits);
-    }
-
-  TCanvas *cCanvas1 = new TCanvas("cCanvas1");
-  cCanvas1->Divide(1, 2);
-  cCanvas1->cd(1);
-  hFEAMap->Draw("colz");
-  cCanvas1->cd(2);
-  hEmptyFEA->Draw("colz");
-
-  TCanvas *cCanvas2 = new TCanvas("cCanvas2");
-  hFEANormHit->Draw();
-
-
-  TFile *fileout = TFile::Open(Form("TOFmatchEff_checkFEAmap.%s", filename), "RECREATE");
-  hFEAMap->Write();
-  hFEANormHit->Write();
-  hEmptyFEA->Write();
-  fileout->Close();
-}