ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//-----------------------------------------------------------------------
// Example of task (running locally, on AliEn and CAF),
// which provides standard way of calculating acceptance and efficiency
// between different steps of the procedure.
// The ouptut of the task is a AliCFContainer from which the efficiencies
// can be calculated
//-----------------------------------------------------------------------
// Author : R. Vernet, Consorzio Cometa - Catania (it)
//-----------------------------------------------------------------------
// Modification done by X. Lopez - LPC Clermont (fr)
//-----------------------------------------------------------------------


#ifndef ALICFMUONRESTASK1_CXX
#define ALICFMUONRESTASK1_CXX

#include "AliCFMuonResTask1.h"
#include "AliHeader.h"
#include "AliESDHeader.h"
#include "AliStack.h"
#include "TParticle.h"
#include "TLorentzVector.h"
#include "TH1I.h"
#include "AliMCEvent.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliCFManager.h"
#include "AliCFCutBase.h"
#include "AliCFContainer.h"
#include "TChain.h"
#include "AliESDtrack.h"
#include "AliLog.h"
#include "AliESDMuonTrack.h"
#include "AliESDtrack.h"
#include "AliESDInputHandler.h"
#include "TCanvas.h"

ClassImp(AliCFMuonResTask1)

//__________________________________________________________________________
AliCFMuonResTask1::AliCFMuonResTask1() :
  fReadAODData(0),
  fCFManager(0x0),
  fQAHistList(0x0),
  fHistEventsProcessed(0x0),
  fNevt(0)
{
  //
  //Default ctor
  //
}
//___________________________________________________________________________
AliCFMuonResTask1::AliCFMuonResTask1(const Char_t* name) :
  AliAnalysisTaskSE(name),
  fReadAODData(0),
  fCFManager(0x0),
  fQAHistList(0x0),
  fHistEventsProcessed(0x0),
  fNevt(0)
{
  //
  // Constructor. Initialization of Inputs and Outputs
  //
  Info("AliCFMuonResTask1","Calling Constructor");

  fHistEventsProcessed = new TH1I("fHistEventsProcessed","",1,0,1) ;

  DefineOutput(1,TH1I::Class());
  DefineOutput(2,AliCFContainer::Class());

}

//___________________________________________________________________________
AliCFMuonResTask1& AliCFMuonResTask1::operator=(const AliCFMuonResTask1& c) 
{
  //
  // Assignment operator
  //
  if (this!=&c) {
    AliAnalysisTaskSE::operator=(c) ;
    fReadAODData = c.fReadAODData ;
    fCFManager  = c.fCFManager;
    fQAHistList = c.fQAHistList ;
    fHistEventsProcessed = c.fHistEventsProcessed;
    fNevt = c.fNevt ;
  }
  return *this;
}

//___________________________________________________________________________
AliCFMuonResTask1::AliCFMuonResTask1(const AliCFMuonResTask1& c) :
  AliAnalysisTaskSE(c),
  fReadAODData(c.fReadAODData),
  fCFManager(c.fCFManager),
  fQAHistList(c.fQAHistList),
  fHistEventsProcessed(c.fHistEventsProcessed),
  fNevt(c.fNevt) 
{
  //
  // Copy Constructor
  //
}

//___________________________________________________________________________
AliCFMuonResTask1::~AliCFMuonResTask1() {
  //
  //destructor
  //
  Info("~AliCFMuonResTask1","Calling Destructor");
  if (fCFManager)           delete fCFManager ;
  if (fHistEventsProcessed) delete fHistEventsProcessed ;
  if (fQAHistList) {fQAHistList->Clear(); delete fQAHistList;}
}

//_________________________________________________
void AliCFMuonResTask1::UserExec(Option_t *)
{
  //
  // Main loop function
  // 
  
  Info("UserExec"," ") ;
  if (!fMCEvent) {
    Error("UserExec","NO MC EVENT FOUND!");
    return;
  }

  fNevt++; 
  Double_t containerInput[13] ;
  Double_t beamEnergy=7000;
 
////////
//// MC
//////// 

  fCFManager->SetMCEventInfo(fMCEvent);  
  AliStack* stack = fMCEvent->Stack();

  // loop on the MC event
  for (Int_t ipart=0; ipart<fMCEvent->GetNumberOfTracks(); ipart++) { 
    AliMCParticle *mcPart  = (AliMCParticle*) fMCEvent->GetTrack(ipart);
 
    TParticle *part = mcPart->Particle(); 
 
    // Selection of the resonance
    if (!fCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,mcPart)) continue;

    // Mother kinematics
    Float_t e = part->Energy();
    Float_t pz = part->Pz();           
    //Float_t py = part->Py();
    //Float_t px = part->Px();
    Float_t rapmc = Rap(e,pz);
    //Float_t mass = part->GetCalcMass();

    // Decays kinematics

    Int_t p0 = part->GetDaughter(0);
    TParticle *part0 = stack->Particle(p0); 
   // selection of the rapidity for first muon
    AliMCParticle *mcpart0 = new AliMCParticle(part0);
    if (!fCFManager->CheckParticleCuts(AliCFManager::kPartAccCuts,mcpart0)) continue;
    Int_t pdg0 = part0->GetPdgCode();

    Int_t p1 = part->GetDaughter(1);
    TParticle *part1 = stack->Particle(p1);
   // selection of the rapidity for second muon
    AliMCParticle *mcpart1 = new AliMCParticle(part1);
    if (!fCFManager->CheckParticleCuts(AliCFManager::kPartAccCuts,mcpart1)) continue;
    Int_t pdg1 = part1->GetPdgCode();
 
   // 0 mu- 1 mu+
    Float_t e0=-999, pz0=-999, py0=-999, px0=-999, phi0=-999, rapmc0=-999;
    Float_t e1=-999, pz1=-999, py1=-999, px1=-999, phi1=-999, rapmc1=-999;
    Double_t charge0=-999, charge1=-999;

    // ordering sign: first = mu-
    if(pdg0==13){
	e0 = part0->Energy();
	pz0 = part0->Pz();
	py0 = part0->Py();
	px0 = part0->Px();
	phi0 = part0->Phi(); 
	phi0 = Phideg(phi0);    
	rapmc0=Rap(e0,pz0);
	charge0 = part0->GetPDG()->Charge()/3;

	e1 = part1->Energy();
	pz1 = part1->Pz();
	py1 = part1->Py();
	px1 = part1->Px();
	phi1 = part1->Phi();
	phi1 = Phideg(phi1);
	rapmc1=Rap(e1,pz1);
	charge1 = part1->GetPDG()->Charge()/3;
    }
    else{
	if(pdg0==-13){
	    e1 = part0->Energy();
	    pz1 = part0->Pz();
	    py1 = part0->Py();
	    px1 = part0->Px();
	    phi1 = part0->Phi();
	    phi1 = Phideg(phi1);    
	    rapmc1=Rap(e1,pz1);
	    charge1 = part0->GetPDG()->Charge()/3;
	    
	    e0 = part1->Energy();
	    pz0 = part1->Pz();
	    py0 = part1->Py();
	    px0 = part1->Px();
	    phi0 = part1->Phi();
	    phi0 = Phideg(phi0);
	    rapmc0=Rap(e0,pz0); 
	    charge0 = part1->GetPDG()->Charge()/3;
	}
    }
    
    if(pdg0==13 || pdg1==13) { 

	Float_t pmc = TMath::Sqrt((px0+px1)*(px0+px1)+(py0+py1)*(py0+py1)+
				   (pz0+pz1)*(pz0+pz1));
	Float_t ptmc = TMath::Sqrt((px0+px1)*(px0+px1)+(py0+py1)*(py0+py1));
	Float_t imassmc = Imass(e0,px0,py0,pz0,e1,px1,py1,pz1);
	//Float_t rapmc_check=Rap((e0+e1),(pz0+pz1));
	
	Double_t costCS = CostCS((Double_t) px0,(Double_t) py0,(Double_t) pz0,(Double_t) e0, (Double_t)charge0,(Double_t) px1,(Double_t) py1,(Double_t) pz1,(Double_t) e1, beamEnergy);
	Double_t costHE = CostHE((Double_t) px0,(Double_t) py0,(Double_t) pz0,(Double_t) e0, (Double_t)charge0,(Double_t) px1,(Double_t) py1,(Double_t) pz1,(Double_t) e1);
	Double_t phiCS = PhiCS((Double_t) px0,(Double_t) py0,(Double_t) pz0,(Double_t) e0, (Double_t)charge0,(Double_t) px1,(Double_t) py1,(Double_t) pz1,(Double_t) e1, beamEnergy);
	Double_t phiHE = PhiHE((Double_t) px0,(Double_t) py0,(Double_t) pz0,(Double_t) e0, (Double_t)charge0,(Double_t) px1,(Double_t) py1,(Double_t) pz1,(Double_t) e1, beamEnergy);

	containerInput[0] = fNevt+0.5 ;   
	containerInput[1] = rapmc0 ;   
	containerInput[2] = phi0 ;   
	containerInput[3] = rapmc1 ;   
	containerInput[4] = phi1 ;   
	containerInput[5] = imassmc ;   
	containerInput[6] = rapmc ;   
	containerInput[7] = ptmc;
	containerInput[8] = pmc;	
	containerInput[9] = costCS;	
	containerInput[10] = phiCS;	
	containerInput[11] = costHE;	
	containerInput[12] = phiHE;	

	// fill the container at the first step
	fCFManager->GetParticleContainer()->Fill(containerInput,0);
    }
  }    

////////
//// ESD
////////
  
  AliESDEvent *fESD; 
  AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*>
      (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
  // CHECK
  if ( ! esdH ) {
    AliError("Cannot get input event handler");
    return;
  }      
      
  fESD = esdH->GetEvent();
  Int_t mult1 = fESD->GetNumberOfMuonTracks() ;

 
    for (Int_t j = 0; j<mult1; j++) { 
	AliESDMuonTrack* mu1 = new AliESDMuonTrack(*(fESD->GetMuonTrack(j)));
	Float_t zr1 = mu1->Charge();
// Select mu-
	if(zr1<0){
	    Float_t pxr1 = mu1->Px();
	    Float_t pyr1 = mu1->Py();
	    Float_t pzr1 = mu1->Pz();
	    Float_t phir1 = mu1->Phi(); 
	    phir1=Phideg(phir1);
 	    Float_t er1 = mu1->E();
	    Float_t rap1=Rap(er1,pzr1);
	    // selection of the rapidity for first muon
	    if (!fCFManager->CheckParticleCuts(AliCFManager::kPartAccCuts,mu1)) continue;

	    for (Int_t jj = 0; jj<mult1; jj++) {
		AliESDMuonTrack* mu2 = new AliESDMuonTrack(*(fESD->GetMuonTrack(jj)));
		Float_t zr2 = mu2->Charge();
// Select mu+
		if(zr2>0 && jj !=j){
		    Float_t pxr2 = mu2->Px();
		    Float_t pyr2 = mu2->Py();
		    Float_t pzr2 = mu2->Pz();
		    Float_t phir2 = mu2->Phi();
		    phir2 = Phideg(phir2);
		    Float_t er2 = mu2->E();
		    Float_t rap2=Rap(er2,pzr2);
		    // selection of the rapidity for second muon
		    if (!fCFManager->CheckParticleCuts(AliCFManager::kPartAccCuts,mu2)) continue;

		    Float_t prec = TMath::Sqrt((pxr1+pxr2)*(pxr1+pxr2)+(pyr1+pyr2)*(pyr1+pyr2)+
						(pzr1+pzr2)*(pzr1+pzr2));
		    Float_t ptrec = TMath::Sqrt((pxr1+pxr2)*(pxr1+pxr2)+(pyr1+pyr2)*(pyr1+pyr2));
		    Float_t raprec=Rap((er1+er2),(pzr1+pzr2));
		    Float_t imassrec = Imass(er1,pxr1,pyr1,pzr1,er2,pxr2,pyr2,pzr2);
		    
		    Double_t costCSrec = CostCS((Double_t) pxr1,(Double_t) pyr1,(Double_t)pzr1,(Double_t) er1, (Double_t)zr1,(Double_t) pxr2,(Double_t) pyr2,(Double_t)pzr2,(Double_t) er2, beamEnergy);
		    Double_t costHErec = CostHE((Double_t) pxr1,(Double_t) pyr1,(Double_t)pzr1,(Double_t) er1, (Double_t)zr1,(Double_t) pxr2,(Double_t) pyr2,(Double_t)pzr2,(Double_t) er2);
		    Double_t phiCSrec = PhiCS((Double_t) pxr1,(Double_t) pyr1,(Double_t)pzr1,(Double_t) er1, (Double_t)zr1,(Double_t) pxr2,(Double_t) pyr2,(Double_t)pzr2,(Double_t) er2, beamEnergy);
		    Double_t phiHErec = PhiHE((Double_t) pxr1,(Double_t) pyr1,(Double_t)pzr1,(Double_t) er1, (Double_t)zr1,(Double_t) pxr2,(Double_t) pyr2,(Double_t)pzr2,(Double_t) er2, beamEnergy);

		    containerInput[0] = fNevt+0.5 ;   
		    containerInput[1] = rap1 ;   
		    containerInput[2] = phir1 ;   
		    containerInput[3] = rap2 ;
		    containerInput[4] = phir2 ;   
		    containerInput[5] = imassrec ;   
		    containerInput[6] = raprec ;   
		    containerInput[7] = ptrec;
		    containerInput[8] = prec;
		    containerInput[9] = costCSrec;	
		    containerInput[10] = phiCSrec;	
		    containerInput[11] = costHErec;	
		    containerInput[12] = phiHErec;	
		    
		    // fill the container at the second step
		    fCFManager->GetParticleContainer()->Fill(containerInput,1);

		}  // mu+ Selection
	    }      // second mu Loop
	}          // mu- Selection
    }        
 
//  ----------
  fHistEventsProcessed->Fill(0);
  PostData(1,fHistEventsProcessed) ;
  PostData(2,fCFManager->GetParticleContainer()) ;
}
//________________________________________________________________________
Float_t AliCFMuonResTask1::Imass(Float_t e1, Float_t px1, Float_t py1, Float_t pz1,
				   Float_t e2, Float_t px2, Float_t py2, Float_t pz2) const
{
// invariant mass calculation
    Float_t imassrec = TMath::Sqrt((e1+e2)*(e1+e2)-((px1+px2)*(px1+px2)+
                                    (py1+py2)*(py1+py2)+(pz1+pz2)*(pz1+pz2)));
    return imassrec;
}
//________________________________________________________________________
Float_t AliCFMuonResTask1::Rap(Float_t e, Float_t pz) const
{
// calculate rapidity
    Float_t rap;
    if(TMath::Abs(e-pz)>1e-7){
	rap = 0.5*TMath::Log((e+pz)/(e-pz));
	return rap;
    }
    else{
	rap = -200;
	return rap;
    }
}
//________________________________________________________________________
Float_t AliCFMuonResTask1::Phideg(Float_t phi) const
{
// calculate Phi in range [-180,180] 
    Float_t phideg;
    
	phideg = phi-TMath::Pi();
	phideg = phideg*57.296;
	return phideg;
}
//________________________________________________________________________
Double_t AliCFMuonResTask1::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,
Double_t Energy)
{
// calculate costCS
  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.,-Energy,TMath::Sqrt(Energy*Energy+mp*mp)); 
  pTargCM.SetPxPyPzE(0.,0.,Energy,TMath::Sqrt(Energy*Energy+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();
  pMu1Dimu=pMu1CM;
  pMu2Dimu=pMu2CM;
  pProjDimu=pProjCM;
  pTargDimu=pTargCM;
  pMu1Dimu.Boost(beta);
  pMu2Dimu.Boost(beta);
  pProjDimu.Boost(beta);
  pTargDimu.Boost(beta);
  //
  // --- 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 AliCFMuonResTask1::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)
{
// calculate costHE
  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();
  pMu1Dimu=pMu1CM;
  pMu2Dimu=pMu2CM;
  pMu1Dimu.Boost(beta);
  pMu2Dimu.Boost(beta);
  //
  // --- 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 AliCFMuonResTask1::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,
Double_t Energy)
{
// calculate phiCS
   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.,-Energy,TMath::Sqrt(Energy*Energy+mp*mp)); 
   pTargCM.SetPxPyPzE(0.,0.,Energy,TMath::Sqrt(Energy*Energy+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();
   pMu1Dimu=pMu1CM;
   pMu2Dimu=pMu2CM;
   pProjDimu=pProjCM;
   pTargDimu=pTargCM;
   pMu1Dimu.Boost(beta);
   pMu2Dimu.Boost(beta);
   pProjDimu.Boost(beta);
   pTargDimu.Boost(beta);
   //
   // --- 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;
   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)));
     
   return phi;
}
//________________________________________________________________________

//________________________________________________________________________
Double_t AliCFMuonResTask1::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, Double_t Energy)
{
// calculate phiHE
   TLorentzVector pMu1CM, pMu2CM, pProjCM, pTargCM, pDimuCM; // In the CM 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 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
   // 
   zaxis=(pDimuCM.Vect()).Unit();
 
   beta=(-1./pDimuCM.E())*pDimuCM.Vect();
 
   pProjCM.SetPxPyPzE(0.,0.,-Energy,TMath::Sqrt(Energy*Energy+mp*mp));
   pTargCM.SetPxPyPzE(0.,0.,Energy,TMath::Sqrt(Energy*Energy+mp*mp)); 
 
   pProjDimu=pProjCM;
   pTargDimu=pTargCM;
 
   pProjDimu.Boost(beta);
   pTargDimu.Boost(beta);
   
   yaxis=((pProjDimu.Vect()).Cross(pTargDimu.Vect())).Unit();
   xaxis=(yaxis.Cross(zaxis)).Unit();
   
   pMu1Dimu=pMu1CM;
   pMu2Dimu=pMu2CM;
   pMu1Dimu.Boost(beta);
   pMu2Dimu.Boost(beta);
 
   Double_t phi;
   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 AliCFMuonResTask1::Terminate(Option_t *) 
{
  // draw result of the Invariant mass MC and ESD

    AliCFContainer *cont = dynamic_cast<AliCFContainer*> (GetOutputData(2));   
    if ( ! cont ) {
      AliError("Cannot find container in file");
      return;
    }

    TH1D *kmass = cont->ShowProjection(5,0);
    TH1D *rmass = cont->ShowProjection(5,1);
    TH1D *kcostCS = cont->ShowProjection(9,0);
    TH1D *rcostCS = cont->ShowProjection(9,1);

    TCanvas *c1 = new TCanvas("AliCFMuonResTask1","JPSI MC & ESD",10,10,510,510);
    c1->Divide(2,2);
    c1->cd(1);
    kmass->Draw("HIST");
    c1->cd(2);
    rmass->Draw("HIST");
    c1->cd(3);
    kcostCS->Draw("HIST");
    c1->cd(4);
    rcostCS->Draw("HIST");
}
//________________________________________________________________________

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