#include "TDirectory.h"
#include "TAxis.h"
#include "TCanvas.h"
#include "TH1.h"
#include "TH2.h"
#include "TF1.h"
#include "TSystem.h"
#include "TChain.h"
#include "AliPerformanceDEdx.h"
#include "AliPerformanceTPC.h"
#include "AliTPCPerformanceSummary.h"
#include "AliESDEvent.h"
#include "AliTracker.h"
#include "AliMCEvent.h"
#include "AliESDtrack.h"
#include "AliStack.h"
#include "AliLog.h"
#include "AliMCInfoCuts.h"
#include "AliMathBase.h"
#include "AliRecInfoCuts.h"
#include "AliTreeDraw.h"
#include "AliHeader.h"
#include "AliGenEventHeader.h"
using namespace std;
ClassImp(AliPerformanceDEdx)
Bool_t AliPerformanceDEdx::fgMergeTHnSparse = kFALSE;
Bool_t AliPerformanceDEdx::fgUseMergeTHnSparse = kFALSE;
AliPerformanceDEdx::AliPerformanceDEdx(const Char_t* name, const Char_t* title, Int_t analysisMode, Bool_t hptGenerator):
AliPerformanceObject(name,title),
fDeDxHisto(0),
fFolderObj(0),
fCutsRC(0),
fCutsMC(0),
fAnalysisFolder(0)
{
SetAnalysisMode(analysisMode);
SetHptGenerator(hptGenerator);
Init();
}
AliPerformanceDEdx::~AliPerformanceDEdx()
{
if(fDeDxHisto) delete fDeDxHisto; fDeDxHisto=0;
if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;
}
void AliPerformanceDEdx::Init()
{
Int_t nPBins = 50;
Double_t pMin = 1.e-2, pMax = 20.;
Double_t *binsP = 0;
if (IsHptGenerator()) {
pMax = 100.;
}
binsP = CreateLogAxis(nPBins,pMin,pMax);
Int_t binsQA[10] = {300, 144, 50, 50, 50, 50, 80, nPBins, 160, 80};
Double_t xminQA[10] = {0, -TMath::Pi(),-20,-250, -1, -2, 0, pMin, 0., 0.};
Double_t xmaxQA[10] = {300, TMath::Pi(), 20, 250, 1, 2, 160, pMax ,160., 1.};
fDeDxHisto = new THnSparseF("fDeDxHisto","dedx:phi:y:z:snp:tgl:ncls:momentum:TPCSignalN:clsF",10,binsQA,xminQA,xmaxQA);
fDeDxHisto->SetBinEdges(7,binsP);
fDeDxHisto->GetAxis(0)->SetTitle("dedx (a.u.)");
fDeDxHisto->GetAxis(1)->SetTitle("#phi (rad)");
fDeDxHisto->GetAxis(2)->SetTitle("y (cm)");
fDeDxHisto->GetAxis(3)->SetTitle("z (cm)");
fDeDxHisto->GetAxis(4)->SetTitle("sin#phi");
fDeDxHisto->GetAxis(5)->SetTitle("tan#lambda");
fDeDxHisto->GetAxis(6)->SetTitle("ncls");
fDeDxHisto->GetAxis(7)->SetTitle("p (GeV/c)");
fDeDxHisto->GetAxis(8)->SetTitle("number of cls used for dEdx");
fDeDxHisto->GetAxis(9)->SetTitle("number of cls found over findable");
if(!fCutsMC) {
AliDebug(AliLog::kError, "ERROR: Cannot find AliMCInfoCuts object");
}
if(!fCutsRC) {
AliDebug(AliLog::kError, "ERROR: Cannot find AliRecInfoCuts object");
}
fAnalysisFolder = CreateFolder("folderDEdx","Analysis de/dx Folder");
fMergeTHnSparseObj = fgMergeTHnSparse;
}
void AliPerformanceDEdx::ProcessTPC(AliStack* const , AliESDtrack *const )
{
AliDebug(AliLog::kWarning, "Warning: Not implemented");
}
void AliPerformanceDEdx::ProcessInnerTPC(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 = kFALSE;
if(fabs(b[2])>0.000001)
isOK = esdTrack->RelateToVertexTPCBxByBz(vtxESD, b, kVeryBig);
if(!isOK) return;
}
const AliExternalTrackParam *innerParam = esdTrack->GetInnerParam();
if(!innerParam) return;
Float_t dca[2], cov[3];
esdTrack->GetImpactParametersTPC(dca,cov);
if((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return;
Double_t dcaToVertex = -1;
if( fCutsRC->GetDCAToVertex2D() )
{
dcaToVertex = TMath::Sqrt(dca[0]*dca[0]/fCutsRC->GetMaxDCAToVertexXY()/fCutsRC->GetMaxDCAToVertexXY() + dca[1]*dca[1]/fCutsRC->GetMaxDCAToVertexZ()/fCutsRC->GetMaxDCAToVertexZ());
}
if(fCutsRC->GetDCAToVertex2D() && dcaToVertex > 1) return;
if(!fCutsRC->GetDCAToVertex2D() && TMath::Abs(dca[0]) > fCutsRC->GetMaxDCAToVertexXY()) return;
if(!fCutsRC->GetDCAToVertex2D() && TMath::Abs(dca[1]) > fCutsRC->GetMaxDCAToVertexZ()) return;
Float_t dedx = esdTrack->GetTPCsignal();
Int_t ncls = esdTrack->GetTPCNcls();
Int_t TPCSignalN = esdTrack->GetTPCsignalN();
Float_t nClsF = esdTrack->GetTPCClusterInfo(2,0);
Double_t pt = innerParam->Pt();
Double_t lam = TMath::ATan2(innerParam->Pz(),innerParam->Pt());
Double_t p = pt/TMath::Cos(lam);
Double_t phi = TMath::ATan2(innerParam->Py(),innerParam->Px());
Double_t y = innerParam->GetY();
Double_t z = innerParam->GetZ();
Double_t snp = innerParam->GetSnp();
Double_t tgl = innerParam->GetTgl();
Double_t vDeDxHisto[10] = {dedx,phi,y,z,snp,tgl,Double_t(ncls),p,Double_t(TPCSignalN),nClsF};
fDeDxHisto->Fill(vDeDxHisto);
if(!stack) return;
}
void AliPerformanceDEdx::ProcessTPCITS(AliStack* const , AliESDtrack *const )
{
AliDebug(AliLog::kWarning, "Warning: Not implemented");
}
void AliPerformanceDEdx::ProcessConstrained(AliStack* const , AliESDtrack *const )
{
AliDebug(AliLog::kWarning, "Warning: Not implemented");
}
Long64_t AliPerformanceDEdx::Merge(TCollection* const list)
{
if (!list)
return 0;
if (list->IsEmpty())
return 1;
Bool_t merge = ((fgUseMergeTHnSparse && fgMergeTHnSparse) || (!fgUseMergeTHnSparse && fMergeTHnSparseObj));
TIterator* iter = list->MakeIterator();
TObject* obj = 0;
TObjArray* objArrayList = 0;
objArrayList = new TObjArray();
Int_t count=0;
while((obj = iter->Next()) != 0)
{
AliPerformanceDEdx* entry = dynamic_cast<AliPerformanceDEdx*>(obj);
if (entry == 0) continue;
if (merge) {
if ((fDeDxHisto) && (entry->fDeDxHisto)) { fDeDxHisto->Add(entry->fDeDxHisto); }
}
if (entry->fFolderObj) { objArrayList->Add(entry->fFolderObj); }
count++;
}
if (fFolderObj) { fFolderObj->Merge(objArrayList); }
if (!merge) { fDeDxHisto->Reset(); }
if (objArrayList) delete objArrayList; objArrayList=0;
return count;
}
void AliPerformanceDEdx::Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend)
{
if(!esdEvent)
{
AliDebug(AliLog::kError, "esdEvent not available");
return;
}
AliHeader* header = 0;
AliGenEventHeader* genHeader = 0;
AliStack* stack = 0;
TArrayF vtxMC(3);
if(bUseMC)
{
if(!mcEvent) {
AliDebug(AliLog::kError, "mcEvent not available");
return;
}
header = mcEvent->Header();
if (!header) {
AliDebug(AliLog::kError, "Header not available");
return;
}
stack = mcEvent->Stack();
if (!stack) {
AliDebug(AliLog::kError, "Stack not available");
return;
}
genHeader = header->GenEventHeader();
if (!genHeader) {
AliDebug(AliLog::kError, "Could not retrieve genHeader from Header");
return;
}
genHeader->PrimaryVertex(vtxMC);
}
if(bUseESDfriend) {
if(!esdFriend) {
AliDebug(AliLog::kError, "esdFriend not available");
return;
}
}
if(!bUseMC && GetTriggerClass()) {
Bool_t isEventTriggered = esdEvent->IsTriggerClassFired(GetTriggerClass());
if(!isEventTriggered) return;
}
const AliESDVertex *vtxESD = NULL;
if( IsUseTrackVertex() )
{
vtxESD = esdEvent->GetPrimaryVertexTracks();
}
else {
vtxESD = esdEvent->GetPrimaryVertexTPC();
}
if(vtxESD && (vtxESD->GetStatus()<=0)) return;
for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++)
{
AliESDtrack *track = esdEvent->GetTrack(iTrack);
if(!track) continue;
if(GetAnalysisMode() == 0) ProcessTPC(stack,track);
else if(GetAnalysisMode() == 1) ProcessTPCITS(stack,track);
else if(GetAnalysisMode() == 2) ProcessConstrained(stack,track);
else if(GetAnalysisMode() == 3) ProcessInnerTPC(stack,track,esdEvent);
else {
printf("ERROR: AnalysisMode %d \n",fAnalysisMode);
return;
}
}
}
void AliPerformanceDEdx::Analyse()
{
TH1::AddDirectory(kFALSE);
TH1::SetDefaultSumw2(kFALSE);
TH1F *h1D=0;
TH2F *h2D=0;
TObjArray *aFolderObj = new TObjArray;
TString selString;
char name[256];
char title[256];
for(Int_t i=1; i<10; i++) {
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, i);
}
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, 6, 7);
AddProjection(aFolderObj, "dedx", fDeDxHisto, 7, 8, 9);
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, 8, 9);
AddProjection(aFolderObj, "dedx", fDeDxHisto, 6, 8, 9);
fDeDxHisto->GetAxis(2)->SetRangeUser(-15.,14.999);
fDeDxHisto->GetAxis(3)->SetRangeUser(-120.,119.999);
fDeDxHisto->GetAxis(4)->SetRangeUser(-0.4, 0.399);
fDeDxHisto->GetAxis(5)->SetRangeUser(-0.9,0.89);
fDeDxHisto->GetAxis(6)->SetRangeUser(60.,160.);
fDeDxHisto->GetAxis(7)->SetRangeUser(0.4,0.499);
fDeDxHisto->GetAxis(8)->SetRangeUser(60.,160.);
selString = "mipsres";
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, &selString);
TObjArray *arr[10] = {0};
TF1 *f1[10] = {0};
for(Int_t i=1; i<10; i++)
{
arr[i] = new TObjArray;
f1[i] = new TF1("gaus","gaus");
h2D = (TH2F*)fDeDxHisto->Projection(0,i);
f1[i]->SetRange(40,60);
h2D->FitSlicesY(f1[i],0,-1,10,"QNR",arr[i]);
h1D = (TH1F*)arr[i]->At(1);
snprintf(name,256,"mean_dedx_mips_vs_%d",i);
h1D->SetName(name);
snprintf(title,256,"%s vs %s","mean_dedx_mips (a.u.)",fDeDxHisto->GetAxis(i)->GetTitle());
h1D->SetTitle(title);
h1D->GetXaxis()->SetTitle(fDeDxHisto->GetAxis(i)->GetTitle());
h1D->GetYaxis()->SetTitle("mean_dedx_mips (a.u.)");
aFolderObj->Add(h1D);
h1D = (TH1F*)arr[i]->At(2);
snprintf(name,256,"res_dedx_mips_vs_%d",i);
h1D->SetName(name);
snprintf(title,256,"%s vs %s","res_dedx_mips (a.u)",fDeDxHisto->GetAxis(i)->GetTitle());
h1D->SetTitle(title);
h1D->GetXaxis()->SetTitle(fDeDxHisto->GetAxis(i)->GetTitle());
h1D->GetYaxis()->SetTitle("res_dedx_mips (a.u.)");
aFolderObj->Add(h1D);
}
fDeDxHisto->GetAxis(0)->SetRangeUser(35,60);
fDeDxHisto->GetAxis(2)->SetRangeUser(-20,19.999);
fDeDxHisto->GetAxis(3)->SetRangeUser(-250,249.999);
fDeDxHisto->GetAxis(4)->SetRangeUser(-1, 0.99);
fDeDxHisto->GetAxis(5)->SetRangeUser(-1,0.99);
fDeDxHisto->GetAxis(6)->SetRangeUser(80,160);
fDeDxHisto->GetAxis(7)->SetRangeUser(0.4,0.55);
fDeDxHisto->GetAxis(8)->SetRangeUser(80,160);
fDeDxHisto->GetAxis(9)->SetRangeUser(0.5,1.);
selString = "mips";
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, &selString);
selString = "mips_C";
fDeDxHisto->GetAxis(5)->SetRangeUser(-3,0);
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, 5, &selString);
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, 1, &selString);
selString = "mips_A";
fDeDxHisto->GetAxis(5)->SetRangeUser(0,3);
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, 5, &selString);
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, 1, &selString);
fDeDxHisto->GetAxis(0)->SetRangeUser(70,100);
fDeDxHisto->GetAxis(2)->SetRangeUser(-20,19.999);
fDeDxHisto->GetAxis(3)->SetRangeUser(-250,249.999);
fDeDxHisto->GetAxis(4)->SetRangeUser(-1, 0.99);
fDeDxHisto->GetAxis(5)->SetRangeUser(-1,0.99);
fDeDxHisto->GetAxis(6)->SetRangeUser(80,160);
fDeDxHisto->GetAxis(7)->SetRangeUser(0.32,0.38);
fDeDxHisto->GetAxis(8)->SetRangeUser(80,160);
fDeDxHisto->GetAxis(9)->SetRangeUser(0.5,1.);
selString = "mipsele";
AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, &selString);
for (Int_t i=0; i<fDeDxHisto->GetNdimensions(); i++) {
fDeDxHisto->GetAxis(i)->SetRange(1,fDeDxHisto->GetAxis(i)->GetNbins());
}
printf("exportToFolder\n");
fAnalysisFolder = ExportToFolder(aFolderObj);
if (fFolderObj) delete fFolderObj;
fFolderObj = aFolderObj;
aFolderObj=0;
for(Int_t i=0;i<10;i++) {
if(f1[i]) delete f1[i]; f1[i]=0;
}
}
TFolder* AliPerformanceDEdx::ExportToFolder(TObjArray * array)
{
AliPerformanceDEdx * 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* AliPerformanceDEdx::CreateFolder(TString name,TString title) {
TFolder *folder = 0;
folder = new TFolder(name.Data(),title.Data());
return folder;
}
TTree* AliPerformanceDEdx::CreateSummary()
{
return 0;
}
AliPerformanceDEdx.cxx:10 AliPerformanceDEdx.cxx:11 AliPerformanceDEdx.cxx:12 AliPerformanceDEdx.cxx:13 AliPerformanceDEdx.cxx:14 AliPerformanceDEdx.cxx:15 AliPerformanceDEdx.cxx:16 AliPerformanceDEdx.cxx:17 AliPerformanceDEdx.cxx:18 AliPerformanceDEdx.cxx:19 AliPerformanceDEdx.cxx:20 AliPerformanceDEdx.cxx:21 AliPerformanceDEdx.cxx:22 AliPerformanceDEdx.cxx:23 AliPerformanceDEdx.cxx:24 AliPerformanceDEdx.cxx:25 AliPerformanceDEdx.cxx:26 AliPerformanceDEdx.cxx:27 AliPerformanceDEdx.cxx:28 AliPerformanceDEdx.cxx:29 AliPerformanceDEdx.cxx:30 AliPerformanceDEdx.cxx:31 AliPerformanceDEdx.cxx:32 AliPerformanceDEdx.cxx:33 AliPerformanceDEdx.cxx:34 AliPerformanceDEdx.cxx:35 AliPerformanceDEdx.cxx:36 AliPerformanceDEdx.cxx:37 AliPerformanceDEdx.cxx:38 AliPerformanceDEdx.cxx:39 AliPerformanceDEdx.cxx:40 AliPerformanceDEdx.cxx:41 AliPerformanceDEdx.cxx:42 AliPerformanceDEdx.cxx:43 AliPerformanceDEdx.cxx:44 AliPerformanceDEdx.cxx:45 AliPerformanceDEdx.cxx:46 AliPerformanceDEdx.cxx:47 AliPerformanceDEdx.cxx:48 AliPerformanceDEdx.cxx:49 AliPerformanceDEdx.cxx:50 AliPerformanceDEdx.cxx:51 AliPerformanceDEdx.cxx:52 AliPerformanceDEdx.cxx:53 AliPerformanceDEdx.cxx:54 AliPerformanceDEdx.cxx:55 AliPerformanceDEdx.cxx:56 AliPerformanceDEdx.cxx:57 AliPerformanceDEdx.cxx:58 AliPerformanceDEdx.cxx:59 AliPerformanceDEdx.cxx:60 AliPerformanceDEdx.cxx:61 AliPerformanceDEdx.cxx:62 AliPerformanceDEdx.cxx:63 AliPerformanceDEdx.cxx:64 AliPerformanceDEdx.cxx:65 AliPerformanceDEdx.cxx:66 AliPerformanceDEdx.cxx:67 AliPerformanceDEdx.cxx:68 AliPerformanceDEdx.cxx:69 AliPerformanceDEdx.cxx:70 AliPerformanceDEdx.cxx:71 AliPerformanceDEdx.cxx:72 AliPerformanceDEdx.cxx:73 AliPerformanceDEdx.cxx:74 AliPerformanceDEdx.cxx:75 AliPerformanceDEdx.cxx:76 AliPerformanceDEdx.cxx:77 AliPerformanceDEdx.cxx:78 AliPerformanceDEdx.cxx:79 AliPerformanceDEdx.cxx:80 AliPerformanceDEdx.cxx:81 AliPerformanceDEdx.cxx:82 AliPerformanceDEdx.cxx:83 AliPerformanceDEdx.cxx:84 AliPerformanceDEdx.cxx:85 AliPerformanceDEdx.cxx:86 AliPerformanceDEdx.cxx:87 AliPerformanceDEdx.cxx:88 AliPerformanceDEdx.cxx:89 AliPerformanceDEdx.cxx:90 AliPerformanceDEdx.cxx:91 AliPerformanceDEdx.cxx:92 AliPerformanceDEdx.cxx:93 AliPerformanceDEdx.cxx:94 AliPerformanceDEdx.cxx:95 AliPerformanceDEdx.cxx:96 AliPerformanceDEdx.cxx:97 AliPerformanceDEdx.cxx:98 AliPerformanceDEdx.cxx:99 AliPerformanceDEdx.cxx:100 AliPerformanceDEdx.cxx:101 AliPerformanceDEdx.cxx:102 AliPerformanceDEdx.cxx:103 AliPerformanceDEdx.cxx:104 AliPerformanceDEdx.cxx:105 AliPerformanceDEdx.cxx:106 AliPerformanceDEdx.cxx:107 AliPerformanceDEdx.cxx:108 AliPerformanceDEdx.cxx:109 AliPerformanceDEdx.cxx:110 AliPerformanceDEdx.cxx:111 AliPerformanceDEdx.cxx:112 AliPerformanceDEdx.cxx:113 AliPerformanceDEdx.cxx:114 AliPerformanceDEdx.cxx:115 AliPerformanceDEdx.cxx:116 AliPerformanceDEdx.cxx:117 AliPerformanceDEdx.cxx:118 AliPerformanceDEdx.cxx:119 AliPerformanceDEdx.cxx:120 AliPerformanceDEdx.cxx:121 AliPerformanceDEdx.cxx:122 AliPerformanceDEdx.cxx:123 AliPerformanceDEdx.cxx:124 AliPerformanceDEdx.cxx:125 AliPerformanceDEdx.cxx:126 AliPerformanceDEdx.cxx:127 AliPerformanceDEdx.cxx:128 AliPerformanceDEdx.cxx:129 AliPerformanceDEdx.cxx:130 AliPerformanceDEdx.cxx:131 AliPerformanceDEdx.cxx:132 AliPerformanceDEdx.cxx:133 AliPerformanceDEdx.cxx:134 AliPerformanceDEdx.cxx:135 AliPerformanceDEdx.cxx:136 AliPerformanceDEdx.cxx:137 AliPerformanceDEdx.cxx:138 AliPerformanceDEdx.cxx:139 AliPerformanceDEdx.cxx:140 AliPerformanceDEdx.cxx:141 AliPerformanceDEdx.cxx:142 AliPerformanceDEdx.cxx:143 AliPerformanceDEdx.cxx:144 AliPerformanceDEdx.cxx:145 AliPerformanceDEdx.cxx:146 AliPerformanceDEdx.cxx:147 AliPerformanceDEdx.cxx:148 AliPerformanceDEdx.cxx:149 AliPerformanceDEdx.cxx:150 AliPerformanceDEdx.cxx:151 AliPerformanceDEdx.cxx:152 AliPerformanceDEdx.cxx:153 AliPerformanceDEdx.cxx:154 AliPerformanceDEdx.cxx:155 AliPerformanceDEdx.cxx:156 AliPerformanceDEdx.cxx:157 AliPerformanceDEdx.cxx:158 AliPerformanceDEdx.cxx:159 AliPerformanceDEdx.cxx:160 AliPerformanceDEdx.cxx:161 AliPerformanceDEdx.cxx:162 AliPerformanceDEdx.cxx:163 AliPerformanceDEdx.cxx:164 AliPerformanceDEdx.cxx:165 AliPerformanceDEdx.cxx:166 AliPerformanceDEdx.cxx:167 AliPerformanceDEdx.cxx:168 AliPerformanceDEdx.cxx:169 AliPerformanceDEdx.cxx:170 AliPerformanceDEdx.cxx:171 AliPerformanceDEdx.cxx:172 AliPerformanceDEdx.cxx:173 AliPerformanceDEdx.cxx:174 AliPerformanceDEdx.cxx:175 AliPerformanceDEdx.cxx:176 AliPerformanceDEdx.cxx:177 AliPerformanceDEdx.cxx:178 AliPerformanceDEdx.cxx:179 AliPerformanceDEdx.cxx:180 AliPerformanceDEdx.cxx:181 AliPerformanceDEdx.cxx:182 AliPerformanceDEdx.cxx:183 AliPerformanceDEdx.cxx:184 AliPerformanceDEdx.cxx:185 AliPerformanceDEdx.cxx:186 AliPerformanceDEdx.cxx:187 AliPerformanceDEdx.cxx:188 AliPerformanceDEdx.cxx:189 AliPerformanceDEdx.cxx:190 AliPerformanceDEdx.cxx:191 AliPerformanceDEdx.cxx:192 AliPerformanceDEdx.cxx:193 AliPerformanceDEdx.cxx:194 AliPerformanceDEdx.cxx:195 AliPerformanceDEdx.cxx:196 AliPerformanceDEdx.cxx:197 AliPerformanceDEdx.cxx:198 AliPerformanceDEdx.cxx:199 AliPerformanceDEdx.cxx:200 AliPerformanceDEdx.cxx:201 AliPerformanceDEdx.cxx:202 AliPerformanceDEdx.cxx:203 AliPerformanceDEdx.cxx:204 AliPerformanceDEdx.cxx:205 AliPerformanceDEdx.cxx:206 AliPerformanceDEdx.cxx:207 AliPerformanceDEdx.cxx:208 AliPerformanceDEdx.cxx:209 AliPerformanceDEdx.cxx:210 AliPerformanceDEdx.cxx:211 AliPerformanceDEdx.cxx:212 AliPerformanceDEdx.cxx:213 AliPerformanceDEdx.cxx:214 AliPerformanceDEdx.cxx:215 AliPerformanceDEdx.cxx:216 AliPerformanceDEdx.cxx:217 AliPerformanceDEdx.cxx:218 AliPerformanceDEdx.cxx:219 AliPerformanceDEdx.cxx:220 AliPerformanceDEdx.cxx:221 AliPerformanceDEdx.cxx:222 AliPerformanceDEdx.cxx:223 AliPerformanceDEdx.cxx:224 AliPerformanceDEdx.cxx:225 AliPerformanceDEdx.cxx:226 AliPerformanceDEdx.cxx:227 AliPerformanceDEdx.cxx:228 AliPerformanceDEdx.cxx:229 AliPerformanceDEdx.cxx:230 AliPerformanceDEdx.cxx:231 AliPerformanceDEdx.cxx:232 AliPerformanceDEdx.cxx:233 AliPerformanceDEdx.cxx:234 AliPerformanceDEdx.cxx:235 AliPerformanceDEdx.cxx:236 AliPerformanceDEdx.cxx:237 AliPerformanceDEdx.cxx:238 AliPerformanceDEdx.cxx:239 AliPerformanceDEdx.cxx:240 AliPerformanceDEdx.cxx:241 AliPerformanceDEdx.cxx:242 AliPerformanceDEdx.cxx:243 AliPerformanceDEdx.cxx:244 AliPerformanceDEdx.cxx:245 AliPerformanceDEdx.cxx:246 AliPerformanceDEdx.cxx:247 AliPerformanceDEdx.cxx:248 AliPerformanceDEdx.cxx:249 AliPerformanceDEdx.cxx:250 AliPerformanceDEdx.cxx:251 AliPerformanceDEdx.cxx:252 AliPerformanceDEdx.cxx:253 AliPerformanceDEdx.cxx:254 AliPerformanceDEdx.cxx:255 AliPerformanceDEdx.cxx:256 AliPerformanceDEdx.cxx:257 AliPerformanceDEdx.cxx:258 AliPerformanceDEdx.cxx:259 AliPerformanceDEdx.cxx:260 AliPerformanceDEdx.cxx:261 AliPerformanceDEdx.cxx:262 AliPerformanceDEdx.cxx:263 AliPerformanceDEdx.cxx:264 AliPerformanceDEdx.cxx:265 AliPerformanceDEdx.cxx:266 AliPerformanceDEdx.cxx:267 AliPerformanceDEdx.cxx:268 AliPerformanceDEdx.cxx:269 AliPerformanceDEdx.cxx:270 AliPerformanceDEdx.cxx:271 AliPerformanceDEdx.cxx:272 AliPerformanceDEdx.cxx:273 AliPerformanceDEdx.cxx:274 AliPerformanceDEdx.cxx:275 AliPerformanceDEdx.cxx:276 AliPerformanceDEdx.cxx:277 AliPerformanceDEdx.cxx:278 AliPerformanceDEdx.cxx:279 AliPerformanceDEdx.cxx:280 AliPerformanceDEdx.cxx:281 AliPerformanceDEdx.cxx:282 AliPerformanceDEdx.cxx:283 AliPerformanceDEdx.cxx:284 AliPerformanceDEdx.cxx:285 AliPerformanceDEdx.cxx:286 AliPerformanceDEdx.cxx:287 AliPerformanceDEdx.cxx:288 AliPerformanceDEdx.cxx:289 AliPerformanceDEdx.cxx:290 AliPerformanceDEdx.cxx:291 AliPerformanceDEdx.cxx:292 AliPerformanceDEdx.cxx:293 AliPerformanceDEdx.cxx:294 AliPerformanceDEdx.cxx:295 AliPerformanceDEdx.cxx:296 AliPerformanceDEdx.cxx:297 AliPerformanceDEdx.cxx:298 AliPerformanceDEdx.cxx:299 AliPerformanceDEdx.cxx:300 AliPerformanceDEdx.cxx:301 AliPerformanceDEdx.cxx:302 AliPerformanceDEdx.cxx:303 AliPerformanceDEdx.cxx:304 AliPerformanceDEdx.cxx:305 AliPerformanceDEdx.cxx:306 AliPerformanceDEdx.cxx:307 AliPerformanceDEdx.cxx:308 AliPerformanceDEdx.cxx:309 AliPerformanceDEdx.cxx:310 AliPerformanceDEdx.cxx:311 AliPerformanceDEdx.cxx:312 AliPerformanceDEdx.cxx:313 AliPerformanceDEdx.cxx:314 AliPerformanceDEdx.cxx:315 AliPerformanceDEdx.cxx:316 AliPerformanceDEdx.cxx:317 AliPerformanceDEdx.cxx:318 AliPerformanceDEdx.cxx:319 AliPerformanceDEdx.cxx:320 AliPerformanceDEdx.cxx:321 AliPerformanceDEdx.cxx:322 AliPerformanceDEdx.cxx:323 AliPerformanceDEdx.cxx:324 AliPerformanceDEdx.cxx:325 AliPerformanceDEdx.cxx:326 AliPerformanceDEdx.cxx:327 AliPerformanceDEdx.cxx:328 AliPerformanceDEdx.cxx:329 AliPerformanceDEdx.cxx:330 AliPerformanceDEdx.cxx:331 AliPerformanceDEdx.cxx:332 AliPerformanceDEdx.cxx:333 AliPerformanceDEdx.cxx:334 AliPerformanceDEdx.cxx:335 AliPerformanceDEdx.cxx:336 AliPerformanceDEdx.cxx:337 AliPerformanceDEdx.cxx:338 AliPerformanceDEdx.cxx:339 AliPerformanceDEdx.cxx:340 AliPerformanceDEdx.cxx:341 AliPerformanceDEdx.cxx:342 AliPerformanceDEdx.cxx:343 AliPerformanceDEdx.cxx:344 AliPerformanceDEdx.cxx:345 AliPerformanceDEdx.cxx:346 AliPerformanceDEdx.cxx:347 AliPerformanceDEdx.cxx:348 AliPerformanceDEdx.cxx:349 AliPerformanceDEdx.cxx:350 AliPerformanceDEdx.cxx:351 AliPerformanceDEdx.cxx:352 AliPerformanceDEdx.cxx:353 AliPerformanceDEdx.cxx:354 AliPerformanceDEdx.cxx:355 AliPerformanceDEdx.cxx:356 AliPerformanceDEdx.cxx:357 AliPerformanceDEdx.cxx:358 AliPerformanceDEdx.cxx:359 AliPerformanceDEdx.cxx:360 AliPerformanceDEdx.cxx:361 AliPerformanceDEdx.cxx:362 AliPerformanceDEdx.cxx:363 AliPerformanceDEdx.cxx:364 AliPerformanceDEdx.cxx:365 AliPerformanceDEdx.cxx:366 AliPerformanceDEdx.cxx:367 AliPerformanceDEdx.cxx:368 AliPerformanceDEdx.cxx:369 AliPerformanceDEdx.cxx:370 AliPerformanceDEdx.cxx:371 AliPerformanceDEdx.cxx:372 AliPerformanceDEdx.cxx:373 AliPerformanceDEdx.cxx:374 AliPerformanceDEdx.cxx:375 AliPerformanceDEdx.cxx:376 AliPerformanceDEdx.cxx:377 AliPerformanceDEdx.cxx:378 AliPerformanceDEdx.cxx:379 AliPerformanceDEdx.cxx:380 AliPerformanceDEdx.cxx:381 AliPerformanceDEdx.cxx:382 AliPerformanceDEdx.cxx:383 AliPerformanceDEdx.cxx:384 AliPerformanceDEdx.cxx:385 AliPerformanceDEdx.cxx:386 AliPerformanceDEdx.cxx:387 AliPerformanceDEdx.cxx:388 AliPerformanceDEdx.cxx:389 AliPerformanceDEdx.cxx:390 AliPerformanceDEdx.cxx:391 AliPerformanceDEdx.cxx:392 AliPerformanceDEdx.cxx:393 AliPerformanceDEdx.cxx:394 AliPerformanceDEdx.cxx:395 AliPerformanceDEdx.cxx:396 AliPerformanceDEdx.cxx:397 AliPerformanceDEdx.cxx:398 AliPerformanceDEdx.cxx:399 AliPerformanceDEdx.cxx:400 AliPerformanceDEdx.cxx:401 AliPerformanceDEdx.cxx:402 AliPerformanceDEdx.cxx:403 AliPerformanceDEdx.cxx:404 AliPerformanceDEdx.cxx:405 AliPerformanceDEdx.cxx:406 AliPerformanceDEdx.cxx:407 AliPerformanceDEdx.cxx:408 AliPerformanceDEdx.cxx:409 AliPerformanceDEdx.cxx:410 AliPerformanceDEdx.cxx:411 AliPerformanceDEdx.cxx:412 AliPerformanceDEdx.cxx:413 AliPerformanceDEdx.cxx:414 AliPerformanceDEdx.cxx:415 AliPerformanceDEdx.cxx:416 AliPerformanceDEdx.cxx:417 AliPerformanceDEdx.cxx:418 AliPerformanceDEdx.cxx:419 AliPerformanceDEdx.cxx:420 AliPerformanceDEdx.cxx:421 AliPerformanceDEdx.cxx:422 AliPerformanceDEdx.cxx:423 AliPerformanceDEdx.cxx:424 AliPerformanceDEdx.cxx:425 AliPerformanceDEdx.cxx:426 AliPerformanceDEdx.cxx:427 AliPerformanceDEdx.cxx:428 AliPerformanceDEdx.cxx:429 AliPerformanceDEdx.cxx:430 AliPerformanceDEdx.cxx:431 AliPerformanceDEdx.cxx:432 AliPerformanceDEdx.cxx:433 AliPerformanceDEdx.cxx:434 AliPerformanceDEdx.cxx:435 AliPerformanceDEdx.cxx:436 AliPerformanceDEdx.cxx:437 AliPerformanceDEdx.cxx:438 AliPerformanceDEdx.cxx:439 AliPerformanceDEdx.cxx:440 AliPerformanceDEdx.cxx:441 AliPerformanceDEdx.cxx:442 AliPerformanceDEdx.cxx:443 AliPerformanceDEdx.cxx:444 AliPerformanceDEdx.cxx:445 AliPerformanceDEdx.cxx:446 AliPerformanceDEdx.cxx:447 AliPerformanceDEdx.cxx:448 AliPerformanceDEdx.cxx:449 AliPerformanceDEdx.cxx:450 AliPerformanceDEdx.cxx:451 AliPerformanceDEdx.cxx:452 AliPerformanceDEdx.cxx:453 AliPerformanceDEdx.cxx:454 AliPerformanceDEdx.cxx:455 AliPerformanceDEdx.cxx:456 AliPerformanceDEdx.cxx:457 AliPerformanceDEdx.cxx:458 AliPerformanceDEdx.cxx:459 AliPerformanceDEdx.cxx:460 AliPerformanceDEdx.cxx:461 AliPerformanceDEdx.cxx:462 AliPerformanceDEdx.cxx:463 AliPerformanceDEdx.cxx:464 AliPerformanceDEdx.cxx:465 AliPerformanceDEdx.cxx:466 AliPerformanceDEdx.cxx:467 AliPerformanceDEdx.cxx:468 AliPerformanceDEdx.cxx:469 AliPerformanceDEdx.cxx:470 AliPerformanceDEdx.cxx:471 AliPerformanceDEdx.cxx:472 AliPerformanceDEdx.cxx:473 AliPerformanceDEdx.cxx:474 AliPerformanceDEdx.cxx:475 AliPerformanceDEdx.cxx:476 AliPerformanceDEdx.cxx:477 AliPerformanceDEdx.cxx:478 AliPerformanceDEdx.cxx:479 AliPerformanceDEdx.cxx:480 AliPerformanceDEdx.cxx:481 AliPerformanceDEdx.cxx:482 AliPerformanceDEdx.cxx:483 AliPerformanceDEdx.cxx:484 AliPerformanceDEdx.cxx:485 AliPerformanceDEdx.cxx:486 AliPerformanceDEdx.cxx:487 AliPerformanceDEdx.cxx:488 AliPerformanceDEdx.cxx:489 AliPerformanceDEdx.cxx:490 AliPerformanceDEdx.cxx:491 AliPerformanceDEdx.cxx:492 AliPerformanceDEdx.cxx:493 AliPerformanceDEdx.cxx:494 AliPerformanceDEdx.cxx:495 AliPerformanceDEdx.cxx:496 AliPerformanceDEdx.cxx:497 AliPerformanceDEdx.cxx:498 AliPerformanceDEdx.cxx:499 AliPerformanceDEdx.cxx:500 AliPerformanceDEdx.cxx:501 AliPerformanceDEdx.cxx:502 AliPerformanceDEdx.cxx:503 AliPerformanceDEdx.cxx:504 AliPerformanceDEdx.cxx:505 AliPerformanceDEdx.cxx:506 AliPerformanceDEdx.cxx:507 AliPerformanceDEdx.cxx:508 AliPerformanceDEdx.cxx:509 AliPerformanceDEdx.cxx:510 AliPerformanceDEdx.cxx:511 AliPerformanceDEdx.cxx:512 AliPerformanceDEdx.cxx:513 AliPerformanceDEdx.cxx:514 AliPerformanceDEdx.cxx:515 AliPerformanceDEdx.cxx:516 AliPerformanceDEdx.cxx:517 AliPerformanceDEdx.cxx:518 AliPerformanceDEdx.cxx:519 AliPerformanceDEdx.cxx:520 AliPerformanceDEdx.cxx:521 AliPerformanceDEdx.cxx:522 AliPerformanceDEdx.cxx:523 AliPerformanceDEdx.cxx:524 AliPerformanceDEdx.cxx:525 AliPerformanceDEdx.cxx:526 AliPerformanceDEdx.cxx:527 AliPerformanceDEdx.cxx:528 AliPerformanceDEdx.cxx:529 AliPerformanceDEdx.cxx:530 AliPerformanceDEdx.cxx:531 AliPerformanceDEdx.cxx:532 AliPerformanceDEdx.cxx:533 AliPerformanceDEdx.cxx:534 AliPerformanceDEdx.cxx:535 AliPerformanceDEdx.cxx:536 AliPerformanceDEdx.cxx:537 AliPerformanceDEdx.cxx:538 AliPerformanceDEdx.cxx:539 AliPerformanceDEdx.cxx:540 AliPerformanceDEdx.cxx:541 AliPerformanceDEdx.cxx:542 AliPerformanceDEdx.cxx:543 AliPerformanceDEdx.cxx:544 AliPerformanceDEdx.cxx:545 AliPerformanceDEdx.cxx:546 AliPerformanceDEdx.cxx:547 AliPerformanceDEdx.cxx:548 AliPerformanceDEdx.cxx:549 AliPerformanceDEdx.cxx:550 AliPerformanceDEdx.cxx:551 AliPerformanceDEdx.cxx:552 AliPerformanceDEdx.cxx:553 AliPerformanceDEdx.cxx:554 AliPerformanceDEdx.cxx:555 AliPerformanceDEdx.cxx:556 AliPerformanceDEdx.cxx:557 AliPerformanceDEdx.cxx:558 AliPerformanceDEdx.cxx:559 AliPerformanceDEdx.cxx:560 AliPerformanceDEdx.cxx:561 AliPerformanceDEdx.cxx:562 AliPerformanceDEdx.cxx:563 AliPerformanceDEdx.cxx:564 AliPerformanceDEdx.cxx:565 AliPerformanceDEdx.cxx:566 AliPerformanceDEdx.cxx:567 AliPerformanceDEdx.cxx:568 AliPerformanceDEdx.cxx:569 AliPerformanceDEdx.cxx:570 AliPerformanceDEdx.cxx:571 AliPerformanceDEdx.cxx:572 AliPerformanceDEdx.cxx:573 AliPerformanceDEdx.cxx:574 AliPerformanceDEdx.cxx:575 AliPerformanceDEdx.cxx:576 AliPerformanceDEdx.cxx:577 AliPerformanceDEdx.cxx:578 AliPerformanceDEdx.cxx:579 AliPerformanceDEdx.cxx:580 AliPerformanceDEdx.cxx:581 AliPerformanceDEdx.cxx:582 AliPerformanceDEdx.cxx:583 AliPerformanceDEdx.cxx:584 AliPerformanceDEdx.cxx:585 AliPerformanceDEdx.cxx:586 AliPerformanceDEdx.cxx:587 AliPerformanceDEdx.cxx:588 AliPerformanceDEdx.cxx:589 AliPerformanceDEdx.cxx:590 AliPerformanceDEdx.cxx:591 AliPerformanceDEdx.cxx:592 AliPerformanceDEdx.cxx:593 AliPerformanceDEdx.cxx:594 AliPerformanceDEdx.cxx:595 AliPerformanceDEdx.cxx:596 AliPerformanceDEdx.cxx:597 AliPerformanceDEdx.cxx:598