ROOT logo
//------------------------------------------------------------------------------
// Implementation of AliPerformanceDEdx class. It keeps information from 
// comparison of reconstructed and MC particle tracks. In addtion, 
// it keeps selection cuts used during comparison. The comparison 
// information is stored in the ROOT histograms. Analysis of these 
// histograms can be done by using Analyse() class function. The result of 
// the analysis (histograms/graphs) are stored in the folder which is 
// a data of AliPerformanceDEdx.
//  
// Author: J.Otwinowski 04/02/2008 
// Changes by M.Knichel 15/10/2010
//------------------------------------------------------------------------------

/*AliPerformanceDEdx.cxx
 
  // after running comparison task, read the file, and get component
  gROOT->LoadMacro("$ALICE_ROOT/PWGPP/Macros/LoadMyLibs.C");
  LoadMyLibs();cd /hera/alice/atarant/train/trunk/atarant_spectra/qa/

  TFile f("Output.root");
  //AliPerformanceDEdx * compObj = (AliPerformanceDEdx*)f.Get("AliPerformanceDEdx");
  AliPerformanceDEdx * compObj = (AliPerformanceDEdx*)coutput->FindObject("AliPerformanceDEdx");

  // Analyse comparison data
  compObj->Analyse();

  // the output histograms/graphs will be stored in the folder "folderDEdx" 
  compObj->GetAnalysisFolder()->ls("*");

  // user can save whole comparison object (or only folder with anlysed histograms) 
  // in the seperate output file (e.g.)
  TFile fout("Analysed_DEdx.root","recreate");
  //compObj->Write(); // compObj->GetAnalysisFolder()->Write();
  compObj->GetAnalysisFolder()->Write();
  fout.Close();

*/

#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),

  // dEdx 
  fDeDxHisto(0),
  fFolderObj(0),
  
  // Cuts 
  fCutsRC(0), 
  fCutsMC(0),

  // histogram folder 
  fAnalysisFolder(0)
{
  // named constructor

  SetAnalysisMode(analysisMode);
  SetHptGenerator(hptGenerator);
  Init();
}


//_____________________________________________________________________________
AliPerformanceDEdx::~AliPerformanceDEdx()
{
  // destructor
  if(fDeDxHisto)  delete fDeDxHisto; fDeDxHisto=0; 
  if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;
}

//_____________________________________________________________________________
void AliPerformanceDEdx::Init()
{
  // Init histograms
  
  // TPC dEdx
  // set p bins
  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 nPBins = 31;
    Double_t binsP[32] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.7,0.8,0.9,1.0,1.2,1.4,1.6,1.8,2.0,2.25,2.5,2.75,3.,3.5,4.,5.,6.,8.,10.};
    Double_t pMin = 0., pMax = 10.;

    if(IsHptGenerator() == kTRUE) {
      nPBins = 100;
      pMin = 0.; pMax = 100.;
    }
   */

   //Int_t binsQA[8]    = {300, 50, 50,  50, 50, 50, 80, nPBins};
   //Double_t xminQA[8] = {0, -4,-20,-250, -1, -2, 0, pMin};
   //Double_t xmaxQA[8] = {300, 4, 20, 250,  1,  2, 160, pMax};
 // signal:phi:y:z:snp:tgl:ncls:p:nclsDEdx:nclsF
  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");
   //fDeDxHisto->Sumw2();

   // Init cuts
   if(!fCutsMC) {
     AliDebug(AliLog::kError, "ERROR: Cannot find AliMCInfoCuts object");
   }
   if(!fCutsRC) {
     AliDebug(AliLog::kError, "ERROR: Cannot find AliRecInfoCuts object");
   }

   // init folder
   fAnalysisFolder = CreateFolder("folderDEdx","Analysis de/dx Folder");
   
   // save merge status in object
   fMergeTHnSparseObj = fgMergeTHnSparse;

}

//_____________________________________________________________________________
void AliPerformanceDEdx::ProcessTPC(AliStack* const /*stack*/, AliESDtrack *const /*esdTrack*/)
{
  // Fill dE/dx  comparison information
  AliDebug(AliLog::kWarning, "Warning: Not implemented");
}

//_____________________________________________________________________________
void AliPerformanceDEdx::ProcessInnerTPC(AliStack* const stack, AliESDtrack *const esdTrack, AliESDEvent* const esdEvent)
{
 //
 // Fill TPC track information at inner TPC wall
 // 
  if(!esdEvent) return;
  if(!esdTrack) return;

  if( IsUseTrackVertex() ) 
  { 
    // Relate TPC inner params to prim. vertex
    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);
    //    Bool_t isOK = esdTrack->RelateToVertexTPCBxByBz(vtxESD, b, kVeryBig);
    if(!isOK) return;

    /*
      // JMT -- recaluclate DCA for HLT if not present
      if ( dca[0] == 0. && dca[1] == 0. ) {
        track->GetDZ( vtxESD->GetX(), vtxESD->GetY(), vtxESD->GetZ(), esdEvent->GetMagneticField(), dca );
      }
    */
  }

  // get external param. at inner TPC wall
  const AliExternalTrackParam *innerParam =  esdTrack->GetInnerParam();
  if(!innerParam) return;

  Float_t dca[2], cov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z
  esdTrack->GetImpactParametersTPC(dca,cov);

  if((esdTrack->GetStatus()&AliESDtrack::kTPCrefit)==0) return; // TPC refit

  //
  // select primaries
  //
  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 nCrossedRows = esdTrack->GetTPCClusterInfo(2,1);
  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 alpha = innerParam->GetAlpha();
  Double_t phi = TMath::ATan2(innerParam->Py(),innerParam->Px());
  //if(phi<0.) phi += 2.*TMath::Phi();
  Double_t y = innerParam->GetY();
  Double_t z = innerParam->GetZ();
  Double_t snp = innerParam->GetSnp();
  Double_t tgl = innerParam->GetTgl();

  //fill thnspars here coud add oroc mdedium long..............Atti
  //you should select which pad leng here 
  // http://svnweb.cern.ch/world/wsvn/AliRoot/trunk/STEER/STEERBase/AliTPCdEdxInfo.h 
  // fTPCsignalRegion[4];

  //Double_t vDeDxHisto[10] = {dedx,phi,y,z,snp,tgl,ncls,p,TPCSignalN,nCrossedRows};
  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 /*stack*/, AliESDtrack *const /*esdTrack*/)
{
  // Fill dE/dx  comparison information
  
   AliDebug(AliLog::kWarning, "Warning: Not implemented");
}

//_____________________________________________________________________________
void AliPerformanceDEdx::ProcessConstrained(AliStack* const /*stack*/, AliESDtrack *const /*esdTrack*/)
{
  // Fill dE/dx  comparison information
  
   AliDebug(AliLog::kWarning, "Warning: Not implemented");
}

//_____________________________________________________________________________
Long64_t AliPerformanceDEdx::Merge(TCollection* const list) 
{
  // Merge list of objects (needed by PROOF)

  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();

  // collection of generated histograms
  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); }        
    }
    // the analysisfolder is only merged if present
    if (entry->fFolderObj) { objArrayList->Add(entry->fFolderObj); }

    count++;
  }
  if (fFolderObj) { fFolderObj->Merge(objArrayList); } 
  // to signal that track histos were not merged: reset
  if (!merge) { fDeDxHisto->Reset(); }
  // delete
  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)
{
  // Process comparison information 
  //
  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;
    }

    // get MC event header
    header = mcEvent->Header();
    if (!header) {
      AliDebug(AliLog::kError, "Header not available");
      return;
    }
    // MC particle stack
    stack = mcEvent->Stack();
    if (!stack) {
      AliDebug(AliLog::kError, "Stack not available");
      return;
    }

    // get MC vertex
    genHeader = header->GenEventHeader();
    if (!genHeader) {
      AliDebug(AliLog::kError, "Could not retrieve genHeader from Header");
      return;
    }
    genHeader->PrimaryVertex(vtxMC);

  } // end bUseMC

  // use ESD friends
  if(bUseESDfriend) {
    if(!esdFriend) {
      AliDebug(AliLog::kError, "esdFriend not available");
      return;
    }
  }

  // trigger
  if(!bUseMC && GetTriggerClass()) {
    Bool_t isEventTriggered = esdEvent->IsTriggerClassFired(GetTriggerClass());
    if(!isEventTriggered) return; 
  }

  // get event vertex
  const AliESDVertex *vtxESD = NULL;
  if( IsUseTrackVertex() ) 
  { 
    // track vertex
    vtxESD = esdEvent->GetPrimaryVertexTracks();
  }
  else {
    // TPC track vertex
    vtxESD = esdEvent->GetPrimaryVertexTPC();
  }
  if(vtxESD && (vtxESD->GetStatus()<=0)) return;

  //  Process events
  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()
{
  
  // Analyze comparison information and store output histograms
  // in the folder "folderDEdx"
  //
  //Atti h_tpc_dedx_mips_0 
  //fai fit con range p(.32,.38) and dEdx(65- 120 or 100) e ripeti cosa fatta per pion e fai trending della media e res, poio la loro differenza
  //fai dedx vs lamda ma for e e pion separati
  //
  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);

  // resolution histograms for mips
  //-> signal:phi:y:z:snp:tgl:ncls:p:nclsDEdx:nclsF
  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); //p
  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");
    //printf("i %d \n",i);

    h2D = (TH2F*)fDeDxHisto->Projection(0,i);

    f1[i]->SetRange(40,60); // should be pion peak
    h2D->FitSlicesY(f1[i],0,-1,10,"QNR",arr[i]); // gaus fit of pion peak

    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.)");
    //h1D->SetMinimum(40);
    //h1D->SetMaximum(60);

    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.)");
    //h1D->SetMinimum(0);
    //h1D->SetMaximum(6);

    aFolderObj->Add(h1D);
  }

    // select MIPs (version from AliTPCPerfomanceSummary)
    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);
    
    //////////////////////////////////////// atti new start
    // 
    // select (version from AliTPCPerfomanceSummary) electrons                                                                                                      
    fDeDxHisto->GetAxis(0)->SetRangeUser(70,100); //dedx for electrons
    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); //momenta for electrons
    fDeDxHisto->GetAxis(8)->SetRangeUser(80,160);
    fDeDxHisto->GetAxis(9)->SetRangeUser(0.5,1.);

    selString = "mipsele";
    AddProjection(aFolderObj, "dedx", fDeDxHisto, 0, &selString);
    //////////////////////////////////////// atti new stop

    //restore cuts
    for (Int_t i=0; i<fDeDxHisto->GetNdimensions(); i++) {
      fDeDxHisto->GetAxis(i)->SetRange(1,fDeDxHisto->GetAxis(i)->GetNbins());
    }

    printf("exportToFolder\n");
    // export objects to analysis folder
    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) 
{
  // recreate folder avery time and export objects to new one
  //
  AliPerformanceDEdx * comp=this;
  TFolder *folder = comp->GetAnalysisFolder();

  TString name, title;
  TFolder *newFolder = 0;
  Int_t i = 0;
  Int_t size = array->GetSize();

  if(folder) { 
     // get name and title from old folder
     name = folder->GetName();  
     title = folder->GetTitle();  

	 // delete old one
     delete folder;

	 // create new one
     newFolder = CreateFolder(name.Data(),title.Data());
     newFolder->SetOwner();

	 // add objects to folder
     while(i < size) {
	   newFolder->Add(array->At(i));
	   i++;
	 }
  }

return newFolder;
}


//_____________________________________________________________________________
TFolder* AliPerformanceDEdx::CreateFolder(TString name,TString title) { 
// create folder for analysed histograms
TFolder *folder = 0;
  folder = new TFolder(name.Data(),title.Data());

  return folder;
}

//_____________________________________________________________________________
TTree* AliPerformanceDEdx::CreateSummary()
{
    // implementaion removed, switched back to use AliPerformanceSummary (now called in AliPerformanceTask)
    return 0;
}

 AliPerformanceDEdx.cxx:1
 AliPerformanceDEdx.cxx:2
 AliPerformanceDEdx.cxx:3
 AliPerformanceDEdx.cxx:4
 AliPerformanceDEdx.cxx:5
 AliPerformanceDEdx.cxx:6
 AliPerformanceDEdx.cxx:7
 AliPerformanceDEdx.cxx:8
 AliPerformanceDEdx.cxx:9
 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