ROOT logo
#ifndef ALIANALYSISTASKMUONTREEBUILDER_CXX
#define ALIANALYSISTASKMUONTREEBUILDER_CXX

/* $Id$ */

#include "AliAnalysisTaskMuonTreeBuilder.h"
#include "AliMCEvent.h"
#include "AliESDMuonTrack.h"
#include "AliESDVertex.h"
#include "AliStack.h"
#include "AliHeader.h"
#include "AliESDHeader.h"
#include "TParticle.h"
#include "TLorentzVector.h"
#include "TFile.h"
#include "TH1I.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "TChain.h"
#include "AliESDtrack.h"
#include "AliLog.h"
#include "AliESDtrack.h"
#include "AliESDInputHandler.h"
#include "TCanvas.h"
#include "AliPhysicsSelection.h"
#include "AliMultiplicity.h"

//	Analysis task for muon-dimuon analysis
//	Works for real and MC events
//	Works with the corresponding AddTask macro
//	Includes a flag for physics selection
//	
//	author: L. Bianchi - Universita' & INFN Torino

ClassImp(AliAnalysisTaskMuonTreeBuilder)

//__________________________________________________________________________
AliAnalysisTaskMuonTreeBuilder::AliAnalysisTaskMuonTreeBuilder() :
  fNevt(0),
  fBeamEnergy(5000.),
  fOutput(0x0),
  fOutputTree(0x0),
  fIsMC(kFALSE),
  fIsSelected(kFALSE),
  fNumMuonTracks(0),
  fNumSPDTracklets(0),
  fNumContributors(0),
  fNumDimuons(0)
{
  //
  //Default ctor
  //
  for(Int_t i=0; i<45; i++){
    if(i<3) fVertex[i]=-666;
    if(i<10){
      fDCA[i]=-666;		
      fpT[i]=-666;		
      fE[i]=-666;			
      fpx[i]=-666;		
      fpy[i]=-666;		
      fpz[i]=-666;		
      fpxUncorr[i]=-666;		
      fpyUncorr[i]=-666;		
      fpzUncorr[i]=-666;		
      fy[i]=-666;			
      feta[i]=-666;		
      fphi[i]=-666;		
      fMatchTrig[i]=-666;		
      fTrackChi2[i]=-666;		
      fMatchTrigChi2[i]=-666;	
      fCharge[i]=-666;		
      fMuFamily[i]=-666;		
      fRAtAbsEnd[i]=-666;	
      fPDG[i]=-666;		
      fPDGmother[i]=-666;		
    }	
    
    fpTdimuon[i]=-666;		
    fpxdimuon[i]=-666;		
    fpydimuon[i]=-666;		
    fpzdimuon[i]=-666;		
    fydimuon[i]=-666;		
    fiMassdimuon[i]=-666;	
    fcostCS[i]=-666;		
    fcostHE[i]=-666;		
    fphiCS[i]=-666;		
    fphiHE[i]=-666;		
    fPDGdimu[i]=-666;		

    for(Int_t j=0; j<2; j++){fDimuonConstituent[i][j]=-666;}

  }
  snprintf(fTrigClass,100," ");

}
//___________________________________________________________________________
AliAnalysisTaskMuonTreeBuilder::AliAnalysisTaskMuonTreeBuilder(const Char_t* name) :
  AliAnalysisTaskSE(name),
  fNevt(0),
  fBeamEnergy(5000.),
  fOutput(0x0),
  fOutputTree(0x0),
  fIsMC(kFALSE),
  fIsSelected(kFALSE),
  fNumMuonTracks(0),
  fNumSPDTracklets(0),
  fNumContributors(0),
  fNumDimuons(0)
{
  //
  // Constructor. Initialization of Inputs and Outputs
  //
  Info("AliAnalysisTaskMuonTreeBuilder","Calling Constructor");

  for(Int_t i=0; i<45; i++){
    if(i<3) fVertex[i]=-666;
    if(i<10){
      fDCA[i]=-666;		
      fpT[i]=-666;		
      fE[i]=-666;			
      fpx[i]=-666;		
      fpy[i]=-666;		
      fpz[i]=-666;		
      fpxUncorr[i]=-666;		
      fpyUncorr[i]=-666;		
      fpzUncorr[i]=-666;		
      fy[i]=-666;			
      feta[i]=-666;		
      fphi[i]=-666;		
      fMatchTrig[i]=-666;		
      fTrackChi2[i]=-666;		
      fMatchTrigChi2[i]=-666;	
      fCharge[i]=-666;		
      fMuFamily[i]=-666;		
      fRAtAbsEnd[i]=-666;	
      fPDG[i]=-666;		
      fPDGmother[i]=-666;		
    }	
    
    fpTdimuon[i]=-666;		
    fpxdimuon[i]=-666;		
    fpydimuon[i]=-666;		
    fpzdimuon[i]=-666;		
    fydimuon[i]=-666;		
    fiMassdimuon[i]=-666;	
    fcostCS[i]=-666;		
    fcostHE[i]=-666;		
    fphiCS[i]=-666;		
    fphiHE[i]=-666;		
    fPDGdimu[i]=-666;		

    for(Int_t j=0; j<2; j++){fDimuonConstituent[i][j]=-666;}

  }
  snprintf(fTrigClass,100," ");

  DefineOutput(1,TTree::Class());
}

//___________________________________________________________________________
AliAnalysisTaskMuonTreeBuilder& AliAnalysisTaskMuonTreeBuilder::operator=(const AliAnalysisTaskMuonTreeBuilder& c) 
{
  //
  // Assignment operator
  //
  if (this!=&c) {
    AliAnalysisTaskSE::operator=(c) ;
    fNevt = c.fNevt ;
  }
  return *this;
}

//___________________________________________________________________________
AliAnalysisTaskMuonTreeBuilder::AliAnalysisTaskMuonTreeBuilder(const AliAnalysisTaskMuonTreeBuilder& c) :
  AliAnalysisTaskSE(c),
  fNevt(c.fNevt),
  fBeamEnergy(c.fBeamEnergy),
  fOutput(c.fOutput),
  fOutputTree(c.fOutputTree),
  fIsMC(kFALSE),
  fIsSelected(kFALSE),
  fNumMuonTracks(c.fNumMuonTracks),
  fNumSPDTracklets(c.fNumSPDTracklets),
  fNumContributors(c.fNumContributors),
  fNumDimuons(c.fNumDimuons)
{
  //
  // Copy Constructor										FIDUCIAL REGIONS?
  //
  for(Int_t i=0; i<45; i++){
    if(i<3) fVertex[i]=-666;
    if(i<10){
      fDCA[i]=-666;		
      fpT[i]=-666;		
      fE[i]=-666;			
      fpx[i]=-666;		
      fpy[i]=-666;		
      fpz[i]=-666;		
      fpxUncorr[i]=-666;		
      fpyUncorr[i]=-666;		
      fpzUncorr[i]=-666;		
      fy[i]=-666;			
      feta[i]=-666;		
      fphi[i]=-666;		
      fMatchTrig[i]=-666;		
      fTrackChi2[i]=-666;		
      fMatchTrigChi2[i]=-666;	
      fCharge[i]=-666;		
      fMuFamily[i]=-666;		
      fRAtAbsEnd[i]=-666;	
      fPDG[i]=-666;		
      fPDGmother[i]=-666;		
    }	
    
    fpTdimuon[i]=-666;		
    fpxdimuon[i]=-666;		
    fpydimuon[i]=-666;		
    fpzdimuon[i]=-666;		
    fydimuon[i]=-666;		
    fiMassdimuon[i]=-666;	
    fcostCS[i]=-666;		
    fcostHE[i]=-666;		
    fphiCS[i]=-666;		
    fphiHE[i]=-666;		
    fPDGdimu[i]=-666;		

    for(Int_t j=0; j<2; j++){fDimuonConstituent[i][j]=-666;}

  }
  snprintf(fTrigClass,100," ");
}

//___________________________________________________________________________
AliAnalysisTaskMuonTreeBuilder::~AliAnalysisTaskMuonTreeBuilder() {
  //
  //destructor
  //
  Info("~AliAnalysisTaskMuonTreeBuilder","Calling Destructor");
}

//___________________________________________________________________________
void AliAnalysisTaskMuonTreeBuilder::UserCreateOutputObjects(){
	
//  
//  Creating User-Defined Output Objects
//  
  
 // TREE OUTPUT----------------------------------------------------------
 OpenFile(1);
 fOutputTree = new TTree("krec","Tree of reconstructed muons");

 fOutputTree->Branch("IsSelected",&fIsSelected,"IsSelected/O");
 fOutputTree->Branch("FiredTriggerClasses",fTrigClass,"FiredTriggerClasses/C");

 fOutputTree->Branch("NumMuonTracks",&fNumMuonTracks,"NumMuonTracks/I");
 fOutputTree->Branch("NumContributors",&fNumContributors,"NumContributors/I");
 fOutputTree->Branch("NumSPDTracklets",&fNumSPDTracklets,"NumSPDTraclets/I");
 fOutputTree->Branch("Vertex",fVertex,"Vertex[3]/D");
 fOutputTree->Branch("pT",fpT,"pT[10]/D");
 fOutputTree->Branch("E",fE,"E[10]/D");
 fOutputTree->Branch("px",fpx,"px[10]/D");
 fOutputTree->Branch("py",fpy,"py[10]/D");
 fOutputTree->Branch("pz",fpz,"pz[10]/D");
 fOutputTree->Branch("pxUncorr",fpxUncorr,"pxUncorr[10]/D");
 fOutputTree->Branch("pyUncorr",fpyUncorr,"pyUncorr[10]/D");
 fOutputTree->Branch("pzUncorr",fpzUncorr,"pzUncorr[10]/D");
 fOutputTree->Branch("y",fy,"y[10]/D");
 fOutputTree->Branch("eta",feta,"eta[10]/D");
 fOutputTree->Branch("phi",fphi,"phi[10]/D");
 fOutputTree->Branch("MatchTrig",fMatchTrig,"MatchTrig[10]/I");
 fOutputTree->Branch("TrackChi2",fTrackChi2,"TrackChi2[10]/D");
 fOutputTree->Branch("MatchTrigChi2",fMatchTrigChi2,"MatchTrigChi2[10]/D");
 fOutputTree->Branch("DCA",fDCA,"DCA[10]/D");
 fOutputTree->Branch("Charge",fCharge,"Charge[10]/S");
 fOutputTree->Branch("MuFamily",fMuFamily,"MuFamily[10]/I");
 fOutputTree->Branch("RAtAbsEnd",fRAtAbsEnd,"RAtAbsEnd[10]/D");
 
 fOutputTree->Branch("NumDimuons",&fNumDimuons,"NumDimuons/I");
 fOutputTree->Branch("DimuConstituent",fDimuonConstituent,"DimuonConstituent[45][2]/I");
 fOutputTree->Branch("pTdimuon",fpTdimuon,"pTdimuon[45]/D");
 fOutputTree->Branch("pxdimuon",fpxdimuon,"pxdimuon[45]/D");
 fOutputTree->Branch("pydimuon",fpydimuon,"pydimuon[45]/D");
 fOutputTree->Branch("pzdimuon",fpzdimuon,"pzdimuon[45]/D");
 fOutputTree->Branch("ydimuon",fydimuon,"ydimuon[45]/D");
 fOutputTree->Branch("Imassdimuon",fiMassdimuon,"iMassdimuon[45]/D");
 fOutputTree->Branch("costCS",fcostCS,"costCS[45]/D");
 fOutputTree->Branch("costHE",fcostHE,"costHE[45]/D");
 fOutputTree->Branch("phiCS",fphiCS,"phiCS[45]/D");
 fOutputTree->Branch("phiHE",fphiHE,"phiHE[45]/D");

 fOutputTree->Branch("PDG",fPDG,"PDG[10]/I");
 fOutputTree->Branch("PDGmother",fPDGmother,"PDGmother[10]/I");
 fOutputTree->Branch("PDGdimu",fPDGdimu,"PDGdimu[45]/I");

} 



//_________________________________________________
void AliAnalysisTaskMuonTreeBuilder::UserExec(Option_t *)
{
//  
//  User Exec
//

  fNevt++;


  fNumMuonTracks=0; 
  fNumSPDTracklets=666;
  fNumContributors=666;
  fNumDimuons=0;
  fIsSelected=kFALSE;
  fVertex[0]=666.; fVertex[1]=666.; fVertex[2]=666.;
  for(Int_t i=0; i<10;i++){
    fpT[i]=666.;
    fE[i]=666.;
    fpx[i]=666; 
    fpy[i]=666; 
    fpz[i]=666; 
    fpxUncorr[i]=666; 
    fpyUncorr[i]=666; 
    fpzUncorr[i]=666; 
    fy[i]=666.; 
    feta[i]=666.; 
    fphi[i]=666.;
    fMatchTrig[i]=666; 
    fTrackChi2[i]=666.; 
    fMatchTrigChi2[i]=666.;
    fDCA[i]=666.;
    fPDG[i]=666;
    fPDGmother[i]=666;
    fCharge[i]=666;
    fMuFamily[i]=666;
    fRAtAbsEnd[i]=666;
  }
  for(Int_t i=0; i<45;i++){  
    fDimuonConstituent[i][0]=666;  fDimuonConstituent[i][1]=666;
    fpTdimuon[i]=666.; 
    fpxdimuon[i]=666.; 
    fpydimuon[i]=666.; 
    fpzdimuon[i]=666.; 
    fydimuon[i]=666.; 
    fiMassdimuon[i]=666.;
    fcostCS[i]=666.; 
    fcostHE[i]=666.; 
    fphiCS[i]=666.; 
    fphiHE[i]=666.;
    fPDGdimu[i]=666;
  } 


////////
//// ESD
////////
  
  AliESDEvent *fESD = 0x0;
  AliMCEvent*  mcEvent  = 0x0;

  if(fIsMC){
    if (!fMCEvent) {
      Error("UserExec","NO MC EVENT FOUND!");
      return;
    }
  }

  fESD = dynamic_cast<AliESDEvent*>(InputEvent()); 
  if ( ! fESD ) {
    AliError("Cannot get input event");
    return; 
  }

  fIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();

  fNumMuonTracks = fESD->GetNumberOfMuonTracks() ;
   Int_t loopEnd = fNumMuonTracks;
  if(!fIsMC) {
    TString cla = fESD->GetFiredTriggerClasses();
    snprintf(fTrigClass,100,"%s",cla.Data());
  }

  if(fNumMuonTracks>0 && fIsMC){
    mcEvent = MCEvent();
  }
  fNumContributors = fESD->GetPrimaryVertexSPD()->GetNContributors();
  fNumSPDTracklets = fESD->GetMultiplicity()->GetNumberOfTracklets();
  fVertex[0]=fESD->GetPrimaryVertexSPD()->GetX();
  fVertex[1]=fESD->GetPrimaryVertexSPD()->GetY();
  fVertex[2]=fESD->GetPrimaryVertexSPD()->GetZ();
  printf("fVertex : %f - %f - %f\n",fVertex[0],fVertex[1],fVertex[2]);

  Int_t numdimu = 0;
  for (Int_t j = 0; j<loopEnd; j++) { 
    AliESDMuonTrack* mu1 = new AliESDMuonTrack(*(fESD->GetMuonTrack(j)));
    if (!mu1->ContainTrackerData()) {fNumMuonTracks=fNumMuonTracks-1; continue;}
    Double_t charge1 = mu1->Charge();
    fCharge[j] = mu1->Charge();
    fpT[j]   = mu1->Pt();
    fpx[j]  = mu1->Px();
    fpy[j]  = mu1->Py();
    fpz[j]  = mu1->Pz();
    fpxUncorr[j]  = mu1->PxUncorrected();
    fpyUncorr[j]  = mu1->PyUncorrected();
    fpzUncorr[j]  = mu1->PzUncorrected();
    fy[j]    = mu1->Y();
    feta[j]    = mu1->Eta();
    fphi[j]  = Phideg(mu1->Phi());
    Double_t emu1    = mu1->E();
    fE[j] = emu1;
    fDCA[j] = mu1->GetDCA();
    fTrackChi2[j] = mu1->GetChi2();
    fMatchTrig[j]   = mu1->GetMatchTrigger();
    fMatchTrigChi2[j]= mu1->GetChi2MatchTrigger();
    fRAtAbsEnd[j]=mu1->GetRAtAbsorberEnd();

    AliMCParticle* mcTrack = 0x0;
    if(fIsMC){
    if(mu1->GetLabel()==-1) continue;
    mcTrack = (AliMCParticle*)mcEvent->GetTrack(mu1->GetLabel());
    fPDG[j] = mcTrack->PdgCode();
    if (mcTrack->GetMother()==-1) continue;
    fPDGmother[j] = ((AliMCParticle*)mcEvent->GetTrack(mcTrack->GetMother()))->PdgCode();
    if (TMath::Abs(fPDG[j])==13) fMuFamily[j] = FindMuFamily(mcTrack,mcEvent);
    }
    for (Int_t jj = j+1; jj<loopEnd; jj++) {
      AliESDMuonTrack* mu2 = new AliESDMuonTrack(*(fESD->GetMuonTrack(jj)));
      if (!mu2->ContainTrackerData()) continue;

      Double_t pxmu2  = mu2->Px();
      Double_t pymu2  = mu2->Py();
      Double_t pzmu2  = mu2->Pz();
      Double_t emu2   = mu2->E();
      //Double_t charge2= mu2->Charge();

      fpTdimuon[numdimu] = TMath::Sqrt((fpx[j]+pxmu2)*(fpx[j]+pxmu2)+(fpy[j]+pymu2)*(fpy[j]+pymu2));
      fpxdimuon[numdimu] = fpx[j]+pxmu2;
      fpydimuon[numdimu] = fpy[j]+pymu2;
      fpzdimuon[numdimu] = fpz[j]+pzmu2;
      fydimuon[numdimu] = Rap((emu1+emu2),(fpz[j]+pzmu2));
      fiMassdimuon[numdimu] = Imass(emu1,fpx[j],fpy[j],fpz[j],emu2,pxmu2,pymu2,pzmu2);
      fcostCS[numdimu]=CostCS(fpx[j],fpy[j],fpz[j],emu1,charge1,pxmu2,pymu2,pzmu2,emu2);
      fcostHE[numdimu]=CostHE(fpx[j],fpy[j],fpz[j],emu1,charge1,pxmu2,pymu2,pzmu2,emu2);
      fphiCS[numdimu] = PhiCS(fpx[j],fpy[j],fpz[j],emu1,charge1,pxmu2,pymu2,pzmu2,emu2);
      fphiHE[numdimu] = PhiHE(fpx[j],fpy[j],fpz[j],emu1,charge1,pxmu2,pymu2,pzmu2,emu2);

      fDimuonConstituent[numdimu][0]=j;  fDimuonConstituent[numdimu][1]=jj;

      numdimu++;
      
      if(fIsMC){
      if(mu2->GetLabel()==-1) continue;
      if(TMath::Abs(fPDG[j])==13 && TMath::Abs(((AliMCParticle*)mcEvent->GetTrack(mu2->GetLabel()))->PdgCode())==13) fPDGdimu[numdimu-1]=FindDimuFamily(mcTrack,(AliMCParticle*)mcEvent->GetTrack(mu2->GetLabel()),mcEvent);
      else fPDGdimu[numdimu-1]=-3;
      }

      delete mu2;
    }
    fNumDimuons=numdimu;
    

    delete mu1;
    }        
  fOutputTree->Fill();
  PostData(1,fOutputTree);
}

//________________________________________________________________________
Int_t AliAnalysisTaskMuonTreeBuilder::FindDimuFamily(AliMCParticle* mcTrack1,AliMCParticle* mcTrack2, AliMCEvent* mcEvent) const
{
  // finds the family of the dimuon (works only if the 2 muons are real muons (not hadrons))
  Int_t familynumber;

  if(mcTrack1->GetMother()==mcTrack2->GetMother()) familynumber = TMath::Abs(((AliMCParticle*)mcEvent->GetTrack(mcTrack1->GetMother()))->PdgCode());
  else{
    Int_t familymu1 = FindMuFamily(mcTrack1,mcEvent);
    Int_t familymu2 = FindMuFamily(mcTrack2,mcEvent);
    if(familymu1==5 && familymu2==5) familynumber=5;							//bb dimuon
    else if(familymu1==4 && familymu2==4) familynumber=4;						//cc dimuon
    else if((familymu1==4 && familymu2==5)||(familymu2==4 && familymu1==5)) familynumber=45;		//bc dimuon
    else if (familymu1==-2 || familymu2==-2 || familymu1==-3 || familymu2==-3) familynumber=-2;		//hadron dimuon (at least 1 hadron involved)
    else familynumber=-1;
  }

  return familynumber;
}

//________________________________________________________________________
Int_t AliAnalysisTaskMuonTreeBuilder::FindMuFamily(AliMCParticle* mcTrack, AliMCEvent* mcEvent) const
{
  // finds the family of the muon
  Int_t imother = mcTrack->GetMother();
  if ( imother<0 ) return -1; // Drell-Yan Muon

  Int_t igrandma = imother;

  AliMCParticle* motherPart = (AliMCParticle*)mcEvent->GetTrack(imother);
  Int_t motherPdg = motherPart->PdgCode();

  // Track is an heavy flavor muon
  Int_t absPdg = TMath::Abs(motherPdg);
  if(absPdg/100==5 || absPdg/1000==5) return 5;
  if(absPdg/100==4 || absPdg/1000==4){
    Int_t newMother = -1;
    igrandma = imother;
    Int_t absGrandMotherPdg = TMath::Abs(motherPart->PdgCode());
    while ( absGrandMotherPdg > 10 ) {
      igrandma = ((AliMCParticle*)mcEvent->GetTrack(igrandma))->GetMother();
      if( igrandma < 0 ) break;
      absGrandMotherPdg = TMath::Abs(((AliMCParticle*)mcEvent->GetTrack(igrandma))->PdgCode());
    }

    if (absGrandMotherPdg==5) newMother = 5; // Charm from beauty
    else if (absGrandMotherPdg==4) newMother = 4;

    if(newMother<0) {
      //AliWarning("Mother not correctly found! Set to charm!\n");
      newMother = 4;
    }

    return newMother;
  }

  Int_t nPrimaries = mcEvent->Stack()->GetNprimary();
  // Track is a bkg. muon
  if (imother<nPrimaries) {
    return -2;			//is a primary
  }
  else {
    return -3;			//is a secondary
  }

}

//________________________________________________________________________
Double_t AliAnalysisTaskMuonTreeBuilder::Imass(Double_t e1, Double_t px1, Double_t py1, Double_t pz1,
				   Double_t e2, Double_t px2, Double_t py2, Double_t pz2) const
{
// invariant mass calculation
    Double_t imassrec = TMath::Sqrt((e1+e2)*(e1+e2)-((px1+px2)*(px1+px2)+
                                    (py1+py2)*(py1+py2)+(pz1+pz2)*(pz1+pz2)));
    return imassrec;
}

//________________________________________________________________________
Double_t AliAnalysisTaskMuonTreeBuilder::Rap(Double_t e, Double_t pz) const
{
// calculate rapidity
    Double_t rap;
    if(e>TMath::Abs(pz)){
	rap = 0.5*TMath::Log((e+pz)/(e-pz));
	return rap;
    }
    else{
	rap = 666.;
	return rap;
    }
}

//________________________________________________________________________
Double_t AliAnalysisTaskMuonTreeBuilder::Phideg(Double_t phi) const
{
// calculate Phi in range [-180,180] 
    Double_t phideg;
    
	phideg = phi-TMath::Pi();
	phideg = phideg*57.296;
	return phideg;
}

//________________________________________________________________________
Double_t AliAnalysisTaskMuonTreeBuilder::CostCS(Double_t px1, Double_t py1, Double_t pz1, Double_t e1,
Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2)
{
// Cosine of the theta decay angle (mu+) in the Collins-Soper frame

  TLorentzVector pMu1CM, pMu2CM, pProjCM, pTargCM, pDimuCM; // In the CM. frame
  TLorentzVector pMu1Dimu, pMu2Dimu, pProjDimu, pTargDimu; // In the dimuon rest frame
  TVector3 beta,zaxisCS;
  Double_t mp=0.93827231;
  //
  // --- Fill the Lorentz vector for projectile and target in the CM frame
  //
  pProjCM.SetPxPyPzE(0.,0.,-fBeamEnergy,TMath::Sqrt(fBeamEnergy*fBeamEnergy+mp*mp)); 
  pTargCM.SetPxPyPzE(0.,0.,fBeamEnergy,TMath::Sqrt(fBeamEnergy*fBeamEnergy+mp*mp)); 
  //
  // --- Get the muons parameters in the CM frame 
  //
  pMu1CM.SetPxPyPzE(px1,py1,pz1,e1);
  pMu2CM.SetPxPyPzE(px2,py2,pz2,e2);
  //
  // --- Obtain the dimuon parameters in the CM frame
  //
  pDimuCM=pMu1CM+pMu2CM;
  //
  // --- Translate the dimuon parameters in the dimuon rest frame
  //
  beta=(-1./pDimuCM.E())*pDimuCM.Vect();
  if(beta.Mag()>=1) return 666.;
  pMu1Dimu=pMu1CM;
  pMu2Dimu=pMu2CM;
  pProjDimu=pProjCM;
  pTargDimu=pTargCM;
  pMu1Dimu.Boost(beta);
  pMu2Dimu.Boost(beta);
  pProjDimu.Boost(beta);
  pTargDimu.Boost(beta);
  
  //Debugging part -------------------------------------
  Double_t debugProj[4]={0.,0.,0.,0.};
  Double_t debugTarg[4]={0.,0.,0.,0.};
  Double_t debugMu1[4]={0.,0.,0.,0.};
  Double_t debugMu2[4]={0.,0.,0.,0.};
  pMu1Dimu.GetXYZT(debugMu1);
  pMu2Dimu.GetXYZT(debugMu2);
  pProjDimu.GetXYZT(debugProj);
  pTargDimu.GetXYZT(debugTarg);
  if (debugProj[0]!=debugProj[0] ||debugProj[1]!=debugProj[1] || debugProj[2]!=debugProj[2] ||debugProj[3]!=debugProj[3]) return 666; 
  if (debugTarg[0]!=debugTarg[0] ||debugTarg[1]!=debugTarg[1] || debugTarg[2]!=debugTarg[2] ||debugTarg[3]!=debugTarg[3]) return 666; 
  if (debugMu1[0]!=debugMu1[0] ||debugMu1[1]!=debugMu1[1] || debugMu1[2]!=debugMu1[2] ||debugMu1[3]!=debugMu1[3]) return 666; 
  if (debugMu2[0]!=debugMu2[0] ||debugMu2[1]!=debugMu2[1] || debugMu2[2]!=debugMu2[2] ||debugMu2[3]!=debugMu2[3]) return 666; 
  //----------------------------------------------------

  // --- Determine the z axis for the CS angle 
  zaxisCS=(((pProjDimu.Vect()).Unit())-((pTargDimu.Vect()).Unit())).Unit();
  				     
  // --- Determine the CS angle (angle between mu+ and the z axis defined above)
  Double_t cost;
  
  if(charge1>0) {cost = zaxisCS.Dot((pMu1Dimu.Vect()).Unit());}
  else {cost = zaxisCS.Dot((pMu2Dimu.Vect()).Unit());}
  
  return cost;
}

//________________________________________________________________________
Double_t AliAnalysisTaskMuonTreeBuilder::CostHE(Double_t px1, Double_t py1, Double_t pz1, Double_t e1,
Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2)
{
// Cosine of the theta decay angle (mu+) in the Helicity frame
  
  TLorentzVector pMu1CM, pMu2CM, pDimuCM; // In the CM frame 
  TLorentzVector pMu1Dimu, pMu2Dimu; // In the dimuon rest frame
  TVector3 beta,zaxisCS;
  //
  // --- Get the muons parameters in the CM frame
  //
  pMu1CM.SetPxPyPzE(px1,py1,pz1,e1);
  pMu2CM.SetPxPyPzE(px2,py2,pz2,e2);
  //
  // --- Obtain the dimuon parameters in the CM frame
  //
  pDimuCM=pMu1CM+pMu2CM;
  //
  // --- Translate the muon parameters in the dimuon rest frame
  //
  beta=(-1./pDimuCM.E())*pDimuCM.Vect();
  if(beta.Mag()>=1) return 666.;
  pMu1Dimu=pMu1CM;
  pMu2Dimu=pMu2CM;
  pMu1Dimu.Boost(beta);
  pMu2Dimu.Boost(beta);
  
  //Debugging part -------------------------------------
  Double_t debugMu1[4]={0.,0.,0.,0.};
  Double_t debugMu2[4]={0.,0.,0.,0.};
  pMu1Dimu.GetXYZT(debugMu1);
  pMu2Dimu.GetXYZT(debugMu2);
  if (debugMu1[0]!=debugMu1[0] ||debugMu1[1]!=debugMu1[1] || debugMu1[2]!=debugMu1[2] ||debugMu1[3]!=debugMu1[3]) return 666; 
  if (debugMu2[0]!=debugMu2[0] ||debugMu2[1]!=debugMu2[1] || debugMu2[2]!=debugMu2[2] ||debugMu2[3]!=debugMu2[3]) return 666; 
  //----------------------------------------------------
 
  // --- Determine the z axis for the calculation of the polarization angle (i.e. the direction of the dimuon in the CM system)
  TVector3 zaxis;
  zaxis=(pDimuCM.Vect()).Unit();
  
  // --- Calculation of the polarization angle (angle between mu+ and the z axis defined above)
  Double_t cost;
  if(charge1>0) {cost = zaxis.Dot((pMu1Dimu.Vect()).Unit());} 
  else {cost = zaxis.Dot((pMu2Dimu.Vect()).Unit());} 
  return cost;
}

//________________________________________________________________________
Double_t AliAnalysisTaskMuonTreeBuilder::PhiCS(Double_t px1, Double_t py1, Double_t pz1, Double_t e1,
Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2)
{
// Phi decay angle (mu+) in the Collins-Soper frame

   TLorentzVector pMu1CM, pMu2CM, pProjCM, pTargCM, pDimuCM; // In the CM frame
   TLorentzVector pMu1Dimu, pMu2Dimu, pProjDimu, pTargDimu; // In the dimuon rest frame
   TVector3 beta,yaxisCS, xaxisCS, zaxisCS;
   Double_t mp=0.93827231;
   
   // --- Fill the Lorentz vector for projectile and target in the CM frame
   pProjCM.SetPxPyPzE(0.,0.,-fBeamEnergy,TMath::Sqrt(fBeamEnergy*fBeamEnergy+mp*mp)); 
   pTargCM.SetPxPyPzE(0.,0.,fBeamEnergy,TMath::Sqrt(fBeamEnergy*fBeamEnergy+mp*mp)); 
   
   // --- Get the muons parameters in the CM frame 
   pMu1CM.SetPxPyPzE(px1,py1,pz1,e1);
   pMu2CM.SetPxPyPzE(px2,py2,pz2,e2);
   
   // --- Obtain the dimuon parameters in the CM frame
   pDimuCM=pMu1CM+pMu2CM;
   
   // --- Translate the dimuon parameters in the dimuon rest frame
   beta=(-1./pDimuCM.E())*pDimuCM.Vect();
   if(beta.Mag()>=1) return 666.;
   pMu1Dimu=pMu1CM;
   pMu2Dimu=pMu2CM;
   pProjDimu=pProjCM;
   pTargDimu=pTargCM;
   pMu1Dimu.Boost(beta);
   pMu2Dimu.Boost(beta);
   pProjDimu.Boost(beta);
   pTargDimu.Boost(beta);

   //Debugging part -------------------------------------
   Double_t debugProj[4]={0.,0.,0.,0.};
   Double_t debugTarg[4]={0.,0.,0.,0.};
   Double_t debugMu1[4]={0.,0.,0.,0.};
   Double_t debugMu2[4]={0.,0.,0.,0.};
   pMu1Dimu.GetXYZT(debugMu1);
   pMu2Dimu.GetXYZT(debugMu2);
   pProjDimu.GetXYZT(debugProj);
   pTargDimu.GetXYZT(debugTarg);
   if (debugProj[0]!=debugProj[0] ||debugProj[1]!=debugProj[1] || debugProj[2]!=debugProj[2] ||debugProj[3]!=debugProj[3]) return 666; 
   if (debugTarg[0]!=debugTarg[0] ||debugTarg[1]!=debugTarg[1] || debugTarg[2]!=debugTarg[2] ||debugTarg[3]!=debugTarg[3]) return 666; 
   if (debugMu1[0]!=debugMu1[0] ||debugMu1[1]!=debugMu1[1] || debugMu1[2]!=debugMu1[2] ||debugMu1[3]!=debugMu1[3]) return 666; 
   if (debugMu2[0]!=debugMu2[0] ||debugMu2[1]!=debugMu2[1] || debugMu2[2]!=debugMu2[2] ||debugMu2[3]!=debugMu2[3]) return 666; 
   //----------------------------------------------------

   // --- Determine the z axis for the CS angle 
   zaxisCS=(((pProjDimu.Vect()).Unit())-((pTargDimu.Vect()).Unit())).Unit();
   yaxisCS=(((pProjDimu.Vect()).Unit()).Cross((pTargDimu.Vect()).Unit())).Unit();
   xaxisCS=(yaxisCS.Cross(zaxisCS)).Unit();
 
   Double_t phi=0.;
   if(charge1>0) {
       phi = TMath::ATan2((pMu1Dimu.Vect()).Dot(yaxisCS),((pMu1Dimu.Vect()).Dot(xaxisCS)));
   } else {
       phi = TMath::ATan2((pMu2Dimu.Vect()).Dot(yaxisCS),((pMu2Dimu.Vect()).Dot(xaxisCS)));
   }
   if (phi>TMath::Pi()) phi=phi-TMath::Pi();
   
   return phi;
}

//________________________________________________________________________
Double_t AliAnalysisTaskMuonTreeBuilder::PhiHE(Double_t px1, Double_t py1, Double_t pz1, Double_t e1,
Double_t charge1, Double_t px2, Double_t py2, Double_t pz2, Double_t e2)
{
// Phi decay angle (mu+) in the Helicity frame
  TLorentzVector pMu1Lab, pMu2Lab, pProjLab, pTargLab, pDimuLab; // In the lab. frame 
  TLorentzVector pMu1Dimu, pMu2Dimu, pProjDimu, pTargDimu; // In the dimuon rest frame
  TVector3 beta,xaxis, yaxis,zaxis;
  Double_t mp=0.93827231;

  // --- Get the muons parameters in the LAB frame
  pMu1Lab.SetPxPyPzE(px1,py1,pz1,e1);
  pMu2Lab.SetPxPyPzE(px2,py2,pz2,e2);
  
  // --- Obtain the dimuon parameters in the LAB frame
  pDimuLab=pMu1Lab+pMu2Lab;
  zaxis=(pDimuLab.Vect()).Unit();
  
  // --- Translate the muon parameters in the dimuon rest frame
  beta=(-1./pDimuLab.E())*pDimuLab.Vect();
  if(beta.Mag()>=1.) return 666.;

  pProjLab.SetPxPyPzE(0.,0.,-fBeamEnergy,TMath::Sqrt(fBeamEnergy*fBeamEnergy+mp*mp)); // proiettile
  pTargLab.SetPxPyPzE(0.,0.,fBeamEnergy,TMath::Sqrt(fBeamEnergy*fBeamEnergy+mp*mp)); // bersaglio

  pProjDimu=pProjLab;
  pTargDimu=pTargLab;

  pProjDimu.Boost(beta);
  pTargDimu.Boost(beta);
  
  yaxis=((pProjDimu.Vect()).Cross(pTargDimu.Vect())).Unit();
  xaxis=(yaxis.Cross(zaxis)).Unit();
  
  pMu1Dimu=pMu1Lab;
  pMu2Dimu=pMu2Lab;
  pMu1Dimu.Boost(beta);
  pMu2Dimu.Boost(beta);
  
  //Debugging part -------------------------------------
  Double_t debugProj[4]={0.,0.,0.,0.};
  Double_t debugTarg[4]={0.,0.,0.,0.};
  Double_t debugMu1[4]={0.,0.,0.,0.};
  Double_t debugMu2[4]={0.,0.,0.,0.};
  pMu1Dimu.GetXYZT(debugMu1);
  pMu2Dimu.GetXYZT(debugMu2);
  pProjDimu.GetXYZT(debugProj);
  pTargDimu.GetXYZT(debugTarg);
  if (debugProj[0]!=debugProj[0] ||debugProj[1]!=debugProj[1] || debugProj[2]!=debugProj[2] ||debugProj[3]!=debugProj[3]) return 666; 
  if (debugTarg[0]!=debugTarg[0] ||debugTarg[1]!=debugTarg[1] || debugTarg[2]!=debugTarg[2] ||debugTarg[3]!=debugTarg[3]) return 666; 
  if (debugMu1[0]!=debugMu1[0] ||debugMu1[1]!=debugMu1[1] || debugMu1[2]!=debugMu1[2] ||debugMu1[3]!=debugMu1[3]) return 666; 
  if (debugMu2[0]!=debugMu2[0] ||debugMu2[1]!=debugMu2[1] || debugMu2[2]!=debugMu2[2] ||debugMu2[3]!=debugMu2[3]) return 666; 
  //----------------------------------------------------
  
  Double_t phi=0.;
   if(charge1 > 0) {
      phi = TMath::ATan2((pMu1Dimu.Vect()).Dot(yaxis),(pMu1Dimu.Vect()).Dot(xaxis));
     } else { 
      phi = TMath::ATan2((pMu2Dimu.Vect()).Dot(yaxis),(pMu2Dimu.Vect()).Dot(xaxis));
   }  
   return phi;
}

//________________________________________________________________________
void AliAnalysisTaskMuonTreeBuilder::Terminate(Option_t *) 
{
// Terminate
}

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