ROOT logo
#include "AliLog.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TTree.h"
#include "TAxis.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "TMath.h"
#include "TString.h"

#include "AliAnalysisTaskMuonHadronCorrelations.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliEventPoolManager.h"

ClassImp(AliAnalysisTaskMuonHadronCorrelations)

//====================================================================================================================================================

AliAnalysisTaskMuonHadronCorrelations::AliAnalysisTaskMuonHadronCorrelations() : 
  AliAnalysisTaskSE(), 
  fAOD(0x0),
  fPoolMgr(0x0),
  fTrackCB(0x0),
  fTrackMA(0x0),
  fFilterBitCentralBarrel(0),
  fMaxEtaCentralBarrel(1.0),
  fMinEtaCentralBarrel(-1.0),
  fMaxChi2Muon(9999999999.), 
  fMinRAbsMuon(0), 
  fMaxRAbsMuon(9999999999.),
  fTriggerMatchLevelMuon(0),
  fNbinsCent(1), 
  fNbinsPt(1),
  fCentAxis(0x0), 
  fPtAxis(0x0),
  fEtaAxis(0x0),
  fHistV0Multiplicity(0x0), 
  fHistITSMultiplicity(0x0),
  fHistCentrality(0x0),
  fHistEvStat(0x0),
  fCentMethod(0),
  fOutputList(0x0)
{

  // Default constructor

  for (Int_t iCent=0; iCent<fNMaxBinsCentrality; iCent++) {
    for (Int_t iPtBinCB=0; iPtBinCB<fNMaxBinsPt; iPtBinCB++) {
      for (Int_t iPtBinMA=0; iPtBinMA<fNMaxBinsPt; iPtBinMA++) {
	fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA]    = NULL;
	fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
	fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]    = NULL;
	fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
      }
    }
    fHistNTracksCB_vs_NTracksMA[iCent]  = NULL;
    fHistNTracksCB_vs_NTracksMAmixed[iCent]  = NULL;
    fHistTracksEtaMAvsEtaCB[iCent] = NULL;
    fHistTracksEtaMAvsEtaCBmixed[iCent] = NULL;
    fHistSingleMuonsPt[iCent]   = NULL;
    fHistSingleMuonsPtmixed[iCent]   = NULL;
    fHistSingleMuonsEtaPt[iCent]   = NULL;
    fHistSingleMuonsEtaPtmixed[iCent]   = NULL;
    fHistSingleMuonsTrigMatch[iCent] = NULL;
    fHistSingleMuonsChi2[iCent] = NULL;
    fHistSingleMuonsEtaVsPt[iCent]   = NULL;
    fHistSingleMuonsEtaVsRAbs[iCent] = NULL;
  }  
  
}


//====================================================================================================================================================

AliAnalysisTaskMuonHadronCorrelations::AliAnalysisTaskMuonHadronCorrelations(const char *name) : 
  AliAnalysisTaskSE(name), 
  fAOD(0x0),
  fPoolMgr(0x0),
  fTrackCB(0x0),
  fTrackMA(0x0),
  fFilterBitCentralBarrel(0),
  fMaxEtaCentralBarrel(1.0),
  fMinEtaCentralBarrel(-1.0),
  fMaxChi2Muon(9999999999.), 
  fMinRAbsMuon(0), 
  fMaxRAbsMuon(9999999999.),
  fTriggerMatchLevelMuon(0),
  fNbinsCent(1), 
  fNbinsPt(1),
  fCentAxis(0x0), 
  fPtAxis(0x0),
  fEtaAxis(0x0),
  fHistV0Multiplicity(0x0), 
  fHistITSMultiplicity(0x0),
  fHistCentrality(0x0),
  fHistEvStat(0x0),
  fCentMethod(0),
  fOutputList(0x0)
{

  // Constructor

  for (Int_t iCent=0; iCent<fNMaxBinsCentrality; iCent++) {
    for (Int_t iPtBinCB=0; iPtBinCB<fNMaxBinsPt; iPtBinCB++) {
      for (Int_t iPtBinMA=0; iPtBinMA<fNMaxBinsPt; iPtBinMA++) {
	fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA]    = NULL;
	fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
	fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]    = NULL;
	fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] = NULL;
      }
    }
    fHistNTracksCB_vs_NTracksMA[iCent]  = NULL;
    fHistNTracksCB_vs_NTracksMAmixed[iCent]  = NULL;
    fHistTracksEtaMAvsEtaCB[iCent] = NULL;
    fHistTracksEtaMAvsEtaCBmixed[iCent] = NULL;
    fHistSingleMuonsPt[iCent]   = NULL;
    fHistSingleMuonsPtmixed[iCent]   = NULL;
    fHistSingleMuonsEtaPt[iCent]   = NULL;
    fHistSingleMuonsEtaPtmixed[iCent]   = NULL;
    fHistSingleMuonsTrigMatch[iCent] = NULL;
    fHistSingleMuonsChi2[iCent] = NULL;
    fHistSingleMuonsEtaVsPt[iCent]   = NULL;
    fHistSingleMuonsEtaVsRAbs[iCent] = NULL;
  }  
  
  // Define input and output slots here
  DefineOutput(1, TList::Class());
  
}

//====================================================================================================================================================

AliAnalysisTaskMuonHadronCorrelations::~AliAnalysisTaskMuonHadronCorrelations() {
  
  delete fCentAxis;
  delete fPtAxis;
  delete fEtaAxis;

  if (fOutputList  && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) 
    delete fOutputList;
}

//====================================================================================================================================================

void AliAnalysisTaskMuonHadronCorrelations::UserCreateOutputObjects() {
  
  fOutputList = new TList();
  fOutputList->SetOwner(kTRUE);

  for (Int_t iCent=0; iCent<fNbinsCent; iCent++) {
    for (Int_t iPtBinCB=0; iPtBinCB<fNbinsPt; iPtBinCB++) {
      for (Int_t iPtBinMA=0; iPtBinMA<fNbinsPt; iPtBinMA++) {
	
	fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA]    = new TH1D(Form("fHistDeltaPhi_Cent%02d_PtBin%02d_%02d",iCent,iPtBinCB,iPtBinMA), 
							       Form("%d-%d %%, %3.1f<p_{T}^{TPC}<%3.1f, %3.1f<p_{T}^{Muon}<%3.1f",
								    Int_t(fCentAxis->GetBinLowEdge(iCent+1)),
								    Int_t(fCentAxis->GetBinUpEdge(iCent+1)),
								    fPtAxis->GetBinLowEdge(iPtBinCB+1),
								    fPtAxis->GetBinUpEdge(iPtBinCB+1),
								    fPtAxis->GetBinLowEdge(iPtBinMA+1),
								    fPtAxis->GetBinUpEdge(iPtBinMA+1)),
							       100, -0.5*TMath::RadToDeg()*TMath::Pi(), 1.5*TMath::RadToDeg()*TMath::Pi());
	
	fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA]    = new TH1D(Form("fHistDeltaPhiMix_Cent%02d_PtBin%02d_%02d",iCent,iPtBinCB,iPtBinMA), 
								  Form("%d-%d %%, %3.1f<p_{T}^{TPC}<%3.1f, %3.1f<p_{T}^{Muon}<%3.1f MIXED",
								       Int_t(fCentAxis->GetBinLowEdge(iCent+1)),
								       Int_t(fCentAxis->GetBinUpEdge(iCent+1)),
								       fPtAxis->GetBinLowEdge(iPtBinCB+1),
								       fPtAxis->GetBinUpEdge(iPtBinCB+1),
								       fPtAxis->GetBinLowEdge(iPtBinMA+1),
								       fPtAxis->GetBinUpEdge(iPtBinMA+1)),
								  100, -0.5*TMath::RadToDeg()*TMath::Pi(), 1.5*TMath::RadToDeg()*TMath::Pi());
	
	fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA]    -> SetXTitle("#Delta#varphi  [degrees]");
	fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> SetXTitle("#Delta#varphi  [degrees]");

	fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA]    -> Sumw2();
	fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> Sumw2();
	
	fOutputList -> Add(fHistDeltaPhi[iCent][iPtBinCB][iPtBinMA]);
	fOutputList -> Add(fHistDeltaPhiMix[iCent][iPtBinCB][iPtBinMA]);

	fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]    = new TH2D(Form("fHistEtaDeltaPhi_Cent%02d_PtBin%02d_%02d",iCent,iPtBinCB,iPtBinMA), 
								  Form("%d-%d %%, %3.1f<p_{T}^{TPC}<%3.1f, %3.1f<p_{T}^{Muon}<%3.1f",
								       Int_t(fCentAxis->GetBinLowEdge(iCent+1)),
								       Int_t(fCentAxis->GetBinUpEdge(iCent+1)),
								       fPtAxis->GetBinLowEdge(iPtBinCB+1),
								       fPtAxis->GetBinUpEdge(iPtBinCB+1),
								       fPtAxis->GetBinLowEdge(iPtBinMA+1),
								       fPtAxis->GetBinUpEdge(iPtBinMA+1)),
								  100, -0.5*TMath::RadToDeg()*TMath::Pi(), 1.5*TMath::RadToDeg()*TMath::Pi(),
								  fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
	
	fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA]    = new TH2D(Form("fHistEtaDeltaPhiMix_Cent%02d_PtBin%02d_%02d",iCent,iPtBinCB,iPtBinMA), 
								     Form("%d-%d %%, %3.1f<p_{T}^{TPC}<%3.1f, %3.1f<p_{T}^{Muon}<%3.1f MIXED",
									  Int_t(fCentAxis->GetBinLowEdge(iCent+1)),
									  Int_t(fCentAxis->GetBinUpEdge(iCent+1)),
									  fPtAxis->GetBinLowEdge(iPtBinCB+1),
									  fPtAxis->GetBinUpEdge(iPtBinCB+1),
									  fPtAxis->GetBinLowEdge(iPtBinMA+1),
									  fPtAxis->GetBinUpEdge(iPtBinMA+1)),
								     100, -0.5*TMath::RadToDeg()*TMath::Pi(), 1.5*TMath::RadToDeg()*TMath::Pi(),
								     fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
	
	fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]    -> SetXTitle("#Delta#varphi  [degrees]");
	fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> SetXTitle("#Delta#varphi  [degrees]");
	fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]    -> SetYTitle("#eta");
	fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> SetYTitle("#eta");

	fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]    -> Sumw2();
	fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA] -> Sumw2();
	
	fOutputList -> Add(fHistEtaDeltaPhi[iCent][iPtBinCB][iPtBinMA]);
	fOutputList -> Add(fHistEtaDeltaPhiMix[iCent][iPtBinCB][iPtBinMA]);

      }
    }

    fHistNTracksCB_vs_NTracksMA[iCent] = new TH2D(Form("fHistNTracksCB_vs_NTracksMA_Cent%02d",iCent),
						  Form("%d-%d %%",Int_t(fCentAxis->GetBinLowEdge(iCent+1)),Int_t(fCentAxis->GetBinUpEdge(iCent+1))),
						  100, 0, 500, 20, 0, 20);
    fHistNTracksCB_vs_NTracksMA[iCent] -> SetXTitle("N_{tracks} Central Barrel");
    fHistNTracksCB_vs_NTracksMA[iCent] -> SetYTitle("N_{tracks} Muon Arm");
    fHistNTracksCB_vs_NTracksMA[iCent] -> Sumw2();

    fHistNTracksCB_vs_NTracksMAmixed[iCent] = new TH2D(Form("fHistNTracksCB_vs_NTracksMAmixed_Cent%02d",iCent),
						  Form("%d-%d %% MIXED",Int_t(fCentAxis->GetBinLowEdge(iCent+1)),Int_t(fCentAxis->GetBinUpEdge(iCent+1))),
						  100, 0, 500, 20, 0, 20);
    fHistNTracksCB_vs_NTracksMAmixed[iCent] -> SetXTitle("N_{tracks} Central Barrel");
    fHistNTracksCB_vs_NTracksMAmixed[iCent] -> SetYTitle("N_{tracks} Muon Arm");
    fHistNTracksCB_vs_NTracksMAmixed[iCent] -> Sumw2();

    fHistTracksEtaMAvsEtaCB[iCent] = new TH2D(Form("fHistTracksEtaMAvsEtaCB_%02d",iCent),
					      "#eta muon vs #eta barrel",
					      100,-4.5,-2.,100,-1.5,1.5);
    fHistTracksEtaMAvsEtaCBmixed[iCent] = new TH2D(Form("fHistTracksEtaMAvsEtaCBmixed_%02d",iCent),
						   "#eta muon vs #eta barrel",
						   100,-4.5,-2.,100,-1.5,1.5);

    fOutputList -> Add(fHistNTracksCB_vs_NTracksMA[iCent]);
    fOutputList -> Add(fHistNTracksCB_vs_NTracksMAmixed[iCent]);
    fOutputList -> Add(fHistTracksEtaMAvsEtaCB[iCent]);
    fOutputList -> Add(fHistTracksEtaMAvsEtaCBmixed[iCent]);

    fHistSingleMuonsPt[iCent] = new TH1D(Form("fHistSingleMuonPt_Cent%02d",iCent),
					 "p_{T} for single muons",
					 fNbinsPt, (Double_t*)fPtAxis->GetXbins()->GetArray());
    fHistSingleMuonsPtmixed[iCent] = new TH1D(Form("fHistSingleMuonPtmixed_Cent%02d",iCent),
					      "p_{T} for single muons",
					      fNbinsPt, (Double_t*)fPtAxis->GetXbins()->GetArray());
    fOutputList -> Add(fHistSingleMuonsPt[iCent]);
    fOutputList -> Add(fHistSingleMuonsPtmixed[iCent]);

    fHistSingleMuonsEtaPt[iCent] = new TH2D(Form("fHistSingleMuonEtaPt_Cent%02d",iCent),
					    "#eta vs p_{T} for single muons",
					    fNbinsPt, (Double_t*)fPtAxis->GetXbins()->GetArray(),
					    fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
    fHistSingleMuonsEtaPtmixed[iCent] = new TH2D(Form("fHistSingleMuonEtaPtmixed_Cent%02d",iCent),
						 "#eta vs p_{T} for single muons",
						 fNbinsPt, (Double_t*)fPtAxis->GetXbins()->GetArray(),
						 fEtaAxis->GetNbins(),(Double_t*)fEtaAxis->GetXbins()->GetArray());
    fOutputList -> Add(fHistSingleMuonsEtaPt[iCent]);
    fOutputList -> Add(fHistSingleMuonsEtaPtmixed[iCent]);

    fHistSingleMuonsTrigMatch[iCent] = new TH1D(Form("fHistSingleMuonsTrigMatch_Cent%02d",iCent),
						"Single muons trigger match flag",10,-0.5,9.5);
    fOutputList -> Add(fHistSingleMuonsTrigMatch[iCent]);
    fHistSingleMuonsChi2[iCent] = new TH1D(Form("fHistSingleMuonsChi2_Cent%02d",iCent),
					   "Single muons Chi2",100,0.,10.);
    fOutputList -> Add(fHistSingleMuonsChi2[iCent]);

    fHistSingleMuonsEtaVsPt[iCent]   = new TH2D(Form("fHistSingleMuonsEtaVsPt_Cent%02d",iCent),
					       "#eta vs p_{T} for single muons",
						100, -4.5, -2., 100, 0., 10.);
    fOutputList->Add(fHistSingleMuonsEtaVsPt[iCent]);
    fHistSingleMuonsEtaVsRAbs[iCent] = new TH2D(Form("fHistSingleMuonsEtaVsRAbs_Cent%02d",iCent),
						"#eta vs R_{Abs} for single muons",
						100, -4.5, -2., 100, 0, 100);
    fOutputList->Add(fHistSingleMuonsEtaVsRAbs[iCent]);
    
  }
  
  fHistV0Multiplicity = new TH1D("fHistV0Multiplicity", "V0 Multiplicity", 500, 0, 1000);
  fHistV0Multiplicity -> SetXTitle("Multiplicity");
  fHistV0Multiplicity -> Sumw2();

  fHistITSMultiplicity = new TH1D("fHistITSMultiplicity", "ITS Multiplicity", 500, 0, 500);
  fHistITSMultiplicity -> SetXTitle("N_{Clusters}");
  fHistITSMultiplicity -> Sumw2();

  fHistCentrality = new TH1D("fHistCentrality", Form("%s Centrality",fCentMethod.Data()), 300, -100, 200);
  fHistCentrality -> SetXTitle("Centrality  [%]");
  fHistCentrality -> Sumw2();

  fOutputList -> Add(fHistV0Multiplicity);
  fOutputList -> Add(fHistITSMultiplicity);
  fOutputList -> Add(fHistCentrality);

  fHistEvStat = new TH1D("fHistEvStat","Event cuts statistics",20,-0.5,19.5);
  fHistEvStat->SetXTitle("Cut index");
  fOutputList->Add(fHistEvStat);

  const Int_t kNZvtxBins  = 10;
  // bins for further buffers are shifted by 100 cm
  Double_t vertexBins[kNZvtxBins+1] = { -10,   -8,  -6,  -4,  -2,   0,   2,   4,   6,   8,  10 };
  Int_t nZvtxBins  = kNZvtxBins;
  Double_t* zvtxbin = vertexBins;

  fPoolMgr = new AliEventPoolManager(1000, 20000, fNbinsCent, (Double_t*)fCentAxis->GetXbins()->GetArray(), nZvtxBins, zvtxbin);

  PostData(1, fOutputList); 

}

//====================================================================================================================================================

void AliAnalysisTaskMuonHadronCorrelations::UserExec(Option_t *) {

  fAOD = dynamic_cast<AliAODEvent *>(InputEvent());  
  if (!fAOD) return;  

  Int_t cutIndex = 0;
  fHistEvStat->Fill(cutIndex++);
  // Trigger selection
  if (!(IsTriggerFired())) return;
  fHistEvStat->Fill(cutIndex++);
  
  fHistV0Multiplicity  -> Fill(GetV0Multiplicity());
  fHistITSMultiplicity -> Fill(GetITSMultiplicity());

  Int_t centBin = GetCentBin();
  if (centBin<0) return;
  fHistEvStat->Fill(cutIndex++);
  Double_t percentile = fAOD->GetCentrality()->GetCentralityPercentile(fCentMethod.Data());
  fHistCentrality->Fill(percentile);

  // Vertex selection
  const AliAODVertex* trkVtx = fAOD->GetPrimaryVertex();
  if (!trkVtx || trkVtx->GetNContributors()<=0) return;
  TString vtxTtl = trkVtx->GetTitle();
  if (!vtxTtl.Contains("VertexerTracks")) return;
  fHistEvStat->Fill(cutIndex++);
  Double_t zvtx = trkVtx->GetZ();
  const AliAODVertex* spdVtx = fAOD->GetPrimaryVertexSPD();
  if (spdVtx->GetNContributors()<=0) return;
  TString vtxTyp = spdVtx->GetTitle();
  Double_t cov[6]={0};
  spdVtx->GetCovarianceMatrix(cov);
  Double_t zRes = TMath::Sqrt(cov[5]);
  if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) return;
  if (TMath::Abs(spdVtx->GetZ() - trkVtx->GetZ())>0.5) return;
  fHistEvStat->Fill(cutIndex++);

  if (TMath::Abs(zvtx) > 10.) return;
  fHistEvStat->Fill(cutIndex++);

  TObjArray *tracksMuonArm = GetAcceptedTracksMuonArm(fAOD,centBin);
  if (tracksMuonArm->GetEntriesFast() == 0) {
    delete tracksMuonArm;
    return;
  }
  fHistEvStat->Fill(cutIndex++);
  TObjArray *tracksCentralBarrel = GetAcceptedTracksCentralBarrel(fAOD);
  
  fHistNTracksCB_vs_NTracksMA[centBin] -> Fill(tracksCentralBarrel->GetEntries(), tracksMuonArm->GetEntries());

  AliDebug(1, Form("Single Event analysis : nTracksCB = %4d, nTracksMA = %4d", tracksCentralBarrel->GetEntries(), tracksMuonArm->GetEntries()));

  // Same event  
  for (Int_t iTrMA=0; iTrMA<tracksMuonArm->GetEntriesFast(); iTrMA++) {
    fTrackMA = (AliAODTrack*) tracksMuonArm->At(iTrMA);
    fHistSingleMuonsPt[centBin]->Fill(fTrackMA->Pt());
    fHistSingleMuonsEtaPt[centBin]->Fill(fTrackMA->Pt(),fTrackMA->Eta());
    for (Int_t iTrCB=0; iTrCB<tracksCentralBarrel->GetEntriesFast(); iTrCB++) {
      fTrackCB = (AliAODTrack*) tracksCentralBarrel -> At(iTrCB);
      FillHistograms(centBin, kSingleEvent);
    }
  }

  // Mixed event
  {
    AliEventPool* pool = fPoolMgr->GetEventPool(percentile, zvtx);
    //pool->PrintInfo();
    if (pool->IsReady() || pool->NTracksInPool() > 2000 || pool->GetCurrentNEvents() >= 5) 
      for (Int_t jMix=0; jMix<pool->GetCurrentNEvents(); jMix++) {
	TObjArray *mixedTracks = pool->GetEvent(jMix);
	fHistNTracksCB_vs_NTracksMAmixed[centBin]->Fill(mixedTracks->GetEntriesFast(), tracksMuonArm->GetEntriesFast());
	for (Int_t iTrMA=0; iTrMA<tracksMuonArm->GetEntriesFast(); iTrMA++) {
	  fTrackMA = (AliAODTrack*) tracksMuonArm->At(iTrMA);
	  fHistSingleMuonsPtmixed[centBin]->Fill(fTrackMA->Pt());
	  fHistSingleMuonsEtaPtmixed[centBin]->Fill(fTrackMA->Pt(),fTrackMA->Eta());
	  for (Int_t iTrCB=0; iTrCB<mixedTracks->GetEntriesFast(); iTrCB++) {
	    fTrackCB = (AliAODTrack*) mixedTracks -> At(iTrCB);
	    FillHistograms(centBin, kMixedEvent);
	  }
	}
      }
    pool->UpdatePool(tracksCentralBarrel);
  }

  delete tracksMuonArm;

  PostData(1, fOutputList); 

}

//====================================================================================================================================================

void AliAnalysisTaskMuonHadronCorrelations::FillHistograms(Int_t centrality, Int_t option) {

  Int_t ptBinTrackCB = fPtAxis -> FindBin(fTrackCB->Pt());
  Int_t ptBinTrackMA = fPtAxis -> FindBin(fTrackMA->Pt());

  if (ptBinTrackCB<1 || ptBinTrackCB>fNbinsPt || ptBinTrackMA<1 || ptBinTrackMA>fNbinsPt) return;

  Double_t deltaPhi = fTrackCB->Phi() - fTrackMA->Phi();
  if (deltaPhi >  1.5*TMath::Pi()) deltaPhi -= TMath::TwoPi();
  if (deltaPhi < -0.5*TMath::Pi()) deltaPhi += TMath::TwoPi();

  if (option==kSingleEvent)     fHistDeltaPhi[centrality][ptBinTrackCB-1][ptBinTrackMA-1]    -> Fill(TMath::RadToDeg()*deltaPhi);
  else if (option==kMixedEvent) fHistDeltaPhiMix[centrality][ptBinTrackCB-1][ptBinTrackMA-1] -> Fill(TMath::RadToDeg()*deltaPhi);

  if (option==kSingleEvent)     fHistEtaDeltaPhi[centrality][ptBinTrackCB-1][ptBinTrackMA-1]    -> Fill(TMath::RadToDeg()*deltaPhi,fTrackMA->Eta());
  else if (option==kMixedEvent) fHistEtaDeltaPhiMix[centrality][ptBinTrackCB-1][ptBinTrackMA-1] -> Fill(TMath::RadToDeg()*deltaPhi,fTrackMA->Eta());

  if (option==kSingleEvent)     fHistTracksEtaMAvsEtaCB[centrality]->Fill(fTrackMA->Eta(),fTrackCB->Eta());
  else if (option==kMixedEvent) fHistTracksEtaMAvsEtaCBmixed[centrality]->Fill(fTrackMA->Eta(),fTrackCB->Eta());
}

//====================================================================================================================================================

Bool_t AliAnalysisTaskMuonHadronCorrelations::IsTriggerFired() {
  
  Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kINT7); 

  return isSelected;
}

//====================================================================================================================================================

Float_t AliAnalysisTaskMuonHadronCorrelations::GetV0Multiplicity() {
  
  Float_t multiplicity=0;
  for (Int_t iChannel=0; iChannel<64; iChannel++) multiplicity += fAOD->GetVZEROData()->GetMultiplicity(iChannel);
  return multiplicity;

}

//====================================================================================================================================================

TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksCentralBarrel(AliAODEvent *aodEvent) {

  // fills the array of central barrel tracks that pass the cuts

  TObjArray *tracks = new TObjArray;
  tracks->SetOwner(kTRUE);

  Int_t nTracks = aodEvent->GetNumberOfTracks();

  AliAODTrack *track = 0;

  for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
    track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iTrack));
    if(!track) AliFatal("Not a standard AOD");
    if (track->TestFilterBit(fFilterBitCentralBarrel) && track->Eta()>fMinEtaCentralBarrel && track->Eta()<fMaxEtaCentralBarrel) {
      tracks->Add(new AliAODTrack(*track));
    }
  }

  return tracks;

}

//====================================================================================================================================================

TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksMuonArm(AliAODEvent *aodEvent, Int_t centBin) {

  // fills the array of muon tracks that pass the cuts

  TObjArray *tracks = new TObjArray;
  tracks->SetOwner(kFALSE);

  Int_t nTracks = aodEvent->GetNumberOfTracks();

  AliAODTrack *track = 0;
  
  for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
    track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iTrack));
    if(!track) AliFatal("Not a standard AOD");
    if (track->IsMuonTrack()) fHistSingleMuonsTrigMatch[centBin]->Fill(track->GetMatchTrigger());
    if (track->IsMuonTrack() && track->GetMatchTrigger()>=fTriggerMatchLevelMuon) {
      fHistSingleMuonsChi2[centBin]->Fill(track->Chi2perNDF());
      //     if (track->Chi2perNDF() < 5.) {
	// histos
	fHistSingleMuonsEtaVsPt[centBin]->Fill(track->Eta(),track->Pt());
	fHistSingleMuonsEtaVsRAbs[centBin]->Fill(track->Eta(),track->GetRAtAbsorberEnd());
	if (track->Eta() > -4. && track->Eta() < -2.5) {
	  Double_t rabs = track->GetRAtAbsorberEnd();
	  if (rabs > 17.6 && rabs < 89.5) {
	    tracks->Add(new AliAODTrack(*track));
	  }
	}
	//      }
    }
  }

  return tracks;

}

//====================================================================================================================================================

void AliAnalysisTaskMuonHadronCorrelations::SetCentBinning(Int_t nBins, Double_t *limits) {

  if (nBins>fNMaxBinsCentrality) {
    AliInfo(Form("WARNING : only %d centrality bins (out of the %d proposed) will be considered",fNMaxBinsCentrality,nBins));
    nBins = fNMaxBinsCentrality;
  }
  if (nBins<=0) {
    AliInfo("WARNING : at least one centrality bin must be considered");
    nBins = 1;
  }
  
  fNbinsCent = nBins;
  fCentAxis  = new TAxis(fNbinsCent, limits);

}

//====================================================================================================================================================

void AliAnalysisTaskMuonHadronCorrelations::SetPtBinning(Int_t nBins, Double_t *limits) {

  if (nBins>fNMaxBinsPt) {
    AliInfo(Form("WARNING : only %d pt bins (out of the %d proposed) will be considered",fNMaxBinsPt,nBins));
    nBins = fNMaxBinsPt;
  }
  if (nBins<=0) {
    AliInfo("WARNING : at least one pt bin must be considered");
    nBins = 1;
  }
  
  fNbinsPt = nBins;
  fPtAxis  = new TAxis(fNbinsPt, limits);

}

//====================================================================================================================================================

void AliAnalysisTaskMuonHadronCorrelations::SetEtaBinning(Int_t nBins, Double_t *limits) {

  if (nBins>fNMaxBinsEta) {
    AliInfo(Form("WARNING : only %d pt bins (out of the %d proposed) will be considered",fNMaxBinsEta,nBins));
    nBins = fNMaxBinsEta;
  }
  if (nBins<=0) {
    AliInfo("WARNING : at least one pt bin must be considered");
    nBins = 1;
  }
  
  fEtaAxis  = new TAxis(nBins, limits);

}

//====================================================================================================================================================

Int_t AliAnalysisTaskMuonHadronCorrelations::GetCentBin() {

  Double_t percentile = fAOD->GetCentrality()->GetCentralityPercentile(fCentMethod.Data());

  Int_t bin = fCentAxis->FindBin(percentile) - 1;
  if (bin >= fNbinsCent) bin = -1;
  return bin;
  
}

//====================================================================================================================================================

Double_t AliAnalysisTaskMuonHadronCorrelations::GetITSMultiplicity() {

  Double_t multiplicity = ((AliVAODHeader*)fAOD->GetHeader())->GetNumberOfITSClusters(1);

  return multiplicity;

}

//====================================================================================================================================================

void AliAnalysisTaskMuonHadronCorrelations::Terminate(Option_t *) {

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

}

//====================================================================================================================================================

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