#include <iostream>
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "THn.h"
#include "TFile.h"
#include "TChain.h"
#include "TObject.h"
#include "TObjArray.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliEventPoolManager.h"
#include "AliPIDResponse.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODHandler.h"
#include "AliAODVertex.h"
#include "AliAODInputHandler.h"
#include "AliAODMCParticle.h"
#include "AliAODMCHeader.h"
#include "AliTrackDiHadronPID.h"
#include "AliAODTrackCutsDiHadronPID.h"
#include "AliAODEventCutsDiHadronPID.h"
#include "AliHistToolsDiHadronPID.h"
#include "AliFunctionsDiHadronPID.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisTaskDiHadronPID.h"
using namespace std;
ClassImp(AliAnalysisTaskDiHadronPID);
AliAnalysisTaskDiHadronPID::AliAnalysisTaskDiHadronPID():
AliAnalysisTaskSE(),
fPIDResponse(0x0),
fEventCuts(0x0),
fTrackCutsTrigger(0x0),
fTrackCutsAssociated(0x0),
fPoolMgr(0x0),
fTriggerTracks(0x0),
fAssociatedTracks(0x0),
fCurrentAODEvent(0x0),
fOutputList(0x0),
fPtSpectrumTOFbins(0x0),
fCorrelationsTOFbins(0x0),
fMixedEventsTOFbins(0x0),
fPtSpectrumTOFTPCbins(0x0),
fCorrelationsTOFTPCbins(0x0),
fMixedEventsTOFTPCbins(0x0),
fMixedEventsTOFTPCbinsPID(0x0),
fTOFhistos(0x0),
fTOFmismatch(0x0),
fTOFPtAxis(0x0),
fTOFTPChistos(0x0),
fTOFTPCmismatch(0x0),
fTOFTPCPtAxis(0x0),
fNDEtaBins(32),
fNDPhiBins(32),
fMinNEventsForMixing(5),
fPoolTrackDepth(2000),
fPoolSize(1000),
fMixEvents(kTRUE),
fMixTriggers(kFALSE),
fCalculateMismatch(kTRUE),
fT0Fill(0x0),
fLvsEta(0x0),
fLvsEtaProjections(0x0),
fMakeTOFcorrelations(kTRUE),
fMakeTOFTPCcorrelationsPi(kFALSE),
fMakeTOFTPCcorrelationsKa(kFALSE),
fMakeTOFTPCcorrelationsPr(kFALSE),
fTOFIntervalFactorTOFTPC(1.),
fExtendPtAxis(kFALSE)
{
if (fDebug > 0) {AliInfo("AliAnalysisTaskDiHadronPID Default Constructor.");}
}
AliAnalysisTaskDiHadronPID::AliAnalysisTaskDiHadronPID(const char* name):
AliAnalysisTaskSE(name),
fPIDResponse(0x0),
fEventCuts(0x0),
fTrackCutsTrigger(0x0),
fTrackCutsAssociated(0x0),
fPoolMgr(0x0),
fTriggerTracks(0x0),
fAssociatedTracks(0x0),
fCurrentAODEvent(0x0),
fOutputList(0x0),
fPtSpectrumTOFbins(0x0),
fCorrelationsTOFbins(0x0),
fMixedEventsTOFbins(0x0),
fPtSpectrumTOFTPCbins(0x0),
fCorrelationsTOFTPCbins(0x0),
fMixedEventsTOFTPCbins(0x0),
fMixedEventsTOFTPCbinsPID(0x0),
fTOFhistos(0x0),
fTOFmismatch(0x0),
fTOFPtAxis(0x0),
fTOFTPChistos(0x0),
fTOFTPCmismatch(0x0),
fTOFTPCPtAxis(0x0),
fNDEtaBins(32),
fNDPhiBins(32),
fMinNEventsForMixing(5),
fPoolTrackDepth(2000),
fPoolSize(1000),
fMixEvents(kTRUE),
fMixTriggers(kFALSE),
fCalculateMismatch(kTRUE),
fT0Fill(0x0),
fLvsEta(0x0),
fLvsEtaProjections(0x0),
fMakeTOFcorrelations(kTRUE),
fMakeTOFTPCcorrelationsPi(kFALSE),
fMakeTOFTPCcorrelationsKa(kFALSE),
fMakeTOFTPCcorrelationsPr(kFALSE),
fTOFIntervalFactorTOFTPC(1.),
fExtendPtAxis(kFALSE)
{
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
DefineInput(0,TChain::Class());
DefineOutput(1,TList::Class());
}
AliAnalysisTaskDiHadronPID::~AliAnalysisTaskDiHadronPID() {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
if (fPoolMgr) {delete fPoolMgr; fPoolMgr = 0x0;}
if (fOutputList) {delete fOutputList; fOutputList = 0x0;}
}
void AliAnalysisTaskDiHadronPID::UserCreateOutputObjects() {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
AliAnalysisManager* manager = AliAnalysisManager::GetAnalysisManager();
if (!manager) {AliFatal("Could not obtain analysis manager.");}
AliInputEventHandler* inputHandler = dynamic_cast<AliInputEventHandler*> (manager->GetInputEventHandler());
if (!inputHandler) {AliFatal("Could not obtain input handler.");}
fPIDResponse = inputHandler->GetPIDResponse();
if (!fPIDResponse) {AliFatal("Could not obtain PID response.");}
TArrayD* centralityBins = 0x0;
if (fEventCuts->GetIsPbPb()) {
Double_t tmp[] = {0., 1., 2., 3., 4., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.1 };
centralityBins = new TArrayD(15, tmp);
} else {
Double_t tmp[] = {0.,1.};
centralityBins = new TArrayD(2, tmp);
}
Int_t nZvtxBins = 7;
Double_t vertexBins[] = {-7., -5., -3., -1., 1., 3., 5., 7.};
fPoolMgr = new AliEventPoolManager(fPoolSize, fPoolTrackDepth, centralityBins->GetSize(), centralityBins->GetArray(), nZvtxBins, (Double_t*) vertexBins);
delete centralityBins;
fOutputList = new TList();
fOutputList->SetOwner(kTRUE);
fEventCuts->CreateHistos();
fOutputList->Add(fEventCuts);
fTrackCutsTrigger->CreateHistos();
fOutputList->Add(fTrackCutsTrigger);
fTrackCutsAssociated->CreateHistos();
fOutputList->Add(fTrackCutsAssociated);
TString speciesname[] = {"Pion","Kaon","Proton"};
if (fMakeTOFcorrelations) {
Double_t* ptaxis = fTrackCutsAssociated->GetPtAxisPID();
Int_t nptbins = fTrackCutsAssociated->GetNPtBinsPID();
fPtSpectrumTOFbins = new TH1F("fPtSpectrumTOFbins","p_{T} Spectrum;p_{T} (GeV/c);Count",nptbins,ptaxis);
fOutputList->Add(fPtSpectrumTOFbins);
fCorrelationsTOFbins = AliHistToolsDiHadronPID::MakeHist3D("fCorrelationsTOFbins","Correlations;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
fNDEtaBins,-1.6,1.6,
nptbins, ptaxis);
fOutputList->Add(fCorrelationsTOFbins);
fMixedEventsTOFbins = AliHistToolsDiHadronPID::MakeHist3D("fMixedEventsTOFbins","Mixed Events;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
fNDEtaBins,-1.6,1.6,
nptbins, ptaxis);
fOutputList->Add(fMixedEventsTOFbins);
fTOFPtAxis = new TAxis(nptbins, ptaxis);
fTOFPtAxis->SetName("fTOFPtAxis");
fTOFPtAxis->SetTitle("p_{T} GeV/c");
fTOFhistos = new TObjArray(3);
fTOFhistos->SetOwner(kTRUE);
fTOFhistos->SetName("CorrelationsTOF");
if (fCalculateMismatch) {
fTOFmismatch = new TObjArray(3);
fTOFmismatch->SetOwner(kTRUE);
fTOFmismatch->SetName("MismatchTOF");
}
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
TObjArray* TOFhistosTmp = new TObjArray(fTOFPtAxis->GetNbins());
TOFhistosTmp->SetOwner(kTRUE);
TOFhistosTmp->SetName(speciesname[iSpecies].Data());
TObjArray* TOFmismatchTmp = 0x0;
if (fCalculateMismatch) {
TOFmismatchTmp = new TObjArray(fTOFPtAxis->GetNbins());
TOFmismatchTmp->SetOwner(kTRUE);
TOFmismatchTmp->SetName(speciesname[iSpecies].Data());
}
for (Int_t iBinPt = 1; iBinPt < (fTOFPtAxis->GetNbins() + 1); iBinPt++) {
Int_t iPtClass = fTrackCutsAssociated->GetPtClass(iBinPt);
if (iPtClass == -1) {AliFatal("Not valid pT class."); continue;}
Int_t NBinsTOF = fTrackCutsAssociated->GetNTOFbins(iPtClass,iSpecies);
Double_t TOFmin = fTrackCutsAssociated->GetTOFmin(iPtClass,iSpecies);
Double_t TOFmax = fTrackCutsAssociated->GetTOFmax(iPtClass,iSpecies);
TH3F* htmp = new TH3F(Form("fCorrelationsTOF_%i",iBinPt),
Form("%5.3f < p_{T} < %5.3f; #Delta#phi; #Delta#eta; t_{TOF} (ps)", fTOFPtAxis->GetBinLowEdge(iBinPt), fTOFPtAxis->GetBinUpEdge(iBinPt)),
fNDPhiBins, -TMath::Pi()/2., 3.*TMath::Pi()/2.,
fNDEtaBins, -1.6, 1.6, NBinsTOF, TOFmin, TOFmax);
htmp->SetDirectory(0);
TOFhistosTmp->Add(htmp);
if (fCalculateMismatch) {
TH1F* htmp2 = new TH1F(Form("fMismatchTOF_%i",iBinPt),
Form("%5.3f < p_{T} < %5.3f; t_{TOF} (ps)", fTOFPtAxis->GetBinLowEdge(iBinPt), fTOFPtAxis->GetBinUpEdge(iBinPt)),
NBinsTOF, TOFmin, TOFmax);
htmp2->SetDirectory(0);
TOFmismatchTmp->Add(htmp2);
}
}
fTOFhistos->Add(TOFhistosTmp);
if (fCalculateMismatch) {fTOFmismatch->Add(TOFmismatchTmp);}
}
fOutputList->Add(fTOFhistos);
if (fCalculateMismatch) {fOutputList->Add(fTOFmismatch);}
}
if (fMakeTOFTPCcorrelationsPi || fMakeTOFTPCcorrelationsKa || fMakeTOFTPCcorrelationsPr) {
Double_t ptarrayTOFTPC[16] = {2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6,
2.8, 3.0, 3.2, 3.4, 3.6, 3.8,
4.2, 4.6, 5.0};
const Int_t nptbins = 15;
Double_t ptarrayTOFTPCext[26] = {1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9,
2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6,
2.8, 3.0, 3.2, 3.4, 3.6, 3.8,
4.2, 4.6, 5.0};
const Int_t nptbinsext = 25;
fTOFTPCPtAxis = new TAxis(fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
fTOFTPCPtAxis->SetName("fTOFTPCPtAxis");
fTOFTPCPtAxis->SetTitle("p_{T} GeV/c");
fPtSpectrumTOFTPCbins = new TH1F("fPtSpectrumTOFTPCbins","p_{T} Spectrum;p_{T} (GeV/c);Count",nptbins,ptarrayTOFTPC);
fOutputList->Add(fPtSpectrumTOFTPCbins);
fCorrelationsTOFTPCbins = AliHistToolsDiHadronPID::MakeHist3D("fCorrelationsTOFTPCbins","Correlations;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
fNDEtaBins,-1.6,1.6,fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
fOutputList->Add(fCorrelationsTOFTPCbins);
fMixedEventsTOFTPCbins = AliHistToolsDiHadronPID::MakeHist3D("fMixedEventsTOFTPCbins","Mixed Events;#Delta#phi;#Delta#eta;p_{T} (GeV/c)",
fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
fNDEtaBins,-1.6,1.6,fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
fOutputList->Add(fMixedEventsTOFTPCbins);
fTOFTPChistos = new TObjArray(3);
fTOFTPChistos->SetOwner(kTRUE);
fTOFTPChistos->SetName("CorrelationsTOFTPC");
if (fCalculateMismatch) {
fTOFTPCmismatch = new TObjArray(3);
fTOFTPCmismatch->SetOwner(kTRUE);
fTOFTPCmismatch->SetName("MismatchTOFTPC");
}
fMixedEventsTOFTPCbinsPID = new TObjArray(3);
fMixedEventsTOFTPCbinsPID->SetOwner(kTRUE);
fMixedEventsTOFTPCbinsPID->SetName("MixedEventsTOFTPC");
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
TH3F* mixedeventsPID = AliHistToolsDiHadronPID::MakeHist3D(Form("fMixedEventsTOFTPC%s", speciesname[iSpecies].Data()),
Form("Mixed Events %s;#Delta#phi;#Delta#eta;p_{T} (GeV/c)", speciesname[iSpecies].Data()),
fNDPhiBins,-TMath::Pi()/2.,3.*TMath::Pi()/2.,
fNDEtaBins,-1.6,1.6,fExtendPtAxis ? nptbinsext : nptbins, fExtendPtAxis ? ptarrayTOFTPCext : ptarrayTOFTPC);
fMixedEventsTOFTPCbinsPID->Add(mixedeventsPID);
TObjArray* TOFTPChistosTmp = new TObjArray(fTOFTPCPtAxis->GetNbins());
TOFTPChistosTmp->SetOwner(kTRUE);
TOFTPChistosTmp->SetName(speciesname[iSpecies].Data());
TObjArray* TOFTPCmismatchTmp = 0x0;
if (fCalculateMismatch) {
TOFTPCmismatchTmp = new TObjArray(fTOFTPCPtAxis->GetNbins());
TOFTPCmismatchTmp->SetOwner(kTRUE);
TOFTPCmismatchTmp->SetName(speciesname[iSpecies].Data());
}
Bool_t MakeTOFTPCcorrelations[3] = {fMakeTOFTPCcorrelationsPi, fMakeTOFTPCcorrelationsKa, fMakeTOFTPCcorrelationsPr};
if (MakeTOFTPCcorrelations[iSpecies]) {
for (Int_t iBinPt = 1; iBinPt < (fTOFTPCPtAxis->GetNbins() + 1); iBinPt++) {
const Double_t sTOFest = 110.;
const Double_t sTPCest = 4.5;
Double_t TOFmin = -5. * sTOFest;
Double_t TOFmax = 10. * sTOFest;
Double_t TPCmin = -4. * sTPCest;
Double_t TPCmax = 4. * sTPCest;
Double_t TOFexp = AliFunctionsDiHadronPID::TOFExpTime(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4, AliFunctionsDiHadronPID::M(iSpecies));
Double_t TPCexp = AliFunctionsDiHadronPID::TPCExpdEdX(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4, AliFunctionsDiHadronPID::M(iSpecies));
for (Int_t jSpecies = 0; jSpecies < 3; jSpecies++) {
if (iSpecies == jSpecies) {continue;}
Double_t TOFexpOther = AliFunctionsDiHadronPID::TOFExpTime(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4, AliFunctionsDiHadronPID::M(jSpecies));
Double_t TPCexpOther = AliFunctionsDiHadronPID::TPCExpdEdX(fTOFTPCPtAxis->GetBinLowEdge(iBinPt), 0.4, AliFunctionsDiHadronPID::M(jSpecies));
if ( (TMath::Abs(TOFexp - TOFexpOther) < 7. * sTOFest) ||
(TMath::Abs(TPCexp - TPCexpOther) < 7. * sTPCest) ) {
TOFmin = TMath::Min(TOFmin, (TOFexpOther - TOFexp - 2. * sTOFest) );
TOFmax = TMath::Max(TOFmax, (TOFexpOther - TOFexp + 10. * sTOFest) );
TPCmin = TMath::Min(TPCmin, (TPCexpOther - TPCexp - 2. * sTPCest) );
TPCmax = TMath::Max(TPCmax, (TPCexpOther - TPCexp + 2. * sTPCest) );
}
}
Double_t TOFreach = TOFmax - TOFmin;
TOFmax += (TOFreach * (fTOFIntervalFactorTOFTPC - 1.));
Int_t TOFbins = (Int_t)(60. * fTOFIntervalFactorTOFTPC);
Int_t NBinsTOFTPC[4] = {32, 32, TOFbins, 40};
Double_t minTOFTPC[4] = {-TMath::Pi()/2., -1.6, TOFmin, TPCmin};
Double_t maxTOFTPC[4] = {3.*TMath::Pi()/2., 1.6, TOFmax, TPCmax};
THnF* htmp = new THnF(Form("fCorrelationsTOFTPC_%i",iBinPt),
Form("%5.3f < p_{T} < %5.3f", fTOFTPCPtAxis->GetBinLowEdge(iBinPt), fTOFTPCPtAxis->GetBinUpEdge(iBinPt)),
4, NBinsTOFTPC, minTOFTPC, maxTOFTPC);
(htmp->GetAxis(0))->SetTitle("#Delta#phi");
(htmp->GetAxis(1))->SetTitle("#Delta#eta");
(htmp->GetAxis(2))->SetTitle("t_{TOF} (ps)");
(htmp->GetAxis(3))->SetTitle("dE/dx (a.u.)");
TOFTPChistosTmp->Add(htmp);
if (fCalculateMismatch) {
TH2F* htmp2 = new TH2F(Form("fMismatchTOFTPC_%i",iBinPt),
Form("%5.3f < p_{T} < %5.3f; t_{TOF} (ps); dE/dx (a.u.)", fTOFTPCPtAxis->GetBinLowEdge(iBinPt), fTOFTPCPtAxis->GetBinUpEdge(iBinPt)),
NBinsTOFTPC[2], TOFmin, TOFmax, NBinsTOFTPC[3], TPCmin, TPCmax);
htmp2->SetDirectory(0);
TOFTPCmismatchTmp->Add(htmp2);
}
}
}
fTOFTPChistos->Add(TOFTPChistosTmp);
if (fCalculateMismatch) {fTOFTPCmismatch->Add(TOFTPCmismatchTmp);}
}
fOutputList->Add(fTOFTPChistos);
if (fCalculateMismatch) {fOutputList->Add(fTOFTPCmismatch);}
fOutputList->Add(fMixedEventsTOFTPCbinsPID);
}
if (fCalculateMismatch) {LoadExtMismatchHistos();}
PostData(1,fOutputList);
}
void AliAnalysisTaskDiHadronPID::LocalInit() {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
}
void AliAnalysisTaskDiHadronPID::UserExec(Option_t*) {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
fCurrentAODEvent = dynamic_cast<AliAODEvent*>(InputEvent());
if (!fCurrentAODEvent) AliFatal("No Event Found!");
if (!fEventCuts->IsSelected(fCurrentAODEvent)) {return;}
fTrackCutsTrigger->StartNewEvent();
fTrackCutsAssociated->StartNewEvent();
fTriggerTracks = new TObjArray(350);
fTriggerTracks->SetOwner(kTRUE);
fAssociatedTracks = new TObjArray(3500);
fAssociatedTracks->SetOwner(kTRUE);
for (Int_t iTrack = 0; iTrack < fCurrentAODEvent->GetNumberOfTracks(); iTrack++) {
AliAODTrack* track = (AliAODTrack*)fCurrentAODEvent->GetTrack(iTrack);
AliTrackDiHadronPID* pidtrack = new AliTrackDiHadronPID(track,0x0,0x0,fPIDResponse);
pidtrack->ForgetAboutPointers();
pidtrack->SetDebugLevel(fDebug);
Double_t rndhittime = -1.e21;
if (fCalculateMismatch) rndhittime = GenerateRandomHit(pidtrack->Eta());
if (fTrackCutsTrigger->IsSelectedData(pidtrack,rndhittime)) {fTriggerTracks->AddLast(pidtrack);}
else if (fTrackCutsAssociated->IsSelectedData(pidtrack,rndhittime)) {
fAssociatedTracks->AddLast(pidtrack);
if (fPtSpectrumTOFbins) fPtSpectrumTOFbins->Fill(pidtrack->Pt());
if (fPtSpectrumTOFTPCbins) fPtSpectrumTOFTPCbins->Fill(pidtrack->Pt());
if (fCalculateMismatch && (rndhittime > -1.e20)) {
Double_t apt = pidtrack->Pt();
if (fMakeTOFcorrelations) {
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
TObjArray* atmp = (TObjArray*)fTOFmismatch->At(iSpecies);
Int_t ptbin = fTOFPtAxis->FindBin(apt);
if ( !(ptbin < 1) && !(ptbin > fTOFPtAxis->GetNbins()) ) {
TH1F* htmp = (TH1F*)atmp->At(ptbin - 1);
htmp->Fill(rndhittime - pidtrack->GetTOFsignalExpected(iSpecies));
}
}
}
Bool_t MakeTOFTPCcorrelations[3] = {fMakeTOFTPCcorrelationsPi, fMakeTOFTPCcorrelationsKa, fMakeTOFTPCcorrelationsPr};
if (fMakeTOFTPCcorrelationsPi || fMakeTOFTPCcorrelationsKa || fMakeTOFTPCcorrelationsPr) {
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
if (!MakeTOFTPCcorrelations[iSpecies]) {continue;}
TObjArray* atmp = (TObjArray*)fTOFTPCmismatch->At(iSpecies);
Int_t ptbin = fTOFTPCPtAxis->FindBin(apt);
if ( !(ptbin < 1) && !(ptbin > fTOFTPCPtAxis->GetNbins()) ) {
TH2F* htmp = (TH2F*)atmp->At(ptbin - 1);
htmp->Fill(rndhittime - pidtrack->GetTOFsignalExpected(iSpecies), pidtrack->GetTPCsignalMinusExpected(iSpecies));
}
}
}
}
}
else {delete pidtrack;}
}
for (Int_t iTrigger = 0; iTrigger < fTriggerTracks->GetEntriesFast(); iTrigger++) {
AliTrackDiHadronPID* triggertrack = (AliTrackDiHadronPID*)fTriggerTracks->At(iTrigger);
for (Int_t iAssociated = 0; iAssociated < fAssociatedTracks->GetEntriesFast(); iAssociated++) {
AliTrackDiHadronPID* associatedtrack = (AliTrackDiHadronPID*)fAssociatedTracks->At(iAssociated);
Double_t DPhi = triggertrack->Phi() - associatedtrack->Phi();
if (DPhi < -TMath::Pi()/2.) {DPhi += 2.*TMath::Pi();}
if (DPhi > 3.*TMath::Pi()/2.) {DPhi -= 2.*TMath::Pi();}
Double_t DEta = triggertrack->Eta() - associatedtrack->Eta();
if (fCorrelationsTOFbins) fCorrelationsTOFbins->Fill(DPhi,DEta,associatedtrack->Pt());
if (fCorrelationsTOFTPCbins) fCorrelationsTOFTPCbins->Fill(DPhi,DEta,associatedtrack->Pt());
Double_t apt = associatedtrack->Pt();
if (fMakeTOFcorrelations) {
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
TObjArray* atmp = (TObjArray*)fTOFhistos->At(iSpecies);
Int_t ptbin = fTOFPtAxis->FindBin(apt);
if ( !(ptbin < 1) && !(ptbin > fTOFPtAxis->GetNbins()) ) {
TH3F* htmp = (TH3F*)atmp->At(ptbin - 1);
htmp->Fill(DPhi, DEta, associatedtrack->GetTOFsignalMinusExpected(iSpecies));
}
}
}
Bool_t MakeTOFTPCcorrelations[3] = {fMakeTOFTPCcorrelationsPi, fMakeTOFTPCcorrelationsKa, fMakeTOFTPCcorrelationsPr};
if (fMakeTOFTPCcorrelationsPi || fMakeTOFTPCcorrelationsKa || fMakeTOFTPCcorrelationsPr) {
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
if (!MakeTOFTPCcorrelations[iSpecies]) {continue;}
TObjArray* atmp = (TObjArray*)fTOFTPChistos->At(iSpecies);
Int_t ptbin = fTOFTPCPtAxis->FindBin(apt);
if ( !(ptbin < 1) && !(ptbin > fTOFTPCPtAxis->GetNbins()) ) {
THnF* htmp = (THnF*)atmp->At(ptbin - 1);
Double_t TOFTPCfill[4] = {DPhi, DEta,
associatedtrack->GetTOFsignalMinusExpected(iSpecies), associatedtrack->GetTPCsignalMinusExpected(iSpecies)};
htmp->Fill(TOFTPCfill);
}
}
}
}
}
AliAODVertex* currentprimaryvertex = fCurrentAODEvent->GetPrimaryVertex();
Double_t vtxz = currentprimaryvertex->GetZ();
AliEventPool* poolin = 0x0;
Float_t percentile = -1.;
if (fEventCuts->GetIsPbPb()) {
TString centralityestimator = fEventCuts->GetCentralityEstimator();
AliCentrality* currentcentrality = fCurrentAODEvent->GetCentrality();
percentile = currentcentrality->GetCentralityPercentile(centralityestimator.Data());
poolin = fPoolMgr->GetEventPool(percentile, vtxz);
if (!poolin) {AliFatal(Form("No pool found for centrality = %f, vtxz = %f", percentile, vtxz));}
} else {
poolin = fPoolMgr->GetEventPool(0.5, vtxz);
if (!poolin) {AliFatal(Form("No pool found for vtxz = %f", vtxz));}
}
if (fDebug > 0) PrintPoolManagerContents();
if (poolin->GetCurrentNEvents() >= fMinNEventsForMixing) {
for (Int_t iMixEvent = 0; iMixEvent < poolin->GetCurrentNEvents(); iMixEvent++) {
TObjArray* mixtracks = poolin->GetEvent(iMixEvent);
if (fMixTriggers) {
for (Int_t iAssociated = 0; iAssociated < fAssociatedTracks->GetEntriesFast(); iAssociated++) {
AliTrackDiHadronPID* associatedtrack = (AliTrackDiHadronPID*)fAssociatedTracks->At(iAssociated);
for (Int_t iMixTrack = 0; iMixTrack < mixtracks->GetEntriesFast(); iMixTrack++) {
AliTrackDiHadronPID* mixtrack = (AliTrackDiHadronPID*)mixtracks->At(iMixTrack);
Double_t DPhi = mixtrack->Phi() - associatedtrack->Phi();
if (DPhi < -TMath::Pi()/2.) {DPhi += 2.*TMath::Pi();}
if (DPhi > 3.*TMath::Pi()/2.) {DPhi -= 2.*TMath::Pi();}
Double_t DEta = mixtrack->Eta() - associatedtrack->Eta();
if (fMixedEventsTOFbins) fMixedEventsTOFbins->Fill(DPhi,DEta,associatedtrack->Pt());
if (fMixedEventsTOFTPCbins) fMixedEventsTOFTPCbins->Fill(DPhi,DEta,associatedtrack->Pt());
if (fMixedEventsTOFTPCbinsPID) {
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
TH3F* mixedeventhist = (TH3F*)fMixedEventsTOFTPCbinsPID->At(iSpecies);
Double_t nSigmaTOFTPC = TMath::Sqrt(
associatedtrack->GetNumberOfSigmasTOF(iSpecies) * associatedtrack->GetNumberOfSigmasTOF(iSpecies) +
associatedtrack->GetNumberOfSigmasTPC(iSpecies) * associatedtrack->GetNumberOfSigmasTPC(iSpecies));
if (nSigmaTOFTPC < 1.) {mixedeventhist->Fill(DPhi,DEta,associatedtrack->Pt());}
}
}
}
}
} else {
for (Int_t iTrigger = 0; iTrigger < fTriggerTracks->GetEntriesFast(); iTrigger++) {
AliTrackDiHadronPID* triggertrack = (AliTrackDiHadronPID*)fTriggerTracks->At(iTrigger);
for (Int_t iMixTrack = 0; iMixTrack < mixtracks->GetEntriesFast(); iMixTrack++) {
AliTrackDiHadronPID* mixtrack = (AliTrackDiHadronPID*)mixtracks->At(iMixTrack);
Double_t DPhi = triggertrack->Phi() - mixtrack->Phi();
if (DPhi < -TMath::Pi()/2.) {DPhi += 2.*TMath::Pi();}
if (DPhi > 3.*TMath::Pi()/2.) {DPhi -= 2.*TMath::Pi();}
Double_t DEta = triggertrack->Eta() - mixtrack->Eta();
if (fMixedEventsTOFbins) fMixedEventsTOFbins->Fill(DPhi,DEta,mixtrack->Pt());
if (fMixedEventsTOFTPCbins) fMixedEventsTOFTPCbins->Fill(DPhi,DEta,mixtrack->Pt());
if (fMixedEventsTOFTPCbinsPID) {
for (Int_t iSpecies = 0; iSpecies < 3; iSpecies++) {
TH3F* mixedeventhist = (TH3F*)fMixedEventsTOFTPCbinsPID->At(iSpecies);
Double_t nSigmaTOFTPC = TMath::Sqrt(
mixtrack->GetNumberOfSigmasTOF(iSpecies) * mixtrack->GetNumberOfSigmasTOF(iSpecies) +
mixtrack->GetNumberOfSigmasTPC(iSpecies) * mixtrack->GetNumberOfSigmasTPC(iSpecies));
if (nSigmaTOFTPC < 1.) {mixedeventhist->Fill(DPhi,DEta,mixtrack->Pt());}
}
}
}
}
}
}
}
AliEventPool* poolout = 0x0;
if (fEventCuts->GetIsPbPb()) {
poolout = fPoolMgr->GetEventPool(percentile, vtxz);
if (!poolout) AliFatal(Form("No pool found for centrality = %f, vtx_z = %f", percentile, vtxz));
} else {
poolout = fPoolMgr->GetEventPool(0.5, vtxz);
if (!poolout) AliFatal(Form("No pool found for vtx_z = %f", vtxz));
}
if (fMixTriggers) {
poolout->UpdatePool(fTriggerTracks);
fAssociatedTracks->Delete();
delete fAssociatedTracks;
}
else {
poolout->UpdatePool(fAssociatedTracks);
fTriggerTracks->Delete();
delete fTriggerTracks;
}
fTriggerTracks = 0x0;
fAssociatedTracks = 0x0;
fTrackCutsTrigger->EventIsDone(0);
fTrackCutsAssociated->EventIsDone(0);
PostData(1,fOutputList);
}
void AliAnalysisTaskDiHadronPID::SelectCollisionCandidates(UInt_t offlineTriggerMask) {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
if (!fEventCuts) {cout << Form("%s -> ERROR: No AliAODEventCutsDiHadronPID class created for the analysis...",__func__) << endl; return;}
fEventCuts->SetTrigger(offlineTriggerMask);
}
void AliAnalysisTaskDiHadronPID::SetDebugLevel(Int_t level) {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
fDebug = level;
if (fEventCuts) {fEventCuts->SetDebugLevel(level);}
if (fTrackCutsTrigger) {fTrackCutsTrigger->SetDebugLevel(level);}
if (fTrackCutsAssociated) {fTrackCutsAssociated->SetDebugLevel(level);}
}
Bool_t AliAnalysisTaskDiHadronPID::LoadExtMismatchHistos() {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
if (fDebug > 0) cout<<"Trying to open TOFmismatchHistos.root ..."<<endl;
TFile* fin = 0x0;
fin = TFile::Open("alien:///alice/cern.ch/user/m/mveldhoe/rootfiles/TOFmismatchHistos.root");
if (!fin) {
AliWarning("Couln't open TOFmismatchHistos, will not calculate mismatches...");
fCalculateMismatch = kFALSE;
return kFALSE;
}
TH1F* tmp1 = (TH1F*)fin->Get("hNewT0Fill");
if (!tmp1) {
AliWarning("Couln't find hNewT0Fill, will not calculate mismatches...");
fCalculateMismatch = kFALSE;
return kFALSE;
}
TH2F* tmp2 = (TH2F*)fin->Get("hLvsEta");
if (!tmp2) {
AliWarning("Couln't find hLvsEta, will not calculate mismatches...");
fCalculateMismatch = kFALSE;
return kFALSE;
}
fT0Fill = (TH1F*)tmp1->Clone("fT0Fill");
fLvsEta = (TH2F*)tmp2->Clone("fLvsEta");
AliInfo("Closing external file.");
fin->Close();
const Int_t nbinseta = fLvsEta->GetNbinsX();
fLvsEtaProjections = new TObjArray(nbinseta);
fLvsEtaProjections->SetOwner(kTRUE);
for (Int_t iEtaBin = 1; iEtaBin < (nbinseta + 1); iEtaBin++) {
TH1F* tmp = (TH1F*)fLvsEta->ProjectionY(Form("LvsEtaProjection_%i",iEtaBin),iEtaBin,iEtaBin);
tmp->SetDirectory(0);
fLvsEtaProjections->AddAt(tmp,iEtaBin - 1);
}
return kTRUE;
}
Double_t AliAnalysisTaskDiHadronPID::GenerateRandomHit(Double_t eta) {
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
Double_t rndhittime = -1.e21;
if (!fCalculateMismatch) {
AliFatal("Called GenerateRandomHit() method, but flag fCalculateMismatch not set.");
return rndhittime;
}
if (TMath::Abs(eta) > 0.8) {
if (fDebug) {AliInfo("Tried to get a random hit for a track with eta > 0.8.");}
return rndhittime;
}
TAxis* etaAxis = fLvsEta->GetXaxis();
Int_t etaBin = etaAxis->FindBin(eta);
if (etaBin == 0 || (etaBin == etaAxis->GetNbins() + 1)) {return rndhittime;}
const TH1F* lengthDistribution = (const TH1F*)fLvsEtaProjections->At(etaBin - 1);
if (!lengthDistribution) {
AliFatal("length Distribution not found.");
return rndhittime;
}
Double_t currentRndLength = lengthDistribution->GetRandom();
Double_t currentRndTime = currentRndLength / (TMath::C() * 1.e2 / 1.e12);
Double_t t0fill = -1.26416e+04;
rndhittime = fT0Fill->GetRandom() - t0fill + currentRndTime;
return rndhittime;
}
void AliAnalysisTaskDiHadronPID::PrintPoolManagerContents() {
AliEventPool* poolin = fPoolMgr->GetEventPool(0,0);
Int_t NPoolsCentrality = 0;
while (poolin) {
NPoolsCentrality++;
poolin = fPoolMgr->GetEventPool(NPoolsCentrality,0);
}
poolin = fPoolMgr->GetEventPool(0,0);
Int_t NPoolsVtxZ = 0;
while (poolin) {
NPoolsVtxZ++;
poolin = fPoolMgr->GetEventPool(0,NPoolsVtxZ);
}
cout<<" Pool manager contents: (Nevt,NTrack)"<<endl;
for (Int_t iCentrality = 0; iCentrality < NPoolsCentrality; iCentrality++) {
cout<<Form("Centrality Bin: %2i --> ", iCentrality);
for (Int_t iVtxZ = 0; iVtxZ < NPoolsVtxZ; iVtxZ++) {
poolin = fPoolMgr->GetEventPool(iCentrality, iVtxZ);
cout<<Form("(%2i,%4i) ",poolin->GetCurrentNEvents(), poolin->NTracksInPool());
}
cout<<endl;
}
}
void AliAnalysisTaskDiHadronPID::Terminate(Option_t*) {;
if (fDebug > 0) {cout << Form("File: %s, Line: %i, Function: %s",__FILE__,__LINE__,__func__) << endl;}
delete fT0Fill;
fT0Fill = 0x0;
delete fLvsEta;
fLvsEta = 0x0;
delete fLvsEtaProjections;
fLvsEtaProjections = 0x0;
}
AliAnalysisTaskDiHadronPID.cxx:1 AliAnalysisTaskDiHadronPID.cxx:2 AliAnalysisTaskDiHadronPID.cxx:3 AliAnalysisTaskDiHadronPID.cxx:4 AliAnalysisTaskDiHadronPID.cxx:5 AliAnalysisTaskDiHadronPID.cxx:6 AliAnalysisTaskDiHadronPID.cxx:7 AliAnalysisTaskDiHadronPID.cxx:8 AliAnalysisTaskDiHadronPID.cxx:9 AliAnalysisTaskDiHadronPID.cxx:10 AliAnalysisTaskDiHadronPID.cxx:11 AliAnalysisTaskDiHadronPID.cxx:12 AliAnalysisTaskDiHadronPID.cxx:13 AliAnalysisTaskDiHadronPID.cxx:14 AliAnalysisTaskDiHadronPID.cxx:15 AliAnalysisTaskDiHadronPID.cxx:16 AliAnalysisTaskDiHadronPID.cxx:17 AliAnalysisTaskDiHadronPID.cxx:18 AliAnalysisTaskDiHadronPID.cxx:19 AliAnalysisTaskDiHadronPID.cxx:20 AliAnalysisTaskDiHadronPID.cxx:21 AliAnalysisTaskDiHadronPID.cxx:22 AliAnalysisTaskDiHadronPID.cxx:23 AliAnalysisTaskDiHadronPID.cxx:24 AliAnalysisTaskDiHadronPID.cxx:25 AliAnalysisTaskDiHadronPID.cxx:26 AliAnalysisTaskDiHadronPID.cxx:27 AliAnalysisTaskDiHadronPID.cxx:28 AliAnalysisTaskDiHadronPID.cxx:29 AliAnalysisTaskDiHadronPID.cxx:30 AliAnalysisTaskDiHadronPID.cxx:31 AliAnalysisTaskDiHadronPID.cxx:32 AliAnalysisTaskDiHadronPID.cxx:33 AliAnalysisTaskDiHadronPID.cxx:34 AliAnalysisTaskDiHadronPID.cxx:35 AliAnalysisTaskDiHadronPID.cxx:36 AliAnalysisTaskDiHadronPID.cxx:37 AliAnalysisTaskDiHadronPID.cxx:38 AliAnalysisTaskDiHadronPID.cxx:39 AliAnalysisTaskDiHadronPID.cxx:40 AliAnalysisTaskDiHadronPID.cxx:41 AliAnalysisTaskDiHadronPID.cxx:42 AliAnalysisTaskDiHadronPID.cxx:43 AliAnalysisTaskDiHadronPID.cxx:44 AliAnalysisTaskDiHadronPID.cxx:45 AliAnalysisTaskDiHadronPID.cxx:46 AliAnalysisTaskDiHadronPID.cxx:47 AliAnalysisTaskDiHadronPID.cxx:48 AliAnalysisTaskDiHadronPID.cxx:49 AliAnalysisTaskDiHadronPID.cxx:50 AliAnalysisTaskDiHadronPID.cxx:51 AliAnalysisTaskDiHadronPID.cxx:52 AliAnalysisTaskDiHadronPID.cxx:53 AliAnalysisTaskDiHadronPID.cxx:54 AliAnalysisTaskDiHadronPID.cxx:55 AliAnalysisTaskDiHadronPID.cxx:56 AliAnalysisTaskDiHadronPID.cxx:57 AliAnalysisTaskDiHadronPID.cxx:58 AliAnalysisTaskDiHadronPID.cxx:59 AliAnalysisTaskDiHadronPID.cxx:60 AliAnalysisTaskDiHadronPID.cxx:61 AliAnalysisTaskDiHadronPID.cxx:62 AliAnalysisTaskDiHadronPID.cxx:63 AliAnalysisTaskDiHadronPID.cxx:64 AliAnalysisTaskDiHadronPID.cxx:65 AliAnalysisTaskDiHadronPID.cxx:66 AliAnalysisTaskDiHadronPID.cxx:67 AliAnalysisTaskDiHadronPID.cxx:68 AliAnalysisTaskDiHadronPID.cxx:69 AliAnalysisTaskDiHadronPID.cxx:70 AliAnalysisTaskDiHadronPID.cxx:71 AliAnalysisTaskDiHadronPID.cxx:72 AliAnalysisTaskDiHadronPID.cxx:73 AliAnalysisTaskDiHadronPID.cxx:74 AliAnalysisTaskDiHadronPID.cxx:75 AliAnalysisTaskDiHadronPID.cxx:76 AliAnalysisTaskDiHadronPID.cxx:77 AliAnalysisTaskDiHadronPID.cxx:78 AliAnalysisTaskDiHadronPID.cxx:79 AliAnalysisTaskDiHadronPID.cxx:80 AliAnalysisTaskDiHadronPID.cxx:81 AliAnalysisTaskDiHadronPID.cxx:82 AliAnalysisTaskDiHadronPID.cxx:83 AliAnalysisTaskDiHadronPID.cxx:84 AliAnalysisTaskDiHadronPID.cxx:85 AliAnalysisTaskDiHadronPID.cxx:86 AliAnalysisTaskDiHadronPID.cxx:87 AliAnalysisTaskDiHadronPID.cxx:88 AliAnalysisTaskDiHadronPID.cxx:89 AliAnalysisTaskDiHadronPID.cxx:90 AliAnalysisTaskDiHadronPID.cxx:91 AliAnalysisTaskDiHadronPID.cxx:92 AliAnalysisTaskDiHadronPID.cxx:93 AliAnalysisTaskDiHadronPID.cxx:94 AliAnalysisTaskDiHadronPID.cxx:95 AliAnalysisTaskDiHadronPID.cxx:96 AliAnalysisTaskDiHadronPID.cxx:97 AliAnalysisTaskDiHadronPID.cxx:98 AliAnalysisTaskDiHadronPID.cxx:99 AliAnalysisTaskDiHadronPID.cxx:100 AliAnalysisTaskDiHadronPID.cxx:101 AliAnalysisTaskDiHadronPID.cxx:102 AliAnalysisTaskDiHadronPID.cxx:103 AliAnalysisTaskDiHadronPID.cxx:104 AliAnalysisTaskDiHadronPID.cxx:105 AliAnalysisTaskDiHadronPID.cxx:106 AliAnalysisTaskDiHadronPID.cxx:107 AliAnalysisTaskDiHadronPID.cxx:108 AliAnalysisTaskDiHadronPID.cxx:109 AliAnalysisTaskDiHadronPID.cxx:110 AliAnalysisTaskDiHadronPID.cxx:111 AliAnalysisTaskDiHadronPID.cxx:112 AliAnalysisTaskDiHadronPID.cxx:113 AliAnalysisTaskDiHadronPID.cxx:114 AliAnalysisTaskDiHadronPID.cxx:115 AliAnalysisTaskDiHadronPID.cxx:116 AliAnalysisTaskDiHadronPID.cxx:117 AliAnalysisTaskDiHadronPID.cxx:118 AliAnalysisTaskDiHadronPID.cxx:119 AliAnalysisTaskDiHadronPID.cxx:120 AliAnalysisTaskDiHadronPID.cxx:121 AliAnalysisTaskDiHadronPID.cxx:122 AliAnalysisTaskDiHadronPID.cxx:123 AliAnalysisTaskDiHadronPID.cxx:124 AliAnalysisTaskDiHadronPID.cxx:125 AliAnalysisTaskDiHadronPID.cxx:126 AliAnalysisTaskDiHadronPID.cxx:127 AliAnalysisTaskDiHadronPID.cxx:128 AliAnalysisTaskDiHadronPID.cxx:129 AliAnalysisTaskDiHadronPID.cxx:130 AliAnalysisTaskDiHadronPID.cxx:131 AliAnalysisTaskDiHadronPID.cxx:132 AliAnalysisTaskDiHadronPID.cxx:133 AliAnalysisTaskDiHadronPID.cxx:134 AliAnalysisTaskDiHadronPID.cxx:135 AliAnalysisTaskDiHadronPID.cxx:136 AliAnalysisTaskDiHadronPID.cxx:137 AliAnalysisTaskDiHadronPID.cxx:138 AliAnalysisTaskDiHadronPID.cxx:139 AliAnalysisTaskDiHadronPID.cxx:140 AliAnalysisTaskDiHadronPID.cxx:141 AliAnalysisTaskDiHadronPID.cxx:142 AliAnalysisTaskDiHadronPID.cxx:143 AliAnalysisTaskDiHadronPID.cxx:144 AliAnalysisTaskDiHadronPID.cxx:145 AliAnalysisTaskDiHadronPID.cxx:146 AliAnalysisTaskDiHadronPID.cxx:147 AliAnalysisTaskDiHadronPID.cxx:148 AliAnalysisTaskDiHadronPID.cxx:149 AliAnalysisTaskDiHadronPID.cxx:150 AliAnalysisTaskDiHadronPID.cxx:151 AliAnalysisTaskDiHadronPID.cxx:152 AliAnalysisTaskDiHadronPID.cxx:153 AliAnalysisTaskDiHadronPID.cxx:154 AliAnalysisTaskDiHadronPID.cxx:155 AliAnalysisTaskDiHadronPID.cxx:156 AliAnalysisTaskDiHadronPID.cxx:157 AliAnalysisTaskDiHadronPID.cxx:158 AliAnalysisTaskDiHadronPID.cxx:159 AliAnalysisTaskDiHadronPID.cxx:160 AliAnalysisTaskDiHadronPID.cxx:161 AliAnalysisTaskDiHadronPID.cxx:162 AliAnalysisTaskDiHadronPID.cxx:163 AliAnalysisTaskDiHadronPID.cxx:164 AliAnalysisTaskDiHadronPID.cxx:165 AliAnalysisTaskDiHadronPID.cxx:166 AliAnalysisTaskDiHadronPID.cxx:167 AliAnalysisTaskDiHadronPID.cxx:168 AliAnalysisTaskDiHadronPID.cxx:169 AliAnalysisTaskDiHadronPID.cxx:170 AliAnalysisTaskDiHadronPID.cxx:171 AliAnalysisTaskDiHadronPID.cxx:172 AliAnalysisTaskDiHadronPID.cxx:173 AliAnalysisTaskDiHadronPID.cxx:174 AliAnalysisTaskDiHadronPID.cxx:175 AliAnalysisTaskDiHadronPID.cxx:176 AliAnalysisTaskDiHadronPID.cxx:177 AliAnalysisTaskDiHadronPID.cxx:178 AliAnalysisTaskDiHadronPID.cxx:179 AliAnalysisTaskDiHadronPID.cxx:180 AliAnalysisTaskDiHadronPID.cxx:181 AliAnalysisTaskDiHadronPID.cxx:182 AliAnalysisTaskDiHadronPID.cxx:183 AliAnalysisTaskDiHadronPID.cxx:184 AliAnalysisTaskDiHadronPID.cxx:185 AliAnalysisTaskDiHadronPID.cxx:186 AliAnalysisTaskDiHadronPID.cxx:187 AliAnalysisTaskDiHadronPID.cxx:188 AliAnalysisTaskDiHadronPID.cxx:189 AliAnalysisTaskDiHadronPID.cxx:190 AliAnalysisTaskDiHadronPID.cxx:191 AliAnalysisTaskDiHadronPID.cxx:192 AliAnalysisTaskDiHadronPID.cxx:193 AliAnalysisTaskDiHadronPID.cxx:194 AliAnalysisTaskDiHadronPID.cxx:195 AliAnalysisTaskDiHadronPID.cxx:196 AliAnalysisTaskDiHadronPID.cxx:197 AliAnalysisTaskDiHadronPID.cxx:198 AliAnalysisTaskDiHadronPID.cxx:199 AliAnalysisTaskDiHadronPID.cxx:200 AliAnalysisTaskDiHadronPID.cxx:201 AliAnalysisTaskDiHadronPID.cxx:202 AliAnalysisTaskDiHadronPID.cxx:203 AliAnalysisTaskDiHadronPID.cxx:204 AliAnalysisTaskDiHadronPID.cxx:205 AliAnalysisTaskDiHadronPID.cxx:206 AliAnalysisTaskDiHadronPID.cxx:207 AliAnalysisTaskDiHadronPID.cxx:208 AliAnalysisTaskDiHadronPID.cxx:209 AliAnalysisTaskDiHadronPID.cxx:210 AliAnalysisTaskDiHadronPID.cxx:211 AliAnalysisTaskDiHadronPID.cxx:212 AliAnalysisTaskDiHadronPID.cxx:213 AliAnalysisTaskDiHadronPID.cxx:214 AliAnalysisTaskDiHadronPID.cxx:215 AliAnalysisTaskDiHadronPID.cxx:216 AliAnalysisTaskDiHadronPID.cxx:217 AliAnalysisTaskDiHadronPID.cxx:218 AliAnalysisTaskDiHadronPID.cxx:219 AliAnalysisTaskDiHadronPID.cxx:220 AliAnalysisTaskDiHadronPID.cxx:221 AliAnalysisTaskDiHadronPID.cxx:222 AliAnalysisTaskDiHadronPID.cxx:223 AliAnalysisTaskDiHadronPID.cxx:224 AliAnalysisTaskDiHadronPID.cxx:225 AliAnalysisTaskDiHadronPID.cxx:226 AliAnalysisTaskDiHadronPID.cxx:227 AliAnalysisTaskDiHadronPID.cxx:228 AliAnalysisTaskDiHadronPID.cxx:229 AliAnalysisTaskDiHadronPID.cxx:230 AliAnalysisTaskDiHadronPID.cxx:231 AliAnalysisTaskDiHadronPID.cxx:232 AliAnalysisTaskDiHadronPID.cxx:233 AliAnalysisTaskDiHadronPID.cxx:234 AliAnalysisTaskDiHadronPID.cxx:235 AliAnalysisTaskDiHadronPID.cxx:236 AliAnalysisTaskDiHadronPID.cxx:237 AliAnalysisTaskDiHadronPID.cxx:238 AliAnalysisTaskDiHadronPID.cxx:239 AliAnalysisTaskDiHadronPID.cxx:240 AliAnalysisTaskDiHadronPID.cxx:241 AliAnalysisTaskDiHadronPID.cxx:242 AliAnalysisTaskDiHadronPID.cxx:243 AliAnalysisTaskDiHadronPID.cxx:244 AliAnalysisTaskDiHadronPID.cxx:245 AliAnalysisTaskDiHadronPID.cxx:246 AliAnalysisTaskDiHadronPID.cxx:247 AliAnalysisTaskDiHadronPID.cxx:248 AliAnalysisTaskDiHadronPID.cxx:249 AliAnalysisTaskDiHadronPID.cxx:250 AliAnalysisTaskDiHadronPID.cxx:251 AliAnalysisTaskDiHadronPID.cxx:252 AliAnalysisTaskDiHadronPID.cxx:253 AliAnalysisTaskDiHadronPID.cxx:254 AliAnalysisTaskDiHadronPID.cxx:255 AliAnalysisTaskDiHadronPID.cxx:256 AliAnalysisTaskDiHadronPID.cxx:257 AliAnalysisTaskDiHadronPID.cxx:258 AliAnalysisTaskDiHadronPID.cxx:259 AliAnalysisTaskDiHadronPID.cxx:260 AliAnalysisTaskDiHadronPID.cxx:261 AliAnalysisTaskDiHadronPID.cxx:262 AliAnalysisTaskDiHadronPID.cxx:263 AliAnalysisTaskDiHadronPID.cxx:264 AliAnalysisTaskDiHadronPID.cxx:265 AliAnalysisTaskDiHadronPID.cxx:266 AliAnalysisTaskDiHadronPID.cxx:267 AliAnalysisTaskDiHadronPID.cxx:268 AliAnalysisTaskDiHadronPID.cxx:269 AliAnalysisTaskDiHadronPID.cxx:270 AliAnalysisTaskDiHadronPID.cxx:271 AliAnalysisTaskDiHadronPID.cxx:272 AliAnalysisTaskDiHadronPID.cxx:273 AliAnalysisTaskDiHadronPID.cxx:274 AliAnalysisTaskDiHadronPID.cxx:275 AliAnalysisTaskDiHadronPID.cxx:276 AliAnalysisTaskDiHadronPID.cxx:277 AliAnalysisTaskDiHadronPID.cxx:278 AliAnalysisTaskDiHadronPID.cxx:279 AliAnalysisTaskDiHadronPID.cxx:280 AliAnalysisTaskDiHadronPID.cxx:281 AliAnalysisTaskDiHadronPID.cxx:282 AliAnalysisTaskDiHadronPID.cxx:283 AliAnalysisTaskDiHadronPID.cxx:284 AliAnalysisTaskDiHadronPID.cxx:285 AliAnalysisTaskDiHadronPID.cxx:286 AliAnalysisTaskDiHadronPID.cxx:287 AliAnalysisTaskDiHadronPID.cxx:288 AliAnalysisTaskDiHadronPID.cxx:289 AliAnalysisTaskDiHadronPID.cxx:290 AliAnalysisTaskDiHadronPID.cxx:291 AliAnalysisTaskDiHadronPID.cxx:292 AliAnalysisTaskDiHadronPID.cxx:293 AliAnalysisTaskDiHadronPID.cxx:294 AliAnalysisTaskDiHadronPID.cxx:295 AliAnalysisTaskDiHadronPID.cxx:296 AliAnalysisTaskDiHadronPID.cxx:297 AliAnalysisTaskDiHadronPID.cxx:298 AliAnalysisTaskDiHadronPID.cxx:299 AliAnalysisTaskDiHadronPID.cxx:300 AliAnalysisTaskDiHadronPID.cxx:301 AliAnalysisTaskDiHadronPID.cxx:302 AliAnalysisTaskDiHadronPID.cxx:303 AliAnalysisTaskDiHadronPID.cxx:304 AliAnalysisTaskDiHadronPID.cxx:305 AliAnalysisTaskDiHadronPID.cxx:306 AliAnalysisTaskDiHadronPID.cxx:307 AliAnalysisTaskDiHadronPID.cxx:308 AliAnalysisTaskDiHadronPID.cxx:309 AliAnalysisTaskDiHadronPID.cxx:310 AliAnalysisTaskDiHadronPID.cxx:311 AliAnalysisTaskDiHadronPID.cxx:312 AliAnalysisTaskDiHadronPID.cxx:313 AliAnalysisTaskDiHadronPID.cxx:314 AliAnalysisTaskDiHadronPID.cxx:315 AliAnalysisTaskDiHadronPID.cxx:316 AliAnalysisTaskDiHadronPID.cxx:317 AliAnalysisTaskDiHadronPID.cxx:318 AliAnalysisTaskDiHadronPID.cxx:319 AliAnalysisTaskDiHadronPID.cxx:320 AliAnalysisTaskDiHadronPID.cxx:321 AliAnalysisTaskDiHadronPID.cxx:322 AliAnalysisTaskDiHadronPID.cxx:323 AliAnalysisTaskDiHadronPID.cxx:324 AliAnalysisTaskDiHadronPID.cxx:325 AliAnalysisTaskDiHadronPID.cxx:326 AliAnalysisTaskDiHadronPID.cxx:327 AliAnalysisTaskDiHadronPID.cxx:328 AliAnalysisTaskDiHadronPID.cxx:329 AliAnalysisTaskDiHadronPID.cxx:330 AliAnalysisTaskDiHadronPID.cxx:331 AliAnalysisTaskDiHadronPID.cxx:332 AliAnalysisTaskDiHadronPID.cxx:333 AliAnalysisTaskDiHadronPID.cxx:334 AliAnalysisTaskDiHadronPID.cxx:335 AliAnalysisTaskDiHadronPID.cxx:336 AliAnalysisTaskDiHadronPID.cxx:337 AliAnalysisTaskDiHadronPID.cxx:338 AliAnalysisTaskDiHadronPID.cxx:339 AliAnalysisTaskDiHadronPID.cxx:340 AliAnalysisTaskDiHadronPID.cxx:341 AliAnalysisTaskDiHadronPID.cxx:342 AliAnalysisTaskDiHadronPID.cxx:343 AliAnalysisTaskDiHadronPID.cxx:344 AliAnalysisTaskDiHadronPID.cxx:345 AliAnalysisTaskDiHadronPID.cxx:346 AliAnalysisTaskDiHadronPID.cxx:347 AliAnalysisTaskDiHadronPID.cxx:348 AliAnalysisTaskDiHadronPID.cxx:349 AliAnalysisTaskDiHadronPID.cxx:350 AliAnalysisTaskDiHadronPID.cxx:351 AliAnalysisTaskDiHadronPID.cxx:352 AliAnalysisTaskDiHadronPID.cxx:353 AliAnalysisTaskDiHadronPID.cxx:354 AliAnalysisTaskDiHadronPID.cxx:355 AliAnalysisTaskDiHadronPID.cxx:356 AliAnalysisTaskDiHadronPID.cxx:357 AliAnalysisTaskDiHadronPID.cxx:358 AliAnalysisTaskDiHadronPID.cxx:359 AliAnalysisTaskDiHadronPID.cxx:360 AliAnalysisTaskDiHadronPID.cxx:361 AliAnalysisTaskDiHadronPID.cxx:362 AliAnalysisTaskDiHadronPID.cxx:363 AliAnalysisTaskDiHadronPID.cxx:364 AliAnalysisTaskDiHadronPID.cxx:365 AliAnalysisTaskDiHadronPID.cxx:366 AliAnalysisTaskDiHadronPID.cxx:367 AliAnalysisTaskDiHadronPID.cxx:368 AliAnalysisTaskDiHadronPID.cxx:369 AliAnalysisTaskDiHadronPID.cxx:370 AliAnalysisTaskDiHadronPID.cxx:371 AliAnalysisTaskDiHadronPID.cxx:372 AliAnalysisTaskDiHadronPID.cxx:373 AliAnalysisTaskDiHadronPID.cxx:374 AliAnalysisTaskDiHadronPID.cxx:375 AliAnalysisTaskDiHadronPID.cxx:376 AliAnalysisTaskDiHadronPID.cxx:377 AliAnalysisTaskDiHadronPID.cxx:378 AliAnalysisTaskDiHadronPID.cxx:379 AliAnalysisTaskDiHadronPID.cxx:380 AliAnalysisTaskDiHadronPID.cxx:381 AliAnalysisTaskDiHadronPID.cxx:382 AliAnalysisTaskDiHadronPID.cxx:383 AliAnalysisTaskDiHadronPID.cxx:384 AliAnalysisTaskDiHadronPID.cxx:385 AliAnalysisTaskDiHadronPID.cxx:386 AliAnalysisTaskDiHadronPID.cxx:387 AliAnalysisTaskDiHadronPID.cxx:388 AliAnalysisTaskDiHadronPID.cxx:389 AliAnalysisTaskDiHadronPID.cxx:390 AliAnalysisTaskDiHadronPID.cxx:391 AliAnalysisTaskDiHadronPID.cxx:392 AliAnalysisTaskDiHadronPID.cxx:393 AliAnalysisTaskDiHadronPID.cxx:394 AliAnalysisTaskDiHadronPID.cxx:395 AliAnalysisTaskDiHadronPID.cxx:396 AliAnalysisTaskDiHadronPID.cxx:397 AliAnalysisTaskDiHadronPID.cxx:398 AliAnalysisTaskDiHadronPID.cxx:399 AliAnalysisTaskDiHadronPID.cxx:400 AliAnalysisTaskDiHadronPID.cxx:401 AliAnalysisTaskDiHadronPID.cxx:402 AliAnalysisTaskDiHadronPID.cxx:403 AliAnalysisTaskDiHadronPID.cxx:404 AliAnalysisTaskDiHadronPID.cxx:405 AliAnalysisTaskDiHadronPID.cxx:406 AliAnalysisTaskDiHadronPID.cxx:407 AliAnalysisTaskDiHadronPID.cxx:408 AliAnalysisTaskDiHadronPID.cxx:409 AliAnalysisTaskDiHadronPID.cxx:410 AliAnalysisTaskDiHadronPID.cxx:411 AliAnalysisTaskDiHadronPID.cxx:412 AliAnalysisTaskDiHadronPID.cxx:413 AliAnalysisTaskDiHadronPID.cxx:414 AliAnalysisTaskDiHadronPID.cxx:415 AliAnalysisTaskDiHadronPID.cxx:416 AliAnalysisTaskDiHadronPID.cxx:417 AliAnalysisTaskDiHadronPID.cxx:418 AliAnalysisTaskDiHadronPID.cxx:419 AliAnalysisTaskDiHadronPID.cxx:420 AliAnalysisTaskDiHadronPID.cxx:421 AliAnalysisTaskDiHadronPID.cxx:422 AliAnalysisTaskDiHadronPID.cxx:423 AliAnalysisTaskDiHadronPID.cxx:424 AliAnalysisTaskDiHadronPID.cxx:425 AliAnalysisTaskDiHadronPID.cxx:426 AliAnalysisTaskDiHadronPID.cxx:427 AliAnalysisTaskDiHadronPID.cxx:428 AliAnalysisTaskDiHadronPID.cxx:429 AliAnalysisTaskDiHadronPID.cxx:430 AliAnalysisTaskDiHadronPID.cxx:431 AliAnalysisTaskDiHadronPID.cxx:432 AliAnalysisTaskDiHadronPID.cxx:433 AliAnalysisTaskDiHadronPID.cxx:434 AliAnalysisTaskDiHadronPID.cxx:435 AliAnalysisTaskDiHadronPID.cxx:436 AliAnalysisTaskDiHadronPID.cxx:437 AliAnalysisTaskDiHadronPID.cxx:438 AliAnalysisTaskDiHadronPID.cxx:439 AliAnalysisTaskDiHadronPID.cxx:440 AliAnalysisTaskDiHadronPID.cxx:441 AliAnalysisTaskDiHadronPID.cxx:442 AliAnalysisTaskDiHadronPID.cxx:443 AliAnalysisTaskDiHadronPID.cxx:444 AliAnalysisTaskDiHadronPID.cxx:445 AliAnalysisTaskDiHadronPID.cxx:446 AliAnalysisTaskDiHadronPID.cxx:447 AliAnalysisTaskDiHadronPID.cxx:448 AliAnalysisTaskDiHadronPID.cxx:449 AliAnalysisTaskDiHadronPID.cxx:450 AliAnalysisTaskDiHadronPID.cxx:451 AliAnalysisTaskDiHadronPID.cxx:452 AliAnalysisTaskDiHadronPID.cxx:453 AliAnalysisTaskDiHadronPID.cxx:454 AliAnalysisTaskDiHadronPID.cxx:455 AliAnalysisTaskDiHadronPID.cxx:456 AliAnalysisTaskDiHadronPID.cxx:457 AliAnalysisTaskDiHadronPID.cxx:458 AliAnalysisTaskDiHadronPID.cxx:459 AliAnalysisTaskDiHadronPID.cxx:460 AliAnalysisTaskDiHadronPID.cxx:461 AliAnalysisTaskDiHadronPID.cxx:462 AliAnalysisTaskDiHadronPID.cxx:463 AliAnalysisTaskDiHadronPID.cxx:464 AliAnalysisTaskDiHadronPID.cxx:465 AliAnalysisTaskDiHadronPID.cxx:466 AliAnalysisTaskDiHadronPID.cxx:467 AliAnalysisTaskDiHadronPID.cxx:468 AliAnalysisTaskDiHadronPID.cxx:469 AliAnalysisTaskDiHadronPID.cxx:470 AliAnalysisTaskDiHadronPID.cxx:471 AliAnalysisTaskDiHadronPID.cxx:472 AliAnalysisTaskDiHadronPID.cxx:473 AliAnalysisTaskDiHadronPID.cxx:474 AliAnalysisTaskDiHadronPID.cxx:475 AliAnalysisTaskDiHadronPID.cxx:476 AliAnalysisTaskDiHadronPID.cxx:477 AliAnalysisTaskDiHadronPID.cxx:478 AliAnalysisTaskDiHadronPID.cxx:479 AliAnalysisTaskDiHadronPID.cxx:480 AliAnalysisTaskDiHadronPID.cxx:481 AliAnalysisTaskDiHadronPID.cxx:482 AliAnalysisTaskDiHadronPID.cxx:483 AliAnalysisTaskDiHadronPID.cxx:484 AliAnalysisTaskDiHadronPID.cxx:485 AliAnalysisTaskDiHadronPID.cxx:486 AliAnalysisTaskDiHadronPID.cxx:487 AliAnalysisTaskDiHadronPID.cxx:488 AliAnalysisTaskDiHadronPID.cxx:489 AliAnalysisTaskDiHadronPID.cxx:490 AliAnalysisTaskDiHadronPID.cxx:491 AliAnalysisTaskDiHadronPID.cxx:492 AliAnalysisTaskDiHadronPID.cxx:493 AliAnalysisTaskDiHadronPID.cxx:494 AliAnalysisTaskDiHadronPID.cxx:495 AliAnalysisTaskDiHadronPID.cxx:496 AliAnalysisTaskDiHadronPID.cxx:497 AliAnalysisTaskDiHadronPID.cxx:498 AliAnalysisTaskDiHadronPID.cxx:499 AliAnalysisTaskDiHadronPID.cxx:500 AliAnalysisTaskDiHadronPID.cxx:501 AliAnalysisTaskDiHadronPID.cxx:502 AliAnalysisTaskDiHadronPID.cxx:503 AliAnalysisTaskDiHadronPID.cxx:504 AliAnalysisTaskDiHadronPID.cxx:505 AliAnalysisTaskDiHadronPID.cxx:506 AliAnalysisTaskDiHadronPID.cxx:507 AliAnalysisTaskDiHadronPID.cxx:508 AliAnalysisTaskDiHadronPID.cxx:509 AliAnalysisTaskDiHadronPID.cxx:510 AliAnalysisTaskDiHadronPID.cxx:511 AliAnalysisTaskDiHadronPID.cxx:512 AliAnalysisTaskDiHadronPID.cxx:513 AliAnalysisTaskDiHadronPID.cxx:514 AliAnalysisTaskDiHadronPID.cxx:515 AliAnalysisTaskDiHadronPID.cxx:516 AliAnalysisTaskDiHadronPID.cxx:517 AliAnalysisTaskDiHadronPID.cxx:518 AliAnalysisTaskDiHadronPID.cxx:519 AliAnalysisTaskDiHadronPID.cxx:520 AliAnalysisTaskDiHadronPID.cxx:521 AliAnalysisTaskDiHadronPID.cxx:522 AliAnalysisTaskDiHadronPID.cxx:523 AliAnalysisTaskDiHadronPID.cxx:524 AliAnalysisTaskDiHadronPID.cxx:525 AliAnalysisTaskDiHadronPID.cxx:526 AliAnalysisTaskDiHadronPID.cxx:527 AliAnalysisTaskDiHadronPID.cxx:528 AliAnalysisTaskDiHadronPID.cxx:529 AliAnalysisTaskDiHadronPID.cxx:530 AliAnalysisTaskDiHadronPID.cxx:531 AliAnalysisTaskDiHadronPID.cxx:532 AliAnalysisTaskDiHadronPID.cxx:533 AliAnalysisTaskDiHadronPID.cxx:534 AliAnalysisTaskDiHadronPID.cxx:535 AliAnalysisTaskDiHadronPID.cxx:536 AliAnalysisTaskDiHadronPID.cxx:537 AliAnalysisTaskDiHadronPID.cxx:538 AliAnalysisTaskDiHadronPID.cxx:539 AliAnalysisTaskDiHadronPID.cxx:540 AliAnalysisTaskDiHadronPID.cxx:541 AliAnalysisTaskDiHadronPID.cxx:542 AliAnalysisTaskDiHadronPID.cxx:543 AliAnalysisTaskDiHadronPID.cxx:544 AliAnalysisTaskDiHadronPID.cxx:545 AliAnalysisTaskDiHadronPID.cxx:546 AliAnalysisTaskDiHadronPID.cxx:547 AliAnalysisTaskDiHadronPID.cxx:548 AliAnalysisTaskDiHadronPID.cxx:549 AliAnalysisTaskDiHadronPID.cxx:550 AliAnalysisTaskDiHadronPID.cxx:551 AliAnalysisTaskDiHadronPID.cxx:552 AliAnalysisTaskDiHadronPID.cxx:553 AliAnalysisTaskDiHadronPID.cxx:554 AliAnalysisTaskDiHadronPID.cxx:555 AliAnalysisTaskDiHadronPID.cxx:556 AliAnalysisTaskDiHadronPID.cxx:557 AliAnalysisTaskDiHadronPID.cxx:558 AliAnalysisTaskDiHadronPID.cxx:559 AliAnalysisTaskDiHadronPID.cxx:560 AliAnalysisTaskDiHadronPID.cxx:561 AliAnalysisTaskDiHadronPID.cxx:562 AliAnalysisTaskDiHadronPID.cxx:563 AliAnalysisTaskDiHadronPID.cxx:564 AliAnalysisTaskDiHadronPID.cxx:565 AliAnalysisTaskDiHadronPID.cxx:566 AliAnalysisTaskDiHadronPID.cxx:567 AliAnalysisTaskDiHadronPID.cxx:568 AliAnalysisTaskDiHadronPID.cxx:569 AliAnalysisTaskDiHadronPID.cxx:570 AliAnalysisTaskDiHadronPID.cxx:571 AliAnalysisTaskDiHadronPID.cxx:572 AliAnalysisTaskDiHadronPID.cxx:573 AliAnalysisTaskDiHadronPID.cxx:574 AliAnalysisTaskDiHadronPID.cxx:575 AliAnalysisTaskDiHadronPID.cxx:576 AliAnalysisTaskDiHadronPID.cxx:577 AliAnalysisTaskDiHadronPID.cxx:578 AliAnalysisTaskDiHadronPID.cxx:579 AliAnalysisTaskDiHadronPID.cxx:580 AliAnalysisTaskDiHadronPID.cxx:581 AliAnalysisTaskDiHadronPID.cxx:582 AliAnalysisTaskDiHadronPID.cxx:583 AliAnalysisTaskDiHadronPID.cxx:584 AliAnalysisTaskDiHadronPID.cxx:585 AliAnalysisTaskDiHadronPID.cxx:586 AliAnalysisTaskDiHadronPID.cxx:587 AliAnalysisTaskDiHadronPID.cxx:588 AliAnalysisTaskDiHadronPID.cxx:589 AliAnalysisTaskDiHadronPID.cxx:590 AliAnalysisTaskDiHadronPID.cxx:591 AliAnalysisTaskDiHadronPID.cxx:592 AliAnalysisTaskDiHadronPID.cxx:593 AliAnalysisTaskDiHadronPID.cxx:594 AliAnalysisTaskDiHadronPID.cxx:595 AliAnalysisTaskDiHadronPID.cxx:596 AliAnalysisTaskDiHadronPID.cxx:597 AliAnalysisTaskDiHadronPID.cxx:598 AliAnalysisTaskDiHadronPID.cxx:599 AliAnalysisTaskDiHadronPID.cxx:600 AliAnalysisTaskDiHadronPID.cxx:601 AliAnalysisTaskDiHadronPID.cxx:602 AliAnalysisTaskDiHadronPID.cxx:603 AliAnalysisTaskDiHadronPID.cxx:604 AliAnalysisTaskDiHadronPID.cxx:605 AliAnalysisTaskDiHadronPID.cxx:606 AliAnalysisTaskDiHadronPID.cxx:607 AliAnalysisTaskDiHadronPID.cxx:608 AliAnalysisTaskDiHadronPID.cxx:609 AliAnalysisTaskDiHadronPID.cxx:610 AliAnalysisTaskDiHadronPID.cxx:611 AliAnalysisTaskDiHadronPID.cxx:612 AliAnalysisTaskDiHadronPID.cxx:613 AliAnalysisTaskDiHadronPID.cxx:614 AliAnalysisTaskDiHadronPID.cxx:615 AliAnalysisTaskDiHadronPID.cxx:616 AliAnalysisTaskDiHadronPID.cxx:617 AliAnalysisTaskDiHadronPID.cxx:618 AliAnalysisTaskDiHadronPID.cxx:619 AliAnalysisTaskDiHadronPID.cxx:620 AliAnalysisTaskDiHadronPID.cxx:621 AliAnalysisTaskDiHadronPID.cxx:622 AliAnalysisTaskDiHadronPID.cxx:623 AliAnalysisTaskDiHadronPID.cxx:624 AliAnalysisTaskDiHadronPID.cxx:625 AliAnalysisTaskDiHadronPID.cxx:626 AliAnalysisTaskDiHadronPID.cxx:627 AliAnalysisTaskDiHadronPID.cxx:628 AliAnalysisTaskDiHadronPID.cxx:629 AliAnalysisTaskDiHadronPID.cxx:630 AliAnalysisTaskDiHadronPID.cxx:631 AliAnalysisTaskDiHadronPID.cxx:632 AliAnalysisTaskDiHadronPID.cxx:633 AliAnalysisTaskDiHadronPID.cxx:634 AliAnalysisTaskDiHadronPID.cxx:635 AliAnalysisTaskDiHadronPID.cxx:636 AliAnalysisTaskDiHadronPID.cxx:637 AliAnalysisTaskDiHadronPID.cxx:638 AliAnalysisTaskDiHadronPID.cxx:639 AliAnalysisTaskDiHadronPID.cxx:640 AliAnalysisTaskDiHadronPID.cxx:641 AliAnalysisTaskDiHadronPID.cxx:642 AliAnalysisTaskDiHadronPID.cxx:643 AliAnalysisTaskDiHadronPID.cxx:644 AliAnalysisTaskDiHadronPID.cxx:645 AliAnalysisTaskDiHadronPID.cxx:646 AliAnalysisTaskDiHadronPID.cxx:647 AliAnalysisTaskDiHadronPID.cxx:648 AliAnalysisTaskDiHadronPID.cxx:649 AliAnalysisTaskDiHadronPID.cxx:650 AliAnalysisTaskDiHadronPID.cxx:651 AliAnalysisTaskDiHadronPID.cxx:652 AliAnalysisTaskDiHadronPID.cxx:653 AliAnalysisTaskDiHadronPID.cxx:654 AliAnalysisTaskDiHadronPID.cxx:655 AliAnalysisTaskDiHadronPID.cxx:656 AliAnalysisTaskDiHadronPID.cxx:657 AliAnalysisTaskDiHadronPID.cxx:658 AliAnalysisTaskDiHadronPID.cxx:659 AliAnalysisTaskDiHadronPID.cxx:660 AliAnalysisTaskDiHadronPID.cxx:661 AliAnalysisTaskDiHadronPID.cxx:662 AliAnalysisTaskDiHadronPID.cxx:663 AliAnalysisTaskDiHadronPID.cxx:664 AliAnalysisTaskDiHadronPID.cxx:665 AliAnalysisTaskDiHadronPID.cxx:666 AliAnalysisTaskDiHadronPID.cxx:667 AliAnalysisTaskDiHadronPID.cxx:668 AliAnalysisTaskDiHadronPID.cxx:669 AliAnalysisTaskDiHadronPID.cxx:670 AliAnalysisTaskDiHadronPID.cxx:671 AliAnalysisTaskDiHadronPID.cxx:672 AliAnalysisTaskDiHadronPID.cxx:673 AliAnalysisTaskDiHadronPID.cxx:674 AliAnalysisTaskDiHadronPID.cxx:675 AliAnalysisTaskDiHadronPID.cxx:676 AliAnalysisTaskDiHadronPID.cxx:677 AliAnalysisTaskDiHadronPID.cxx:678 AliAnalysisTaskDiHadronPID.cxx:679 AliAnalysisTaskDiHadronPID.cxx:680 AliAnalysisTaskDiHadronPID.cxx:681 AliAnalysisTaskDiHadronPID.cxx:682 AliAnalysisTaskDiHadronPID.cxx:683 AliAnalysisTaskDiHadronPID.cxx:684 AliAnalysisTaskDiHadronPID.cxx:685 AliAnalysisTaskDiHadronPID.cxx:686 AliAnalysisTaskDiHadronPID.cxx:687 AliAnalysisTaskDiHadronPID.cxx:688 AliAnalysisTaskDiHadronPID.cxx:689 AliAnalysisTaskDiHadronPID.cxx:690 AliAnalysisTaskDiHadronPID.cxx:691 AliAnalysisTaskDiHadronPID.cxx:692 AliAnalysisTaskDiHadronPID.cxx:693 AliAnalysisTaskDiHadronPID.cxx:694 AliAnalysisTaskDiHadronPID.cxx:695 AliAnalysisTaskDiHadronPID.cxx:696 AliAnalysisTaskDiHadronPID.cxx:697 AliAnalysisTaskDiHadronPID.cxx:698 AliAnalysisTaskDiHadronPID.cxx:699 AliAnalysisTaskDiHadronPID.cxx:700 AliAnalysisTaskDiHadronPID.cxx:701 AliAnalysisTaskDiHadronPID.cxx:702 AliAnalysisTaskDiHadronPID.cxx:703 AliAnalysisTaskDiHadronPID.cxx:704 AliAnalysisTaskDiHadronPID.cxx:705 AliAnalysisTaskDiHadronPID.cxx:706 AliAnalysisTaskDiHadronPID.cxx:707 AliAnalysisTaskDiHadronPID.cxx:708 AliAnalysisTaskDiHadronPID.cxx:709 AliAnalysisTaskDiHadronPID.cxx:710 AliAnalysisTaskDiHadronPID.cxx:711 AliAnalysisTaskDiHadronPID.cxx:712 AliAnalysisTaskDiHadronPID.cxx:713 AliAnalysisTaskDiHadronPID.cxx:714 AliAnalysisTaskDiHadronPID.cxx:715 AliAnalysisTaskDiHadronPID.cxx:716 AliAnalysisTaskDiHadronPID.cxx:717 AliAnalysisTaskDiHadronPID.cxx:718 AliAnalysisTaskDiHadronPID.cxx:719 AliAnalysisTaskDiHadronPID.cxx:720 AliAnalysisTaskDiHadronPID.cxx:721 AliAnalysisTaskDiHadronPID.cxx:722 AliAnalysisTaskDiHadronPID.cxx:723 AliAnalysisTaskDiHadronPID.cxx:724 AliAnalysisTaskDiHadronPID.cxx:725 AliAnalysisTaskDiHadronPID.cxx:726 AliAnalysisTaskDiHadronPID.cxx:727 AliAnalysisTaskDiHadronPID.cxx:728 AliAnalysisTaskDiHadronPID.cxx:729 AliAnalysisTaskDiHadronPID.cxx:730 AliAnalysisTaskDiHadronPID.cxx:731 AliAnalysisTaskDiHadronPID.cxx:732 AliAnalysisTaskDiHadronPID.cxx:733 AliAnalysisTaskDiHadronPID.cxx:734 AliAnalysisTaskDiHadronPID.cxx:735 AliAnalysisTaskDiHadronPID.cxx:736 AliAnalysisTaskDiHadronPID.cxx:737 AliAnalysisTaskDiHadronPID.cxx:738 AliAnalysisTaskDiHadronPID.cxx:739 AliAnalysisTaskDiHadronPID.cxx:740 AliAnalysisTaskDiHadronPID.cxx:741 AliAnalysisTaskDiHadronPID.cxx:742 AliAnalysisTaskDiHadronPID.cxx:743 AliAnalysisTaskDiHadronPID.cxx:744 AliAnalysisTaskDiHadronPID.cxx:745 AliAnalysisTaskDiHadronPID.cxx:746 AliAnalysisTaskDiHadronPID.cxx:747 AliAnalysisTaskDiHadronPID.cxx:748 AliAnalysisTaskDiHadronPID.cxx:749 AliAnalysisTaskDiHadronPID.cxx:750 AliAnalysisTaskDiHadronPID.cxx:751 AliAnalysisTaskDiHadronPID.cxx:752 AliAnalysisTaskDiHadronPID.cxx:753 AliAnalysisTaskDiHadronPID.cxx:754 AliAnalysisTaskDiHadronPID.cxx:755 AliAnalysisTaskDiHadronPID.cxx:756 AliAnalysisTaskDiHadronPID.cxx:757 AliAnalysisTaskDiHadronPID.cxx:758 AliAnalysisTaskDiHadronPID.cxx:759 AliAnalysisTaskDiHadronPID.cxx:760 AliAnalysisTaskDiHadronPID.cxx:761 AliAnalysisTaskDiHadronPID.cxx:762 AliAnalysisTaskDiHadronPID.cxx:763 AliAnalysisTaskDiHadronPID.cxx:764 AliAnalysisTaskDiHadronPID.cxx:765 AliAnalysisTaskDiHadronPID.cxx:766 AliAnalysisTaskDiHadronPID.cxx:767 AliAnalysisTaskDiHadronPID.cxx:768 AliAnalysisTaskDiHadronPID.cxx:769 AliAnalysisTaskDiHadronPID.cxx:770 AliAnalysisTaskDiHadronPID.cxx:771 AliAnalysisTaskDiHadronPID.cxx:772 AliAnalysisTaskDiHadronPID.cxx:773 AliAnalysisTaskDiHadronPID.cxx:774 AliAnalysisTaskDiHadronPID.cxx:775 AliAnalysisTaskDiHadronPID.cxx:776 AliAnalysisTaskDiHadronPID.cxx:777 AliAnalysisTaskDiHadronPID.cxx:778 AliAnalysisTaskDiHadronPID.cxx:779 AliAnalysisTaskDiHadronPID.cxx:780 AliAnalysisTaskDiHadronPID.cxx:781 AliAnalysisTaskDiHadronPID.cxx:782 AliAnalysisTaskDiHadronPID.cxx:783 AliAnalysisTaskDiHadronPID.cxx:784 AliAnalysisTaskDiHadronPID.cxx:785 AliAnalysisTaskDiHadronPID.cxx:786 AliAnalysisTaskDiHadronPID.cxx:787 AliAnalysisTaskDiHadronPID.cxx:788 AliAnalysisTaskDiHadronPID.cxx:789 AliAnalysisTaskDiHadronPID.cxx:790 AliAnalysisTaskDiHadronPID.cxx:791 AliAnalysisTaskDiHadronPID.cxx:792 AliAnalysisTaskDiHadronPID.cxx:793 AliAnalysisTaskDiHadronPID.cxx:794 AliAnalysisTaskDiHadronPID.cxx:795 AliAnalysisTaskDiHadronPID.cxx:796 AliAnalysisTaskDiHadronPID.cxx:797 AliAnalysisTaskDiHadronPID.cxx:798 AliAnalysisTaskDiHadronPID.cxx:799 AliAnalysisTaskDiHadronPID.cxx:800 AliAnalysisTaskDiHadronPID.cxx:801 AliAnalysisTaskDiHadronPID.cxx:802 AliAnalysisTaskDiHadronPID.cxx:803 AliAnalysisTaskDiHadronPID.cxx:804 AliAnalysisTaskDiHadronPID.cxx:805 AliAnalysisTaskDiHadronPID.cxx:806 AliAnalysisTaskDiHadronPID.cxx:807 AliAnalysisTaskDiHadronPID.cxx:808 AliAnalysisTaskDiHadronPID.cxx:809 AliAnalysisTaskDiHadronPID.cxx:810 AliAnalysisTaskDiHadronPID.cxx:811 AliAnalysisTaskDiHadronPID.cxx:812 AliAnalysisTaskDiHadronPID.cxx:813 AliAnalysisTaskDiHadronPID.cxx:814 AliAnalysisTaskDiHadronPID.cxx:815 AliAnalysisTaskDiHadronPID.cxx:816 AliAnalysisTaskDiHadronPID.cxx:817 AliAnalysisTaskDiHadronPID.cxx:818 AliAnalysisTaskDiHadronPID.cxx:819 AliAnalysisTaskDiHadronPID.cxx:820 AliAnalysisTaskDiHadronPID.cxx:821 AliAnalysisTaskDiHadronPID.cxx:822 AliAnalysisTaskDiHadronPID.cxx:823 AliAnalysisTaskDiHadronPID.cxx:824 AliAnalysisTaskDiHadronPID.cxx:825 AliAnalysisTaskDiHadronPID.cxx:826 AliAnalysisTaskDiHadronPID.cxx:827 AliAnalysisTaskDiHadronPID.cxx:828 AliAnalysisTaskDiHadronPID.cxx:829 AliAnalysisTaskDiHadronPID.cxx:830 AliAnalysisTaskDiHadronPID.cxx:831 AliAnalysisTaskDiHadronPID.cxx:832 AliAnalysisTaskDiHadronPID.cxx:833 AliAnalysisTaskDiHadronPID.cxx:834 AliAnalysisTaskDiHadronPID.cxx:835 AliAnalysisTaskDiHadronPID.cxx:836 AliAnalysisTaskDiHadronPID.cxx:837 AliAnalysisTaskDiHadronPID.cxx:838 AliAnalysisTaskDiHadronPID.cxx:839 AliAnalysisTaskDiHadronPID.cxx:840 AliAnalysisTaskDiHadronPID.cxx:841 AliAnalysisTaskDiHadronPID.cxx:842 AliAnalysisTaskDiHadronPID.cxx:843 AliAnalysisTaskDiHadronPID.cxx:844 AliAnalysisTaskDiHadronPID.cxx:845 AliAnalysisTaskDiHadronPID.cxx:846 AliAnalysisTaskDiHadronPID.cxx:847 AliAnalysisTaskDiHadronPID.cxx:848 AliAnalysisTaskDiHadronPID.cxx:849 AliAnalysisTaskDiHadronPID.cxx:850 AliAnalysisTaskDiHadronPID.cxx:851 AliAnalysisTaskDiHadronPID.cxx:852 AliAnalysisTaskDiHadronPID.cxx:853 AliAnalysisTaskDiHadronPID.cxx:854 AliAnalysisTaskDiHadronPID.cxx:855 AliAnalysisTaskDiHadronPID.cxx:856 AliAnalysisTaskDiHadronPID.cxx:857 AliAnalysisTaskDiHadronPID.cxx:858 AliAnalysisTaskDiHadronPID.cxx:859 AliAnalysisTaskDiHadronPID.cxx:860 AliAnalysisTaskDiHadronPID.cxx:861 AliAnalysisTaskDiHadronPID.cxx:862 AliAnalysisTaskDiHadronPID.cxx:863 AliAnalysisTaskDiHadronPID.cxx:864 AliAnalysisTaskDiHadronPID.cxx:865 AliAnalysisTaskDiHadronPID.cxx:866 AliAnalysisTaskDiHadronPID.cxx:867 AliAnalysisTaskDiHadronPID.cxx:868 AliAnalysisTaskDiHadronPID.cxx:869 AliAnalysisTaskDiHadronPID.cxx:870 AliAnalysisTaskDiHadronPID.cxx:871 AliAnalysisTaskDiHadronPID.cxx:872 AliAnalysisTaskDiHadronPID.cxx:873 AliAnalysisTaskDiHadronPID.cxx:874 AliAnalysisTaskDiHadronPID.cxx:875 AliAnalysisTaskDiHadronPID.cxx:876 AliAnalysisTaskDiHadronPID.cxx:877 AliAnalysisTaskDiHadronPID.cxx:878 AliAnalysisTaskDiHadronPID.cxx:879 AliAnalysisTaskDiHadronPID.cxx:880 AliAnalysisTaskDiHadronPID.cxx:881 AliAnalysisTaskDiHadronPID.cxx:882 AliAnalysisTaskDiHadronPID.cxx:883 AliAnalysisTaskDiHadronPID.cxx:884 AliAnalysisTaskDiHadronPID.cxx:885 AliAnalysisTaskDiHadronPID.cxx:886 AliAnalysisTaskDiHadronPID.cxx:887 AliAnalysisTaskDiHadronPID.cxx:888 AliAnalysisTaskDiHadronPID.cxx:889 AliAnalysisTaskDiHadronPID.cxx:890 AliAnalysisTaskDiHadronPID.cxx:891 AliAnalysisTaskDiHadronPID.cxx:892 AliAnalysisTaskDiHadronPID.cxx:893 AliAnalysisTaskDiHadronPID.cxx:894 AliAnalysisTaskDiHadronPID.cxx:895 AliAnalysisTaskDiHadronPID.cxx:896 AliAnalysisTaskDiHadronPID.cxx:897 AliAnalysisTaskDiHadronPID.cxx:898 AliAnalysisTaskDiHadronPID.cxx:899 AliAnalysisTaskDiHadronPID.cxx:900 AliAnalysisTaskDiHadronPID.cxx:901 AliAnalysisTaskDiHadronPID.cxx:902 AliAnalysisTaskDiHadronPID.cxx:903 AliAnalysisTaskDiHadronPID.cxx:904 AliAnalysisTaskDiHadronPID.cxx:905 AliAnalysisTaskDiHadronPID.cxx:906 AliAnalysisTaskDiHadronPID.cxx:907 AliAnalysisTaskDiHadronPID.cxx:908 AliAnalysisTaskDiHadronPID.cxx:909 AliAnalysisTaskDiHadronPID.cxx:910 AliAnalysisTaskDiHadronPID.cxx:911 AliAnalysisTaskDiHadronPID.cxx:912 AliAnalysisTaskDiHadronPID.cxx:913 AliAnalysisTaskDiHadronPID.cxx:914 AliAnalysisTaskDiHadronPID.cxx:915 AliAnalysisTaskDiHadronPID.cxx:916 AliAnalysisTaskDiHadronPID.cxx:917 AliAnalysisTaskDiHadronPID.cxx:918 AliAnalysisTaskDiHadronPID.cxx:919 AliAnalysisTaskDiHadronPID.cxx:920 AliAnalysisTaskDiHadronPID.cxx:921 AliAnalysisTaskDiHadronPID.cxx:922 AliAnalysisTaskDiHadronPID.cxx:923 AliAnalysisTaskDiHadronPID.cxx:924 AliAnalysisTaskDiHadronPID.cxx:925 AliAnalysisTaskDiHadronPID.cxx:926 AliAnalysisTaskDiHadronPID.cxx:927 AliAnalysisTaskDiHadronPID.cxx:928 AliAnalysisTaskDiHadronPID.cxx:929 AliAnalysisTaskDiHadronPID.cxx:930 AliAnalysisTaskDiHadronPID.cxx:931 AliAnalysisTaskDiHadronPID.cxx:932 AliAnalysisTaskDiHadronPID.cxx:933 AliAnalysisTaskDiHadronPID.cxx:934 AliAnalysisTaskDiHadronPID.cxx:935 AliAnalysisTaskDiHadronPID.cxx:936 AliAnalysisTaskDiHadronPID.cxx:937 AliAnalysisTaskDiHadronPID.cxx:938 AliAnalysisTaskDiHadronPID.cxx:939 AliAnalysisTaskDiHadronPID.cxx:940 AliAnalysisTaskDiHadronPID.cxx:941 AliAnalysisTaskDiHadronPID.cxx:942 AliAnalysisTaskDiHadronPID.cxx:943 AliAnalysisTaskDiHadronPID.cxx:944 AliAnalysisTaskDiHadronPID.cxx:945 AliAnalysisTaskDiHadronPID.cxx:946 AliAnalysisTaskDiHadronPID.cxx:947 AliAnalysisTaskDiHadronPID.cxx:948 AliAnalysisTaskDiHadronPID.cxx:949 AliAnalysisTaskDiHadronPID.cxx:950 AliAnalysisTaskDiHadronPID.cxx:951 AliAnalysisTaskDiHadronPID.cxx:952 AliAnalysisTaskDiHadronPID.cxx:953 AliAnalysisTaskDiHadronPID.cxx:954 AliAnalysisTaskDiHadronPID.cxx:955 AliAnalysisTaskDiHadronPID.cxx:956 AliAnalysisTaskDiHadronPID.cxx:957 AliAnalysisTaskDiHadronPID.cxx:958 AliAnalysisTaskDiHadronPID.cxx:959 AliAnalysisTaskDiHadronPID.cxx:960 AliAnalysisTaskDiHadronPID.cxx:961 AliAnalysisTaskDiHadronPID.cxx:962 AliAnalysisTaskDiHadronPID.cxx:963 AliAnalysisTaskDiHadronPID.cxx:964 AliAnalysisTaskDiHadronPID.cxx:965 AliAnalysisTaskDiHadronPID.cxx:966 AliAnalysisTaskDiHadronPID.cxx:967 AliAnalysisTaskDiHadronPID.cxx:968 AliAnalysisTaskDiHadronPID.cxx:969 AliAnalysisTaskDiHadronPID.cxx:970 AliAnalysisTaskDiHadronPID.cxx:971 AliAnalysisTaskDiHadronPID.cxx:972 AliAnalysisTaskDiHadronPID.cxx:973 AliAnalysisTaskDiHadronPID.cxx:974 AliAnalysisTaskDiHadronPID.cxx:975 AliAnalysisTaskDiHadronPID.cxx:976 AliAnalysisTaskDiHadronPID.cxx:977 AliAnalysisTaskDiHadronPID.cxx:978 AliAnalysisTaskDiHadronPID.cxx:979 AliAnalysisTaskDiHadronPID.cxx:980 AliAnalysisTaskDiHadronPID.cxx:981 AliAnalysisTaskDiHadronPID.cxx:982 AliAnalysisTaskDiHadronPID.cxx:983 AliAnalysisTaskDiHadronPID.cxx:984 AliAnalysisTaskDiHadronPID.cxx:985 AliAnalysisTaskDiHadronPID.cxx:986 AliAnalysisTaskDiHadronPID.cxx:987 AliAnalysisTaskDiHadronPID.cxx:988 AliAnalysisTaskDiHadronPID.cxx:989 AliAnalysisTaskDiHadronPID.cxx:990 AliAnalysisTaskDiHadronPID.cxx:991 AliAnalysisTaskDiHadronPID.cxx:992 AliAnalysisTaskDiHadronPID.cxx:993 AliAnalysisTaskDiHadronPID.cxx:994 AliAnalysisTaskDiHadronPID.cxx:995 AliAnalysisTaskDiHadronPID.cxx:996 AliAnalysisTaskDiHadronPID.cxx:997 AliAnalysisTaskDiHadronPID.cxx:998 AliAnalysisTaskDiHadronPID.cxx:999 AliAnalysisTaskDiHadronPID.cxx:1000 AliAnalysisTaskDiHadronPID.cxx:1001 AliAnalysisTaskDiHadronPID.cxx:1002 AliAnalysisTaskDiHadronPID.cxx:1003 AliAnalysisTaskDiHadronPID.cxx:1004 AliAnalysisTaskDiHadronPID.cxx:1005 AliAnalysisTaskDiHadronPID.cxx:1006 AliAnalysisTaskDiHadronPID.cxx:1007