#include "AliAnalysisTaskSOH.h"
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <THnSparse.h>
#include "TChain.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTask.h"
#include "AliEMCALRecoUtils.h"
#include "AliEMCALTrack.h"
#include "AliESDCaloCluster.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliExternalTrackParam.h"
#include "AliLog.h"
#include "AliMCEvent.h"
#include "AliHeader.h"
#include "AliGenCocktailEventHeader.h"
ClassImp(AliAnalysisTaskSOH)
AliAnalysisTaskSOH::AliAnalysisTaskSOH() :
AliAnalysisTaskSE(),
fESD(0),
fMC(0),
fZVtxMax(10),
fEsdTrackCuts(0x0),
fHybridTrackCuts1(0x0),
fHybridTrackCuts2(0x0),
fTrackIndices(0x0),
fClusterIndices(0x0),
fClusterArray(0x0),
fMcProcess(kTRUE),
fTrackProcess(kTRUE),
fSFProcess(kFALSE),
fClusterProcess(kFALSE),
fOutputList(0x0),
fHEventStat(0),
fHScaleFactor(0),
fHScaleFactor100HC(0),
fHEOverPVsPt(0x0),
fHEMCalResponsePion(0x0),
fHEMCalResponseElec(0x0),
fHEMCalResponseProton(0x0),
fHEMCalRecdPhidEta(0x0),
fHEMCalRecdPhidEtaP(0x0),
fHEMCalRecdPhidEtaM(0x0),
fHEMCalRecdPhidEta_Truth(0x0),
fHEMCalRecdPhidEtaP_Truth(0x0),
fHEMCalRecdPhidEtaM_Truth(0x0),
fHEMCalRecdPhidEtaposEta(0x0),
fHEMCalRecdPhidEtanegEta(0x0),
fHPhotonEdiff100HC(0x0),
fHPhotonEdiff70HC(0),
fHPhotonEdiff30HC(0),
fHPhotonEdiff0HC(0x0),
fHPhotonEVsClsE(0x0),
fHistEsub1Pch(0x0),
fHistEsub2Pch(0x0),
fHistEsub1PchRat(0x0),
fHistEsub2PchRat(0x0),
fHClsEoverMcE_All(0x0),
fHClsEoverMcE_Photon(0x0),
fHClsEoverMcE_Elec(0x0),
fHClsEoverMcE_Pion(0x0),
fHParGenPion_p(0x0),
fHParGenPion_m(0x0),
fHParGenPion_rmInj_p(0x0),
fHParGenPion_rmInj_m(0x0),
fHDetGenFakePion(0x0),
fHDetRecFakePion(0x0),
fHDetGenSecPion(0x0),
fHDetRecSecPion(0x0)
{
for(Int_t i=0; i<3; i++)
{
fHDetGenPion_p[i] = 0x0;
fHDetRecPion_p[i] = 0x0;
fHDetGenPion_m[i] = 0x0;
fHDetRecPion_m[i] = 0x0;
fHDetGenPion_rmInj_p[i] = 0x0;
fHDetRecPion_rmInj_p[i] = 0x0;
fHDetGenPion_rmInj_m[i] = 0x0;
fHDetRecPion_rmInj_m[i] = 0x0;
}
DefineInput (0, TChain::Class());
DefineOutput(1, TList::Class());
}
AliAnalysisTaskSOH::AliAnalysisTaskSOH(const char *name) :
AliAnalysisTaskSE(name),
fESD(0),
fMC(0),
fZVtxMax(10),
fEsdTrackCuts(0x0),
fHybridTrackCuts1(0x0),
fHybridTrackCuts2(0x0),
fTrackIndices(0x0),
fClusterIndices(0x0),
fClusterArray(0x0),
fMcProcess(kTRUE),
fTrackProcess(kTRUE),
fSFProcess(kFALSE),
fClusterProcess(kFALSE),
fOutputList(0x0),
fHEventStat(0),
fHScaleFactor(0),
fHScaleFactor100HC(0),
fHEOverPVsPt(0x0),
fHEMCalResponsePion(0x0),
fHEMCalResponseElec(0x0),
fHEMCalResponseProton(0x0),
fHEMCalRecdPhidEta(0x0),
fHEMCalRecdPhidEtaP(0x0),
fHEMCalRecdPhidEtaM(0x0),
fHEMCalRecdPhidEta_Truth(0x0),
fHEMCalRecdPhidEtaP_Truth(0x0),
fHEMCalRecdPhidEtaM_Truth(0x0),
fHEMCalRecdPhidEtaposEta(0x0),
fHEMCalRecdPhidEtanegEta(0x0),
fHPhotonEdiff100HC(0x0),
fHPhotonEdiff70HC(0),
fHPhotonEdiff30HC(0),
fHPhotonEdiff0HC(0x0),
fHPhotonEVsClsE(0x0),
fHistEsub1Pch(0x0),
fHistEsub2Pch(0x0),
fHistEsub1PchRat(0x0),
fHistEsub2PchRat(0x0),
fHClsEoverMcE_All(0x0),
fHClsEoverMcE_Photon(0x0),
fHClsEoverMcE_Elec(0x0),
fHClsEoverMcE_Pion(0x0),
fHParGenPion_p(0x0),
fHParGenPion_m(0x0),
fHParGenPion_rmInj_p(0x0),
fHParGenPion_rmInj_m(0x0),
fHDetGenFakePion(0x0),
fHDetRecFakePion(0x0),
fHDetGenSecPion(0x0),
fHDetRecSecPion(0x0)
{
for(Int_t i=0; i<3; i++)
{
fHDetGenPion_p[i] = 0x0;
fHDetRecPion_p[i] = 0x0;
fHDetGenPion_m[i] = 0x0;
fHDetRecPion_m[i] = 0x0;
fHDetGenPion_rmInj_p[i] = 0x0;
fHDetRecPion_rmInj_p[i] = 0x0;
fHDetGenPion_rmInj_m[i] = 0x0;
fHDetRecPion_rmInj_m[i] = 0x0;
}
DefineOutput(1, TList::Class());
}
AliAnalysisTaskSOH::~AliAnalysisTaskSOH()
{
if(fEsdTrackCuts) delete fEsdTrackCuts;
if(fHybridTrackCuts1) delete fHybridTrackCuts1;
if(fHybridTrackCuts2) delete fHybridTrackCuts2;
if(fTrackIndices) delete fTrackIndices;
if(fClusterIndices) delete fClusterIndices;
if(fClusterArray) delete fClusterArray;
}
void AliAnalysisTaskSOH::UserCreateOutputObjects()
{
OpenFile(1);
fOutputList = new TList();
fOutputList->SetOwner(1);
fHEventStat = new TH1F("fHEventStat","Event statistics for analysis",8,0,8);
fHEventStat->GetXaxis()->SetBinLabel(1,"Event");
fHEventStat->GetXaxis()->SetBinLabel(2,"cluster");
fHEventStat->GetXaxis()->SetBinLabel(3,"good cluster");
fHEventStat->GetXaxis()->SetBinLabel(4,"cls/0-truth");
fHEventStat->GetXaxis()->SetBinLabel(5,"cls/1-truth");
fHEventStat->GetXaxis()->SetBinLabel(6,"cls/2-truth");
fHEventStat->GetXaxis()->SetBinLabel(7,"cls/2-goodtruth");
fHEventStat->GetXaxis()->SetBinLabel(8,"cls/>3-truth");
fOutputList->Add(fHEventStat);
if(fSFProcess)
{
fHScaleFactor = new TH1F("fHScaleFactor", "Scale factor distribution without hadronic correction;Scale factor",100,0,10);
fOutputList->Add(fHScaleFactor);
fHScaleFactor100HC = new TH1F("fHScaleFactor100HC", "Scale factor distribution with 100% hadronic correction;Scale factor",100,0,10);
fOutputList->Add(fHScaleFactor100HC);
}
if(fClusterProcess)
{
fHEOverPVsPt = new TH2F("fHEOverPVsPt", "E/P vs track p_{T}; p_{T} (GeV/c); E/P", 200 , 0, 4, 200, 0, 3.2);
fOutputList->Add(fHEOverPVsPt);
fHEMCalResponsePion = new TH2F("fHEMCalResponsePion", "Pion E/P vs track p_{T}; p_{T} (GeV/c); E/P", 100 , 0, 4, 100, 0, 3.2);
fOutputList->Add(fHEMCalResponsePion);
fHEMCalResponseElec = new TH2F("fHEMCalResponseElec", "Electron E/P vs track p_{T}; p_{T} (GeV/c); E/P", 100 , 0, 4, 100, 0, 3.2);
fOutputList->Add(fHEMCalResponseElec);
fHEMCalResponseProton = new TH2F("fHEMCalResponseProton", "Proton E/P vs track p_{T}; p_{T} (GeV/c); E/P", 100 , 0, 4, 100, 0, 3.2);
fOutputList->Add(fHEMCalResponseProton);
fHEMCalRecdPhidEta = new TH2F("fHEMCalRecdPhidEta","EMCAL Cluster-Track #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEta);
fHEMCalRecdPhidEtaP = new TH2F("fHEMCalRecdPhidEtaP","EMCAL Charge+ Cluster-Track #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEtaP);
fHEMCalRecdPhidEtaM = new TH2F("fHEMCalRecdPhidEtaM","EMCAL Charge- Cluster-Track #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEtaM);
fHEMCalRecdPhidEta_Truth = new TH2F("fHEMCalRecdPhidEta_Truth","EMCAL Cluster-Track(Truth matched) #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEta_Truth);
fHEMCalRecdPhidEtaP_Truth = new TH2F("fHEMCalRecdPhidEtaP_Truth","EMCAL Charge+ Cluster-Track(Truth matched) #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEtaP_Truth);
fHEMCalRecdPhidEtaM_Truth = new TH2F("fHEMCalRecdPhidEtaM_Truth","EMCAL Charge- Cluster-Track(Truth matched) #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEtaM_Truth);
fHEMCalRecdPhidEtaposEta = new TH2F("fHEMCalRecdPhidEtaposEta","(+eta track) EMCAL Cluster-Track #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEtaposEta);
fHEMCalRecdPhidEtanegEta = new TH2F("fHEMCalRecdPhidEtanegEta","(-eta track) EMCAL Cluster-Track #Delta#phi-#Delta#eta; #Delta#eta; #Delta#phi",1000,-0.1,0.1,1000,-0.5,0.5);
fOutputList->Add(fHEMCalRecdPhidEtanegEta);
fHPhotonEdiff100HC = new TH2F("fHPhotonEdiff100HC","Photon (E_{Truth}- E_{calc,100% HC})/E_{Truth} vs. E_{Truth}; E_{Truth} (GeV); (E_{Truth}- E_{calc,100% HC})/E_{Truth}",1000,0,10,600,-4.9,1.1);
fOutputList->Add(fHPhotonEdiff100HC);
fHPhotonEdiff70HC = new TH2F("fHPhotonEdiff70HC","Photon (E_{Truth}- E_{calc,70% HC})/E_{Truth} vs. E_{Truth}; E_{Truth} (GeV); (E_{Truth}- E_{calc,30% HC})/E_{Truth}",1000,0,10,600,-4.9,1.1);
fOutputList->Add(fHPhotonEdiff70HC);
fHPhotonEdiff30HC = new TH2F("fHPhotonEdiff30HC","Photon (E_{Truth}- E_{calc,30% HC})/E_{Truth} vs. E_{Truth}; E_{Truth} (GeV); (E_{Truth}- E_{calc,30% HC})/E_{Truth}",1000,0,10,600,-4.9,1.1);
fOutputList->Add(fHPhotonEdiff30HC);
fHPhotonEdiff0HC = new TH2F("fHPhotonEdiff0HC","Photon (E_{Truth}- E_{calc,0% HC})/E_{Truth} vs. E_{Truth}; E_{Truth} (GeV); (E_{Truth}- E_{cls})/E_{Truth}",1000,0,10,600,-4.9,1.1);
fOutputList->Add(fHPhotonEdiff0HC);
fHPhotonEVsClsE = new TH2F("fHPhotonEVsClsE","Cluster E vs. photon E_{Truth}; photon E_{Truth} (GeV); Cluster E (GeV)",500,0,5,500,0,5);
fOutputList->Add(fHPhotonEVsClsE);
fHistEsub1Pch =new TH2F("fHistEsub1Pch", "(subtracted E in 100% HC) vs. total track P, clusters with 1 matching track; total track P (GeV/c); E_{sub}(GeV)" , 1000, 0., 10, 1000, 0., 10.);
fOutputList->Add(fHistEsub1Pch);
fHistEsub2Pch =new TH2F("fHistEsub2Pch", "(subtracted E in 100% HC) vs. total track P, clusters with 2 matching tracks; total track P (GeV/c); E_{sub}(GeV)" , 1000, 0., 10, 1000, 0., 10.);
fOutputList->Add(fHistEsub2Pch);
fHistEsub1PchRat =new TH2F("fHistEsub1PchRat", "(subtracted E in 100% HC)/total track P vs. total track P, clusters with 1 matching track; total track P (GeV/c); E_{sub}/P_{tot}" , 1000, 0., 10, 1100, 0., 1.1);
fOutputList->Add(fHistEsub1PchRat);
fHistEsub2PchRat =new TH2F("fHistEsub2PchRat", "(subtracted E in 100% HC)/total track P vs. total track P, clusters with 2 matching tracks; total track P (GeV/c); E_{sub}/P_{tot}" , 1000, 0., 10, 1100, 0., 1.1);
fOutputList->Add(fHistEsub2PchRat);
Int_t bins[4] = {150, 150, 100, 200};
Double_t xmin[4] = {1.3, -0.8, 0, 0};
Double_t xmax[4] = {3.2, 0.8, 10, 2};
fHClsEoverMcE_All = new THnSparseF("fHClsEoverMcE_All", "Cluster E/MC E, clusters with 1 matching particle; #phi; #eta; E (GeV); ClsE/McE", 4, bins, xmin, xmax);
fOutputList->Add(fHClsEoverMcE_All);
fHClsEoverMcE_Photon = new THnSparseF("fHClsEoverMcE_Photon", "Cluster E/MC E, clusters with 1 matching photon; #phi; #eta; E (GeV); ClsE/McE", 4, bins, xmin, xmax);
fOutputList->Add(fHClsEoverMcE_Photon);
fHClsEoverMcE_Elec = new THnSparseF("fHClsEoverMcE_Elec", "Cluster E/MC E, clusters with 1 matching electron; #phi; #eta; E (GeV); ClsE/McE", 4, bins, xmin, xmax);
fOutputList->Add(fHClsEoverMcE_Elec);
fHClsEoverMcE_Pion = new THnSparseF("fHClsEoverMcE_Pion", "Cluster E/MC E, clusters with 1 matching pion; #phi; #eta; E (GeV); ClsE/McE",4, bins, xmin, xmax);
fOutputList->Add(fHClsEoverMcE_Pion);
}
fHParGenPion_p = new TH3F("fHParGenPion_p","Particle level truth Phi-Eta-p_{T} distribution of #pi+", 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHParGenPion_p->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHParGenPion_p->GetYaxis()->SetTitle("#eta");
fHParGenPion_p->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHParGenPion_p);
fHParGenPion_m = new TH3F("fHParGenPion_m", "Particle level truth Phi-Eta-p_{T} distribution of all #pi-", 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHParGenPion_m->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHParGenPion_m->GetYaxis()->SetTitle("#eta");
fHParGenPion_m->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHParGenPion_m);
fHParGenPion_rmInj_p = new TH3F("fHParGenPion_rmInj_p","Particle level truth Phi-Eta-p_{T} distribution of all #pi+ without injected signal", 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHParGenPion_rmInj_p->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHParGenPion_rmInj_p->GetYaxis()->SetTitle("#eta");
fHParGenPion_rmInj_p->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHParGenPion_rmInj_p);
fHParGenPion_rmInj_m = new TH3F("fHParGenPion_rmInj_m","Particle level truth Phi-Eta-p_{T} distribution of #pi- without injected signal", 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHParGenPion_rmInj_m->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHParGenPion_rmInj_m->GetYaxis()->SetTitle("#eta");
fHParGenPion_rmInj_m->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHParGenPion_rmInj_m);
const char* trackCut[3] = {"cut1","cut2", "cut3"};
if(fMcProcess && fTrackProcess)
{
fHDetGenFakePion = new TH3F("fHDetGenFakePion", "fake charged pion track Phi-Eta-p_{T} distribution",500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetGenFakePion->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetGenFakePion->GetYaxis()->SetTitle("#eta");
fHDetGenFakePion->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetGenFakePion);
fHDetRecFakePion = new TH3F("fHDetRecFakePion", "fake charged pion track Phi-Eta-p_{T} distribution", 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetRecFakePion->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetRecFakePion->GetYaxis()->SetTitle("#eta");
fHDetRecFakePion->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetRecFakePion);
fHDetGenSecPion = new TH3F("fHDetGenSecPion", "secondary charged pion charged pion track Phi-Eta-p_{T} distribution", 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetGenSecPion->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetGenSecPion->GetYaxis()->SetTitle("#eta");
fHDetGenSecPion->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetGenSecPion);
fHDetRecSecPion = new TH3F("fHDetRecSecPion", "secondary charged pion charged pion track Phi-Eta-p_{T} distribution", 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetRecSecPion->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetRecSecPion->GetYaxis()->SetTitle("#eta");
fHDetRecSecPion->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetRecSecPion);
for(Int_t i=0; i<3; i++)
{
fHDetGenPion_p[i] = new TH3F(Form("fHDetGenPion_p_%s", trackCut[i]), Form("%s: Detector level truth Phi-Eta-p_{T} distribution of #pi+", trackCut[i]), 500, 0, 100, 60, -1.2, 1.2, 128, 0, 6.4);
fHDetGenPion_p[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetGenPion_p[i]->GetYaxis()->SetTitle("#eta");
fHDetGenPion_p[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetGenPion_p[i]);
fHDetRecPion_p[i] = new TH3F(Form("fHDetRecPion_p_%s", trackCut[i]), Form("%s: Reconstructed track Phi-Eta-p_{T} distribution of all #pi+", trackCut[i]), 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetRecPion_p[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetRecPion_p[i]->GetYaxis()->SetTitle("#eta");
fHDetRecPion_p[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetRecPion_p[i]);
fHDetGenPion_m[i] = new TH3F(Form("fHDetGenPion_m_%s", trackCut[i]), Form("%s: Detector level truth Phi-Eta-p_{T} distribution of #pi-", trackCut[i]), 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetGenPion_m[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetGenPion_m[i]->GetYaxis()->SetTitle("#eta");
fHDetGenPion_m[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetGenPion_m[i]);
fHDetRecPion_m[i] = new TH3F(Form("fHDetRecPion_m_%s", trackCut[i]), Form("%s: Reconstructed track Phi-Eta-p_{T} distribution of #pi-", trackCut[i]), 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetRecPion_m[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetRecPion_m[i]->GetYaxis()->SetTitle("#eta");
fHDetRecPion_m[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetRecPion_m[i]);
fHDetGenPion_rmInj_p[i] = new TH3F(Form("fHDetGenPion_rmInj_p_%s", trackCut[i]), Form("%s: Detector level truth Phi-Eta-p_{T} distribution of #pi+ without injected signal", trackCut[i]), 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetGenPion_rmInj_p[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetGenPion_rmInj_p[i]->GetYaxis()->SetTitle("#eta");
fHDetGenPion_rmInj_p[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetGenPion_rmInj_p[i]);
fHDetRecPion_rmInj_p[i] = new TH3F(Form("fHDetRecPion_rmInj_p_%s", trackCut[i]), Form("%s: Reconstructed track Phi-Eta-p_{T} distribution of #pi+ without injected signal", trackCut[i]), 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetRecPion_rmInj_p[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetRecPion_rmInj_p[i]->GetYaxis()->SetTitle("#eta");
fHDetRecPion_rmInj_p[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetRecPion_rmInj_p[i]);
fHDetGenPion_rmInj_m[i] = new TH3F(Form("fHDetGenPion_rmInj_m_%s", trackCut[i]), Form("%s: Detector level truth Phi-Eta-p_{T} distribution of #pi- without injected signal", trackCut[i]), 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetGenPion_rmInj_m[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetGenPion_rmInj_m[i]->GetYaxis()->SetTitle("#eta");
fHDetGenPion_rmInj_m[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetGenPion_rmInj_m[i]);
fHDetRecPion_rmInj_m[i] = new TH3F(Form("fHDetRecPion_rmInj_m_%s", trackCut[i]), Form("%s: Reconstructed track Phi-Eta-p_{T} distribution of #pi- without injected signal", trackCut[i]), 500, 0, 100, 100, -1.0, 1.0, 120, 0.0,2.*TMath::Pi());
fHDetRecPion_rmInj_m[i]->GetXaxis()->SetTitle("p_{T}^{gen} (GeV/c)");
fHDetRecPion_rmInj_m[i]->GetYaxis()->SetTitle("#eta");
fHDetRecPion_rmInj_m[i]->GetZaxis()->SetTitle("#phi");
fOutputList->Add(fHDetRecPion_rmInj_m[i]);
}
}
fTrackIndices = new TArrayI();
fClusterIndices = new TArrayI();
fClusterArray = new TObjArray();
fClusterArray->SetOwner(1);
PostData(1, fOutputList);
}
void AliAnalysisTaskSOH::UserExec(Option_t *)
{
fESD = dynamic_cast<AliESDEvent*>(InputEvent());
if (!fESD) {
printf("ERROR: fESD not available\n");
return;
}
if (!EsdVertexOk()) return;
fMC = MCEvent();
if (!fMC) {
printf("ERROR: fMC not available\n");
return;
}
fHEventStat->Fill(0.5);
if(fTrackIndices)
fTrackIndices->Reset();
if(fClusterIndices)
fClusterIndices->Reset();
if(fClusterArray)
fClusterArray->Delete();
if(fTrackProcess)
ProcessTrack();
if(fClusterProcess)
ProcessCluster();
if(fMcProcess)
ProcessMc();
if(fSFProcess)
ProcessScaleFactor();
PostData(1, fOutputList);
}
void AliAnalysisTaskSOH::ProcessTrack()
{
fTrackIndices->Set(fESD->GetNumberOfTracks());
AliDebug(3,Form("%s:%d Selecting tracks",(char*)__FILE__,__LINE__));
Int_t isMth = 0;
Int_t nTracks = 0;
Float_t ClsPos[3] = {-999,-999,-999};
Double_t emcTrkpos[3] = {-999,-999,-999};
for(Int_t itr=0; itr<fESD->GetNumberOfTracks(); itr++)
{
AliESDtrack *esdtrack = fESD->GetTrack(itr);
if(!esdtrack)continue;
AliESDtrack *newTrack = GetAcceptTrack(esdtrack);
if(!newTrack) continue;
if(newTrack->Pt()<0.15 || TMath::Abs(newTrack->Eta())>0.9) {delete newTrack; continue;}
if(fClusterProcess)
{
Double_t clsE = -1;
Int_t clsIndex = newTrack->GetEMCALcluster();
if(newTrack->GetEMCALcluster()>-1)
{
AliESDCaloCluster *cluster = fESD->GetCaloCluster(clsIndex);
if(IsGoodCluster(cluster))
{
isMth=1;
cluster->GetPosition(ClsPos);
TVector3 VClsPos(ClsPos[0], ClsPos[1], ClsPos[2]);
AliEMCALTrack EMCTrk(*newTrack);
if(!EMCTrk.PropagateToGlobal(ClsPos[0], ClsPos[1], ClsPos[2], 0.0, 0.0)) {continue;}
EMCTrk.GetXYZ(emcTrkpos);
TVector3 VemcTrkPos(emcTrkpos[0],emcTrkpos[1],emcTrkpos[2]);
Double_t dPhi = VClsPos.Phi() - VemcTrkPos.Phi();
if (dPhi < -1*TMath::Pi()) dPhi += (2*TMath::Pi());
else if (dPhi > TMath::Pi()) dPhi -= (2*TMath::Pi());
Double_t dEta = VClsPos.Eta() - VemcTrkPos.Eta();
fHEMCalRecdPhidEta->Fill(dEta, dPhi);
if((newTrack->GetLabel())>-1 && (newTrack->GetLabel()) < fMC->GetNumberOfTracks())
{
AliVParticle *vParticle = fMC->GetTrack(newTrack->GetLabel());
if(IsGoodMcParticle(vParticle, newTrack->GetLabel()))
{
fHEMCalRecdPhidEta_Truth->Fill(dEta, dPhi);
if(vParticle->Charge() > 0) fHEMCalRecdPhidEtaP_Truth->Fill(dEta, dPhi);
if(vParticle->Charge() < 0) fHEMCalRecdPhidEtaM_Truth->Fill(dEta, dPhi);
}
}
if(esdtrack->Charge() > 0) {fHEMCalRecdPhidEtaP->Fill(dEta, dPhi);}
if(esdtrack->Charge() < 0) {fHEMCalRecdPhidEtaM->Fill(dEta, dPhi);}
if(VemcTrkPos.Eta() > 0) fHEMCalRecdPhidEtaposEta->Fill(dEta, dPhi);
if(VemcTrkPos.Eta() < 0) fHEMCalRecdPhidEtanegEta->Fill(dEta, dPhi);
clsE = cluster->E();
if(newTrack->P()>0) fHEOverPVsPt->Fill(newTrack->Pt(),clsE/newTrack->P());
}
Int_t ipart = newTrack->GetLabel();
if(ipart>-1 && ipart<fMC->GetNumberOfTracks())
{
AliVParticle* vParticle = fMC->GetTrack(ipart);
if(isMth && vParticle)
{
if(TMath::Abs(vParticle->PdgCode())==211)
{
fHEMCalResponsePion->Fill(newTrack->Pt(),clsE/newTrack->P());
}
if(TMath::Abs(vParticle->PdgCode())==11)
{
fHEMCalResponseElec->Fill(newTrack->Pt(),clsE/newTrack->P());
}
if(TMath::Abs(vParticle->PdgCode())==2212)
{
fHEMCalResponseProton->Fill(newTrack->Pt(),clsE/newTrack->P());
}
}
}
}
}
if(newTrack) delete newTrack;
fTrackIndices->AddAt(itr,nTracks);
nTracks++;
}
fTrackIndices->Set(nTracks);
}
void AliAnalysisTaskSOH::ProcessCluster()
{
Int_t nCluster = 0;
TLorentzVector gamma;
Double_t vertex[3] = {0, 0, 0};
fESD->GetVertex()->GetXYZ(vertex);
const Int_t nCaloClusters = fESD->GetNumberOfCaloClusters();
fClusterIndices->Set(nCaloClusters);
Float_t ClsPos[3] = {-999,-999,-999};
for(Int_t itr=0; itr<nCaloClusters; itr++)
{
fHEventStat->Fill(1.5);
AliESDCaloCluster *cluster = fESD->GetCaloCluster(itr);
if(!IsGoodCluster(cluster)) continue;
cluster->GetMomentum(gamma, vertex);
if (gamma.Pt() < 0.15) continue;
fHEventStat->Fill(2.5);
cluster->GetPosition(ClsPos);
TVector3 VClsPos(ClsPos[0], ClsPos[1], ClsPos[2]);
TArrayI *TrackLabels = cluster->GetTracksMatched();
if(TrackLabels->GetSize() == 1)
{
AliESDtrack *esdtrack = fESD->GetTrack(TrackLabels->operator[](0));
AliESDtrack *newTrack = GetAcceptTrack(esdtrack);
if(newTrack && TMath::Abs(newTrack->Eta())<0.7)
{
Double_t Esub = newTrack->P();
if (Esub > cluster->E()) Esub = cluster->E();
fHistEsub1Pch->Fill(newTrack->P(), Esub);
fHistEsub1PchRat->Fill(newTrack->P(), Esub/newTrack->P());
}
}
if(TrackLabels->GetSize() == 2)
{
AliESDtrack *esdtrack1 = fESD->GetTrack(TrackLabels->operator[](0));
AliESDtrack *esdtrack2 = fESD->GetTrack(TrackLabels->operator[](1));
AliESDtrack *newTrack1 = GetAcceptTrack(esdtrack1);
AliESDtrack *newTrack2 = GetAcceptTrack(esdtrack2);
if(newTrack1 && newTrack2 && TMath::Abs(newTrack1->Eta())<0.7 && TMath::Abs(newTrack2->Eta())<0.7)
{
Double_t Esub = newTrack1->P() + newTrack2->P();
if (Esub > cluster->E()) Esub = cluster->E();
fHistEsub2Pch->Fill(newTrack1->P() + newTrack2->P(), Esub);
fHistEsub2PchRat->Fill(newTrack1->P() + newTrack2->P(), Esub/(newTrack1->P() + newTrack2->P()));
}
else if(newTrack1 && !(newTrack2) && TMath::Abs(newTrack1->Eta())<0.7)
{
Double_t Esub = newTrack1->P();
if (Esub > cluster->E()) Esub = cluster->E();
fHistEsub1Pch->Fill(newTrack1->P(), Esub);
fHistEsub1PchRat->Fill(newTrack1->P(), Esub/newTrack1->P());
}
else if (!(newTrack1) && newTrack2 && TMath::Abs(newTrack2->Eta())<0.7)
{
Double_t Esub = newTrack2->P();
if (Esub > cluster->E()) Esub = cluster->E();
fHistEsub1Pch->Fill(newTrack2->P(), Esub);
fHistEsub1PchRat->Fill(newTrack2->P(), Esub/newTrack2->P());
}
else {;}
}
TArrayI *MCLabels = cluster->GetLabelsArray();
if(MCLabels->GetSize() == 0) fHEventStat->Fill(3.5);
if(MCLabels->GetSize() == 1)
{
fHEventStat->Fill(4.5);
AliVParticle* vParticle1 = fMC->GetTrack(MCLabels->operator[](0));
if(IsGoodMcParticle(vParticle1, MCLabels->operator[](0)))
{
Double_t Entries[4] = {VClsPos.Phi(), VClsPos.Eta(), vParticle1->E(), cluster->E()/vParticle1->E()};
fHClsEoverMcE_All->Fill(Entries);
if(vParticle1->PdgCode() == 22)
{
fHClsEoverMcE_Photon->Fill(Entries);
}
if(TMath::Abs(vParticle1->PdgCode()) == 11)
{
fHClsEoverMcE_Elec->Fill(Entries);
}
if(TMath::Abs(vParticle1->PdgCode()) == 211)
{
fHClsEoverMcE_Pion->Fill(Entries);
}
}
}
if(MCLabels->GetSize() == 2)
{
fHEventStat->Fill(5.5);
AliVParticle* vParticle1 = fMC->GetTrack(MCLabels->operator[](0));
AliVParticle* vParticle2 = fMC->GetTrack(MCLabels->operator[](1));
if(IsGoodMcParticle(vParticle1, MCLabels->operator[](0)) && IsGoodMcParticle(vParticle2, MCLabels->operator[](1)))
{
fHEventStat->Fill(6.5);
if((vParticle1->PdgCode()==22) && (vParticle2->PdgCode()==22)) {;}
else if((vParticle1->PdgCode()!=22) && (vParticle2->PdgCode()!=22)) {;}
else
{
fClusterIndices->AddAt(itr,nCluster);
nCluster++;
}
}
}
if(MCLabels->GetSize() > 2) fHEventStat->Fill(7.5);
AliESDCaloCluster *newCluster = new AliESDCaloCluster(*cluster);
Double_t subE = 0;
TArrayI arrayTrackMatched(fTrackIndices->GetSize());
Int_t nGoodMatch = 0;
for(Int_t j=0; j<fTrackIndices->GetSize(); j++)
{
AliESDtrack *trk = fESD->GetTrack(fTrackIndices->At(j));
if(itr==trk->GetEMCALcluster())
{
arrayTrackMatched[nGoodMatch] = j;
nGoodMatch ++;
subE += trk->P();
}
}
arrayTrackMatched.Set(nGoodMatch);
newCluster->AddTracksMatched(arrayTrackMatched);
Double_t clsE = newCluster->E();
Double_t newE = clsE-subE;
if(newE<0) newE = 0;
newCluster->SetDispersion(newE);
fClusterArray->Add(newCluster);
}
fClusterIndices->Set(nCluster);
}
void AliAnalysisTaskSOH::ProcessMc()
{
for(Int_t i=0; i<fTrackIndices->GetSize(); i++)
{
AliESDtrack *esdtrack = fESD->GetTrack(fTrackIndices->At(i));
if(!esdtrack)continue;
AliESDtrack *newTrack = GetAcceptTrack(esdtrack);
if(!newTrack) continue;
if(newTrack->Pt()<0.15 || TMath::Abs(newTrack->Eta())>0.9) {delete newTrack; continue;}
Int_t index = esdtrack->GetLabel();
if(index < 0)
{
AliVParticle *vParticle1 = (AliVParticle*)fMC->GetTrack(-1*index);
if((TMath::Abs(vParticle1->PdgCode())==211) && IsGoodMcParticle(vParticle1, -1*index))
{
fHDetRecFakePion->Fill(newTrack->Pt(), newTrack->Eta(), newTrack->Phi());
fHDetGenFakePion->Fill(vParticle1->Pt(), vParticle1->Eta(), vParticle1->Phi());
}
}
AliVParticle* vParticle2 = fMC->GetTrack(TMath::Abs(index));
if(!IsGoodMcParticle(vParticle2, TMath::Abs(index)) && (TMath::Abs(vParticle2->PdgCode())==211))
{
fHDetRecSecPion->Fill(newTrack->Pt(), newTrack->Eta(), newTrack->Phi());
fHDetGenSecPion->Fill(vParticle2->Pt(), vParticle2->Eta(), vParticle2->Phi());
}
if(newTrack) delete newTrack;
}
AliHeader* header = (AliHeader*) fMC->Header();
if (!header) AliFatal("fInjectedSignals set but no MC header found");
AliGenCocktailEventHeader* cocktailHeader = dynamic_cast<AliGenCocktailEventHeader*> (header->GenEventHeader());
if (!cocktailHeader)
{
header->Dump();
AliFatal("fInjectedSignals set but no MC cocktail header found");
}
AliGenEventHeader* eventHeader = 0;
eventHeader = dynamic_cast<AliGenEventHeader*> (cocktailHeader->GetHeaders()->First());
if (!eventHeader) AliFatal("First event header not found");
for(Int_t ipart=0; ipart<fMC->GetNumberOfTracks(); ipart++)
{
AliVParticle* vParticle = fMC->GetTrack(ipart);
Int_t pdgCode = vParticle->PdgCode();
AliMCParticle *McParticle = (AliMCParticle*)fMC->GetTrack(ipart);
if(!IsGoodMcParticle(vParticle, ipart)) continue;
if(TMath::Abs(vParticle->Eta())<0.9)
{
if(pdgCode==211)
{
fHParGenPion_p->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
if(McParticle->GetMother() < eventHeader->NProduced()) fHParGenPion_rmInj_p->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
}
else if(pdgCode==-211)
{
fHParGenPion_m->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
if(McParticle->GetMother() < eventHeader->NProduced()) fHParGenPion_rmInj_m->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
}
}
for(Int_t j=0; j<fTrackIndices->GetSize(); j++)
{
AliESDtrack *esdtrack = fESD->GetTrack(fTrackIndices->At(j));
if(!esdtrack)continue;
AliESDtrack *newTrack = GetAcceptTrack(esdtrack);
if(!newTrack) continue;
if(newTrack->Pt()<0.15 || TMath::Abs(newTrack->Eta())>0.9) {delete newTrack; continue;}
Int_t cutType = (Int_t)newTrack->GetTRDQuality();
if(newTrack->GetLabel()==ipart && TMath::Abs(vParticle->Eta())<0.9)
{
if(pdgCode==211)
{
fHDetGenPion_p[cutType]->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
fHDetRecPion_p[cutType]->Fill(newTrack->Pt(), newTrack->Eta(), newTrack->Phi());
if(McParticle->GetMother() < eventHeader->NProduced())
{
fHDetGenPion_rmInj_p[cutType]->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
fHDetRecPion_rmInj_p[cutType]->Fill(newTrack->Pt(), newTrack->Eta(), newTrack->Phi());
}
}
else if(pdgCode==-211)
{
fHDetGenPion_m[cutType]->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
fHDetRecPion_m[cutType]->Fill(newTrack->Pt(), newTrack->Eta(), newTrack->Phi());
if(McParticle->GetMother() < eventHeader->NProduced())
{
fHDetGenPion_rmInj_m[cutType]->Fill(vParticle->Pt(), vParticle->Eta(), vParticle->Phi());
fHDetRecPion_rmInj_m[cutType]->Fill(newTrack->Pt(), newTrack->Eta(), newTrack->Phi());
}
}
if(fClusterProcess)
{
for(Int_t k=0; k<fClusterIndices->GetSize(); k++)
{
AliESDCaloCluster *cluster = fESD->GetCaloCluster(fClusterIndices->At(k));
Double_t clsE = cluster->E();
TArrayI *MCLabels = cluster->GetLabelsArray();
AliVParticle* vParticle1 = fMC->GetTrack(MCLabels->operator[](0));
AliVParticle* vParticle2 = fMC->GetTrack(MCLabels->operator[](1));
if(vParticle1->PdgCode()==22 && vParticle2 == vParticle)
{
fHPhotonEdiff0HC->Fill(vParticle1->E(), (vParticle1->E() - clsE)/vParticle1->E());
fHPhotonEVsClsE->Fill(vParticle1->E(), clsE);
if((clsE - 0.3*esdtrack->E())<0) fHPhotonEdiff30HC->Fill(vParticle1->E(), 1);
else fHPhotonEdiff30HC->Fill(vParticle1->E(), (vParticle1->E() + 0.3*esdtrack->E() - clsE)/vParticle1->E());
if((clsE - 0.7*esdtrack->E())<0) fHPhotonEdiff70HC->Fill(vParticle1->E(), 1);
else fHPhotonEdiff70HC->Fill(vParticle1->E(), (vParticle1->E() + 0.7*esdtrack->E() - clsE)/vParticle1->E());
if((clsE - esdtrack->E())<0) fHPhotonEdiff100HC->Fill(vParticle1->E(), 1);
else fHPhotonEdiff100HC->Fill(vParticle1->E(), (vParticle1->E() + esdtrack->E() - clsE)/vParticle1->E());
continue;
}
if(vParticle2->PdgCode()==22 && vParticle1 == vParticle)
{
fHPhotonEdiff0HC->Fill(vParticle2->E(), (vParticle2->E() - clsE)/vParticle2->E());
fHPhotonEVsClsE->Fill(vParticle2->E(), clsE);
if((clsE - 0.3*esdtrack->E())<0) fHPhotonEdiff30HC->Fill(vParticle2->E(), 1);
else fHPhotonEdiff30HC->Fill(vParticle2->E(), (vParticle2->E() + 0.3*esdtrack->E() - clsE)/vParticle2->E());
if((clsE - 0.7*esdtrack->E())<0) fHPhotonEdiff70HC->Fill(vParticle2->E(), 1);
else fHPhotonEdiff70HC->Fill(vParticle2->E(), (vParticle2->E() + 0.7*esdtrack->E() - clsE)/vParticle2->E());
if((clsE-esdtrack->E())<0) fHPhotonEdiff100HC->Fill(vParticle2->E(), 1);
else fHPhotonEdiff100HC->Fill(vParticle2->E(), (vParticle2->E() + esdtrack->E() - clsE)/vParticle2->E());
}
}
}
if(newTrack) delete newTrack;
break;
}
if(newTrack) delete newTrack;
}
}
}
void AliAnalysisTaskSOH::ProcessScaleFactor()
{
const Double_t phiMax = 180 * TMath::DegToRad();
const Double_t phiMin = 80 * TMath::DegToRad();
const Double_t TPCArea= 2*TMath::Pi()*1.8;
const Double_t EMCArea = (phiMax-phiMin)*1.4;
Double_t PtEMC = 0;
Double_t PtTPC = 0;
for(Int_t j=0; j<fTrackIndices->GetSize(); j++)
{
AliESDtrack *trk = fESD->GetTrack(fTrackIndices->At(j));
Double_t eta = trk->Eta();
Double_t phi = trk->Phi();
if(TMath::Abs(eta)<0.9) PtTPC += trk->Pt();
if(TMath::Abs(eta)<0.7 && phi > phiMin && phi < phiMax ) PtEMC += trk->Pt();
}
Double_t EtWithHadCorr = 0;
Double_t EtWithoutHadCorr = 0;
Double_t vertex[3] = {0, 0, 0};
fESD->GetVertex()->GetXYZ(vertex);
TLorentzVector gamma;
for(Int_t i=0; i<fClusterArray->GetEntriesFast(); i++)
{
AliESDCaloCluster *cluster = (AliESDCaloCluster*)fClusterArray->At(i);
cluster->GetMomentum(gamma, vertex);
Double_t sinTheta = TMath::Sqrt(1-TMath::Power(gamma.CosTheta(),2));
EtWithoutHadCorr += cluster->E() * sinTheta;
EtWithHadCorr += cluster->GetDispersion() * sinTheta;
}
if(PtTPC>0)
{
fHScaleFactor->Fill((PtEMC+EtWithoutHadCorr)/EMCArea * TPCArea/PtTPC);
fHScaleFactor100HC->Fill((PtEMC+EtWithHadCorr)/EMCArea * TPCArea/PtTPC);
}
}
AliESDtrack *AliAnalysisTaskSOH::GetAcceptTrack(AliESDtrack *esdtrack)
{
AliESDtrack *newTrack = 0x0;
if(fEsdTrackCuts->AcceptTrack(esdtrack))
{
newTrack = new AliESDtrack(*esdtrack);
newTrack->SetTRDQuality(0);
}
else if(fHybridTrackCuts1->AcceptTrack(esdtrack))
{
if(esdtrack->GetConstrainedParam())
{
newTrack = new AliESDtrack(*esdtrack);
const AliExternalTrackParam* constrainParam = esdtrack->GetConstrainedParam();
newTrack->Set(constrainParam->GetX(),constrainParam->GetAlpha(),constrainParam->GetParameter(),constrainParam->GetCovariance());
newTrack->SetTRDQuality(1);
}
else
return 0x0;
}
else if(fHybridTrackCuts2->AcceptTrack(esdtrack))
{
if(esdtrack->GetConstrainedParam())
{
newTrack = new AliESDtrack(*esdtrack);
const AliExternalTrackParam* constrainParam = esdtrack->GetConstrainedParam();
newTrack->Set(constrainParam->GetX(),constrainParam->GetAlpha(),constrainParam->GetParameter(),constrainParam->GetCovariance());
newTrack->SetTRDQuality(2);
}
else
return 0x0;
}
else
{
return 0x0;
}
return newTrack;
}
Bool_t AliAnalysisTaskSOH::IsGoodMcParticle(AliVParticle* vParticle, Int_t ipart)
{
if(!vParticle) return kFALSE;
if(!fMC->IsPhysicalPrimary(ipart)) return kFALSE;
if (TMath::Abs(vParticle->Eta())>2) return kFALSE;
if(vParticle->Pt()<0.15) return kFALSE;
return kTRUE;
}
Bool_t AliAnalysisTaskSOH::IsGoodCluster(AliESDCaloCluster *cluster)
{
if(!cluster) return kFALSE;
if (!cluster->IsEMCAL()) return kFALSE;
return kTRUE;
}
void AliAnalysisTaskSOH::Terminate(Option_t *)
{
}
Bool_t AliAnalysisTaskSOH::EsdVertexOk() const
{
const AliESDVertex* vtx = fESD->GetPrimaryVertex();
if (!vtx) return kFALSE;
Int_t nContributors = vtx->GetNContributors();
Double_t zVertex = vtx->GetZ();
if( nContributors < 1 || TMath::Abs(zVertex) > fZVtxMax ) return kFALSE;
return kTRUE;
}
AliAnalysisTaskSOH.cxx:10 AliAnalysisTaskSOH.cxx:11 AliAnalysisTaskSOH.cxx:12 AliAnalysisTaskSOH.cxx:13 AliAnalysisTaskSOH.cxx:14 AliAnalysisTaskSOH.cxx:15 AliAnalysisTaskSOH.cxx:16 AliAnalysisTaskSOH.cxx:17 AliAnalysisTaskSOH.cxx:18 AliAnalysisTaskSOH.cxx:19 AliAnalysisTaskSOH.cxx:20 AliAnalysisTaskSOH.cxx:21 AliAnalysisTaskSOH.cxx:22 AliAnalysisTaskSOH.cxx:23 AliAnalysisTaskSOH.cxx:24 AliAnalysisTaskSOH.cxx:25 AliAnalysisTaskSOH.cxx:26 AliAnalysisTaskSOH.cxx:27 AliAnalysisTaskSOH.cxx:28 AliAnalysisTaskSOH.cxx:29 AliAnalysisTaskSOH.cxx:30 AliAnalysisTaskSOH.cxx:31 AliAnalysisTaskSOH.cxx:32 AliAnalysisTaskSOH.cxx:33 AliAnalysisTaskSOH.cxx:34 AliAnalysisTaskSOH.cxx:35 AliAnalysisTaskSOH.cxx:36 AliAnalysisTaskSOH.cxx:37 AliAnalysisTaskSOH.cxx:38 AliAnalysisTaskSOH.cxx:39 AliAnalysisTaskSOH.cxx:40 AliAnalysisTaskSOH.cxx:41 AliAnalysisTaskSOH.cxx:42 AliAnalysisTaskSOH.cxx:43 AliAnalysisTaskSOH.cxx:44 AliAnalysisTaskSOH.cxx:45 AliAnalysisTaskSOH.cxx:46 AliAnalysisTaskSOH.cxx:47 AliAnalysisTaskSOH.cxx:48 AliAnalysisTaskSOH.cxx:49 AliAnalysisTaskSOH.cxx:50 AliAnalysisTaskSOH.cxx:51 AliAnalysisTaskSOH.cxx:52 AliAnalysisTaskSOH.cxx:53 AliAnalysisTaskSOH.cxx:54 AliAnalysisTaskSOH.cxx:55 AliAnalysisTaskSOH.cxx:56 AliAnalysisTaskSOH.cxx:57 AliAnalysisTaskSOH.cxx:58 AliAnalysisTaskSOH.cxx:59 AliAnalysisTaskSOH.cxx:60 AliAnalysisTaskSOH.cxx:61 AliAnalysisTaskSOH.cxx:62 AliAnalysisTaskSOH.cxx:63 AliAnalysisTaskSOH.cxx:64 AliAnalysisTaskSOH.cxx:65 AliAnalysisTaskSOH.cxx:66 AliAnalysisTaskSOH.cxx:67 AliAnalysisTaskSOH.cxx:68 AliAnalysisTaskSOH.cxx:69 AliAnalysisTaskSOH.cxx:70 AliAnalysisTaskSOH.cxx:71 AliAnalysisTaskSOH.cxx:72 AliAnalysisTaskSOH.cxx:73 AliAnalysisTaskSOH.cxx:74 AliAnalysisTaskSOH.cxx:75 AliAnalysisTaskSOH.cxx:76 AliAnalysisTaskSOH.cxx:77 AliAnalysisTaskSOH.cxx:78 AliAnalysisTaskSOH.cxx:79 AliAnalysisTaskSOH.cxx:80 AliAnalysisTaskSOH.cxx:81 AliAnalysisTaskSOH.cxx:82 AliAnalysisTaskSOH.cxx:83 AliAnalysisTaskSOH.cxx:84 AliAnalysisTaskSOH.cxx:85 AliAnalysisTaskSOH.cxx:86 AliAnalysisTaskSOH.cxx:87 AliAnalysisTaskSOH.cxx:88 AliAnalysisTaskSOH.cxx:89 AliAnalysisTaskSOH.cxx:90 AliAnalysisTaskSOH.cxx:91 AliAnalysisTaskSOH.cxx:92 AliAnalysisTaskSOH.cxx:93 AliAnalysisTaskSOH.cxx:94 AliAnalysisTaskSOH.cxx:95 AliAnalysisTaskSOH.cxx:96 AliAnalysisTaskSOH.cxx:97 AliAnalysisTaskSOH.cxx:98 AliAnalysisTaskSOH.cxx:99 AliAnalysisTaskSOH.cxx:100 AliAnalysisTaskSOH.cxx:101 AliAnalysisTaskSOH.cxx:102 AliAnalysisTaskSOH.cxx:103 AliAnalysisTaskSOH.cxx:104 AliAnalysisTaskSOH.cxx:105 AliAnalysisTaskSOH.cxx:106 AliAnalysisTaskSOH.cxx:107 AliAnalysisTaskSOH.cxx:108 AliAnalysisTaskSOH.cxx:109 AliAnalysisTaskSOH.cxx:110 AliAnalysisTaskSOH.cxx:111 AliAnalysisTaskSOH.cxx:112 AliAnalysisTaskSOH.cxx:113 AliAnalysisTaskSOH.cxx:114 AliAnalysisTaskSOH.cxx:115 AliAnalysisTaskSOH.cxx:116 AliAnalysisTaskSOH.cxx:117 AliAnalysisTaskSOH.cxx:118 AliAnalysisTaskSOH.cxx:119 AliAnalysisTaskSOH.cxx:120 AliAnalysisTaskSOH.cxx:121 AliAnalysisTaskSOH.cxx:122 AliAnalysisTaskSOH.cxx:123 AliAnalysisTaskSOH.cxx:124 AliAnalysisTaskSOH.cxx:125 AliAnalysisTaskSOH.cxx:126 AliAnalysisTaskSOH.cxx:127 AliAnalysisTaskSOH.cxx:128 AliAnalysisTaskSOH.cxx:129 AliAnalysisTaskSOH.cxx:130 AliAnalysisTaskSOH.cxx:131 AliAnalysisTaskSOH.cxx:132 AliAnalysisTaskSOH.cxx:133 AliAnalysisTaskSOH.cxx:134 AliAnalysisTaskSOH.cxx:135 AliAnalysisTaskSOH.cxx:136 AliAnalysisTaskSOH.cxx:137 AliAnalysisTaskSOH.cxx:138 AliAnalysisTaskSOH.cxx:139 AliAnalysisTaskSOH.cxx:140 AliAnalysisTaskSOH.cxx:141 AliAnalysisTaskSOH.cxx:142 AliAnalysisTaskSOH.cxx:143 AliAnalysisTaskSOH.cxx:144 AliAnalysisTaskSOH.cxx:145 AliAnalysisTaskSOH.cxx:146 AliAnalysisTaskSOH.cxx:147 AliAnalysisTaskSOH.cxx:148 AliAnalysisTaskSOH.cxx:149 AliAnalysisTaskSOH.cxx:150 AliAnalysisTaskSOH.cxx:151 AliAnalysisTaskSOH.cxx:152 AliAnalysisTaskSOH.cxx:153 AliAnalysisTaskSOH.cxx:154 AliAnalysisTaskSOH.cxx:155 AliAnalysisTaskSOH.cxx:156 AliAnalysisTaskSOH.cxx:157 AliAnalysisTaskSOH.cxx:158 AliAnalysisTaskSOH.cxx:159 AliAnalysisTaskSOH.cxx:160 AliAnalysisTaskSOH.cxx:161 AliAnalysisTaskSOH.cxx:162 AliAnalysisTaskSOH.cxx:163 AliAnalysisTaskSOH.cxx:164 AliAnalysisTaskSOH.cxx:165 AliAnalysisTaskSOH.cxx:166 AliAnalysisTaskSOH.cxx:167 AliAnalysisTaskSOH.cxx:168 AliAnalysisTaskSOH.cxx:169 AliAnalysisTaskSOH.cxx:170 AliAnalysisTaskSOH.cxx:171 AliAnalysisTaskSOH.cxx:172 AliAnalysisTaskSOH.cxx:173 AliAnalysisTaskSOH.cxx:174 AliAnalysisTaskSOH.cxx:175 AliAnalysisTaskSOH.cxx:176 AliAnalysisTaskSOH.cxx:177 AliAnalysisTaskSOH.cxx:178 AliAnalysisTaskSOH.cxx:179 AliAnalysisTaskSOH.cxx:180 AliAnalysisTaskSOH.cxx:181 AliAnalysisTaskSOH.cxx:182 AliAnalysisTaskSOH.cxx:183 AliAnalysisTaskSOH.cxx:184 AliAnalysisTaskSOH.cxx:185 AliAnalysisTaskSOH.cxx:186 AliAnalysisTaskSOH.cxx:187 AliAnalysisTaskSOH.cxx:188 AliAnalysisTaskSOH.cxx:189 AliAnalysisTaskSOH.cxx:190 AliAnalysisTaskSOH.cxx:191 AliAnalysisTaskSOH.cxx:192 AliAnalysisTaskSOH.cxx:193 AliAnalysisTaskSOH.cxx:194 AliAnalysisTaskSOH.cxx:195 AliAnalysisTaskSOH.cxx:196 AliAnalysisTaskSOH.cxx:197 AliAnalysisTaskSOH.cxx:198 AliAnalysisTaskSOH.cxx:199 AliAnalysisTaskSOH.cxx:200 AliAnalysisTaskSOH.cxx:201 AliAnalysisTaskSOH.cxx:202 AliAnalysisTaskSOH.cxx:203 AliAnalysisTaskSOH.cxx:204 AliAnalysisTaskSOH.cxx:205 AliAnalysisTaskSOH.cxx:206 AliAnalysisTaskSOH.cxx:207 AliAnalysisTaskSOH.cxx:208 AliAnalysisTaskSOH.cxx:209 AliAnalysisTaskSOH.cxx:210 AliAnalysisTaskSOH.cxx:211 AliAnalysisTaskSOH.cxx:212 AliAnalysisTaskSOH.cxx:213 AliAnalysisTaskSOH.cxx:214 AliAnalysisTaskSOH.cxx:215 AliAnalysisTaskSOH.cxx:216 AliAnalysisTaskSOH.cxx:217 AliAnalysisTaskSOH.cxx:218 AliAnalysisTaskSOH.cxx:219 AliAnalysisTaskSOH.cxx:220 AliAnalysisTaskSOH.cxx:221 AliAnalysisTaskSOH.cxx:222 AliAnalysisTaskSOH.cxx:223 AliAnalysisTaskSOH.cxx:224 AliAnalysisTaskSOH.cxx:225 AliAnalysisTaskSOH.cxx:226 AliAnalysisTaskSOH.cxx:227 AliAnalysisTaskSOH.cxx:228 AliAnalysisTaskSOH.cxx:229 AliAnalysisTaskSOH.cxx:230 AliAnalysisTaskSOH.cxx:231 AliAnalysisTaskSOH.cxx:232 AliAnalysisTaskSOH.cxx:233 AliAnalysisTaskSOH.cxx:234 AliAnalysisTaskSOH.cxx:235 AliAnalysisTaskSOH.cxx:236 AliAnalysisTaskSOH.cxx:237 AliAnalysisTaskSOH.cxx:238 AliAnalysisTaskSOH.cxx:239 AliAnalysisTaskSOH.cxx:240 AliAnalysisTaskSOH.cxx:241 AliAnalysisTaskSOH.cxx:242 AliAnalysisTaskSOH.cxx:243 AliAnalysisTaskSOH.cxx:244 AliAnalysisTaskSOH.cxx:245 AliAnalysisTaskSOH.cxx:246 AliAnalysisTaskSOH.cxx:247 AliAnalysisTaskSOH.cxx:248 AliAnalysisTaskSOH.cxx:249 AliAnalysisTaskSOH.cxx:250 AliAnalysisTaskSOH.cxx:251 AliAnalysisTaskSOH.cxx:252 AliAnalysisTaskSOH.cxx:253 AliAnalysisTaskSOH.cxx:254 AliAnalysisTaskSOH.cxx:255 AliAnalysisTaskSOH.cxx:256 AliAnalysisTaskSOH.cxx:257 AliAnalysisTaskSOH.cxx:258 AliAnalysisTaskSOH.cxx:259 AliAnalysisTaskSOH.cxx:260 AliAnalysisTaskSOH.cxx:261 AliAnalysisTaskSOH.cxx:262 AliAnalysisTaskSOH.cxx:263 AliAnalysisTaskSOH.cxx:264 AliAnalysisTaskSOH.cxx:265 AliAnalysisTaskSOH.cxx:266 AliAnalysisTaskSOH.cxx:267 AliAnalysisTaskSOH.cxx:268 AliAnalysisTaskSOH.cxx:269 AliAnalysisTaskSOH.cxx:270 AliAnalysisTaskSOH.cxx:271 AliAnalysisTaskSOH.cxx:272 AliAnalysisTaskSOH.cxx:273 AliAnalysisTaskSOH.cxx:274 AliAnalysisTaskSOH.cxx:275 AliAnalysisTaskSOH.cxx:276 AliAnalysisTaskSOH.cxx:277 AliAnalysisTaskSOH.cxx:278 AliAnalysisTaskSOH.cxx:279 AliAnalysisTaskSOH.cxx:280 AliAnalysisTaskSOH.cxx:281 AliAnalysisTaskSOH.cxx:282 AliAnalysisTaskSOH.cxx:283 AliAnalysisTaskSOH.cxx:284 AliAnalysisTaskSOH.cxx:285 AliAnalysisTaskSOH.cxx:286 AliAnalysisTaskSOH.cxx:287 AliAnalysisTaskSOH.cxx:288 AliAnalysisTaskSOH.cxx:289 AliAnalysisTaskSOH.cxx:290 AliAnalysisTaskSOH.cxx:291 AliAnalysisTaskSOH.cxx:292 AliAnalysisTaskSOH.cxx:293 AliAnalysisTaskSOH.cxx:294 AliAnalysisTaskSOH.cxx:295 AliAnalysisTaskSOH.cxx:296 AliAnalysisTaskSOH.cxx:297 AliAnalysisTaskSOH.cxx:298 AliAnalysisTaskSOH.cxx:299 AliAnalysisTaskSOH.cxx:300 AliAnalysisTaskSOH.cxx:301 AliAnalysisTaskSOH.cxx:302 AliAnalysisTaskSOH.cxx:303 AliAnalysisTaskSOH.cxx:304 AliAnalysisTaskSOH.cxx:305 AliAnalysisTaskSOH.cxx:306 AliAnalysisTaskSOH.cxx:307 AliAnalysisTaskSOH.cxx:308 AliAnalysisTaskSOH.cxx:309 AliAnalysisTaskSOH.cxx:310 AliAnalysisTaskSOH.cxx:311 AliAnalysisTaskSOH.cxx:312 AliAnalysisTaskSOH.cxx:313 AliAnalysisTaskSOH.cxx:314 AliAnalysisTaskSOH.cxx:315 AliAnalysisTaskSOH.cxx:316 AliAnalysisTaskSOH.cxx:317 AliAnalysisTaskSOH.cxx:318 AliAnalysisTaskSOH.cxx:319 AliAnalysisTaskSOH.cxx:320 AliAnalysisTaskSOH.cxx:321 AliAnalysisTaskSOH.cxx:322 AliAnalysisTaskSOH.cxx:323 AliAnalysisTaskSOH.cxx:324 AliAnalysisTaskSOH.cxx:325 AliAnalysisTaskSOH.cxx:326 AliAnalysisTaskSOH.cxx:327 AliAnalysisTaskSOH.cxx:328 AliAnalysisTaskSOH.cxx:329 AliAnalysisTaskSOH.cxx:330 AliAnalysisTaskSOH.cxx:331 AliAnalysisTaskSOH.cxx:332 AliAnalysisTaskSOH.cxx:333 AliAnalysisTaskSOH.cxx:334 AliAnalysisTaskSOH.cxx:335 AliAnalysisTaskSOH.cxx:336 AliAnalysisTaskSOH.cxx:337 AliAnalysisTaskSOH.cxx:338 AliAnalysisTaskSOH.cxx:339 AliAnalysisTaskSOH.cxx:340 AliAnalysisTaskSOH.cxx:341 AliAnalysisTaskSOH.cxx:342 AliAnalysisTaskSOH.cxx:343 AliAnalysisTaskSOH.cxx:344 AliAnalysisTaskSOH.cxx:345 AliAnalysisTaskSOH.cxx:346 AliAnalysisTaskSOH.cxx:347 AliAnalysisTaskSOH.cxx:348 AliAnalysisTaskSOH.cxx:349 AliAnalysisTaskSOH.cxx:350 AliAnalysisTaskSOH.cxx:351 AliAnalysisTaskSOH.cxx:352 AliAnalysisTaskSOH.cxx:353 AliAnalysisTaskSOH.cxx:354 AliAnalysisTaskSOH.cxx:355 AliAnalysisTaskSOH.cxx:356 AliAnalysisTaskSOH.cxx:357 AliAnalysisTaskSOH.cxx:358 AliAnalysisTaskSOH.cxx:359 AliAnalysisTaskSOH.cxx:360 AliAnalysisTaskSOH.cxx:361 AliAnalysisTaskSOH.cxx:362 AliAnalysisTaskSOH.cxx:363 AliAnalysisTaskSOH.cxx:364 AliAnalysisTaskSOH.cxx:365 AliAnalysisTaskSOH.cxx:366 AliAnalysisTaskSOH.cxx:367 AliAnalysisTaskSOH.cxx:368 AliAnalysisTaskSOH.cxx:369 AliAnalysisTaskSOH.cxx:370 AliAnalysisTaskSOH.cxx:371 AliAnalysisTaskSOH.cxx:372 AliAnalysisTaskSOH.cxx:373 AliAnalysisTaskSOH.cxx:374 AliAnalysisTaskSOH.cxx:375 AliAnalysisTaskSOH.cxx:376 AliAnalysisTaskSOH.cxx:377 AliAnalysisTaskSOH.cxx:378 AliAnalysisTaskSOH.cxx:379 AliAnalysisTaskSOH.cxx:380 AliAnalysisTaskSOH.cxx:381 AliAnalysisTaskSOH.cxx:382 AliAnalysisTaskSOH.cxx:383 AliAnalysisTaskSOH.cxx:384 AliAnalysisTaskSOH.cxx:385 AliAnalysisTaskSOH.cxx:386 AliAnalysisTaskSOH.cxx:387 AliAnalysisTaskSOH.cxx:388 AliAnalysisTaskSOH.cxx:389 AliAnalysisTaskSOH.cxx:390 AliAnalysisTaskSOH.cxx:391 AliAnalysisTaskSOH.cxx:392 AliAnalysisTaskSOH.cxx:393 AliAnalysisTaskSOH.cxx:394 AliAnalysisTaskSOH.cxx:395 AliAnalysisTaskSOH.cxx:396 AliAnalysisTaskSOH.cxx:397 AliAnalysisTaskSOH.cxx:398 AliAnalysisTaskSOH.cxx:399 AliAnalysisTaskSOH.cxx:400 AliAnalysisTaskSOH.cxx:401 AliAnalysisTaskSOH.cxx:402 AliAnalysisTaskSOH.cxx:403 AliAnalysisTaskSOH.cxx:404 AliAnalysisTaskSOH.cxx:405 AliAnalysisTaskSOH.cxx:406 AliAnalysisTaskSOH.cxx:407 AliAnalysisTaskSOH.cxx:408 AliAnalysisTaskSOH.cxx:409 AliAnalysisTaskSOH.cxx:410 AliAnalysisTaskSOH.cxx:411 AliAnalysisTaskSOH.cxx:412 AliAnalysisTaskSOH.cxx:413 AliAnalysisTaskSOH.cxx:414 AliAnalysisTaskSOH.cxx:415 AliAnalysisTaskSOH.cxx:416 AliAnalysisTaskSOH.cxx:417 AliAnalysisTaskSOH.cxx:418 AliAnalysisTaskSOH.cxx:419 AliAnalysisTaskSOH.cxx:420 AliAnalysisTaskSOH.cxx:421 AliAnalysisTaskSOH.cxx:422 AliAnalysisTaskSOH.cxx:423 AliAnalysisTaskSOH.cxx:424 AliAnalysisTaskSOH.cxx:425 AliAnalysisTaskSOH.cxx:426 AliAnalysisTaskSOH.cxx:427 AliAnalysisTaskSOH.cxx:428 AliAnalysisTaskSOH.cxx:429 AliAnalysisTaskSOH.cxx:430 AliAnalysisTaskSOH.cxx:431 AliAnalysisTaskSOH.cxx:432 AliAnalysisTaskSOH.cxx:433 AliAnalysisTaskSOH.cxx:434 AliAnalysisTaskSOH.cxx:435 AliAnalysisTaskSOH.cxx:436 AliAnalysisTaskSOH.cxx:437 AliAnalysisTaskSOH.cxx:438 AliAnalysisTaskSOH.cxx:439 AliAnalysisTaskSOH.cxx:440 AliAnalysisTaskSOH.cxx:441 AliAnalysisTaskSOH.cxx:442 AliAnalysisTaskSOH.cxx:443 AliAnalysisTaskSOH.cxx:444 AliAnalysisTaskSOH.cxx:445 AliAnalysisTaskSOH.cxx:446 AliAnalysisTaskSOH.cxx:447 AliAnalysisTaskSOH.cxx:448 AliAnalysisTaskSOH.cxx:449 AliAnalysisTaskSOH.cxx:450 AliAnalysisTaskSOH.cxx:451 AliAnalysisTaskSOH.cxx:452 AliAnalysisTaskSOH.cxx:453 AliAnalysisTaskSOH.cxx:454 AliAnalysisTaskSOH.cxx:455 AliAnalysisTaskSOH.cxx:456 AliAnalysisTaskSOH.cxx:457 AliAnalysisTaskSOH.cxx:458 AliAnalysisTaskSOH.cxx:459 AliAnalysisTaskSOH.cxx:460 AliAnalysisTaskSOH.cxx:461 AliAnalysisTaskSOH.cxx:462 AliAnalysisTaskSOH.cxx:463 AliAnalysisTaskSOH.cxx:464 AliAnalysisTaskSOH.cxx:465 AliAnalysisTaskSOH.cxx:466 AliAnalysisTaskSOH.cxx:467 AliAnalysisTaskSOH.cxx:468 AliAnalysisTaskSOH.cxx:469 AliAnalysisTaskSOH.cxx:470 AliAnalysisTaskSOH.cxx:471 AliAnalysisTaskSOH.cxx:472 AliAnalysisTaskSOH.cxx:473 AliAnalysisTaskSOH.cxx:474 AliAnalysisTaskSOH.cxx:475 AliAnalysisTaskSOH.cxx:476 AliAnalysisTaskSOH.cxx:477 AliAnalysisTaskSOH.cxx:478 AliAnalysisTaskSOH.cxx:479 AliAnalysisTaskSOH.cxx:480 AliAnalysisTaskSOH.cxx:481 AliAnalysisTaskSOH.cxx:482 AliAnalysisTaskSOH.cxx:483 AliAnalysisTaskSOH.cxx:484 AliAnalysisTaskSOH.cxx:485 AliAnalysisTaskSOH.cxx:486 AliAnalysisTaskSOH.cxx:487 AliAnalysisTaskSOH.cxx:488 AliAnalysisTaskSOH.cxx:489 AliAnalysisTaskSOH.cxx:490 AliAnalysisTaskSOH.cxx:491 AliAnalysisTaskSOH.cxx:492 AliAnalysisTaskSOH.cxx:493 AliAnalysisTaskSOH.cxx:494 AliAnalysisTaskSOH.cxx:495 AliAnalysisTaskSOH.cxx:496 AliAnalysisTaskSOH.cxx:497 AliAnalysisTaskSOH.cxx:498 AliAnalysisTaskSOH.cxx:499 AliAnalysisTaskSOH.cxx:500 AliAnalysisTaskSOH.cxx:501 AliAnalysisTaskSOH.cxx:502 AliAnalysisTaskSOH.cxx:503 AliAnalysisTaskSOH.cxx:504 AliAnalysisTaskSOH.cxx:505 AliAnalysisTaskSOH.cxx:506 AliAnalysisTaskSOH.cxx:507 AliAnalysisTaskSOH.cxx:508 AliAnalysisTaskSOH.cxx:509 AliAnalysisTaskSOH.cxx:510 AliAnalysisTaskSOH.cxx:511 AliAnalysisTaskSOH.cxx:512 AliAnalysisTaskSOH.cxx:513 AliAnalysisTaskSOH.cxx:514 AliAnalysisTaskSOH.cxx:515 AliAnalysisTaskSOH.cxx:516 AliAnalysisTaskSOH.cxx:517 AliAnalysisTaskSOH.cxx:518 AliAnalysisTaskSOH.cxx:519 AliAnalysisTaskSOH.cxx:520 AliAnalysisTaskSOH.cxx:521 AliAnalysisTaskSOH.cxx:522 AliAnalysisTaskSOH.cxx:523 AliAnalysisTaskSOH.cxx:524 AliAnalysisTaskSOH.cxx:525 AliAnalysisTaskSOH.cxx:526 AliAnalysisTaskSOH.cxx:527 AliAnalysisTaskSOH.cxx:528 AliAnalysisTaskSOH.cxx:529 AliAnalysisTaskSOH.cxx:530 AliAnalysisTaskSOH.cxx:531 AliAnalysisTaskSOH.cxx:532 AliAnalysisTaskSOH.cxx:533 AliAnalysisTaskSOH.cxx:534 AliAnalysisTaskSOH.cxx:535 AliAnalysisTaskSOH.cxx:536 AliAnalysisTaskSOH.cxx:537 AliAnalysisTaskSOH.cxx:538 AliAnalysisTaskSOH.cxx:539 AliAnalysisTaskSOH.cxx:540 AliAnalysisTaskSOH.cxx:541 AliAnalysisTaskSOH.cxx:542 AliAnalysisTaskSOH.cxx:543 AliAnalysisTaskSOH.cxx:544 AliAnalysisTaskSOH.cxx:545 AliAnalysisTaskSOH.cxx:546 AliAnalysisTaskSOH.cxx:547 AliAnalysisTaskSOH.cxx:548 AliAnalysisTaskSOH.cxx:549 AliAnalysisTaskSOH.cxx:550 AliAnalysisTaskSOH.cxx:551 AliAnalysisTaskSOH.cxx:552 AliAnalysisTaskSOH.cxx:553 AliAnalysisTaskSOH.cxx:554 AliAnalysisTaskSOH.cxx:555 AliAnalysisTaskSOH.cxx:556 AliAnalysisTaskSOH.cxx:557 AliAnalysisTaskSOH.cxx:558 AliAnalysisTaskSOH.cxx:559 AliAnalysisTaskSOH.cxx:560 AliAnalysisTaskSOH.cxx:561 AliAnalysisTaskSOH.cxx:562 AliAnalysisTaskSOH.cxx:563 AliAnalysisTaskSOH.cxx:564 AliAnalysisTaskSOH.cxx:565 AliAnalysisTaskSOH.cxx:566 AliAnalysisTaskSOH.cxx:567 AliAnalysisTaskSOH.cxx:568 AliAnalysisTaskSOH.cxx:569 AliAnalysisTaskSOH.cxx:570 AliAnalysisTaskSOH.cxx:571 AliAnalysisTaskSOH.cxx:572 AliAnalysisTaskSOH.cxx:573 AliAnalysisTaskSOH.cxx:574 AliAnalysisTaskSOH.cxx:575 AliAnalysisTaskSOH.cxx:576 AliAnalysisTaskSOH.cxx:577 AliAnalysisTaskSOH.cxx:578 AliAnalysisTaskSOH.cxx:579 AliAnalysisTaskSOH.cxx:580 AliAnalysisTaskSOH.cxx:581 AliAnalysisTaskSOH.cxx:582 AliAnalysisTaskSOH.cxx:583 AliAnalysisTaskSOH.cxx:584 AliAnalysisTaskSOH.cxx:585 AliAnalysisTaskSOH.cxx:586 AliAnalysisTaskSOH.cxx:587 AliAnalysisTaskSOH.cxx:588 AliAnalysisTaskSOH.cxx:589 AliAnalysisTaskSOH.cxx:590 AliAnalysisTaskSOH.cxx:591 AliAnalysisTaskSOH.cxx:592 AliAnalysisTaskSOH.cxx:593 AliAnalysisTaskSOH.cxx:594 AliAnalysisTaskSOH.cxx:595 AliAnalysisTaskSOH.cxx:596 AliAnalysisTaskSOH.cxx:597 AliAnalysisTaskSOH.cxx:598 AliAnalysisTaskSOH.cxx:599 AliAnalysisTaskSOH.cxx:600 AliAnalysisTaskSOH.cxx:601 AliAnalysisTaskSOH.cxx:602 AliAnalysisTaskSOH.cxx:603 AliAnalysisTaskSOH.cxx:604 AliAnalysisTaskSOH.cxx:605 AliAnalysisTaskSOH.cxx:606 AliAnalysisTaskSOH.cxx:607 AliAnalysisTaskSOH.cxx:608 AliAnalysisTaskSOH.cxx:609 AliAnalysisTaskSOH.cxx:610 AliAnalysisTaskSOH.cxx:611 AliAnalysisTaskSOH.cxx:612 AliAnalysisTaskSOH.cxx:613 AliAnalysisTaskSOH.cxx:614 AliAnalysisTaskSOH.cxx:615 AliAnalysisTaskSOH.cxx:616 AliAnalysisTaskSOH.cxx:617 AliAnalysisTaskSOH.cxx:618 AliAnalysisTaskSOH.cxx:619 AliAnalysisTaskSOH.cxx:620 AliAnalysisTaskSOH.cxx:621 AliAnalysisTaskSOH.cxx:622 AliAnalysisTaskSOH.cxx:623 AliAnalysisTaskSOH.cxx:624 AliAnalysisTaskSOH.cxx:625 AliAnalysisTaskSOH.cxx:626 AliAnalysisTaskSOH.cxx:627 AliAnalysisTaskSOH.cxx:628 AliAnalysisTaskSOH.cxx:629 AliAnalysisTaskSOH.cxx:630 AliAnalysisTaskSOH.cxx:631 AliAnalysisTaskSOH.cxx:632 AliAnalysisTaskSOH.cxx:633 AliAnalysisTaskSOH.cxx:634 AliAnalysisTaskSOH.cxx:635 AliAnalysisTaskSOH.cxx:636 AliAnalysisTaskSOH.cxx:637 AliAnalysisTaskSOH.cxx:638 AliAnalysisTaskSOH.cxx:639 AliAnalysisTaskSOH.cxx:640 AliAnalysisTaskSOH.cxx:641 AliAnalysisTaskSOH.cxx:642 AliAnalysisTaskSOH.cxx:643 AliAnalysisTaskSOH.cxx:644 AliAnalysisTaskSOH.cxx:645 AliAnalysisTaskSOH.cxx:646 AliAnalysisTaskSOH.cxx:647 AliAnalysisTaskSOH.cxx:648 AliAnalysisTaskSOH.cxx:649 AliAnalysisTaskSOH.cxx:650 AliAnalysisTaskSOH.cxx:651 AliAnalysisTaskSOH.cxx:652 AliAnalysisTaskSOH.cxx:653 AliAnalysisTaskSOH.cxx:654 AliAnalysisTaskSOH.cxx:655 AliAnalysisTaskSOH.cxx:656 AliAnalysisTaskSOH.cxx:657 AliAnalysisTaskSOH.cxx:658 AliAnalysisTaskSOH.cxx:659 AliAnalysisTaskSOH.cxx:660 AliAnalysisTaskSOH.cxx:661 AliAnalysisTaskSOH.cxx:662 AliAnalysisTaskSOH.cxx:663 AliAnalysisTaskSOH.cxx:664 AliAnalysisTaskSOH.cxx:665 AliAnalysisTaskSOH.cxx:666 AliAnalysisTaskSOH.cxx:667 AliAnalysisTaskSOH.cxx:668 AliAnalysisTaskSOH.cxx:669 AliAnalysisTaskSOH.cxx:670 AliAnalysisTaskSOH.cxx:671 AliAnalysisTaskSOH.cxx:672 AliAnalysisTaskSOH.cxx:673 AliAnalysisTaskSOH.cxx:674 AliAnalysisTaskSOH.cxx:675 AliAnalysisTaskSOH.cxx:676 AliAnalysisTaskSOH.cxx:677 AliAnalysisTaskSOH.cxx:678 AliAnalysisTaskSOH.cxx:679 AliAnalysisTaskSOH.cxx:680 AliAnalysisTaskSOH.cxx:681 AliAnalysisTaskSOH.cxx:682 AliAnalysisTaskSOH.cxx:683 AliAnalysisTaskSOH.cxx:684 AliAnalysisTaskSOH.cxx:685 AliAnalysisTaskSOH.cxx:686 AliAnalysisTaskSOH.cxx:687 AliAnalysisTaskSOH.cxx:688 AliAnalysisTaskSOH.cxx:689 AliAnalysisTaskSOH.cxx:690 AliAnalysisTaskSOH.cxx:691 AliAnalysisTaskSOH.cxx:692 AliAnalysisTaskSOH.cxx:693 AliAnalysisTaskSOH.cxx:694 AliAnalysisTaskSOH.cxx:695 AliAnalysisTaskSOH.cxx:696 AliAnalysisTaskSOH.cxx:697 AliAnalysisTaskSOH.cxx:698 AliAnalysisTaskSOH.cxx:699 AliAnalysisTaskSOH.cxx:700 AliAnalysisTaskSOH.cxx:701 AliAnalysisTaskSOH.cxx:702 AliAnalysisTaskSOH.cxx:703 AliAnalysisTaskSOH.cxx:704 AliAnalysisTaskSOH.cxx:705 AliAnalysisTaskSOH.cxx:706 AliAnalysisTaskSOH.cxx:707 AliAnalysisTaskSOH.cxx:708 AliAnalysisTaskSOH.cxx:709 AliAnalysisTaskSOH.cxx:710 AliAnalysisTaskSOH.cxx:711 AliAnalysisTaskSOH.cxx:712 AliAnalysisTaskSOH.cxx:713 AliAnalysisTaskSOH.cxx:714 AliAnalysisTaskSOH.cxx:715 AliAnalysisTaskSOH.cxx:716 AliAnalysisTaskSOH.cxx:717 AliAnalysisTaskSOH.cxx:718 AliAnalysisTaskSOH.cxx:719 AliAnalysisTaskSOH.cxx:720 AliAnalysisTaskSOH.cxx:721 AliAnalysisTaskSOH.cxx:722 AliAnalysisTaskSOH.cxx:723 AliAnalysisTaskSOH.cxx:724 AliAnalysisTaskSOH.cxx:725 AliAnalysisTaskSOH.cxx:726 AliAnalysisTaskSOH.cxx:727 AliAnalysisTaskSOH.cxx:728 AliAnalysisTaskSOH.cxx:729 AliAnalysisTaskSOH.cxx:730 AliAnalysisTaskSOH.cxx:731 AliAnalysisTaskSOH.cxx:732 AliAnalysisTaskSOH.cxx:733 AliAnalysisTaskSOH.cxx:734 AliAnalysisTaskSOH.cxx:735 AliAnalysisTaskSOH.cxx:736 AliAnalysisTaskSOH.cxx:737 AliAnalysisTaskSOH.cxx:738 AliAnalysisTaskSOH.cxx:739 AliAnalysisTaskSOH.cxx:740 AliAnalysisTaskSOH.cxx:741 AliAnalysisTaskSOH.cxx:742 AliAnalysisTaskSOH.cxx:743 AliAnalysisTaskSOH.cxx:744 AliAnalysisTaskSOH.cxx:745 AliAnalysisTaskSOH.cxx:746 AliAnalysisTaskSOH.cxx:747 AliAnalysisTaskSOH.cxx:748 AliAnalysisTaskSOH.cxx:749 AliAnalysisTaskSOH.cxx:750 AliAnalysisTaskSOH.cxx:751 AliAnalysisTaskSOH.cxx:752 AliAnalysisTaskSOH.cxx:753 AliAnalysisTaskSOH.cxx:754 AliAnalysisTaskSOH.cxx:755 AliAnalysisTaskSOH.cxx:756 AliAnalysisTaskSOH.cxx:757 AliAnalysisTaskSOH.cxx:758 AliAnalysisTaskSOH.cxx:759 AliAnalysisTaskSOH.cxx:760 AliAnalysisTaskSOH.cxx:761 AliAnalysisTaskSOH.cxx:762 AliAnalysisTaskSOH.cxx:763 AliAnalysisTaskSOH.cxx:764 AliAnalysisTaskSOH.cxx:765 AliAnalysisTaskSOH.cxx:766 AliAnalysisTaskSOH.cxx:767 AliAnalysisTaskSOH.cxx:768 AliAnalysisTaskSOH.cxx:769 AliAnalysisTaskSOH.cxx:770 AliAnalysisTaskSOH.cxx:771 AliAnalysisTaskSOH.cxx:772 AliAnalysisTaskSOH.cxx:773 AliAnalysisTaskSOH.cxx:774 AliAnalysisTaskSOH.cxx:775 AliAnalysisTaskSOH.cxx:776 AliAnalysisTaskSOH.cxx:777 AliAnalysisTaskSOH.cxx:778 AliAnalysisTaskSOH.cxx:779 AliAnalysisTaskSOH.cxx:780 AliAnalysisTaskSOH.cxx:781 AliAnalysisTaskSOH.cxx:782 AliAnalysisTaskSOH.cxx:783 AliAnalysisTaskSOH.cxx:784 AliAnalysisTaskSOH.cxx:785 AliAnalysisTaskSOH.cxx:786 AliAnalysisTaskSOH.cxx:787 AliAnalysisTaskSOH.cxx:788 AliAnalysisTaskSOH.cxx:789 AliAnalysisTaskSOH.cxx:790 AliAnalysisTaskSOH.cxx:791 AliAnalysisTaskSOH.cxx:792 AliAnalysisTaskSOH.cxx:793 AliAnalysisTaskSOH.cxx:794 AliAnalysisTaskSOH.cxx:795 AliAnalysisTaskSOH.cxx:796 AliAnalysisTaskSOH.cxx:797 AliAnalysisTaskSOH.cxx:798 AliAnalysisTaskSOH.cxx:799 AliAnalysisTaskSOH.cxx:800 AliAnalysisTaskSOH.cxx:801 AliAnalysisTaskSOH.cxx:802 AliAnalysisTaskSOH.cxx:803 AliAnalysisTaskSOH.cxx:804 AliAnalysisTaskSOH.cxx:805 AliAnalysisTaskSOH.cxx:806 AliAnalysisTaskSOH.cxx:807 AliAnalysisTaskSOH.cxx:808 AliAnalysisTaskSOH.cxx:809 AliAnalysisTaskSOH.cxx:810 AliAnalysisTaskSOH.cxx:811 AliAnalysisTaskSOH.cxx:812 AliAnalysisTaskSOH.cxx:813 AliAnalysisTaskSOH.cxx:814 AliAnalysisTaskSOH.cxx:815 AliAnalysisTaskSOH.cxx:816 AliAnalysisTaskSOH.cxx:817 AliAnalysisTaskSOH.cxx:818 AliAnalysisTaskSOH.cxx:819 AliAnalysisTaskSOH.cxx:820 AliAnalysisTaskSOH.cxx:821 AliAnalysisTaskSOH.cxx:822 AliAnalysisTaskSOH.cxx:823 AliAnalysisTaskSOH.cxx:824 AliAnalysisTaskSOH.cxx:825 AliAnalysisTaskSOH.cxx:826 AliAnalysisTaskSOH.cxx:827 AliAnalysisTaskSOH.cxx:828 AliAnalysisTaskSOH.cxx:829 AliAnalysisTaskSOH.cxx:830 AliAnalysisTaskSOH.cxx:831 AliAnalysisTaskSOH.cxx:832 AliAnalysisTaskSOH.cxx:833 AliAnalysisTaskSOH.cxx:834 AliAnalysisTaskSOH.cxx:835 AliAnalysisTaskSOH.cxx:836 AliAnalysisTaskSOH.cxx:837 AliAnalysisTaskSOH.cxx:838 AliAnalysisTaskSOH.cxx:839 AliAnalysisTaskSOH.cxx:840 AliAnalysisTaskSOH.cxx:841 AliAnalysisTaskSOH.cxx:842 AliAnalysisTaskSOH.cxx:843 AliAnalysisTaskSOH.cxx:844 AliAnalysisTaskSOH.cxx:845 AliAnalysisTaskSOH.cxx:846 AliAnalysisTaskSOH.cxx:847 AliAnalysisTaskSOH.cxx:848 AliAnalysisTaskSOH.cxx:849 AliAnalysisTaskSOH.cxx:850 AliAnalysisTaskSOH.cxx:851 AliAnalysisTaskSOH.cxx:852 AliAnalysisTaskSOH.cxx:853 AliAnalysisTaskSOH.cxx:854 AliAnalysisTaskSOH.cxx:855 AliAnalysisTaskSOH.cxx:856 AliAnalysisTaskSOH.cxx:857 AliAnalysisTaskSOH.cxx:858 AliAnalysisTaskSOH.cxx:859 AliAnalysisTaskSOH.cxx:860 AliAnalysisTaskSOH.cxx:861 AliAnalysisTaskSOH.cxx:862 AliAnalysisTaskSOH.cxx:863 AliAnalysisTaskSOH.cxx:864 AliAnalysisTaskSOH.cxx:865 AliAnalysisTaskSOH.cxx:866 AliAnalysisTaskSOH.cxx:867 AliAnalysisTaskSOH.cxx:868 AliAnalysisTaskSOH.cxx:869 AliAnalysisTaskSOH.cxx:870 AliAnalysisTaskSOH.cxx:871 AliAnalysisTaskSOH.cxx:872 AliAnalysisTaskSOH.cxx:873 AliAnalysisTaskSOH.cxx:874 AliAnalysisTaskSOH.cxx:875 AliAnalysisTaskSOH.cxx:876 AliAnalysisTaskSOH.cxx:877 AliAnalysisTaskSOH.cxx:878 AliAnalysisTaskSOH.cxx:879 AliAnalysisTaskSOH.cxx:880 AliAnalysisTaskSOH.cxx:881 AliAnalysisTaskSOH.cxx:882 AliAnalysisTaskSOH.cxx:883 AliAnalysisTaskSOH.cxx:884 AliAnalysisTaskSOH.cxx:885 AliAnalysisTaskSOH.cxx:886 AliAnalysisTaskSOH.cxx:887 AliAnalysisTaskSOH.cxx:888 AliAnalysisTaskSOH.cxx:889 AliAnalysisTaskSOH.cxx:890 AliAnalysisTaskSOH.cxx:891 AliAnalysisTaskSOH.cxx:892 AliAnalysisTaskSOH.cxx:893 AliAnalysisTaskSOH.cxx:894 AliAnalysisTaskSOH.cxx:895 AliAnalysisTaskSOH.cxx:896 AliAnalysisTaskSOH.cxx:897 AliAnalysisTaskSOH.cxx:898 AliAnalysisTaskSOH.cxx:899 AliAnalysisTaskSOH.cxx:900 AliAnalysisTaskSOH.cxx:901 AliAnalysisTaskSOH.cxx:902 AliAnalysisTaskSOH.cxx:903 AliAnalysisTaskSOH.cxx:904 AliAnalysisTaskSOH.cxx:905 AliAnalysisTaskSOH.cxx:906 AliAnalysisTaskSOH.cxx:907 AliAnalysisTaskSOH.cxx:908 AliAnalysisTaskSOH.cxx:909 AliAnalysisTaskSOH.cxx:910 AliAnalysisTaskSOH.cxx:911 AliAnalysisTaskSOH.cxx:912 AliAnalysisTaskSOH.cxx:913 AliAnalysisTaskSOH.cxx:914 AliAnalysisTaskSOH.cxx:915 AliAnalysisTaskSOH.cxx:916 AliAnalysisTaskSOH.cxx:917 AliAnalysisTaskSOH.cxx:918 AliAnalysisTaskSOH.cxx:919 AliAnalysisTaskSOH.cxx:920 AliAnalysisTaskSOH.cxx:921 AliAnalysisTaskSOH.cxx:922 AliAnalysisTaskSOH.cxx:923 AliAnalysisTaskSOH.cxx:924 AliAnalysisTaskSOH.cxx:925 AliAnalysisTaskSOH.cxx:926 AliAnalysisTaskSOH.cxx:927 AliAnalysisTaskSOH.cxx:928 AliAnalysisTaskSOH.cxx:929 AliAnalysisTaskSOH.cxx:930 AliAnalysisTaskSOH.cxx:931 AliAnalysisTaskSOH.cxx:932 AliAnalysisTaskSOH.cxx:933 AliAnalysisTaskSOH.cxx:934 AliAnalysisTaskSOH.cxx:935 AliAnalysisTaskSOH.cxx:936 AliAnalysisTaskSOH.cxx:937 AliAnalysisTaskSOH.cxx:938 AliAnalysisTaskSOH.cxx:939 AliAnalysisTaskSOH.cxx:940 AliAnalysisTaskSOH.cxx:941 AliAnalysisTaskSOH.cxx:942 AliAnalysisTaskSOH.cxx:943 AliAnalysisTaskSOH.cxx:944 AliAnalysisTaskSOH.cxx:945 AliAnalysisTaskSOH.cxx:946 AliAnalysisTaskSOH.cxx:947 AliAnalysisTaskSOH.cxx:948 AliAnalysisTaskSOH.cxx:949 AliAnalysisTaskSOH.cxx:950 AliAnalysisTaskSOH.cxx:951 AliAnalysisTaskSOH.cxx:952 AliAnalysisTaskSOH.cxx:953 AliAnalysisTaskSOH.cxx:954 AliAnalysisTaskSOH.cxx:955 AliAnalysisTaskSOH.cxx:956 AliAnalysisTaskSOH.cxx:957 AliAnalysisTaskSOH.cxx:958 AliAnalysisTaskSOH.cxx:959 AliAnalysisTaskSOH.cxx:960 AliAnalysisTaskSOH.cxx:961 AliAnalysisTaskSOH.cxx:962 AliAnalysisTaskSOH.cxx:963 AliAnalysisTaskSOH.cxx:964 AliAnalysisTaskSOH.cxx:965 AliAnalysisTaskSOH.cxx:966 AliAnalysisTaskSOH.cxx:967 AliAnalysisTaskSOH.cxx:968 AliAnalysisTaskSOH.cxx:969 AliAnalysisTaskSOH.cxx:970 AliAnalysisTaskSOH.cxx:971 AliAnalysisTaskSOH.cxx:972 AliAnalysisTaskSOH.cxx:973 AliAnalysisTaskSOH.cxx:974 AliAnalysisTaskSOH.cxx:975 AliAnalysisTaskSOH.cxx:976 AliAnalysisTaskSOH.cxx:977 AliAnalysisTaskSOH.cxx:978 AliAnalysisTaskSOH.cxx:979 AliAnalysisTaskSOH.cxx:980 AliAnalysisTaskSOH.cxx:981 AliAnalysisTaskSOH.cxx:982 AliAnalysisTaskSOH.cxx:983 AliAnalysisTaskSOH.cxx:984 AliAnalysisTaskSOH.cxx:985 AliAnalysisTaskSOH.cxx:986 AliAnalysisTaskSOH.cxx:987 AliAnalysisTaskSOH.cxx:988