#include <TAxis.h>
#include <TH1D.h>
#include "THnSparse.h"
#include "AliESDtrack.h"
#include "AliRecInfoCuts.h"
#include "AliMCInfoCuts.h"
#include "AliLog.h"
#include "AliESDVertex.h"
#include "AliExternalTrackParam.h"
#include "AliTracker.h"
#include "AliESDEvent.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliHeader.h"
#include "AliGenEventHeader.h"
#include "AliStack.h"
#include "AliPerformanceEff.h"
using namespace std;
ClassImp(AliPerformanceEff)
AliPerformanceEff::AliPerformanceEff(const Char_t* name, const Char_t* title, Int_t analysisMode, Bool_t hptGenerator): AliPerformanceObject(name,title),
fEffHisto(0),
fEffSecHisto(0),
fCutsRC(0),
fCutsMC(0),
fAnalysisFolder(0)
{
SetAnalysisMode(analysisMode);
SetHptGenerator(hptGenerator);
Init();
}
AliPerformanceEff::~AliPerformanceEff()
{
if(fEffHisto) delete fEffHisto; fEffHisto=0;
if(fEffSecHisto) delete fEffSecHisto; fEffSecHisto=0;
if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;
}
void AliPerformanceEff::Init()
{
Int_t nPtBins = 50;
Double_t ptMin = 1.e-2, ptMax = 20.;
Double_t *binsPt = 0;
if (IsHptGenerator()) {
ptMax = 100.;
}
binsPt = CreateLogAxis(nPtBins,ptMin,ptMax);
Int_t binsEffHisto[9]={30,144,nPtBins,5,2,2,3,fgkMaxClones+1,fgkMaxFakes+1};
Double_t minEffHisto[9]={-1.5,0.,ptMin,0.,0.,0.,-1.5,0,0};
Double_t maxEffHisto[9]={ 1.5,2.*TMath::Pi(), ptMax,5.,2.,2.,1.5,fgkMaxClones+1,fgkMaxFakes+1};
fEffHisto = new THnSparseF("fEffHisto","mceta:mcphi:mcpt:pid:recStatus:findable:charge:nclones:nfakes",9,binsEffHisto,minEffHisto,maxEffHisto);
fEffHisto->SetBinEdges(2,binsPt);
fEffHisto->GetAxis(0)->SetTitle("#eta_{mc}");
fEffHisto->GetAxis(1)->SetTitle("#phi_{mc} (rad)");
fEffHisto->GetAxis(2)->SetTitle("p_{Tmc} (GeV/c)");
fEffHisto->GetAxis(3)->SetTitle("pid");
fEffHisto->GetAxis(4)->SetTitle("recStatus");
fEffHisto->GetAxis(5)->SetTitle("findable");
fEffHisto->GetAxis(6)->SetTitle("charge");
fEffHisto->GetAxis(7)->SetTitle("nClones");
fEffHisto->GetAxis(8)->SetTitle("nFakes");
fEffHisto->Sumw2();
Int_t binsEffSecHisto[12]={30,60,nPtBins,5,2,2,100,60,30,3,fgkMaxClones+1,fgkMaxFakes+1};
Double_t minEffSecHisto[12]={-1.5,0.,ptMin,0.,0.,0.,0.,0.,-1.5,-1.5,0,0};
Double_t maxEffSecHisto[12]={ 1.5,2.*TMath::Pi(), ptMax,5.,2.,2.,200,2.*TMath::Pi(),1.5,1.5,fgkMaxClones+1,fgkMaxFakes+1};
fEffSecHisto = new THnSparseF("fEffSecHisto","mceta:mcphi:mcpt:pid:recStatus:findable:mcR:mother_phi:mother_eta:charge:nclones:nfakes",12,binsEffSecHisto,minEffSecHisto,maxEffSecHisto);
fEffSecHisto->SetBinEdges(2,binsPt);
fEffSecHisto->GetAxis(0)->SetTitle("#eta_{mc}");
fEffSecHisto->GetAxis(1)->SetTitle("#phi_{mc} (rad)");
fEffSecHisto->GetAxis(2)->SetTitle("p_{Tmc} (GeV/c)");
fEffSecHisto->GetAxis(3)->SetTitle("pid");
fEffSecHisto->GetAxis(4)->SetTitle("recStatus");
fEffSecHisto->GetAxis(5)->SetTitle("findable");
fEffSecHisto->GetAxis(6)->SetTitle("mcR (cm)");
fEffSecHisto->GetAxis(7)->SetTitle("mother_phi (rad)");
fEffSecHisto->GetAxis(8)->SetTitle("mother_eta");
fEffSecHisto->GetAxis(9)->SetTitle("charge");
fEffSecHisto->GetAxis(10)->SetTitle("nClones");
fEffSecHisto->GetAxis(11)->SetTitle("nFakes");
fEffSecHisto->Sumw2();
if(!fCutsMC)
AliDebug(AliLog::kError, "ERROR: Cannot find AliMCInfoCuts object");
if(!fCutsRC)
AliDebug(AliLog::kError, "ERROR: Cannot find AliRecInfoCuts object");
fAnalysisFolder = CreateFolder("folderEff","Analysis Efficiency Folder");
}
void AliPerformanceEff::ProcessTPC(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent)
{
if(!esdEvent) return;
if(!mcEvent) return;
AliStack *stack = mcEvent->Stack();
if (!stack) {
AliDebug(AliLog::kError, "Stack not available");
return;
}
Int_t *labelsRec = NULL;
labelsRec = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsRec)
{
Printf("Cannot create labelsRec");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRec[i] = 0; }
Int_t *labelsAllRec = NULL;
labelsAllRec = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsAllRec) {
delete [] labelsRec;
Printf("Cannot create labelsAllRec");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRec[i] = 0; }
AliESDtrack *track=0;
for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++)
{
track = esdEvent->GetTrack(iTrack);
if(!track) continue;
if(track->Charge()==0) continue;
if(!fUseKinkDaughters && track->GetKinkIndex(0) > 0) continue;
Int_t label = track->GetTPCLabel();
labelsAllRec[iTrack]=label;
if(IsRecTPC(track) != 0) {
labelsRec[iTrack]=label;
}
}
Int_t nPart = stack->GetNtrack();
for (Int_t iMc = 0; iMc < nPart; ++iMc)
{
if (iMc == 0) continue;
TParticle* particle = stack->Particle(iMc);
if (!particle) continue;
if (!particle->GetPDG()) continue;
if (particle->GetPDG()->Charge() == 0.0) continue;
Bool_t prim = stack->IsPhysicalPrimary(iMc);
if(!prim) continue;
Int_t nDaughters = 0;
for( Int_t iDaught=0; iDaught < particle->GetNDaughters(); iDaught++ ) {
if( particle->GetDaughter(iDaught) < stack->GetNprimary() )
nDaughters++;
}
if( nDaughters > 0 )
continue;
Bool_t findable = IsFindable(mcEvent,iMc);
Bool_t recStatus = kFALSE;
Int_t nClones = 0, nFakes = 0;
for(Int_t iRec=0; iRec<esdEvent->GetNumberOfTracks(); ++iRec)
{
if(iMc == labelsRec[iRec])
{
if (recStatus && nClones < fgkMaxClones) nClones++;
recStatus = kTRUE;
}
if (labelsRec[iRec] < 0 && -labelsRec[iRec] == iMc && nFakes < fgkMaxFakes) nFakes++;
}
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) continue;
Int_t pid = TransformToPID(particle);
Float_t mceta = particle->Eta();
Float_t mcphi = particle->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = particle->Pt();
Float_t charge = 0.;
if (particle->GetPDG()->Charge() < 0) charge = -1.;
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
Double_t vEffHisto[9] = {mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes)};
fEffHisto->Fill(vEffHisto);
}
if(labelsRec) delete [] labelsRec; labelsRec = 0;
if(labelsAllRec) delete [] labelsAllRec; labelsAllRec = 0;
}
void AliPerformanceEff::ProcessTPCSec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent)
{
if(!esdEvent) return;
Int_t *labelsRecSec = NULL;
labelsRecSec = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsRecSec)
{
Printf("Cannot create labelsRecSec");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRecSec[i] = 0; }
Int_t *labelsAllRecSec = NULL;
labelsAllRecSec = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsAllRecSec) {
delete [] labelsRecSec;
Printf("Cannot create labelsAllRecSec");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRecSec[i] = 0; }
AliESDtrack *track=0;
Int_t multAll=0, multRec=0;
for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++)
{
track = esdEvent->GetTrack(iTrack);
if(!track) continue;
if(track->Charge()==0) continue;
if(!fUseKinkDaughters && track->GetKinkIndex(0) > 0) continue;
Int_t label = track->GetTPCLabel();
labelsAllRecSec[multAll]=label;
multAll++;
if(IsRecTPC(track) != 0) {
labelsRecSec[multRec]=label;
multRec++;
}
}
if(mcEvent) {
AliStack *stack = mcEvent->Stack();
if (stack) {
Int_t nPart = stack->GetNtrack();
for (Int_t iMc = 0; iMc < nPart; ++iMc)
{
if (iMc == 0) continue;
TParticle* particle = stack->Particle(iMc);
if (!particle) continue;
if (!particle->GetPDG()) continue;
if (particle->GetPDG()->Charge() == 0.0) continue;
Bool_t prim = stack->IsPhysicalPrimary(iMc);
if(prim) continue;
Bool_t findable = IsFindable(mcEvent,iMc);
Bool_t recStatus = kFALSE;
Int_t nClones = 0, nFakes = 0;
for(Int_t iRec=0; iRec<multRec; ++iRec)
{
if(iMc == labelsRecSec[iRec])
{
if (recStatus && nClones < fgkMaxClones) nClones++;
recStatus = kTRUE;
}
if (labelsRecSec[iRec] < 0 && -labelsRecSec[iRec] == iMc && nFakes < fgkMaxFakes) nFakes++;
}
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) continue;
Int_t pid = TransformToPID(particle);
Float_t mceta = particle->Eta();
Float_t mcphi = particle->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = particle->Pt();
Float_t mcR = particle->R();
Int_t motherLabel = particle->GetMother(0);
if(motherLabel < 0) continue;
TParticle *mother = stack->Particle(motherLabel);
if(!mother) continue;
Float_t mother_eta = mother->Eta();
Float_t mother_phi = mother->Phi();
if(mother_phi<0) mother_phi += 2.*TMath::Pi();
Float_t charge = 0.;
if (particle->GetPDG()->Charge() < 0) charge = -1.;
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
Double_t vEffSecHisto[12] = { mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), mcR, mother_phi, mother_eta, static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes) };
fEffSecHisto->Fill(vEffSecHisto);
}
}
}
if(labelsRecSec) delete [] labelsRecSec; labelsRecSec = 0;
if(labelsAllRecSec) delete [] labelsAllRecSec; labelsAllRecSec = 0;
}
void AliPerformanceEff::ProcessTPCITS(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent)
{
if(!esdEvent) return;
if(!mcEvent) return;
AliStack *stack = mcEvent->Stack();
if (!stack) {
AliDebug(AliLog::kError, "Stack not available");
return;
}
Int_t *labelsRecTPCITS = NULL;
labelsRecTPCITS = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsRecTPCITS)
{
Printf("Cannot create labelsRecTPCITS");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRecTPCITS[i] = 0; }
Int_t *labelsAllRecTPCITS = NULL;
labelsAllRecTPCITS = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsAllRecTPCITS) {
delete [] labelsRecTPCITS;
Printf("Cannot create labelsAllRecTPCITS");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRecTPCITS[i] = 0; }
AliESDtrack *track=0;
for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++)
{
track = esdEvent->GetTrack(iTrack);
if(!track) continue;
if(track->Charge()==0) continue;
if(!fUseKinkDaughters && track->GetKinkIndex(0) > 0) continue;
Int_t label = track->GetLabel();
labelsAllRecTPCITS[iTrack]=label;
if(IsRecTPCITS(track) != 0)
labelsRecTPCITS[iTrack]=label;
}
Int_t nPart = stack->GetNprimary();
for (Int_t iMc = 0; iMc < nPart; ++iMc)
{
if (iMc == 0) continue;
TParticle* particle = stack->Particle(iMc);
if (!particle) continue;
if (!particle->GetPDG()) continue;
if (particle->GetPDG()->Charge() == 0.0) continue;
Bool_t prim = stack->IsPhysicalPrimary(iMc);
if(!prim) continue;
Bool_t findable = IsFindable(mcEvent,iMc);
Bool_t recStatus = kFALSE;
Int_t nClones = 0, nFakes = 0;
for(Int_t iRec=0; iRec<esdEvent->GetNumberOfTracks(); ++iRec)
{
if(iMc == labelsRecTPCITS[iRec])
{
if (recStatus && nClones < fgkMaxClones) nClones++;
recStatus = kTRUE;
}
if (labelsRecTPCITS[iRec] < 0 && -labelsRecTPCITS[iRec] == iMc && nFakes < fgkMaxFakes) nFakes++;
}
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) continue;
Int_t pid = TransformToPID(particle);
Float_t mceta = particle->Eta();
Float_t mcphi = particle->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = particle->Pt();
Float_t charge = 0.;
if (particle->GetPDG()->Charge() < 0) charge = -1.;
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
Double_t vEffHisto[9] = { mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes)};
fEffHisto->Fill(vEffHisto);
}
if(labelsRecTPCITS) delete [] labelsRecTPCITS; labelsRecTPCITS = 0;
if(labelsAllRecTPCITS) delete [] labelsAllRecTPCITS; labelsAllRecTPCITS = 0;
}
void AliPerformanceEff::ProcessConstrained(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent)
{
if(!esdEvent) return;
if(!mcEvent) return;
AliStack *stack = mcEvent->Stack();
if (!stack) {
AliDebug(AliLog::kError, "Stack not available");
return;
}
Int_t *labelsRecConstrained = NULL;
labelsRecConstrained = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsRecConstrained)
{
Printf("Cannot create labelsRecConstrained");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsRecConstrained[i] = 0; }
Int_t *labelsAllRecConstrained = NULL;
labelsAllRecConstrained = new Int_t[esdEvent->GetNumberOfTracks()];
if(!labelsAllRecConstrained) {
delete [] labelsRecConstrained;
Printf("Cannot create labelsAllRecConstrained");
return;
}
for(Int_t i=0;i<esdEvent->GetNumberOfTracks();i++) { labelsAllRecConstrained[i] = 0; }
AliESDtrack *track=0;
for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++)
{
track = esdEvent->GetTrack(iTrack);
if(!track) continue;
if(track->Charge()==0) continue;
if(!fUseKinkDaughters && track->GetKinkIndex(0) > 0) continue;
Int_t label = track->GetLabel();
labelsAllRecConstrained[iTrack]=label;
if(IsRecConstrained(track) != 0)
labelsRecConstrained[iTrack]=label;
}
Int_t nPart = stack->GetNprimary();
for (Int_t iMc = 0; iMc < nPart; ++iMc)
{
if (iMc == 0) continue;
TParticle* particle = stack->Particle(iMc);
if (!particle) continue;
if (!particle->GetPDG()) continue;
if (particle->GetPDG()->Charge() == 0.0) continue;
Bool_t prim = stack->IsPhysicalPrimary(iMc);
if(!prim) continue;
Bool_t findable = IsFindable(mcEvent,iMc);
Bool_t recStatus = kFALSE;
Int_t nClones = 0, nFakes = 0;
for(Int_t iRec=0; iRec<esdEvent->GetNumberOfTracks(); ++iRec)
{
if(iMc == labelsRecConstrained[iRec])
{
if (recStatus && nClones < fgkMaxClones) nClones++;
recStatus = kTRUE;
}
if (labelsRecConstrained[iRec] < 0 && -labelsRecConstrained[iRec] == iMc && nFakes < fgkMaxFakes) nFakes++;
}
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) continue;
Int_t pid = TransformToPID(particle);
Float_t mceta = particle->Eta();
Float_t mcphi = particle->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = particle->Pt();
Float_t charge = 0.;
if (particle->GetPDG()->Charge() < 0) charge = -1.;
else if (particle->GetPDG()->Charge() > 0) charge = 1.;
Double_t vEffHisto[9] = { mceta, mcphi, mcpt, static_cast<Double_t>(pid), static_cast<Double_t>(recStatus), static_cast<Double_t>(findable), static_cast<Double_t>(charge), static_cast<Double_t>(nClones), static_cast<Double_t>(nFakes) };
fEffHisto->Fill(vEffHisto);
}
if(labelsRecConstrained) delete [] labelsRecConstrained; labelsRecConstrained = 0;
if(labelsAllRecConstrained) delete [] labelsAllRecConstrained; labelsAllRecConstrained = 0;
}
void AliPerformanceEff::Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend)
{
if(!esdEvent)
{
Error("Exec","esdEvent not available");
return;
}
AliHeader* header = 0;
AliGenEventHeader* genHeader = 0;
AliStack* stack = 0;
TArrayF vtxMC(3);
if(bUseMC)
{
if(!mcEvent) {
Error("Exec","mcEvent not available");
return;
}
header = mcEvent->Header();
if (!header) {
Error("Exec","Header not available");
return;
}
stack = mcEvent->Stack();
if (!stack) {
Error("Exec","Stack not available");
return;
}
genHeader = header->GenEventHeader();
if (!genHeader) {
Error("Exec","Could not retrieve genHeader from Header");
return;
}
genHeader->PrimaryVertex(vtxMC);
}
else {
Error("Exec","MC information required!");
return;
}
if(bUseESDfriend) {
if(!esdFriend) {
Error("Exec","esdFriend not available");
return;
}
}
if(GetAnalysisMode() == 0) ProcessTPC(mcEvent,esdEvent);
else if(GetAnalysisMode() == 1) ProcessTPCITS(mcEvent,esdEvent);
else if(GetAnalysisMode() == 2) ProcessConstrained(mcEvent,esdEvent);
else if(GetAnalysisMode() == 5) ProcessTPCSec(mcEvent,esdEvent);
else {
printf("ERROR: AnalysisMode %d \n",fAnalysisMode);
return;
}
}
Int_t AliPerformanceEff::TransformToPID(TParticle *particle)
{
Int_t pid = -1;
if( TMath::Abs(particle->GetPdgCode())==fCutsMC->GetEM() ) pid = 0;
if( TMath::Abs(particle->GetPdgCode())==fCutsMC->GetMuM() ) pid = 1;
if( TMath::Abs(particle->GetPdgCode())==fCutsMC->GetPiP() ) pid = 2;
if( TMath::Abs(particle->GetPdgCode())==fCutsMC->GetKP() ) pid = 3;
if( TMath::Abs(particle->GetPdgCode())==fCutsMC->GetProt() ) pid = 4;
return pid;
}
Bool_t AliPerformanceEff::IsFindable(const AliMCEvent *mcEvent, Int_t label)
{
if(!mcEvent) return kFALSE;
AliMCParticle *mcParticle = (AliMCParticle*) mcEvent->GetTrack(label);
if(!mcParticle) return kFALSE;
Int_t counter;
Float_t tpcTrackLength = mcParticle->GetTPCTrackLength(AliTracker::GetBz(),0.05,counter,3.0);
return (tpcTrackLength>fCutsMC->GetMinTrackLength());
}
Bool_t AliPerformanceEff::IsRecTPC(AliESDtrack *esdTrack)
{
if(!esdTrack) return kFALSE;
const AliExternalTrackParam *track = esdTrack->GetTPCInnerParam();
if(!track) return kFALSE;
Float_t dca[2], cov[3];
esdTrack->GetImpactParametersTPC(dca,cov);
Bool_t recStatus = kFALSE;
if(esdTrack->GetTPCNcls()>fCutsRC->GetMinNClustersTPC()) recStatus = kTRUE;
return recStatus;
}
Bool_t AliPerformanceEff::IsRecTPCITS(AliESDtrack *esdTrack)
{
if(!esdTrack) return kFALSE;
Float_t dca[2], cov[3];
esdTrack->GetImpactParameters(dca,cov);
Bool_t recStatus = kFALSE;
if ((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return kFALSE;
if ((esdTrack->GetStatus()&AliESDtrack::kITSrefit)==0) return kFALSE;
if (esdTrack->GetITSclusters(0)<fCutsRC->GetMinNClustersITS()) return kFALSE;
recStatus = kTRUE;
return recStatus;
}
Bool_t AliPerformanceEff::IsRecConstrained(AliESDtrack *esdTrack)
{
if(!esdTrack) return kFALSE;
const AliExternalTrackParam * track = esdTrack->GetConstrainedParam();
if(!track) return kFALSE;
Float_t dca[2], cov[3];
esdTrack->GetImpactParameters(dca,cov);
Bool_t recStatus = kFALSE;
if ((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return kFALSE;
if (esdTrack->GetTPCNcls()<fCutsRC->GetMinNClustersTPC()) return kFALSE;
Int_t clusterITS[200];
if(esdTrack->GetITSclusters(clusterITS)<fCutsRC->GetMinNClustersITS()) return kFALSE;
recStatus = kTRUE;
return recStatus;
}
Long64_t AliPerformanceEff::Merge(TCollection* const list)
{
if (!list)
return 0;
if (list->IsEmpty())
return 1;
TIterator* iter = list->MakeIterator();
TObject* obj = 0;
Int_t count=0;
while((obj = iter->Next()) != 0)
{
AliPerformanceEff* entry = dynamic_cast<AliPerformanceEff*>(obj);
if (entry == 0) continue;
fEffHisto->Add(entry->fEffHisto);
fEffSecHisto->Add(entry->fEffSecHisto);
count++;
}
return count;
}
void AliPerformanceEff::Analyse()
{
TH1::AddDirectory(kFALSE);
TObjArray *aFolderObj = new TObjArray;
if(!aFolderObj) return;
if(GetAnalysisMode() != 5) {
fEffHisto->GetAxis(0)->SetRangeUser(-0.9,0.89);
fEffHisto->GetAxis(2)->SetRangeUser(0.1,19.99);
fEffHisto->GetAxis(3)->SetRangeUser(0.,3.99);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEff", "rec. efficiency", 0));
aFolderObj->Add(AddHistoEff(2, "ptClone", "clone rate", 1));
aFolderObj->Add(AddHistoEff(2, "ptFake", "fake rate", 2));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffNeg", "rec. efficiency neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffPos", "rec. efficiency pos.", 0));
fEffHisto->GetAxis(3)->SetRange(3,3);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffPi", "rec. efficiency (pions)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffPiNeg", "rec. efficiency (pions) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffPiPos", "rec. efficiency (pions) pos.", 0));
fEffHisto->GetAxis(3)->SetRange(4,4);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffK", "rec. efficiency (kaons)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffKNeg", "rec. efficiency (kaons) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffKPos", "rec. efficiency (kaons) pos.", 0));
fEffHisto->GetAxis(3)->SetRange(5,5);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffP", "rec. efficiency (protons)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffPNeg", "rec. efficiency (protons) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffPPos", "rec. efficiency (protons) pos.", 0));
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffHisto->GetAxis(5)->SetRange(2,2);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffF", "rec. efficiency (findable)", 0));
aFolderObj->Add(AddHistoEff(2, "ptCloneF", "clone rate (findable)", 1));
aFolderObj->Add(AddHistoEff(2, "ptFakeF", "fake rate (findable)", 2));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffFNeg", "rec. efficiency (findable) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(2, "ptRecEffFPos", "rec. efficiency (findable) pos.", 0));
fEffHisto->GetAxis(0)->SetRangeUser(-1.5,1.49);
fEffHisto->GetAxis(2)->SetRangeUser(0.1,19.99);
fEffHisto->GetAxis(5)->SetRangeUser(0.,1.0);
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEff", "rec. efficiency", 0));
aFolderObj->Add(AddHistoEff(0, "etaClone", "clone rate", 1));
aFolderObj->Add(AddHistoEff(0, "etaFake", "fake rate", 2));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffNeg", "rec. efficiency neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffPos", "rec. efficiency pos.", 0));
fEffHisto->GetAxis(3)->SetRange(3,3);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffPi", "rec. efficiency (pions)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffPiNeg", "rec. efficiency (pions) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffPiPos", "rec. efficiency (pions) pos.", 0));
fEffHisto->GetAxis(3)->SetRange(4,4);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffK", "rec. efficiency (kaons)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffKNeg", "rec. efficiency (kaons) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffKPos", "rec. efficiency (kaons) pos.", 0));
fEffHisto->GetAxis(3)->SetRange(5,5);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffP", "rec. efficiency (protons)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffPNeg", "rec. efficiency (protons) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffPPos", "rec. efficiency (protons) pos.", 0));
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffHisto->GetAxis(5)->SetRange(2,2);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffF", "rec. efficiency (findable)", 0));
aFolderObj->Add(AddHistoEff(0, "etaCloneF", "clone rate (findable)", 1));
aFolderObj->Add(AddHistoEff(0, "etaFakeF", "fake rate (findable)", 2));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffFNeg", "rec. efficiency (findable) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(0, "etaRecEffFPos", "rec. efficiency (findable) pos.", 0));
fEffHisto->GetAxis(0)->SetRangeUser(-0.9,0.89);
fEffHisto->GetAxis(2)->SetRangeUser(0.1,19.99);
fEffHisto->GetAxis(5)->SetRangeUser(0.,1.);
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEff", "rec. efficiency", 0));
aFolderObj->Add(AddHistoEff(1, "phiClone", "clone rate", 1));
aFolderObj->Add(AddHistoEff(1, "phiFake", "fake rate", 2));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffNeg", "rec. efficiency neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffPos", "rec. efficiency pos.", 0));
fEffHisto->GetAxis(3)->SetRange(3,3);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffPi", "rec. efficiency (pions)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffPiNeg", "rec. efficiency (pions) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffPiPos", "rec. efficiency (pions) pos.", 0));
fEffHisto->GetAxis(3)->SetRange(4,4);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffK", "rec. efficiency (kaons)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffKNeg", "rec. efficiency (kaons) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffKPos", "rec. efficiency (kaons) pos.", 0));
fEffHisto->GetAxis(3)->SetRange(5,5);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffP", "rec. efficiency (protons)", 0));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffPNeg", "rec. efficiency (protons) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffPPos", "rec. efficiency (protons) pos.", 0));
fEffHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffHisto->GetAxis(5)->SetRange(2,2);
fEffHisto->GetAxis(6)->SetRangeUser(-2.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffF", "rec. efficiency (findable)", 0));
aFolderObj->Add(AddHistoEff(1, "phiCloneF", "clone rate (findable)", 1));
aFolderObj->Add(AddHistoEff(1, "phiFakeF", "fake rate (findable)", 2));
fEffHisto->GetAxis(6)->SetRangeUser(-2.,0.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffFNeg", "rec. efficiency (findable) neg.", 0));
fEffHisto->GetAxis(6)->SetRangeUser(0.,2.);
aFolderObj->Add(AddHistoEff(1, "phiRecEffFPos", "rec. efficiency (findable) pos.", 0));
}
else {
Float_t minEta=-1.5, maxEta=1.49;
Float_t minR=0.0, maxR=150.0;
Float_t minPt=0.10, maxPt=19.99;
fEffSecHisto->GetAxis(8)->SetRangeUser(minEta,maxEta);
fEffSecHisto->GetAxis(6)->SetRangeUser(minR,maxR);
fEffSecHisto->GetAxis(0)->SetRangeUser(minEta,maxEta);
fEffSecHisto->GetAxis(2)->SetRangeUser(minPt,maxPt);
aFolderObj->Add(AddHistoEff(2, "ptRecEff", "rec. efficiency", 0, 1));
aFolderObj->Add(AddHistoEff(2, "ptClone", "clone rate", 1, 1));
aFolderObj->Add(AddHistoEff(2, "ptFake", "fake rate", 2, 1));
fEffSecHisto->GetAxis(3)->SetRange(1,1);
aFolderObj->Add(AddHistoEff(2, "ptRecEffEle", "rec. efficiency (electrons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(3,3);
aFolderObj->Add(AddHistoEff(2, "ptRecEffPi", "rec. efficiency (pions)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(4,4);
aFolderObj->Add(AddHistoEff(2, "ptRecEffK", "rec. efficiency (kaons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(5,5);
aFolderObj->Add(AddHistoEff(2, "ptRecEffP", "rec. efficiency (protons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffSecHisto->GetAxis(5)->SetRange(2,2);
aFolderObj->Add(AddHistoEff(2, "ptRecEffF", "rec. efficiency (findable)", 0, 1));
aFolderObj->Add(AddHistoEff(2, "ptCloneF", "clone rate (findable)", 1, 1));
aFolderObj->Add(AddHistoEff(2, "ptFakeF", "fake rate (findable)", 2, 1));
fEffSecHisto->GetAxis(2)->SetRangeUser(minPt,maxPt);
fEffSecHisto->GetAxis(4)->SetRangeUser(0.,1.);
fEffSecHisto->GetAxis(5)->SetRangeUser(0.,1.);
aFolderObj->Add(AddHistoEff(0, "etaRecEff", "rec. efficiency", 0, 1));
aFolderObj->Add(AddHistoEff(0, "etaClone", "clone rate", 1, 1));
aFolderObj->Add(AddHistoEff(0, "etaFake", "fake rate", 2, 1));
fEffSecHisto->GetAxis(3)->SetRange(1,1);
aFolderObj->Add(AddHistoEff(0, "etaRecEffEle", "rec. efficiency (electrons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(3,3);
aFolderObj->Add(AddHistoEff(0, "etaRecEffPi", "rec. efficiency (pions)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(4,4);
aFolderObj->Add(AddHistoEff(0, "etaRecEffK", "rec. efficiency (kaons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(5,5);
aFolderObj->Add(AddHistoEff(0, "etaRecEffP", "rec. efficiency (protons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffSecHisto->GetAxis(5)->SetRange(2,2);
aFolderObj->Add(AddHistoEff(0, "etaRecEffF", "rec. efficiency (findable)", 0, 1));
aFolderObj->Add(AddHistoEff(0, "etaCloneF", "clone rate (findable)", 1, 1));
aFolderObj->Add(AddHistoEff(0, "etaFakeF", "fake rate (findable)", 2, 1));
fEffSecHisto->GetAxis(0)->SetRangeUser(minEta,maxEta);
fEffSecHisto->GetAxis(2)->SetRangeUser(minPt,maxPt);
fEffSecHisto->GetAxis(4)->SetRangeUser(0.,1.);
fEffSecHisto->GetAxis(5)->SetRangeUser(0.,1.);
aFolderObj->Add(AddHistoEff(1, "phiRecEff", "rec. efficiency", 0, 1));
aFolderObj->Add(AddHistoEff(1, "phiClone", "clone rate", 1, 1));
aFolderObj->Add(AddHistoEff(1, "phiFake", "fake rate", 2, 1));
fEffSecHisto->GetAxis(3)->SetRange(1,1);
aFolderObj->Add(AddHistoEff(1, "phiRecEffEle", "rec. efficiency (electrons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(3,3);
aFolderObj->Add(AddHistoEff(1, "phiRecEffPi", "rec. efficiency (pions)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(4,4);
aFolderObj->Add(AddHistoEff(1, "phiRecEffK", "rec. efficiency (kaons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRange(5,5);
aFolderObj->Add(AddHistoEff(1, "phiRecEffP", "rec. efficiency (protons)", 0, 1));
fEffSecHisto->GetAxis(3)->SetRangeUser(0.,4.);
fEffSecHisto->GetAxis(5)->SetRange(2,2);
aFolderObj->Add(AddHistoEff(1, "phiRecEffF", "rec. efficiency (findable)", 0, 1));
aFolderObj->Add(AddHistoEff(1, "phiCloneF", "clone rate (findable)", 1, 1));
aFolderObj->Add(AddHistoEff(1, "phiFakeF", "fake rate (findable)", 2, 1));
}
for (Int_t i = 0;i < fEffHisto->GetNdimensions();i++)
{
fEffHisto->GetAxis(i)->SetRange(1,0);
}
fAnalysisFolder = ExportToFolder(aFolderObj);
if(aFolderObj) delete aFolderObj;
}
TFolder* AliPerformanceEff::ExportToFolder(TObjArray * array)
{
AliPerformanceEff * comp=this;
TFolder *folder = comp->GetAnalysisFolder();
TString name, title;
TFolder *newFolder = 0;
Int_t i = 0;
Int_t size = array->GetSize();
if(folder) {
name = folder->GetName();
title = folder->GetTitle();
delete folder;
newFolder = CreateFolder(name.Data(),title.Data());
newFolder->SetOwner();
while(i < size) {
newFolder->Add(array->At(i));
i++;
}
}
return newFolder;
}
TFolder* AliPerformanceEff::CreateFolder(TString name,TString title) {
TFolder *folder = 0;
folder = new TFolder(name.Data(),title.Data());
return folder;
}
TH1D* WeightedProjection(THnSparseF* src, Int_t axis, Int_t nWeights, Int_t* weightCoords)
{
THnSparseF* tmp = (THnSparseF*) src->Clone();
Int_t i;
for (i = 0;i < tmp->GetNbins();i++)
{
Int_t coords[12];
tmp->GetBinContent(i, coords);
Int_t weight = 0, j;
for (j = 0;j < nWeights;j++)
{
weight += coords[weightCoords[j]] - 1;
}
tmp->SetBinContent(i, weight);
}
TH1D* ret = tmp->Projection(axis);
delete tmp;
return(ret);
}
TH1D* AliPerformanceEff::AddHistoEff(Int_t axis, const Char_t *name, const Char_t* vsTitle,
const Int_t type, const Int_t secondary) {
char title[256];
TH1D *recc = NULL;
THnSparseF* EffHisto = secondary ? fEffSecHisto : fEffHisto;
Int_t axis_clone = secondary ? 10 : 7;
Int_t axis_fake = secondary ? 11 : 8;
Int_t axis_all[3] = {4, axis_clone, axis_fake};
if (type == 0)
{
EffHisto->GetAxis(4)->SetRange(1.,2.);
TH1D *all = EffHisto->Projection(axis);
EffHisto->GetAxis(4)->SetRange(2.,2.);
TH1D *rec = EffHisto->Projection(axis);
recc = (TH1D*)rec->Clone();
if(recc)
{
recc->Divide(rec,all,1,1,"B");
recc->GetYaxis()->SetTitle("efficiency");
}
}
else if (type == 1)
{
EffHisto->GetAxis(4)->SetRange(2.,2.);
TH1D *all = WeightedProjection(EffHisto, axis, 3, axis_all);
EffHisto->GetAxis(4)->SetRange(2.,2.);
TH1D *clone = WeightedProjection(EffHisto, axis, 1, &axis_clone);
recc = (TH1D*) clone->Clone();
if(recc)
{
recc->Divide(clone,all,1,1,"B");
recc->GetYaxis()->SetTitle("clone rate");
}
}
else if (type == 2)
{
EffHisto->GetAxis(4)->SetRange(2.,2.);
TH1D *all = WeightedProjection(EffHisto, axis, 3, axis_all);
EffHisto->GetAxis(4)->SetRange(2.,2.);
TH1D *fake = WeightedProjection(EffHisto, axis, 1, &axis_fake);
recc = (TH1D*) fake->Clone();
if(recc)
{
recc->Divide(fake,all,1,1,"B");
recc->GetYaxis()->SetTitle("fake rate");
}
}
EffHisto->GetAxis(4)->SetRange(1,0);
if (recc) {
recc->SetName(name);
recc->GetXaxis()->SetTitle(fEffHisto->GetAxis(axis)->GetTitle());
snprintf(title,256,"%s vs %s",vsTitle, fEffHisto->GetAxis(axis)->GetTitle());
recc->SetTitle(title);
if (axis == 2 ) recc->SetBit(TH1::kLogX);
}
return recc;
}
AliPerformanceEff.cxx:100 AliPerformanceEff.cxx:101 AliPerformanceEff.cxx:102 AliPerformanceEff.cxx:103 AliPerformanceEff.cxx:104 AliPerformanceEff.cxx:105 AliPerformanceEff.cxx:106 AliPerformanceEff.cxx:107 AliPerformanceEff.cxx:108 AliPerformanceEff.cxx:109 AliPerformanceEff.cxx:110 AliPerformanceEff.cxx:111 AliPerformanceEff.cxx:112 AliPerformanceEff.cxx:113 AliPerformanceEff.cxx:114 AliPerformanceEff.cxx:115 AliPerformanceEff.cxx:116 AliPerformanceEff.cxx:117 AliPerformanceEff.cxx:118 AliPerformanceEff.cxx:119 AliPerformanceEff.cxx:120 AliPerformanceEff.cxx:121 AliPerformanceEff.cxx:122 AliPerformanceEff.cxx:123 AliPerformanceEff.cxx:124 AliPerformanceEff.cxx:125 AliPerformanceEff.cxx:126 AliPerformanceEff.cxx:127 AliPerformanceEff.cxx:128 AliPerformanceEff.cxx:129 AliPerformanceEff.cxx:130 AliPerformanceEff.cxx:131 AliPerformanceEff.cxx:132 AliPerformanceEff.cxx:133 AliPerformanceEff.cxx:134 AliPerformanceEff.cxx:135 AliPerformanceEff.cxx:136 AliPerformanceEff.cxx:137 AliPerformanceEff.cxx:138 AliPerformanceEff.cxx:139 AliPerformanceEff.cxx:140 AliPerformanceEff.cxx:141 AliPerformanceEff.cxx:142 AliPerformanceEff.cxx:143 AliPerformanceEff.cxx:144 AliPerformanceEff.cxx:145 AliPerformanceEff.cxx:146 AliPerformanceEff.cxx:147 AliPerformanceEff.cxx:148 AliPerformanceEff.cxx:149 AliPerformanceEff.cxx:150 AliPerformanceEff.cxx:151 AliPerformanceEff.cxx:152 AliPerformanceEff.cxx:153 AliPerformanceEff.cxx:154 AliPerformanceEff.cxx:155 AliPerformanceEff.cxx:156 AliPerformanceEff.cxx:157 AliPerformanceEff.cxx:158 AliPerformanceEff.cxx:159 AliPerformanceEff.cxx:160 AliPerformanceEff.cxx:161 AliPerformanceEff.cxx:162 AliPerformanceEff.cxx:163 AliPerformanceEff.cxx:164 AliPerformanceEff.cxx:165 AliPerformanceEff.cxx:166 AliPerformanceEff.cxx:167 AliPerformanceEff.cxx:168 AliPerformanceEff.cxx:169 AliPerformanceEff.cxx:170 AliPerformanceEff.cxx:171 AliPerformanceEff.cxx:172 AliPerformanceEff.cxx:173 AliPerformanceEff.cxx:174 AliPerformanceEff.cxx:175 AliPerformanceEff.cxx:176 AliPerformanceEff.cxx:177 AliPerformanceEff.cxx:178 AliPerformanceEff.cxx:179 AliPerformanceEff.cxx:180 AliPerformanceEff.cxx:181 AliPerformanceEff.cxx:182 AliPerformanceEff.cxx:183 AliPerformanceEff.cxx:184 AliPerformanceEff.cxx:185 AliPerformanceEff.cxx:186 AliPerformanceEff.cxx:187 AliPerformanceEff.cxx:188 AliPerformanceEff.cxx:189 AliPerformanceEff.cxx:190 AliPerformanceEff.cxx:191 AliPerformanceEff.cxx:192 AliPerformanceEff.cxx:193 AliPerformanceEff.cxx:194 AliPerformanceEff.cxx:195 AliPerformanceEff.cxx:196 AliPerformanceEff.cxx:197 AliPerformanceEff.cxx:198 AliPerformanceEff.cxx:199 AliPerformanceEff.cxx:200 AliPerformanceEff.cxx:201 AliPerformanceEff.cxx:202 AliPerformanceEff.cxx:203 AliPerformanceEff.cxx:204 AliPerformanceEff.cxx:205 AliPerformanceEff.cxx:206 AliPerformanceEff.cxx:207 AliPerformanceEff.cxx:208 AliPerformanceEff.cxx:209 AliPerformanceEff.cxx:210 AliPerformanceEff.cxx:211 AliPerformanceEff.cxx:212 AliPerformanceEff.cxx:213 AliPerformanceEff.cxx:214 AliPerformanceEff.cxx:215 AliPerformanceEff.cxx:216 AliPerformanceEff.cxx:217 AliPerformanceEff.cxx:218 AliPerformanceEff.cxx:219 AliPerformanceEff.cxx:220 AliPerformanceEff.cxx:221 AliPerformanceEff.cxx:222 AliPerformanceEff.cxx:223 AliPerformanceEff.cxx:224 AliPerformanceEff.cxx:225 AliPerformanceEff.cxx:226 AliPerformanceEff.cxx:227 AliPerformanceEff.cxx:228 AliPerformanceEff.cxx:229 AliPerformanceEff.cxx:230 AliPerformanceEff.cxx:231 AliPerformanceEff.cxx:232 AliPerformanceEff.cxx:233 AliPerformanceEff.cxx:234 AliPerformanceEff.cxx:235 AliPerformanceEff.cxx:236 AliPerformanceEff.cxx:237 AliPerformanceEff.cxx:238 AliPerformanceEff.cxx:239 AliPerformanceEff.cxx:240 AliPerformanceEff.cxx:241 AliPerformanceEff.cxx:242 AliPerformanceEff.cxx:243 AliPerformanceEff.cxx:244 AliPerformanceEff.cxx:245 AliPerformanceEff.cxx:246 AliPerformanceEff.cxx:247 AliPerformanceEff.cxx:248 AliPerformanceEff.cxx:249 AliPerformanceEff.cxx:250 AliPerformanceEff.cxx:251 AliPerformanceEff.cxx:252 AliPerformanceEff.cxx:253 AliPerformanceEff.cxx:254 AliPerformanceEff.cxx:255 AliPerformanceEff.cxx:256 AliPerformanceEff.cxx:257 AliPerformanceEff.cxx:258 AliPerformanceEff.cxx:259 AliPerformanceEff.cxx:260 AliPerformanceEff.cxx:261 AliPerformanceEff.cxx:262 AliPerformanceEff.cxx:263 AliPerformanceEff.cxx:264 AliPerformanceEff.cxx:265 AliPerformanceEff.cxx:266 AliPerformanceEff.cxx:267 AliPerformanceEff.cxx:268 AliPerformanceEff.cxx:269 AliPerformanceEff.cxx:270 AliPerformanceEff.cxx:271 AliPerformanceEff.cxx:272 AliPerformanceEff.cxx:273 AliPerformanceEff.cxx:274 AliPerformanceEff.cxx:275 AliPerformanceEff.cxx:276 AliPerformanceEff.cxx:277 AliPerformanceEff.cxx:278 AliPerformanceEff.cxx:279 AliPerformanceEff.cxx:280 AliPerformanceEff.cxx:281 AliPerformanceEff.cxx:282 AliPerformanceEff.cxx:283 AliPerformanceEff.cxx:284 AliPerformanceEff.cxx:285 AliPerformanceEff.cxx:286 AliPerformanceEff.cxx:287 AliPerformanceEff.cxx:288 AliPerformanceEff.cxx:289 AliPerformanceEff.cxx:290 AliPerformanceEff.cxx:291 AliPerformanceEff.cxx:292 AliPerformanceEff.cxx:293 AliPerformanceEff.cxx:294 AliPerformanceEff.cxx:295 AliPerformanceEff.cxx:296 AliPerformanceEff.cxx:297 AliPerformanceEff.cxx:298 AliPerformanceEff.cxx:299 AliPerformanceEff.cxx:300 AliPerformanceEff.cxx:301 AliPerformanceEff.cxx:302 AliPerformanceEff.cxx:303 AliPerformanceEff.cxx:304 AliPerformanceEff.cxx:305 AliPerformanceEff.cxx:306 AliPerformanceEff.cxx:307 AliPerformanceEff.cxx:308 AliPerformanceEff.cxx:309 AliPerformanceEff.cxx:310 AliPerformanceEff.cxx:311 AliPerformanceEff.cxx:312 AliPerformanceEff.cxx:313 AliPerformanceEff.cxx:314 AliPerformanceEff.cxx:315 AliPerformanceEff.cxx:316 AliPerformanceEff.cxx:317 AliPerformanceEff.cxx:318 AliPerformanceEff.cxx:319 AliPerformanceEff.cxx:320 AliPerformanceEff.cxx:321 AliPerformanceEff.cxx:322 AliPerformanceEff.cxx:323 AliPerformanceEff.cxx:324 AliPerformanceEff.cxx:325 AliPerformanceEff.cxx:326 AliPerformanceEff.cxx:327 AliPerformanceEff.cxx:328 AliPerformanceEff.cxx:329 AliPerformanceEff.cxx:330 AliPerformanceEff.cxx:331 AliPerformanceEff.cxx:332 AliPerformanceEff.cxx:333 AliPerformanceEff.cxx:334 AliPerformanceEff.cxx:335 AliPerformanceEff.cxx:336 AliPerformanceEff.cxx:337 AliPerformanceEff.cxx:338 AliPerformanceEff.cxx:339 AliPerformanceEff.cxx:340 AliPerformanceEff.cxx:341 AliPerformanceEff.cxx:342 AliPerformanceEff.cxx:343 AliPerformanceEff.cxx:344 AliPerformanceEff.cxx:345 AliPerformanceEff.cxx:346 AliPerformanceEff.cxx:347 AliPerformanceEff.cxx:348 AliPerformanceEff.cxx:349 AliPerformanceEff.cxx:350 AliPerformanceEff.cxx:351 AliPerformanceEff.cxx:352 AliPerformanceEff.cxx:353 AliPerformanceEff.cxx:354 AliPerformanceEff.cxx:355 AliPerformanceEff.cxx:356 AliPerformanceEff.cxx:357 AliPerformanceEff.cxx:358 AliPerformanceEff.cxx:359 AliPerformanceEff.cxx:360 AliPerformanceEff.cxx:361 AliPerformanceEff.cxx:362 AliPerformanceEff.cxx:363 AliPerformanceEff.cxx:364 AliPerformanceEff.cxx:365 AliPerformanceEff.cxx:366 AliPerformanceEff.cxx:367 AliPerformanceEff.cxx:368 AliPerformanceEff.cxx:369 AliPerformanceEff.cxx:370 AliPerformanceEff.cxx:371 AliPerformanceEff.cxx:372 AliPerformanceEff.cxx:373 AliPerformanceEff.cxx:374 AliPerformanceEff.cxx:375 AliPerformanceEff.cxx:376 AliPerformanceEff.cxx:377 AliPerformanceEff.cxx:378 AliPerformanceEff.cxx:379 AliPerformanceEff.cxx:380 AliPerformanceEff.cxx:381 AliPerformanceEff.cxx:382 AliPerformanceEff.cxx:383 AliPerformanceEff.cxx:384 AliPerformanceEff.cxx:385 AliPerformanceEff.cxx:386 AliPerformanceEff.cxx:387 AliPerformanceEff.cxx:388 AliPerformanceEff.cxx:389 AliPerformanceEff.cxx:390 AliPerformanceEff.cxx:391 AliPerformanceEff.cxx:392 AliPerformanceEff.cxx:393 AliPerformanceEff.cxx:394 AliPerformanceEff.cxx:395 AliPerformanceEff.cxx:396 AliPerformanceEff.cxx:397 AliPerformanceEff.cxx:398 AliPerformanceEff.cxx:399 AliPerformanceEff.cxx:400 AliPerformanceEff.cxx:401 AliPerformanceEff.cxx:402 AliPerformanceEff.cxx:403 AliPerformanceEff.cxx:404 AliPerformanceEff.cxx:405 AliPerformanceEff.cxx:406 AliPerformanceEff.cxx:407 AliPerformanceEff.cxx:408 AliPerformanceEff.cxx:409 AliPerformanceEff.cxx:410 AliPerformanceEff.cxx:411 AliPerformanceEff.cxx:412 AliPerformanceEff.cxx:413 AliPerformanceEff.cxx:414 AliPerformanceEff.cxx:415 AliPerformanceEff.cxx:416 AliPerformanceEff.cxx:417 AliPerformanceEff.cxx:418 AliPerformanceEff.cxx:419 AliPerformanceEff.cxx:420 AliPerformanceEff.cxx:421 AliPerformanceEff.cxx:422 AliPerformanceEff.cxx:423 AliPerformanceEff.cxx:424 AliPerformanceEff.cxx:425 AliPerformanceEff.cxx:426 AliPerformanceEff.cxx:427 AliPerformanceEff.cxx:428 AliPerformanceEff.cxx:429 AliPerformanceEff.cxx:430 AliPerformanceEff.cxx:431 AliPerformanceEff.cxx:432 AliPerformanceEff.cxx:433 AliPerformanceEff.cxx:434 AliPerformanceEff.cxx:435 AliPerformanceEff.cxx:436 AliPerformanceEff.cxx:437 AliPerformanceEff.cxx:438 AliPerformanceEff.cxx:439 AliPerformanceEff.cxx:440 AliPerformanceEff.cxx:441 AliPerformanceEff.cxx:442 AliPerformanceEff.cxx:443 AliPerformanceEff.cxx:444 AliPerformanceEff.cxx:445 AliPerformanceEff.cxx:446 AliPerformanceEff.cxx:447 AliPerformanceEff.cxx:448 AliPerformanceEff.cxx:449 AliPerformanceEff.cxx:450 AliPerformanceEff.cxx:451 AliPerformanceEff.cxx:452 AliPerformanceEff.cxx:453 AliPerformanceEff.cxx:454 AliPerformanceEff.cxx:455 AliPerformanceEff.cxx:456 AliPerformanceEff.cxx:457 AliPerformanceEff.cxx:458 AliPerformanceEff.cxx:459 AliPerformanceEff.cxx:460 AliPerformanceEff.cxx:461 AliPerformanceEff.cxx:462 AliPerformanceEff.cxx:463 AliPerformanceEff.cxx:464 AliPerformanceEff.cxx:465 AliPerformanceEff.cxx:466 AliPerformanceEff.cxx:467 AliPerformanceEff.cxx:468 AliPerformanceEff.cxx:469 AliPerformanceEff.cxx:470 AliPerformanceEff.cxx:471 AliPerformanceEff.cxx:472 AliPerformanceEff.cxx:473 AliPerformanceEff.cxx:474 AliPerformanceEff.cxx:475 AliPerformanceEff.cxx:476 AliPerformanceEff.cxx:477 AliPerformanceEff.cxx:478 AliPerformanceEff.cxx:479 AliPerformanceEff.cxx:480 AliPerformanceEff.cxx:481 AliPerformanceEff.cxx:482 AliPerformanceEff.cxx:483 AliPerformanceEff.cxx:484 AliPerformanceEff.cxx:485 AliPerformanceEff.cxx:486 AliPerformanceEff.cxx:487 AliPerformanceEff.cxx:488 AliPerformanceEff.cxx:489 AliPerformanceEff.cxx:490 AliPerformanceEff.cxx:491 AliPerformanceEff.cxx:492 AliPerformanceEff.cxx:493 AliPerformanceEff.cxx:494 AliPerformanceEff.cxx:495 AliPerformanceEff.cxx:496 AliPerformanceEff.cxx:497 AliPerformanceEff.cxx:498 AliPerformanceEff.cxx:499 AliPerformanceEff.cxx:500 AliPerformanceEff.cxx:501 AliPerformanceEff.cxx:502 AliPerformanceEff.cxx:503 AliPerformanceEff.cxx:504 AliPerformanceEff.cxx:505 AliPerformanceEff.cxx:506 AliPerformanceEff.cxx:507 AliPerformanceEff.cxx:508 AliPerformanceEff.cxx:509 AliPerformanceEff.cxx:510 AliPerformanceEff.cxx:511 AliPerformanceEff.cxx:512 AliPerformanceEff.cxx:513 AliPerformanceEff.cxx:514 AliPerformanceEff.cxx:515 AliPerformanceEff.cxx:516 AliPerformanceEff.cxx:517 AliPerformanceEff.cxx:518 AliPerformanceEff.cxx:519 AliPerformanceEff.cxx:520 AliPerformanceEff.cxx:521 AliPerformanceEff.cxx:522 AliPerformanceEff.cxx:523 AliPerformanceEff.cxx:524 AliPerformanceEff.cxx:525 AliPerformanceEff.cxx:526 AliPerformanceEff.cxx:527 AliPerformanceEff.cxx:528 AliPerformanceEff.cxx:529 AliPerformanceEff.cxx:530 AliPerformanceEff.cxx:531 AliPerformanceEff.cxx:532 AliPerformanceEff.cxx:533 AliPerformanceEff.cxx:534 AliPerformanceEff.cxx:535 AliPerformanceEff.cxx:536 AliPerformanceEff.cxx:537 AliPerformanceEff.cxx:538 AliPerformanceEff.cxx:539 AliPerformanceEff.cxx:540 AliPerformanceEff.cxx:541 AliPerformanceEff.cxx:542 AliPerformanceEff.cxx:543 AliPerformanceEff.cxx:544 AliPerformanceEff.cxx:545 AliPerformanceEff.cxx:546 AliPerformanceEff.cxx:547 AliPerformanceEff.cxx:548 AliPerformanceEff.cxx:549 AliPerformanceEff.cxx:550 AliPerformanceEff.cxx:551 AliPerformanceEff.cxx:552 AliPerformanceEff.cxx:553 AliPerformanceEff.cxx:554 AliPerformanceEff.cxx:555 AliPerformanceEff.cxx:556 AliPerformanceEff.cxx:557 AliPerformanceEff.cxx:558 AliPerformanceEff.cxx:559 AliPerformanceEff.cxx:560 AliPerformanceEff.cxx:561 AliPerformanceEff.cxx:562 AliPerformanceEff.cxx:563 AliPerformanceEff.cxx:564 AliPerformanceEff.cxx:565 AliPerformanceEff.cxx:566 AliPerformanceEff.cxx:567 AliPerformanceEff.cxx:568 AliPerformanceEff.cxx:569 AliPerformanceEff.cxx:570 AliPerformanceEff.cxx:571 AliPerformanceEff.cxx:572 AliPerformanceEff.cxx:573 AliPerformanceEff.cxx:574 AliPerformanceEff.cxx:575 AliPerformanceEff.cxx:576 AliPerformanceEff.cxx:577 AliPerformanceEff.cxx:578 AliPerformanceEff.cxx:579 AliPerformanceEff.cxx:580 AliPerformanceEff.cxx:581 AliPerformanceEff.cxx:582 AliPerformanceEff.cxx:583 AliPerformanceEff.cxx:584 AliPerformanceEff.cxx:585 AliPerformanceEff.cxx:586 AliPerformanceEff.cxx:587 AliPerformanceEff.cxx:588 AliPerformanceEff.cxx:589 AliPerformanceEff.cxx:590 AliPerformanceEff.cxx:591 AliPerformanceEff.cxx:592 AliPerformanceEff.cxx:593 AliPerformanceEff.cxx:594 AliPerformanceEff.cxx:595 AliPerformanceEff.cxx:596 AliPerformanceEff.cxx:597 AliPerformanceEff.cxx:598 AliPerformanceEff.cxx:599 AliPerformanceEff.cxx:600 AliPerformanceEff.cxx:601 AliPerformanceEff.cxx:602 AliPerformanceEff.cxx:603 AliPerformanceEff.cxx:604 AliPerformanceEff.cxx:605 AliPerformanceEff.cxx:606 AliPerformanceEff.cxx:607 AliPerformanceEff.cxx:608 AliPerformanceEff.cxx:609 AliPerformanceEff.cxx:610 AliPerformanceEff.cxx:611 AliPerformanceEff.cxx:612 AliPerformanceEff.cxx:613 AliPerformanceEff.cxx:614 AliPerformanceEff.cxx:615 AliPerformanceEff.cxx:616 AliPerformanceEff.cxx:617 AliPerformanceEff.cxx:618 AliPerformanceEff.cxx:619 AliPerformanceEff.cxx:620 AliPerformanceEff.cxx:621 AliPerformanceEff.cxx:622 AliPerformanceEff.cxx:623 AliPerformanceEff.cxx:624 AliPerformanceEff.cxx:625 AliPerformanceEff.cxx:626 AliPerformanceEff.cxx:627 AliPerformanceEff.cxx:628 AliPerformanceEff.cxx:629 AliPerformanceEff.cxx:630 AliPerformanceEff.cxx:631 AliPerformanceEff.cxx:632 AliPerformanceEff.cxx:633 AliPerformanceEff.cxx:634 AliPerformanceEff.cxx:635 AliPerformanceEff.cxx:636 AliPerformanceEff.cxx:637 AliPerformanceEff.cxx:638 AliPerformanceEff.cxx:639 AliPerformanceEff.cxx:640 AliPerformanceEff.cxx:641 AliPerformanceEff.cxx:642 AliPerformanceEff.cxx:643 AliPerformanceEff.cxx:644 AliPerformanceEff.cxx:645 AliPerformanceEff.cxx:646 AliPerformanceEff.cxx:647 AliPerformanceEff.cxx:648 AliPerformanceEff.cxx:649 AliPerformanceEff.cxx:650 AliPerformanceEff.cxx:651 AliPerformanceEff.cxx:652 AliPerformanceEff.cxx:653 AliPerformanceEff.cxx:654 AliPerformanceEff.cxx:655 AliPerformanceEff.cxx:656 AliPerformanceEff.cxx:657 AliPerformanceEff.cxx:658 AliPerformanceEff.cxx:659 AliPerformanceEff.cxx:660 AliPerformanceEff.cxx:661 AliPerformanceEff.cxx:662 AliPerformanceEff.cxx:663 AliPerformanceEff.cxx:664 AliPerformanceEff.cxx:665 AliPerformanceEff.cxx:666 AliPerformanceEff.cxx:667 AliPerformanceEff.cxx:668 AliPerformanceEff.cxx:669 AliPerformanceEff.cxx:670 AliPerformanceEff.cxx:671 AliPerformanceEff.cxx:672 AliPerformanceEff.cxx:673 AliPerformanceEff.cxx:674 AliPerformanceEff.cxx:675 AliPerformanceEff.cxx:676 AliPerformanceEff.cxx:677 AliPerformanceEff.cxx:678 AliPerformanceEff.cxx:679 AliPerformanceEff.cxx:680 AliPerformanceEff.cxx:681 AliPerformanceEff.cxx:682 AliPerformanceEff.cxx:683 AliPerformanceEff.cxx:684 AliPerformanceEff.cxx:685 AliPerformanceEff.cxx:686 AliPerformanceEff.cxx:687 AliPerformanceEff.cxx:688 AliPerformanceEff.cxx:689 AliPerformanceEff.cxx:690 AliPerformanceEff.cxx:691 AliPerformanceEff.cxx:692 AliPerformanceEff.cxx:693 AliPerformanceEff.cxx:694 AliPerformanceEff.cxx:695 AliPerformanceEff.cxx:696 AliPerformanceEff.cxx:697 AliPerformanceEff.cxx:698 AliPerformanceEff.cxx:699 AliPerformanceEff.cxx:700 AliPerformanceEff.cxx:701 AliPerformanceEff.cxx:702 AliPerformanceEff.cxx:703 AliPerformanceEff.cxx:704 AliPerformanceEff.cxx:705 AliPerformanceEff.cxx:706 AliPerformanceEff.cxx:707 AliPerformanceEff.cxx:708 AliPerformanceEff.cxx:709 AliPerformanceEff.cxx:710 AliPerformanceEff.cxx:711 AliPerformanceEff.cxx:712 AliPerformanceEff.cxx:713 AliPerformanceEff.cxx:714 AliPerformanceEff.cxx:715 AliPerformanceEff.cxx:716 AliPerformanceEff.cxx:717 AliPerformanceEff.cxx:718 AliPerformanceEff.cxx:719 AliPerformanceEff.cxx:720 AliPerformanceEff.cxx:721 AliPerformanceEff.cxx:722 AliPerformanceEff.cxx:723 AliPerformanceEff.cxx:724 AliPerformanceEff.cxx:725 AliPerformanceEff.cxx:726 AliPerformanceEff.cxx:727 AliPerformanceEff.cxx:728 AliPerformanceEff.cxx:729 AliPerformanceEff.cxx:730 AliPerformanceEff.cxx:731 AliPerformanceEff.cxx:732 AliPerformanceEff.cxx:733 AliPerformanceEff.cxx:734 AliPerformanceEff.cxx:735 AliPerformanceEff.cxx:736 AliPerformanceEff.cxx:737 AliPerformanceEff.cxx:738 AliPerformanceEff.cxx:739 AliPerformanceEff.cxx:740 AliPerformanceEff.cxx:741 AliPerformanceEff.cxx:742 AliPerformanceEff.cxx:743 AliPerformanceEff.cxx:744 AliPerformanceEff.cxx:745 AliPerformanceEff.cxx:746 AliPerformanceEff.cxx:747 AliPerformanceEff.cxx:748 AliPerformanceEff.cxx:749 AliPerformanceEff.cxx:750 AliPerformanceEff.cxx:751 AliPerformanceEff.cxx:752 AliPerformanceEff.cxx:753 AliPerformanceEff.cxx:754 AliPerformanceEff.cxx:755 AliPerformanceEff.cxx:756 AliPerformanceEff.cxx:757 AliPerformanceEff.cxx:758 AliPerformanceEff.cxx:759 AliPerformanceEff.cxx:760 AliPerformanceEff.cxx:761 AliPerformanceEff.cxx:762 AliPerformanceEff.cxx:763 AliPerformanceEff.cxx:764 AliPerformanceEff.cxx:765 AliPerformanceEff.cxx:766 AliPerformanceEff.cxx:767 AliPerformanceEff.cxx:768 AliPerformanceEff.cxx:769 AliPerformanceEff.cxx:770 AliPerformanceEff.cxx:771 AliPerformanceEff.cxx:772 AliPerformanceEff.cxx:773 AliPerformanceEff.cxx:774 AliPerformanceEff.cxx:775 AliPerformanceEff.cxx:776 AliPerformanceEff.cxx:777 AliPerformanceEff.cxx:778 AliPerformanceEff.cxx:779 AliPerformanceEff.cxx:780 AliPerformanceEff.cxx:781 AliPerformanceEff.cxx:782 AliPerformanceEff.cxx:783 AliPerformanceEff.cxx:784 AliPerformanceEff.cxx:785 AliPerformanceEff.cxx:786 AliPerformanceEff.cxx:787 AliPerformanceEff.cxx:788 AliPerformanceEff.cxx:789 AliPerformanceEff.cxx:790 AliPerformanceEff.cxx:791 AliPerformanceEff.cxx:792 AliPerformanceEff.cxx:793 AliPerformanceEff.cxx:794 AliPerformanceEff.cxx:795 AliPerformanceEff.cxx:796 AliPerformanceEff.cxx:797 AliPerformanceEff.cxx:798 AliPerformanceEff.cxx:799 AliPerformanceEff.cxx:800 AliPerformanceEff.cxx:801 AliPerformanceEff.cxx:802 AliPerformanceEff.cxx:803 AliPerformanceEff.cxx:804 AliPerformanceEff.cxx:805 AliPerformanceEff.cxx:806 AliPerformanceEff.cxx:807 AliPerformanceEff.cxx:808 AliPerformanceEff.cxx:809 AliPerformanceEff.cxx:810 AliPerformanceEff.cxx:811 AliPerformanceEff.cxx:812 AliPerformanceEff.cxx:813 AliPerformanceEff.cxx:814 AliPerformanceEff.cxx:815 AliPerformanceEff.cxx:816 AliPerformanceEff.cxx:817 AliPerformanceEff.cxx:818 AliPerformanceEff.cxx:819 AliPerformanceEff.cxx:820 AliPerformanceEff.cxx:821 AliPerformanceEff.cxx:822 AliPerformanceEff.cxx:823 AliPerformanceEff.cxx:824 AliPerformanceEff.cxx:825 AliPerformanceEff.cxx:826 AliPerformanceEff.cxx:827 AliPerformanceEff.cxx:828 AliPerformanceEff.cxx:829 AliPerformanceEff.cxx:830 AliPerformanceEff.cxx:831 AliPerformanceEff.cxx:832 AliPerformanceEff.cxx:833 AliPerformanceEff.cxx:834 AliPerformanceEff.cxx:835 AliPerformanceEff.cxx:836 AliPerformanceEff.cxx:837 AliPerformanceEff.cxx:838 AliPerformanceEff.cxx:839 AliPerformanceEff.cxx:840 AliPerformanceEff.cxx:841 AliPerformanceEff.cxx:842 AliPerformanceEff.cxx:843 AliPerformanceEff.cxx:844 AliPerformanceEff.cxx:845 AliPerformanceEff.cxx:846 AliPerformanceEff.cxx:847 AliPerformanceEff.cxx:848 AliPerformanceEff.cxx:849 AliPerformanceEff.cxx:850 AliPerformanceEff.cxx:851 AliPerformanceEff.cxx:852 AliPerformanceEff.cxx:853 AliPerformanceEff.cxx:854 AliPerformanceEff.cxx:855 AliPerformanceEff.cxx:856 AliPerformanceEff.cxx:857 AliPerformanceEff.cxx:858 AliPerformanceEff.cxx:859 AliPerformanceEff.cxx:860 AliPerformanceEff.cxx:861 AliPerformanceEff.cxx:862 AliPerformanceEff.cxx:863 AliPerformanceEff.cxx:864 AliPerformanceEff.cxx:865 AliPerformanceEff.cxx:866 AliPerformanceEff.cxx:867 AliPerformanceEff.cxx:868 AliPerformanceEff.cxx:869 AliPerformanceEff.cxx:870 AliPerformanceEff.cxx:871 AliPerformanceEff.cxx:872 AliPerformanceEff.cxx:873 AliPerformanceEff.cxx:874 AliPerformanceEff.cxx:875 AliPerformanceEff.cxx:876 AliPerformanceEff.cxx:877 AliPerformanceEff.cxx:878 AliPerformanceEff.cxx:879 AliPerformanceEff.cxx:880 AliPerformanceEff.cxx:881 AliPerformanceEff.cxx:882 AliPerformanceEff.cxx:883 AliPerformanceEff.cxx:884 AliPerformanceEff.cxx:885 AliPerformanceEff.cxx:886 AliPerformanceEff.cxx:887 AliPerformanceEff.cxx:888 AliPerformanceEff.cxx:889 AliPerformanceEff.cxx:890 AliPerformanceEff.cxx:891 AliPerformanceEff.cxx:892 AliPerformanceEff.cxx:893 AliPerformanceEff.cxx:894 AliPerformanceEff.cxx:895 AliPerformanceEff.cxx:896 AliPerformanceEff.cxx:897 AliPerformanceEff.cxx:898 AliPerformanceEff.cxx:899 AliPerformanceEff.cxx:900 AliPerformanceEff.cxx:901 AliPerformanceEff.cxx:902 AliPerformanceEff.cxx:903 AliPerformanceEff.cxx:904 AliPerformanceEff.cxx:905 AliPerformanceEff.cxx:906 AliPerformanceEff.cxx:907 AliPerformanceEff.cxx:908 AliPerformanceEff.cxx:909 AliPerformanceEff.cxx:910 AliPerformanceEff.cxx:911 AliPerformanceEff.cxx:912 AliPerformanceEff.cxx:913 AliPerformanceEff.cxx:914 AliPerformanceEff.cxx:915 AliPerformanceEff.cxx:916 AliPerformanceEff.cxx:917 AliPerformanceEff.cxx:918 AliPerformanceEff.cxx:919 AliPerformanceEff.cxx:920 AliPerformanceEff.cxx:921 AliPerformanceEff.cxx:922 AliPerformanceEff.cxx:923 AliPerformanceEff.cxx:924 AliPerformanceEff.cxx:925 AliPerformanceEff.cxx:926 AliPerformanceEff.cxx:927 AliPerformanceEff.cxx:928 AliPerformanceEff.cxx:929 AliPerformanceEff.cxx:930 AliPerformanceEff.cxx:931 AliPerformanceEff.cxx:932 AliPerformanceEff.cxx:933 AliPerformanceEff.cxx:934 AliPerformanceEff.cxx:935 AliPerformanceEff.cxx:936 AliPerformanceEff.cxx:937 AliPerformanceEff.cxx:938 AliPerformanceEff.cxx:939 AliPerformanceEff.cxx:940 AliPerformanceEff.cxx:941 AliPerformanceEff.cxx:942 AliPerformanceEff.cxx:943 AliPerformanceEff.cxx:944 AliPerformanceEff.cxx:945 AliPerformanceEff.cxx:946 AliPerformanceEff.cxx:947 AliPerformanceEff.cxx:948 AliPerformanceEff.cxx:949 AliPerformanceEff.cxx:950 AliPerformanceEff.cxx:951 AliPerformanceEff.cxx:952 AliPerformanceEff.cxx:953 AliPerformanceEff.cxx:954 AliPerformanceEff.cxx:955 AliPerformanceEff.cxx:956 AliPerformanceEff.cxx:957 AliPerformanceEff.cxx:958 AliPerformanceEff.cxx:959 AliPerformanceEff.cxx:960 AliPerformanceEff.cxx:961 AliPerformanceEff.cxx:962 AliPerformanceEff.cxx:963 AliPerformanceEff.cxx:964 AliPerformanceEff.cxx:965 AliPerformanceEff.cxx:966 AliPerformanceEff.cxx:967 AliPerformanceEff.cxx:968 AliPerformanceEff.cxx:969 AliPerformanceEff.cxx:970 AliPerformanceEff.cxx:971 AliPerformanceEff.cxx:972 AliPerformanceEff.cxx:973 AliPerformanceEff.cxx:974 AliPerformanceEff.cxx:975 AliPerformanceEff.cxx:976 AliPerformanceEff.cxx:977 AliPerformanceEff.cxx:978 AliPerformanceEff.cxx:979 AliPerformanceEff.cxx:980 AliPerformanceEff.cxx:981 AliPerformanceEff.cxx:982 AliPerformanceEff.cxx:983 AliPerformanceEff.cxx:984 AliPerformanceEff.cxx:985 AliPerformanceEff.cxx:986 AliPerformanceEff.cxx:987 AliPerformanceEff.cxx:988 AliPerformanceEff.cxx:989 AliPerformanceEff.cxx:990 AliPerformanceEff.cxx:991 AliPerformanceEff.cxx:992 AliPerformanceEff.cxx:993 AliPerformanceEff.cxx:994 AliPerformanceEff.cxx:995 AliPerformanceEff.cxx:996 AliPerformanceEff.cxx:997 AliPerformanceEff.cxx:998 AliPerformanceEff.cxx:999 AliPerformanceEff.cxx:1000 AliPerformanceEff.cxx:1001 AliPerformanceEff.cxx:1002 AliPerformanceEff.cxx:1003 AliPerformanceEff.cxx:1004 AliPerformanceEff.cxx:1005 AliPerformanceEff.cxx:1006 AliPerformanceEff.cxx:1007 AliPerformanceEff.cxx:1008 AliPerformanceEff.cxx:1009 AliPerformanceEff.cxx:1010 AliPerformanceEff.cxx:1011 AliPerformanceEff.cxx:1012 AliPerformanceEff.cxx:1013 AliPerformanceEff.cxx:1014 AliPerformanceEff.cxx:1015 AliPerformanceEff.cxx:1016 AliPerformanceEff.cxx:1017 AliPerformanceEff.cxx:1018 AliPerformanceEff.cxx:1019 AliPerformanceEff.cxx:1020 AliPerformanceEff.cxx:1021 AliPerformanceEff.cxx:1022 AliPerformanceEff.cxx:1023 AliPerformanceEff.cxx:1024 AliPerformanceEff.cxx:1025 AliPerformanceEff.cxx:1026 AliPerformanceEff.cxx:1027 AliPerformanceEff.cxx:1028 AliPerformanceEff.cxx:1029 AliPerformanceEff.cxx:1030 AliPerformanceEff.cxx:1031 AliPerformanceEff.cxx:1032 AliPerformanceEff.cxx:1033 AliPerformanceEff.cxx:1034 AliPerformanceEff.cxx:1035 AliPerformanceEff.cxx:1036 AliPerformanceEff.cxx:1037 AliPerformanceEff.cxx:1038 AliPerformanceEff.cxx:1039 AliPerformanceEff.cxx:1040 AliPerformanceEff.cxx:1041 AliPerformanceEff.cxx:1042 AliPerformanceEff.cxx:1043 AliPerformanceEff.cxx:1044 AliPerformanceEff.cxx:1045 AliPerformanceEff.cxx:1046 AliPerformanceEff.cxx:1047 AliPerformanceEff.cxx:1048 AliPerformanceEff.cxx:1049 AliPerformanceEff.cxx:1050 AliPerformanceEff.cxx:1051 AliPerformanceEff.cxx:1052 AliPerformanceEff.cxx:1053 AliPerformanceEff.cxx:1054 AliPerformanceEff.cxx:1055 AliPerformanceEff.cxx:1056 AliPerformanceEff.cxx:1057 AliPerformanceEff.cxx:1058 AliPerformanceEff.cxx:1059 AliPerformanceEff.cxx:1060 AliPerformanceEff.cxx:1061 AliPerformanceEff.cxx:1062 AliPerformanceEff.cxx:1063 AliPerformanceEff.cxx:1064 AliPerformanceEff.cxx:1065 AliPerformanceEff.cxx:1066 AliPerformanceEff.cxx:1067 AliPerformanceEff.cxx:1068 AliPerformanceEff.cxx:1069 AliPerformanceEff.cxx:1070 AliPerformanceEff.cxx:1071 AliPerformanceEff.cxx:1072 AliPerformanceEff.cxx:1073 AliPerformanceEff.cxx:1074 AliPerformanceEff.cxx:1075 AliPerformanceEff.cxx:1076 AliPerformanceEff.cxx:1077 AliPerformanceEff.cxx:1078 AliPerformanceEff.cxx:1079 AliPerformanceEff.cxx:1080 AliPerformanceEff.cxx:1081 AliPerformanceEff.cxx:1082 AliPerformanceEff.cxx:1083 AliPerformanceEff.cxx:1084 AliPerformanceEff.cxx:1085 AliPerformanceEff.cxx:1086 AliPerformanceEff.cxx:1087 AliPerformanceEff.cxx:1088 AliPerformanceEff.cxx:1089 AliPerformanceEff.cxx:1090 AliPerformanceEff.cxx:1091 AliPerformanceEff.cxx:1092 AliPerformanceEff.cxx:1093 AliPerformanceEff.cxx:1094 AliPerformanceEff.cxx:1095 AliPerformanceEff.cxx:1096 AliPerformanceEff.cxx:1097 AliPerformanceEff.cxx:1098 AliPerformanceEff.cxx:1099 AliPerformanceEff.cxx:1100 AliPerformanceEff.cxx:1101 AliPerformanceEff.cxx:1102 AliPerformanceEff.cxx:1103 AliPerformanceEff.cxx:1104 AliPerformanceEff.cxx:1105 AliPerformanceEff.cxx:1106 AliPerformanceEff.cxx:1107 AliPerformanceEff.cxx:1108 AliPerformanceEff.cxx:1109 AliPerformanceEff.cxx:1110 AliPerformanceEff.cxx:1111 AliPerformanceEff.cxx:1112 AliPerformanceEff.cxx:1113 AliPerformanceEff.cxx:1114 AliPerformanceEff.cxx:1115 AliPerformanceEff.cxx:1116 AliPerformanceEff.cxx:1117 AliPerformanceEff.cxx:1118 AliPerformanceEff.cxx:1119 AliPerformanceEff.cxx:1120 AliPerformanceEff.cxx:1121 AliPerformanceEff.cxx:1122 AliPerformanceEff.cxx:1123 AliPerformanceEff.cxx:1124 AliPerformanceEff.cxx:1125 AliPerformanceEff.cxx:1126 AliPerformanceEff.cxx:1127 AliPerformanceEff.cxx:1128 AliPerformanceEff.cxx:1129 AliPerformanceEff.cxx:1130 AliPerformanceEff.cxx:1131 AliPerformanceEff.cxx:1132 AliPerformanceEff.cxx:1133 AliPerformanceEff.cxx:1134 AliPerformanceEff.cxx:1135 AliPerformanceEff.cxx:1136 AliPerformanceEff.cxx:1137 AliPerformanceEff.cxx:1138 AliPerformanceEff.cxx:1139 AliPerformanceEff.cxx:1140 AliPerformanceEff.cxx:1141 AliPerformanceEff.cxx:1142 AliPerformanceEff.cxx:1143 AliPerformanceEff.cxx:1144 AliPerformanceEff.cxx:1145 AliPerformanceEff.cxx:1146 AliPerformanceEff.cxx:1147 AliPerformanceEff.cxx:1148 AliPerformanceEff.cxx:1149 AliPerformanceEff.cxx:1150 AliPerformanceEff.cxx:1151 AliPerformanceEff.cxx:1152 AliPerformanceEff.cxx:1153 AliPerformanceEff.cxx:1154 AliPerformanceEff.cxx:1155 AliPerformanceEff.cxx:1156 AliPerformanceEff.cxx:1157 AliPerformanceEff.cxx:1158 AliPerformanceEff.cxx:1159 AliPerformanceEff.cxx:1160 AliPerformanceEff.cxx:1161 AliPerformanceEff.cxx:1162 AliPerformanceEff.cxx:1163 AliPerformanceEff.cxx:1164 AliPerformanceEff.cxx:1165 AliPerformanceEff.cxx:1166 AliPerformanceEff.cxx:1167 AliPerformanceEff.cxx:1168 AliPerformanceEff.cxx:1169 AliPerformanceEff.cxx:1170 AliPerformanceEff.cxx:1171 AliPerformanceEff.cxx:1172 AliPerformanceEff.cxx:1173 AliPerformanceEff.cxx:1174 AliPerformanceEff.cxx:1175 AliPerformanceEff.cxx:1176 AliPerformanceEff.cxx:1177 AliPerformanceEff.cxx:1178 AliPerformanceEff.cxx:1179 AliPerformanceEff.cxx:1180 AliPerformanceEff.cxx:1181 AliPerformanceEff.cxx:1182 AliPerformanceEff.cxx:1183 AliPerformanceEff.cxx:1184 AliPerformanceEff.cxx:1185 AliPerformanceEff.cxx:1186 AliPerformanceEff.cxx:1187 AliPerformanceEff.cxx:1188 AliPerformanceEff.cxx:1189 AliPerformanceEff.cxx:1190 AliPerformanceEff.cxx:1191 AliPerformanceEff.cxx:1192 AliPerformanceEff.cxx:1193 AliPerformanceEff.cxx:1194 AliPerformanceEff.cxx:1195 AliPerformanceEff.cxx:1196 AliPerformanceEff.cxx:1197 AliPerformanceEff.cxx:1198 AliPerformanceEff.cxx:1199 AliPerformanceEff.cxx:1200 AliPerformanceEff.cxx:1201 AliPerformanceEff.cxx:1202 AliPerformanceEff.cxx:1203 AliPerformanceEff.cxx:1204 AliPerformanceEff.cxx:1205 AliPerformanceEff.cxx:1206 AliPerformanceEff.cxx:1207 AliPerformanceEff.cxx:1208 AliPerformanceEff.cxx:1209 AliPerformanceEff.cxx:1210 AliPerformanceEff.cxx:1211 AliPerformanceEff.cxx:1212 AliPerformanceEff.cxx:1213 AliPerformanceEff.cxx:1214 AliPerformanceEff.cxx:1215 AliPerformanceEff.cxx:1216 AliPerformanceEff.cxx:1217 AliPerformanceEff.cxx:1218 AliPerformanceEff.cxx:1219 AliPerformanceEff.cxx:1220 AliPerformanceEff.cxx:1221 AliPerformanceEff.cxx:1222 AliPerformanceEff.cxx:1223 AliPerformanceEff.cxx:1224 AliPerformanceEff.cxx:1225 AliPerformanceEff.cxx:1226 AliPerformanceEff.cxx:1227 AliPerformanceEff.cxx:1228 AliPerformanceEff.cxx:1229 AliPerformanceEff.cxx:1230 AliPerformanceEff.cxx:1231 AliPerformanceEff.cxx:1232 AliPerformanceEff.cxx:1233 AliPerformanceEff.cxx:1234 AliPerformanceEff.cxx:1235 AliPerformanceEff.cxx:1236 AliPerformanceEff.cxx:1237 AliPerformanceEff.cxx:1238 AliPerformanceEff.cxx:1239 AliPerformanceEff.cxx:1240 AliPerformanceEff.cxx:1241 AliPerformanceEff.cxx:1242 AliPerformanceEff.cxx:1243 AliPerformanceEff.cxx:1244 AliPerformanceEff.cxx:1245 AliPerformanceEff.cxx:1246 AliPerformanceEff.cxx:1247 AliPerformanceEff.cxx:1248 AliPerformanceEff.cxx:1249 AliPerformanceEff.cxx:1250 AliPerformanceEff.cxx:1251 AliPerformanceEff.cxx:1252 AliPerformanceEff.cxx:1253 AliPerformanceEff.cxx:1254 AliPerformanceEff.cxx:1255 AliPerformanceEff.cxx:1256 AliPerformanceEff.cxx:1257 AliPerformanceEff.cxx:1258 AliPerformanceEff.cxx:1259 AliPerformanceEff.cxx:1260 AliPerformanceEff.cxx:1261 AliPerformanceEff.cxx:1262 AliPerformanceEff.cxx:1263 AliPerformanceEff.cxx:1264 AliPerformanceEff.cxx:1265 AliPerformanceEff.cxx:1266 AliPerformanceEff.cxx:1267 AliPerformanceEff.cxx:1268 AliPerformanceEff.cxx:1269 AliPerformanceEff.cxx:1270 AliPerformanceEff.cxx:1271 AliPerformanceEff.cxx:1272 AliPerformanceEff.cxx:1273 AliPerformanceEff.cxx:1274 AliPerformanceEff.cxx:1275 AliPerformanceEff.cxx:1276 AliPerformanceEff.cxx:1277 AliPerformanceEff.cxx:1278 AliPerformanceEff.cxx:1279 AliPerformanceEff.cxx:1280 AliPerformanceEff.cxx:1281 AliPerformanceEff.cxx:1282 AliPerformanceEff.cxx:1283 AliPerformanceEff.cxx:1284 AliPerformanceEff.cxx:1285 AliPerformanceEff.cxx:1286 AliPerformanceEff.cxx:1287 AliPerformanceEff.cxx:1288 AliPerformanceEff.cxx:1289 AliPerformanceEff.cxx:1290 AliPerformanceEff.cxx:1291 AliPerformanceEff.cxx:1292 AliPerformanceEff.cxx:1293 AliPerformanceEff.cxx:1294 AliPerformanceEff.cxx:1295 AliPerformanceEff.cxx:1296 AliPerformanceEff.cxx:1297 AliPerformanceEff.cxx:1298 AliPerformanceEff.cxx:1299 AliPerformanceEff.cxx:1300 AliPerformanceEff.cxx:1301 AliPerformanceEff.cxx:1302 AliPerformanceEff.cxx:1303 AliPerformanceEff.cxx:1304 AliPerformanceEff.cxx:1305 AliPerformanceEff.cxx:1306 AliPerformanceEff.cxx:1307 AliPerformanceEff.cxx:1308 AliPerformanceEff.cxx:1309 AliPerformanceEff.cxx:1310 AliPerformanceEff.cxx:1311 AliPerformanceEff.cxx:1312 AliPerformanceEff.cxx:1313 AliPerformanceEff.cxx:1314 AliPerformanceEff.cxx:1315 AliPerformanceEff.cxx:1316 AliPerformanceEff.cxx:1317 AliPerformanceEff.cxx:1318 AliPerformanceEff.cxx:1319 AliPerformanceEff.cxx:1320 AliPerformanceEff.cxx:1321 AliPerformanceEff.cxx:1322 AliPerformanceEff.cxx:1323 AliPerformanceEff.cxx:1324 AliPerformanceEff.cxx:1325 AliPerformanceEff.cxx:1326 AliPerformanceEff.cxx:1327 AliPerformanceEff.cxx:1328 AliPerformanceEff.cxx:1329 AliPerformanceEff.cxx:1330 AliPerformanceEff.cxx:1331 AliPerformanceEff.cxx:1332 AliPerformanceEff.cxx:1333 AliPerformanceEff.cxx:1334 AliPerformanceEff.cxx:1335 AliPerformanceEff.cxx:1336 AliPerformanceEff.cxx:1337 AliPerformanceEff.cxx:1338 AliPerformanceEff.cxx:1339 AliPerformanceEff.cxx:1340 AliPerformanceEff.cxx:1341 AliPerformanceEff.cxx:1342 AliPerformanceEff.cxx:1343 AliPerformanceEff.cxx:1344 AliPerformanceEff.cxx:1345 AliPerformanceEff.cxx:1346 AliPerformanceEff.cxx:1347 AliPerformanceEff.cxx:1348 AliPerformanceEff.cxx:1349 AliPerformanceEff.cxx:1350 AliPerformanceEff.cxx:1351 AliPerformanceEff.cxx:1352 AliPerformanceEff.cxx:1353 AliPerformanceEff.cxx:1354 AliPerformanceEff.cxx:1355 AliPerformanceEff.cxx:1356 AliPerformanceEff.cxx:1357 AliPerformanceEff.cxx:1358 AliPerformanceEff.cxx:1359 AliPerformanceEff.cxx:1360 AliPerformanceEff.cxx:1361 AliPerformanceEff.cxx:1362 AliPerformanceEff.cxx:1363 AliPerformanceEff.cxx:1364 AliPerformanceEff.cxx:1365 AliPerformanceEff.cxx:1366 AliPerformanceEff.cxx:1367 AliPerformanceEff.cxx:1368 AliPerformanceEff.cxx:1369 AliPerformanceEff.cxx:1370 AliPerformanceEff.cxx:1371 AliPerformanceEff.cxx:1372 AliPerformanceEff.cxx:1373 AliPerformanceEff.cxx:1374 AliPerformanceEff.cxx:1375 AliPerformanceEff.cxx:1376 AliPerformanceEff.cxx:1377 AliPerformanceEff.cxx:1378 AliPerformanceEff.cxx:1379 AliPerformanceEff.cxx:1380 AliPerformanceEff.cxx:1381 AliPerformanceEff.cxx:1382 AliPerformanceEff.cxx:1383 AliPerformanceEff.cxx:1384 AliPerformanceEff.cxx:1385 AliPerformanceEff.cxx:1386 AliPerformanceEff.cxx:1387 AliPerformanceEff.cxx:1388 AliPerformanceEff.cxx:1389 AliPerformanceEff.cxx:1390 AliPerformanceEff.cxx:1391 AliPerformanceEff.cxx:1392 AliPerformanceEff.cxx:1393 AliPerformanceEff.cxx:1394 AliPerformanceEff.cxx:1395 AliPerformanceEff.cxx:1396 AliPerformanceEff.cxx:1397 AliPerformanceEff.cxx:1398 AliPerformanceEff.cxx:1399 AliPerformanceEff.cxx:1400 AliPerformanceEff.cxx:1401 AliPerformanceEff.cxx:1402 AliPerformanceEff.cxx:1403 AliPerformanceEff.cxx:1404 AliPerformanceEff.cxx:1405 AliPerformanceEff.cxx:1406 AliPerformanceEff.cxx:1407 AliPerformanceEff.cxx:1408 AliPerformanceEff.cxx:1409 AliPerformanceEff.cxx:1410 AliPerformanceEff.cxx:1411 AliPerformanceEff.cxx:1412 AliPerformanceEff.cxx:1413 AliPerformanceEff.cxx:1414 AliPerformanceEff.cxx:1415 AliPerformanceEff.cxx:1416 AliPerformanceEff.cxx:1417 AliPerformanceEff.cxx:1418 AliPerformanceEff.cxx:1419