ROOT logo
// MUON track QA referring AliMuonEffMC.cxx
// Author : Saehanseul Oh

#include "AliMuonEffMC.h"

#include <TList.h>
#include <TH1D.h>
#include <TH2F.h>
#include <TH3F.h>
#include <THn.h>
#include <TChain.h>
#include <TFile.h>
#include <TParticle.h>

#include "AliStack.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTask.h"
#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliESDMuonTrack.h"
#include "AliAODTrack.h"
#include "AliESDVertex.h"
#include "AliAODVertex.h"
#include "AliCentrality.h"
#include "AliVParticle.h"
#include "AliMCParticle.h"
#include "AliMCEvent.h"
#include "AliAnalysisHelperJetTasks.h"
#include "AliAODMCParticle.h"

using std::cout;
using std::endl;

ClassImp(AliMuonEffMC)

//________________________________________________________________________
AliMuonEffMC::AliMuonEffMC() :
  AliAnalysisTaskSE(), fESD(0), fAOD(0), fMC(0), fStack(0), fCentrality(99), fZVertex(99), 
  fOutputList(0x0),fHEventStat(0), fHXsec(0), fHTrials(0), fHEvt(0x0), fIsMc(kTRUE), fIsPythia(kFALSE), fMDProcess(kFALSE), fPlotMode(0),
  fCentralityEstimator("V0M"), fNEtaBins(100), fNpTBins(50), fNCentBins(1), fNZvtxBins(1), fNPhiBins(12), 
  fHFPM(0x0), fHPP(0)
{
  // Constructor
  //DefineInput(0, TChain::Class());
  //DefineOutput(1, TList::Class());
  for(Int_t i=0; i<2; i++)
  {
    fHDetRecMu[i] = NULL;
    fHDetRecMuFPM[i] = NULL;
    fHDetRecMuPP[i] = NULL;
    fHMuFPM[i] = NULL;
    fHMuPP[i] = NULL;
  }
  for(Int_t i=0; i<2; i++)
  {
    for(Int_t j=0; j<3; j++)
    {
      fHMuMotherRecPt[i][j] = NULL;
      fHMuMotherRecPhi[i][j] = NULL;
      fHMuMotherRecEta[i][j] = NULL;
       for(Int_t k=0; k<3; k++)
      {
	fHMuMohterPtDifRec[i][j][k] = NULL;
	fHMuMohterPhiDifRec[i][j][k] = NULL;
	fHMuMohterEtaDifRec[i][j][k] = NULL;
      }
    }
  }
  for(Int_t i=0; i<3; i++)
  {
    fHZvRv[i] = NULL;
    fHXvYv[i] = NULL;
  }
}

//________________________________________________________________________
AliMuonEffMC::AliMuonEffMC(const char *name) :
  AliAnalysisTaskSE(name), fESD(0), fAOD(0), fMC(0), fStack(0), fCentrality(99), fZVertex(99), 
  fOutputList(0x0),fHEventStat(0), fHXsec(0), fHTrials(0), fHEvt(0x0), fIsMc(kTRUE), fIsPythia(kFALSE), fMDProcess(kFALSE), fPlotMode(0),
  fCentralityEstimator("V0M"), fNEtaBins(100), fNpTBins(50), fNCentBins(1), fNZvtxBins(1), fNPhiBins(12), 
  fHFPM(0x0), fHPP(0)
{
  // Constructor
  for(Int_t i=0; i<2; i++)
  {
    fHDetRecMu[i] = NULL;
    fHDetRecMuFPM[i] = NULL;
    fHDetRecMuPP[i] = NULL;
    fHMuFPM[i] = NULL;
    fHMuPP[i] = NULL;
  }
  for(Int_t i=0; i<2; i++)
  {
    for(Int_t j=0; j<3; j++)
    {
      fHMuMotherRecPt[i][j] = NULL;
      fHMuMotherRecPhi[i][j] = NULL;
      fHMuMotherRecEta[i][j] = NULL;
      for(Int_t k=0; k<3; k++)
      {
	fHMuMohterPtDifRec[i][j][k] = NULL;
	fHMuMohterPhiDifRec[i][j][k] = NULL;
	fHMuMohterEtaDifRec[i][j][k] = NULL;
      }
    }
  }
  for(Int_t i=0; i<3; i++)
  {
    fHZvRv[i] = NULL;
    fHXvYv[i] = NULL;
  }
  DefineInput(0, TChain::Class());
  DefineOutput(1, TList::Class());
}

//________________________________________________________________________
AliMuonEffMC::~AliMuonEffMC()
{
  //Destructor
  if(fOutputList) delete fOutputList;
}

//________________________________________________________________________
void AliMuonEffMC::UserCreateOutputObjects()
{
  // Create histograms
  // Called once (per slave on PROOF!)
  fOutputList = new TList();
  fOutputList->SetOwner(1);

  fHEventStat = new TH1D("fHEventStat","Event statistics for analysis",18,0,18);
  fHEventStat->GetXaxis()->SetBinLabel(1,"Event");
  fHEventStat->GetXaxis()->SetBinLabel(2,"SelectedEvent");
  fHEventStat->GetXaxis()->SetBinLabel(3,"File");
  fHEventStat->GetXaxis()->SetBinLabel(4,"fSPHighpt");  //!Global Trigger Single plus High p_T
  fHEventStat->GetXaxis()->SetBinLabel(5,"fSPAllpt");   //!Global Trigger Single plus All p_T
  fHEventStat->GetXaxis()->SetBinLabel(6,"fSMLowpt");   //!Global Trigger Single minus Low p_T
  fHEventStat->GetXaxis()->SetBinLabel(7,"fSMHighpt");  //!Global Trigger Single minus High p_T
  fHEventStat->GetXaxis()->SetBinLabel(8,"fSMAllpt");   //!Global Trigger Single minus All p_T
  fHEventStat->GetXaxis()->SetBinLabel(9,"fSULowpt");   //!Global Trigger Single undefined Low p_T
  fHEventStat->GetXaxis()->SetBinLabel(10,"fSUHighpt"); //!Global Trigger Single undefined High p_T
  fHEventStat->GetXaxis()->SetBinLabel(11,"fSUAllpt");  //!Global Trigger Single undefined All p_T
  fHEventStat->GetXaxis()->SetBinLabel(12,"fUSLowpt");  //!Global Trigger UnlikeSign pair Low p_T
  fHEventStat->GetXaxis()->SetBinLabel(13,"fUSHighpt"); //!Global Trigger UnlikeSign pair High p_T
  fHEventStat->GetXaxis()->SetBinLabel(14,"fUSAllpt");  //!Global Trigger UnlikeSign pair All p_T
  fHEventStat->GetXaxis()->SetBinLabel(15,"fLSLowpt");  //!Global Trigger LikeSign pair pair Low p_T
  fHEventStat->GetXaxis()->SetBinLabel(16,"fLSHighpt"); //!Global Trigger LikeSign pair pair High p_T
  fHEventStat->GetXaxis()->SetBinLabel(17,"fLSAllpt");  //!Global Trigger LikeSign pair pair All p_T
  fHEventStat->GetXaxis()->SetBinLabel(18,"fSPLowpt");   //!Global Trigger Single plus Low p_T
  fOutputList->Add(fHEventStat);

  if(fIsPythia)
  {
    fHXsec = new TH1F("fHXsec", "Cross section from pyxsec.root", 1, 0, 1);
    fHXsec->GetXaxis()->SetBinLabel(1,"<#sigma>");
    fOutputList->Add(fHXsec);
    
    fHTrials = new TH1F("fHTrials", "Number of Trials", 1, 0, 1);
    fHTrials->GetXaxis()->SetBinLabel(1,"#sum{ntrials}");
    fOutputList->Add(fHTrials);  
  }

  fHEvt = new TH2F("fHEvt", "Event-level variables; Zvtx; Cent", 30, -15, 15, 103, -2, 101);
  fOutputList->Add(fHEvt);

  // Define THn's
  Int_t iTrackBinFPM[7];
  Double_t* trackBinsFPM[7];
  const char* trackAxisTitleFPM[7];

  Int_t iTrackBinPP[7];
  Double_t* trackBinsPP[7];
  const char* trackAxisTitlePP[7];

  Int_t iTrackBinMu[7];
  Double_t* trackBinsMu[7];
  const char* trackAxisTitleMu[7];

  Int_t iTrackBinMuFPM[6];
  Double_t* trackBinsMuFPM[6];
  const char* trackAxisTitleMuFPM[6];

  Int_t iTrackBinMuPP[6];
  Double_t* trackBinsMuPP[6];
  const char* trackAxisTitleMuPP[6];

  // eta
  Double_t etaBins[fNEtaBins+1];
  for(Int_t i=0; i<=fNEtaBins; i++) { etaBins[i] = (Double_t)(-5.0 + 10.0/fNEtaBins*i); }
  iTrackBinFPM[0] = fNEtaBins;
  trackBinsFPM[0] = etaBins;
  trackAxisTitleFPM[0] = "#eta";

  iTrackBinPP[0] = fNEtaBins;
  trackBinsPP[0] = etaBins;
  trackAxisTitlePP[0] = "#eta";

  iTrackBinMu[0] = fNEtaBins;
  trackBinsMu[0] = etaBins;
  trackAxisTitleMu[0] = "#eta";

  iTrackBinMuFPM[0] = fNEtaBins;
  trackBinsMuFPM[0] = etaBins;
  trackAxisTitleMuFPM[0] = "#eta";

  iTrackBinMuPP[0] = fNEtaBins;
  trackBinsMuPP[0] = etaBins;
  trackAxisTitleMuPP[0] = "#eta";

  // p_T
  Double_t pTBins[fNpTBins+1];
  for(Int_t i=0; i<=fNpTBins; i++) { pTBins[i] = (Double_t)(5.0/fNpTBins * i); }
  iTrackBinFPM[1] = fNpTBins;
  trackBinsFPM[1] = pTBins;
  trackAxisTitleFPM[1] = "p_{T} (GeV/c)";

  iTrackBinPP[1] = fNpTBins;
  trackBinsPP[1] = pTBins;
  trackAxisTitlePP[1] = "p_{T} (GeV/c)";

  iTrackBinMu[1] = fNpTBins;
  trackBinsMu[1] = pTBins;
  trackAxisTitleMu[1] = "p_{T} (GeV/c)";

  iTrackBinMuFPM[1] = fNpTBins;
  trackBinsMuFPM[1] = pTBins;
  trackAxisTitleMuFPM[1] = "p_{T} (GeV/c)";

  iTrackBinMuPP[1] = fNpTBins;
  trackBinsMuPP[1] = pTBins;
  trackAxisTitleMuPP[1] = "p_{T} (GeV/c)";

  // centrality
  Double_t CentBins[fNCentBins+1];
  for (Int_t i=0; i<=fNCentBins; i++) { CentBins[i] = (Double_t)(100.0/fNCentBins * i); }
  iTrackBinFPM[2] = fNCentBins;
  trackBinsFPM[2] = CentBins;
  trackAxisTitleFPM[2] = "Cent";

  iTrackBinPP[2] = fNCentBins;
  trackBinsPP[2] = CentBins;
  trackAxisTitlePP[2] = "Cent";

  iTrackBinMu[2] = fNCentBins;
  trackBinsMu[2] = CentBins;
  trackAxisTitleMu[2] = "Cent";

  // Z-vertex
  Double_t ZvtxBins[fNZvtxBins+1];
  for(Int_t i=0; i<=fNZvtxBins; i++) { ZvtxBins[i] = (Double_t)(-10.0 + 20.0/fNZvtxBins * i); }
  iTrackBinFPM[3] = fNZvtxBins;
  trackBinsFPM[3] = ZvtxBins;
  trackAxisTitleFPM[3] = "Zvtx";

  iTrackBinPP[3] = fNZvtxBins;
  trackBinsPP[3] = ZvtxBins;
  trackAxisTitlePP[3] = "Zvtx";

  iTrackBinMu[3] = fNZvtxBins;
  trackBinsMu[3] = ZvtxBins;
  trackAxisTitleMu[3] = "Zvtx";

  // phi
  Double_t phiBins[fNPhiBins+1];
  for(Int_t i=0; i<=fNPhiBins; i++) { phiBins[i] = (Double_t)(TMath::TwoPi()/fNPhiBins * i); }
  iTrackBinFPM[4] = fNPhiBins;
  trackBinsFPM[4] = phiBins;
  trackAxisTitleFPM[4] = "#phi";

  iTrackBinPP[4] = fNPhiBins;
  trackBinsPP[4] = phiBins;
  trackAxisTitlePP[4] = "#phi";

  iTrackBinMu[4] = fNPhiBins;
  trackBinsMu[4] = phiBins;
  trackAxisTitleMu[4] = "#phi";

  iTrackBinMuFPM[2] = fNPhiBins;
  trackBinsMuFPM[2] = phiBins;
  trackAxisTitleMuFPM[2] = "#phi";

  iTrackBinMuPP[2] = fNPhiBins;
  trackBinsMuPP[2] = phiBins;
  trackAxisTitleMuPP[2] = "#phi";

  // charge
  Double_t chargeBins[4] = {-10.0, -0.5, 0.5, 10.0};
  iTrackBinFPM[5] = 3;
  trackBinsFPM[5] = chargeBins;
  trackAxisTitleFPM[5] = "charge";

  iTrackBinPP[5] = 3;
  trackBinsPP[5] = chargeBins;
  trackAxisTitlePP[5] = "charge";

  iTrackBinMu[5] = 3;
  trackBinsMu[5] = chargeBins;
  trackAxisTitleMu[5] = "charge";

  iTrackBinMuFPM[3] = 3;
  trackBinsMuFPM[3] = chargeBins;
  trackAxisTitleMuFPM[3] = "charge";

  iTrackBinMuPP[3] = 3;
  trackBinsMuPP[3] = chargeBins;
  trackAxisTitleMuPP[3] = "charge";

  // Muon type
  Double_t MuSpeciesBins[4] = {0.0, 1.0, 2.0, 3.0};
  iTrackBinMu[6] = 3;
  trackBinsMu[6] = MuSpeciesBins;
  trackAxisTitleMu[6] = "MUON type";

  iTrackBinMuFPM[4] = 3;
  trackBinsMuFPM[4] = MuSpeciesBins;
  trackAxisTitleMuFPM[4] = "MUON type";

  iTrackBinMuPP[4] = 3;
  trackBinsMuPP[4] = MuSpeciesBins;
  trackAxisTitleMuPP[4] = "MUON type";

  // FPM species
  Double_t FPMSpecies[8] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0};
  iTrackBinFPM[6] = 7;
  trackBinsFPM[6] = FPMSpecies;
  trackAxisTitleFPM[6] = "FPM species";

  iTrackBinMuFPM[5] = 7;
  trackBinsMuFPM[5] = FPMSpecies;
  trackAxisTitleMuFPM[5] = "FPM species";

  // First Physical Primary  species
  Double_t PPMSpecies[8] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0};
  iTrackBinPP[6] = 7;
  trackBinsPP[6] = PPMSpecies;
  trackAxisTitlePP[6] = "PPM species";

  iTrackBinMuPP[5] = 7;
  trackBinsMuPP[5] = PPMSpecies;
  trackAxisTitleMuPP[5] = "PPM species";
 
  const char* MuonType[3] = {"Prim","Sec","Had"};
  const char *MuPt[3] = {"0005","0520","2040"};
  const char *cutlabel[2] = {"cut1", "cut2"};

  if(fIsMc)
  {
    // THn for tracking efficiency
    if(fPlotMode==0)
    {
      fHFPM = new THnF("fHFPM", "", 7, iTrackBinFPM, 0, 0);
      for (Int_t i=0; i<7; i++)
      {
	fHFPM->SetBinEdges(i, trackBinsFPM[i]);
	fHFPM->GetAxis(i)->SetTitle(trackAxisTitleFPM[i]);
      }
      fOutputList->Add(fHFPM); 
      
      fHPP = new THnF("fHPP", "", 7, iTrackBinPP, 0, 0);
      for (Int_t i=0; i<7; i++)
      {
	fHPP->SetBinEdges(i, trackBinsPP[i]);
	fHPP->GetAxis(i)->SetTitle(trackAxisTitlePP[i]);
      }
      fOutputList->Add(fHPP); 
    }

    for(Int_t j=0; j<2; j++)
    {
      if(fPlotMode==1)
      {
	fHDetRecMu[j] = new THnF(Form("fHDetRecMu_%s",cutlabel[j]),"", 7, iTrackBinMu, 0, 0);
	for (Int_t i=0; i<7; i++)
	{
	  fHDetRecMu[j]->SetBinEdges(i, trackBinsMu[i]);
	  fHDetRecMu[j]->GetAxis(i)->SetTitle(trackAxisTitleMu[i]);
	}
	fOutputList->Add(fHDetRecMu[j]); 
      }
      if(fPlotMode==2)
      {	
	fHDetRecMuFPM[j] = new THnF(Form("fHDetRecMuFPM_%s",cutlabel[j]),"", 6, iTrackBinMuFPM, 0, 0);
	for (Int_t i=0; i<6; i++)
	{
	  fHDetRecMuFPM[j]->SetBinEdges(i, trackBinsMuFPM[i]);
	  fHDetRecMuFPM[j]->GetAxis(i)->SetTitle(trackAxisTitleMuFPM[i]);
	}
	fOutputList->Add(fHDetRecMuFPM[j]); 

	fHDetRecMuPP[j] = new THnF(Form("fHDetRecMuPP_%s",cutlabel[j]),"", 6, iTrackBinMuPP, 0, 0);
	for (Int_t i=0; i<6; i++)
	{
	  fHDetRecMuPP[j]->SetBinEdges(i, trackBinsMuPP[i]);
	  fHDetRecMuPP[j]->GetAxis(i)->SetTitle(trackAxisTitleMuPP[i]);
	}
	fOutputList->Add(fHDetRecMuPP[j]); 
      }
      if(fPlotMode==3)
      {
	fHMuFPM[j] = new THnF(Form("fHMuFPM_%s",cutlabel[j]),"", 6, iTrackBinMuFPM, 0, 0);
	for (Int_t i=0; i<6; i++)
	{
	  fHMuFPM[j]->SetBinEdges(i, trackBinsMuFPM[i]);
	  fHMuFPM[j]->GetAxis(i)->SetTitle(trackAxisTitleMuFPM[i]);
	}
	fOutputList->Add(fHMuFPM[j]); 

	fHMuPP[j] = new THnF(Form("fHMuPP_%s",cutlabel[j]),"", 6, iTrackBinMuPP, 0, 0);
	for (Int_t i=0; i<6; i++)
	{
	  fHMuPP[j]->SetBinEdges(i, trackBinsMuPP[i]);
	  fHMuPP[j]->GetAxis(i)->SetTitle(trackAxisTitleMuPP[i]);
	}
	fOutputList->Add(fHMuPP[j]); 
      }
    }

    if(fMDProcess)
    {
      for(Int_t i=0; i<2; i++)
      {
	for(Int_t j=0; j<3; j++)
	{
	  fHMuMotherRecPt[i][j] = new TH2F(Form("fHMuMotherRecPt_%s_%s",cutlabel[i], MuonType[j]),";p_{T,muon}^{rec} (GeV/c);p_{T,mother}^{Truth} (GeV/c);",500, 0, 50, 500, 0, 50);
	  fOutputList->Add(fHMuMotherRecPt[i][j]);
	  fHMuMotherRecPhi[i][j] = new TH2F(Form("fHMuMotherRecPhi_%s_%s",cutlabel[i], MuonType[j]),";#phi_{rec};mother #phi;",100, 0, TMath::TwoPi(), 100, 0, TMath::TwoPi());
	  fOutputList->Add(fHMuMotherRecPhi[i][j]);
	  fHMuMotherRecEta[i][j] = new TH2F(Form("fHMuMotherRecEta_%s_%s",cutlabel[i], MuonType[j]),";#eta_{rec};mother #eta;",100, -5., -1., 100, -5., -1.);
	  fOutputList->Add(fHMuMotherRecEta[i][j]);

	  for(Int_t k=0; k<3; k++)
	  {
	    fHMuMohterPtDifRec[i][j][k] = new TH1F(Form("fHMuMohterPtDifRec_%s_%s_%s",cutlabel[i], MuonType[j], MuPt[k]),";#Delta#phi",200, -10.0, 10.0);
	    fOutputList->Add(fHMuMohterPtDifRec[i][j][k]);

	    fHMuMohterPhiDifRec[i][j][k] = new TH1F(Form("fHMuMohterPhiDifRec_%s_%s_%s",cutlabel[i], MuonType[j], MuPt[k]),";#Delta#phi",100, -1.0*TMath::Pi(), TMath::Pi());
	    fOutputList->Add(fHMuMohterPhiDifRec[i][j][k]);

	    fHMuMohterEtaDifRec[i][j][k] = new TH1F(Form("fHMuMohterEtaDifRec_%s_%s_%s",cutlabel[i], MuonType[j], MuPt[k]),";#Delta#eta",100, -5.0, 5.0);
	    fOutputList->Add(fHMuMohterEtaDifRec[i][j][k]);
	  }
	}
      }
      for(Int_t i = 0; i<3; i++)
      {
	fHZvRv[i] = new TH2F(Form("fHZvRv_%s",MuonType[i]), "", 300, -500, 100, 200, 0, 800);
	fOutputList->Add(fHZvRv[i]);
      	fHXvYv[i] = new TH2F(Form("fHXvYv_%s",MuonType[i]), "", 200, -500, 500, 200, -500, 500);
	fOutputList->Add(fHXvYv[i]);
      }	
    }
  }
  else
  {
    for(Int_t j=0; j<2; j++)
    {
      fHDetRecMu[j] = new THnF(Form("fHDetRecMu_%s",cutlabel[j]),"", 7, iTrackBinMu, 0, 0);
      for (Int_t i=0; i<7; i++)
      {
	fHDetRecMu[j]->SetBinEdges(i, trackBinsMu[i]);
	fHDetRecMu[j]->GetAxis(i)->SetTitle(trackAxisTitleMu[i]);
      }
      fOutputList->Add(fHDetRecMu[j]); 
    }
  }
  PostData(1, fOutputList);
}

//________________________________________________________________________
Bool_t AliMuonEffMC::Notify()
{
  // Implemented Notify() to read the cross sections
  // and number of trials from pyxsec.root
  if(fIsPythia)
  {
    fHEventStat->Fill(2.5);
    
    TTree *tree = AliAnalysisManager::GetAnalysisManager()->GetTree();
    Float_t xsection = 0;
    Float_t ftrials  = 1;
    
    if(tree){
      TFile *curfile = tree->GetCurrentFile();
      if (!curfile) {
	Error("Notify","No current file");
	return kFALSE;
      }

      AliAnalysisHelperJetTasks::PythiaInfoFromFile(curfile->GetName(),xsection,ftrials);
      fHXsec->Fill("<#sigma>",xsection);
      fHTrials->Fill("#sum{ntrials}",ftrials);
    }  
  }
  return kTRUE;
}
//________________________________________________________________________
void AliMuonEffMC::UserExec(Option_t *)
{
  // Main loop, Called for each event
  Int_t ntrks = 0; // number of tracks in an event

  if(((TString)InputEvent()->IsA()->GetName())=="AliAODEvent")
  {
    fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
    if (!fAOD) { AliError("AOD event not found. Nothing done!"); return; }
    ntrks = fAOD->GetNumberOfTracks();
  }
  else
  {
    fESD = dynamic_cast<AliESDEvent*>(InputEvent());
    if (!fESD) { AliError("ESD event not found. Nothing done!"); return; }
    ntrks = fESD->GetNumberOfMuonTracks();
  }
       
  fHEventStat->Fill(0.5);
  if(fIsMc)
  {
    fMC = MCEvent();
    if (!fMC) { AliError("MC event not avaliable."); return; }
    fStack = fMC->Stack();
  }

  // Centrality, vertex, other event variables...
  if(fAOD)
  {
    const AliAODVertex* vertex = fAOD->GetPrimaryVertex();
    fZVertex = vertex->GetZ();
    if(fAOD->GetCentrality())  fCentrality = fAOD->GetCentrality()->GetCentralityPercentile(fCentralityEstimator);
  }
  else if(fESD)
  {
    const AliESDVertex* vertex = fESD->GetPrimaryVertex();
    fZVertex = vertex->GetZ();
    if(fESD->GetCentrality()) fCentrality = fESD->GetCentrality()->GetCentralityPercentile(fCentralityEstimator);
  }  

  if ((fESD && !VertexOk(fESD)) || (fAOD && !VertexOk(fAOD))) { 
    //AliInfo(Form("Event REJECTED. z = %.1f", fZVertex));
    return; 
  }
  if (fCentrality > 100. || fCentrality < -1.5) { 
    //AliInfo(Form("Event REJECTED. fCentrality = %.1f", fCentrality));
    return; 
  }
 
  if(fCentrality < 0) fCentrality = 0.5; //ad hoc centrality for pp
  // Fill Event histogram
  fHEvt->Fill(fZVertex, fCentrality);
  fHEventStat->Fill(1.5);
 
  ULong64_t trigword = 0;
  if(fAOD) trigword=fAOD->GetTriggerMask();
  else if(fESD) trigword=fESD->GetTriggerMask();
 
  if (trigword & 0x01) fHEventStat->Fill(17.5);
  if (trigword & 0x02) fHEventStat->Fill(3.5);
  if (trigword & 0x04) fHEventStat->Fill(4.5);
  if (trigword & 0x08) fHEventStat->Fill(5.5);      
  if (trigword & 0x010) fHEventStat->Fill(6.5);
  if (trigword & 0x020) fHEventStat->Fill(7.5);
  if (trigword & 0x040) fHEventStat->Fill(8.5);
  if (trigword & 0x080) fHEventStat->Fill(9.5);
  if (trigword & 0x100) fHEventStat->Fill(10.5);
  if (trigword & 0x200) fHEventStat->Fill(11.5);
  if (trigword & 0x400) fHEventStat->Fill(12.5);
  if (trigword & 0x800) fHEventStat->Fill(13.5);
  if (trigword & 0x1000) fHEventStat->Fill(14.5);
  if (trigword & 0x2000) fHEventStat->Fill(15.5);
  if (trigword & 0x4000) fHEventStat->Fill(16.5);

  if(fIsMc && fPlotMode==0)
  {
    Double_t PPEta = 0.0;
    Double_t PPPt = 0.0;
    Double_t PPPhi = 0.0;
    Double_t PPCharge = 0.0;
    Double_t PPSpecies = 0.0;
    
    Double_t FPMEta = 0.0;
    Double_t FPMPt = 0.0;
    Double_t FPMPhi = 0.0;
    Double_t FPMCharge = 0.0;
    Double_t FPMSpecies = 0.0;

    // generated level loop
    for (Int_t ipart=0; ipart<fMC->GetNumberOfTracks(); ipart++)
    {
      if(fESD)
      {
	AliMCParticle *McParticle  = (AliMCParticle*)fMC->GetTrack(ipart);
	if(!fMC->IsPhysicalPrimary(ipart) || McParticle->Charge()==0) continue;

	PPEta = McParticle->Eta();
	PPPt = McParticle->Pt();
	PPPhi = McParticle->Phi();
	PPCharge = McParticle->Charge();
	PPSpecies = GetSpecies(McParticle->PdgCode());

	AliMCParticle *FPMParticle  = (AliMCParticle*)fMC->GetTrack(GetFirstPrimaryMother(ipart));
	if(PPSpecies==1.5 || PPSpecies==2.5 || PPSpecies==4.5)
	{
	  if(ipart < fStack->GetNprimary())
	  {
	    FPMEta = PPEta;
	    FPMPt = PPPt;
	    FPMPhi = PPPhi;
	    FPMCharge = PPCharge;
	    FPMSpecies = PPSpecies;
	  }
	  else
	  {
	    FPMEta = FPMParticle->Eta();
	    FPMPt = FPMParticle->Pt();
	    FPMPhi = FPMParticle->Phi();
	    FPMCharge = FPMParticle->Charge();
	    FPMSpecies = GetSpecies(FPMParticle->PdgCode());
	  }
	}
	else
	{
	  FPMEta = FPMParticle->Eta();
	  FPMPt = FPMParticle->Pt();
	  FPMPhi = FPMParticle->Phi();
	  FPMCharge = FPMParticle->Charge();
	  FPMSpecies = GetSpecies(FPMParticle->PdgCode());
	}
      }
      if(fAOD)
      {
	AliAODMCParticle *AodMcParticle  = (AliAODMCParticle*)fMC->GetTrack(ipart);
	if(!fMC->IsPhysicalPrimary(ipart) || AodMcParticle->Charge()==0) continue;

	PPEta = AodMcParticle->Eta();
	PPPt = AodMcParticle->Pt();
	PPPhi = AodMcParticle->Phi();
	PPCharge = AodMcParticle->Charge();
	PPSpecies = GetSpecies(AodMcParticle->PdgCode());

	AliAODMCParticle *AODFPMParticle  = (AliAODMCParticle*)fMC->GetTrack(GetFirstPrimaryMother(ipart));
	if(PPSpecies==1.5 || PPSpecies==2.5)
	{
	  if(ipart < fStack->GetNprimary())
	  {
	    FPMEta = PPEta;
	    FPMPt = PPPt;
	    FPMPhi = PPPhi;
	    FPMCharge = PPCharge;
	    FPMSpecies = PPSpecies;
	  }
	  else
	  {
	    FPMEta = AODFPMParticle->Eta();
	    FPMPt = AODFPMParticle->Pt();
	    FPMPhi = AODFPMParticle->Phi();
	    FPMCharge = AODFPMParticle->Charge();
	    FPMSpecies = GetSpecies(AODFPMParticle->PdgCode());
	  }
	}
	else
	{
	  FPMEta = AODFPMParticle->Eta();
	  FPMPt = AODFPMParticle->Pt();
	  FPMPhi = AODFPMParticle->Phi();
	  FPMCharge = AODFPMParticle->Charge();
	  FPMSpecies = GetSpecies(AODFPMParticle->PdgCode());
	}
      }
      Double_t fillArrayPP[7] = { PPEta, PPPt, fCentrality, fZVertex, PPPhi, PPCharge, PPSpecies };
      fHPP->Fill(fillArrayPP);
      Double_t fillArrayFPM[7] = { FPMEta, FPMPt, fCentrality, fZVertex, FPMPhi, FPMCharge, FPMSpecies };
      fHFPM->Fill(fillArrayFPM);
    } // end of generated level loop
  }
  
  // reconstructed level loop
  for (Int_t iTrack = 0; iTrack<ntrks; iTrack++)
  {
    Int_t label = 0;
    Int_t CutType = 0;
    Double_t MuonType = 0.0;
    Double_t FPMSpecies = 0.0;
    Double_t PPSpecies = 0.0;

    Double_t RecEta = 0.0;
    Double_t RecPt = 0.0;
    Double_t RecPhi = 0.0;
    Double_t RecCharge = 0.0;

    Double_t MuFPMEta = 0.0;
    Double_t MuFPMPt = 0.0;
    Double_t MuFPMPhi = 0.0;
    Double_t MuFPMCharge = 0.0;

    Double_t MuPPEta = 0.0;
    Double_t MuPPPt = 0.0;
    Double_t MuPPPhi = 0.0;
    Double_t MuPPCharge = 0.0;

    Double_t motherXv = 0.0;
    Double_t motherYv = 0.0;
    Double_t motherZv = 0.0;
    
    if(fESD)
    {
      AliESDMuonTrack* muonTrack = fESD->GetMuonTrack(iTrack);
      if(muonTrack)
      {
	CutType = GetMUONCutType(*muonTrack);
	if(CutType > 1) continue;
	RecEta = muonTrack->Eta();
        RecPt = muonTrack->Pt();
	RecPhi = muonTrack->Phi();
	RecCharge = muonTrack->Charge();
        label =  TMath::Abs(muonTrack->GetLabel());
	if (label>=fMC->GetNumberOfTracks()) {
          AliError(Form("Label %d larger than number of particles on stack %d\n",label,fMC->GetNumberOfTracks()));
          continue;
	}
      }
    }
    else if(fAOD)
    {
      AliAODTrack* muonTrack = (AliAODTrack*)fAOD->GetTrack(iTrack);
      if(muonTrack)
      {
        if(!(muonTrack->IsMuonTrack())) continue;
	CutType =  GetMUONCutType(*muonTrack);
	if(CutType > 1) continue;
	RecEta = muonTrack->Eta();
        RecPt = muonTrack->Pt();
	RecPhi = muonTrack->Phi();
	RecCharge = muonTrack->Charge();
        label =  TMath::Abs(muonTrack->GetLabel());
        if (label>=fMC->GetNumberOfTracks()) {
          AliError(Form("Label %d larger than number of particles on stack %d\n",label,fMC->GetNumberOfTracks()));
          continue;
        }
      }
    }
    
    if(fIsMc)
    {
      AliMCParticle *McParticle  = (AliMCParticle*)fMC->GetTrack(label);
      MuonType = GetMuonTrackType(*McParticle);
      
      if(GetFirstPrimaryMother(label) < 0) continue;
      AliMCParticle *MuFPMParticle  = (AliMCParticle*)fMC->GetTrack(GetFirstPrimaryMother(label));
      MuFPMEta = MuFPMParticle->Eta();
      MuFPMPt = MuFPMParticle->Pt();
      MuFPMPhi = MuFPMParticle->Phi();
      MuFPMCharge = MuFPMParticle->Charge();
      FPMSpecies = GetSpecies(MuFPMParticle->PdgCode());
      
      if(GetFirstPPMother(label) < 0) continue;
      AliMCParticle *MuPPParticle  = (AliMCParticle*)fMC->GetTrack(GetFirstPPMother(label));
      MuPPEta = MuPPParticle->Eta();
      MuPPPt = MuPPParticle->Pt();
      MuPPPhi = MuPPParticle->Phi();
      MuPPCharge = MuPPParticle->Charge();
      PPSpecies = GetSpecies(MuPPParticle->PdgCode());
      
      if(MuFPMParticle->GetFirstDaughter() > 0)
      {
	AliMCParticle *DaughtParticle  = (AliMCParticle*)fMC->GetTrack(MuFPMParticle->GetFirstDaughter());
	motherXv = DaughtParticle->Xv();
	motherYv = DaughtParticle->Yv();
	motherZv = DaughtParticle->Zv();
      }
  
      if(fPlotMode==1)
      {
	Double_t fillArrayDetRecMu[7] = { RecEta, RecPt, fCentrality, fZVertex, RecPhi, RecCharge, MuonType };
	fHDetRecMu[CutType]->Fill(fillArrayDetRecMu);
      }
      if(fPlotMode==2)
      {	
	Double_t fillArrayDetRecMuFPM[6] = { RecEta, RecPt, RecPhi, RecCharge, MuonType, FPMSpecies };
	fHDetRecMuFPM[CutType]->Fill(fillArrayDetRecMuFPM);
      
	Double_t fillArrayDetRecMuPP[6] = { RecEta, RecPt, RecPhi, RecCharge, MuonType, PPSpecies };
	fHDetRecMuPP[CutType]->Fill(fillArrayDetRecMuPP);
      }
      if(fPlotMode==3)
      {
	Double_t fillArrayMuFPM[6] = { MuFPMEta, MuFPMPt, MuFPMPhi, MuFPMCharge, MuonType, FPMSpecies };
	fHMuFPM[CutType]->Fill(fillArrayMuFPM);
	
	Double_t fillArrayMuPP[6] = { MuPPEta, MuPPPt, MuPPPhi, MuPPCharge, MuonType, PPSpecies };
	fHMuPP[CutType]->Fill(fillArrayMuPP);
      }

      // mother-daughter kinematic relation
      if(fMDProcess)
      {
	if(MuFPMParticle->GetFirstDaughter() > 0)
	{
	  if(CutType==0 || CutType==1)
	  {
	    fHZvRv[(Int_t)(MuonType - 0.5)]->Fill(motherZv, TMath::Sqrt(motherXv*motherXv + motherYv*motherYv));
	    fHXvYv[(Int_t)(MuonType - 0.5)]->Fill(motherXv, motherYv);
	  }
	}
	MDProcess((Int_t)(MuonType - 0.5), (Int_t)(CutType - 0.5), RecPt, RecPhi, RecEta, MuFPMPt, MuFPMPhi, MuFPMEta);
      }
    }// end of MC process
  }// end of reconstructed loop
  PostData(1, fOutputList);
  return;
}

//________________________________________________________________________
void AliMuonEffMC::Terminate(Option_t *)
{
  // Draw result to the screen
  // Called once at the end of the query
}
//________________________________________________________________________
Bool_t AliMuonEffMC::VertexOk(TObject* obj) const
{
  // Modified from AliAnalyseLeadingTrackUE::VertexSelection()
 
  Int_t nContributors  = 0;
  Double_t zVertex     = 999;
  TString name("");
 
  if (obj->InheritsFrom("AliESDEvent")) {
    AliESDEvent* esdevt = (AliESDEvent*) obj;
    const AliESDVertex* vtx = esdevt->GetPrimaryVertex();
    if (!vtx)
      return 0;
    nContributors = vtx->GetNContributors();
    zVertex       = vtx->GetZ();
    name          = vtx->GetName();
  }
  else if (obj->InheritsFrom("AliAODEvent")) {
    AliAODEvent* aodevt = (AliAODEvent*) obj;
    if (aodevt->GetNumberOfVertices() < 1)
      return 0;
    const AliAODVertex* vtx = aodevt->GetPrimaryVertex();
    nContributors = vtx->GetNContributors();
    zVertex       = vtx->GetZ();
    name          = vtx->GetName();
  }
 
  // Reject if TPC-only vertex
  if (name.CompareTo("TPCVertex")==0)
    return kFALSE;
 
  // Check # contributors and range...
  if( nContributors < 1 || TMath::Abs(zVertex) > 10 ) {
    return kFALSE;
  }
 
  return kTRUE;
}

//________________________________________________________________________
Int_t AliMuonEffMC::GetMUONCutType(AliESDMuonTrack &track)
{
  Int_t cutNum = 4;
  Double_t thetaTrackAbsEnd = TMath::ATan(track.GetRAtAbsorberEnd()/505.) * TMath::RadToDeg();
  Double_t eta = track.Eta();

  if(track.ContainTrackerData()) cutNum = 3;
  if(track.ContainTrackerData() && eta > -4. && -2.5 > eta) cutNum = 2;
  if(track.ContainTrackerData() && eta > -4. && -2.5 > eta && thetaTrackAbsEnd > 2. &&  10. > thetaTrackAbsEnd) cutNum =1;
  if(track.ContainTrackerData() && eta > -4. && -2.5 > eta && thetaTrackAbsEnd > 2. &&  10. > thetaTrackAbsEnd && track.GetMatchTrigger() > 0) cutNum = 0;
  return cutNum;
}

//________________________________________________________________________
Int_t AliMuonEffMC::GetMUONCutType(AliAODTrack &track)
{
  Int_t cutNum = 4;
  Double_t thetaTrackAbsEnd = TMath::ATan(track.GetRAtAbsorberEnd()/505.) * TMath::RadToDeg();
  Double_t eta = track.Eta();

  if(track.IsMuonTrack()) cutNum = 3;
  if(track.IsMuonTrack() && eta > -4. && -2.5 > eta) cutNum = 2;
  if(track.IsMuonTrack() && eta > -4. && -2.5 > eta && thetaTrackAbsEnd > 2. &&  10. > thetaTrackAbsEnd) cutNum = 1;
  if(track.IsMuonTrack() && eta > -4. && -2.5 > eta && thetaTrackAbsEnd > 2. &&  10. > thetaTrackAbsEnd && track.GetMatchTrigger() > 0) cutNum = 0;
   
  return cutNum;
}

//________________________________________________________________________
Double_t AliMuonEffMC::GetMuonTrackType(AliMCParticle &track)
{
  if(track.GetMother() < fStack->GetNprimary() && track.PdgCode() == 13) return 0.5; 
  else if(track.GetMother() >= fStack->GetNprimary() && track.PdgCode() == 13) return 1.5;
  else return 2.5;
}

//________________________________________________________________________
Double_t AliMuonEffMC::GetSpecies(Int_t PdgCode)
{
  Int_t code = TMath::Abs(PdgCode);
  if(code==13) return 0.5;
  else if(code==211) return 1.5;
  else if(code==321) return 2.5;
  else if(code==411 || code==413 || code==421 || code==423 || code==431 || code==433 || code==10413 || code==10411 || code==10423 || code==10421 || code==10433 || code==10431 || code==20413 || code==415 || code==20423 || code==425 || code==20433 || code==435) return 3.5;
  else if(code==2212) return 4.5;
  else if(code==11) return 5.5;
  else return 6.5;
}

//________________________________________________________________________
void AliMuonEffMC::MDProcess(Int_t isprimary, Int_t cutNum, Double_t trackpt, Double_t trackphi, Double_t tracketa, Double_t motherpt, Double_t motherphi, Double_t mothereta)
{
  Int_t recptbin = -1;

  if((0. <= trackpt) && (trackpt < 0.5)) recptbin = 0;
  else if((0.5 <= trackpt) && (trackpt < 2.0)) recptbin = 1;
  else recptbin = 2;

  fHMuMotherRecPt[cutNum][isprimary]->Fill(trackpt, motherpt);
  fHMuMotherRecPhi[cutNum][isprimary]->Fill(trackphi, motherphi);
  fHMuMotherRecEta[cutNum][isprimary]->Fill(tracketa, mothereta);

  fHMuMohterPtDifRec[cutNum][isprimary][recptbin]->Fill(motherpt-trackpt);
  fHMuMohterPhiDifRec[cutNum][isprimary][recptbin]->Fill(deltaphi(motherphi-trackphi));
  fHMuMohterEtaDifRec[cutNum][isprimary][recptbin]->Fill(mothereta-tracketa);
}

//________________________________________________________________________
Double_t AliMuonEffMC::deltaphi(Double_t phi)
{
  if(phi < -1.0*TMath::Pi()) { return (phi + TMath::TwoPi()); }
  else if(phi > TMath::Pi()) { return (phi - TMath::TwoPi()); }
  else { return phi; }
}

//________________________________________________________________________
Int_t AliMuonEffMC::GetFirstPrimaryMother(Int_t muonlabel)
{
  if(fAOD) return 1;
  else if(fESD)
  {
    AliMCParticle *McParticle  = (AliMCParticle*)fMC->GetTrack(muonlabel);
    if(McParticle->GetMother()<fStack->GetNprimary()) return McParticle->GetMother();
    else
    {
      Int_t motherlabel = McParticle->GetMother();
      while(motherlabel > -1)
      {
	AliMCParticle *MotherParticle  = (AliMCParticle*)fMC->GetTrack(motherlabel);
	if(MotherParticle->GetMother()<fStack->GetNprimary()) break;
	else motherlabel = MotherParticle->GetMother();
      }
      AliMCParticle *FirstSecondaryMotherParticle  = (AliMCParticle*)fMC->GetTrack(motherlabel);
      return FirstSecondaryMotherParticle->GetMother();
    }
  }
  else return -1;
}

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