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.                  *
 **************************************************************************/
//------------------------------------------------------------------------------
// Implementation of AliPerformancePtCalibMC class. It compares ESD, TPC track
// momenta with MC information to study charge/pt spectra.
// The output can be analysed with AliPerfAnalyzeInvPt via AliPerformancePtCalibMC::Analyse():
// Projection of charge/pt vs theta and vs phi resp. histoprams will be fitted with either
// polynomial or gaussian fit function to extract minimum position of charge/pt.
// Fit options and theta, phi bins can be set by user.
// Attention: use the Set functions of AliPerformancePtCalibMC when running
// AliPerformancePtCalibMC::Analyse()
// The result of the analysis (histograms/graphs) are stored in the folder which is
// a data member of AliPerformancePtCalibMC.
//
// Author: S.Schuchmann 11/13/2009 
//------------------------------------------------------------------------------

/*
 
// after running the performance task, read the file, and get component

TFile f("Output.root");
AliPerformancePtCalibMC *compObj = (AliPerformancePtCalibMC*)coutput->FindObject("AliPerformancePtCalibMC");
 
// set phi and theta bins for fitting and analyse comparison data
compObj->SetProjBinsTheta(thetaBins,nThetaBins,minPhi, maxPhi);
compObj->SetProjBinsPhi(phiBins,nPhiBins,minTheta,maxTheta);
compObj->SetMakeFitOption(kFALSE,exclRange,fitRange);
compObj->SetDoRebin(rebin);
//compObj->SetAnaMCOff();
compObj->Analyse();
//details see functions of this class

// the output histograms/graphs will be stored in the folder "folderRes" 
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_InvPt.root","recreate");
compObj->Write(); // compObj->GetAnalysisFolder()->Write();
fout.Close();

*/


#include "TH1F.h"
#include "TH2F.h"
#include "THnSparse.h"
#include "TList.h"
#include "TMath.h"
#include "TFolder.h"

#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliESDfriendTrack.h"
#include "AliESDfriend.h"

#include "AliPerformancePtCalibMC.h"
#include "AliPerfAnalyzeInvPt.h"


using namespace std;

ClassImp(AliPerformancePtCalibMC)

//________________________________________________________________________
AliPerformancePtCalibMC::AliPerformancePtCalibMC(const char *name, const char *title):
   AliPerformanceObject(name,title),
   // option parameter for AliPerformancePtCalibMC::Analyse()
   fNThetaBins(0), 
   fNPhiBins(0),
   fMaxPhi(0),
   fMinPhi(0),
   fMaxTheta(0),
   fMinTheta(0),
   fRange(0),
   fExclRange(0),
   fFitGaus(0) ,
   fDoRebin(0),
   fRebin(0),
   fAnaMC(0),
   // option parameter for user defined charge/pt shift
   fShift(0),
   fDeltaInvP(0),
   //options for cuts
   fOptTPC(0),
   fESDcuts(0),
   fPions(0),
   fEtaAcceptance(0),
   fCutsRC(0),
   fCutsMC(0),
   fList(0),
          
   // histograms
   fHistInvPtPtThetaPhi(0),
   fHistPtShift0(0),
   fHistPrimaryVertexPosX(0),
   fHistPrimaryVertexPosY(0),
   fHistPrimaryVertexPosZ(0),
   fHistTrackMultiplicity(0),
   fHistTrackMultiplicityCuts(0),
   fHistTPCMomentaPosP(0),
   fHistTPCMomentaNegP(0),
   fHistTPCMomentaPosPt(0),
   fHistTPCMomentaNegPt(0),
   fHistInvPtPtThetaPhiMC(0),
   fHistInvPtMCESD(0),
   fHistInvPtMCTPC(0),
   fHistPtMCESD(0),
   fHistPtMCTPC(0),
   fHistMomresMCESD(0),
   fHistMomresMCTPC(0),
   fHistTPCMomentaPosInvPtMC(0),
   fHistTPCMomentaNegInvPtMC(0),
   fHistTPCMomentaPosPtMC(0),
   fHistTPCMomentaNegPtMC(0),
   fHistESDMomentaPosInvPtMC(0),
   fHistESDMomentaNegInvPtMC(0),
   fHistESDMomentaPosPtMC(0), 
   fHistESDMomentaNegPtMC(0),
   fHistUserPtShift(0),
   fHistdedxPions(0),
   //esd track cuts
   fESDTrackCuts(0),
   // analysis folder 
   fAnalysisFolder(0)
{
   // Dummy constructor
   
   
   fShift = kFALSE;                       // shift in charge/pt yes/no
   fDeltaInvP = 0.00;                     // shift value
   //options for cuts

   fOptTPC =  kTRUE;                      // read TPC tracks yes/no
   fESDcuts = kFALSE;
   fPions = kFALSE;
   fCutsRC = NULL;
   fCutsMC = NULL;

   fEtaAcceptance = 0.8;
   
   // options for function AliPerformancePtCalibMC::Analyse()
   fFitGaus = kFALSE;// use gaussian function for fitting charge/pt yes/no
   fNThetaBins = 0; //number of theta bins
   fNPhiBins = 0; //number of phi bins
   fMaxPhi = 6.5;// max phi for 2D projection on theta and charge/pt axis
   fMinPhi = 0.0;// min phi for 2D projection on theta and charge/pt axis
   fMaxTheta = 3.0;// max theta for 2D projection on phi and charge/pt axis
   fMinTheta = 0.0;// min theta for 2D projection on phi and charge/pt axis
   fRange = 0; //fit range around 0
   fExclRange =0; //range of rejection of points around 0
   fAnaMC = kTRUE; // analyse MC tracks yes/no
   fDoRebin = kFALSE;// flag for rebin
   fRebin = 0;// bins for rebin
   
   for (Int_t i=0; i<100; i++){ 
     fThetaBins[i] =  0;
     fPhiBins[i] =  0;
   }

   Init();
}

//________________________________________________________________________
AliPerformancePtCalibMC::~AliPerformancePtCalibMC() { 
   //
   // destructor
   //

   if(fList) delete fList;
   // histograms
   if(fHistInvPtPtThetaPhi)       delete fHistInvPtPtThetaPhi;fHistInvPtPtThetaPhi=0;
   if(fHistPtShift0)              delete fHistPtShift0;fHistPtShift0=0; 
   if(fHistPrimaryVertexPosX)     delete fHistPrimaryVertexPosX;fHistPrimaryVertexPosX=0; 
   if(fHistPrimaryVertexPosY)     delete fHistPrimaryVertexPosY;fHistPrimaryVertexPosY=0; 
   if(fHistPrimaryVertexPosZ)     delete fHistPrimaryVertexPosZ;fHistPrimaryVertexPosZ=0; 
   if(fHistTrackMultiplicity)     delete fHistTrackMultiplicity;fHistTrackMultiplicity=0; 
   if(fHistTrackMultiplicityCuts) delete fHistTrackMultiplicityCuts;fHistTrackMultiplicityCuts=0; 

   if(fHistTPCMomentaPosP)    delete fHistTPCMomentaPosP;fHistTPCMomentaPosP=0; 
   if(fHistTPCMomentaNegP)    delete fHistTPCMomentaNegP;fHistTPCMomentaNegP=0; 
   if(fHistTPCMomentaPosPt)   delete fHistTPCMomentaPosPt;fHistTPCMomentaPosPt=0; 
   if(fHistTPCMomentaNegPt)   delete fHistTPCMomentaNegPt ;fHistTPCMomentaNegPt=0; 
   if(fHistUserPtShift)       delete fHistUserPtShift;fHistUserPtShift=0;
   if(fHistInvPtPtThetaPhiMC) delete fHistInvPtPtThetaPhiMC;fHistInvPtPtThetaPhiMC=0;
   if(fHistInvPtMCESD)  delete fHistInvPtMCESD;fHistInvPtMCESD=0;
   if(fHistInvPtMCTPC)  delete fHistInvPtMCTPC;fHistInvPtMCTPC=0;
   if(fHistPtMCESD)     delete fHistPtMCESD;fHistPtMCESD=0;
   if(fHistPtMCTPC)     delete fHistPtMCTPC;fHistPtMCTPC=0;
   if(fHistMomresMCESD) delete fHistMomresMCESD;fHistMomresMCESD=0;
   if(fHistMomresMCTPC) delete fHistMomresMCTPC;fHistMomresMCTPC=0;
   if(fHistTPCMomentaPosInvPtMC) delete fHistTPCMomentaPosInvPtMC;fHistTPCMomentaPosInvPtMC=0;
   if(fHistTPCMomentaNegInvPtMC) delete fHistTPCMomentaNegInvPtMC;fHistTPCMomentaNegInvPtMC=0;
   if(fHistTPCMomentaPosPtMC)    delete fHistTPCMomentaPosPtMC;fHistTPCMomentaPosPtMC=0;
   if(fHistTPCMomentaNegPtMC)    delete fHistTPCMomentaNegPtMC;fHistTPCMomentaNegPtMC=0;
   if(fHistESDMomentaPosInvPtMC) delete fHistESDMomentaPosInvPtMC;fHistESDMomentaPosInvPtMC=0;
   if(fHistESDMomentaNegInvPtMC) delete fHistESDMomentaNegInvPtMC;fHistESDMomentaNegInvPtMC=0;
   if(fHistESDMomentaPosPtMC)    delete fHistESDMomentaPosPtMC;fHistESDMomentaPosPtMC=0;
   if(fHistESDMomentaNegPtMC)    delete fHistESDMomentaNegPtMC;fHistESDMomentaNegPtMC=0;
   if(fHistdedxPions)    delete fHistdedxPions;fHistdedxPions=0;

   
   //esd track cuts
   if(fESDTrackCuts)   delete fESDTrackCuts;
   if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;


   
}

//________________________________________________________________________
void AliPerformancePtCalibMC::Init() 
{
   // Create histograms
   // Called once
   
   fList = new TList();
 
   // init folder
   fAnalysisFolder = CreateFolder("folderPt_TPC","Analysis Pt Resolution Folder");
  
   // Primary Vertex:
   fHistPrimaryVertexPosX       = new TH1F("fHistPrimaryVertexPosX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
   fList->Add(fHistPrimaryVertexPosX);
   fHistPrimaryVertexPosY       = new TH1F("fHistPrimaryVertexPosY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
   fList->Add(fHistPrimaryVertexPosY);
   fHistPrimaryVertexPosZ       = new TH1F("fHistPrimaryVertexPosZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-2.0,2.0);
   fList->Add(fHistPrimaryVertexPosZ);
  
   // Multiplicity:
   fHistTrackMultiplicity     = new TH1F("fHistTrackMultiplicity", "Multiplicity distribution;Number of tracks;Events", 250, 0, 250);
   fList->Add(fHistTrackMultiplicity);
   fHistTrackMultiplicityCuts = new TH1F("fHistTrackMultiplicityCuts", "Multiplicity distribution;Number of tracks after cuts;Events", 250, 0, 250);
   fList->Add(fHistTrackMultiplicityCuts);
  
   // momentum histos
   fHistPtShift0   = new TH1F("fHistPtShift0","1/pt dN/pt vs. pt of ESD track  ",800,-20.0,20.0);
   fList->Add(fHistPtShift0);
   const   Int_t invPtDims = 4;
   fMaxPhi=6.52;
   fMinPhi=0.0;
   fMaxTheta=3.0;
   fMinTheta=0.0;
   Double_t xminInvPt[invPtDims] = {-4.5,-20.0,fMinTheta,fMinPhi};
   Double_t xmaxInvPt[invPtDims] = {4.5,20.0,fMaxTheta,fMaxPhi};
   Int_t  binsInvPt[invPtDims] = {450,400,150,163};
   
   fHistInvPtPtThetaPhi = new THnSparseF("fHistInvPtPtThetaPhi","1/pt vs pt vs #theta vs #phi ",invPtDims,binsInvPt,xminInvPt,xmaxInvPt);
   fList->Add(fHistInvPtPtThetaPhi);

   // momentum test histos
   fHistTPCMomentaPosP  =  new TH2F("fHistTPCMomentaPosP","TPC p vs global esd track p pos",300,0.0,15.0,300,0.0,15.0);
   fList->Add(fHistTPCMomentaPosP);
   fHistTPCMomentaNegP  =  new TH2F("fHistTPCMomentaNegP","TPC p vs global esd track p neg",300,0.0,15.0,300,0.0,15.0);
   fList->Add(fHistTPCMomentaNegP);
   fHistTPCMomentaPosPt =  new TH2F("fHistTPCMomentaPosPt","TPC pt vs global esd track pt pos",300,0.0,15.0,300,0.0,15.0);
   fList->Add(fHistTPCMomentaPosPt);
   fHistTPCMomentaNegPt =  new TH2F("fHistTPCMomentaNegPt","TPC pt vs global esd track pt neg",300,0.0,15.0,300,0.0,15.0);
   fList->Add(fHistTPCMomentaNegPt);
   
   // momentum test histos MC
   fHistTPCMomentaPosInvPtMC = new TH2F("fHistTPCMomentaPosInvPtMC","TPC-MC of 1/pt vs global ESD-MC of 1/pt pos",250, -5.0, 5.0,250, -5.0,5.0);
   fList->Add(fHistTPCMomentaPosInvPtMC);
   fHistTPCMomentaNegInvPtMC = new TH2F("fHistTPCMomentaNegInvPtMC","TPC-MC of 1/pt vs global ESD-MC 1/pt neg",250, -5.0, 5.0,250, -5.0, 5.0);
   fList->Add(fHistTPCMomentaNegInvPtMC);
   fHistTPCMomentaPosPtMC    = new TH2F("fHistTPCMomentaPosPtMC","(TPC-MC)/MC^2  of pt vs global (ESD-MC)/MC^2 of pt pos",200,-2.0,2.0,200,-2.0,2.0);
   fList->Add(fHistTPCMomentaPosPtMC);
   fHistTPCMomentaNegPtMC    = new TH2F("fHistTPCMomentaNegPtMC","(TPC-MC/)MC^2  of pt vs global (ESD-MC)/MC^2  of pt neg",200,-2.0,2.0,200,-2.0,2.0);
   fList->Add(fHistTPCMomentaNegPtMC);
   fHistESDMomentaPosInvPtMC = new TH1F("fHistESDMomentaPosInvPtMC","ESD-MC of 1/pt pos ",200, -2.0, 2.0);
   fList->Add(fHistESDMomentaPosInvPtMC);
   fHistESDMomentaNegInvPtMC = new TH1F("fHistESDMomentaNegInvPtMC","ESD-MC of 1/pt neg",200, -2.0, 2.0);
   fList->Add(fHistESDMomentaNegInvPtMC);
   fHistESDMomentaPosPtMC    = new TH1F("fHistESDMomentaPosPtMC","(ESD-MC)/MC^2 of pt pos",200,-2.0,2.0);
   fList->Add(fHistESDMomentaPosPtMC);
   fHistESDMomentaNegPtMC    = new TH1F("fHistESDMomentaNegPtMC","(ESD-MC)/MC^2 of pt neg",200,-2.0,2.0);
   fList->Add(fHistESDMomentaNegPtMC);

   // MC only info
   fHistInvPtPtThetaPhiMC = new THnSparseF("fHistInvPtPtThetaPhiMC","MC 1/pt vs pt vs #theta vs #phi ",invPtDims,binsInvPt,xminInvPt,xmaxInvPt);
   fList->Add(fHistInvPtPtThetaPhiMC);

 
   //correlation histos MC ESD or TPC
   fHistInvPtMCESD  = new TH2F("fHistInvPtMCESD","inv pt ESD vs MC",450, -4.5, 4.5,450, -4.5, 4.5);
   fList->Add(fHistInvPtMCESD);
   fHistPtMCESD     = new TH2F("fHistPtMCESD"," pt ESD vs MC",500, 0.0, 50.0,500, 0.0, 50.0);
   fList->Add(fHistPtMCESD);
   fHistInvPtMCTPC  = new TH2F("fHistInvPtMCTPC","inv pt TPC vs MC",450, -4.5, 4.5,450, -4.5, 4.5);
   fList->Add(fHistInvPtMCTPC);
   fHistPtMCTPC     = new TH2F("fHistPtMCTPC"," pt TPC vs MC",500, 0.0, 50.0,500, 0.0,50.0);
   fList->Add(fHistPtMCTPC);
   fHistMomresMCESD = new TH2F("fHistMomresMCESD"," (pt ESD - pt MC)/ptMC vs pt MC",500, 0.0, 50.0,200, -2.0, 2.0);
   fList->Add(fHistMomresMCESD); 
   fHistMomresMCTPC = new TH2F("fHistMomresMCTPC"," (pt TPC - pt MC)/ptMC vs pt MC",500, 0.0, 50.0,200, -2.0, 2.0);
   fList->Add(fHistMomresMCTPC);


   //user pt shift check
   fHistUserPtShift = new TH1F("fHistUserPtShift","user defined shift in 1/pt",100,-0.5,1.5);
   fList->Add(fHistUserPtShift);
   // pid
   fHistdedxPions = new TH2F ("fHistdedxPions","dEdx of pions ident. via PDG code vs signed Pt",300,-15.05,15.05,200,0.0,400.0);
   fList->Add(fHistdedxPions);

   // esd track cuts  
   fESDTrackCuts =NULL;
   
  
}

//________________________________________________________________________
void AliPerformancePtCalibMC::SetPtShift(const Double_t shiftVal ) {

   //set user defined shift in charge/pt
   
   if(shiftVal) { fShift=kTRUE; fDeltaInvP = shiftVal; } 
}

//________________________________________________________________________
void AliPerformancePtCalibMC::Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const /*esdFriend*/, const Bool_t /*bUseMC*/, const Bool_t /*bUseESDfriend*/)
{
   //exec: read MC and esd or tpc tracks
   
   AliStack* stack = NULL;
 
   if (!esdEvent) {
      Printf("ERROR: Event not available");
      return;
   }

 
   fHistTrackMultiplicity->Fill(esdEvent->GetNumberOfTracks());

   if (!mcEvent) {
      Printf("ERROR: Could not retrieve MC event");
      return;
   }    
   stack = mcEvent->Stack();
   if (!stack) {
      Printf("ERROR: Could not retrieve stack");
      return;
   }

   
   //vertex info for cut
   //const AliESDVertex *vtx = esdEvent->GetPrimaryVertex();
   //if (!vtx->GetStatus()) return ;
     
   if(fShift) fHistUserPtShift->Fill(fDeltaInvP);
  
   // read primary vertex info
   Double_t tPrimaryVtxPosition[3];
   // Double_t tPrimaryVtxCov[3];
   const AliESDVertex *primaryVtx = esdEvent->GetPrimaryVertexTPC();
 
   tPrimaryVtxPosition[0] = primaryVtx->GetX();
   tPrimaryVtxPosition[1] = primaryVtx->GetY();
   tPrimaryVtxPosition[2] = primaryVtx->GetZ();
  
   fHistPrimaryVertexPosX->Fill(tPrimaryVtxPosition[0]);
   fHistPrimaryVertexPosY->Fill(tPrimaryVtxPosition[1]);
   fHistPrimaryVertexPosZ->Fill(tPrimaryVtxPosition[2]);
 

   //fill histos for pt spectra and shift of transverse momentum
   Int_t count=0;
 
   for(Int_t j = 0;j<esdEvent->GetNumberOfTracks();j++){
      AliESDtrack *esdTrack = esdEvent->GetTrack(j);
      if(!esdTrack) continue;

      //esd track cuts
      if(fESDcuts){
	 if(!fESDTrackCuts->AcceptTrack(esdTrack)) continue;
      }
      
      // get MC info 
      Int_t esdLabel = esdTrack->GetLabel();
      if(esdLabel<0) continue;	
      TParticle *  partMC = stack->Particle(esdLabel);
      if (!partMC) continue;
  
      // fill correlation histos MC ESD
      Double_t pESD  = esdTrack->GetP();
      Double_t ptESD = esdTrack->GetSignedPt();
    
      if(!ptESD || !(partMC->Pt()) ) continue;
      Double_t mcPt = partMC->Pt();
      Double_t invPtMC = 1.0/mcPt;
      Int_t signMC = partMC->GetPdgCode();
      
      //pid
      if(fPions && !(fabs(signMC)-211<0.001)) continue;// pions only
      
      //MC only
      if(signMC>0) signMC = 1; 
      else signMC = -1;

      //fill MC information
      Double_t thetaMC = partMC->Theta();
      Double_t phiMC = partMC->Phi();
      
      Double_t momAngMC[4] = {signMC*(fabs(invPtMC)),signMC*(fabs(mcPt)),thetaMC,phiMC};

      // fill only if MC track is in eta acceptance of TPC in order to be compareable to TPC tracks
      if(fabs( partMC->Eta())< fEtaAcceptance) {
	 fHistInvPtPtThetaPhiMC->Fill(momAngMC);
	 
	 //correlation histos MC ESD
	 fHistInvPtMCESD->Fill(signMC*(fabs(invPtMC)),1.0/ptESD);
	 fHistPtMCESD->Fill(fabs(mcPt),fabs(ptESD));
      }
      
      // fill histos TPC or ESD
      if(fOptTPC){
	 //TPC tracks and MC tracks
	 const AliExternalTrackParam *tpcTrack = esdTrack->GetTPCInnerParam(); 
	 if(!tpcTrack) continue;
	 if(fabs(tpcTrack->Eta())>=  fEtaAcceptance) continue;
      
	 Double_t signedPt = tpcTrack->GetSignedPt();
	 Double_t invPt = 0.0;
	 if(signedPt) {
	    invPt = 1.0/signedPt;
	
	    fHistPtShift0->Fill(signedPt);//changed

	    if(fShift){Printf("user shift of momentum SET to non zero value!");
	       invPt += fDeltaInvP; //shift momentum for tests
	       if(invPt) signedPt = 1.0/invPt;
	       else continue;
	    }


	    Double_t theta = tpcTrack->Theta();
	    Double_t phi = tpcTrack->Phi();

	    Double_t momAng[4] = {invPt,signedPt,theta,phi};
	    fHistInvPtPtThetaPhi->Fill(momAng);

	    //correlation histos MC TPC
	    fHistInvPtMCTPC->Fill(signMC*(fabs(invPtMC)),invPt);
	    fHistPtMCTPC->Fill(fabs(mcPt),fabs(signedPt));
	
	    //compare to MC info
	    Double_t  ptDiffESD = (fabs(ptESD)-fabs(mcPt))/pow(mcPt,2);
	    Double_t  ptDiffTPC = (fabs(signedPt)-fabs(mcPt))/pow(mcPt,2);
	    Double_t  invPtDiffESD = fabs(1.0/ptESD)-1.0/fabs(mcPt);
	    Double_t  invPtDiffTPC = fabs(invPt)-1.0/fabs(mcPt);
	    Double_t  pTPC  = tpcTrack->GetP();
		  
	    if(esdTrack->GetSign()>0){//compare momenta ESD track and TPC track
	       fHistTPCMomentaPosP->Fill(fabs(pESD),fabs(pTPC));
	       fHistTPCMomentaPosPt->Fill(fabs(ptESD),fabs(signedPt));
	       fHistTPCMomentaPosInvPtMC->Fill(invPtDiffESD,invPtDiffTPC);
	       fHistTPCMomentaPosPtMC->Fill(ptDiffESD,ptDiffTPC);
	    }
	    else{
	       fHistTPCMomentaNegP->Fill(fabs(pESD),fabs(pTPC));
	       fHistTPCMomentaNegPt->Fill(fabs(ptESD),fabs(signedPt));
	       fHistTPCMomentaNegInvPtMC->Fill(invPtDiffESD,invPtDiffTPC);
	       fHistTPCMomentaNegPtMC->Fill(ptDiffESD,ptDiffTPC);
	    }
	    fHistdedxPions->Fill(signedPt,esdTrack->GetTPCsignal());
	    fHistMomresMCESD->Fill(fabs(mcPt),(fabs(ptESD)-fabs(mcPt))/fabs(mcPt));
	    fHistMomresMCTPC->Fill(fabs(mcPt),(fabs(signedPt)-fabs(mcPt))/fabs(mcPt));
	    count++;
	 }
	 else continue;
      }
   
 else{
    // ESD tracks and MC tracks
    if(fabs(esdTrack->Eta())>= fEtaAcceptance) continue;
    Double_t invPt = 0.0;
      
    if(ptESD) {
       invPt = 1.0/ptESD; 
       fHistPtShift0->Fill(ptESD);
	
       if(fShift){Printf("user shift of momentum SET to non zero value!");
	  invPt += fDeltaInvP; //shift momentum for tests
	  if(invPt) ptESD = 1.0/invPt; 
	  else continue;
       }

       Double_t theta = esdTrack->Theta();
       Double_t phi = esdTrack->Phi();

       Double_t momAng[4] = {invPt,ptESD,theta,phi};
       fHistInvPtPtThetaPhi->Fill(momAng);

       //differences MC ESD tracks
       Double_t ptDiffESD = (fabs(ptESD)-fabs(mcPt))/pow(mcPt,2);
       Double_t invPtdiffESD = fabs(1.0/ptESD)-1.0/fabs(mcPt);
       if(esdTrack->GetSign()>0){   
	  fHistESDMomentaPosInvPtMC->Fill(invPtdiffESD);
	  fHistESDMomentaPosPtMC->Fill(ptDiffESD);
       }
       else{
	  fHistESDMomentaNegInvPtMC->Fill(invPtdiffESD);
	  fHistESDMomentaNegPtMC->Fill(ptDiffESD);
       }	
       fHistdedxPions->Fill(ptESD,esdTrack->GetTPCsignal());
       fHistMomresMCESD->Fill(fabs(mcPt),(fabs(ptESD)-fabs(mcPt))/fabs(mcPt));
       count++;
    }
 }
}
    
fHistTrackMultiplicityCuts->Fill(count);
  
}    

//______________________________________________________________________________________________________________________

void AliPerformancePtCalibMC::Analyse()
{
  
   // analyse charge/pt spectra in bins of theta and phi. Bins can be set by user
   
 
   THnSparseF *copyTHnSparseTheta;
   THnSparseF *copyTHnSparsePhi;
   
   if(fAnaMC){
      Printf("AliPerformancePtCalibMC::Analyse: analysing MC!");
      copyTHnSparseTheta = (THnSparseF*)fHistInvPtPtThetaPhiMC->Clone("copyTHnSparseThetaMC");
      copyTHnSparsePhi   = (THnSparseF*)fHistInvPtPtThetaPhiMC->Clone("copyTHnSparsePhiMC");
   }
   else {
      Printf("AliPerformancePtCalibMC::Analyse: analysing ESD (reco)!");
      copyTHnSparseTheta = (THnSparseF*)fHistInvPtPtThetaPhi->Clone("copyTHnSparseTheta");
      copyTHnSparsePhi   = (THnSparseF*)fHistInvPtPtThetaPhi->Clone("copyTHnSparsePhi");
   }
   
   copyTHnSparseTheta->GetAxis(3)->SetRangeUser(fMinPhi,fMaxPhi);
   copyTHnSparsePhi->GetAxis(2)->SetRangeUser(fMinTheta,fMaxTheta);

   TH2F *histInvPtTheta = (TH2F*)copyTHnSparseTheta->Projection(2,0);
   TH2F *histInvPtPhi   = (TH2F*)copyTHnSparsePhi->Projection(3,0);
   
   AliPerfAnalyzeInvPt *ana = new  AliPerfAnalyzeInvPt("AliPerfAnalyzeInvPt","AliPerfAnalyzeInvPt");
   if(!ana) return;
  
   TH1::AddDirectory(kFALSE);
 
   ana->SetProjBinsTheta(fThetaBins,fNThetaBins);
   ana->SetProjBinsPhi(fPhiBins,fNPhiBins);
   ana->SetMakeFitOption(fFitGaus,fExclRange,fRange);
   if(fDoRebin) ana->SetDoRebin(fRebin);
   TObjArray *aFolderObj = new TObjArray;
   if(!aFolderObj) return;

   ana->StartAnalysis(histInvPtTheta,histInvPtPhi, aFolderObj);

   // export objects to analysis folder
   fAnalysisFolder = ExportToFolder(aFolderObj);

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

//______________________________________________________________________________________________________________________
TFolder* AliPerformancePtCalibMC::ExportToFolder(TObjArray * array) 
{
   // recreate folder avery time and export objects to new one
   //
   AliPerformancePtCalibMC * 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;
}

//______________________________________________________________________________________________________________________
Long64_t AliPerformancePtCalibMC::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;

   // collection of generated histograms
   Int_t count=0;
   while((obj = iter->Next()) != 0) 
      {
	 AliPerformancePtCalibMC* entry = dynamic_cast<AliPerformancePtCalibMC*>(obj);
	 if (!entry) continue; 
	 fHistInvPtPtThetaPhi->Add(entry->fHistInvPtPtThetaPhi);

	 fHistInvPtPtThetaPhiMC->Add(entry->fHistInvPtPtThetaPhiMC);

	 fHistInvPtMCESD->Add(entry->fHistInvPtMCESD);
	 fHistPtMCESD->Add(entry->fHistPtMCESD);
	 fHistInvPtMCTPC->Add(entry->fHistInvPtMCTPC);
	 fHistPtMCTPC->Add(entry->fHistPtMCTPC);
	 fHistMomresMCESD->Add(entry->fHistMomresMCESD);
	 fHistMomresMCTPC->Add(entry->fHistMomresMCTPC);

	 fHistPtShift0->Add(entry->fHistPtShift0);
	 fHistPrimaryVertexPosX->Add(entry->fHistPrimaryVertexPosX);
	 fHistPrimaryVertexPosY->Add(entry->fHistPrimaryVertexPosY);
	 fHistPrimaryVertexPosZ->Add(entry->fHistPrimaryVertexPosZ);
	 fHistTrackMultiplicity->Add(entry->fHistTrackMultiplicity);
	 fHistTrackMultiplicityCuts->Add(entry->fHistTrackMultiplicityCuts);
      
	 fHistTPCMomentaPosP->Add(entry->fHistTPCMomentaPosP);
	 fHistTPCMomentaNegP->Add(entry->fHistTPCMomentaNegP);
	 fHistTPCMomentaPosPt->Add(entry->fHistTPCMomentaPosPt);
	 fHistTPCMomentaNegPt->Add(entry->fHistTPCMomentaNegPt);
	 fHistTPCMomentaPosInvPtMC->Add(entry->fHistTPCMomentaPosInvPtMC);
	 fHistTPCMomentaNegInvPtMC->Add(entry->fHistTPCMomentaNegInvPtMC);
	 fHistTPCMomentaPosPtMC->Add(entry->fHistTPCMomentaPosPtMC);
	 fHistTPCMomentaNegPtMC->Add(entry->fHistTPCMomentaNegPtMC);
	 fHistESDMomentaPosInvPtMC->Add(entry->fHistESDMomentaPosInvPtMC);
	 fHistESDMomentaNegInvPtMC->Add(entry->fHistESDMomentaNegInvPtMC);
	 fHistESDMomentaPosPtMC->Add(entry->fHistESDMomentaPosPtMC);
	 fHistESDMomentaNegPtMC->Add(entry->fHistESDMomentaNegPtMC);
	 fHistdedxPions->Add(entry->fHistdedxPions);
	 count++;
      }
  
   return count;
}

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

   return folder;
}


// set variables for Analyse()
//______________________________________________________________________________________________________________________
void AliPerformancePtCalibMC::SetProjBinsPhi(const Double_t *phiBinArray,const Int_t nphBins, const  Double_t minTheta, const  Double_t maxTheta){
   // set phi bins for Analyse()
   // set phi bins as array and set number of this array which is equal to number of bins analysed
   // the last analysed bin will always be the projection from first to last bin in the array
   if(nphBins){
      fNPhiBins = nphBins;
  
      for(Int_t k = 0;k<fNPhiBins;k++){
	 fPhiBins[k] = phiBinArray[k];
      }
      Printf("AliPerformancePtCalibMC::SetProjBinsPhi: number of bins in phi set to %i",fNPhiBins);
   }
   else  Printf("Warning AliPerformancePtCalibMC::SetProjBinsPhi: number of bins in phi NOT set!!! Default values are taken.");

   if(fabs(minTheta-maxTheta)<0.001){
      Printf("AliPerformancePtCalibMC::SetProjBinsPhi: theta range for projection for projection on phi and charge/pt is too small. whole range of theta selected.");
   }
   else{
      Printf("AliPerformancePtCalibMC::SetProjBinsPhi: theta range for projection on phi and charge/pt is selected by user: %1.3f - %1.3f rad",minTheta,maxTheta);
      fMinTheta = minTheta;
      fMaxTheta = maxTheta;
   }
}
//____________________________________________________________________________________________________________________________________________
void AliPerformancePtCalibMC::SetProjBinsTheta(const Double_t *thetaBinArray, const Int_t nthBins, const Double_t minPhi, const Double_t maxPhi){
   // set theta bins for Analyse()
   // set theta bins as array and set number of this array which is equal to number of bins analysed
   // the last analysed bin will always be the projection from first to last bin in the array
   if(nthBins){
      fNThetaBins = nthBins;
      for(Int_t k = 0;k<fNThetaBins;k++){
	 fThetaBins[k] = thetaBinArray[k];
      }
      Printf("AliPerformancePtCalibMC::SetProjBinsTheta: number of bins in theta set to %i",fNThetaBins);
   }
   else  Printf("Warning AliPerformancePtCalibMC::SetProjBinsTheta: number of bins in theta NOT set!!! Default values are taken.");
   
   if(fabs(minPhi-maxPhi)<0.001){
      Printf("AliPerformancePtCalibMC::SetProjBinsTheta: phi range for projection for projection on theta and charge/pt is too small. whole range of phi selected.");
   }
   else{
      Printf("AliPerformancePtCalibMC::SetProjBinsTheta: phi range for projection on theta and charge/pt is selected by user: %1.3f - %1.3f rad",minPhi,maxPhi);
      fMinPhi = minPhi;
      fMaxPhi = maxPhi;
   }
}

//____________________________________________________________________________________________________________________________________________
void AliPerformancePtCalibMC::SetMakeFitOption(const Bool_t setGausFit, const Double_t exclusionR,const Double_t fitR ){

   // set the fit options:
   // for usage of gaussian function instead of polynomial (default) set setGausFit=kTRUE
   // set the range of rejection of points around 0 via exclusionR
   // set the fit range around 0 with fitR
   
   fFitGaus = setGausFit;
   fExclRange  = exclusionR;
   fRange = fitR;
  
   if(fFitGaus) Printf("AliPerformancePtCalibMC::SetMakeFitOption: set MakeGausFit with fit range %2.3f and exclusion range in fabs(1/pt): %2.3f",fRange,fExclRange);
   else  Printf("AliPerformancePtCalibMC::SetMakeFitOption: set standard polynomial fit with fit range %2.3f and exclusion range in fabs(1/pt): %2.3f",fRange,fExclRange);
 
}
 AliPerformancePtCalibMC.cxx:1
 AliPerformancePtCalibMC.cxx:2
 AliPerformancePtCalibMC.cxx:3
 AliPerformancePtCalibMC.cxx:4
 AliPerformancePtCalibMC.cxx:5
 AliPerformancePtCalibMC.cxx:6
 AliPerformancePtCalibMC.cxx:7
 AliPerformancePtCalibMC.cxx:8
 AliPerformancePtCalibMC.cxx:9
 AliPerformancePtCalibMC.cxx:10
 AliPerformancePtCalibMC.cxx:11
 AliPerformancePtCalibMC.cxx:12
 AliPerformancePtCalibMC.cxx:13
 AliPerformancePtCalibMC.cxx:14
 AliPerformancePtCalibMC.cxx:15
 AliPerformancePtCalibMC.cxx:16
 AliPerformancePtCalibMC.cxx:17
 AliPerformancePtCalibMC.cxx:18
 AliPerformancePtCalibMC.cxx:19
 AliPerformancePtCalibMC.cxx:20
 AliPerformancePtCalibMC.cxx:21
 AliPerformancePtCalibMC.cxx:22
 AliPerformancePtCalibMC.cxx:23
 AliPerformancePtCalibMC.cxx:24
 AliPerformancePtCalibMC.cxx:25
 AliPerformancePtCalibMC.cxx:26
 AliPerformancePtCalibMC.cxx:27
 AliPerformancePtCalibMC.cxx:28
 AliPerformancePtCalibMC.cxx:29
 AliPerformancePtCalibMC.cxx:30
 AliPerformancePtCalibMC.cxx:31
 AliPerformancePtCalibMC.cxx:32
 AliPerformancePtCalibMC.cxx:33
 AliPerformancePtCalibMC.cxx:34
 AliPerformancePtCalibMC.cxx:35
 AliPerformancePtCalibMC.cxx:36
 AliPerformancePtCalibMC.cxx:37
 AliPerformancePtCalibMC.cxx:38
 AliPerformancePtCalibMC.cxx:39
 AliPerformancePtCalibMC.cxx:40
 AliPerformancePtCalibMC.cxx:41
 AliPerformancePtCalibMC.cxx:42
 AliPerformancePtCalibMC.cxx:43
 AliPerformancePtCalibMC.cxx:44
 AliPerformancePtCalibMC.cxx:45
 AliPerformancePtCalibMC.cxx:46
 AliPerformancePtCalibMC.cxx:47
 AliPerformancePtCalibMC.cxx:48
 AliPerformancePtCalibMC.cxx:49
 AliPerformancePtCalibMC.cxx:50
 AliPerformancePtCalibMC.cxx:51
 AliPerformancePtCalibMC.cxx:52
 AliPerformancePtCalibMC.cxx:53
 AliPerformancePtCalibMC.cxx:54
 AliPerformancePtCalibMC.cxx:55
 AliPerformancePtCalibMC.cxx:56
 AliPerformancePtCalibMC.cxx:57
 AliPerformancePtCalibMC.cxx:58
 AliPerformancePtCalibMC.cxx:59
 AliPerformancePtCalibMC.cxx:60
 AliPerformancePtCalibMC.cxx:61
 AliPerformancePtCalibMC.cxx:62
 AliPerformancePtCalibMC.cxx:63
 AliPerformancePtCalibMC.cxx:64
 AliPerformancePtCalibMC.cxx:65
 AliPerformancePtCalibMC.cxx:66
 AliPerformancePtCalibMC.cxx:67
 AliPerformancePtCalibMC.cxx:68
 AliPerformancePtCalibMC.cxx:69
 AliPerformancePtCalibMC.cxx:70
 AliPerformancePtCalibMC.cxx:71
 AliPerformancePtCalibMC.cxx:72
 AliPerformancePtCalibMC.cxx:73
 AliPerformancePtCalibMC.cxx:74
 AliPerformancePtCalibMC.cxx:75
 AliPerformancePtCalibMC.cxx:76
 AliPerformancePtCalibMC.cxx:77
 AliPerformancePtCalibMC.cxx:78
 AliPerformancePtCalibMC.cxx:79
 AliPerformancePtCalibMC.cxx:80
 AliPerformancePtCalibMC.cxx:81
 AliPerformancePtCalibMC.cxx:82
 AliPerformancePtCalibMC.cxx:83
 AliPerformancePtCalibMC.cxx:84
 AliPerformancePtCalibMC.cxx:85
 AliPerformancePtCalibMC.cxx:86
 AliPerformancePtCalibMC.cxx:87
 AliPerformancePtCalibMC.cxx:88
 AliPerformancePtCalibMC.cxx:89
 AliPerformancePtCalibMC.cxx:90
 AliPerformancePtCalibMC.cxx:91
 AliPerformancePtCalibMC.cxx:92
 AliPerformancePtCalibMC.cxx:93
 AliPerformancePtCalibMC.cxx:94
 AliPerformancePtCalibMC.cxx:95
 AliPerformancePtCalibMC.cxx:96
 AliPerformancePtCalibMC.cxx:97
 AliPerformancePtCalibMC.cxx:98
 AliPerformancePtCalibMC.cxx:99
 AliPerformancePtCalibMC.cxx:100
 AliPerformancePtCalibMC.cxx:101
 AliPerformancePtCalibMC.cxx:102
 AliPerformancePtCalibMC.cxx:103
 AliPerformancePtCalibMC.cxx:104
 AliPerformancePtCalibMC.cxx:105
 AliPerformancePtCalibMC.cxx:106
 AliPerformancePtCalibMC.cxx:107
 AliPerformancePtCalibMC.cxx:108
 AliPerformancePtCalibMC.cxx:109
 AliPerformancePtCalibMC.cxx:110
 AliPerformancePtCalibMC.cxx:111
 AliPerformancePtCalibMC.cxx:112
 AliPerformancePtCalibMC.cxx:113
 AliPerformancePtCalibMC.cxx:114
 AliPerformancePtCalibMC.cxx:115
 AliPerformancePtCalibMC.cxx:116
 AliPerformancePtCalibMC.cxx:117
 AliPerformancePtCalibMC.cxx:118
 AliPerformancePtCalibMC.cxx:119
 AliPerformancePtCalibMC.cxx:120
 AliPerformancePtCalibMC.cxx:121
 AliPerformancePtCalibMC.cxx:122
 AliPerformancePtCalibMC.cxx:123
 AliPerformancePtCalibMC.cxx:124
 AliPerformancePtCalibMC.cxx:125
 AliPerformancePtCalibMC.cxx:126
 AliPerformancePtCalibMC.cxx:127
 AliPerformancePtCalibMC.cxx:128
 AliPerformancePtCalibMC.cxx:129
 AliPerformancePtCalibMC.cxx:130
 AliPerformancePtCalibMC.cxx:131
 AliPerformancePtCalibMC.cxx:132
 AliPerformancePtCalibMC.cxx:133
 AliPerformancePtCalibMC.cxx:134
 AliPerformancePtCalibMC.cxx:135
 AliPerformancePtCalibMC.cxx:136
 AliPerformancePtCalibMC.cxx:137
 AliPerformancePtCalibMC.cxx:138
 AliPerformancePtCalibMC.cxx:139
 AliPerformancePtCalibMC.cxx:140
 AliPerformancePtCalibMC.cxx:141
 AliPerformancePtCalibMC.cxx:142
 AliPerformancePtCalibMC.cxx:143
 AliPerformancePtCalibMC.cxx:144
 AliPerformancePtCalibMC.cxx:145
 AliPerformancePtCalibMC.cxx:146
 AliPerformancePtCalibMC.cxx:147
 AliPerformancePtCalibMC.cxx:148
 AliPerformancePtCalibMC.cxx:149
 AliPerformancePtCalibMC.cxx:150
 AliPerformancePtCalibMC.cxx:151
 AliPerformancePtCalibMC.cxx:152
 AliPerformancePtCalibMC.cxx:153
 AliPerformancePtCalibMC.cxx:154
 AliPerformancePtCalibMC.cxx:155
 AliPerformancePtCalibMC.cxx:156
 AliPerformancePtCalibMC.cxx:157
 AliPerformancePtCalibMC.cxx:158
 AliPerformancePtCalibMC.cxx:159
 AliPerformancePtCalibMC.cxx:160
 AliPerformancePtCalibMC.cxx:161
 AliPerformancePtCalibMC.cxx:162
 AliPerformancePtCalibMC.cxx:163
 AliPerformancePtCalibMC.cxx:164
 AliPerformancePtCalibMC.cxx:165
 AliPerformancePtCalibMC.cxx:166
 AliPerformancePtCalibMC.cxx:167
 AliPerformancePtCalibMC.cxx:168
 AliPerformancePtCalibMC.cxx:169
 AliPerformancePtCalibMC.cxx:170
 AliPerformancePtCalibMC.cxx:171
 AliPerformancePtCalibMC.cxx:172
 AliPerformancePtCalibMC.cxx:173
 AliPerformancePtCalibMC.cxx:174
 AliPerformancePtCalibMC.cxx:175
 AliPerformancePtCalibMC.cxx:176
 AliPerformancePtCalibMC.cxx:177
 AliPerformancePtCalibMC.cxx:178
 AliPerformancePtCalibMC.cxx:179
 AliPerformancePtCalibMC.cxx:180
 AliPerformancePtCalibMC.cxx:181
 AliPerformancePtCalibMC.cxx:182
 AliPerformancePtCalibMC.cxx:183
 AliPerformancePtCalibMC.cxx:184
 AliPerformancePtCalibMC.cxx:185
 AliPerformancePtCalibMC.cxx:186
 AliPerformancePtCalibMC.cxx:187
 AliPerformancePtCalibMC.cxx:188
 AliPerformancePtCalibMC.cxx:189
 AliPerformancePtCalibMC.cxx:190
 AliPerformancePtCalibMC.cxx:191
 AliPerformancePtCalibMC.cxx:192
 AliPerformancePtCalibMC.cxx:193
 AliPerformancePtCalibMC.cxx:194
 AliPerformancePtCalibMC.cxx:195
 AliPerformancePtCalibMC.cxx:196
 AliPerformancePtCalibMC.cxx:197
 AliPerformancePtCalibMC.cxx:198
 AliPerformancePtCalibMC.cxx:199
 AliPerformancePtCalibMC.cxx:200
 AliPerformancePtCalibMC.cxx:201
 AliPerformancePtCalibMC.cxx:202
 AliPerformancePtCalibMC.cxx:203
 AliPerformancePtCalibMC.cxx:204
 AliPerformancePtCalibMC.cxx:205
 AliPerformancePtCalibMC.cxx:206
 AliPerformancePtCalibMC.cxx:207
 AliPerformancePtCalibMC.cxx:208
 AliPerformancePtCalibMC.cxx:209
 AliPerformancePtCalibMC.cxx:210
 AliPerformancePtCalibMC.cxx:211
 AliPerformancePtCalibMC.cxx:212
 AliPerformancePtCalibMC.cxx:213
 AliPerformancePtCalibMC.cxx:214
 AliPerformancePtCalibMC.cxx:215
 AliPerformancePtCalibMC.cxx:216
 AliPerformancePtCalibMC.cxx:217
 AliPerformancePtCalibMC.cxx:218
 AliPerformancePtCalibMC.cxx:219
 AliPerformancePtCalibMC.cxx:220
 AliPerformancePtCalibMC.cxx:221
 AliPerformancePtCalibMC.cxx:222
 AliPerformancePtCalibMC.cxx:223
 AliPerformancePtCalibMC.cxx:224
 AliPerformancePtCalibMC.cxx:225
 AliPerformancePtCalibMC.cxx:226
 AliPerformancePtCalibMC.cxx:227
 AliPerformancePtCalibMC.cxx:228
 AliPerformancePtCalibMC.cxx:229
 AliPerformancePtCalibMC.cxx:230
 AliPerformancePtCalibMC.cxx:231
 AliPerformancePtCalibMC.cxx:232
 AliPerformancePtCalibMC.cxx:233
 AliPerformancePtCalibMC.cxx:234
 AliPerformancePtCalibMC.cxx:235
 AliPerformancePtCalibMC.cxx:236
 AliPerformancePtCalibMC.cxx:237
 AliPerformancePtCalibMC.cxx:238
 AliPerformancePtCalibMC.cxx:239
 AliPerformancePtCalibMC.cxx:240
 AliPerformancePtCalibMC.cxx:241
 AliPerformancePtCalibMC.cxx:242
 AliPerformancePtCalibMC.cxx:243
 AliPerformancePtCalibMC.cxx:244
 AliPerformancePtCalibMC.cxx:245
 AliPerformancePtCalibMC.cxx:246
 AliPerformancePtCalibMC.cxx:247
 AliPerformancePtCalibMC.cxx:248
 AliPerformancePtCalibMC.cxx:249
 AliPerformancePtCalibMC.cxx:250
 AliPerformancePtCalibMC.cxx:251
 AliPerformancePtCalibMC.cxx:252
 AliPerformancePtCalibMC.cxx:253
 AliPerformancePtCalibMC.cxx:254
 AliPerformancePtCalibMC.cxx:255
 AliPerformancePtCalibMC.cxx:256
 AliPerformancePtCalibMC.cxx:257
 AliPerformancePtCalibMC.cxx:258
 AliPerformancePtCalibMC.cxx:259
 AliPerformancePtCalibMC.cxx:260
 AliPerformancePtCalibMC.cxx:261
 AliPerformancePtCalibMC.cxx:262
 AliPerformancePtCalibMC.cxx:263
 AliPerformancePtCalibMC.cxx:264
 AliPerformancePtCalibMC.cxx:265
 AliPerformancePtCalibMC.cxx:266
 AliPerformancePtCalibMC.cxx:267
 AliPerformancePtCalibMC.cxx:268
 AliPerformancePtCalibMC.cxx:269
 AliPerformancePtCalibMC.cxx:270
 AliPerformancePtCalibMC.cxx:271
 AliPerformancePtCalibMC.cxx:272
 AliPerformancePtCalibMC.cxx:273
 AliPerformancePtCalibMC.cxx:274
 AliPerformancePtCalibMC.cxx:275
 AliPerformancePtCalibMC.cxx:276
 AliPerformancePtCalibMC.cxx:277
 AliPerformancePtCalibMC.cxx:278
 AliPerformancePtCalibMC.cxx:279
 AliPerformancePtCalibMC.cxx:280
 AliPerformancePtCalibMC.cxx:281
 AliPerformancePtCalibMC.cxx:282
 AliPerformancePtCalibMC.cxx:283
 AliPerformancePtCalibMC.cxx:284
 AliPerformancePtCalibMC.cxx:285
 AliPerformancePtCalibMC.cxx:286
 AliPerformancePtCalibMC.cxx:287
 AliPerformancePtCalibMC.cxx:288
 AliPerformancePtCalibMC.cxx:289
 AliPerformancePtCalibMC.cxx:290
 AliPerformancePtCalibMC.cxx:291
 AliPerformancePtCalibMC.cxx:292
 AliPerformancePtCalibMC.cxx:293
 AliPerformancePtCalibMC.cxx:294
 AliPerformancePtCalibMC.cxx:295
 AliPerformancePtCalibMC.cxx:296
 AliPerformancePtCalibMC.cxx:297
 AliPerformancePtCalibMC.cxx:298
 AliPerformancePtCalibMC.cxx:299
 AliPerformancePtCalibMC.cxx:300
 AliPerformancePtCalibMC.cxx:301
 AliPerformancePtCalibMC.cxx:302
 AliPerformancePtCalibMC.cxx:303
 AliPerformancePtCalibMC.cxx:304
 AliPerformancePtCalibMC.cxx:305
 AliPerformancePtCalibMC.cxx:306
 AliPerformancePtCalibMC.cxx:307
 AliPerformancePtCalibMC.cxx:308
 AliPerformancePtCalibMC.cxx:309
 AliPerformancePtCalibMC.cxx:310
 AliPerformancePtCalibMC.cxx:311
 AliPerformancePtCalibMC.cxx:312
 AliPerformancePtCalibMC.cxx:313
 AliPerformancePtCalibMC.cxx:314
 AliPerformancePtCalibMC.cxx:315
 AliPerformancePtCalibMC.cxx:316
 AliPerformancePtCalibMC.cxx:317
 AliPerformancePtCalibMC.cxx:318
 AliPerformancePtCalibMC.cxx:319
 AliPerformancePtCalibMC.cxx:320
 AliPerformancePtCalibMC.cxx:321
 AliPerformancePtCalibMC.cxx:322
 AliPerformancePtCalibMC.cxx:323
 AliPerformancePtCalibMC.cxx:324
 AliPerformancePtCalibMC.cxx:325
 AliPerformancePtCalibMC.cxx:326
 AliPerformancePtCalibMC.cxx:327
 AliPerformancePtCalibMC.cxx:328
 AliPerformancePtCalibMC.cxx:329
 AliPerformancePtCalibMC.cxx:330
 AliPerformancePtCalibMC.cxx:331
 AliPerformancePtCalibMC.cxx:332
 AliPerformancePtCalibMC.cxx:333
 AliPerformancePtCalibMC.cxx:334
 AliPerformancePtCalibMC.cxx:335
 AliPerformancePtCalibMC.cxx:336
 AliPerformancePtCalibMC.cxx:337
 AliPerformancePtCalibMC.cxx:338
 AliPerformancePtCalibMC.cxx:339
 AliPerformancePtCalibMC.cxx:340
 AliPerformancePtCalibMC.cxx:341
 AliPerformancePtCalibMC.cxx:342
 AliPerformancePtCalibMC.cxx:343
 AliPerformancePtCalibMC.cxx:344
 AliPerformancePtCalibMC.cxx:345
 AliPerformancePtCalibMC.cxx:346
 AliPerformancePtCalibMC.cxx:347
 AliPerformancePtCalibMC.cxx:348
 AliPerformancePtCalibMC.cxx:349
 AliPerformancePtCalibMC.cxx:350
 AliPerformancePtCalibMC.cxx:351
 AliPerformancePtCalibMC.cxx:352
 AliPerformancePtCalibMC.cxx:353
 AliPerformancePtCalibMC.cxx:354
 AliPerformancePtCalibMC.cxx:355
 AliPerformancePtCalibMC.cxx:356
 AliPerformancePtCalibMC.cxx:357
 AliPerformancePtCalibMC.cxx:358
 AliPerformancePtCalibMC.cxx:359
 AliPerformancePtCalibMC.cxx:360
 AliPerformancePtCalibMC.cxx:361
 AliPerformancePtCalibMC.cxx:362
 AliPerformancePtCalibMC.cxx:363
 AliPerformancePtCalibMC.cxx:364
 AliPerformancePtCalibMC.cxx:365
 AliPerformancePtCalibMC.cxx:366
 AliPerformancePtCalibMC.cxx:367
 AliPerformancePtCalibMC.cxx:368
 AliPerformancePtCalibMC.cxx:369
 AliPerformancePtCalibMC.cxx:370
 AliPerformancePtCalibMC.cxx:371
 AliPerformancePtCalibMC.cxx:372
 AliPerformancePtCalibMC.cxx:373
 AliPerformancePtCalibMC.cxx:374
 AliPerformancePtCalibMC.cxx:375
 AliPerformancePtCalibMC.cxx:376
 AliPerformancePtCalibMC.cxx:377
 AliPerformancePtCalibMC.cxx:378
 AliPerformancePtCalibMC.cxx:379
 AliPerformancePtCalibMC.cxx:380
 AliPerformancePtCalibMC.cxx:381
 AliPerformancePtCalibMC.cxx:382
 AliPerformancePtCalibMC.cxx:383
 AliPerformancePtCalibMC.cxx:384
 AliPerformancePtCalibMC.cxx:385
 AliPerformancePtCalibMC.cxx:386
 AliPerformancePtCalibMC.cxx:387
 AliPerformancePtCalibMC.cxx:388
 AliPerformancePtCalibMC.cxx:389
 AliPerformancePtCalibMC.cxx:390
 AliPerformancePtCalibMC.cxx:391
 AliPerformancePtCalibMC.cxx:392
 AliPerformancePtCalibMC.cxx:393
 AliPerformancePtCalibMC.cxx:394
 AliPerformancePtCalibMC.cxx:395
 AliPerformancePtCalibMC.cxx:396
 AliPerformancePtCalibMC.cxx:397
 AliPerformancePtCalibMC.cxx:398
 AliPerformancePtCalibMC.cxx:399
 AliPerformancePtCalibMC.cxx:400
 AliPerformancePtCalibMC.cxx:401
 AliPerformancePtCalibMC.cxx:402
 AliPerformancePtCalibMC.cxx:403
 AliPerformancePtCalibMC.cxx:404
 AliPerformancePtCalibMC.cxx:405
 AliPerformancePtCalibMC.cxx:406
 AliPerformancePtCalibMC.cxx:407
 AliPerformancePtCalibMC.cxx:408
 AliPerformancePtCalibMC.cxx:409
 AliPerformancePtCalibMC.cxx:410
 AliPerformancePtCalibMC.cxx:411
 AliPerformancePtCalibMC.cxx:412
 AliPerformancePtCalibMC.cxx:413
 AliPerformancePtCalibMC.cxx:414
 AliPerformancePtCalibMC.cxx:415
 AliPerformancePtCalibMC.cxx:416
 AliPerformancePtCalibMC.cxx:417
 AliPerformancePtCalibMC.cxx:418
 AliPerformancePtCalibMC.cxx:419
 AliPerformancePtCalibMC.cxx:420
 AliPerformancePtCalibMC.cxx:421
 AliPerformancePtCalibMC.cxx:422
 AliPerformancePtCalibMC.cxx:423
 AliPerformancePtCalibMC.cxx:424
 AliPerformancePtCalibMC.cxx:425
 AliPerformancePtCalibMC.cxx:426
 AliPerformancePtCalibMC.cxx:427
 AliPerformancePtCalibMC.cxx:428
 AliPerformancePtCalibMC.cxx:429
 AliPerformancePtCalibMC.cxx:430
 AliPerformancePtCalibMC.cxx:431
 AliPerformancePtCalibMC.cxx:432
 AliPerformancePtCalibMC.cxx:433
 AliPerformancePtCalibMC.cxx:434
 AliPerformancePtCalibMC.cxx:435
 AliPerformancePtCalibMC.cxx:436
 AliPerformancePtCalibMC.cxx:437
 AliPerformancePtCalibMC.cxx:438
 AliPerformancePtCalibMC.cxx:439
 AliPerformancePtCalibMC.cxx:440
 AliPerformancePtCalibMC.cxx:441
 AliPerformancePtCalibMC.cxx:442
 AliPerformancePtCalibMC.cxx:443
 AliPerformancePtCalibMC.cxx:444
 AliPerformancePtCalibMC.cxx:445
 AliPerformancePtCalibMC.cxx:446
 AliPerformancePtCalibMC.cxx:447
 AliPerformancePtCalibMC.cxx:448
 AliPerformancePtCalibMC.cxx:449
 AliPerformancePtCalibMC.cxx:450
 AliPerformancePtCalibMC.cxx:451
 AliPerformancePtCalibMC.cxx:452
 AliPerformancePtCalibMC.cxx:453
 AliPerformancePtCalibMC.cxx:454
 AliPerformancePtCalibMC.cxx:455
 AliPerformancePtCalibMC.cxx:456
 AliPerformancePtCalibMC.cxx:457
 AliPerformancePtCalibMC.cxx:458
 AliPerformancePtCalibMC.cxx:459
 AliPerformancePtCalibMC.cxx:460
 AliPerformancePtCalibMC.cxx:461
 AliPerformancePtCalibMC.cxx:462
 AliPerformancePtCalibMC.cxx:463
 AliPerformancePtCalibMC.cxx:464
 AliPerformancePtCalibMC.cxx:465
 AliPerformancePtCalibMC.cxx:466
 AliPerformancePtCalibMC.cxx:467
 AliPerformancePtCalibMC.cxx:468
 AliPerformancePtCalibMC.cxx:469
 AliPerformancePtCalibMC.cxx:470
 AliPerformancePtCalibMC.cxx:471
 AliPerformancePtCalibMC.cxx:472
 AliPerformancePtCalibMC.cxx:473
 AliPerformancePtCalibMC.cxx:474
 AliPerformancePtCalibMC.cxx:475
 AliPerformancePtCalibMC.cxx:476
 AliPerformancePtCalibMC.cxx:477
 AliPerformancePtCalibMC.cxx:478
 AliPerformancePtCalibMC.cxx:479
 AliPerformancePtCalibMC.cxx:480
 AliPerformancePtCalibMC.cxx:481
 AliPerformancePtCalibMC.cxx:482
 AliPerformancePtCalibMC.cxx:483
 AliPerformancePtCalibMC.cxx:484
 AliPerformancePtCalibMC.cxx:485
 AliPerformancePtCalibMC.cxx:486
 AliPerformancePtCalibMC.cxx:487
 AliPerformancePtCalibMC.cxx:488
 AliPerformancePtCalibMC.cxx:489
 AliPerformancePtCalibMC.cxx:490
 AliPerformancePtCalibMC.cxx:491
 AliPerformancePtCalibMC.cxx:492
 AliPerformancePtCalibMC.cxx:493
 AliPerformancePtCalibMC.cxx:494
 AliPerformancePtCalibMC.cxx:495
 AliPerformancePtCalibMC.cxx:496
 AliPerformancePtCalibMC.cxx:497
 AliPerformancePtCalibMC.cxx:498
 AliPerformancePtCalibMC.cxx:499
 AliPerformancePtCalibMC.cxx:500
 AliPerformancePtCalibMC.cxx:501
 AliPerformancePtCalibMC.cxx:502
 AliPerformancePtCalibMC.cxx:503
 AliPerformancePtCalibMC.cxx:504
 AliPerformancePtCalibMC.cxx:505
 AliPerformancePtCalibMC.cxx:506
 AliPerformancePtCalibMC.cxx:507
 AliPerformancePtCalibMC.cxx:508
 AliPerformancePtCalibMC.cxx:509
 AliPerformancePtCalibMC.cxx:510
 AliPerformancePtCalibMC.cxx:511
 AliPerformancePtCalibMC.cxx:512
 AliPerformancePtCalibMC.cxx:513
 AliPerformancePtCalibMC.cxx:514
 AliPerformancePtCalibMC.cxx:515
 AliPerformancePtCalibMC.cxx:516
 AliPerformancePtCalibMC.cxx:517
 AliPerformancePtCalibMC.cxx:518
 AliPerformancePtCalibMC.cxx:519
 AliPerformancePtCalibMC.cxx:520
 AliPerformancePtCalibMC.cxx:521
 AliPerformancePtCalibMC.cxx:522
 AliPerformancePtCalibMC.cxx:523
 AliPerformancePtCalibMC.cxx:524
 AliPerformancePtCalibMC.cxx:525
 AliPerformancePtCalibMC.cxx:526
 AliPerformancePtCalibMC.cxx:527
 AliPerformancePtCalibMC.cxx:528
 AliPerformancePtCalibMC.cxx:529
 AliPerformancePtCalibMC.cxx:530
 AliPerformancePtCalibMC.cxx:531
 AliPerformancePtCalibMC.cxx:532
 AliPerformancePtCalibMC.cxx:533
 AliPerformancePtCalibMC.cxx:534
 AliPerformancePtCalibMC.cxx:535
 AliPerformancePtCalibMC.cxx:536
 AliPerformancePtCalibMC.cxx:537
 AliPerformancePtCalibMC.cxx:538
 AliPerformancePtCalibMC.cxx:539
 AliPerformancePtCalibMC.cxx:540
 AliPerformancePtCalibMC.cxx:541
 AliPerformancePtCalibMC.cxx:542
 AliPerformancePtCalibMC.cxx:543
 AliPerformancePtCalibMC.cxx:544
 AliPerformancePtCalibMC.cxx:545
 AliPerformancePtCalibMC.cxx:546
 AliPerformancePtCalibMC.cxx:547
 AliPerformancePtCalibMC.cxx:548
 AliPerformancePtCalibMC.cxx:549
 AliPerformancePtCalibMC.cxx:550
 AliPerformancePtCalibMC.cxx:551
 AliPerformancePtCalibMC.cxx:552
 AliPerformancePtCalibMC.cxx:553
 AliPerformancePtCalibMC.cxx:554
 AliPerformancePtCalibMC.cxx:555
 AliPerformancePtCalibMC.cxx:556
 AliPerformancePtCalibMC.cxx:557
 AliPerformancePtCalibMC.cxx:558
 AliPerformancePtCalibMC.cxx:559
 AliPerformancePtCalibMC.cxx:560
 AliPerformancePtCalibMC.cxx:561
 AliPerformancePtCalibMC.cxx:562
 AliPerformancePtCalibMC.cxx:563
 AliPerformancePtCalibMC.cxx:564
 AliPerformancePtCalibMC.cxx:565
 AliPerformancePtCalibMC.cxx:566
 AliPerformancePtCalibMC.cxx:567
 AliPerformancePtCalibMC.cxx:568
 AliPerformancePtCalibMC.cxx:569
 AliPerformancePtCalibMC.cxx:570
 AliPerformancePtCalibMC.cxx:571
 AliPerformancePtCalibMC.cxx:572
 AliPerformancePtCalibMC.cxx:573
 AliPerformancePtCalibMC.cxx:574
 AliPerformancePtCalibMC.cxx:575
 AliPerformancePtCalibMC.cxx:576
 AliPerformancePtCalibMC.cxx:577
 AliPerformancePtCalibMC.cxx:578
 AliPerformancePtCalibMC.cxx:579
 AliPerformancePtCalibMC.cxx:580
 AliPerformancePtCalibMC.cxx:581
 AliPerformancePtCalibMC.cxx:582
 AliPerformancePtCalibMC.cxx:583
 AliPerformancePtCalibMC.cxx:584
 AliPerformancePtCalibMC.cxx:585
 AliPerformancePtCalibMC.cxx:586
 AliPerformancePtCalibMC.cxx:587
 AliPerformancePtCalibMC.cxx:588
 AliPerformancePtCalibMC.cxx:589
 AliPerformancePtCalibMC.cxx:590
 AliPerformancePtCalibMC.cxx:591
 AliPerformancePtCalibMC.cxx:592
 AliPerformancePtCalibMC.cxx:593
 AliPerformancePtCalibMC.cxx:594
 AliPerformancePtCalibMC.cxx:595
 AliPerformancePtCalibMC.cxx:596
 AliPerformancePtCalibMC.cxx:597
 AliPerformancePtCalibMC.cxx:598
 AliPerformancePtCalibMC.cxx:599
 AliPerformancePtCalibMC.cxx:600
 AliPerformancePtCalibMC.cxx:601
 AliPerformancePtCalibMC.cxx:602
 AliPerformancePtCalibMC.cxx:603
 AliPerformancePtCalibMC.cxx:604
 AliPerformancePtCalibMC.cxx:605
 AliPerformancePtCalibMC.cxx:606
 AliPerformancePtCalibMC.cxx:607
 AliPerformancePtCalibMC.cxx:608
 AliPerformancePtCalibMC.cxx:609
 AliPerformancePtCalibMC.cxx:610
 AliPerformancePtCalibMC.cxx:611
 AliPerformancePtCalibMC.cxx:612
 AliPerformancePtCalibMC.cxx:613
 AliPerformancePtCalibMC.cxx:614
 AliPerformancePtCalibMC.cxx:615
 AliPerformancePtCalibMC.cxx:616
 AliPerformancePtCalibMC.cxx:617
 AliPerformancePtCalibMC.cxx:618
 AliPerformancePtCalibMC.cxx:619
 AliPerformancePtCalibMC.cxx:620
 AliPerformancePtCalibMC.cxx:621
 AliPerformancePtCalibMC.cxx:622
 AliPerformancePtCalibMC.cxx:623
 AliPerformancePtCalibMC.cxx:624
 AliPerformancePtCalibMC.cxx:625
 AliPerformancePtCalibMC.cxx:626
 AliPerformancePtCalibMC.cxx:627
 AliPerformancePtCalibMC.cxx:628
 AliPerformancePtCalibMC.cxx:629
 AliPerformancePtCalibMC.cxx:630
 AliPerformancePtCalibMC.cxx:631
 AliPerformancePtCalibMC.cxx:632
 AliPerformancePtCalibMC.cxx:633
 AliPerformancePtCalibMC.cxx:634
 AliPerformancePtCalibMC.cxx:635
 AliPerformancePtCalibMC.cxx:636
 AliPerformancePtCalibMC.cxx:637
 AliPerformancePtCalibMC.cxx:638
 AliPerformancePtCalibMC.cxx:639
 AliPerformancePtCalibMC.cxx:640
 AliPerformancePtCalibMC.cxx:641
 AliPerformancePtCalibMC.cxx:642
 AliPerformancePtCalibMC.cxx:643
 AliPerformancePtCalibMC.cxx:644
 AliPerformancePtCalibMC.cxx:645
 AliPerformancePtCalibMC.cxx:646
 AliPerformancePtCalibMC.cxx:647
 AliPerformancePtCalibMC.cxx:648
 AliPerformancePtCalibMC.cxx:649
 AliPerformancePtCalibMC.cxx:650
 AliPerformancePtCalibMC.cxx:651
 AliPerformancePtCalibMC.cxx:652
 AliPerformancePtCalibMC.cxx:653
 AliPerformancePtCalibMC.cxx:654
 AliPerformancePtCalibMC.cxx:655
 AliPerformancePtCalibMC.cxx:656
 AliPerformancePtCalibMC.cxx:657
 AliPerformancePtCalibMC.cxx:658
 AliPerformancePtCalibMC.cxx:659
 AliPerformancePtCalibMC.cxx:660
 AliPerformancePtCalibMC.cxx:661
 AliPerformancePtCalibMC.cxx:662
 AliPerformancePtCalibMC.cxx:663
 AliPerformancePtCalibMC.cxx:664
 AliPerformancePtCalibMC.cxx:665
 AliPerformancePtCalibMC.cxx:666
 AliPerformancePtCalibMC.cxx:667
 AliPerformancePtCalibMC.cxx:668
 AliPerformancePtCalibMC.cxx:669
 AliPerformancePtCalibMC.cxx:670
 AliPerformancePtCalibMC.cxx:671
 AliPerformancePtCalibMC.cxx:672
 AliPerformancePtCalibMC.cxx:673
 AliPerformancePtCalibMC.cxx:674
 AliPerformancePtCalibMC.cxx:675
 AliPerformancePtCalibMC.cxx:676
 AliPerformancePtCalibMC.cxx:677
 AliPerformancePtCalibMC.cxx:678
 AliPerformancePtCalibMC.cxx:679
 AliPerformancePtCalibMC.cxx:680
 AliPerformancePtCalibMC.cxx:681
 AliPerformancePtCalibMC.cxx:682
 AliPerformancePtCalibMC.cxx:683
 AliPerformancePtCalibMC.cxx:684
 AliPerformancePtCalibMC.cxx:685
 AliPerformancePtCalibMC.cxx:686
 AliPerformancePtCalibMC.cxx:687
 AliPerformancePtCalibMC.cxx:688
 AliPerformancePtCalibMC.cxx:689
 AliPerformancePtCalibMC.cxx:690
 AliPerformancePtCalibMC.cxx:691
 AliPerformancePtCalibMC.cxx:692
 AliPerformancePtCalibMC.cxx:693
 AliPerformancePtCalibMC.cxx:694
 AliPerformancePtCalibMC.cxx:695
 AliPerformancePtCalibMC.cxx:696
 AliPerformancePtCalibMC.cxx:697
 AliPerformancePtCalibMC.cxx:698
 AliPerformancePtCalibMC.cxx:699
 AliPerformancePtCalibMC.cxx:700
 AliPerformancePtCalibMC.cxx:701
 AliPerformancePtCalibMC.cxx:702
 AliPerformancePtCalibMC.cxx:703
 AliPerformancePtCalibMC.cxx:704
 AliPerformancePtCalibMC.cxx:705
 AliPerformancePtCalibMC.cxx:706
 AliPerformancePtCalibMC.cxx:707
 AliPerformancePtCalibMC.cxx:708
 AliPerformancePtCalibMC.cxx:709
 AliPerformancePtCalibMC.cxx:710
 AliPerformancePtCalibMC.cxx:711
 AliPerformancePtCalibMC.cxx:712
 AliPerformancePtCalibMC.cxx:713
 AliPerformancePtCalibMC.cxx:714
 AliPerformancePtCalibMC.cxx:715
 AliPerformancePtCalibMC.cxx:716
 AliPerformancePtCalibMC.cxx:717
 AliPerformancePtCalibMC.cxx:718
 AliPerformancePtCalibMC.cxx:719
 AliPerformancePtCalibMC.cxx:720
 AliPerformancePtCalibMC.cxx:721
 AliPerformancePtCalibMC.cxx:722
 AliPerformancePtCalibMC.cxx:723
 AliPerformancePtCalibMC.cxx:724
 AliPerformancePtCalibMC.cxx:725
 AliPerformancePtCalibMC.cxx:726
 AliPerformancePtCalibMC.cxx:727
 AliPerformancePtCalibMC.cxx:728
 AliPerformancePtCalibMC.cxx:729
 AliPerformancePtCalibMC.cxx:730
 AliPerformancePtCalibMC.cxx:731
 AliPerformancePtCalibMC.cxx:732
 AliPerformancePtCalibMC.cxx:733
 AliPerformancePtCalibMC.cxx:734
 AliPerformancePtCalibMC.cxx:735
 AliPerformancePtCalibMC.cxx:736
 AliPerformancePtCalibMC.cxx:737
 AliPerformancePtCalibMC.cxx:738
 AliPerformancePtCalibMC.cxx:739
 AliPerformancePtCalibMC.cxx:740
 AliPerformancePtCalibMC.cxx:741
 AliPerformancePtCalibMC.cxx:742
 AliPerformancePtCalibMC.cxx:743
 AliPerformancePtCalibMC.cxx:744
 AliPerformancePtCalibMC.cxx:745
 AliPerformancePtCalibMC.cxx:746
 AliPerformancePtCalibMC.cxx:747
 AliPerformancePtCalibMC.cxx:748
 AliPerformancePtCalibMC.cxx:749
 AliPerformancePtCalibMC.cxx:750