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.                  *
 **************************************************************************/

//-----------------------------------------------------------------------
// 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)
//-----------------------------------------------------------------------
// Modification done by S. Ahn - LPC Clermont (fr), Konkuk University (kr)
//-----------------------------------------------------------------------



#ifndef ALICFMUONRESUPSILON_CXX
#define ALICFMUONRESUPSILON_CXX

#include "TH1.h"
#include "TParticle.h"
#include "TChain.h"
#include "TLorentzVector.h"
#include "TCanvas.h"

#include "AliHeader.h"
#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliAnalysisManager.h"
#include "AliLog.h"

#include "AliVEvent.h"
#include "AliPhysicsSelection.h"

#include "AliCFMuonResUpsilon.h"
#include "AliCFManager.h"
#include "AliCFCutBase.h"
#include "AliCFContainer.h"

#include "AliESDEvent.h"
#include "AliESDHeader.h"
#include "AliESDtrack.h"
#include "AliESDMuonTrack.h"
#include "AliESDtrack.h"
#include "AliESDInputHandler.h"

#include "AliAODEvent.h"
#include "AliAODInputHandler.h"
#include "AliAODMCParticle.h"

ClassImp(AliCFMuonResUpsilon)

//__________________________________________________________________________
AliCFMuonResUpsilon::AliCFMuonResUpsilon() :
	AliAnalysisTaskSE(""),
	fReadAODData(kFALSE),
	fReadMCInfo(kFALSE),
  fCFManager(0x0),
	fnevts(0x0),
	fIsPhysSelMB(kFALSE),
	fIsPhysSelMUON(kFALSE),
  fQAHistList(0x0),
	fPDG(0),
	fPtMin(0),
	fPtMax(0),
	fYMin(0),
	fYMax(0),
	fTrigClassMuon(""),
	fTrigClassInteraction(""),
	fDistinguishTrigClass(kTRUE)
{

  //Default ctor

}
//___________________________________________________________________________
AliCFMuonResUpsilon::AliCFMuonResUpsilon(const Char_t* name) :
  AliAnalysisTaskSE(name),
	fReadAODData(kFALSE),
	fReadMCInfo(kFALSE),
  fCFManager(0x0),
	fnevts(0x0),
	fIsPhysSelMB(kFALSE),
	fIsPhysSelMUON(kFALSE),
  fQAHistList(0x0),
	fPDG(0),
	fPtMin(0),
	fPtMax(0),
	fYMin(0),
	fYMax(0),
	fTrigClassMuon(""),
	fTrigClassInteraction(""),
	fDistinguishTrigClass(kTRUE)
{

  // Constructor. Initialization of Inputs and Outputs

  Info("AliCFMuonResUpsilon","Calling Constructor");

 	fnevts	= new TH1D("fnevts","fnevts",5,0,5);							// nevent CINT1B,CMUS1B + PhysSel

	TString nameside[3]={"AC","B","E"};

  SetTrigClassMuonName();
  SetTrigClassInteracName();
  SetTrigClassSideName(nameside);

	DefineInput(0, TChain::Class());
	DefineOutput(1,TH1D::Class());
  DefineOutput(2,AliCFContainer::Class());
}

//___________________________________________________________________________
AliCFMuonResUpsilon& AliCFMuonResUpsilon::operator=(const AliCFMuonResUpsilon& c) 
{

  // Assignment operator
	
  if (this!=&c) {
    AliAnalysisTaskSE::operator=(c);
    fReadAODData = c.fReadAODData;
		fReadMCInfo = c.fReadMCInfo;
    fCFManager  = c.fCFManager;
    fQAHistList = c.fQAHistList;
		fnevts = c.fnevts;
		fPDG = c.fPDG;
		fPtMin = c.fPtMin;
		fPtMax = c.fPtMax;
		fYMin = c.fYMin;
		fYMax = c.fYMax;
  }
  return *this;
}

//___________________________________________________________________________
AliCFMuonResUpsilon::AliCFMuonResUpsilon(const AliCFMuonResUpsilon& c) :
  AliAnalysisTaskSE(c),
  fReadAODData(c.fReadAODData),
	fReadMCInfo(c.fReadMCInfo),
  fCFManager(c.fCFManager),
	fnevts(c.fnevts),
	fIsPhysSelMB(kFALSE),
	fIsPhysSelMUON(kFALSE),
  fQAHistList(c.fQAHistList),
	fPDG(c.fPDG),
	fPtMin(c.fPtMin),
	fPtMax(c.fPtMax),
	fYMin(c.fYMin),
	fYMax(c.fYMax),
  fTrigClassMuon(c.fTrigClassMuon),
  fTrigClassInteraction(c.fTrigClassInteraction),
  fDistinguishTrigClass(c.fDistinguishTrigClass)
{

  // Copy Constructor

}

//___________________________________________________________________________
AliCFMuonResUpsilon::~AliCFMuonResUpsilon() {
  
  //destructor
 
  Info("~AliCFMuonResUpsilon","Calling Destructor");
  if (fCFManager)           delete fCFManager ;
	if (fnevts)								delete fnevts ;
  if (fQAHistList) 					{fQAHistList->Clear(); delete fQAHistList;}
}
//___________________________________________________________________________
void AliCFMuonResUpsilon::UserCreateOutputObjects() {
	// UserCreateOutputObjects

 	//TH1D *fnevts	= new TH1D("fnevts","fnevts",5,0,5);							// nevent CINT1B,CMUS1B + PhysSel

  PostData(1,fnevts) ;
  PostData(2,fCFManager->GetParticleContainer()) ;
}

//_________________________________________________
void AliCFMuonResUpsilon::UserExec(Option_t *)
{
  
  // Main loop function
   
 	// variables
	fIsPhysSelMB=kFALSE;			// physics selection : MB
	fIsPhysSelMUON=kFALSE;		// physics selection : MUON

  Double_t containerInput[14] = {0,} ;

  fnevts->Fill(0.5);
	containerInput[0] = 0.5;
 
	if(!fReadAODData) { 	// ESD-based ANALYSIS

		Bool_t flag=kFALSE;

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

			// MC part ----------------------------------------------------------------------------------
			fCFManager->SetMCEventInfo(fMCEvent);  
  		AliStack *stack = fMCEvent->Stack();
			Int_t npart=fMCEvent->GetNumberOfTracks();

			//printf("ESD: npart=%d\n", npart);

  		for (Int_t ipart=0; ipart<npart; ipart++) { 

				AliMCParticle *mcPart  = (AliMCParticle*)fMCEvent->GetTrack(ipart);

    		// Mother kinematics
  	 		TParticle *part = mcPart->Particle(); 
    		Double_t e = part->Energy();
    		Double_t pz = part->Pz();           
    		Double_t rapmc = Rap(e,pz);

				// Selection of the resonance
    		if(!fCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,mcPart)) continue;
				if(part->Pt()<0 || part->Pt()>1000) continue;
				if(rapmc<-4 || rapmc>-2.4) continue;

				// Decays kinematics
    		Int_t p0 = part->GetDaughter(0);
    		TParticle *part0 = stack->Particle(p0); 
				AliMCParticle *mcpart0 = new AliMCParticle(part0);
    		Int_t pdg0 = part0->GetPdgCode();

    		Int_t p1 = part->GetDaughter(1);
    		TParticle *part1 = stack->Particle(p1);
				AliMCParticle *mcpart1 = new AliMCParticle(part1);
    		Int_t pdg1 = part1->GetPdgCode();

				Double_t e0 = part0->Energy();
				Double_t pz0 = part0->Pz();
				Double_t py0 = part0->Py();
				Double_t px0 = part0->Px();
				Double_t charge0 = part0->GetPDG()->Charge()/3;
				Double_t pt0 = TMath::Sqrt(px0*px0+py0*py0);
				Double_t theta0 = (180./TMath::Pi())*TMath::ATan2(TMath::Sqrt(px0*px0+py0*py0),pz0);
				Double_t eta0 = part0->Eta();
				Double_t vz0 = part0->Vz();
				Double_t mom0 = part0->P();

    		if(!fCFManager->CheckParticleCuts(AliCFManager::kPartAccCuts,mcpart0)) continue;
				if(pt0<0.5) continue;
				if(theta0<171. || theta0>178.) continue;

				Double_t e1 = part1->Energy();
				Double_t pz1 = part1->Pz();
				Double_t py1 = part1->Py();
				Double_t px1 = part1->Px();
				Double_t charge1 = part1->GetPDG()->Charge()/3;
				Double_t pt1 = TMath::Sqrt(px1*px1+py1*py1);
				Double_t theta1 = (180./TMath::Pi())*TMath::ATan2(TMath::Sqrt(px1*px1+py1*py1),pz1);
				Double_t eta1 = part1->Eta();
				Double_t vz1 = part1->Vz();
				Double_t mom1 = part1->P();

    		if(!fCFManager->CheckParticleCuts(AliCFManager::kPartAccCuts,mcpart1)) continue;
				if(pt1<0.5) continue;
				if(theta1<171. || theta1>178.) continue;

		    if(pdg0==-13 || pdg1==-13) { 

					Double_t ptmc = TMath::Sqrt((px0+px1)*(px0+px1)+(py0+py1)*(py0+py1));
					Double_t imassmc = Imass(e0,px0,py0,pz0,e1,px1,py1,pz1);
					if(!imassmc) continue;

					containerInput[1] = rapmc ;   
					containerInput[2] = ptmc ;
					containerInput[3] = imassmc ;   
					containerInput[4] = 1. ;
					containerInput[5] = pt0 ;   
					containerInput[5] = pt1 ;   
					containerInput[6] = mom0 ;   
					containerInput[6] = mom1 ;   
					containerInput[7] = 1. ;
					containerInput[8] = 0. ;
					containerInput[8] = 0. ;
					containerInput[9] = charge0+charge1 ;
					containerInput[10] = eta0;
					containerInput[10] = eta1;
					containerInput[11] = theta0;
					containerInput[11] = theta1;
					containerInput[12] = vz0;
					containerInput[12] = vz1;
					containerInput[13] = 0;
					containerInput[13] = 0;

					// fill the container at the first step
					fCFManager->GetParticleContainer()->Fill(containerInput,0);		// MC container
					flag=kTRUE;
    		}	// second mu loop
			}	// first mu loop
		} // end fReadMCInfo

		if(fReadMCInfo && !flag) return;
		// RECO : ESD part ----------------------------------------------------------------------------------

		// ESD handler
  	AliESDEvent *fESD = 0x0;

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

	
		Int_t ntrk=fESD->GetNumberOfMuonTracks();

		Int_t trigfired=-1;
		Int_t trigside=-1;

		if(!fReadMCInfo) {
			fIsPhysSelMB=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kMB));
			fIsPhysSelMUON=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kMUON));

			if(fDistinguishTrigClass) {
				TString trigclass = fESD->GetFiredTriggerClasses();
				if(trigclass.Contains(fTrigClassMuon)) trigfired = 1;
				else if(trigclass.Contains(fTrigClassInteraction)) trigfired = 0;
				for(Int_t i=0;i<3;i++) {
					if(trigfired==1 && trigclass.Contains(fTrigClassSide[i])) {trigside=i;}
					if(trigfired==0 && trigclass.Contains(fTrigClassSide[i])) {trigside=i;}
				}
			}
	
  		if(trigside==1) {	// Beam-Beam event
				if(trigfired) {	// CMUS1-B
					containerInput[0]=3.5;
					fnevts->Fill(3.5);
					if(fIsPhysSelMUON) { 
						containerInput[0]=4.5;
						fnevts->Fill(4.5);	// PhysSel
					}
				} else {	// CINT1-B
					containerInput[0]=1.5;
					fnevts->Fill(1.5);
					if(fIsPhysSelMB) {
						containerInput[0]=2.5;
						fnevts->Fill(2.5);	// PhysSel
					}
				}
			}
		}
		else trigside = 0;	// for MC

		for(Int_t j=0; j<ntrk-1; j++) {
			for(Int_t jj=j+1; jj<ntrk; jj++) {
				AliESDMuonTrack *mu1 = new AliESDMuonTrack(*(fESD->GetMuonTrack(j)));
				AliESDMuonTrack *mu2 = new AliESDMuonTrack(*(fESD->GetMuonTrack(jj)));

				Double_t trigCondition = 0;
				if (mu1->GetMatchTrigger()>=mu2->GetMatchTrigger()) trigCondition = mu1->GetMatchTrigger()+0.1*mu2->GetMatchTrigger();
				else trigCondition = mu2->GetMatchTrigger()+0.1*mu1->GetMatchTrigger();

				// mu1
				Double_t zr1 = mu1->Charge();
				Double_t pxr1 = mu1->Px();
				Double_t pyr1 = mu1->Py();
				Double_t pzr1 = mu1->Pz();
     		Double_t ptr1 = TMath::Sqrt(pxr1*pxr1+pyr1*pyr1);
	 			Double_t er1 = mu1->E();
				Double_t momr1 = mu1->P();
				Double_t vzr1 = mu1->GetZ();
				Double_t dcar1 = mu1->GetDCA();
				Double_t rabsr1 = mu1->GetRAtAbsorberEnd();
				Double_t thetaabsr1 = 180.*(1.-TMath::ATan(rabsr1/505.)/TMath::Pi());  // [deg]
				Double_t thetaabsr12 = (thetaabsr1*TMath::Pi()/180.)/2.;
				Double_t tanthetaabsr1 = TMath::Tan(thetaabsr12);
				Double_t etar1 = -TMath::Log(tanthetaabsr1);

				if(Rap(er1,pzr1)<-4 || Rap(er1,pzr1)>-2.5) continue;

				// mu2
				Double_t zr2 = mu2->Charge();
				Double_t pxr2 = mu2->Px();
				Double_t pyr2 = mu2->Py();
				Double_t pzr2 = mu2->Pz();
     		Double_t ptr2 = TMath::Sqrt(pxr2*pxr2+pyr2*pyr2);
	 			Double_t er2 = mu2->E();
				Double_t momr2 = mu2->P();
				Double_t vzr2 = mu2->GetZ();
				Double_t dcar2 = mu2->GetDCA();
				Double_t rabsr2 = mu2->GetRAtAbsorberEnd();
				Double_t thetaabsr2 = 180.*(1.-TMath::ATan(rabsr2/505.)/TMath::Pi());  // [deg]
				Double_t thetaabsr22 = (thetaabsr2*TMath::Pi()/180.)/2.;
				Double_t tanthetaabsr2 = TMath::Tan(thetaabsr22);
				Double_t etar2 = -TMath::Log(tanthetaabsr2);

				if(Rap(er2,pzr2)<-4 || Rap(er2,pzr2)>-2.5) continue;

				// for MC
				if(fReadMCInfo) {
					//mu1
					rabsr1 = 0;
					Double_t thetar1 = (180./TMath::Pi())*TMath::ATan2(TMath::Sqrt(pxr1*pxr1+pyr1*pyr1),pzr1);
					thetaabsr1 = thetar1;
					etar1 = mu1->Eta();
					//mu2
					rabsr2 = 0;
					Double_t thetar2 = (180./TMath::Pi())*TMath::ATan2(TMath::Sqrt(pxr2*pxr2+pyr2*pyr2),pzr2);
					thetaabsr2 = thetar2;
					etar2 = mu2->Eta();
				}
					
				if(TMath::Abs(etar1) > 8 || TMath::Abs(etar2) > 8) continue;

				// dimuon
				Double_t ptrec = TMath::Sqrt((pxr1+pxr2)*(pxr1+pxr2)+(pyr1+pyr2)*(pyr1+pyr2));
				Double_t raprec= Rap((er1+er2),(pzr1+pzr2));
				Double_t imassrec = Imass(er1,pxr1,pyr1,pzr1,er2,pxr2,pyr2,pzr2);
				if(!imassrec) continue;

				containerInput[1] = raprec ;   
				containerInput[2] = ptrec ;
				containerInput[3] = imassrec ;   
				containerInput[4] = trigCondition+0.05 ;
				containerInput[5] = ptr1 ;   
				containerInput[5] = ptr2 ;   
				containerInput[6] = momr1;
				containerInput[6] = momr2;
				containerInput[7] = trigside;
				containerInput[8] = rabsr1;
				containerInput[8] = rabsr2;
				containerInput[9] = zr1 + zr2;
				containerInput[10] = etar1;
				containerInput[10] = etar2;
				containerInput[11] = thetaabsr1;
				containerInput[11] = thetaabsr2;
				containerInput[12] = vzr1;
				containerInput[12] = vzr2;
				containerInput[13] = dcar1;
				containerInput[13] = dcar2;
				
	  		if (trigfired==1 && trigside==1) fCFManager->GetParticleContainer()->Fill(containerInput,4);
	  		if (trigfired==0 && trigside==1) fCFManager->GetParticleContainer()->Fill(containerInput,1);
				if(fReadMCInfo) fCFManager->GetParticleContainer()->Fill(containerInput,1); // Rec container
			}	// second mu loop
		}	// first mu loop
	} // end ESD-based ANALYSIS

	else { 	// AOD-based ANALYSIS

		Bool_t flag=kTRUE;

		// AOD handler
		AliAODEvent *fAOD = 0x0;

  	AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
		if( ! aodH) {
			AliError("Cannot get input event handler");
			return;
		}
		fAOD = aodH->GetEvent();

		// MC part -----------------------------------------------------------------------------------

		if(fReadMCInfo) {
			TClonesArray *mcArr = dynamic_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
			if( ! mcArr) {
			  AliError("Cannot get MC innf in AOD MC branch");
			  return;
			}
			Int_t npart=mcArr->GetEntries();

			for(Int_t i=0; i<npart; i++) {
				AliAODMCParticle *mctrack = (AliAODMCParticle*) mcArr->At(i);
				// select resonance
				if(mctrack->GetPdgCode()!=fPDG) continue;
				// cuts on resonance
				if(!(mctrack->Pt()>0 && mctrack->Pt()<1000) || !(Rap(mctrack->E(),mctrack->Pz())>-4 && Rap(mctrack->E(),mctrack->Pz())<-2.4)) continue;
				Int_t daug0 = mctrack->GetDaughter(0);
				Int_t daug1 = mctrack->GetDaughter(1);
				// daughter1
				AliAODMCParticle *mcdaug0 = (AliAODMCParticle*) mcArr->At(daug0);
				Double_t pt0 = mcdaug0->Pt();
				Double_t mom0 = mcdaug0->P();
				Double_t theta0 = (180./TMath::Pi())*mcdaug0->Theta();
				Double_t eta0 = mcdaug0->Eta();
				Int_t charge0 = (Int_t) mcdaug0->Charge()/3;
				Double_t vz0 = mcdaug0->Zv();
				if(!(pt0>0.5) || !(theta0>171. && theta0<178.)) continue;
				// daughter2
				AliAODMCParticle *mcdaug1 = (AliAODMCParticle*) mcArr->At(daug1);
				Double_t pt1 = mcdaug1->Pt();
				Double_t mom1 = mcdaug1->P();
				Double_t theta1 = (180./TMath::Pi())*mcdaug1->Theta();
				Double_t eta1 = mcdaug1->Eta();
				Int_t charge1 = (Int_t) mcdaug1->Charge()/3;
				Double_t vz1 = mcdaug1->Zv();
				if(!(pt1>0.5) || !(theta1>171. && theta1<178.)) continue;

				if (TMath::Abs(mcdaug0->GetPdgCode())!=13 || TMath::Abs(mcdaug1->GetPdgCode())!=13) continue;

				Double_t rapmc = Rap(mctrack->E(), mctrack->Pz());
				Double_t ptmc = mctrack->Pt();
				Double_t imassmc = mctrack->M();
				if(!imassmc) continue;

				containerInput[1] = rapmc ;   
				containerInput[2] = ptmc ;
				containerInput[3] = imassmc ;   
				containerInput[4] = 1. ;
				containerInput[5] = pt0 ;   
				containerInput[5] = pt1 ;   
				containerInput[6] = mom0 ;   
				containerInput[6] = mom1 ;   
				containerInput[7] = 1. ;
				containerInput[8] = 0. ;
				containerInput[8] = 0. ;
				containerInput[9] = charge0+charge1 ;
				containerInput[10] = eta0;
				containerInput[10] = eta1;
				containerInput[11] = theta0;
				containerInput[11] = theta1;
				containerInput[12] = vz0;
				containerInput[12] = vz1;
				containerInput[13] = 0;
				containerInput[13] = 0;

	  		fCFManager->GetParticleContainer()->Fill(containerInput,0);	// MC container
				flag=kTRUE;
			}
		}

if(fReadMCInfo && !flag) return;

		// RECO : AOD part ----------------------------------------------------------------------------------


		Int_t trigfired=-1;
		Int_t trigside=-1;

		Int_t ntrk = fAOD->GetNumberOfTracks();

		if(!fReadMCInfo) {
			fIsPhysSelMB=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kMB));
			fIsPhysSelMUON=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kMUON));

			if(fDistinguishTrigClass) {
				TString trigclass = fAOD->GetFiredTriggerClasses();
				if(trigclass.Contains(fTrigClassMuon)) trigfired = 1;
				else if(trigclass.Contains(fTrigClassInteraction)) trigfired = 0;
				for(Int_t i=0;i<3;i++) {
					if(trigfired==1 && trigclass.Contains(fTrigClassSide[i].Data())) {trigside=i;} 
					if(trigfired==0 && trigclass.Contains(fTrigClassSide[i].Data())) {trigside=i;}
				}
			}
	
  		if(trigside==1) {	// Beam-Beam event
				if(trigfired) {	// CMUS1-B
					containerInput[0]=3.5;
					fnevts->Fill(3.5);
					if(fIsPhysSelMUON) { 
						containerInput[0]=4.5;
						fnevts->Fill(4.5);	// PhysSel
					}
				} else {	// CINT1-B
					containerInput[0]=1.5;
					fnevts->Fill(1.5);
					if(fIsPhysSelMB) {
						containerInput[0]=2.5;
						fnevts->Fill(2.5);	// PhysSel
					}
				}
			}
		}
		else trigside = 0;	// for MC


		for(Int_t j=0; j<ntrk; j++) {
			for(Int_t jj=j+1; jj<ntrk; jj++) {
				AliAODTrack *mu1 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(j));
				if(!mu1) AliFatal("Not a standard AOD");
				if(!mu1->IsMuonTrack() || !(mu1->Y()>-4 && mu1->Y()<-2.5)) continue;
				AliAODTrack *mu2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(jj));
				if(!mu2) AliFatal("Not a standard AOD");
				if(!mu2->IsMuonTrack() || !(mu2->Y()>-4 && mu2->Y()<-2.5)) continue;

	     	Double_t trigCondition=0;
	     	if (mu1->GetMatchTrigger()>=mu2->GetMatchTrigger()) trigCondition = mu1->GetMatchTrigger()+0.1*mu2->GetMatchTrigger();
				else trigCondition = mu2->GetMatchTrigger()+0.1*mu1->GetMatchTrigger();	    

				// mu1
				Double_t zr1 = mu1->Charge();
				Double_t pxr1 = mu1->Px();
				Double_t pyr1 = mu1->Py();
				Double_t pzr1 = mu1->Pz();
				Double_t ptr1 = TMath::Sqrt(pxr1*pxr1+pyr1*pyr1);
				Double_t er1 = mu1->E();
				Double_t momr1 = mu1->P();
				Double_t vzr1 = mu1->Zv();
				Double_t dcar1 = mu1->DCA();
				Double_t rabsr1 = mu1->GetRAtAbsorberEnd();
				Double_t thetaabsr1 = 180.*(1.-TMath::ATan(rabsr1/505.)/TMath::Pi());	// [deg]
				Double_t thetaabsr12 = (thetaabsr1*TMath::Pi()/180.)/2.;
				Double_t tanthetaabsr1 = TMath::Tan(thetaabsr12);
				Double_t etar1 = -TMath::Log(tanthetaabsr1);

				// mu2
				Double_t zr2 = mu2->Charge();
				Double_t pxr2 = mu2->Px();
				Double_t pyr2 = mu2->Py();
				Double_t pzr2 = mu2->Pz();
				Double_t ptr2 = TMath::Sqrt(pxr2*pxr2+pyr2*pyr2);
				Double_t er2 = mu2->E();
				Double_t momr2 = mu2->P();
				Double_t vzr2 = mu2->Zv();
				Double_t dcar2 = mu2->DCA();
				Double_t rabsr2 = mu1->GetRAtAbsorberEnd();
				Double_t thetaabsr2 = 180.*(1.-TMath::ATan(rabsr2/505.)/TMath::Pi());	// [deg]
				Double_t thetaabsr22 = (thetaabsr2*TMath::Pi()/180.)/2.;
				Double_t tanthetaabsr2 = TMath::Tan(thetaabsr22);
				Double_t etar2 = -TMath::Log(tanthetaabsr2);

				// for MC
				if(fReadMCInfo) {
					//mu1
					rabsr1 = 0;
					Double_t thetar1 = (180./TMath::Pi())*TMath::ATan2(TMath::Sqrt(pxr1*pxr1+pyr1*pyr1),pzr1);
					thetaabsr1 = thetar1;
					etar1 = mu1->Eta();
					//mu2
					rabsr2 = 0;
					Double_t thetar2 = (180./TMath::Pi())*TMath::ATan2(TMath::Sqrt(pxr2*pxr2+pyr2*pyr2),pzr2);
					thetaabsr2 = thetar2;
					etar2 = mu2->Eta();
				}
	
				if(TMath::Abs(etar1) > 8 || TMath::Abs(etar2) > 8) continue;

				// dimuon
				Double_t ptrec = TMath::Sqrt((pxr1+pxr2)*(pxr1+pxr2)+(pyr1+pyr2)*(pyr1+pyr2));
				Double_t raprec= Rap((er1+er2),(pzr1+pzr2));
				Double_t imassrec = Imass(er1,pxr1,pyr1,pzr1,er2,pxr2,pyr2,pzr2);
				if(!imassrec) continue;

				containerInput[1] = raprec ;   
				containerInput[2] = ptrec ;
				containerInput[3] = imassrec ;   
				containerInput[4] = trigCondition+0.05 ;
				containerInput[5] = ptr1 ;   
				containerInput[5] = ptr2 ;   
				containerInput[6] = momr1;
				containerInput[6] = momr2;
				containerInput[7] = trigside;
				containerInput[8] = rabsr1;
				containerInput[8] = rabsr2;
				containerInput[9] = zr1 + zr2;
				containerInput[10] = etar1;
				containerInput[10] = etar2;
				containerInput[11] = thetaabsr1;
				containerInput[11] = thetaabsr2;
				containerInput[12] = vzr1;
				containerInput[12] = vzr2;
				containerInput[13] = dcar1;
				containerInput[13] = dcar2;

	  		if (trigfired==1 && trigside==1) fCFManager->GetParticleContainer()->Fill(containerInput,4);
	  		if (trigfired==0 && trigside==1) fCFManager->GetParticleContainer()->Fill(containerInput,1);
				if(fReadMCInfo) fCFManager->GetParticleContainer()->Fill(containerInput,1); // Rec container

			} // second mu loop
		} // first mu loop
	} // end AOD-based ANALYSIS

	// end User analysis loop
}
//________________________________________________________________________
Double_t AliCFMuonResUpsilon::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 imass = (e1+e2)*(e1+e2)-((px1+px2)*(px1+px2)+(py1+py2)*(py1+py2)+(pz1+pz2)*(pz1+pz2));
		if(imass<0) return 0;
    Float_t imassrec = TMath::Sqrt((e1+e2)*(e1+e2)-((px1+px2)*(px1+px2)+(py1+py2)*(py1+py2)+(pz1+pz2)*(pz1+pz2)));
    return imassrec;
}
//________________________________________________________________________
Double_t AliCFMuonResUpsilon::Rap(Float_t e, Float_t pz) const
{
// calculate rapidity
    Float_t rap;
    if(e!=pz){
	rap = 0.5*TMath::Log((e+pz)/(e-pz));
	return rap;
    }
    else{
	rap = -200;
	return rap;
    }
}
//________________________________________________________________________
Double_t AliCFMuonResUpsilon::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)
{
	// CS angle
  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 AliCFMuonResUpsilon::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)
{
	// Helicity 
  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 AliCFMuonResUpsilon::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)
{
	// CS phi
   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 AliCFMuonResUpsilon::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)
{
	// Helicity phi
   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 AliCFMuonResUpsilon::Terminate(Option_t *) 
{
  // draw result of the Invariant mass MC and ESD

/*
		TH1D *h1 = dynamic_cast<TH1D*>(GetOutputData(1));
    AliCFContainer *cont = dynamic_cast<AliCFContainer*> (GetOutputData(2));   

    TH1D *kmass = cont->ShowProjection(3,0);
    TH1D *rmass = cont->ShowProjection(3,1);
		TH1D *mmass = cont->ShowProjection(3,4);

    TCanvas *c1 = new TCanvas("AliCFMuonResUpsilon","UPSILON Container",0,0,800,800);
    c1->Divide(2,2);
    c1->cd(1);
    kmass->Draw("HIST");
    c1->cd(2);
    rmass->Draw("HIST");
		c1->cd(3);
		mmass->Draw("HIST");
		c1->cd(4);
		h1->Draw("HIST");
		*/
}
//________________________________________________________________________

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