ROOT logo
#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3D.h"
#include "TCanvas.h"
#include "TParticle.h"
#include "TObjArray.h"

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"

#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrackCuts.h"
#include "AliCentrality.h"
#include "AliLog.h"

#include "AliAnalysisTaskEfficiencyBF.h"

// ---------------------------------------------------------------------
//
// Task for calculating the efficiency of the Balance Function 
// for single particles and pairs
//
// Authors: Panos Christakoglou, Michael Weber
// 
// ---------------------------------------------------------------------

ClassImp(AliAnalysisTaskEfficiencyBF)

//________________________________________________________________________
AliAnalysisTaskEfficiencyBF::AliAnalysisTaskEfficiencyBF(const char *name) 
  : AliAnalysisTaskSE(name), fESD(0), fQAList(0), fOutputList(0), 
  fHistEventStats(0), fHistCentrality(0), fHistNMult(0), 
  fHistGeneratedEtaPtPhiPlus(0), fHistFindableEtaPtPhiPlus(0), 
  fHistReconstructedEtaPtPhiPlus(0), fHistSurvivedEtaPtPhiPlus(0),
  fHistGeneratedEtaPtPhiMinus(0), fHistFindableEtaPtPhiMinus(0), 
  fHistReconstructedEtaPtPhiMinus(0), fHistSurvivedEtaPtPhiMinus(0),
  fHistGeneratedEtaPtPlusControl(0), fHistFindableEtaPtPlusControl(0), 
  fHistReconstructedEtaPtPlusControl(0), fHistSurvivedEtaPtPlusControl(0),
  fHistGeneratedEtaPtMinusControl(0), fHistFindableEtaPtMinusControl(0), 
  fHistReconstructedEtaPtMinusControl(0), fHistSurvivedEtaPtMinusControl(0),
  fHistGeneratedEtaPtPlusPlus(0), fHistFindableEtaPtPlusPlus(0), 
  fHistReconstructedEtaPtPlusPlus(0), fHistSurvivedEtaPtPlusPlus(0),
  fHistGeneratedEtaPtMinusMinus(0), fHistFindableEtaPtMinusMinus(0), 
  fHistReconstructedEtaPtMinusMinus(0), fHistSurvivedEtaPtMinusMinus(0),
  fHistGeneratedEtaPtPlusMinus(0), fHistFindableEtaPtPlusMinus(0), 
  fHistReconstructedEtaPtPlusMinus(0), fHistSurvivedEtaPtPlusMinus(0),
  fHistGeneratedPhiEtaPlusPlus(0), fHistFindablePhiEtaPlusPlus(0), 
  fHistReconstructedPhiEtaPlusPlus(0), fHistSurvivedPhiEtaPlusPlus(0),
  fHistGeneratedPhiEtaMinusMinus(0), fHistFindablePhiEtaMinusMinus(0), 
  fHistReconstructedPhiEtaMinusMinus(0), fHistSurvivedPhiEtaMinusMinus(0),
  fHistGeneratedPhiEtaPlusMinus(0), fHistFindablePhiEtaPlusMinus(0), 
  fHistReconstructedPhiEtaPlusMinus(0), fHistSurvivedPhiEtaPlusMinus(0),
  fESDtrackCuts(0), fAnalysisMode(0), 
  fCentralityEstimator("V0M"), fCentralityPercentileMin(0.0), fCentralityPercentileMax(5.0), 
  fVxMax(3.0), fVyMax(3.0), fVzMax(10.), 
  fMinNumberOfTPCClusters(80), fMaxChi2PerTPCCluster(4.0), fMaxDCAxy(3.0), fMaxDCAz(3.0),
    fMinPt(0.3), fMaxPt(1.5), fMinEta(-0.8), fMaxEta(0.8),fEtaRangeMin(0.0), fEtaRangeMax(1.6), fPtRangeMin(0.3), fPtRangeMax(1.5), fPhiRangeMin(0.0),fPhiRangeMax(360.),fdPhiRangeMax(180.), fEtaBin(100),fdEtaBin(64),fPtBin(49),fPhiBin(100),fdPhiBin(90)   {  
  // Define input and output slots here
  // Input slot #0 works with a TChain
  DefineInput(0, TChain::Class());
  // Output slot #0 id reserved by the base class for AOD
  // Output slot #1 writes into a TH1 container
  DefineOutput(1, TList::Class());
  DefineOutput(2, TList::Class());
}

//________________________________________________________________________
void AliAnalysisTaskEfficiencyBF::UserCreateOutputObjects() {
  // Create histograms
  // Called once

  // global switch disabling the reference 
  // (to avoid "Replacing existing TH1" if several wagons are created in train)
  Bool_t oldStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);

  fQAList = new TList();
  fQAList->SetName("QAList");
  fQAList->SetOwner();

  fOutputList = new TList();
  fOutputList->SetName("OutputList");
  fOutputList->SetOwner();

  //Event stats.
  TString gCutName[4] = {"Total","Offline trigger",
                         "Vertex","Analyzed"};
  fHistEventStats = new TH1F("fHistEventStats",
                             "Event statistics;;N_{events}",
                             4,0.5,4.5);
  for(Int_t i = 1; i <= 4; i++)
    fHistEventStats->GetXaxis()->SetBinLabel(i,gCutName[i-1].Data());
  fQAList->Add(fHistEventStats);

  //ESD analysis
  fHistCentrality = new TH1F("fHistCentrality",";Centrality bin;Events",
			     20,0.5,20.5);
  fQAList->Add(fHistCentrality);
  
  //multiplicity (good MC tracks)
  TString histName;
  histName = "fHistNMult";
  fHistNMult = new TH1F(histName.Data(), 
			";N_{mult.}",
			200,0,20000);
  fQAList->Add(fHistNMult);
  
  //eta vs pt for MC positives
  fHistGeneratedEtaPtPhiPlus = new TH3D("fHistGeneratedEtaPtPhiPlus",
				     "Generated positive primaries;#eta;p_{T} (GeV/c);#phi",
					fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistGeneratedEtaPtPhiPlus);
  fHistFindableEtaPtPhiPlus = new TH3D("fHistFindableEtaPtPhiPlus",
				     "Findable positive primaries;#eta;p_{T} (GeV/c);#phi",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistFindableEtaPtPhiPlus);
  fHistReconstructedEtaPtPhiPlus = new TH3D("fHistReconstructedEtaPtPhiPlus",
				     "Reconstructed positive primaries;#eta;p_{T} (GeV/c);#phi",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistReconstructedEtaPtPhiPlus);
  fHistSurvivedEtaPtPhiPlus = new TH3D("fHistSurvivedEtaPtPhiPlus",
				     "Survived positive primaries;#eta;p_{T} (GeV/c);#phi",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistSurvivedEtaPtPhiPlus);

  //eta vs pt for MC negatives
  fHistGeneratedEtaPtPhiMinus = new TH3D("fHistGeneratedEtaPtPhiMinus",
				     "Generated positive primaries;#eta;p_{T} (GeV/c);#phi",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistGeneratedEtaPtPhiMinus);
  fHistFindableEtaPtPhiMinus = new TH3D("fHistFindableEtaPtPhiMinus",
				     "Findable positive primaries;#eta;p_{T} (GeV/c);#phi",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistFindableEtaPtPhiMinus);
  fHistReconstructedEtaPtPhiMinus = new TH3D("fHistReconstructedEtaPtPhiMinus",
				     "Reconstructed positive primaries;#eta;p_{T} (GeV/c);#phi",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistReconstructedEtaPtPhiMinus);
  fHistSurvivedEtaPtPhiMinus = new TH3D("fHistSurvivedEtaPtPhiMinus",
				     "Survived positive primaries;#eta;p_{T} (GeV/c);#phi",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax,fPhiBin,fPhiRangeMin,fPhiRangeMax);
  fOutputList->Add(fHistSurvivedEtaPtPhiMinus);

  //eta vs pt for MC positives (control)
  fHistGeneratedEtaPtPlusControl = new TH2F("fHistGeneratedEtaPtPlusControl",
				     "Generated positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistGeneratedEtaPtPlusControl);
  fHistFindableEtaPtPlusControl = new TH2F("fHistFindableEtaPtPlusControl",
				     "Findable positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistFindableEtaPtPlusControl);
  fHistReconstructedEtaPtPlusControl = new TH2F("fHistReconstructedEtaPtPlusControl",
				     "Reconstructed positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistReconstructedEtaPtPlusControl);
  fHistSurvivedEtaPtPlusControl = new TH2F("fHistSurvivedEtaPtPlusControl",
				     "Survived positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistSurvivedEtaPtPlusControl);

  //eta vs pt for MC negatives (control)
  fHistGeneratedEtaPtMinusControl = new TH2F("fHistGeneratedEtaPtMinusControl",
				     "Generated positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistGeneratedEtaPtMinusControl);
  fHistFindableEtaPtMinusControl = new TH2F("fHistFindableEtaPtMinusControl",
				     "Findable positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistFindableEtaPtMinusControl);
  fHistReconstructedEtaPtMinusControl = new TH2F("fHistReconstructedEtaPtMinusControl",
				     "Reconstructed positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistReconstructedEtaPtMinusControl);
  fHistSurvivedEtaPtMinusControl = new TH2F("fHistSurvivedEtaPtMinusControl",
				     "Survived positive primaries;#eta;p_{T} (GeV/c)",
				     fEtaBin,fMinEta,fMaxEta,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistSurvivedEtaPtMinusControl);

  //eta vs pt for MC ++
  fHistGeneratedEtaPtPlusPlus = new TH2F("fHistGeneratedEtaPtPlusPlus",
				     "Generated ++ primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistGeneratedEtaPtPlusPlus);
  fHistFindableEtaPtPlusPlus = new TH2F("fHistFindableEtaPtPlusPlus",
				     "Findable ++ primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistFindableEtaPtPlusPlus);
  fHistReconstructedEtaPtPlusPlus = new TH2F("fHistReconstructedEtaPtPlusPlus",
				     "Reconstructed ++ primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistReconstructedEtaPtPlusPlus);
  fHistSurvivedEtaPtPlusPlus = new TH2F("fHistSurvivedEtaPtPlusPlus",
				     "Survived ++ primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistSurvivedEtaPtPlusPlus);

  //eta vs pt for MC --
  fHistGeneratedEtaPtMinusMinus = new TH2F("fHistGeneratedEtaPtMinusMinus",
				     "Generated -- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistGeneratedEtaPtMinusMinus);
  fHistFindableEtaPtMinusMinus = new TH2F("fHistFindableEtaPtMinusMinus",
				     "Findable -- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistFindableEtaPtMinusMinus);
  fHistReconstructedEtaPtMinusMinus = new TH2F("fHistReconstructedEtaPtMinusMinus",
				     "Reconstructed -- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistReconstructedEtaPtMinusMinus);
  fHistSurvivedEtaPtMinusMinus = new TH2F("fHistSurvivedEtaPtMinusMinus",
				     "Survived -- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistSurvivedEtaPtMinusMinus);

  //eta vs pt for MC +-
  fHistGeneratedEtaPtPlusMinus = new TH2F("fHistGeneratedEtaPtPlusMinus",
				     "Generated +- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistGeneratedEtaPtPlusMinus);
  fHistFindableEtaPtPlusMinus = new TH2F("fHistFindableEtaPtPlusMinus",
				     "Findable +- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistFindableEtaPtPlusMinus);
  fHistReconstructedEtaPtPlusMinus = new TH2F("fHistReconstructedEtaPtPlusMinus",
				     "Reconstructed +- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistReconstructedEtaPtPlusMinus);
  fHistSurvivedEtaPtPlusMinus = new TH2F("fHistSurvivedEtaPtPlusMinus",
				     "Survived +- primaries;#Delta#eta;p_{T} (GeV/c)",
				     fdEtaBin,fEtaRangeMin,fEtaRangeMax,fPtBin,fPtRangeMin,fPtRangeMax);
  fOutputList->Add(fHistSurvivedEtaPtPlusMinus);

  //=============================//
   //phi vs eta for MC ++
  fHistGeneratedPhiEtaPlusPlus = new TH2F("fHistGeneratedPhiEtaPlusPlus",
				     "Generated ++ primaries;#Delta#phi",
					  fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistGeneratedPhiEtaPlusPlus);
  fHistFindablePhiEtaPlusPlus = new TH2F("fHistFindablePhiEtaPlusPlus",
				     "Findable ++ primaries;#Delta#phi;#Delta#eta",
					 fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistFindablePhiEtaPlusPlus);
  fHistReconstructedPhiEtaPlusPlus = new TH2F("fHistReconstructedPhiEtaPlusPlus",
				     "Reconstructed ++ primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistReconstructedPhiEtaPlusPlus);
  fHistSurvivedPhiEtaPlusPlus = new TH2F("fHistSurvivedPhiEtaPlusPlus",
				     "Survived ++ primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistSurvivedPhiEtaPlusPlus);

  //phi vs eta for MC --
  fHistGeneratedPhiEtaMinusMinus = new TH2F("fHistGeneratedPhiEtaMinusMinus",
				     "Generated -- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistGeneratedPhiEtaMinusMinus);
  fHistFindablePhiEtaMinusMinus = new TH2F("fHistFindablePhiEtaMinusMinus",
				     "Findable -- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistFindablePhiEtaMinusMinus);
  fHistReconstructedPhiEtaMinusMinus = new TH2F("fHistReconstructedPhiEtaMinusMinus",
				     "Reconstructed -- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistReconstructedPhiEtaMinusMinus);
  fHistSurvivedPhiEtaMinusMinus = new TH2F("fHistSurvivedPhiEtaMinusMinus",
				     "Survived -- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistSurvivedPhiEtaMinusMinus);

  //phi vs eta for MC +-
  fHistGeneratedPhiEtaPlusMinus = new TH2F("fHistGeneratedPhiEtaPlusMinus",
				     "Generated +- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistGeneratedPhiEtaPlusMinus);
  fHistFindablePhiEtaPlusMinus = new TH2F("fHistFindablePhiEtaPlusMinus",
				     "Findable +- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistFindablePhiEtaPlusMinus);
  fHistReconstructedPhiEtaPlusMinus = new TH2F("fHistReconstructedPhiEtaPlusMinus",
				     "Reconstructed +- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistReconstructedPhiEtaPlusMinus);
  fHistSurvivedPhiEtaPlusMinus = new TH2F("fHistSurvivedPhiEtaPlusMinus",
				     "Survived +- primaries;#Delta#phi;#Delta#eta",
				     fdPhiBin,fPhiRangeMin,fdPhiRangeMax,fdEtaBin,fEtaRangeMin,fEtaRangeMax);
  fOutputList->Add(fHistSurvivedPhiEtaPlusMinus);
  //=============================//

  fQAList->Print();
  fOutputList->Print();

  PostData(1, fQAList);
  PostData(2, fOutputList);

  TH1::AddDirectory(oldStatus);

}

//________________________________________________________________________
void AliAnalysisTaskEfficiencyBF::UserExec(Option_t *) {
  // Main loop
  // Called for each event

  // Post output data.
  //ESD analysis
  fESD = dynamic_cast<AliESDEvent*>(InputEvent());
  if (!fESD) {
    printf("ERROR: fESD not available\n");
    return;
  }
  
  AliMCEvent* mcEvent = MCEvent();
  if (!mcEvent) {
    AliError("ERROR: Could not retrieve MC event");
    return;
  }
  AliStack* stack = mcEvent->Stack();
  if (!stack) {
    AliError("ERROR: Could not retrieve MC stack");
    return;
  }

  // arrays for 2 particle histograms
  Int_t nMCLabelCounter         = 0;
  const Int_t maxMCLabelCounter = 20000;

  Double_t eta[maxMCLabelCounter];
  Double_t pt[maxMCLabelCounter];
  Double_t phi[maxMCLabelCounter];
  Int_t level[maxMCLabelCounter];
  Int_t charge[maxMCLabelCounter];

  //AliInfo(Form("%d %d",mcEvent->GetNumberOfTracks(),fESD->GetNumberOfTracks()));
  fHistEventStats->Fill(1); //all events
    
  //Centrality stuff
  AliCentrality *centrality = fESD->GetCentrality();
  Int_t nCentrality = 0;
  nCentrality = (Int_t)(centrality->GetCentralityPercentile(fCentralityEstimator.Data())/10.);

  //Printf("Centrality: %lf",centrality->GetCentralityPercentile(fCentralityEstimator.Data()));

  if(centrality->IsEventInCentralityClass(fCentralityPercentileMin,
					  fCentralityPercentileMax,
					  fCentralityEstimator.Data())) {
    fHistEventStats->Fill(2); //triggered + centrality
    fHistCentrality->Fill(nCentrality+1);

    //Printf("Centrality selection: %lf - %lf",fCentralityPercentileMin,fCentralityPercentileMax);
  
    if(fAnalysisMode.CompareTo("TPC") == 0 ) {
      const AliESDVertex *vertex = fESD->GetPrimaryVertexTPC();
      if(vertex) {
	if(vertex->GetNContributors() > 0) {
	  if(vertex->GetZRes() != 0) {
	    fHistEventStats->Fill(3); //events with a proper vertex
	    if(TMath::Abs(vertex->GetX()) < fVxMax) {
	      if(TMath::Abs(vertex->GetY()) < fVyMax) {
		if(TMath::Abs(vertex->GetZ()) < fVzMax) {
		  fHistEventStats->Fill(4); //analyzed events
		  
		  Int_t nMCParticles = mcEvent->GetNumberOfTracks();
		  TArrayI labelMCArray(nMCParticles);
		  
		  for (Int_t iTracks = 0; iTracks < mcEvent->GetNumberOfTracks(); iTracks++) {
		    AliMCParticle *mcTrack = (AliMCParticle*) mcEvent->GetTrack(iTracks);
		    if (!mcTrack) {
		      AliError(Form("ERROR: Could not receive track %d (mc loop)", iTracks));
		      continue;
		    }
		    
		    //exclude particles generated out of the acceptance
		    Double_t vz = mcTrack->Zv();
		    if (TMath::Abs(vz) > 50.) continue;
		   
		    //acceptance
		    if(TMath::Abs(mcTrack->Eta()) > fMaxEta) 
		      continue;
		    if((mcTrack->Pt() > fMaxPt)||(mcTrack->Pt() < fMinPt)) 
		      continue;
		    if((mcTrack->Phi() > fPhiRangeMax)||(mcTrack->Phi() < fPhiRangeMin)) 
		      continue;
		    
		    TParticle* particle = mcTrack->Particle();
		    if(!particle) continue;
		    if(!stack->IsPhysicalPrimary(iTracks)) continue;

		    if(iTracks <= stack->GetNprimary()) {		      
		      Short_t gMCCharge = mcTrack->Charge();
		      Double_t phiRad = particle->Phi();
		      Double_t phiDeg = phiRad*TMath::RadToDeg();	
			
		      if(gMCCharge > 0)
			fHistGeneratedEtaPtPhiPlus->Fill(particle->Eta(),
							 particle->Pt(),
							 phiDeg);
		      else if(gMCCharge < 0)
			fHistGeneratedEtaPtPhiMinus->Fill(particle->Eta(),
							  particle->Pt(),
							  phiDeg);

		      
		      // findable tracks --> DOES NOT WORK????
		      // Loop over Track References
		      Bool_t labelTPC = kTRUE;
		      AliTrackReference* trackRef = 0;

		      for (Int_t iTrackRef = 0; iTrackRef < mcTrack->GetNumberOfTrackReferences(); iTrackRef++) {
			trackRef = mcTrack->GetTrackReference(iTrackRef);
			if(trackRef) {
			  Int_t detectorId = trackRef->DetectorId();
			  if (detectorId == AliTrackReference::kTPC) {
			    labelTPC = kTRUE;
			    break;
			  }
			}
		      }//loop over track references

		      if(labelTPC) {
			labelMCArray.AddAt(iTracks,nMCLabelCounter);

			if(nMCLabelCounter >= maxMCLabelCounter){
			  AliWarning(Form("MC Label Counter > Limit (%d) --> stop loop here",maxMCLabelCounter));
			  break;
			}

			//fill the arrays for 2 particle analysis
			eta[nMCLabelCounter]    = particle->Eta();
			pt[nMCLabelCounter]     = particle->Pt();
			phi[nMCLabelCounter]     = particle->Phi()*TMath::RadToDeg();
			charge[nMCLabelCounter] = gMCCharge;
		
			// findable = generated in this case!

			level[nMCLabelCounter]  = 1;
			nMCLabelCounter += 1;
				

			if(gMCCharge > 0)
			  fHistFindableEtaPtPhiPlus->Fill(particle->Eta(),
							  particle->Pt(),
							  phiDeg);
			else if(gMCCharge < 0)
			  fHistFindableEtaPtPhiMinus->Fill(particle->Eta(),
							   particle->Pt(),
							   phiDeg);
		      }
		    }//primaries
		  }//loop over MC particles
		
		  fHistNMult->Fill(nMCLabelCounter);
		  
		  // not used so far
		  //Float_t dcaXY = 0.0, dcaZ = 0.0;

		  //ESD track loop
		  Int_t nGoodTracks = fESD->GetNumberOfTracks();
		  
		  TArrayI labelArray(nGoodTracks);
		  Int_t labelCounter = 0;
		  for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
		    AliESDtrack* track = fESD->GetTrack(iTracks);
		    //AliESDtrack* track = fESDtrackCuts->GetTPCOnlyTrack(fESD,iTracks);
		    if(!track) continue;

		    AliESDtrack *tpcOnlyTrack = new AliESDtrack();
		    
		    if (!track->FillTPCOnlyTrack(*tpcOnlyTrack)) {
		      delete tpcOnlyTrack;
		      continue;
		    }

		    Int_t label = TMath::Abs(track->GetTPCLabel());
		    if(IsLabelUsed(labelArray,label)) continue;
		    labelArray.AddAt(label,labelCounter);
		    labelCounter += 1;

		    Int_t mcGoods = nMCLabelCounter;
		    for (Int_t k = 0; k < mcGoods; k++) {
		      Int_t mcLabel = labelMCArray.At(k);
		    			      
		      if (mcLabel != TMath::Abs(label)) continue;
		      if(mcLabel != label) continue;
		      if(label > stack->GetNtrack()) continue;
		      
		      TParticle *particle = stack->Particle(label);
		      if(!particle) continue;
		      
		      //acceptance
		      if(TMath::Abs(particle->Eta()) > fMaxEta) 
			continue;
		      if((particle->Pt() > fMaxPt)||(particle->Pt() <  fMinPt)) 
			continue;
		      if((particle->Phi() > fPhiRangeMax)||(particle->Phi() < fPhiRangeMin)) 
			continue;

		      if(!stack->IsPhysicalPrimary(label)) continue;
		      
		      if(label <= stack->GetNprimary()) {
			
			// reconstructed
			level[k]  = 2;
			
			Short_t gCharge = track->Charge();
			Double_t phiRad = particle->Phi();
			Double_t phiDeg = phiRad*TMath::RadToDeg();

			if(gCharge > 0)
			  fHistReconstructedEtaPtPhiPlus->Fill(particle->Eta(),
							       particle->Pt(),
							       phiDeg);
			else if(gCharge < 0)
			  fHistReconstructedEtaPtPhiMinus->Fill(particle->Eta(),
								particle->Pt(),
								phiDeg);
			
			// track cuts + analysis kinematic cuts
			if(fESDtrackCuts->AcceptTrack(track) && TMath::Abs(track->Eta()) < fMaxEta && track->Pt() > fMinPt && track->Pt() < fMaxPt ){

			  // survived
			  level[k]  = 3;

			  if(gCharge > 0)
			    fHistSurvivedEtaPtPhiPlus->Fill(particle->Eta(),
							    particle->Pt(),
							    phiDeg);
			  else if(gCharge < 0)
			    fHistSurvivedEtaPtPhiMinus->Fill(particle->Eta(),
							     particle->Pt(),
							     phiDeg);
			  
			}//track cuts
		      }//primary particles
		    }//findable track loop
		  }//ESD track loop

		  labelMCArray.Reset();
		  labelArray.Reset();
		  
		  
		}//Vz cut
	      }//Vy cut
	    }//Vx cut
	  }//Vz resolution
	}//number of contributors
      }//valid vertex
    }//TPC analysis mode
  }//centrality  
      


  // Here comes the 2 particle analysis
  // loop over all good MC particles
  for (Int_t i = 0; i < nMCLabelCounter ; i++) {
    
    // control 1D histograms (charge might be different?)
    if(charge[i] > 0){
      if(level[i] > 0) fHistGeneratedEtaPtPlusControl->Fill(eta[i],pt[i]);
      if(level[i] > 1) fHistReconstructedEtaPtPlusControl->Fill(eta[i],pt[i]);
      if(level[i] > 2) fHistSurvivedEtaPtPlusControl->Fill(eta[i],pt[i]);
    }
    else if(charge[i] < 0){
      if(level[i] > 0) fHistGeneratedEtaPtMinusControl->Fill(eta[i],pt[i]);
      if(level[i] > 1) fHistReconstructedEtaPtMinusControl->Fill(eta[i],pt[i]);
      if(level[i] > 2) fHistSurvivedEtaPtMinusControl->Fill(eta[i],pt[i]);
    }
    
    
    for (Int_t j = i+1; j < nMCLabelCounter ; j++) {
      
      if(charge[i] > 0 && charge[j] > 0 ){
	if(level[i] > 0 && level[j] > 0) {  
	  fHistGeneratedEtaPtPlusPlus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);
	  if (TMath::Abs(phi[i]-phi[j]) < 180)
	  fHistGeneratedPhiEtaPlusPlus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));
	}
	if(level[i] > 1 && level[j] > 1) {
	  fHistReconstructedEtaPtPlusPlus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);
	  if (TMath::Abs(phi[i]-phi[j]) < 180)
	  fHistReconstructedPhiEtaPlusPlus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));
	}
	if(level[i] > 2 && level[j] > 2) {
	  fHistSurvivedEtaPtPlusPlus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);
	  if (TMath::Abs(phi[i]-phi[j]) < 180)
	  fHistSurvivedPhiEtaPlusPlus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));
	}
      }
      
      else if(charge[i] < 0 && charge[j] < 0 ){
	if(level[i] > 0 && level[j] > 0) {
	  fHistGeneratedEtaPtMinusMinus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);	    
	  if (TMath::Abs(phi[i]-phi[j]) < 180)
	  fHistGeneratedPhiEtaMinusMinus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));  	    
	}
	if(level[i] > 1 && level[j] > 1) {
	  fHistReconstructedEtaPtMinusMinus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);   
	  fHistReconstructedPhiEtaMinusMinus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));	   
	}
	if(level[i] > 2 && level[j] > 2) {
	  fHistSurvivedEtaPtMinusMinus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);
	  if (TMath::Abs(phi[i]-phi[j]) < 180)
	  fHistSurvivedPhiEtaMinusMinus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));
	}
      }
      
      else if((charge[i] > 0 && charge[j] < 0)||(charge[i] < 0 && charge[j] > 0)){
	if(level[i] > 0 && level[j] > 0) {
	  fHistGeneratedEtaPtPlusMinus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);
	  if (TMath::Abs(phi[i]-phi[j]) < 180)
	  fHistGeneratedPhiEtaPlusMinus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));	
	}
	if(level[i] > 1 && level[j] > 1) {
	  fHistReconstructedEtaPtPlusMinus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);
	  fHistReconstructedPhiEtaPlusMinus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j])); 
	}
	if(level[i] > 2 && level[j] > 2) {
	  fHistSurvivedEtaPtPlusMinus->Fill(TMath::Abs(eta[i]-eta[j]),pt[i]);
	  if (TMath::Abs(phi[i]-phi[j]) < 180)
	  fHistSurvivedPhiEtaPlusMinus->Fill(TMath::Abs(phi[i]-phi[j]),TMath::Abs(eta[i]-eta[j]));
	}	      
      }
    }
  }
  
  //Checking Entries for generated and survived
  /*TH1F* GeneratedEtaPt = (TH1F*)fHistGeneratedEtaPtPlusMinus->ProjectionX("GeneratedEtaPt",5,15);
    Int_t xGeneratedPt = fHistGeneratedEtaPtPlusMinus->GetNbinsX();
    for (Int_t h=1; h < xGeneratedPt+1; h++){
    Double_t binEntriesGenerated = GeneratedEtaPt->GetBinContent(h);
    Printf("binEntriesGenerated: %lf - xGeneratedPt: %d",binEntriesGenerated,h);  
    }
    TH1F* GeneratedPhiEta = (TH1F*)fHistGeneratedPhiEtaPlusMinus->ProjectionY("GeneratedPhiEta",5,15);
    Int_t yGeneratedPhi = fHistGeneratedPhiEtaPlusMinus->GetNbinsY();
    for (Int_t h=1; h < yGeneratedPhi+1; h++){
    Double_t binEntriesGenerated = GeneratedPhiEta->GetBinContent(h);
    Printf("binEntriesGenerated: %lf - yGeneratedPhi: %d",binEntriesGenerated,h);  
    }*/
  
  /*TH1F* SurvivedEtaPt = (TH1F*)fHistSurvivedEtaPtPlusMinus->ProjectionX("SurvivedEtaPt",5,15);
    Int_t xSurvivedPt = fHistSurvivedEtaPtPlusMinus->GetNbinsX();
    for (Int_t h=1; h < xSurvivedPt+1; h++){
    Double_t binEntriesSurvived = SurvivedEtaPt->GetBinContent(h);
    Printf("binEntriesSurvived: %lf - xSurvivedPt: %d",binEntriesSurvived,h);
    }
    TH1F* SurvivedPhiEta = (TH1F*)fHistSurvivedPhiEtaPlusMinus->ProjectionY("SurvivedPhiEta",5,15);
    Int_t ySurvivedPhi = fHistSurvivedPhiEtaPlusMinus->GetNbinsY();
    for (Int_t h=1; h < ySurvivedPhi+1; h++){
    Double_t binEntriesSurvived = SurvivedPhiEta->GetBinContent(h);
    Printf("binEntriesSurvived: %lf - ySurvivedPhi: %d",binEntriesSurvived,h);
    }*/  
}
  //________________________________________________________________________
void AliAnalysisTaskEfficiencyBF::Terminate(Option_t *) {
  // Draw result to the screen
  // Called once at the end of the query

  fOutputList = dynamic_cast<TList*> (GetOutputData(1));
  if (!fOutputList) {
    printf("ERROR: Output list not available\n");
    return;
  }
}

//____________________________________________________________________//
Bool_t AliAnalysisTaskEfficiencyBF::IsLabelUsed(TArrayI labelArray, Int_t label) {
  //Checks if the label is used already
  Bool_t status = kFALSE;
  for(Int_t i = 0; i < labelArray.GetSize(); i++) {
    if(labelArray.At(i) == label)
      status = kTRUE;
  }

  return status;
}
 AliAnalysisTaskEfficiencyBF.cxx:1
 AliAnalysisTaskEfficiencyBF.cxx:2
 AliAnalysisTaskEfficiencyBF.cxx:3
 AliAnalysisTaskEfficiencyBF.cxx:4
 AliAnalysisTaskEfficiencyBF.cxx:5
 AliAnalysisTaskEfficiencyBF.cxx:6
 AliAnalysisTaskEfficiencyBF.cxx:7
 AliAnalysisTaskEfficiencyBF.cxx:8
 AliAnalysisTaskEfficiencyBF.cxx:9
 AliAnalysisTaskEfficiencyBF.cxx:10
 AliAnalysisTaskEfficiencyBF.cxx:11
 AliAnalysisTaskEfficiencyBF.cxx:12
 AliAnalysisTaskEfficiencyBF.cxx:13
 AliAnalysisTaskEfficiencyBF.cxx:14
 AliAnalysisTaskEfficiencyBF.cxx:15
 AliAnalysisTaskEfficiencyBF.cxx:16
 AliAnalysisTaskEfficiencyBF.cxx:17
 AliAnalysisTaskEfficiencyBF.cxx:18
 AliAnalysisTaskEfficiencyBF.cxx:19
 AliAnalysisTaskEfficiencyBF.cxx:20
 AliAnalysisTaskEfficiencyBF.cxx:21
 AliAnalysisTaskEfficiencyBF.cxx:22
 AliAnalysisTaskEfficiencyBF.cxx:23
 AliAnalysisTaskEfficiencyBF.cxx:24
 AliAnalysisTaskEfficiencyBF.cxx:25
 AliAnalysisTaskEfficiencyBF.cxx:26
 AliAnalysisTaskEfficiencyBF.cxx:27
 AliAnalysisTaskEfficiencyBF.cxx:28
 AliAnalysisTaskEfficiencyBF.cxx:29
 AliAnalysisTaskEfficiencyBF.cxx:30
 AliAnalysisTaskEfficiencyBF.cxx:31
 AliAnalysisTaskEfficiencyBF.cxx:32
 AliAnalysisTaskEfficiencyBF.cxx:33
 AliAnalysisTaskEfficiencyBF.cxx:34
 AliAnalysisTaskEfficiencyBF.cxx:35
 AliAnalysisTaskEfficiencyBF.cxx:36
 AliAnalysisTaskEfficiencyBF.cxx:37
 AliAnalysisTaskEfficiencyBF.cxx:38
 AliAnalysisTaskEfficiencyBF.cxx:39
 AliAnalysisTaskEfficiencyBF.cxx:40
 AliAnalysisTaskEfficiencyBF.cxx:41
 AliAnalysisTaskEfficiencyBF.cxx:42
 AliAnalysisTaskEfficiencyBF.cxx:43
 AliAnalysisTaskEfficiencyBF.cxx:44
 AliAnalysisTaskEfficiencyBF.cxx:45
 AliAnalysisTaskEfficiencyBF.cxx:46
 AliAnalysisTaskEfficiencyBF.cxx:47
 AliAnalysisTaskEfficiencyBF.cxx:48
 AliAnalysisTaskEfficiencyBF.cxx:49
 AliAnalysisTaskEfficiencyBF.cxx:50
 AliAnalysisTaskEfficiencyBF.cxx:51
 AliAnalysisTaskEfficiencyBF.cxx:52
 AliAnalysisTaskEfficiencyBF.cxx:53
 AliAnalysisTaskEfficiencyBF.cxx:54
 AliAnalysisTaskEfficiencyBF.cxx:55
 AliAnalysisTaskEfficiencyBF.cxx:56
 AliAnalysisTaskEfficiencyBF.cxx:57
 AliAnalysisTaskEfficiencyBF.cxx:58
 AliAnalysisTaskEfficiencyBF.cxx:59
 AliAnalysisTaskEfficiencyBF.cxx:60
 AliAnalysisTaskEfficiencyBF.cxx:61
 AliAnalysisTaskEfficiencyBF.cxx:62
 AliAnalysisTaskEfficiencyBF.cxx:63
 AliAnalysisTaskEfficiencyBF.cxx:64
 AliAnalysisTaskEfficiencyBF.cxx:65
 AliAnalysisTaskEfficiencyBF.cxx:66
 AliAnalysisTaskEfficiencyBF.cxx:67
 AliAnalysisTaskEfficiencyBF.cxx:68
 AliAnalysisTaskEfficiencyBF.cxx:69
 AliAnalysisTaskEfficiencyBF.cxx:70
 AliAnalysisTaskEfficiencyBF.cxx:71
 AliAnalysisTaskEfficiencyBF.cxx:72
 AliAnalysisTaskEfficiencyBF.cxx:73
 AliAnalysisTaskEfficiencyBF.cxx:74
 AliAnalysisTaskEfficiencyBF.cxx:75
 AliAnalysisTaskEfficiencyBF.cxx:76
 AliAnalysisTaskEfficiencyBF.cxx:77
 AliAnalysisTaskEfficiencyBF.cxx:78
 AliAnalysisTaskEfficiencyBF.cxx:79
 AliAnalysisTaskEfficiencyBF.cxx:80
 AliAnalysisTaskEfficiencyBF.cxx:81
 AliAnalysisTaskEfficiencyBF.cxx:82
 AliAnalysisTaskEfficiencyBF.cxx:83
 AliAnalysisTaskEfficiencyBF.cxx:84
 AliAnalysisTaskEfficiencyBF.cxx:85
 AliAnalysisTaskEfficiencyBF.cxx:86
 AliAnalysisTaskEfficiencyBF.cxx:87
 AliAnalysisTaskEfficiencyBF.cxx:88
 AliAnalysisTaskEfficiencyBF.cxx:89
 AliAnalysisTaskEfficiencyBF.cxx:90
 AliAnalysisTaskEfficiencyBF.cxx:91
 AliAnalysisTaskEfficiencyBF.cxx:92
 AliAnalysisTaskEfficiencyBF.cxx:93
 AliAnalysisTaskEfficiencyBF.cxx:94
 AliAnalysisTaskEfficiencyBF.cxx:95
 AliAnalysisTaskEfficiencyBF.cxx:96
 AliAnalysisTaskEfficiencyBF.cxx:97
 AliAnalysisTaskEfficiencyBF.cxx:98
 AliAnalysisTaskEfficiencyBF.cxx:99
 AliAnalysisTaskEfficiencyBF.cxx:100
 AliAnalysisTaskEfficiencyBF.cxx:101
 AliAnalysisTaskEfficiencyBF.cxx:102
 AliAnalysisTaskEfficiencyBF.cxx:103
 AliAnalysisTaskEfficiencyBF.cxx:104
 AliAnalysisTaskEfficiencyBF.cxx:105
 AliAnalysisTaskEfficiencyBF.cxx:106
 AliAnalysisTaskEfficiencyBF.cxx:107
 AliAnalysisTaskEfficiencyBF.cxx:108
 AliAnalysisTaskEfficiencyBF.cxx:109
 AliAnalysisTaskEfficiencyBF.cxx:110
 AliAnalysisTaskEfficiencyBF.cxx:111
 AliAnalysisTaskEfficiencyBF.cxx:112
 AliAnalysisTaskEfficiencyBF.cxx:113
 AliAnalysisTaskEfficiencyBF.cxx:114
 AliAnalysisTaskEfficiencyBF.cxx:115
 AliAnalysisTaskEfficiencyBF.cxx:116
 AliAnalysisTaskEfficiencyBF.cxx:117
 AliAnalysisTaskEfficiencyBF.cxx:118
 AliAnalysisTaskEfficiencyBF.cxx:119
 AliAnalysisTaskEfficiencyBF.cxx:120
 AliAnalysisTaskEfficiencyBF.cxx:121
 AliAnalysisTaskEfficiencyBF.cxx:122
 AliAnalysisTaskEfficiencyBF.cxx:123
 AliAnalysisTaskEfficiencyBF.cxx:124
 AliAnalysisTaskEfficiencyBF.cxx:125
 AliAnalysisTaskEfficiencyBF.cxx:126
 AliAnalysisTaskEfficiencyBF.cxx:127
 AliAnalysisTaskEfficiencyBF.cxx:128
 AliAnalysisTaskEfficiencyBF.cxx:129
 AliAnalysisTaskEfficiencyBF.cxx:130
 AliAnalysisTaskEfficiencyBF.cxx:131
 AliAnalysisTaskEfficiencyBF.cxx:132
 AliAnalysisTaskEfficiencyBF.cxx:133
 AliAnalysisTaskEfficiencyBF.cxx:134
 AliAnalysisTaskEfficiencyBF.cxx:135
 AliAnalysisTaskEfficiencyBF.cxx:136
 AliAnalysisTaskEfficiencyBF.cxx:137
 AliAnalysisTaskEfficiencyBF.cxx:138
 AliAnalysisTaskEfficiencyBF.cxx:139
 AliAnalysisTaskEfficiencyBF.cxx:140
 AliAnalysisTaskEfficiencyBF.cxx:141
 AliAnalysisTaskEfficiencyBF.cxx:142
 AliAnalysisTaskEfficiencyBF.cxx:143
 AliAnalysisTaskEfficiencyBF.cxx:144
 AliAnalysisTaskEfficiencyBF.cxx:145
 AliAnalysisTaskEfficiencyBF.cxx:146
 AliAnalysisTaskEfficiencyBF.cxx:147
 AliAnalysisTaskEfficiencyBF.cxx:148
 AliAnalysisTaskEfficiencyBF.cxx:149
 AliAnalysisTaskEfficiencyBF.cxx:150
 AliAnalysisTaskEfficiencyBF.cxx:151
 AliAnalysisTaskEfficiencyBF.cxx:152
 AliAnalysisTaskEfficiencyBF.cxx:153
 AliAnalysisTaskEfficiencyBF.cxx:154
 AliAnalysisTaskEfficiencyBF.cxx:155
 AliAnalysisTaskEfficiencyBF.cxx:156
 AliAnalysisTaskEfficiencyBF.cxx:157
 AliAnalysisTaskEfficiencyBF.cxx:158
 AliAnalysisTaskEfficiencyBF.cxx:159
 AliAnalysisTaskEfficiencyBF.cxx:160
 AliAnalysisTaskEfficiencyBF.cxx:161
 AliAnalysisTaskEfficiencyBF.cxx:162
 AliAnalysisTaskEfficiencyBF.cxx:163
 AliAnalysisTaskEfficiencyBF.cxx:164
 AliAnalysisTaskEfficiencyBF.cxx:165
 AliAnalysisTaskEfficiencyBF.cxx:166
 AliAnalysisTaskEfficiencyBF.cxx:167
 AliAnalysisTaskEfficiencyBF.cxx:168
 AliAnalysisTaskEfficiencyBF.cxx:169
 AliAnalysisTaskEfficiencyBF.cxx:170
 AliAnalysisTaskEfficiencyBF.cxx:171
 AliAnalysisTaskEfficiencyBF.cxx:172
 AliAnalysisTaskEfficiencyBF.cxx:173
 AliAnalysisTaskEfficiencyBF.cxx:174
 AliAnalysisTaskEfficiencyBF.cxx:175
 AliAnalysisTaskEfficiencyBF.cxx:176
 AliAnalysisTaskEfficiencyBF.cxx:177
 AliAnalysisTaskEfficiencyBF.cxx:178
 AliAnalysisTaskEfficiencyBF.cxx:179
 AliAnalysisTaskEfficiencyBF.cxx:180
 AliAnalysisTaskEfficiencyBF.cxx:181
 AliAnalysisTaskEfficiencyBF.cxx:182
 AliAnalysisTaskEfficiencyBF.cxx:183
 AliAnalysisTaskEfficiencyBF.cxx:184
 AliAnalysisTaskEfficiencyBF.cxx:185
 AliAnalysisTaskEfficiencyBF.cxx:186
 AliAnalysisTaskEfficiencyBF.cxx:187
 AliAnalysisTaskEfficiencyBF.cxx:188
 AliAnalysisTaskEfficiencyBF.cxx:189
 AliAnalysisTaskEfficiencyBF.cxx:190
 AliAnalysisTaskEfficiencyBF.cxx:191
 AliAnalysisTaskEfficiencyBF.cxx:192
 AliAnalysisTaskEfficiencyBF.cxx:193
 AliAnalysisTaskEfficiencyBF.cxx:194
 AliAnalysisTaskEfficiencyBF.cxx:195
 AliAnalysisTaskEfficiencyBF.cxx:196
 AliAnalysisTaskEfficiencyBF.cxx:197
 AliAnalysisTaskEfficiencyBF.cxx:198
 AliAnalysisTaskEfficiencyBF.cxx:199
 AliAnalysisTaskEfficiencyBF.cxx:200
 AliAnalysisTaskEfficiencyBF.cxx:201
 AliAnalysisTaskEfficiencyBF.cxx:202
 AliAnalysisTaskEfficiencyBF.cxx:203
 AliAnalysisTaskEfficiencyBF.cxx:204
 AliAnalysisTaskEfficiencyBF.cxx:205
 AliAnalysisTaskEfficiencyBF.cxx:206
 AliAnalysisTaskEfficiencyBF.cxx:207
 AliAnalysisTaskEfficiencyBF.cxx:208
 AliAnalysisTaskEfficiencyBF.cxx:209
 AliAnalysisTaskEfficiencyBF.cxx:210
 AliAnalysisTaskEfficiencyBF.cxx:211
 AliAnalysisTaskEfficiencyBF.cxx:212
 AliAnalysisTaskEfficiencyBF.cxx:213
 AliAnalysisTaskEfficiencyBF.cxx:214
 AliAnalysisTaskEfficiencyBF.cxx:215
 AliAnalysisTaskEfficiencyBF.cxx:216
 AliAnalysisTaskEfficiencyBF.cxx:217
 AliAnalysisTaskEfficiencyBF.cxx:218
 AliAnalysisTaskEfficiencyBF.cxx:219
 AliAnalysisTaskEfficiencyBF.cxx:220
 AliAnalysisTaskEfficiencyBF.cxx:221
 AliAnalysisTaskEfficiencyBF.cxx:222
 AliAnalysisTaskEfficiencyBF.cxx:223
 AliAnalysisTaskEfficiencyBF.cxx:224
 AliAnalysisTaskEfficiencyBF.cxx:225
 AliAnalysisTaskEfficiencyBF.cxx:226
 AliAnalysisTaskEfficiencyBF.cxx:227
 AliAnalysisTaskEfficiencyBF.cxx:228
 AliAnalysisTaskEfficiencyBF.cxx:229
 AliAnalysisTaskEfficiencyBF.cxx:230
 AliAnalysisTaskEfficiencyBF.cxx:231
 AliAnalysisTaskEfficiencyBF.cxx:232
 AliAnalysisTaskEfficiencyBF.cxx:233
 AliAnalysisTaskEfficiencyBF.cxx:234
 AliAnalysisTaskEfficiencyBF.cxx:235
 AliAnalysisTaskEfficiencyBF.cxx:236
 AliAnalysisTaskEfficiencyBF.cxx:237
 AliAnalysisTaskEfficiencyBF.cxx:238
 AliAnalysisTaskEfficiencyBF.cxx:239
 AliAnalysisTaskEfficiencyBF.cxx:240
 AliAnalysisTaskEfficiencyBF.cxx:241
 AliAnalysisTaskEfficiencyBF.cxx:242
 AliAnalysisTaskEfficiencyBF.cxx:243
 AliAnalysisTaskEfficiencyBF.cxx:244
 AliAnalysisTaskEfficiencyBF.cxx:245
 AliAnalysisTaskEfficiencyBF.cxx:246
 AliAnalysisTaskEfficiencyBF.cxx:247
 AliAnalysisTaskEfficiencyBF.cxx:248
 AliAnalysisTaskEfficiencyBF.cxx:249
 AliAnalysisTaskEfficiencyBF.cxx:250
 AliAnalysisTaskEfficiencyBF.cxx:251
 AliAnalysisTaskEfficiencyBF.cxx:252
 AliAnalysisTaskEfficiencyBF.cxx:253
 AliAnalysisTaskEfficiencyBF.cxx:254
 AliAnalysisTaskEfficiencyBF.cxx:255
 AliAnalysisTaskEfficiencyBF.cxx:256
 AliAnalysisTaskEfficiencyBF.cxx:257
 AliAnalysisTaskEfficiencyBF.cxx:258
 AliAnalysisTaskEfficiencyBF.cxx:259
 AliAnalysisTaskEfficiencyBF.cxx:260
 AliAnalysisTaskEfficiencyBF.cxx:261
 AliAnalysisTaskEfficiencyBF.cxx:262
 AliAnalysisTaskEfficiencyBF.cxx:263
 AliAnalysisTaskEfficiencyBF.cxx:264
 AliAnalysisTaskEfficiencyBF.cxx:265
 AliAnalysisTaskEfficiencyBF.cxx:266
 AliAnalysisTaskEfficiencyBF.cxx:267
 AliAnalysisTaskEfficiencyBF.cxx:268
 AliAnalysisTaskEfficiencyBF.cxx:269
 AliAnalysisTaskEfficiencyBF.cxx:270
 AliAnalysisTaskEfficiencyBF.cxx:271
 AliAnalysisTaskEfficiencyBF.cxx:272
 AliAnalysisTaskEfficiencyBF.cxx:273
 AliAnalysisTaskEfficiencyBF.cxx:274
 AliAnalysisTaskEfficiencyBF.cxx:275
 AliAnalysisTaskEfficiencyBF.cxx:276
 AliAnalysisTaskEfficiencyBF.cxx:277
 AliAnalysisTaskEfficiencyBF.cxx:278
 AliAnalysisTaskEfficiencyBF.cxx:279
 AliAnalysisTaskEfficiencyBF.cxx:280
 AliAnalysisTaskEfficiencyBF.cxx:281
 AliAnalysisTaskEfficiencyBF.cxx:282
 AliAnalysisTaskEfficiencyBF.cxx:283
 AliAnalysisTaskEfficiencyBF.cxx:284
 AliAnalysisTaskEfficiencyBF.cxx:285
 AliAnalysisTaskEfficiencyBF.cxx:286
 AliAnalysisTaskEfficiencyBF.cxx:287
 AliAnalysisTaskEfficiencyBF.cxx:288
 AliAnalysisTaskEfficiencyBF.cxx:289
 AliAnalysisTaskEfficiencyBF.cxx:290
 AliAnalysisTaskEfficiencyBF.cxx:291
 AliAnalysisTaskEfficiencyBF.cxx:292
 AliAnalysisTaskEfficiencyBF.cxx:293
 AliAnalysisTaskEfficiencyBF.cxx:294
 AliAnalysisTaskEfficiencyBF.cxx:295
 AliAnalysisTaskEfficiencyBF.cxx:296
 AliAnalysisTaskEfficiencyBF.cxx:297
 AliAnalysisTaskEfficiencyBF.cxx:298
 AliAnalysisTaskEfficiencyBF.cxx:299
 AliAnalysisTaskEfficiencyBF.cxx:300
 AliAnalysisTaskEfficiencyBF.cxx:301
 AliAnalysisTaskEfficiencyBF.cxx:302
 AliAnalysisTaskEfficiencyBF.cxx:303
 AliAnalysisTaskEfficiencyBF.cxx:304
 AliAnalysisTaskEfficiencyBF.cxx:305
 AliAnalysisTaskEfficiencyBF.cxx:306
 AliAnalysisTaskEfficiencyBF.cxx:307
 AliAnalysisTaskEfficiencyBF.cxx:308
 AliAnalysisTaskEfficiencyBF.cxx:309
 AliAnalysisTaskEfficiencyBF.cxx:310
 AliAnalysisTaskEfficiencyBF.cxx:311
 AliAnalysisTaskEfficiencyBF.cxx:312
 AliAnalysisTaskEfficiencyBF.cxx:313
 AliAnalysisTaskEfficiencyBF.cxx:314
 AliAnalysisTaskEfficiencyBF.cxx:315
 AliAnalysisTaskEfficiencyBF.cxx:316
 AliAnalysisTaskEfficiencyBF.cxx:317
 AliAnalysisTaskEfficiencyBF.cxx:318
 AliAnalysisTaskEfficiencyBF.cxx:319
 AliAnalysisTaskEfficiencyBF.cxx:320
 AliAnalysisTaskEfficiencyBF.cxx:321
 AliAnalysisTaskEfficiencyBF.cxx:322
 AliAnalysisTaskEfficiencyBF.cxx:323
 AliAnalysisTaskEfficiencyBF.cxx:324
 AliAnalysisTaskEfficiencyBF.cxx:325
 AliAnalysisTaskEfficiencyBF.cxx:326
 AliAnalysisTaskEfficiencyBF.cxx:327
 AliAnalysisTaskEfficiencyBF.cxx:328
 AliAnalysisTaskEfficiencyBF.cxx:329
 AliAnalysisTaskEfficiencyBF.cxx:330
 AliAnalysisTaskEfficiencyBF.cxx:331
 AliAnalysisTaskEfficiencyBF.cxx:332
 AliAnalysisTaskEfficiencyBF.cxx:333
 AliAnalysisTaskEfficiencyBF.cxx:334
 AliAnalysisTaskEfficiencyBF.cxx:335
 AliAnalysisTaskEfficiencyBF.cxx:336
 AliAnalysisTaskEfficiencyBF.cxx:337
 AliAnalysisTaskEfficiencyBF.cxx:338
 AliAnalysisTaskEfficiencyBF.cxx:339
 AliAnalysisTaskEfficiencyBF.cxx:340
 AliAnalysisTaskEfficiencyBF.cxx:341
 AliAnalysisTaskEfficiencyBF.cxx:342
 AliAnalysisTaskEfficiencyBF.cxx:343
 AliAnalysisTaskEfficiencyBF.cxx:344
 AliAnalysisTaskEfficiencyBF.cxx:345
 AliAnalysisTaskEfficiencyBF.cxx:346
 AliAnalysisTaskEfficiencyBF.cxx:347
 AliAnalysisTaskEfficiencyBF.cxx:348
 AliAnalysisTaskEfficiencyBF.cxx:349
 AliAnalysisTaskEfficiencyBF.cxx:350
 AliAnalysisTaskEfficiencyBF.cxx:351
 AliAnalysisTaskEfficiencyBF.cxx:352
 AliAnalysisTaskEfficiencyBF.cxx:353
 AliAnalysisTaskEfficiencyBF.cxx:354
 AliAnalysisTaskEfficiencyBF.cxx:355
 AliAnalysisTaskEfficiencyBF.cxx:356
 AliAnalysisTaskEfficiencyBF.cxx:357
 AliAnalysisTaskEfficiencyBF.cxx:358
 AliAnalysisTaskEfficiencyBF.cxx:359
 AliAnalysisTaskEfficiencyBF.cxx:360
 AliAnalysisTaskEfficiencyBF.cxx:361
 AliAnalysisTaskEfficiencyBF.cxx:362
 AliAnalysisTaskEfficiencyBF.cxx:363
 AliAnalysisTaskEfficiencyBF.cxx:364
 AliAnalysisTaskEfficiencyBF.cxx:365
 AliAnalysisTaskEfficiencyBF.cxx:366
 AliAnalysisTaskEfficiencyBF.cxx:367
 AliAnalysisTaskEfficiencyBF.cxx:368
 AliAnalysisTaskEfficiencyBF.cxx:369
 AliAnalysisTaskEfficiencyBF.cxx:370
 AliAnalysisTaskEfficiencyBF.cxx:371
 AliAnalysisTaskEfficiencyBF.cxx:372
 AliAnalysisTaskEfficiencyBF.cxx:373
 AliAnalysisTaskEfficiencyBF.cxx:374
 AliAnalysisTaskEfficiencyBF.cxx:375
 AliAnalysisTaskEfficiencyBF.cxx:376
 AliAnalysisTaskEfficiencyBF.cxx:377
 AliAnalysisTaskEfficiencyBF.cxx:378
 AliAnalysisTaskEfficiencyBF.cxx:379
 AliAnalysisTaskEfficiencyBF.cxx:380
 AliAnalysisTaskEfficiencyBF.cxx:381
 AliAnalysisTaskEfficiencyBF.cxx:382
 AliAnalysisTaskEfficiencyBF.cxx:383
 AliAnalysisTaskEfficiencyBF.cxx:384
 AliAnalysisTaskEfficiencyBF.cxx:385
 AliAnalysisTaskEfficiencyBF.cxx:386
 AliAnalysisTaskEfficiencyBF.cxx:387
 AliAnalysisTaskEfficiencyBF.cxx:388
 AliAnalysisTaskEfficiencyBF.cxx:389
 AliAnalysisTaskEfficiencyBF.cxx:390
 AliAnalysisTaskEfficiencyBF.cxx:391
 AliAnalysisTaskEfficiencyBF.cxx:392
 AliAnalysisTaskEfficiencyBF.cxx:393
 AliAnalysisTaskEfficiencyBF.cxx:394
 AliAnalysisTaskEfficiencyBF.cxx:395
 AliAnalysisTaskEfficiencyBF.cxx:396
 AliAnalysisTaskEfficiencyBF.cxx:397
 AliAnalysisTaskEfficiencyBF.cxx:398
 AliAnalysisTaskEfficiencyBF.cxx:399
 AliAnalysisTaskEfficiencyBF.cxx:400
 AliAnalysisTaskEfficiencyBF.cxx:401
 AliAnalysisTaskEfficiencyBF.cxx:402
 AliAnalysisTaskEfficiencyBF.cxx:403
 AliAnalysisTaskEfficiencyBF.cxx:404
 AliAnalysisTaskEfficiencyBF.cxx:405
 AliAnalysisTaskEfficiencyBF.cxx:406
 AliAnalysisTaskEfficiencyBF.cxx:407
 AliAnalysisTaskEfficiencyBF.cxx:408
 AliAnalysisTaskEfficiencyBF.cxx:409
 AliAnalysisTaskEfficiencyBF.cxx:410
 AliAnalysisTaskEfficiencyBF.cxx:411
 AliAnalysisTaskEfficiencyBF.cxx:412
 AliAnalysisTaskEfficiencyBF.cxx:413
 AliAnalysisTaskEfficiencyBF.cxx:414
 AliAnalysisTaskEfficiencyBF.cxx:415
 AliAnalysisTaskEfficiencyBF.cxx:416
 AliAnalysisTaskEfficiencyBF.cxx:417
 AliAnalysisTaskEfficiencyBF.cxx:418
 AliAnalysisTaskEfficiencyBF.cxx:419
 AliAnalysisTaskEfficiencyBF.cxx:420
 AliAnalysisTaskEfficiencyBF.cxx:421
 AliAnalysisTaskEfficiencyBF.cxx:422
 AliAnalysisTaskEfficiencyBF.cxx:423
 AliAnalysisTaskEfficiencyBF.cxx:424
 AliAnalysisTaskEfficiencyBF.cxx:425
 AliAnalysisTaskEfficiencyBF.cxx:426
 AliAnalysisTaskEfficiencyBF.cxx:427
 AliAnalysisTaskEfficiencyBF.cxx:428
 AliAnalysisTaskEfficiencyBF.cxx:429
 AliAnalysisTaskEfficiencyBF.cxx:430
 AliAnalysisTaskEfficiencyBF.cxx:431
 AliAnalysisTaskEfficiencyBF.cxx:432
 AliAnalysisTaskEfficiencyBF.cxx:433
 AliAnalysisTaskEfficiencyBF.cxx:434
 AliAnalysisTaskEfficiencyBF.cxx:435
 AliAnalysisTaskEfficiencyBF.cxx:436
 AliAnalysisTaskEfficiencyBF.cxx:437
 AliAnalysisTaskEfficiencyBF.cxx:438
 AliAnalysisTaskEfficiencyBF.cxx:439
 AliAnalysisTaskEfficiencyBF.cxx:440
 AliAnalysisTaskEfficiencyBF.cxx:441
 AliAnalysisTaskEfficiencyBF.cxx:442
 AliAnalysisTaskEfficiencyBF.cxx:443
 AliAnalysisTaskEfficiencyBF.cxx:444
 AliAnalysisTaskEfficiencyBF.cxx:445
 AliAnalysisTaskEfficiencyBF.cxx:446
 AliAnalysisTaskEfficiencyBF.cxx:447
 AliAnalysisTaskEfficiencyBF.cxx:448
 AliAnalysisTaskEfficiencyBF.cxx:449
 AliAnalysisTaskEfficiencyBF.cxx:450
 AliAnalysisTaskEfficiencyBF.cxx:451
 AliAnalysisTaskEfficiencyBF.cxx:452
 AliAnalysisTaskEfficiencyBF.cxx:453
 AliAnalysisTaskEfficiencyBF.cxx:454
 AliAnalysisTaskEfficiencyBF.cxx:455
 AliAnalysisTaskEfficiencyBF.cxx:456
 AliAnalysisTaskEfficiencyBF.cxx:457
 AliAnalysisTaskEfficiencyBF.cxx:458
 AliAnalysisTaskEfficiencyBF.cxx:459
 AliAnalysisTaskEfficiencyBF.cxx:460
 AliAnalysisTaskEfficiencyBF.cxx:461
 AliAnalysisTaskEfficiencyBF.cxx:462
 AliAnalysisTaskEfficiencyBF.cxx:463
 AliAnalysisTaskEfficiencyBF.cxx:464
 AliAnalysisTaskEfficiencyBF.cxx:465
 AliAnalysisTaskEfficiencyBF.cxx:466
 AliAnalysisTaskEfficiencyBF.cxx:467
 AliAnalysisTaskEfficiencyBF.cxx:468
 AliAnalysisTaskEfficiencyBF.cxx:469
 AliAnalysisTaskEfficiencyBF.cxx:470
 AliAnalysisTaskEfficiencyBF.cxx:471
 AliAnalysisTaskEfficiencyBF.cxx:472
 AliAnalysisTaskEfficiencyBF.cxx:473
 AliAnalysisTaskEfficiencyBF.cxx:474
 AliAnalysisTaskEfficiencyBF.cxx:475
 AliAnalysisTaskEfficiencyBF.cxx:476
 AliAnalysisTaskEfficiencyBF.cxx:477
 AliAnalysisTaskEfficiencyBF.cxx:478
 AliAnalysisTaskEfficiencyBF.cxx:479
 AliAnalysisTaskEfficiencyBF.cxx:480
 AliAnalysisTaskEfficiencyBF.cxx:481
 AliAnalysisTaskEfficiencyBF.cxx:482
 AliAnalysisTaskEfficiencyBF.cxx:483
 AliAnalysisTaskEfficiencyBF.cxx:484
 AliAnalysisTaskEfficiencyBF.cxx:485
 AliAnalysisTaskEfficiencyBF.cxx:486
 AliAnalysisTaskEfficiencyBF.cxx:487
 AliAnalysisTaskEfficiencyBF.cxx:488
 AliAnalysisTaskEfficiencyBF.cxx:489
 AliAnalysisTaskEfficiencyBF.cxx:490
 AliAnalysisTaskEfficiencyBF.cxx:491
 AliAnalysisTaskEfficiencyBF.cxx:492
 AliAnalysisTaskEfficiencyBF.cxx:493
 AliAnalysisTaskEfficiencyBF.cxx:494
 AliAnalysisTaskEfficiencyBF.cxx:495
 AliAnalysisTaskEfficiencyBF.cxx:496
 AliAnalysisTaskEfficiencyBF.cxx:497
 AliAnalysisTaskEfficiencyBF.cxx:498
 AliAnalysisTaskEfficiencyBF.cxx:499
 AliAnalysisTaskEfficiencyBF.cxx:500
 AliAnalysisTaskEfficiencyBF.cxx:501
 AliAnalysisTaskEfficiencyBF.cxx:502
 AliAnalysisTaskEfficiencyBF.cxx:503
 AliAnalysisTaskEfficiencyBF.cxx:504
 AliAnalysisTaskEfficiencyBF.cxx:505
 AliAnalysisTaskEfficiencyBF.cxx:506
 AliAnalysisTaskEfficiencyBF.cxx:507
 AliAnalysisTaskEfficiencyBF.cxx:508
 AliAnalysisTaskEfficiencyBF.cxx:509
 AliAnalysisTaskEfficiencyBF.cxx:510
 AliAnalysisTaskEfficiencyBF.cxx:511
 AliAnalysisTaskEfficiencyBF.cxx:512
 AliAnalysisTaskEfficiencyBF.cxx:513
 AliAnalysisTaskEfficiencyBF.cxx:514
 AliAnalysisTaskEfficiencyBF.cxx:515
 AliAnalysisTaskEfficiencyBF.cxx:516
 AliAnalysisTaskEfficiencyBF.cxx:517
 AliAnalysisTaskEfficiencyBF.cxx:518
 AliAnalysisTaskEfficiencyBF.cxx:519
 AliAnalysisTaskEfficiencyBF.cxx:520
 AliAnalysisTaskEfficiencyBF.cxx:521
 AliAnalysisTaskEfficiencyBF.cxx:522
 AliAnalysisTaskEfficiencyBF.cxx:523
 AliAnalysisTaskEfficiencyBF.cxx:524
 AliAnalysisTaskEfficiencyBF.cxx:525
 AliAnalysisTaskEfficiencyBF.cxx:526
 AliAnalysisTaskEfficiencyBF.cxx:527
 AliAnalysisTaskEfficiencyBF.cxx:528
 AliAnalysisTaskEfficiencyBF.cxx:529
 AliAnalysisTaskEfficiencyBF.cxx:530
 AliAnalysisTaskEfficiencyBF.cxx:531
 AliAnalysisTaskEfficiencyBF.cxx:532
 AliAnalysisTaskEfficiencyBF.cxx:533
 AliAnalysisTaskEfficiencyBF.cxx:534
 AliAnalysisTaskEfficiencyBF.cxx:535
 AliAnalysisTaskEfficiencyBF.cxx:536
 AliAnalysisTaskEfficiencyBF.cxx:537
 AliAnalysisTaskEfficiencyBF.cxx:538
 AliAnalysisTaskEfficiencyBF.cxx:539
 AliAnalysisTaskEfficiencyBF.cxx:540
 AliAnalysisTaskEfficiencyBF.cxx:541
 AliAnalysisTaskEfficiencyBF.cxx:542
 AliAnalysisTaskEfficiencyBF.cxx:543
 AliAnalysisTaskEfficiencyBF.cxx:544
 AliAnalysisTaskEfficiencyBF.cxx:545
 AliAnalysisTaskEfficiencyBF.cxx:546
 AliAnalysisTaskEfficiencyBF.cxx:547
 AliAnalysisTaskEfficiencyBF.cxx:548
 AliAnalysisTaskEfficiencyBF.cxx:549
 AliAnalysisTaskEfficiencyBF.cxx:550
 AliAnalysisTaskEfficiencyBF.cxx:551
 AliAnalysisTaskEfficiencyBF.cxx:552
 AliAnalysisTaskEfficiencyBF.cxx:553
 AliAnalysisTaskEfficiencyBF.cxx:554
 AliAnalysisTaskEfficiencyBF.cxx:555
 AliAnalysisTaskEfficiencyBF.cxx:556
 AliAnalysisTaskEfficiencyBF.cxx:557
 AliAnalysisTaskEfficiencyBF.cxx:558
 AliAnalysisTaskEfficiencyBF.cxx:559
 AliAnalysisTaskEfficiencyBF.cxx:560
 AliAnalysisTaskEfficiencyBF.cxx:561
 AliAnalysisTaskEfficiencyBF.cxx:562
 AliAnalysisTaskEfficiencyBF.cxx:563
 AliAnalysisTaskEfficiencyBF.cxx:564
 AliAnalysisTaskEfficiencyBF.cxx:565
 AliAnalysisTaskEfficiencyBF.cxx:566
 AliAnalysisTaskEfficiencyBF.cxx:567
 AliAnalysisTaskEfficiencyBF.cxx:568
 AliAnalysisTaskEfficiencyBF.cxx:569
 AliAnalysisTaskEfficiencyBF.cxx:570
 AliAnalysisTaskEfficiencyBF.cxx:571
 AliAnalysisTaskEfficiencyBF.cxx:572
 AliAnalysisTaskEfficiencyBF.cxx:573
 AliAnalysisTaskEfficiencyBF.cxx:574
 AliAnalysisTaskEfficiencyBF.cxx:575
 AliAnalysisTaskEfficiencyBF.cxx:576
 AliAnalysisTaskEfficiencyBF.cxx:577
 AliAnalysisTaskEfficiencyBF.cxx:578
 AliAnalysisTaskEfficiencyBF.cxx:579
 AliAnalysisTaskEfficiencyBF.cxx:580
 AliAnalysisTaskEfficiencyBF.cxx:581
 AliAnalysisTaskEfficiencyBF.cxx:582
 AliAnalysisTaskEfficiencyBF.cxx:583
 AliAnalysisTaskEfficiencyBF.cxx:584
 AliAnalysisTaskEfficiencyBF.cxx:585
 AliAnalysisTaskEfficiencyBF.cxx:586
 AliAnalysisTaskEfficiencyBF.cxx:587
 AliAnalysisTaskEfficiencyBF.cxx:588
 AliAnalysisTaskEfficiencyBF.cxx:589
 AliAnalysisTaskEfficiencyBF.cxx:590
 AliAnalysisTaskEfficiencyBF.cxx:591
 AliAnalysisTaskEfficiencyBF.cxx:592
 AliAnalysisTaskEfficiencyBF.cxx:593
 AliAnalysisTaskEfficiencyBF.cxx:594
 AliAnalysisTaskEfficiencyBF.cxx:595
 AliAnalysisTaskEfficiencyBF.cxx:596
 AliAnalysisTaskEfficiencyBF.cxx:597
 AliAnalysisTaskEfficiencyBF.cxx:598
 AliAnalysisTaskEfficiencyBF.cxx:599
 AliAnalysisTaskEfficiencyBF.cxx:600
 AliAnalysisTaskEfficiencyBF.cxx:601
 AliAnalysisTaskEfficiencyBF.cxx:602
 AliAnalysisTaskEfficiencyBF.cxx:603
 AliAnalysisTaskEfficiencyBF.cxx:604
 AliAnalysisTaskEfficiencyBF.cxx:605
 AliAnalysisTaskEfficiencyBF.cxx:606
 AliAnalysisTaskEfficiencyBF.cxx:607
 AliAnalysisTaskEfficiencyBF.cxx:608
 AliAnalysisTaskEfficiencyBF.cxx:609
 AliAnalysisTaskEfficiencyBF.cxx:610
 AliAnalysisTaskEfficiencyBF.cxx:611
 AliAnalysisTaskEfficiencyBF.cxx:612
 AliAnalysisTaskEfficiencyBF.cxx:613
 AliAnalysisTaskEfficiencyBF.cxx:614
 AliAnalysisTaskEfficiencyBF.cxx:615
 AliAnalysisTaskEfficiencyBF.cxx:616
 AliAnalysisTaskEfficiencyBF.cxx:617
 AliAnalysisTaskEfficiencyBF.cxx:618
 AliAnalysisTaskEfficiencyBF.cxx:619
 AliAnalysisTaskEfficiencyBF.cxx:620
 AliAnalysisTaskEfficiencyBF.cxx:621
 AliAnalysisTaskEfficiencyBF.cxx:622
 AliAnalysisTaskEfficiencyBF.cxx:623
 AliAnalysisTaskEfficiencyBF.cxx:624
 AliAnalysisTaskEfficiencyBF.cxx:625
 AliAnalysisTaskEfficiencyBF.cxx:626
 AliAnalysisTaskEfficiencyBF.cxx:627
 AliAnalysisTaskEfficiencyBF.cxx:628
 AliAnalysisTaskEfficiencyBF.cxx:629
 AliAnalysisTaskEfficiencyBF.cxx:630
 AliAnalysisTaskEfficiencyBF.cxx:631
 AliAnalysisTaskEfficiencyBF.cxx:632
 AliAnalysisTaskEfficiencyBF.cxx:633
 AliAnalysisTaskEfficiencyBF.cxx:634
 AliAnalysisTaskEfficiencyBF.cxx:635
 AliAnalysisTaskEfficiencyBF.cxx:636
 AliAnalysisTaskEfficiencyBF.cxx:637
 AliAnalysisTaskEfficiencyBF.cxx:638
 AliAnalysisTaskEfficiencyBF.cxx:639
 AliAnalysisTaskEfficiencyBF.cxx:640
 AliAnalysisTaskEfficiencyBF.cxx:641
 AliAnalysisTaskEfficiencyBF.cxx:642
 AliAnalysisTaskEfficiencyBF.cxx:643
 AliAnalysisTaskEfficiencyBF.cxx:644
 AliAnalysisTaskEfficiencyBF.cxx:645
 AliAnalysisTaskEfficiencyBF.cxx:646
 AliAnalysisTaskEfficiencyBF.cxx:647
 AliAnalysisTaskEfficiencyBF.cxx:648
 AliAnalysisTaskEfficiencyBF.cxx:649
 AliAnalysisTaskEfficiencyBF.cxx:650
 AliAnalysisTaskEfficiencyBF.cxx:651
 AliAnalysisTaskEfficiencyBF.cxx:652
 AliAnalysisTaskEfficiencyBF.cxx:653
 AliAnalysisTaskEfficiencyBF.cxx:654
 AliAnalysisTaskEfficiencyBF.cxx:655
 AliAnalysisTaskEfficiencyBF.cxx:656
 AliAnalysisTaskEfficiencyBF.cxx:657
 AliAnalysisTaskEfficiencyBF.cxx:658
 AliAnalysisTaskEfficiencyBF.cxx:659
 AliAnalysisTaskEfficiencyBF.cxx:660
 AliAnalysisTaskEfficiencyBF.cxx:661
 AliAnalysisTaskEfficiencyBF.cxx:662
 AliAnalysisTaskEfficiencyBF.cxx:663
 AliAnalysisTaskEfficiencyBF.cxx:664
 AliAnalysisTaskEfficiencyBF.cxx:665
 AliAnalysisTaskEfficiencyBF.cxx:666
 AliAnalysisTaskEfficiencyBF.cxx:667
 AliAnalysisTaskEfficiencyBF.cxx:668
 AliAnalysisTaskEfficiencyBF.cxx:669
 AliAnalysisTaskEfficiencyBF.cxx:670
 AliAnalysisTaskEfficiencyBF.cxx:671
 AliAnalysisTaskEfficiencyBF.cxx:672
 AliAnalysisTaskEfficiencyBF.cxx:673
 AliAnalysisTaskEfficiencyBF.cxx:674
 AliAnalysisTaskEfficiencyBF.cxx:675
 AliAnalysisTaskEfficiencyBF.cxx:676
 AliAnalysisTaskEfficiencyBF.cxx:677
 AliAnalysisTaskEfficiencyBF.cxx:678
 AliAnalysisTaskEfficiencyBF.cxx:679
 AliAnalysisTaskEfficiencyBF.cxx:680