ROOT logo
#include "TChain.h"
#include "TList.h"
#include "TCanvas.h"
#include "TLorentzVector.h"
#include "TGraphErrors.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TArrayF.h"
#include "TF1.h"
#include "TRandom.h"

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

#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODInputHandler.h"
#include "AliGenEventHeader.h"
#include "AliGenHijingEventHeader.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliMixInputEventHandler.h"
#include "AliStack.h"
#include "AliESDtrackCuts.h"

#include "TH2D.h"                  
#include "AliPID.h"                
#include "AliPIDResponse.h"        
#include "AliPIDCombined.h"        

#include "AliAnalysisTaskEventMixingBF.h"
#include "AliBalanceEventMixing.h"


// Analysis task for the EventMixingBF code
// Authors: Panos.Christakoglou@nikhef.nl, m.weber@cern.ch

ClassImp(AliAnalysisTaskEventMixingBF)

//________________________________________________________________________
AliAnalysisTaskEventMixingBF::AliAnalysisTaskEventMixingBF(const char *name) 
: AliAnalysisTaskSE(name), 
  fBalance(0),
  fRunShuffling(kFALSE),
  fShuffledBalance(0),
  fList(0),
  fListEventMixingBF(0),
  fListEventMixingBFS(0),
  fHistListPIDQA(0),
  fHistEventStats(0),
  fHistCentStats(0),
  fHistTriggerStats(0),
  fHistTrackStats(0),
  fHistVx(0),
  fHistVy(0),
  fHistVz(0),
  fHistClus(0),
  fHistDCA(0),
  fHistChi2(0),
  fHistPt(0),
  fHistEta(0),
  fHistPhi(0),
  fHistPhiBefore(0),
  fHistPhiAfter(0),
  fHistV0M(0),
  fHistRefTracks(0),
  fHistdEdxVsPTPCbeforePID(NULL),
  fHistBetavsPTOFbeforePID(NULL), 
  fHistProbTPCvsPtbeforePID(NULL), 
  fHistProbTOFvsPtbeforePID(NULL), 
  fHistProbTPCTOFvsPtbeforePID(NULL),
  fHistNSigmaTPCvsPtbeforePID(NULL), 
  fHistNSigmaTOFvsPtbeforePID(NULL), 
  fHistdEdxVsPTPCafterPID(NULL),
  fHistBetavsPTOFafterPID(NULL), 
  fHistProbTPCvsPtafterPID(NULL), 
  fHistProbTOFvsPtafterPID(NULL), 
  fHistProbTPCTOFvsPtafterPID(NULL),
  fHistNSigmaTPCvsPtafterPID(NULL), 
  fHistNSigmaTOFvsPtafterPID(NULL),  
  fPIDResponse(0x0),
  fPIDCombined(0x0),
  fParticleOfInterest(kPion),
  fPidDetectorConfig(kTPCTOF),
  fUsePID(kFALSE),
  fUsePIDnSigma(kTRUE),
  fUsePIDPropabilities(kFALSE), 
  fPIDNSigma(3.),
  fMinAcceptedPIDProbability(0.8),
  fESDtrackCuts(0),
  fCentralityEstimator("V0M"),
  fUseCentrality(kFALSE),
  fCentralityPercentileMin(0.), 
  fCentralityPercentileMax(5.),
  fImpactParameterMin(0.),
  fImpactParameterMax(20.),
  fUseMultiplicity(kFALSE),
  fNumberOfAcceptedTracksMin(0),
  fNumberOfAcceptedTracksMax(10000),
  fHistNumberOfAcceptedTracks(0),
  fUseOfflineTrigger(kFALSE),
  fVxMax(0.3),
  fVyMax(0.3),
  fVzMax(10.),
  nAODtrackCutBit(128),
  fPtMin(0.3),
  fPtMax(1.5),
  fEtaMin(-0.8),
  fEtaMax(-0.8),
  fDCAxyCut(-1),
  fDCAzCut(-1),
  fTPCchi2Cut(-1),
  fNClustersTPCCut(-1),
  fAcceptanceParameterization(0),
  fDifferentialV2(0),
  fUseFlowAfterBurner(kFALSE),
  fExcludeResonancesInMC(kFALSE),
  fUseMCPdgCode(kFALSE),
  fPDGCodeToBeAnalyzed(-1),
  fMainEvent(0x0),
  fMixEvent(0x0)
{
  // Constructor
  // Define input and output slots here
  // Input slot #0 works with a TChain
  DefineInput(0, TChain::Class());
  // Output slot #0 writes into a TH1 container
  DefineOutput(1, TList::Class());
  DefineOutput(2, TList::Class());
  DefineOutput(3, TList::Class());
  DefineOutput(4, TList::Class());
}

//________________________________________________________________________
AliAnalysisTaskEventMixingBF::~AliAnalysisTaskEventMixingBF() {

  // delete fBalance; 
  // delete fShuffledBalance; 
  // delete fList;
  // delete fListEventMixingBF; 
  // delete fListEventMixingBFS;

  // delete fHistEventStats; 
  // delete fHistTrackStats; 
  // delete fHistVx; 
  // delete fHistVy; 
  // delete fHistVz; 

  // delete fHistClus;
  // delete fHistDCA;
  // delete fHistChi2;
  // delete fHistPt;
  // delete fHistEta;
  // delete fHistPhi;
  // delete fHistV0M;
}

//________________________________________________________________________
void AliAnalysisTaskEventMixingBF::UserCreateOutputObjects() {
  // Create histograms
  // Called once
  if(!fBalance) {
    fBalance = new AliBalanceEventMixing();
    fBalance->SetAnalysisLevel("ESD");
    //fBalance->SetNumberOfBins(-1,16);
    fBalance->SetInterval(-1,-0.8,0.8,16,0.,1.6);
  }
  if(fRunShuffling) {
    if(!fShuffledBalance) {
      fShuffledBalance = new AliBalanceEventMixing();
      fShuffledBalance->SetAnalysisLevel("ESD");
      //fShuffledBalance->SetNumberOfBins(-1,16);
      fShuffledBalance->SetInterval(-1,-0.8,0.8,16,0.,1.6);
    }
  }

  //QA list
  fList = new TList();
  fList->SetName("listQA");
  fList->SetOwner();

  //Balance Function list
  fListEventMixingBF = new TList();
  fListEventMixingBF->SetName("listEventMixingBF");
  fListEventMixingBF->SetOwner();

  if(fRunShuffling) {
    fListEventMixingBFS = new TList();
    fListEventMixingBFS->SetName("listEventMixingBFShuffled");
    fListEventMixingBFS->SetOwner();
  }

  //PID QA list
  if(fUsePID) {
    fHistListPIDQA = new TList();
    fHistListPIDQA->SetName("listQAPID");
    fHistListPIDQA->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());
  fList->Add(fHistEventStats);

  TString gCentName[9] = {"V0M","FMD","TRK","TKL","CL0","CL1","V0MvsFMD","TKLvsV0M","ZEMvsZDC"};
  fHistCentStats = new TH2F("fHistCentStats",
                             "Centrality statistics;;Cent percentile",
			    9,-0.5,8.5,220,-5,105);
  for(Int_t i = 1; i <= 9; i++)
    fHistCentStats->GetXaxis()->SetBinLabel(i,gCentName[i-1].Data());
  fList->Add(fHistCentStats);

  fHistTriggerStats = new TH1F("fHistTriggerStats","Trigger statistics;TriggerBit;N_{events}",130,0,130);
  fList->Add(fHistTriggerStats);

  fHistTrackStats = new TH1F("fHistTrackStats","Event statistics;TrackFilterBit;N_{events}",130,0,130);
  fList->Add(fHistTrackStats);

  fHistNumberOfAcceptedTracks = new TH1F("fHistNumberOfAcceptedTracks",";N_{acc.};Entries",4001,-0.5,4000.5);
  fList->Add(fHistNumberOfAcceptedTracks);

  // Vertex distributions
  fHistVx = new TH1F("fHistVx","Primary vertex distribution - x coordinate;V_{x} (cm);Entries",100,-0.5,0.5);
  fList->Add(fHistVx);
  fHistVy = new TH1F("fHistVy","Primary vertex distribution - y coordinate;V_{y} (cm);Entries",100,-0.5,0.5);
  fList->Add(fHistVy);
  fHistVz = new TH1F("fHistVz","Primary vertex distribution - z coordinate;V_{z} (cm);Entries",100,-20.,20.);
  fList->Add(fHistVz);

  // QA histograms
  fHistClus = new TH2F("fHistClus","# Cluster (TPC vs. ITS)",10,0,10,200,0,200);
  fList->Add(fHistClus);
  fHistChi2 = new TH1F("fHistChi2","Chi2/NDF distribution",200,0,10);
  fList->Add(fHistChi2);
  fHistDCA  = new TH2F("fHistDCA","DCA (xy vs. z)",400,-5,5,400,-5,5); 
  fList->Add(fHistDCA);
  fHistPt   = new TH1F("fHistPt","p_{T} distribution",200,0,10);
  fList->Add(fHistPt);
  fHistEta  = new TH1F("fHistEta","#eta distribution",200,-2,2);
  fList->Add(fHistEta);
  fHistPhi  = new TH1F("fHistPhi","#phi distribution",200,-20,380);
  fList->Add(fHistPhi);
  fHistPhiBefore  = new TH1F("fHistPhiBefore","#phi distribution",200,0.,2*TMath::Pi());
  fList->Add(fHistPhiBefore);
  fHistPhiAfter  = new TH1F("fHistPhiAfter","#phi distribution",200,0.,2*TMath::Pi());
  fList->Add(fHistPhiAfter);
  fHistV0M  = new TH2F("fHistV0M","V0 Multiplicity C vs. A",500, 0, 20000, 500, 0, 20000);
  fList->Add(fHistV0M);
  TString gRefTrackName[6] = {"tracks","tracksPos","tracksNeg","tracksTPConly","clusITS0","clusITS1"};
  fHistRefTracks  = new TH2F("fHistRefTracks","Nr of Ref tracks/event vs. ref track estimator;;Nr of tracks",6, 0, 6, 400, 0, 20000);
  for(Int_t i = 1; i <= 6; i++)
    fHistRefTracks->GetXaxis()->SetBinLabel(i,gRefTrackName[i-1].Data());
  fList->Add(fHistRefTracks);

  // Balance function histograms
  // Initialize histograms if not done yet
  if(!fBalance->GetHistNp(0)){
    AliWarning("Histograms not yet initialized! --> Will be done now");
    AliWarning("--> Add 'gBalance->InitHistograms()' in your configBalanceFunction");
    fBalance->InitHistograms();
  }

  if(fRunShuffling) {
    if(!fShuffledBalance->GetHistNp(0)) {
      AliWarning("Histograms (shuffling) not yet initialized! --> Will be done now");
      AliWarning("--> Add 'gBalance->InitHistograms()' in your configBalanceFunction");
      fShuffledBalance->InitHistograms();
    }
  }

  for(Int_t a = 0; a < ANALYSIS_TYPES; a++){
    fListEventMixingBF->Add(fBalance->GetHistNp(a));
    fListEventMixingBF->Add(fBalance->GetHistNn(a));
    fListEventMixingBF->Add(fBalance->GetHistNpn(a));
    fListEventMixingBF->Add(fBalance->GetHistNnn(a));
    fListEventMixingBF->Add(fBalance->GetHistNpp(a));
    fListEventMixingBF->Add(fBalance->GetHistNnp(a));

    if(fRunShuffling) {
      fListEventMixingBFS->Add(fShuffledBalance->GetHistNp(a));
      fListEventMixingBFS->Add(fShuffledBalance->GetHistNn(a));
      fListEventMixingBFS->Add(fShuffledBalance->GetHistNpn(a));
      fListEventMixingBFS->Add(fShuffledBalance->GetHistNnn(a));
      fListEventMixingBFS->Add(fShuffledBalance->GetHistNpp(a));
      fListEventMixingBFS->Add(fShuffledBalance->GetHistNnp(a));
    }  
  }

  if(fESDtrackCuts) fList->Add(fESDtrackCuts);

  //====================PID========================//
  if(fUsePID) {
    fPIDCombined = new AliPIDCombined();
    fPIDCombined->SetDefaultTPCPriors();

    fHistdEdxVsPTPCbeforePID = new TH2D ("dEdxVsPTPCbefore","dEdxVsPTPCbefore", 1000, -10.0, 10.0, 1000, 0, 1000); 
    fHistListPIDQA->Add(fHistdEdxVsPTPCbeforePID); //addition 
    
    fHistBetavsPTOFbeforePID = new TH2D ("BetavsPTOFbefore","BetavsPTOFbefore", 1000, -10.0, 10., 1000, 0, 1.2); 
    fHistListPIDQA->Add(fHistBetavsPTOFbeforePID); //addition
    
    fHistProbTPCvsPtbeforePID = new TH2D ("ProbTPCvsPtbefore","ProbTPCvsPtbefore", 1000, -10.0,10.0, 1000, 0, 2.0); 
    fHistListPIDQA->Add(fHistProbTPCvsPtbeforePID); //addition 
    
    fHistProbTOFvsPtbeforePID = new TH2D ("ProbTOFvsPtbefore","ProbTOFvsPtbefore", 1000, -50, 50, 1000, 0, 2.0); 
    fHistListPIDQA->Add(fHistProbTOFvsPtbeforePID); //addition 

    fHistProbTPCTOFvsPtbeforePID =new TH2D ("ProbTPCTOFvsPtbefore","ProbTPCTOFvsPtbefore", 1000, -50, 50, 1000, 0, 2.0); 
    fHistListPIDQA->Add(fHistProbTPCTOFvsPtbeforePID); //addition 
    
    fHistNSigmaTPCvsPtbeforePID = new TH2D ("NSigmaTPCvsPtbefore","NSigmaTPCvsPtbefore", 1000, -10, 10, 1000, 0, 500); 
    fHistListPIDQA->Add(fHistNSigmaTPCvsPtbeforePID); //addition 
    
    fHistNSigmaTOFvsPtbeforePID = new TH2D ("NSigmaTOFvsPtbefore","NSigmaTOFvsPtbefore", 1000, -10, 10, 1000, 0, 500); 
    fHistListPIDQA->Add(fHistNSigmaTOFvsPtbeforePID); //addition 
    
    fHistdEdxVsPTPCafterPID = new TH2D ("dEdxVsPTPCafter","dEdxVsPTPCafter", 1000, -10, 10, 1000, 0, 1000); 
    fHistListPIDQA->Add(fHistdEdxVsPTPCafterPID); //addition 
    
    fHistBetavsPTOFafterPID = new TH2D ("BetavsPTOFafter","BetavsPTOFafter", 1000, -10, 10, 1000, 0, 1.2); 
    fHistListPIDQA->Add(fHistBetavsPTOFafterPID); //addition 
    
    fHistProbTPCvsPtafterPID = new TH2D ("ProbTPCvsPtafter","ProbTPCvsPtafter", 1000, -10, 10, 1000, 0, 2); 
    fHistListPIDQA->Add(fHistProbTPCvsPtafterPID); //addition 
  
    fHistProbTOFvsPtafterPID = new TH2D ("ProbTOFvsPtafter","ProbTOFvsPtafter", 1000,  -10, 10, 1000, 0, 2); 
    fHistListPIDQA->Add(fHistProbTOFvsPtafterPID); //addition  
    
    fHistProbTPCTOFvsPtafterPID =new TH2D ("ProbTPCTOFvsPtafter","ProbTPCTOFvsPtafter", 1000, -50, 50, 1000, 0, 2.0); 
    fHistListPIDQA->Add(fHistProbTPCTOFvsPtafterPID); //addition 

    fHistNSigmaTPCvsPtafterPID = new TH2D ("NSigmaTPCvsPtafter","NSigmaTPCvsPtafter", 1000, -10, 10, 1000, 0, 500); 
    fHistListPIDQA->Add(fHistNSigmaTPCvsPtafterPID); //addition  
    
    fHistNSigmaTOFvsPtafterPID = new TH2D ("NSigmaTOFvsPtafter","NSigmaTOFvsPtafter", 1000, -10, 10, 1000, 0, 500); 
    fHistListPIDQA->Add(fHistNSigmaTOFvsPtafterPID); //addition 
  }
  //====================PID========================//

  // Post output data.
  PostData(1, fList);
  PostData(2, fListEventMixingBF);
  if(fRunShuffling) PostData(3, fListEventMixingBFS);
  if(fUsePID) PostData(4, fHistListPIDQA);       //PID
}

//________________________________________________________________________
void AliAnalysisTaskEventMixingBF::UserExec(Option_t *) {
  // Main loop
  // Called for each event
  // NOTHING TO DO for event mixing!
}      

//________________________________________________________________________
void  AliAnalysisTaskEventMixingBF::FinishTaskOutput(){
  //Printf("END EventMixingBF");

  if (!fBalance) {
    AliError("ERROR: fBalance not available");
    return;
  }  
  if(fRunShuffling) {
    if (!fShuffledBalance) {
      AliError("ERROR: fShuffledBalance not available");
      return;
    }
  }

}

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

  // not implemented ...

}

void AliAnalysisTaskEventMixingBF::UserExecMix(Option_t *)
{
  // Main loop for event mixing

  TString gAnalysisLevel = fBalance->GetAnalysisLevel();

  AliMixInputEventHandler *mixIEH = SetupEventsForMixing();

  Float_t fCentrality           = 0.;

  // for HBT like cuts need magnetic field sign
  Float_t bSign = 0; // only used in AOD so far
  
  // vector holding the charges/kinematics of all tracks (charge,y,eta,phi,p0,p1,p2,pt,E)
  vector<Double_t> *chargeVector[9];          // original charge
  for(Int_t i = 0; i < 9; i++){
    chargeVector[i]        = new vector<Double_t>;
  }
  
  Double_t vCharge;
  Double_t vY;
  Double_t vEta;
  Double_t vPhi;
  Double_t vP[3];
  Double_t vPt;
  Double_t vE;

  Int_t iMainTrackUsed = -1;

  // -------------------------------------------------------------		     
  // At the moment MIXING only for AODs
  if(mixIEH){

    //AOD analysis (vertex and track cuts also here!!!!)
    if(gAnalysisLevel == "AOD") {
      AliAODEvent* aodEventMain = dynamic_cast<AliAODEvent*>(fMainEvent); 
      if(!aodEventMain) {
  	AliError("ERROR: aodEventMain not available");
  	return;
      }
      AliAODEvent *aodEventMix  = dynamic_cast<AliAODEvent *>(fMixEvent); 
     if(!aodEventMix) {
  	AliError("ERROR: aodEventMix not available");
  	return;
      }

     // for HBT like cuts need magnetic field sign
     bSign = (aodEventMain->GetMagneticField() > 0) ? 1 : -1;
      
     AliAODHeader *aodHeaderMain = dynamic_cast<AliAODHeader*>(aodEventMain->GetHeader());
     if(!aodHeaderMain) AliFatal("Not a standard AOD");  

      // event selection done in AliAnalysisTaskSE::Exec() --> this is not used
      fHistEventStats->Fill(1); //all events

      // this is not needed (checked in mixing handler!)
      Bool_t isSelectedMain = kTRUE;
      Bool_t isSelectedMix = kTRUE;
      
      if(fUseOfflineTrigger){
       	isSelectedMain = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
	isSelectedMix = ((AliInputEventHandler*)((AliMultiInputEventHandler *)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->GetFirstMultiInputHandler())->IsEventSelected();
      }
      
      if(isSelectedMain && isSelectedMix) {
       	fHistEventStats->Fill(2); //triggered events
	
      	//Centrality stuff (centrality in AOD header)
      	if(fUseCentrality) {
      	  fCentrality = aodHeaderMain->GetCentralityP()->GetCentralityPercentile(fCentralityEstimator.Data());
	  
      	  // QA for centrality estimators
      	  fHistCentStats->Fill(0.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("V0M"));
      	  fHistCentStats->Fill(1.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("FMD"));
      	  fHistCentStats->Fill(2.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("TRK"));
      	  fHistCentStats->Fill(3.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("TKL"));
      	  fHistCentStats->Fill(4.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("CL0"));
      	  fHistCentStats->Fill(5.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("CL1"));
      	  fHistCentStats->Fill(6.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("V0MvsFMD"));
      	  fHistCentStats->Fill(7.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("TKLvsV0M"));
      	  fHistCentStats->Fill(8.,aodHeaderMain->GetCentralityP()->GetCentralityPercentile("ZEMvsZDC"));
	  
      	  // take only events inside centrality class
      	  if((fCentrality < fCentralityPercentileMin) || (fCentrality > fCentralityPercentileMax)) 
      	    return;
	  
      	  // centrality QA (V0M)
      	  fHistV0M->Fill(aodEventMain->GetVZEROData()->GetMTotV0A(), aodEventMain->GetVZEROData()->GetMTotV0C());
	  
      	  // centrality QA (reference tracks)
      	  fHistRefTracks->Fill(0.,aodHeaderMain->GetRefMultiplicity());
      	  fHistRefTracks->Fill(1.,aodHeaderMain->GetRefMultiplicityPos());
      	  fHistRefTracks->Fill(2.,aodHeaderMain->GetRefMultiplicityNeg());
      	  fHistRefTracks->Fill(3.,aodHeaderMain->GetTPConlyRefMultiplicity());
      	  fHistRefTracks->Fill(4.,aodHeaderMain->GetNumberOfITSClusters(0));
      	  fHistRefTracks->Fill(5.,aodHeaderMain->GetNumberOfITSClusters(1));
      	  fHistRefTracks->Fill(6.,aodHeaderMain->GetNumberOfITSClusters(2));
      	  fHistRefTracks->Fill(7.,aodHeaderMain->GetNumberOfITSClusters(3));
      	  fHistRefTracks->Fill(8.,aodHeaderMain->GetNumberOfITSClusters(4));
      	}
	
	// // this is crashing (Bug in ROOT (to be solved)) but not needed (checked in mixing handler)
	// const AliAODVertex *vertexMain = aodEventMain->GetPrimaryVertex();
	// const AliAODVertex *vertexMix  = aodEventMix->GetPrimaryVertex();
      	
	// if(vertexMain && vertexMix) {
      	//    Double32_t fCovMain[6];
      	//    Double32_t fCovMix[6];
      	//    vertexMain->GetCovarianceMatrix(fCovMain);
      	//    vertexMix->GetCovarianceMatrix(fCovMix);
	  
	//    if(vertexMain->GetNContributors() > 0 && vertexMix->GetNContributors() > 0) {
      	//     if(fCovMain[5] != 0 && fCovMix[5] != 0) {
      	//       fHistEventStats->Fill(3); //events with a proper vertex
      	//       if(TMath::Abs(vertexMain->GetX()) < fVxMax && TMath::Abs(vertexMix->GetX()) < fVxMax ) {
      	// 	if(TMath::Abs(vertexMain->GetY()) < fVyMax && TMath::Abs(vertexMix->GetY()) < fVyMax) {
      	// 	  if(TMath::Abs(vertexMain->GetZ()) < fVzMax && TMath::Abs(vertexMix->GetZ()) < fVzMax) {
      	// 	    fHistEventStats->Fill(4); //analyzed events
      	// 	    fHistVx->Fill(vertexMain->GetX());
      	// 	    fHistVy->Fill(vertexMain->GetY());
      	// 	    fHistVz->Fill(vertexMain->GetZ());

  		    // Loop over tracks in main event
  		    for (Int_t iTracksMain = 0; iTracksMain < aodEventMain->GetNumberOfTracks(); iTracksMain++) {
  		      AliAODTrack* aodTrackMain = dynamic_cast<AliAODTrack *>(aodEventMain->GetTrack(iTracksMain));
  		      if (!aodTrackMain) {
  			AliError(Form("ERROR: Could not receive track %d", iTracksMain));
  			continue;
  		      }
		      
  		      // AOD track cuts
		      
  		      // For ESD Filter Information: ANALYSIS/macros/AddTaskESDfilter.C
  		      // take only TPC only tracks 
  		      fHistTrackStats->Fill(aodTrackMain->GetFilterMap());
  		      if(!aodTrackMain->TestFilterBit(nAODtrackCutBit)) continue;
		      
  		      vCharge = aodTrackMain->Charge();
  		      vY      = aodTrackMain->Y();
  		      vEta    = aodTrackMain->Eta();
  		      vPhi    = aodTrackMain->Phi() * TMath::RadToDeg();
  		      vE      = aodTrackMain->E();
  		      vPt     = aodTrackMain->Pt();
  		      aodTrackMain->PxPyPz(vP);
		      
  		      Float_t dcaXYMain = aodTrackMain->DCA();      // this is the DCA from global track (not exactly what is cut on)
  		      Float_t dcaZMain  = aodTrackMain->ZAtDCA();   // this is the DCA from global track (not exactly what is cut on)
		      
		      
  		      // Kinematics cuts from ESD track cuts
  		      if( vPt < fPtMin || vPt > fPtMax)      continue;
  		      if( vEta < fEtaMin || vEta > fEtaMax)  continue;
		      
  		      // Extra DCA cuts (for systematic studies [!= -1])
  		      if( fDCAxyCut != -1 && fDCAzCut != -1){
  			if(TMath::Sqrt((dcaXYMain*dcaXYMain)/(fDCAxyCut*fDCAxyCut)+(dcaZMain*dcaZMain)/(fDCAzCut*fDCAzCut)) > 1 ){
  			  continue;  // 2D cut
  			}
  		      }
		      
  		      // Extra TPC cuts (for systematic studies [!= -1])
  		      if( fTPCchi2Cut != -1 && aodTrackMain->Chi2perNDF() > fTPCchi2Cut){
  			continue;
  		      }
  		      if( fNClustersTPCCut != -1 && aodTrackMain->GetTPCNcls() < fNClustersTPCCut){
  			continue;
  		      }
		      
  		      // fill QA histograms
  		      fHistClus->Fill(aodTrackMain->GetITSNcls(),aodTrackMain->GetTPCNcls());
  		      fHistDCA->Fill(dcaZMain,dcaXYMain);
  		      fHistChi2->Fill(aodTrackMain->Chi2perNDF());
  		      fHistPt->Fill(vPt);
  		      fHistEta->Fill(vEta);
  		      fHistPhi->Fill(vPhi);
		      
  		      // fill charge vector
  		      chargeVector[0]->push_back(vCharge);
  		      chargeVector[1]->push_back(vY);
  		      chargeVector[2]->push_back(vEta);
  		      chargeVector[3]->push_back(vPhi);
  		      chargeVector[4]->push_back(vP[0]);
  		      chargeVector[5]->push_back(vP[1]);
  		      chargeVector[6]->push_back(vP[2]);
  		      chargeVector[7]->push_back(vPt);
  		      chargeVector[8]->push_back(vE);

  		      // -------------------------------------------------------------		     
  		      // for each track in main event loop over all tracks in mix event
  		      for (Int_t iTracksMix = 0; iTracksMix < aodEventMix->GetNumberOfTracks(); iTracksMix++) {

  			AliAODTrack* aodTrackMix = dynamic_cast<AliAODTrack *>(aodEventMix->GetTrack(iTracksMix));
  			if (!aodTrackMix) {
  			  AliError(Form("ERROR: Could not receive track %d", iTracksMix));
  			  continue;
  			}

  			// AOD track cuts
			
  			// For ESD Filter Information: ANALYSIS/macros/AddTaskESDfilter.C
  			// take only TPC only tracks 
  			fHistTrackStats->Fill(aodTrackMix->GetFilterMap());
  			if(!aodTrackMix->TestFilterBit(nAODtrackCutBit)) continue;
			
  			vCharge = aodTrackMix->Charge();
  			vY      = aodTrackMix->Y();
  			vEta    = aodTrackMix->Eta();
  			vPhi    = aodTrackMix->Phi() * TMath::RadToDeg();
  			vE      = aodTrackMix->E();
  			vPt     = aodTrackMix->Pt();
  			aodTrackMix->PxPyPz(vP);
		      
  			Float_t dcaXYMix = aodTrackMix->DCA();      // this is the DCA from global track (not exactly what is cut on)
  			Float_t dcaZMix  = aodTrackMix->ZAtDCA();   // this is the DCA from global track (not exactly what is cut on)
			
			
  			// Kinematics cuts from ESD track cuts
  			if( vPt < fPtMin || vPt > fPtMax)      continue;
  			if( vEta < fEtaMin || vEta > fEtaMax)  continue;
			
  			// Extra DCA cuts (for systematic studies [!= -1])
  			if( fDCAxyCut != -1 && fDCAxyCut != -1){
  			  if(TMath::Sqrt((dcaXYMix*dcaXYMix)/(fDCAxyCut*fDCAxyCut)+(dcaZMix*dcaZMix)/(fDCAzCut*fDCAzCut)) > 1 ){
  			    continue;  // 2D cut
  			  }
  			}
			
  			// Extra TPC cuts (for systematic studies [!= -1])
  			if( fTPCchi2Cut != -1 && aodTrackMix->Chi2perNDF() > fTPCchi2Cut){
  			  continue;
  			}
  			if( fNClustersTPCCut != -1 && aodTrackMix->GetTPCNcls() < fNClustersTPCCut){
  			  continue;
  			}
			
  			// fill QA histograms
  			fHistClus->Fill(aodTrackMix->GetITSNcls(),aodTrackMix->GetTPCNcls());
  			fHistDCA->Fill(dcaZMix,dcaXYMix);
  			fHistChi2->Fill(aodTrackMix->Chi2perNDF());
  			fHistPt->Fill(vPt);
  			fHistEta->Fill(vEta);
  			fHistPhi->Fill(vPhi);
			
  			// fill charge vector
  			chargeVector[0]->push_back(vCharge);
  			chargeVector[1]->push_back(vY);
  			chargeVector[2]->push_back(vEta);
  			chargeVector[3]->push_back(vPhi);
  			chargeVector[4]->push_back(vP[0]);
  			chargeVector[5]->push_back(vP[1]);
  			chargeVector[6]->push_back(vP[2]);
  			chargeVector[7]->push_back(vPt);
  			chargeVector[8]->push_back(vE);
			
			
			
  		      } //mix track loop

  		      // calculate balance function for each track in main event
		      iMainTrackUsed++; // is needed to do no double counting in Balance Function calculation   
		      if(iMainTrackUsed >= (Int_t)chargeVector[0]->size()) break; //do not allow more tracks than in mixed event!
		      fBalance->CalculateBalance(fCentrality,chargeVector,iMainTrackUsed,bSign);
  		      // clean charge vector afterwards
  		      for(Int_t i = 0; i < 9; i++){		       
  			chargeVector[i]->clear();
  		      }
		      

  		    } //main track loop
      // 		  }//Vz cut
      // 		}//Vy cut
      // 	      }//Vx cut
      // 	    }//proper vertexresolution
      //    }//proper number of contributors
      // }//vertex object valid
      }//triggered event 
    }//AOD analysis
  }
}

AliMixInputEventHandler *AliAnalysisTaskEventMixingBF::SetupEventsForMixing() {
  //sets the input handlers for event mixing

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  AliMultiInputEventHandler *inEvHMain = dynamic_cast<AliMultiInputEventHandler *>(mgr->GetInputEventHandler());
  if (inEvHMain) {

      AliMixInputEventHandler *mixEH = dynamic_cast<AliMixInputEventHandler *>(inEvHMain->GetFirstMultiInputHandler());
      if (!mixEH) return nullptr;
      if (mixEH->CurrentBinIndex() < 0) {
         AliDebug(AliLog::kDebug + 1, "Current event mixEH->CurrentEntry() == -1");
         return nullptr;
      }
      AliDebug(AliLog::kDebug, Form("Mixing %lld %d [%lld,%lld] %d", mixEH->CurrentEntry(), mixEH->CurrentBinIndex(), mixEH->CurrentEntryMain(), mixEH->CurrentEntryMix(), mixEH->NumberMixed()));

      AliInputEventHandler      *ihMainCurrent     = inEvHMain->GetFirstInputEventHandler();
      fMainEvent = ihMainCurrent->GetEvent();

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