ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//------------------------------------------------------------------------------
// AliPtResolAnalysisPbPb class. 
// 
// a. functionality:
// - fills analysis control histograms
//
// b. data members:
// - control histograms
//
// Author: J.Otwinowski 04/11/2008 
//------------------------------------------------------------------------------

#include "TH1.h"
#include "TH2.h"
#include "TCanvas.h"
#include "THnSparse.h"

#include "AliHeader.h"  
#include "AliInputEventHandler.h"  
#include "AliAnalysisManager.h"  
#include "AliGenEventHeader.h"  
#include "AliStack.h"  
#include "AliESDEvent.h"  
#include "AliMCEvent.h"  
#include "AliESDtrackCuts.h"  
#include "AliLog.h" 
#include "AliMultiplicity.h"
#include "AliTracker.h"
#include "AliCentrality.h"

#include "AlidNdPtEventCuts.h"
#include "AlidNdPtAcceptanceCuts.h"
#include "AliPhysicsSelection.h"
#include "AliTriggerAnalysis.h"

#include "AliPWG0Helper.h"
#include "AlidNdPtHelper.h"
#include "AliPtResolAnalysisPbPb.h"


using namespace std;

ClassImp(AliPtResolAnalysisPbPb)

//_____________________________________________________________________________
  AliPtResolAnalysisPbPb::AliPtResolAnalysisPbPb(): AlidNdPt(),
  fAnalysisFolder(0),
  fTrackParamHist(0),
  fTrackParamHist2(0),
  fCentralityEstimator(0)
{
  // default constructor
  Init();
}

//_____________________________________________________________________________
AliPtResolAnalysisPbPb::AliPtResolAnalysisPbPb(Char_t* name, Char_t* title): AlidNdPt(name,title),
  fAnalysisFolder(0),
  fTrackParamHist(0),
  fTrackParamHist2(0),
  fCentralityEstimator(0)
{
  Init();
}

//_____________________________________________________________________________
AliPtResolAnalysisPbPb::~AliPtResolAnalysisPbPb() {
  //
  // destructor
  //
  if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;
  if(fTrackParamHist) delete fTrackParamHist; fTrackParamHist=0;
  if(fTrackParamHist2) delete fTrackParamHist2; fTrackParamHist2=0;
}

//_____________________________________________________________________________
void AliPtResolAnalysisPbPb::Init(){
  //
  // Generic histograms to be corrected
  //
  //1/pT:#sigma(1/pT):centrality
  Int_t binsTrackParamHist[3]={400,300,11};
  Double_t minTrackParamHist[3]={0,0,0}; 
  Double_t maxTrackParamHist[3]={1,0.015,100};

  Double_t centrBins[12] = {0.0,5.,10.,20.,30.,40.,50.,60.,70.,80.,90.,100}; 


  fTrackParamHist = new THnSparseF("fTrackParamHist","1/pT:#sigma(1/pT):centrality",3,binsTrackParamHist,minTrackParamHist,maxTrackParamHist);
  fTrackParamHist->SetBinEdges(2,centrBins);
  fTrackParamHist->GetAxis(0)->SetTitle("1/pT (GeV/c)^{-1}");
  fTrackParamHist->GetAxis(1)->SetTitle("#sigma(1/pT)");
  fTrackParamHist->GetAxis(2)->SetTitle("centrality");
  fTrackParamHist->Sumw2();
  
  //pt:sigma(1/pT)*pT:centrality
  const Int_t ptNbins = 73;
  Double_t bins[74] = {0.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.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0, 36.0, 40.0, 45.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0 };

  Int_t binsTrackParamHist2[3]={ptNbins,200,11};
  Double_t minTrackParamHist2[3]={0,0,0}; 
  Double_t maxTrackParamHist2[3]={100,0.2,100};

  fTrackParamHist2 = new THnSparseF("fTrackParamHist2","pT:#sigma(1/pT)*pT:centrality",3,binsTrackParamHist2,minTrackParamHist2,maxTrackParamHist2);
  fTrackParamHist2->SetBinEdges(0,bins);
  fTrackParamHist2->GetAxis(0)->SetTitle("pT (GeV/c)");
  fTrackParamHist2->GetAxis(1)->SetTitle("#sigma(1/pT)*pT");
  fTrackParamHist2->GetAxis(2)->SetTitle("centrality");
  fTrackParamHist2->Sumw2();

  // init folder
  fAnalysisFolder = CreateFolder("folderdNdPt","Analysis dNdPt Folder");
  
}

//_____________________________________________________________________________
void AliPtResolAnalysisPbPb::Process(AliESDEvent *const esdEvent, AliMCEvent *const mcEvent)
{
  //
  // Process real and/or simulated events
  //
  if(!esdEvent) {
    AliDebug(AliLog::kError, "esdEvent not available");
    return;
  }

  // get selection cuts
  AlidNdPtEventCuts *evtCuts = GetEventCuts(); 
  AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); 
  AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); 

  if(!evtCuts || !accCuts  || !esdTrackCuts) {
    AliDebug(AliLog::kError, "cuts not available");
    return;
  }

  // trigger selection
  Bool_t isEventTriggered = kTRUE;
  AliPhysicsSelection *physicsSelection = NULL;
  AliTriggerAnalysis* triggerAnalysis = NULL;

  // 
  AliInputEventHandler* inputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
  if (!inputHandler)
  {
    Printf("ERROR: Could not receive input handler");
    return;
  }

  if(evtCuts->IsTriggerRequired())  
  {
    // always MB
    isEventTriggered = inputHandler->IsEventSelected() & AliVEvent::kMB;

    physicsSelection = static_cast<AliPhysicsSelection*> (inputHandler->GetEventSelection());
    if(!physicsSelection) return;
    //SetPhysicsTriggerSelection(physicsSelection);

    if (isEventTriggered && (GetTrigger() == AliTriggerAnalysis::kV0AND)) {
      // set trigger (V0AND)
      triggerAnalysis = physicsSelection->GetTriggerAnalysis();
      if(!triggerAnalysis) return;
      isEventTriggered = triggerAnalysis->IsOfflineTriggerFired(esdEvent, GetTrigger());
    }


   // centrality determination
   Float_t centralityF = -1.;
   AliCentrality *esdCentrality = esdEvent->GetCentrality();
   centralityF = esdCentrality->GetCentralityPercentile(fCentralityEstimator.Data());

  // get reconstructed vertex  
  const AliESDVertex* vtxESD = 0; 
  Bool_t isRecVertex = kFALSE;
  if(evtCuts->IsRecVertexRequired()) 
  {
    Bool_t bRedoTPCVertex = evtCuts->IsRedoTPCVertex();
    Bool_t bUseConstraints = evtCuts->IsUseBeamSpotConstraint();
    vtxESD = AlidNdPtHelper::GetVertex(esdEvent,evtCuts,accCuts,esdTrackCuts,GetAnalysisMode(),kFALSE,bRedoTPCVertex,bUseConstraints); 
    isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, esdEvent->GetPrimaryVertexSPD(), GetAnalysisMode(), kFALSE);
  }

  Bool_t isEventOK = evtCuts->AcceptEvent(esdEvent,mcEvent,vtxESD) && isRecVertex; 
  //printf("isEventOK %d, isEventTriggered %d \n",isEventOK, isEventTriggered);
  //printf("GetAnalysisMode() %d \n",GetAnalysisMode());

  //
  TObjArray *allChargedTracks=0;
  // check event cuts
  if(isEventOK && isEventTriggered)
  {
    // get all charged tracks
    allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,GetAnalysisMode());
    if(!allChargedTracks) return;

    Int_t entries = allChargedTracks->GetEntries();
    //printf("entries %d \n",entries);

    // fill histograms
    for(Int_t i=0; i<entries;++i) 
    {
      AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);
      if(!track) continue;
      if(track->Charge()==0) continue;

      // only postive charged 
      if(GetParticleMode() == AlidNdPtHelper::kPlus && track->Charge() < 0) 
        continue;
      
      // only negative charged 
      if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) 
        continue;

      if(esdTrackCuts->AcceptTrack(track)) 
      {
        if(accCuts->AcceptTrack(track)) 
        {
	  //Double_t x, par[5], cov[15];
	  //track->GetExternalParameters(x, p);
	  //track->GetExternalCovariance(cov);

	  Double_t v[3] = {track->OneOverPt(),TMath::Sqrt(track->GetSigma1Pt2()),centralityF};
	  fTrackParamHist->Fill(v);

	  Double_t v2[3] = {track->Pt(),track->Pt()*TMath::Sqrt(track->GetSigma1Pt2()),centralityF};
	  fTrackParamHist2->Fill(v2);
        }
      }  
    }
  }
 }
}

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

  if (!list)
  return 0;

  if (list->IsEmpty())
  return 1;

  TIterator* iter = list->MakeIterator();
  TObject* obj = 0;

  //
  //TList *collPhysSelection = new TList;

  // collection of generated histograms

  Int_t count=0;
  while((obj = iter->Next()) != 0) {
    AliPtResolAnalysisPbPb* entry = dynamic_cast<AliPtResolAnalysisPbPb*>(obj);
    if (entry == 0) continue; 
    
    //
    fTrackParamHist->Add(entry->fTrackParamHist);
    fTrackParamHist2->Add(entry->fTrackParamHist2);
  }

return count;
}

//_____________________________________________________________________________
void AliPtResolAnalysisPbPb::Analyse() 
{
  // Analyse histograms
  //
  TH1::AddDirectory(kFALSE);
  TObjArray *aFolderObj = new TObjArray;
  if(!aFolderObj) return;
  
  //
  // Reconstructed event vertex
  //
  
  // export objects to analysis folder
  fAnalysisFolder = ExportToFolder(aFolderObj);
  if(!fAnalysisFolder) { 
    if(aFolderObj) delete aFolderObj;
    return;
  }

  // delete only TObjArray
  if(aFolderObj) delete aFolderObj;
}

//_____________________________________________________________________________
TFolder* AliPtResolAnalysisPbPb::ExportToFolder(TObjArray * const array) 
{
  // recreate folder avery time and export objects to new one
  //
  if(!array) return NULL;

  AliPtResolAnalysisPbPb * 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* AliPtResolAnalysisPbPb::CreateFolder(TString name,TString title) { 
// create folder for analysed histograms
//
TFolder *folder = 0;
  folder = new TFolder(name.Data(),title.Data());

  return folder;
}
 AliPtResolAnalysisPbPb.cxx:1
 AliPtResolAnalysisPbPb.cxx:2
 AliPtResolAnalysisPbPb.cxx:3
 AliPtResolAnalysisPbPb.cxx:4
 AliPtResolAnalysisPbPb.cxx:5
 AliPtResolAnalysisPbPb.cxx:6
 AliPtResolAnalysisPbPb.cxx:7
 AliPtResolAnalysisPbPb.cxx:8
 AliPtResolAnalysisPbPb.cxx:9
 AliPtResolAnalysisPbPb.cxx:10
 AliPtResolAnalysisPbPb.cxx:11
 AliPtResolAnalysisPbPb.cxx:12
 AliPtResolAnalysisPbPb.cxx:13
 AliPtResolAnalysisPbPb.cxx:14
 AliPtResolAnalysisPbPb.cxx:15
 AliPtResolAnalysisPbPb.cxx:16
 AliPtResolAnalysisPbPb.cxx:17
 AliPtResolAnalysisPbPb.cxx:18
 AliPtResolAnalysisPbPb.cxx:19
 AliPtResolAnalysisPbPb.cxx:20
 AliPtResolAnalysisPbPb.cxx:21
 AliPtResolAnalysisPbPb.cxx:22
 AliPtResolAnalysisPbPb.cxx:23
 AliPtResolAnalysisPbPb.cxx:24
 AliPtResolAnalysisPbPb.cxx:25
 AliPtResolAnalysisPbPb.cxx:26
 AliPtResolAnalysisPbPb.cxx:27
 AliPtResolAnalysisPbPb.cxx:28
 AliPtResolAnalysisPbPb.cxx:29
 AliPtResolAnalysisPbPb.cxx:30
 AliPtResolAnalysisPbPb.cxx:31
 AliPtResolAnalysisPbPb.cxx:32
 AliPtResolAnalysisPbPb.cxx:33
 AliPtResolAnalysisPbPb.cxx:34
 AliPtResolAnalysisPbPb.cxx:35
 AliPtResolAnalysisPbPb.cxx:36
 AliPtResolAnalysisPbPb.cxx:37
 AliPtResolAnalysisPbPb.cxx:38
 AliPtResolAnalysisPbPb.cxx:39
 AliPtResolAnalysisPbPb.cxx:40
 AliPtResolAnalysisPbPb.cxx:41
 AliPtResolAnalysisPbPb.cxx:42
 AliPtResolAnalysisPbPb.cxx:43
 AliPtResolAnalysisPbPb.cxx:44
 AliPtResolAnalysisPbPb.cxx:45
 AliPtResolAnalysisPbPb.cxx:46
 AliPtResolAnalysisPbPb.cxx:47
 AliPtResolAnalysisPbPb.cxx:48
 AliPtResolAnalysisPbPb.cxx:49
 AliPtResolAnalysisPbPb.cxx:50
 AliPtResolAnalysisPbPb.cxx:51
 AliPtResolAnalysisPbPb.cxx:52
 AliPtResolAnalysisPbPb.cxx:53
 AliPtResolAnalysisPbPb.cxx:54
 AliPtResolAnalysisPbPb.cxx:55
 AliPtResolAnalysisPbPb.cxx:56
 AliPtResolAnalysisPbPb.cxx:57
 AliPtResolAnalysisPbPb.cxx:58
 AliPtResolAnalysisPbPb.cxx:59
 AliPtResolAnalysisPbPb.cxx:60
 AliPtResolAnalysisPbPb.cxx:61
 AliPtResolAnalysisPbPb.cxx:62
 AliPtResolAnalysisPbPb.cxx:63
 AliPtResolAnalysisPbPb.cxx:64
 AliPtResolAnalysisPbPb.cxx:65
 AliPtResolAnalysisPbPb.cxx:66
 AliPtResolAnalysisPbPb.cxx:67
 AliPtResolAnalysisPbPb.cxx:68
 AliPtResolAnalysisPbPb.cxx:69
 AliPtResolAnalysisPbPb.cxx:70
 AliPtResolAnalysisPbPb.cxx:71
 AliPtResolAnalysisPbPb.cxx:72
 AliPtResolAnalysisPbPb.cxx:73
 AliPtResolAnalysisPbPb.cxx:74
 AliPtResolAnalysisPbPb.cxx:75
 AliPtResolAnalysisPbPb.cxx:76
 AliPtResolAnalysisPbPb.cxx:77
 AliPtResolAnalysisPbPb.cxx:78
 AliPtResolAnalysisPbPb.cxx:79
 AliPtResolAnalysisPbPb.cxx:80
 AliPtResolAnalysisPbPb.cxx:81
 AliPtResolAnalysisPbPb.cxx:82
 AliPtResolAnalysisPbPb.cxx:83
 AliPtResolAnalysisPbPb.cxx:84
 AliPtResolAnalysisPbPb.cxx:85
 AliPtResolAnalysisPbPb.cxx:86
 AliPtResolAnalysisPbPb.cxx:87
 AliPtResolAnalysisPbPb.cxx:88
 AliPtResolAnalysisPbPb.cxx:89
 AliPtResolAnalysisPbPb.cxx:90
 AliPtResolAnalysisPbPb.cxx:91
 AliPtResolAnalysisPbPb.cxx:92
 AliPtResolAnalysisPbPb.cxx:93
 AliPtResolAnalysisPbPb.cxx:94
 AliPtResolAnalysisPbPb.cxx:95
 AliPtResolAnalysisPbPb.cxx:96
 AliPtResolAnalysisPbPb.cxx:97
 AliPtResolAnalysisPbPb.cxx:98
 AliPtResolAnalysisPbPb.cxx:99
 AliPtResolAnalysisPbPb.cxx:100
 AliPtResolAnalysisPbPb.cxx:101
 AliPtResolAnalysisPbPb.cxx:102
 AliPtResolAnalysisPbPb.cxx:103
 AliPtResolAnalysisPbPb.cxx:104
 AliPtResolAnalysisPbPb.cxx:105
 AliPtResolAnalysisPbPb.cxx:106
 AliPtResolAnalysisPbPb.cxx:107
 AliPtResolAnalysisPbPb.cxx:108
 AliPtResolAnalysisPbPb.cxx:109
 AliPtResolAnalysisPbPb.cxx:110
 AliPtResolAnalysisPbPb.cxx:111
 AliPtResolAnalysisPbPb.cxx:112
 AliPtResolAnalysisPbPb.cxx:113
 AliPtResolAnalysisPbPb.cxx:114
 AliPtResolAnalysisPbPb.cxx:115
 AliPtResolAnalysisPbPb.cxx:116
 AliPtResolAnalysisPbPb.cxx:117
 AliPtResolAnalysisPbPb.cxx:118
 AliPtResolAnalysisPbPb.cxx:119
 AliPtResolAnalysisPbPb.cxx:120
 AliPtResolAnalysisPbPb.cxx:121
 AliPtResolAnalysisPbPb.cxx:122
 AliPtResolAnalysisPbPb.cxx:123
 AliPtResolAnalysisPbPb.cxx:124
 AliPtResolAnalysisPbPb.cxx:125
 AliPtResolAnalysisPbPb.cxx:126
 AliPtResolAnalysisPbPb.cxx:127
 AliPtResolAnalysisPbPb.cxx:128
 AliPtResolAnalysisPbPb.cxx:129
 AliPtResolAnalysisPbPb.cxx:130
 AliPtResolAnalysisPbPb.cxx:131
 AliPtResolAnalysisPbPb.cxx:132
 AliPtResolAnalysisPbPb.cxx:133
 AliPtResolAnalysisPbPb.cxx:134
 AliPtResolAnalysisPbPb.cxx:135
 AliPtResolAnalysisPbPb.cxx:136
 AliPtResolAnalysisPbPb.cxx:137
 AliPtResolAnalysisPbPb.cxx:138
 AliPtResolAnalysisPbPb.cxx:139
 AliPtResolAnalysisPbPb.cxx:140
 AliPtResolAnalysisPbPb.cxx:141
 AliPtResolAnalysisPbPb.cxx:142
 AliPtResolAnalysisPbPb.cxx:143
 AliPtResolAnalysisPbPb.cxx:144
 AliPtResolAnalysisPbPb.cxx:145
 AliPtResolAnalysisPbPb.cxx:146
 AliPtResolAnalysisPbPb.cxx:147
 AliPtResolAnalysisPbPb.cxx:148
 AliPtResolAnalysisPbPb.cxx:149
 AliPtResolAnalysisPbPb.cxx:150
 AliPtResolAnalysisPbPb.cxx:151
 AliPtResolAnalysisPbPb.cxx:152
 AliPtResolAnalysisPbPb.cxx:153
 AliPtResolAnalysisPbPb.cxx:154
 AliPtResolAnalysisPbPb.cxx:155
 AliPtResolAnalysisPbPb.cxx:156
 AliPtResolAnalysisPbPb.cxx:157
 AliPtResolAnalysisPbPb.cxx:158
 AliPtResolAnalysisPbPb.cxx:159
 AliPtResolAnalysisPbPb.cxx:160
 AliPtResolAnalysisPbPb.cxx:161
 AliPtResolAnalysisPbPb.cxx:162
 AliPtResolAnalysisPbPb.cxx:163
 AliPtResolAnalysisPbPb.cxx:164
 AliPtResolAnalysisPbPb.cxx:165
 AliPtResolAnalysisPbPb.cxx:166
 AliPtResolAnalysisPbPb.cxx:167
 AliPtResolAnalysisPbPb.cxx:168
 AliPtResolAnalysisPbPb.cxx:169
 AliPtResolAnalysisPbPb.cxx:170
 AliPtResolAnalysisPbPb.cxx:171
 AliPtResolAnalysisPbPb.cxx:172
 AliPtResolAnalysisPbPb.cxx:173
 AliPtResolAnalysisPbPb.cxx:174
 AliPtResolAnalysisPbPb.cxx:175
 AliPtResolAnalysisPbPb.cxx:176
 AliPtResolAnalysisPbPb.cxx:177
 AliPtResolAnalysisPbPb.cxx:178
 AliPtResolAnalysisPbPb.cxx:179
 AliPtResolAnalysisPbPb.cxx:180
 AliPtResolAnalysisPbPb.cxx:181
 AliPtResolAnalysisPbPb.cxx:182
 AliPtResolAnalysisPbPb.cxx:183
 AliPtResolAnalysisPbPb.cxx:184
 AliPtResolAnalysisPbPb.cxx:185
 AliPtResolAnalysisPbPb.cxx:186
 AliPtResolAnalysisPbPb.cxx:187
 AliPtResolAnalysisPbPb.cxx:188
 AliPtResolAnalysisPbPb.cxx:189
 AliPtResolAnalysisPbPb.cxx:190
 AliPtResolAnalysisPbPb.cxx:191
 AliPtResolAnalysisPbPb.cxx:192
 AliPtResolAnalysisPbPb.cxx:193
 AliPtResolAnalysisPbPb.cxx:194
 AliPtResolAnalysisPbPb.cxx:195
 AliPtResolAnalysisPbPb.cxx:196
 AliPtResolAnalysisPbPb.cxx:197
 AliPtResolAnalysisPbPb.cxx:198
 AliPtResolAnalysisPbPb.cxx:199
 AliPtResolAnalysisPbPb.cxx:200
 AliPtResolAnalysisPbPb.cxx:201
 AliPtResolAnalysisPbPb.cxx:202
 AliPtResolAnalysisPbPb.cxx:203
 AliPtResolAnalysisPbPb.cxx:204
 AliPtResolAnalysisPbPb.cxx:205
 AliPtResolAnalysisPbPb.cxx:206
 AliPtResolAnalysisPbPb.cxx:207
 AliPtResolAnalysisPbPb.cxx:208
 AliPtResolAnalysisPbPb.cxx:209
 AliPtResolAnalysisPbPb.cxx:210
 AliPtResolAnalysisPbPb.cxx:211
 AliPtResolAnalysisPbPb.cxx:212
 AliPtResolAnalysisPbPb.cxx:213
 AliPtResolAnalysisPbPb.cxx:214
 AliPtResolAnalysisPbPb.cxx:215
 AliPtResolAnalysisPbPb.cxx:216
 AliPtResolAnalysisPbPb.cxx:217
 AliPtResolAnalysisPbPb.cxx:218
 AliPtResolAnalysisPbPb.cxx:219
 AliPtResolAnalysisPbPb.cxx:220
 AliPtResolAnalysisPbPb.cxx:221
 AliPtResolAnalysisPbPb.cxx:222
 AliPtResolAnalysisPbPb.cxx:223
 AliPtResolAnalysisPbPb.cxx:224
 AliPtResolAnalysisPbPb.cxx:225
 AliPtResolAnalysisPbPb.cxx:226
 AliPtResolAnalysisPbPb.cxx:227
 AliPtResolAnalysisPbPb.cxx:228
 AliPtResolAnalysisPbPb.cxx:229
 AliPtResolAnalysisPbPb.cxx:230
 AliPtResolAnalysisPbPb.cxx:231
 AliPtResolAnalysisPbPb.cxx:232
 AliPtResolAnalysisPbPb.cxx:233
 AliPtResolAnalysisPbPb.cxx:234
 AliPtResolAnalysisPbPb.cxx:235
 AliPtResolAnalysisPbPb.cxx:236
 AliPtResolAnalysisPbPb.cxx:237
 AliPtResolAnalysisPbPb.cxx:238
 AliPtResolAnalysisPbPb.cxx:239
 AliPtResolAnalysisPbPb.cxx:240
 AliPtResolAnalysisPbPb.cxx:241
 AliPtResolAnalysisPbPb.cxx:242
 AliPtResolAnalysisPbPb.cxx:243
 AliPtResolAnalysisPbPb.cxx:244
 AliPtResolAnalysisPbPb.cxx:245
 AliPtResolAnalysisPbPb.cxx:246
 AliPtResolAnalysisPbPb.cxx:247
 AliPtResolAnalysisPbPb.cxx:248
 AliPtResolAnalysisPbPb.cxx:249
 AliPtResolAnalysisPbPb.cxx:250
 AliPtResolAnalysisPbPb.cxx:251
 AliPtResolAnalysisPbPb.cxx:252
 AliPtResolAnalysisPbPb.cxx:253
 AliPtResolAnalysisPbPb.cxx:254
 AliPtResolAnalysisPbPb.cxx:255
 AliPtResolAnalysisPbPb.cxx:256
 AliPtResolAnalysisPbPb.cxx:257
 AliPtResolAnalysisPbPb.cxx:258
 AliPtResolAnalysisPbPb.cxx:259
 AliPtResolAnalysisPbPb.cxx:260
 AliPtResolAnalysisPbPb.cxx:261
 AliPtResolAnalysisPbPb.cxx:262
 AliPtResolAnalysisPbPb.cxx:263
 AliPtResolAnalysisPbPb.cxx:264
 AliPtResolAnalysisPbPb.cxx:265
 AliPtResolAnalysisPbPb.cxx:266
 AliPtResolAnalysisPbPb.cxx:267
 AliPtResolAnalysisPbPb.cxx:268
 AliPtResolAnalysisPbPb.cxx:269
 AliPtResolAnalysisPbPb.cxx:270
 AliPtResolAnalysisPbPb.cxx:271
 AliPtResolAnalysisPbPb.cxx:272
 AliPtResolAnalysisPbPb.cxx:273
 AliPtResolAnalysisPbPb.cxx:274
 AliPtResolAnalysisPbPb.cxx:275
 AliPtResolAnalysisPbPb.cxx:276
 AliPtResolAnalysisPbPb.cxx:277
 AliPtResolAnalysisPbPb.cxx:278
 AliPtResolAnalysisPbPb.cxx:279
 AliPtResolAnalysisPbPb.cxx:280
 AliPtResolAnalysisPbPb.cxx:281
 AliPtResolAnalysisPbPb.cxx:282
 AliPtResolAnalysisPbPb.cxx:283
 AliPtResolAnalysisPbPb.cxx:284
 AliPtResolAnalysisPbPb.cxx:285
 AliPtResolAnalysisPbPb.cxx:286
 AliPtResolAnalysisPbPb.cxx:287
 AliPtResolAnalysisPbPb.cxx:288
 AliPtResolAnalysisPbPb.cxx:289
 AliPtResolAnalysisPbPb.cxx:290
 AliPtResolAnalysisPbPb.cxx:291
 AliPtResolAnalysisPbPb.cxx:292
 AliPtResolAnalysisPbPb.cxx:293
 AliPtResolAnalysisPbPb.cxx:294
 AliPtResolAnalysisPbPb.cxx:295
 AliPtResolAnalysisPbPb.cxx:296
 AliPtResolAnalysisPbPb.cxx:297
 AliPtResolAnalysisPbPb.cxx:298
 AliPtResolAnalysisPbPb.cxx:299
 AliPtResolAnalysisPbPb.cxx:300
 AliPtResolAnalysisPbPb.cxx:301
 AliPtResolAnalysisPbPb.cxx:302
 AliPtResolAnalysisPbPb.cxx:303
 AliPtResolAnalysisPbPb.cxx:304
 AliPtResolAnalysisPbPb.cxx:305
 AliPtResolAnalysisPbPb.cxx:306
 AliPtResolAnalysisPbPb.cxx:307
 AliPtResolAnalysisPbPb.cxx:308
 AliPtResolAnalysisPbPb.cxx:309
 AliPtResolAnalysisPbPb.cxx:310
 AliPtResolAnalysisPbPb.cxx:311
 AliPtResolAnalysisPbPb.cxx:312
 AliPtResolAnalysisPbPb.cxx:313
 AliPtResolAnalysisPbPb.cxx:314
 AliPtResolAnalysisPbPb.cxx:315
 AliPtResolAnalysisPbPb.cxx:316
 AliPtResolAnalysisPbPb.cxx:317
 AliPtResolAnalysisPbPb.cxx:318
 AliPtResolAnalysisPbPb.cxx:319
 AliPtResolAnalysisPbPb.cxx:320
 AliPtResolAnalysisPbPb.cxx:321
 AliPtResolAnalysisPbPb.cxx:322
 AliPtResolAnalysisPbPb.cxx:323
 AliPtResolAnalysisPbPb.cxx:324
 AliPtResolAnalysisPbPb.cxx:325
 AliPtResolAnalysisPbPb.cxx:326
 AliPtResolAnalysisPbPb.cxx:327
 AliPtResolAnalysisPbPb.cxx:328
 AliPtResolAnalysisPbPb.cxx:329
 AliPtResolAnalysisPbPb.cxx:330
 AliPtResolAnalysisPbPb.cxx:331
 AliPtResolAnalysisPbPb.cxx:332
 AliPtResolAnalysisPbPb.cxx:333
 AliPtResolAnalysisPbPb.cxx:334
 AliPtResolAnalysisPbPb.cxx:335
 AliPtResolAnalysisPbPb.cxx:336
 AliPtResolAnalysisPbPb.cxx:337
 AliPtResolAnalysisPbPb.cxx:338
 AliPtResolAnalysisPbPb.cxx:339
 AliPtResolAnalysisPbPb.cxx:340
 AliPtResolAnalysisPbPb.cxx:341
 AliPtResolAnalysisPbPb.cxx:342
 AliPtResolAnalysisPbPb.cxx:343
 AliPtResolAnalysisPbPb.cxx:344
 AliPtResolAnalysisPbPb.cxx:345
 AliPtResolAnalysisPbPb.cxx:346
 AliPtResolAnalysisPbPb.cxx:347
 AliPtResolAnalysisPbPb.cxx:348
 AliPtResolAnalysisPbPb.cxx:349