#include "TCanvas.h"
#include "TH1.h"
#include "TH2.h"
#include "TAxis.h"
#include "TF1.h"
#include "AliPerformanceRes.h"
#include "AliESDEvent.h"
#include "AliESDVertex.h"
#include "AliESDtrack.h"
#include "AliESDfriendTrack.h"
#include "AliESDfriend.h"
#include "AliLog.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliHeader.h"
#include "AliGenEventHeader.h"
#include "AliStack.h"
#include "AliMCInfoCuts.h"
#include "AliRecInfoCuts.h"
#include "AliTracker.h"
#include "AliTreeDraw.h"
using namespace std;
ClassImp(AliPerformanceRes)
Double_t AliPerformanceRes::fgkMergeEntriesCut=5000000.;
AliPerformanceRes::AliPerformanceRes(const Char_t* name, const Char_t* title, Int_t analysisMode, Bool_t hptGenerator):
AliPerformanceObject(name,title),
fResolHisto(0),
fPullHisto(0),
fCutsRC(0),
fCutsMC(0),
fAnalysisFolder(0)
{
SetAnalysisMode(analysisMode);
SetHptGenerator(hptGenerator);
Init();
}
AliPerformanceRes::~AliPerformanceRes()
{
if(fResolHisto) delete fResolHisto; fResolHisto=0;
if(fPullHisto) delete fPullHisto; fPullHisto=0;
if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;
}
void AliPerformanceRes::Init(){
Int_t nPtBins = 50;
Double_t ptMin = 1.e-1, ptMax = 20.;
Double_t *binsPt = 0;
if (IsHptGenerator()) {
ptMax = 100.;
}
binsPt = CreateLogAxis(nPtBins,ptMin,ptMax);
Double_t yMin = -0.02, yMax = 0.02;
Double_t zMin = -12.0, zMax = 12.0;
if(GetAnalysisMode() == 3) {
yMin = -100.; yMax = 100.;
zMin = -100.; zMax = 100.;
}
Int_t binsResolHisto[10]={100,100,100,100,100,25,50,144,30,nPtBins};
Double_t minResolHisto[10]={-1.,-1.,-0.03,-0.03,-0.2, yMin, zMin, 0., -1.5, ptMin};
Double_t maxResolHisto[10]={ 1., 1., 0.03, 0.03, 0.2, yMax, zMax, 2.*TMath::Pi(), 1.5, ptMax};
fResolHisto = new THnSparseF("fResolHisto","res_y:res_z:res_phi:res_lambda:res_pt:y:z:phi:eta:pt",10,binsResolHisto,minResolHisto,maxResolHisto);
fResolHisto->GetAxis(9)->Set(nPtBins,binsPt);
fResolHisto->GetAxis(0)->SetTitle("y-y_{mc} (cm)");
fResolHisto->GetAxis(1)->SetTitle("z-z_{mc} (cm)");
fResolHisto->GetAxis(2)->SetTitle("#phi-#phi_{mc} (rad)");
fResolHisto->GetAxis(3)->SetTitle("#lambda-#lambda_{mc} (rad)");
fResolHisto->GetAxis(4)->SetTitle("(p_{T}/p_{Tmc}-1)");
fResolHisto->GetAxis(5)->SetTitle("y_{mc} (cm)");
fResolHisto->GetAxis(6)->SetTitle("z_{mc} (cm)");
fResolHisto->GetAxis(7)->SetTitle("#phi_{mc} (rad)");
fResolHisto->GetAxis(8)->SetTitle("#eta_{mc}");
fResolHisto->GetAxis(9)->SetTitle("p_{Tmc} (GeV/c)");
fResolHisto->Sumw2();
Int_t binsPullHisto[10]={100,100,100,100,100,50,50,50,50,20};
Double_t minPullHisto[10]={-5.,-5.,-5.,-5.,-5.,yMin, zMin,-1., -2.0, 0.};
Double_t maxPullHisto[10]={ 5., 5., 5., 5., 5., yMax, zMax, 1., 2.0, 10.};
fPullHisto = new THnSparseF("fPullHisto","pull_y:pull_z:pull_y:pull_z:pull_snp:pull_tgl:pull_1pt:y:z:snp:tgl:1pt",10,binsPullHisto,minPullHisto,maxPullHisto);
fPullHisto->GetAxis(9)->Set(nPtBins,binsPt);
fPullHisto->GetAxis(0)->SetTitle("(y-y_{mc})/#sigma");
fPullHisto->GetAxis(1)->SetTitle("(z-z_{mc})/#sigma");
fPullHisto->GetAxis(2)->SetTitle("(sin#phi-sin#phi_{mc})/#sigma");
fPullHisto->GetAxis(3)->SetTitle("(tan#lambda-tan#lambda_{mc})/#sigma");
fPullHisto->GetAxis(4)->SetTitle("(p_{Tmc}/p_{T}-1)/#sigma");
fPullHisto->GetAxis(5)->SetTitle("y_{mc} (cm)");
fPullHisto->GetAxis(6)->SetTitle("z_{mc} (cm)");
fPullHisto->GetAxis(7)->SetTitle("sin#phi_{mc}");
fPullHisto->GetAxis(8)->SetTitle("tan#lambda_{mc}");
fPullHisto->GetAxis(9)->SetTitle("1/p_{Tmc} (GeV/c)^{-1}");
fPullHisto->Sumw2();
if(!fCutsMC)
AliDebug(AliLog::kError, "ERROR: Cannot find AliMCInfoCuts object");
if(!fCutsRC)
AliDebug(AliLog::kError, "ERROR: Cannot find AliRecInfoCuts object");
fAnalysisFolder = CreateFolder("folderRes","Analysis Resolution Folder");
}
void AliPerformanceRes::ProcessTPC(AliStack* const stack, AliESDtrack *const esdTrack, AliESDEvent* const esdEvent)
{
if(!esdEvent) return;
if(!esdTrack) return;
if( IsUseTrackVertex() )
{
const AliESDVertex *vtxESD = esdEvent->GetPrimaryVertexTracks();
Double_t x[3]; esdTrack->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
Bool_t isOK = esdTrack->RelateToVertexTPCBxByBz(vtxESD, b, kVeryBig);
if(!isOK) return;
}
const AliExternalTrackParam* tmpTrack = esdTrack->GetTPCInnerParam();
if(!tmpTrack) return;
AliExternalTrackParam track = *tmpTrack;
Float_t dca[2], cov[3];
esdTrack->GetImpactParametersTPC(dca,cov);
if(!stack) return;
Int_t label = esdTrack->GetTPCLabel();
if (label <= 0) return;
TParticle* particle = stack->Particle(label);
if(!particle) return;
if(!particle->GetPDG()) return;
if(particle->GetPDG()->Charge()==0) return;
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) return;
if (fCutsMC->GetEM()==TMath::Abs(particle->GetPdgCode())) return;
Float_t deltaPtTPC, deltaYTPC, deltaZTPC, deltaPhiTPC, deltaLambdaTPC;
Float_t pull1PtTPC, pullYTPC, pullZTPC, pullPhiTPC, pullLambdaTPC;
Float_t mceta = particle->Eta();
Float_t mcphi = particle->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = particle->Pt();
Float_t mcsnp = TMath::Sin(TMath::ATan2(particle->Py(),particle->Px()));
Float_t mctgl = TMath::Tan(TMath::ATan2(particle->Pz(),particle->Pt()));
if (esdTrack->GetTPCNcls()<fCutsRC->GetMinNClustersTPC()) return;
if(TMath::Abs(dca[0])<fCutsRC->GetMaxDCAToVertexXY() && TMath::Abs(dca[1])<fCutsRC->GetMaxDCAToVertexZ())
{
if(mcpt == 0) return;
double Bz = esdEvent->GetMagneticField();
Double_t mclocal[4];
Double_t c = TMath::Cos(track.GetAlpha());
Double_t s = TMath::Sin(track.GetAlpha());
Double_t x = particle->Vx();
Double_t y = particle->Vy();
mclocal[0] = x*c + y*s;
mclocal[1] =-x*s + y*c;
Double_t px = particle->Px();
Double_t py = particle->Py();
mclocal[2] = px*c + py*s;
mclocal[3] =-px*s + py*c;
Float_t mcsnplocal = TMath::Sin(TMath::ATan2(mclocal[3],mclocal[2]));
track.AliExternalTrackParam::PropagateTo(mclocal[0],Bz);
deltaYTPC= track.GetY()-mclocal[1];
deltaZTPC = track.GetZ()-particle->Vz();
deltaLambdaTPC = TMath::ATan2(track.Pz(),track.Pt())-TMath::ATan2(particle->Pz(),particle->Pt());
deltaPhiTPC = TMath::ATan2(track.Py(),track.Px())-TMath::ATan2(particle->Py(),particle->Px());
deltaPtTPC = (track.Pt()-mcpt) / mcpt;
pullYTPC= deltaYTPC / TMath::Sqrt(track.GetSigmaY2());
pullZTPC = deltaZTPC / TMath::Sqrt(track.GetSigmaZ2());
pullPhiTPC = (track.GetSnp() - mcsnplocal) / TMath::Sqrt(track.GetSigmaSnp2());
pullLambdaTPC = (track.GetTgl() - mctgl) / TMath::Sqrt(track.GetSigmaTgl2());
if (mcpt) pull1PtTPC = (track.OneOverPt()-1./mcpt) / TMath::Sqrt(track.GetSigma1Pt2());
else pull1PtTPC = 0.;
Double_t vResolHisto[10] = {deltaYTPC,deltaZTPC,deltaPhiTPC,deltaLambdaTPC,deltaPtTPC,particle->Vy(),particle->Vz(),mcphi,mceta,mcpt};
fResolHisto->Fill(vResolHisto);
Double_t vPullHisto[10] = {pullYTPC,pullZTPC,pullPhiTPC,pullLambdaTPC,pull1PtTPC,particle->Vy(),particle->Vz(),mcsnp,mctgl,1./mcpt};
fPullHisto->Fill(vPullHisto);
}
}
void AliPerformanceRes::ProcessTPCITS(AliStack* const stack, AliESDtrack *const esdTrack, AliESDEvent* const esdEvent)
{
if(!esdEvent) return;
if(!esdTrack) return;
if( IsUseTrackVertex() )
{
const AliESDVertex *vtxESD = esdEvent->GetPrimaryVertexTracks();
Double_t x[3]; esdTrack->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
Bool_t isOK = esdTrack->RelateToVertexBxByBz(vtxESD, b, kVeryBig);
if(!isOK) return;
}
Float_t dca[2], cov[3];
esdTrack->GetImpactParameters(dca,cov);
if(!stack) return;
Int_t label = TMath::Abs(esdTrack->GetLabel());
TParticle* particle = stack->Particle(label);
if(!particle) return;
if(!particle->GetPDG()) return;
if(particle->GetPDG()->Charge()==0) return;
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) return;
if (fCutsMC->GetEM()==TMath::Abs(particle->GetPdgCode())) return;
Float_t mceta = particle->Eta();
Float_t mcphi = particle->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = particle->Pt();
Float_t mcsnp = TMath::Sin(TMath::ATan2(particle->Py(),particle->Px()));
Float_t mctgl = TMath::Tan(TMath::ATan2(particle->Pz(),particle->Pt()));
if ((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return;
if (esdTrack->GetTPCNcls()<fCutsRC->GetMinNClustersTPC()) return;
if(esdTrack->GetITSclusters(0)<fCutsRC->GetMinNClustersITS()) return;
Float_t deltaPtTPC, deltaYTPC, deltaZTPC, deltaPhiTPC, deltaLambdaTPC;
Float_t pull1PtTPC, pullYTPC, pullZTPC, pullPhiTPC, pullLambdaTPC;
if(TMath::Abs(dca[0])<fCutsRC->GetMaxDCAToVertexXY() && TMath::Abs(dca[1])<fCutsRC->GetMaxDCAToVertexZ())
{
if(mcpt == 0) return;
deltaYTPC= esdTrack->GetY()-particle->Vy();
deltaZTPC = esdTrack->GetZ()-particle->Vz();
deltaLambdaTPC = TMath::ATan2(esdTrack->Pz(),esdTrack->Pt())-TMath::ATan2(particle->Pz(),particle->Pt());
deltaPhiTPC = TMath::ATan2(esdTrack->Py(),esdTrack->Px())-TMath::ATan2(particle->Py(),particle->Px());
deltaPtTPC = (esdTrack->Pt()-mcpt) / mcpt;
pullYTPC= (esdTrack->GetY()-particle->Vy()) / TMath::Sqrt(esdTrack->GetSigmaY2());
pullZTPC = (esdTrack->GetZ()-particle->Vz()) / TMath::Sqrt(esdTrack->GetSigmaZ2());
pullPhiTPC = (esdTrack->GetSnp() - mcsnp) / TMath::Sqrt(esdTrack->GetSigmaSnp2());
pullLambdaTPC = (esdTrack->GetTgl() - mctgl) / TMath::Sqrt(esdTrack->GetSigmaTgl2());
if (mcpt) pull1PtTPC = (esdTrack->OneOverPt()-1./mcpt) / TMath::Sqrt(esdTrack->GetSigma1Pt2());
else pull1PtTPC = 0.;
Double_t vResolHisto[10] = {deltaYTPC,deltaZTPC,deltaPhiTPC,deltaLambdaTPC,deltaPtTPC,particle->Vy(),particle->Vz(),mcphi,mceta,mcpt};
fResolHisto->Fill(vResolHisto);
Double_t vPullHisto[10] = {pullYTPC,pullZTPC,pullPhiTPC,pullLambdaTPC,pull1PtTPC,particle->Vy(),particle->Vz(),mcsnp,mctgl,1./mcpt};
fPullHisto->Fill(vPullHisto);
}
}
void AliPerformanceRes::ProcessConstrained(AliStack* const stack, AliESDtrack *const esdTrack, AliESDEvent* const esdEvent)
{
if(!esdEvent) return;
if(!esdTrack) return;
if( IsUseTrackVertex() )
{
const AliESDVertex *vtxESD = esdEvent->GetPrimaryVertexTracks();
Double_t x[3]; esdTrack->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
Bool_t isOK = esdTrack->RelateToVertexBxByBz(vtxESD, b, kVeryBig);
if(!isOK) return;
}
const AliExternalTrackParam * track = esdTrack->GetConstrainedParam();
if(!track) return;
Float_t dca[2], cov[3];
esdTrack->GetImpactParameters(dca,cov);
if(!stack) return;
Int_t label = TMath::Abs(esdTrack->GetLabel());
TParticle* particle = stack->Particle(label);
if(!particle) return;
if(!particle->GetPDG()) return;
if(particle->GetPDG()->Charge()==0) return;
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) return;
if (fCutsMC->GetEM()==TMath::Abs(particle->GetPdgCode())) return;
Float_t mceta = particle->Eta();
Float_t mcphi = particle->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = particle->Pt();
Float_t mcsnp = TMath::Sin(TMath::ATan2(particle->Py(),particle->Px()));
Float_t mctgl = TMath::Tan(TMath::ATan2(particle->Pz(),particle->Pt()));
if ((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return;
if (esdTrack->GetTPCNcls()<fCutsRC->GetMinNClustersTPC()) return;
Float_t deltaPtTPC, deltaYTPC, deltaZTPC, deltaPhiTPC, deltaLambdaTPC;
Float_t pull1PtTPC, pullYTPC, pullZTPC, pullPhiTPC, pullLambdaTPC;
if(TMath::Abs(dca[0])<fCutsRC->GetMaxDCAToVertexXY() && TMath::Abs(dca[1])<fCutsRC->GetMaxDCAToVertexZ())
{
if(mcpt == 0) return;
deltaYTPC= track->GetY()-particle->Vy();
deltaZTPC = track->GetZ()-particle->Vz();
deltaLambdaTPC = TMath::ATan2(track->Pz(),track->Pt())-TMath::ATan2(particle->Pz(),particle->Pt());
deltaPhiTPC = TMath::ATan2(track->Py(),track->Px())-TMath::ATan2(particle->Py(),particle->Px());
deltaPtTPC = (track->Pt()-mcpt) / mcpt;
pullYTPC= (track->GetY()-particle->Vy()) / TMath::Sqrt(track->GetSigmaY2());
pullZTPC = (track->GetZ()-particle->Vz()) / TMath::Sqrt(track->GetSigmaZ2());
pullPhiTPC = (track->GetSnp() - mcsnp) / TMath::Sqrt(track->GetSigmaSnp2());
pullLambdaTPC = (track->GetTgl() - mctgl) / TMath::Sqrt(track->GetSigmaTgl2());
if (mcpt) pull1PtTPC = (track->OneOverPt()-1./mcpt) / TMath::Sqrt(track->GetSigma1Pt2());
else pull1PtTPC = 0.;
Double_t vResolHisto[10] = {deltaYTPC,deltaZTPC,deltaPhiTPC,deltaLambdaTPC,deltaPtTPC,particle->Vy(),particle->Vz(),mcphi,mceta,mcpt};
fResolHisto->Fill(vResolHisto);
Double_t vPullHisto[10] = {pullYTPC,pullZTPC,pullPhiTPC,pullLambdaTPC,pull1PtTPC,particle->Vy(),particle->Vz(),mcsnp,mctgl,1./mcpt};
fPullHisto->Fill(vPullHisto);
}
}
void AliPerformanceRes::ProcessInnerTPC(AliMCEvent *const mcEvent, AliESDtrack *const esdTrack, AliESDEvent* const esdEvent)
{
if(!esdEvent) return;
if(!esdTrack) return;
if( IsUseTrackVertex() )
{
const AliESDVertex *vtxESD = esdEvent->GetPrimaryVertexTracks();
Double_t x[3]; esdTrack->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
Bool_t isOK = esdTrack->RelateToVertexTPCBxByBz(vtxESD, b, kVeryBig);
if(!isOK) return;
}
const AliExternalTrackParam * innerParam = esdTrack->GetInnerParam();
if(!innerParam) return;
AliExternalTrackParam *track = new AliExternalTrackParam(*innerParam);
if(!track) return;
Float_t dca[2], cov[3];
esdTrack->GetImpactParametersTPC(dca,cov);
if(!mcEvent) return;
Int_t label = esdTrack->GetTPCLabel();
if (label <= 0) return;
AliMCParticle *mcParticle = (AliMCParticle*) mcEvent->GetTrack(label);
if(!mcParticle) return;
AliTrackReference *ref0 = GetFirstTPCTrackRef(mcParticle);
if(!ref0) return;
TParticle *particle = mcParticle->Particle();
if(!particle) return;
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) return;
if (fCutsMC->GetEM()==TMath::Abs(particle->GetPdgCode())) return;
Double_t mclocal[4];
Double_t c = TMath::Cos(track->GetAlpha());
Double_t s = TMath::Sin(track->GetAlpha());
Double_t x = ref0->X();
Double_t y = ref0->Y();
mclocal[0] = x*c + y*s;
mclocal[1] =-x*s + y*c;
Double_t px = ref0->Px();
Double_t py = ref0->Py();
mclocal[2] = px*c + py*s;
mclocal[3] =-px*s + py*c;
Double_t field[3]; track->GetBxByBz(field);
if (TGeoGlobalMagField::Instance()->GetField() == NULL) {
Error("ProcessInnerTPC", "Magnetic Field not set");
}
Bool_t isOK = track->PropagateToBxByBz(mclocal[0],field);
if(!isOK) {return;}
Float_t mceta = -TMath::Log(TMath::Tan(0.5 * ref0->Theta()));
Float_t mcphi = ref0->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = ref0->Pt();
Float_t mcsnp = TMath::Sin(TMath::ATan2(ref0->Py(),ref0->Px()));
Float_t mcsnplocal = TMath::Sin(TMath::ATan2(mclocal[3],mclocal[2]));
Float_t mctgl = TMath::Tan(TMath::ATan2(ref0->Pz(),ref0->Pt()));
if ((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return;
if (esdTrack->GetTPCNcls()<fCutsRC->GetMinNClustersTPC()) return;
Float_t deltaPtTPC, deltaYTPC, deltaZTPC, deltaPhiTPC, deltaLambdaTPC;
Float_t pull1PtTPC, pullYTPC, pullZTPC, pullPhiTPC, pullLambdaTPC;
Bool_t isPrimary;
if ( IsUseTrackVertex() )
{
isPrimary = TMath::Abs(dca[0])<fCutsRC->GetMaxDCAToVertexXY() && TMath::Abs(dca[1])<fCutsRC->GetMaxDCAToVertexZ();
}
else
{
isPrimary = label < mcEvent->Stack()->GetNprimary();
}
if(isPrimary)
{
if(mcpt == 0) return;
deltaYTPC= track->GetY()-mclocal[1];
deltaZTPC = track->GetZ()-ref0->Z();
deltaLambdaTPC = TMath::ATan2(track->Pz(),track->Pt())-TMath::ATan2(ref0->Pz(),ref0->Pt());
deltaPhiTPC = TMath::ATan2(track->Py(),track->Px())-TMath::ATan2(ref0->Py(),ref0->Px());
deltaPtTPC = (track->Pt()-mcpt) / mcpt;
pullYTPC= deltaYTPC / TMath::Sqrt(track->GetSigmaY2());
pullZTPC = deltaZTPC / TMath::Sqrt(track->GetSigmaZ2());
pullPhiTPC = (track->GetSnp() - mcsnplocal) / TMath::Sqrt(track->GetSigmaSnp2());
pullLambdaTPC = (track->GetTgl() - mctgl) / TMath::Sqrt(track->GetSigmaTgl2());
if (mcpt) pull1PtTPC = (track->OneOverPt()-1./mcpt) / TMath::Sqrt(track->GetSigma1Pt2());
else pull1PtTPC = 0.;
Double_t vResolHisto[10] = {deltaYTPC,deltaZTPC,deltaPhiTPC,deltaLambdaTPC,deltaPtTPC,ref0->Y(),ref0->Z(),mcphi,mceta,mcpt};
fResolHisto->Fill(vResolHisto);
Double_t vPullHisto[10] = {pullYTPC,pullZTPC,pullPhiTPC,pullLambdaTPC,pull1PtTPC,ref0->Y(),ref0->Z(),mcsnp,mctgl,1./mcpt};
fPullHisto->Fill(vPullHisto);
}
if(track) delete track;
}
void AliPerformanceRes::ProcessOuterTPC(AliMCEvent *const mcEvent, AliESDtrack *const esdTrack, AliESDfriendTrack *const friendTrack, AliESDEvent* const esdEvent)
{
if(!friendTrack) return;
if(!esdEvent) return;
if(!esdTrack) return;
if( IsUseTrackVertex() )
{
const AliESDVertex *vtxESD = esdEvent->GetPrimaryVertexTracks();
Double_t x[3]; esdTrack->GetXYZ(x);
Double_t b[3]; AliTracker::GetBxByBz(x,b);
Bool_t isOK = esdTrack->RelateToVertexTPCBxByBz(vtxESD, b, kVeryBig);
if(!isOK) return;
}
const AliExternalTrackParam * outerParam = friendTrack->GetTPCOut();
if(!outerParam) return;
AliExternalTrackParam *track = new AliExternalTrackParam(*outerParam);
if(!track) return;
Float_t dca[2], cov[3];
esdTrack->GetImpactParametersTPC(dca,cov);
if(!mcEvent) return;
Int_t label = esdTrack->GetTPCLabel();
if (label <= 0) return;
AliMCParticle *mcParticle = (AliMCParticle*) mcEvent->GetTrack(label);
if(!mcParticle) return;
AliTrackReference *ref0 = GetLastTPCTrackRef(mcParticle);
if(!ref0) return;
TParticle *particle = mcParticle->Particle();
if(!particle) return;
if (fCutsMC->IsPdgParticle(TMath::Abs(particle->GetPdgCode())) == kFALSE) return;
if (fCutsMC->GetEM()==TMath::Abs(particle->GetPdgCode())) return;
Double_t xyz[3] = {ref0->X(),ref0->Y(),ref0->Z()};
Double_t alpha = TMath::ATan2(xyz[1],xyz[0]);
Double_t trRadius = TMath::Sqrt(xyz[1] * xyz[1] + xyz[0] * xyz[0]);
Double_t field[3]; track->GetBxByBz(field);
Bool_t isOK = track->PropagateBxByBz(alpha,trRadius,field);
if(!isOK) return;
Float_t mceta = -TMath::Log(TMath::Tan(0.5 * ref0->Theta()));
Float_t mcphi = ref0->Phi();
if(mcphi<0) mcphi += 2.*TMath::Pi();
Float_t mcpt = ref0->Pt();
Float_t mcsnp = TMath::Sin(TMath::ATan2(ref0->Py(),ref0->Px()));
Float_t mctgl = TMath::Tan(TMath::ATan2(ref0->Pz(),ref0->Pt()));
if ((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return;
if (esdTrack->GetTPCNcls()<fCutsRC->GetMinNClustersTPC()) return;
Float_t deltaPtTPC, deltaYTPC, deltaZTPC, deltaPhiTPC, deltaLambdaTPC;
Float_t pull1PtTPC, pullYTPC, pullZTPC, pullPhiTPC, pullLambdaTPC;
if(TMath::Abs(dca[0])<fCutsRC->GetMaxDCAToVertexXY() && TMath::Abs(dca[1])<fCutsRC->GetMaxDCAToVertexZ())
{
if(mcpt == 0) return;
deltaYTPC= track->GetY();
deltaZTPC = track->GetZ()-ref0->Z();
deltaLambdaTPC = TMath::ATan2(track->Pz(),track->Pt())-TMath::ATan2(ref0->Pz(),ref0->Pt());
deltaPhiTPC = TMath::ATan2(track->Py(),track->Px())-TMath::ATan2(ref0->Py(),ref0->Px());
deltaPtTPC = (track->Pt()-mcpt) / mcpt;
pullYTPC= track->GetY() / TMath::Sqrt(track->GetSigmaY2());
pullZTPC = (track->GetZ()-ref0->Z()) / TMath::Sqrt(track->GetSigmaZ2());
pullPhiTPC = (track->GetSnp() - mcsnp) / TMath::Sqrt(track->GetSigmaSnp2());
pullLambdaTPC = (track->GetTgl() - mctgl) / TMath::Sqrt(track->GetSigmaTgl2());
if (mcpt) pull1PtTPC = (track->OneOverPt()-1./mcpt) / TMath::Sqrt(track->GetSigma1Pt2());
else pull1PtTPC = 0.;
Double_t vResolHisto[10] = {deltaYTPC,deltaZTPC,deltaPhiTPC,deltaLambdaTPC,deltaPtTPC,ref0->Y(),ref0->Z(),mcphi,mceta,mcpt};
fResolHisto->Fill(vResolHisto);
Double_t vPullHisto[10] = {pullYTPC,pullZTPC,pullPhiTPC,pullLambdaTPC,pull1PtTPC,ref0->Y(),ref0->Z(),mcsnp,mctgl,1./mcpt};
fPullHisto->Fill(vPullHisto);
}
if(track) delete track;
}
AliTrackReference * AliPerformanceRes::GetFirstTPCTrackRef(AliMCParticle *mcParticle)
{
if(!mcParticle) return 0;
Int_t nTrackRef = mcParticle->GetNumberOfTrackReferences();
AliTrackReference *ref = 0;
AliTrackReference *refIn = 0;
for (Int_t iref = 0; iref < nTrackRef; iref++) {
ref = mcParticle->GetTrackReference(iref);
if(ref && (ref->DetectorId()==AliTrackReference::kTPC))
{
Float_t dir = ref->X()*ref->Px()+ref->Y()*ref->Py();
if(dir < 0.) break;
refIn = ref;
break;
}
}
return refIn;
}
AliTrackReference * AliPerformanceRes::GetLastTPCTrackRef(AliMCParticle *mcParticle)
{
if(!mcParticle) return 0;
Int_t nTrackRef = mcParticle->GetNumberOfTrackReferences();
AliTrackReference *ref = 0;
AliTrackReference *refOut = 0;
for (Int_t iref = 0; iref < nTrackRef; iref++) {
ref = mcParticle->GetTrackReference(iref);
if(ref && (ref->DetectorId()==AliTrackReference::kTPC)) {
Float_t dir=ref->X()*ref->Px()+ref->Y()*ref->Py();
if(dir< 0.0) break;
refOut = ref;
}
}
return refOut;
}
void AliPerformanceRes::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;
}
}
const AliESDVertex *vtxESD = NULL;
if( IsUseTrackVertex() )
{
vtxESD = esdEvent->GetPrimaryVertexTracks();
if(vtxESD && (vtxESD->GetStatus()<=0)) return;
}
for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++)
{
AliESDtrack *track = esdEvent->GetTrack(iTrack);
if(!track) continue;
AliESDfriendTrack *friendTrack=0;
Int_t label = TMath::Abs(track->GetLabel());
if ( label > stack->GetNtrack() )
{
ULong_t status = track->GetStatus();
printf ("Error : ESD MCLabel %d - StackSize %d - Status %lu \n",
track->GetLabel(), stack->GetNtrack(), status );
printf(" NCluster %d \n", track->GetTPCclusters(0) );
continue;
}
if (label == 0) continue;
if (track->GetLabel() < 0) continue;
if(GetAnalysisMode() == 0) ProcessTPC(stack,track,esdEvent);
else if(GetAnalysisMode() == 1) ProcessTPCITS(stack,track,esdEvent);
else if(GetAnalysisMode() == 2) ProcessConstrained(stack,track,esdEvent);
else if(GetAnalysisMode() == 3) ProcessInnerTPC(mcEvent,track,esdEvent);
else if(GetAnalysisMode() == 4) {
if(bUseESDfriend) {
friendTrack=esdFriend->GetTrack(iTrack);
if(!friendTrack) continue;
}
ProcessOuterTPC(mcEvent,track,friendTrack,esdEvent);
}
else {
printf("ERROR: AnalysisMode %d \n",fAnalysisMode);
return;
}
}
}
TH1F* AliPerformanceRes::MakeResol(TH2F * his, Int_t integ, Bool_t type, Int_t cut){
TH1F *hisr, *hism;
if (!gPad) new TCanvas;
hisr = AliTreeDraw::CreateResHistoII(his,&hism,integ,kTRUE,cut);
if (type) return hism;
else
return hisr;
}
void AliPerformanceRes::Analyse() {
TH1::AddDirectory(kFALSE);
TH1F *h=0;
TH2F *h2D=0;
TObjArray *aFolderObj = new TObjArray;
if(!aFolderObj) return;
TCanvas * c = new TCanvas("Phi resol Tan","Phi resol Tan");
c->cd();
char name[256];
char title[256];
for(Int_t i=0; i<5; i++)
{
for(Int_t j=5; j<10; j++)
{
if(j!=8) fResolHisto->GetAxis(8)->SetRangeUser(-0.9,0.89);
else fResolHisto->GetAxis(8)->SetRangeUser(-1.5,1.49);
if(GetAnalysisMode() == 3) fResolHisto->GetAxis(5)->SetRangeUser(-80.,79.99);
h2D = (TH2F*)fResolHisto->Projection(i,j);
h = AliPerformanceRes::MakeResol(h2D,1,0,100);
snprintf(name,256,"h_res_%d_vs_%d",i,j);
h->SetName(name);
h->GetXaxis()->SetTitle(fResolHisto->GetAxis(j)->GetTitle());
snprintf(title,256,"%s %s",fResolHisto->GetAxis(i)->GetTitle(),"(resolution)");
h->GetYaxis()->SetTitle(title);
snprintf(title,256,"%s vs %s",title,fResolHisto->GetAxis(j)->GetTitle());
h->SetTitle(title);
if(j==9) h->SetBit(TH1::kLogX);
aFolderObj->Add(h);
h = AliPerformanceRes::MakeResol(h2D,1,1,100);
snprintf(name,256,"h_mean_res_%d_vs_%d",i,j);
h->SetName(name);
h->GetXaxis()->SetTitle(fResolHisto->GetAxis(j)->GetTitle());
snprintf(title,256,"%s %s",fResolHisto->GetAxis(i)->GetTitle(),"(mean)");
h->GetYaxis()->SetTitle(title);
snprintf(title,256,"%s vs %s",title,fResolHisto->GetAxis(j)->GetTitle());
h->SetTitle(title);
if(j==9) h->SetBit(TH1::kLogX);
aFolderObj->Add(h);
fResolHisto->GetAxis(8)->SetRangeUser(-1.5,1.5);
fResolHisto->GetAxis(9)->SetRangeUser(0.1,100.);
if(j!=8) fPullHisto->GetAxis(8)->SetRangeUser(-0.9,0.89);
else fPullHisto->GetAxis(8)->SetRangeUser(-1.5,1.49);
fPullHisto->GetAxis(9)->SetRangeUser(0.,9.99);
if(GetAnalysisMode() == 3) fPullHisto->GetAxis(5)->SetRangeUser(-80.,79.99);
h2D = (TH2F*)fPullHisto->Projection(i,j);
h = AliPerformanceRes::MakeResol(h2D,1,0,100);
snprintf(name,256,"h_pull_%d_vs_%d",i,j);
h->SetName(name);
h->GetXaxis()->SetTitle(fPullHisto->GetAxis(j)->GetTitle());
snprintf(title,256,"%s %s",fPullHisto->GetAxis(i)->GetTitle(),"(resolution)");
h->GetYaxis()->SetTitle(title);
snprintf(title,256,"%s vs %s",title,fPullHisto->GetAxis(j)->GetTitle());
h->SetTitle(title);
aFolderObj->Add(h);
h = AliPerformanceRes::MakeResol(h2D,1,1,100);
snprintf(name,256,"h_mean_pull_%d_vs_%d",i,j);
h->SetName(name);
h->GetXaxis()->SetTitle(fPullHisto->GetAxis(j)->GetTitle());
snprintf(title,256,"%s %s",fPullHisto->GetAxis(i)->GetTitle(),"(mean)");
h->GetYaxis()->SetTitle(title);
snprintf(title,256,"%s vs %s",title,fPullHisto->GetAxis(j)->GetTitle());
h->SetTitle(title);
aFolderObj->Add(h);
}
}
for (Int_t i = 0;i < fResolHisto->GetNdimensions();i++)
{
fResolHisto->GetAxis(i)->SetRange(1,0);
}
for (Int_t i = 0;i < fPullHisto->GetNdimensions();i++)
{
fPullHisto->GetAxis(i)->SetRange(1,0);
}
fAnalysisFolder = ExportToFolder(aFolderObj);
if(aFolderObj) delete aFolderObj;
}
TFolder* AliPerformanceRes::ExportToFolder(TObjArray * array)
{
AliPerformanceRes * 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;
}
Long64_t AliPerformanceRes::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)
{
AliPerformanceRes* entry = dynamic_cast<AliPerformanceRes*>(obj);
if (entry == 0) continue;
if (fResolHisto->GetEntries()<fgkMergeEntriesCut){
fResolHisto->Add(entry->fResolHisto);
fPullHisto->Add(entry->fPullHisto);
}
count++;
}
return count;
}
TFolder* AliPerformanceRes::CreateFolder(TString name,TString title) {
TFolder *folder = 0;
folder = new TFolder(name.Data(),title.Data());
return folder;
}
AliPerformanceRes.cxx:100 AliPerformanceRes.cxx:101 AliPerformanceRes.cxx:102 AliPerformanceRes.cxx:103 AliPerformanceRes.cxx:104 AliPerformanceRes.cxx:105 AliPerformanceRes.cxx:106 AliPerformanceRes.cxx:107 AliPerformanceRes.cxx:108 AliPerformanceRes.cxx:109 AliPerformanceRes.cxx:110 AliPerformanceRes.cxx:111 AliPerformanceRes.cxx:112 AliPerformanceRes.cxx:113 AliPerformanceRes.cxx:114 AliPerformanceRes.cxx:115 AliPerformanceRes.cxx:116 AliPerformanceRes.cxx:117 AliPerformanceRes.cxx:118 AliPerformanceRes.cxx:119 AliPerformanceRes.cxx:120 AliPerformanceRes.cxx:121 AliPerformanceRes.cxx:122 AliPerformanceRes.cxx:123 AliPerformanceRes.cxx:124 AliPerformanceRes.cxx:125 AliPerformanceRes.cxx:126 AliPerformanceRes.cxx:127 AliPerformanceRes.cxx:128 AliPerformanceRes.cxx:129 AliPerformanceRes.cxx:130 AliPerformanceRes.cxx:131 AliPerformanceRes.cxx:132 AliPerformanceRes.cxx:133 AliPerformanceRes.cxx:134 AliPerformanceRes.cxx:135 AliPerformanceRes.cxx:136 AliPerformanceRes.cxx:137 AliPerformanceRes.cxx:138 AliPerformanceRes.cxx:139 AliPerformanceRes.cxx:140 AliPerformanceRes.cxx:141 AliPerformanceRes.cxx:142 AliPerformanceRes.cxx:143 AliPerformanceRes.cxx:144 AliPerformanceRes.cxx:145 AliPerformanceRes.cxx:146 AliPerformanceRes.cxx:147 AliPerformanceRes.cxx:148 AliPerformanceRes.cxx:149 AliPerformanceRes.cxx:150 AliPerformanceRes.cxx:151 AliPerformanceRes.cxx:152 AliPerformanceRes.cxx:153 AliPerformanceRes.cxx:154 AliPerformanceRes.cxx:155 AliPerformanceRes.cxx:156 AliPerformanceRes.cxx:157 AliPerformanceRes.cxx:158 AliPerformanceRes.cxx:159 AliPerformanceRes.cxx:160 AliPerformanceRes.cxx:161 AliPerformanceRes.cxx:162 AliPerformanceRes.cxx:163 AliPerformanceRes.cxx:164 AliPerformanceRes.cxx:165 AliPerformanceRes.cxx:166 AliPerformanceRes.cxx:167 AliPerformanceRes.cxx:168 AliPerformanceRes.cxx:169 AliPerformanceRes.cxx:170 AliPerformanceRes.cxx:171 AliPerformanceRes.cxx:172 AliPerformanceRes.cxx:173 AliPerformanceRes.cxx:174 AliPerformanceRes.cxx:175 AliPerformanceRes.cxx:176 AliPerformanceRes.cxx:177 AliPerformanceRes.cxx:178 AliPerformanceRes.cxx:179 AliPerformanceRes.cxx:180 AliPerformanceRes.cxx:181 AliPerformanceRes.cxx:182 AliPerformanceRes.cxx:183 AliPerformanceRes.cxx:184 AliPerformanceRes.cxx:185 AliPerformanceRes.cxx:186 AliPerformanceRes.cxx:187 AliPerformanceRes.cxx:188 AliPerformanceRes.cxx:189 AliPerformanceRes.cxx:190 AliPerformanceRes.cxx:191 AliPerformanceRes.cxx:192 AliPerformanceRes.cxx:193 AliPerformanceRes.cxx:194 AliPerformanceRes.cxx:195 AliPerformanceRes.cxx:196 AliPerformanceRes.cxx:197 AliPerformanceRes.cxx:198 AliPerformanceRes.cxx:199 AliPerformanceRes.cxx:200 AliPerformanceRes.cxx:201 AliPerformanceRes.cxx:202 AliPerformanceRes.cxx:203 AliPerformanceRes.cxx:204 AliPerformanceRes.cxx:205 AliPerformanceRes.cxx:206 AliPerformanceRes.cxx:207 AliPerformanceRes.cxx:208 AliPerformanceRes.cxx:209 AliPerformanceRes.cxx:210 AliPerformanceRes.cxx:211 AliPerformanceRes.cxx:212 AliPerformanceRes.cxx:213 AliPerformanceRes.cxx:214 AliPerformanceRes.cxx:215 AliPerformanceRes.cxx:216 AliPerformanceRes.cxx:217 AliPerformanceRes.cxx:218 AliPerformanceRes.cxx:219 AliPerformanceRes.cxx:220 AliPerformanceRes.cxx:221 AliPerformanceRes.cxx:222 AliPerformanceRes.cxx:223 AliPerformanceRes.cxx:224 AliPerformanceRes.cxx:225 AliPerformanceRes.cxx:226 AliPerformanceRes.cxx:227 AliPerformanceRes.cxx:228 AliPerformanceRes.cxx:229 AliPerformanceRes.cxx:230 AliPerformanceRes.cxx:231 AliPerformanceRes.cxx:232 AliPerformanceRes.cxx:233 AliPerformanceRes.cxx:234 AliPerformanceRes.cxx:235 AliPerformanceRes.cxx:236 AliPerformanceRes.cxx:237 AliPerformanceRes.cxx:238 AliPerformanceRes.cxx:239 AliPerformanceRes.cxx:240 AliPerformanceRes.cxx:241 AliPerformanceRes.cxx:242 AliPerformanceRes.cxx:243 AliPerformanceRes.cxx:244 AliPerformanceRes.cxx:245 AliPerformanceRes.cxx:246 AliPerformanceRes.cxx:247 AliPerformanceRes.cxx:248 AliPerformanceRes.cxx:249 AliPerformanceRes.cxx:250 AliPerformanceRes.cxx:251 AliPerformanceRes.cxx:252 AliPerformanceRes.cxx:253 AliPerformanceRes.cxx:254 AliPerformanceRes.cxx:255 AliPerformanceRes.cxx:256 AliPerformanceRes.cxx:257 AliPerformanceRes.cxx:258 AliPerformanceRes.cxx:259 AliPerformanceRes.cxx:260 AliPerformanceRes.cxx:261 AliPerformanceRes.cxx:262 AliPerformanceRes.cxx:263 AliPerformanceRes.cxx:264 AliPerformanceRes.cxx:265 AliPerformanceRes.cxx:266 AliPerformanceRes.cxx:267 AliPerformanceRes.cxx:268 AliPerformanceRes.cxx:269 AliPerformanceRes.cxx:270 AliPerformanceRes.cxx:271 AliPerformanceRes.cxx:272 AliPerformanceRes.cxx:273 AliPerformanceRes.cxx:274 AliPerformanceRes.cxx:275 AliPerformanceRes.cxx:276 AliPerformanceRes.cxx:277 AliPerformanceRes.cxx:278 AliPerformanceRes.cxx:279 AliPerformanceRes.cxx:280 AliPerformanceRes.cxx:281 AliPerformanceRes.cxx:282 AliPerformanceRes.cxx:283 AliPerformanceRes.cxx:284 AliPerformanceRes.cxx:285 AliPerformanceRes.cxx:286 AliPerformanceRes.cxx:287 AliPerformanceRes.cxx:288 AliPerformanceRes.cxx:289 AliPerformanceRes.cxx:290 AliPerformanceRes.cxx:291 AliPerformanceRes.cxx:292 AliPerformanceRes.cxx:293 AliPerformanceRes.cxx:294 AliPerformanceRes.cxx:295 AliPerformanceRes.cxx:296 AliPerformanceRes.cxx:297 AliPerformanceRes.cxx:298 AliPerformanceRes.cxx:299 AliPerformanceRes.cxx:300 AliPerformanceRes.cxx:301 AliPerformanceRes.cxx:302 AliPerformanceRes.cxx:303 AliPerformanceRes.cxx:304 AliPerformanceRes.cxx:305 AliPerformanceRes.cxx:306 AliPerformanceRes.cxx:307 AliPerformanceRes.cxx:308 AliPerformanceRes.cxx:309 AliPerformanceRes.cxx:310 AliPerformanceRes.cxx:311 AliPerformanceRes.cxx:312 AliPerformanceRes.cxx:313 AliPerformanceRes.cxx:314 AliPerformanceRes.cxx:315 AliPerformanceRes.cxx:316 AliPerformanceRes.cxx:317 AliPerformanceRes.cxx:318 AliPerformanceRes.cxx:319 AliPerformanceRes.cxx:320 AliPerformanceRes.cxx:321 AliPerformanceRes.cxx:322 AliPerformanceRes.cxx:323 AliPerformanceRes.cxx:324 AliPerformanceRes.cxx:325 AliPerformanceRes.cxx:326 AliPerformanceRes.cxx:327 AliPerformanceRes.cxx:328 AliPerformanceRes.cxx:329 AliPerformanceRes.cxx:330 AliPerformanceRes.cxx:331 AliPerformanceRes.cxx:332 AliPerformanceRes.cxx:333 AliPerformanceRes.cxx:334 AliPerformanceRes.cxx:335 AliPerformanceRes.cxx:336 AliPerformanceRes.cxx:337 AliPerformanceRes.cxx:338 AliPerformanceRes.cxx:339 AliPerformanceRes.cxx:340 AliPerformanceRes.cxx:341 AliPerformanceRes.cxx:342 AliPerformanceRes.cxx:343 AliPerformanceRes.cxx:344 AliPerformanceRes.cxx:345 AliPerformanceRes.cxx:346 AliPerformanceRes.cxx:347 AliPerformanceRes.cxx:348 AliPerformanceRes.cxx:349 AliPerformanceRes.cxx:350 AliPerformanceRes.cxx:351 AliPerformanceRes.cxx:352 AliPerformanceRes.cxx:353 AliPerformanceRes.cxx:354 AliPerformanceRes.cxx:355 AliPerformanceRes.cxx:356 AliPerformanceRes.cxx:357 AliPerformanceRes.cxx:358 AliPerformanceRes.cxx:359 AliPerformanceRes.cxx:360 AliPerformanceRes.cxx:361 AliPerformanceRes.cxx:362 AliPerformanceRes.cxx:363 AliPerformanceRes.cxx:364 AliPerformanceRes.cxx:365 AliPerformanceRes.cxx:366 AliPerformanceRes.cxx:367 AliPerformanceRes.cxx:368 AliPerformanceRes.cxx:369 AliPerformanceRes.cxx:370 AliPerformanceRes.cxx:371 AliPerformanceRes.cxx:372 AliPerformanceRes.cxx:373 AliPerformanceRes.cxx:374 AliPerformanceRes.cxx:375 AliPerformanceRes.cxx:376 AliPerformanceRes.cxx:377 AliPerformanceRes.cxx:378 AliPerformanceRes.cxx:379 AliPerformanceRes.cxx:380 AliPerformanceRes.cxx:381 AliPerformanceRes.cxx:382 AliPerformanceRes.cxx:383 AliPerformanceRes.cxx:384 AliPerformanceRes.cxx:385 AliPerformanceRes.cxx:386 AliPerformanceRes.cxx:387 AliPerformanceRes.cxx:388 AliPerformanceRes.cxx:389 AliPerformanceRes.cxx:390 AliPerformanceRes.cxx:391 AliPerformanceRes.cxx:392 AliPerformanceRes.cxx:393 AliPerformanceRes.cxx:394 AliPerformanceRes.cxx:395 AliPerformanceRes.cxx:396 AliPerformanceRes.cxx:397 AliPerformanceRes.cxx:398 AliPerformanceRes.cxx:399 AliPerformanceRes.cxx:400 AliPerformanceRes.cxx:401 AliPerformanceRes.cxx:402 AliPerformanceRes.cxx:403 AliPerformanceRes.cxx:404 AliPerformanceRes.cxx:405 AliPerformanceRes.cxx:406 AliPerformanceRes.cxx:407 AliPerformanceRes.cxx:408 AliPerformanceRes.cxx:409 AliPerformanceRes.cxx:410 AliPerformanceRes.cxx:411 AliPerformanceRes.cxx:412 AliPerformanceRes.cxx:413 AliPerformanceRes.cxx:414 AliPerformanceRes.cxx:415 AliPerformanceRes.cxx:416 AliPerformanceRes.cxx:417 AliPerformanceRes.cxx:418 AliPerformanceRes.cxx:419 AliPerformanceRes.cxx:420 AliPerformanceRes.cxx:421 AliPerformanceRes.cxx:422 AliPerformanceRes.cxx:423 AliPerformanceRes.cxx:424 AliPerformanceRes.cxx:425 AliPerformanceRes.cxx:426 AliPerformanceRes.cxx:427 AliPerformanceRes.cxx:428 AliPerformanceRes.cxx:429 AliPerformanceRes.cxx:430 AliPerformanceRes.cxx:431 AliPerformanceRes.cxx:432 AliPerformanceRes.cxx:433 AliPerformanceRes.cxx:434 AliPerformanceRes.cxx:435 AliPerformanceRes.cxx:436 AliPerformanceRes.cxx:437 AliPerformanceRes.cxx:438 AliPerformanceRes.cxx:439 AliPerformanceRes.cxx:440 AliPerformanceRes.cxx:441 AliPerformanceRes.cxx:442 AliPerformanceRes.cxx:443 AliPerformanceRes.cxx:444 AliPerformanceRes.cxx:445 AliPerformanceRes.cxx:446 AliPerformanceRes.cxx:447 AliPerformanceRes.cxx:448 AliPerformanceRes.cxx:449 AliPerformanceRes.cxx:450 AliPerformanceRes.cxx:451 AliPerformanceRes.cxx:452 AliPerformanceRes.cxx:453 AliPerformanceRes.cxx:454 AliPerformanceRes.cxx:455 AliPerformanceRes.cxx:456 AliPerformanceRes.cxx:457 AliPerformanceRes.cxx:458 AliPerformanceRes.cxx:459 AliPerformanceRes.cxx:460 AliPerformanceRes.cxx:461 AliPerformanceRes.cxx:462 AliPerformanceRes.cxx:463 AliPerformanceRes.cxx:464 AliPerformanceRes.cxx:465 AliPerformanceRes.cxx:466 AliPerformanceRes.cxx:467 AliPerformanceRes.cxx:468 AliPerformanceRes.cxx:469 AliPerformanceRes.cxx:470 AliPerformanceRes.cxx:471 AliPerformanceRes.cxx:472 AliPerformanceRes.cxx:473 AliPerformanceRes.cxx:474 AliPerformanceRes.cxx:475 AliPerformanceRes.cxx:476 AliPerformanceRes.cxx:477 AliPerformanceRes.cxx:478 AliPerformanceRes.cxx:479 AliPerformanceRes.cxx:480 AliPerformanceRes.cxx:481 AliPerformanceRes.cxx:482 AliPerformanceRes.cxx:483 AliPerformanceRes.cxx:484 AliPerformanceRes.cxx:485 AliPerformanceRes.cxx:486 AliPerformanceRes.cxx:487 AliPerformanceRes.cxx:488 AliPerformanceRes.cxx:489 AliPerformanceRes.cxx:490 AliPerformanceRes.cxx:491 AliPerformanceRes.cxx:492 AliPerformanceRes.cxx:493 AliPerformanceRes.cxx:494 AliPerformanceRes.cxx:495 AliPerformanceRes.cxx:496 AliPerformanceRes.cxx:497 AliPerformanceRes.cxx:498 AliPerformanceRes.cxx:499 AliPerformanceRes.cxx:500 AliPerformanceRes.cxx:501 AliPerformanceRes.cxx:502 AliPerformanceRes.cxx:503 AliPerformanceRes.cxx:504 AliPerformanceRes.cxx:505 AliPerformanceRes.cxx:506 AliPerformanceRes.cxx:507 AliPerformanceRes.cxx:508 AliPerformanceRes.cxx:509 AliPerformanceRes.cxx:510 AliPerformanceRes.cxx:511 AliPerformanceRes.cxx:512 AliPerformanceRes.cxx:513 AliPerformanceRes.cxx:514 AliPerformanceRes.cxx:515 AliPerformanceRes.cxx:516 AliPerformanceRes.cxx:517 AliPerformanceRes.cxx:518 AliPerformanceRes.cxx:519 AliPerformanceRes.cxx:520 AliPerformanceRes.cxx:521 AliPerformanceRes.cxx:522 AliPerformanceRes.cxx:523 AliPerformanceRes.cxx:524 AliPerformanceRes.cxx:525 AliPerformanceRes.cxx:526 AliPerformanceRes.cxx:527 AliPerformanceRes.cxx:528 AliPerformanceRes.cxx:529 AliPerformanceRes.cxx:530 AliPerformanceRes.cxx:531 AliPerformanceRes.cxx:532 AliPerformanceRes.cxx:533 AliPerformanceRes.cxx:534 AliPerformanceRes.cxx:535 AliPerformanceRes.cxx:536 AliPerformanceRes.cxx:537 AliPerformanceRes.cxx:538 AliPerformanceRes.cxx:539 AliPerformanceRes.cxx:540 AliPerformanceRes.cxx:541 AliPerformanceRes.cxx:542 AliPerformanceRes.cxx:543 AliPerformanceRes.cxx:544 AliPerformanceRes.cxx:545 AliPerformanceRes.cxx:546 AliPerformanceRes.cxx:547 AliPerformanceRes.cxx:548 AliPerformanceRes.cxx:549 AliPerformanceRes.cxx:550 AliPerformanceRes.cxx:551 AliPerformanceRes.cxx:552 AliPerformanceRes.cxx:553 AliPerformanceRes.cxx:554 AliPerformanceRes.cxx:555 AliPerformanceRes.cxx:556 AliPerformanceRes.cxx:557 AliPerformanceRes.cxx:558 AliPerformanceRes.cxx:559 AliPerformanceRes.cxx:560 AliPerformanceRes.cxx:561 AliPerformanceRes.cxx:562 AliPerformanceRes.cxx:563 AliPerformanceRes.cxx:564 AliPerformanceRes.cxx:565 AliPerformanceRes.cxx:566 AliPerformanceRes.cxx:567 AliPerformanceRes.cxx:568 AliPerformanceRes.cxx:569 AliPerformanceRes.cxx:570 AliPerformanceRes.cxx:571 AliPerformanceRes.cxx:572 AliPerformanceRes.cxx:573 AliPerformanceRes.cxx:574 AliPerformanceRes.cxx:575 AliPerformanceRes.cxx:576 AliPerformanceRes.cxx:577 AliPerformanceRes.cxx:578 AliPerformanceRes.cxx:579 AliPerformanceRes.cxx:580 AliPerformanceRes.cxx:581 AliPerformanceRes.cxx:582 AliPerformanceRes.cxx:583 AliPerformanceRes.cxx:584 AliPerformanceRes.cxx:585 AliPerformanceRes.cxx:586 AliPerformanceRes.cxx:587 AliPerformanceRes.cxx:588 AliPerformanceRes.cxx:589 AliPerformanceRes.cxx:590 AliPerformanceRes.cxx:591 AliPerformanceRes.cxx:592 AliPerformanceRes.cxx:593 AliPerformanceRes.cxx:594 AliPerformanceRes.cxx:595 AliPerformanceRes.cxx:596 AliPerformanceRes.cxx:597 AliPerformanceRes.cxx:598 AliPerformanceRes.cxx:599 AliPerformanceRes.cxx:600 AliPerformanceRes.cxx:601 AliPerformanceRes.cxx:602 AliPerformanceRes.cxx:603 AliPerformanceRes.cxx:604 AliPerformanceRes.cxx:605 AliPerformanceRes.cxx:606 AliPerformanceRes.cxx:607 AliPerformanceRes.cxx:608 AliPerformanceRes.cxx:609 AliPerformanceRes.cxx:610 AliPerformanceRes.cxx:611 AliPerformanceRes.cxx:612 AliPerformanceRes.cxx:613 AliPerformanceRes.cxx:614 AliPerformanceRes.cxx:615 AliPerformanceRes.cxx:616 AliPerformanceRes.cxx:617 AliPerformanceRes.cxx:618 AliPerformanceRes.cxx:619 AliPerformanceRes.cxx:620 AliPerformanceRes.cxx:621 AliPerformanceRes.cxx:622 AliPerformanceRes.cxx:623 AliPerformanceRes.cxx:624 AliPerformanceRes.cxx:625 AliPerformanceRes.cxx:626 AliPerformanceRes.cxx:627 AliPerformanceRes.cxx:628 AliPerformanceRes.cxx:629 AliPerformanceRes.cxx:630 AliPerformanceRes.cxx:631 AliPerformanceRes.cxx:632 AliPerformanceRes.cxx:633 AliPerformanceRes.cxx:634 AliPerformanceRes.cxx:635 AliPerformanceRes.cxx:636 AliPerformanceRes.cxx:637 AliPerformanceRes.cxx:638 AliPerformanceRes.cxx:639 AliPerformanceRes.cxx:640 AliPerformanceRes.cxx:641 AliPerformanceRes.cxx:642 AliPerformanceRes.cxx:643 AliPerformanceRes.cxx:644 AliPerformanceRes.cxx:645 AliPerformanceRes.cxx:646 AliPerformanceRes.cxx:647 AliPerformanceRes.cxx:648 AliPerformanceRes.cxx:649 AliPerformanceRes.cxx:650 AliPerformanceRes.cxx:651 AliPerformanceRes.cxx:652 AliPerformanceRes.cxx:653 AliPerformanceRes.cxx:654 AliPerformanceRes.cxx:655 AliPerformanceRes.cxx:656 AliPerformanceRes.cxx:657 AliPerformanceRes.cxx:658 AliPerformanceRes.cxx:659 AliPerformanceRes.cxx:660 AliPerformanceRes.cxx:661 AliPerformanceRes.cxx:662 AliPerformanceRes.cxx:663 AliPerformanceRes.cxx:664 AliPerformanceRes.cxx:665 AliPerformanceRes.cxx:666 AliPerformanceRes.cxx:667 AliPerformanceRes.cxx:668 AliPerformanceRes.cxx:669 AliPerformanceRes.cxx:670 AliPerformanceRes.cxx:671 AliPerformanceRes.cxx:672 AliPerformanceRes.cxx:673 AliPerformanceRes.cxx:674 AliPerformanceRes.cxx:675 AliPerformanceRes.cxx:676 AliPerformanceRes.cxx:677 AliPerformanceRes.cxx:678 AliPerformanceRes.cxx:679 AliPerformanceRes.cxx:680 AliPerformanceRes.cxx:681 AliPerformanceRes.cxx:682 AliPerformanceRes.cxx:683 AliPerformanceRes.cxx:684 AliPerformanceRes.cxx:685 AliPerformanceRes.cxx:686 AliPerformanceRes.cxx:687 AliPerformanceRes.cxx:688 AliPerformanceRes.cxx:689 AliPerformanceRes.cxx:690 AliPerformanceRes.cxx:691 AliPerformanceRes.cxx:692 AliPerformanceRes.cxx:693 AliPerformanceRes.cxx:694 AliPerformanceRes.cxx:695 AliPerformanceRes.cxx:696 AliPerformanceRes.cxx:697 AliPerformanceRes.cxx:698 AliPerformanceRes.cxx:699 AliPerformanceRes.cxx:700 AliPerformanceRes.cxx:701 AliPerformanceRes.cxx:702 AliPerformanceRes.cxx:703 AliPerformanceRes.cxx:704 AliPerformanceRes.cxx:705 AliPerformanceRes.cxx:706 AliPerformanceRes.cxx:707 AliPerformanceRes.cxx:708 AliPerformanceRes.cxx:709 AliPerformanceRes.cxx:710 AliPerformanceRes.cxx:711 AliPerformanceRes.cxx:712 AliPerformanceRes.cxx:713 AliPerformanceRes.cxx:714 AliPerformanceRes.cxx:715 AliPerformanceRes.cxx:716 AliPerformanceRes.cxx:717 AliPerformanceRes.cxx:718 AliPerformanceRes.cxx:719 AliPerformanceRes.cxx:720 AliPerformanceRes.cxx:721 AliPerformanceRes.cxx:722 AliPerformanceRes.cxx:723 AliPerformanceRes.cxx:724 AliPerformanceRes.cxx:725 AliPerformanceRes.cxx:726 AliPerformanceRes.cxx:727 AliPerformanceRes.cxx:728 AliPerformanceRes.cxx:729 AliPerformanceRes.cxx:730 AliPerformanceRes.cxx:731 AliPerformanceRes.cxx:732 AliPerformanceRes.cxx:733 AliPerformanceRes.cxx:734 AliPerformanceRes.cxx:735 AliPerformanceRes.cxx:736 AliPerformanceRes.cxx:737 AliPerformanceRes.cxx:738 AliPerformanceRes.cxx:739 AliPerformanceRes.cxx:740 AliPerformanceRes.cxx:741 AliPerformanceRes.cxx:742 AliPerformanceRes.cxx:743 AliPerformanceRes.cxx:744 AliPerformanceRes.cxx:745 AliPerformanceRes.cxx:746 AliPerformanceRes.cxx:747 AliPerformanceRes.cxx:748 AliPerformanceRes.cxx:749 AliPerformanceRes.cxx:750 AliPerformanceRes.cxx:751 AliPerformanceRes.cxx:752 AliPerformanceRes.cxx:753 AliPerformanceRes.cxx:754 AliPerformanceRes.cxx:755 AliPerformanceRes.cxx:756 AliPerformanceRes.cxx:757 AliPerformanceRes.cxx:758 AliPerformanceRes.cxx:759 AliPerformanceRes.cxx:760 AliPerformanceRes.cxx:761 AliPerformanceRes.cxx:762 AliPerformanceRes.cxx:763 AliPerformanceRes.cxx:764 AliPerformanceRes.cxx:765 AliPerformanceRes.cxx:766 AliPerformanceRes.cxx:767 AliPerformanceRes.cxx:768 AliPerformanceRes.cxx:769 AliPerformanceRes.cxx:770 AliPerformanceRes.cxx:771 AliPerformanceRes.cxx:772 AliPerformanceRes.cxx:773 AliPerformanceRes.cxx:774 AliPerformanceRes.cxx:775 AliPerformanceRes.cxx:776 AliPerformanceRes.cxx:777 AliPerformanceRes.cxx:778 AliPerformanceRes.cxx:779 AliPerformanceRes.cxx:780 AliPerformanceRes.cxx:781 AliPerformanceRes.cxx:782 AliPerformanceRes.cxx:783 AliPerformanceRes.cxx:784 AliPerformanceRes.cxx:785 AliPerformanceRes.cxx:786 AliPerformanceRes.cxx:787 AliPerformanceRes.cxx:788 AliPerformanceRes.cxx:789 AliPerformanceRes.cxx:790 AliPerformanceRes.cxx:791 AliPerformanceRes.cxx:792 AliPerformanceRes.cxx:793 AliPerformanceRes.cxx:794 AliPerformanceRes.cxx:795 AliPerformanceRes.cxx:796 AliPerformanceRes.cxx:797 AliPerformanceRes.cxx:798 AliPerformanceRes.cxx:799 AliPerformanceRes.cxx:800 AliPerformanceRes.cxx:801 AliPerformanceRes.cxx:802 AliPerformanceRes.cxx:803 AliPerformanceRes.cxx:804 AliPerformanceRes.cxx:805 AliPerformanceRes.cxx:806 AliPerformanceRes.cxx:807 AliPerformanceRes.cxx:808 AliPerformanceRes.cxx:809 AliPerformanceRes.cxx:810 AliPerformanceRes.cxx:811 AliPerformanceRes.cxx:812 AliPerformanceRes.cxx:813 AliPerformanceRes.cxx:814 AliPerformanceRes.cxx:815 AliPerformanceRes.cxx:816 AliPerformanceRes.cxx:817 AliPerformanceRes.cxx:818 AliPerformanceRes.cxx:819 AliPerformanceRes.cxx:820 AliPerformanceRes.cxx:821 AliPerformanceRes.cxx:822 AliPerformanceRes.cxx:823 AliPerformanceRes.cxx:824 AliPerformanceRes.cxx:825 AliPerformanceRes.cxx:826 AliPerformanceRes.cxx:827 AliPerformanceRes.cxx:828 AliPerformanceRes.cxx:829 AliPerformanceRes.cxx:830 AliPerformanceRes.cxx:831 AliPerformanceRes.cxx:832 AliPerformanceRes.cxx:833 AliPerformanceRes.cxx:834 AliPerformanceRes.cxx:835 AliPerformanceRes.cxx:836 AliPerformanceRes.cxx:837 AliPerformanceRes.cxx:838 AliPerformanceRes.cxx:839 AliPerformanceRes.cxx:840 AliPerformanceRes.cxx:841 AliPerformanceRes.cxx:842 AliPerformanceRes.cxx:843 AliPerformanceRes.cxx:844 AliPerformanceRes.cxx:845 AliPerformanceRes.cxx:846 AliPerformanceRes.cxx:847 AliPerformanceRes.cxx:848 AliPerformanceRes.cxx:849 AliPerformanceRes.cxx:850 AliPerformanceRes.cxx:851 AliPerformanceRes.cxx:852 AliPerformanceRes.cxx:853 AliPerformanceRes.cxx:854 AliPerformanceRes.cxx:855 AliPerformanceRes.cxx:856 AliPerformanceRes.cxx:857 AliPerformanceRes.cxx:858 AliPerformanceRes.cxx:859 AliPerformanceRes.cxx:860 AliPerformanceRes.cxx:861 AliPerformanceRes.cxx:862 AliPerformanceRes.cxx:863 AliPerformanceRes.cxx:864 AliPerformanceRes.cxx:865 AliPerformanceRes.cxx:866 AliPerformanceRes.cxx:867 AliPerformanceRes.cxx:868 AliPerformanceRes.cxx:869 AliPerformanceRes.cxx:870 AliPerformanceRes.cxx:871 AliPerformanceRes.cxx:872 AliPerformanceRes.cxx:873 AliPerformanceRes.cxx:874 AliPerformanceRes.cxx:875 AliPerformanceRes.cxx:876 AliPerformanceRes.cxx:877 AliPerformanceRes.cxx:878 AliPerformanceRes.cxx:879 AliPerformanceRes.cxx:880 AliPerformanceRes.cxx:881 AliPerformanceRes.cxx:882 AliPerformanceRes.cxx:883 AliPerformanceRes.cxx:884 AliPerformanceRes.cxx:885 AliPerformanceRes.cxx:886 AliPerformanceRes.cxx:887 AliPerformanceRes.cxx:888 AliPerformanceRes.cxx:889 AliPerformanceRes.cxx:890 AliPerformanceRes.cxx:891 AliPerformanceRes.cxx:892 AliPerformanceRes.cxx:893 AliPerformanceRes.cxx:894 AliPerformanceRes.cxx:895 AliPerformanceRes.cxx:896 AliPerformanceRes.cxx:897 AliPerformanceRes.cxx:898 AliPerformanceRes.cxx:899 AliPerformanceRes.cxx:900 AliPerformanceRes.cxx:901 AliPerformanceRes.cxx:902 AliPerformanceRes.cxx:903 AliPerformanceRes.cxx:904 AliPerformanceRes.cxx:905 AliPerformanceRes.cxx:906 AliPerformanceRes.cxx:907 AliPerformanceRes.cxx:908 AliPerformanceRes.cxx:909 AliPerformanceRes.cxx:910 AliPerformanceRes.cxx:911 AliPerformanceRes.cxx:912 AliPerformanceRes.cxx:913 AliPerformanceRes.cxx:914 AliPerformanceRes.cxx:915 AliPerformanceRes.cxx:916 AliPerformanceRes.cxx:917 AliPerformanceRes.cxx:918 AliPerformanceRes.cxx:919 AliPerformanceRes.cxx:920 AliPerformanceRes.cxx:921 AliPerformanceRes.cxx:922 AliPerformanceRes.cxx:923 AliPerformanceRes.cxx:924 AliPerformanceRes.cxx:925 AliPerformanceRes.cxx:926 AliPerformanceRes.cxx:927 AliPerformanceRes.cxx:928 AliPerformanceRes.cxx:929 AliPerformanceRes.cxx:930 AliPerformanceRes.cxx:931 AliPerformanceRes.cxx:932 AliPerformanceRes.cxx:933 AliPerformanceRes.cxx:934 AliPerformanceRes.cxx:935 AliPerformanceRes.cxx:936 AliPerformanceRes.cxx:937 AliPerformanceRes.cxx:938 AliPerformanceRes.cxx:939 AliPerformanceRes.cxx:940 AliPerformanceRes.cxx:941 AliPerformanceRes.cxx:942 AliPerformanceRes.cxx:943 AliPerformanceRes.cxx:944 AliPerformanceRes.cxx:945 AliPerformanceRes.cxx:946 AliPerformanceRes.cxx:947 AliPerformanceRes.cxx:948 AliPerformanceRes.cxx:949 AliPerformanceRes.cxx:950 AliPerformanceRes.cxx:951 AliPerformanceRes.cxx:952 AliPerformanceRes.cxx:953 AliPerformanceRes.cxx:954 AliPerformanceRes.cxx:955 AliPerformanceRes.cxx:956 AliPerformanceRes.cxx:957 AliPerformanceRes.cxx:958 AliPerformanceRes.cxx:959 AliPerformanceRes.cxx:960 AliPerformanceRes.cxx:961 AliPerformanceRes.cxx:962 AliPerformanceRes.cxx:963 AliPerformanceRes.cxx:964 AliPerformanceRes.cxx:965 AliPerformanceRes.cxx:966 AliPerformanceRes.cxx:967 AliPerformanceRes.cxx:968 AliPerformanceRes.cxx:969 AliPerformanceRes.cxx:970 AliPerformanceRes.cxx:971 AliPerformanceRes.cxx:972 AliPerformanceRes.cxx:973 AliPerformanceRes.cxx:974 AliPerformanceRes.cxx:975 AliPerformanceRes.cxx:976 AliPerformanceRes.cxx:977 AliPerformanceRes.cxx:978 AliPerformanceRes.cxx:979 AliPerformanceRes.cxx:980 AliPerformanceRes.cxx:981 AliPerformanceRes.cxx:982 AliPerformanceRes.cxx:983 AliPerformanceRes.cxx:984 AliPerformanceRes.cxx:985 AliPerformanceRes.cxx:986 AliPerformanceRes.cxx:987 AliPerformanceRes.cxx:988 AliPerformanceRes.cxx:989 AliPerformanceRes.cxx:990 AliPerformanceRes.cxx:991 AliPerformanceRes.cxx:992 AliPerformanceRes.cxx:993 AliPerformanceRes.cxx:994 AliPerformanceRes.cxx:995 AliPerformanceRes.cxx:996 AliPerformanceRes.cxx:997 AliPerformanceRes.cxx:998 AliPerformanceRes.cxx:999 AliPerformanceRes.cxx:1000 AliPerformanceRes.cxx:1001 AliPerformanceRes.cxx:1002 AliPerformanceRes.cxx:1003 AliPerformanceRes.cxx:1004 AliPerformanceRes.cxx:1005 AliPerformanceRes.cxx:1006 AliPerformanceRes.cxx:1007 AliPerformanceRes.cxx:1008 AliPerformanceRes.cxx:1009 AliPerformanceRes.cxx:1010 AliPerformanceRes.cxx:1011 AliPerformanceRes.cxx:1012 AliPerformanceRes.cxx:1013 AliPerformanceRes.cxx:1014 AliPerformanceRes.cxx:1015 AliPerformanceRes.cxx:1016 AliPerformanceRes.cxx:1017 AliPerformanceRes.cxx:1018 AliPerformanceRes.cxx:1019 AliPerformanceRes.cxx:1020 AliPerformanceRes.cxx:1021 AliPerformanceRes.cxx:1022 AliPerformanceRes.cxx:1023 AliPerformanceRes.cxx:1024 AliPerformanceRes.cxx:1025 AliPerformanceRes.cxx:1026 AliPerformanceRes.cxx:1027 AliPerformanceRes.cxx:1028 AliPerformanceRes.cxx:1029 AliPerformanceRes.cxx:1030 AliPerformanceRes.cxx:1031 AliPerformanceRes.cxx:1032 AliPerformanceRes.cxx:1033 AliPerformanceRes.cxx:1034 AliPerformanceRes.cxx:1035 AliPerformanceRes.cxx:1036 AliPerformanceRes.cxx:1037 AliPerformanceRes.cxx:1038 AliPerformanceRes.cxx:1039 AliPerformanceRes.cxx:1040 AliPerformanceRes.cxx:1041 AliPerformanceRes.cxx:1042 AliPerformanceRes.cxx:1043 AliPerformanceRes.cxx:1044 AliPerformanceRes.cxx:1045 AliPerformanceRes.cxx:1046 AliPerformanceRes.cxx:1047 AliPerformanceRes.cxx:1048 AliPerformanceRes.cxx:1049 AliPerformanceRes.cxx:1050 AliPerformanceRes.cxx:1051 AliPerformanceRes.cxx:1052 AliPerformanceRes.cxx:1053 AliPerformanceRes.cxx:1054 AliPerformanceRes.cxx:1055 AliPerformanceRes.cxx:1056 AliPerformanceRes.cxx:1057 AliPerformanceRes.cxx:1058 AliPerformanceRes.cxx:1059 AliPerformanceRes.cxx:1060 AliPerformanceRes.cxx:1061 AliPerformanceRes.cxx:1062 AliPerformanceRes.cxx:1063 AliPerformanceRes.cxx:1064 AliPerformanceRes.cxx:1065 AliPerformanceRes.cxx:1066 AliPerformanceRes.cxx:1067 AliPerformanceRes.cxx:1068 AliPerformanceRes.cxx:1069 AliPerformanceRes.cxx:1070 AliPerformanceRes.cxx:1071 AliPerformanceRes.cxx:1072 AliPerformanceRes.cxx:1073 AliPerformanceRes.cxx:1074 AliPerformanceRes.cxx:1075 AliPerformanceRes.cxx:1076 AliPerformanceRes.cxx:1077 AliPerformanceRes.cxx:1078 AliPerformanceRes.cxx:1079 AliPerformanceRes.cxx:1080 AliPerformanceRes.cxx:1081 AliPerformanceRes.cxx:1082 AliPerformanceRes.cxx:1083 AliPerformanceRes.cxx:1084 AliPerformanceRes.cxx:1085 AliPerformanceRes.cxx:1086 AliPerformanceRes.cxx:1087 AliPerformanceRes.cxx:1088 AliPerformanceRes.cxx:1089 AliPerformanceRes.cxx:1090 AliPerformanceRes.cxx:1091 AliPerformanceRes.cxx:1092 AliPerformanceRes.cxx:1093 AliPerformanceRes.cxx:1094 AliPerformanceRes.cxx:1095 AliPerformanceRes.cxx:1096 AliPerformanceRes.cxx:1097 AliPerformanceRes.cxx:1098 AliPerformanceRes.cxx:1099 AliPerformanceRes.cxx:1100 AliPerformanceRes.cxx:1101 AliPerformanceRes.cxx:1102 AliPerformanceRes.cxx:1103 AliPerformanceRes.cxx:1104 AliPerformanceRes.cxx:1105 AliPerformanceRes.cxx:1106 AliPerformanceRes.cxx:1107 AliPerformanceRes.cxx:1108 AliPerformanceRes.cxx:1109 AliPerformanceRes.cxx:1110 AliPerformanceRes.cxx:1111 AliPerformanceRes.cxx:1112 AliPerformanceRes.cxx:1113 AliPerformanceRes.cxx:1114 AliPerformanceRes.cxx:1115 AliPerformanceRes.cxx:1116 AliPerformanceRes.cxx:1117 AliPerformanceRes.cxx:1118 AliPerformanceRes.cxx:1119 AliPerformanceRes.cxx:1120 AliPerformanceRes.cxx:1121 AliPerformanceRes.cxx:1122 AliPerformanceRes.cxx:1123 AliPerformanceRes.cxx:1124 AliPerformanceRes.cxx:1125 AliPerformanceRes.cxx:1126 AliPerformanceRes.cxx:1127 AliPerformanceRes.cxx:1128 AliPerformanceRes.cxx:1129 AliPerformanceRes.cxx:1130 AliPerformanceRes.cxx:1131 AliPerformanceRes.cxx:1132 AliPerformanceRes.cxx:1133 AliPerformanceRes.cxx:1134 AliPerformanceRes.cxx:1135 AliPerformanceRes.cxx:1136 AliPerformanceRes.cxx:1137 AliPerformanceRes.cxx:1138 AliPerformanceRes.cxx:1139 AliPerformanceRes.cxx:1140 AliPerformanceRes.cxx:1141 AliPerformanceRes.cxx:1142 AliPerformanceRes.cxx:1143 AliPerformanceRes.cxx:1144 AliPerformanceRes.cxx:1145 AliPerformanceRes.cxx:1146 AliPerformanceRes.cxx:1147 AliPerformanceRes.cxx:1148 AliPerformanceRes.cxx:1149 AliPerformanceRes.cxx:1150 AliPerformanceRes.cxx:1151 AliPerformanceRes.cxx:1152 AliPerformanceRes.cxx:1153 AliPerformanceRes.cxx:1154 AliPerformanceRes.cxx:1155 AliPerformanceRes.cxx:1156 AliPerformanceRes.cxx:1157 AliPerformanceRes.cxx:1158 AliPerformanceRes.cxx:1159 AliPerformanceRes.cxx:1160 AliPerformanceRes.cxx:1161 AliPerformanceRes.cxx:1162 AliPerformanceRes.cxx:1163 AliPerformanceRes.cxx:1164 AliPerformanceRes.cxx:1165 AliPerformanceRes.cxx:1166 AliPerformanceRes.cxx:1167 AliPerformanceRes.cxx:1168 AliPerformanceRes.cxx:1169 AliPerformanceRes.cxx:1170 AliPerformanceRes.cxx:1171 AliPerformanceRes.cxx:1172 AliPerformanceRes.cxx:1173 AliPerformanceRes.cxx:1174 AliPerformanceRes.cxx:1175 AliPerformanceRes.cxx:1176 AliPerformanceRes.cxx:1177 AliPerformanceRes.cxx:1178 AliPerformanceRes.cxx:1179 AliPerformanceRes.cxx:1180 AliPerformanceRes.cxx:1181 AliPerformanceRes.cxx:1182 AliPerformanceRes.cxx:1183 AliPerformanceRes.cxx:1184 AliPerformanceRes.cxx:1185 AliPerformanceRes.cxx:1186 AliPerformanceRes.cxx:1187 AliPerformanceRes.cxx:1188 AliPerformanceRes.cxx:1189 AliPerformanceRes.cxx:1190 AliPerformanceRes.cxx:1191 AliPerformanceRes.cxx:1192 AliPerformanceRes.cxx:1193 AliPerformanceRes.cxx:1194 AliPerformanceRes.cxx:1195