From 84bef463eca6bf35428e7fe1082f3ac2fa34f53f Mon Sep 17 00:00:00 2001 From: lramona Date: Wed, 2 Jul 2014 12:35:32 +0200 Subject: [PATCH] Added three new histograms for resolution + modified thnsparse branch definition --- .../Hypernuclei/AliAnalysisTaskNucleiv2.cxx | 1861 ++++++++--------- .../Hypernuclei/AliAnalysisTaskNucleiv2.h | 187 +- 2 files changed, 941 insertions(+), 1107 deletions(-) diff --git a/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.cxx b/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.cxx index 13befeae86d..94cbc34c609 100644 --- a/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.cxx +++ b/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.cxx @@ -53,6 +53,13 @@ class AliCascadeVertexer; #include "AliAnalysisTaskNucleiv2.h" #include "AliESDtrackCuts.h" #include "AliCentrality.h" +#include "AliFlowCandidateTrack.h" +#include "AliFlowTrackCuts.h" +#include "AliFlowEventSimple.h" +#include "AliFlowCommonConstants.h" +#include "AliFlowEvent.h" +#include "AliFlowTrack.h" +#include "TProfile.h" ClassImp(AliAnalysisTaskNucleiv2) @@ -62,11 +69,16 @@ using std::endl; //________________________________________________________________________ AliAnalysisTaskNucleiv2::AliAnalysisTaskNucleiv2() : AliAnalysisTaskSE(), - fAnalysisType("ESD"), + fAnalysisType(0), fCollidingSystems(0), - fDataType("REAL"), - fFillNtuple(kFALSE), - fListHistCascade(0), + fDataType(0), + fFillNtuple(0), + fCentralityMin(0), + fCentralityMax(0), + fCutsRP(0), + fNullCuts(0), + fFlowEvent(0), + fListHist(0), fHistEventMultiplicity(0), fHistTrackMultiplicity(0), fHistTrackMultiplicityCentral(0), @@ -77,78 +89,47 @@ AliAnalysisTaskNucleiv2::AliAnalysisTaskNucleiv2() fhPtDeu(0), fhTOF(0), fhMassTOF(0), - hRPangleTPCvsCentrality(0), //RESOLUTION Histrograms - hPlaneResoTPCvsCentrality(0), - hRPangleVZEROvsCentrality(0), - hRPangleVZEROAvsCentrality(0), - hRPangleVZEROCvsCentrality(0), - hPlaneResoVZEROvsCentrality(0), - hPlaneResoVZEROAvsCentrality(0), - hPlaneResoVZEROCvsCentrality(0), - hCosPhivsPt(0), - hSinPhivsPt(0), - hPhivsPt(0), - hAntiCosPhivsPt(0), - hAntiSinPhivsPt(0), - hAntiPhivsPt(0), - hCosDeltaPhivsPt075(0), - hSinDeltaPhivsPt075(0), - hDeltaPhivsPt075(0), - hCosDeltaPhiVZEROvsPt075(0), - hSinDeltaPhiVZEROvsPt075(0), - hDeltaPhiVZEROvsPt075(0), - hCosDeltaPhivsPt1530(0), - hSinDeltaPhivsPt1530(0), - hDeltaPhivsPt1530(0), - hCosDeltaPhiVZEROvsPt1530(0), - hSinDeltaPhiVZEROvsPt1530(0), - hDeltaPhiVZEROvsPt1530(0), - hCosDeltaPhivsPt3050(0), - hSinDeltaPhivsPt3050(0), - hDeltaPhivsPt3050(0), - hCosDeltaPhiVZEROvsPt3050(0), - hSinDeltaPhiVZEROvsPt3050(0), - hDeltaPhiVZEROvsPt3050(0), - hCosDeltaPhivsPt1550(0), - hSinDeltaPhivsPt1550(0), - hDeltaPhivsPt1550(0), - hCosDeltaPhiVZEROvsPt1550(0), - hSinDeltaPhiVZEROvsPt1550(0), - hDeltaPhiVZEROvsPt1550(0), - hAntiCosDeltaPhivsPt075(0), - hAntiSinDeltaPhivsPt075(0), - hAntiDeltaPhivsPt075(0), - hAntiCosDeltaPhiVZEROvsPt075(0), - hAntiSinDeltaPhiVZEROvsPt075(0), - hAntiDeltaPhiVZEROvsPt075(0), - hAntiCosDeltaPhivsPt1530(0), - hAntiSinDeltaPhivsPt1530(0), - hAntiDeltaPhivsPt1530(0), - hAntiCosDeltaPhiVZEROvsPt1530(0), - hAntiSinDeltaPhiVZEROvsPt1530(0), - hAntiDeltaPhiVZEROvsPt1530(0), - hAntiCosDeltaPhivsPt3050(0), - hAntiSinDeltaPhivsPt3050(0), - hAntiDeltaPhivsPt3050(0), - hAntiCosDeltaPhiVZEROvsPt3050(0), - hAntiSinDeltaPhiVZEROvsPt3050(0), - hAntiDeltaPhiVZEROvsPt3050(0), - hAntiCosDeltaPhivsPt1550(0), - hAntiSinDeltaPhivsPt1550(0), - hAntiDeltaPhivsPt1550(0), - hAntiCosDeltaPhiVZEROvsPt1550(0), - hAntiSinDeltaPhiVZEROvsPt1550(0), - hAntiDeltaPhiVZEROvsPt1550(0), + EPVzAvsCentrality(0), + EPVzCvsCentrality(0), + EPTPCvsCentrality(0), + EPVzvsCentrality(0), + EPTPCpvsCentrality(0), + EPTPCnvsCentrality(0), + fSubEventDPhiv205(0), + fSubEventDPhiv2new05(0), + fSubEventDPhiv22040(0), + fSubEventDPhiv2new2040(0), + fSubEventDPhiv24060(0), + fSubEventDPhiv2new4060(0), + hCos2DeltaPhiVzAvsCentrality(0), + hCos2DeltaPhiVzCvsCentrality(0), + hCos2DeltaPhiVzMvsCentrality(0), + hCos2DeltaPhiTPCfvsCentrality(0), + hCos2DeltaPhiTPCpvsCentrality(0), + hCos2DeltaPhiTPCnvsCentrality(0), + hEvPlaneTPCvsEvPVz05(0), + hEvPlaneTPCvsEvPVz075(0), + hEvPlaneTPCvsEvPVz1530(0), + hEvPlaneTPCvsEvPVz3050(0), + hEvPlaneTPCvsEvPVz2040(0), + hEvPlaneTPCvsEvPVz4060(0), + hCos2DeltaPhivsPt075(0), + hCos2DeltaPhiVZEROvsPt075(0), + hCos2DeltaPhivsPt1530(0), + hCos2DeltaPhiVZEROvsPt1530(0), + hCos2DeltaPhivsPt3050(0), + hCos2DeltaPhiVZEROvsPt3050(0), + hCos2DeltaPhivsPt05(0), + hCos2DeltaPhiVZEROvsPt05(0), + hCos2DeltaPhivsPt2040(0), + hCos2DeltaPhiVZEROvsPt2040(0), + hCos2DeltaPhivsPt4060(0), + hCos2DeltaPhiVZEROvsPt4060(0), fESDtrackCuts(0), + fESDtrackCutsEP(0), fPIDResponse(0), fNtuple1(0), - tCentrality(0), - tTPCMomentum(0), - tdEdx(0), - tEta(0), - tITSclustermap(0), - tCharge(0), - tPtCorr(0), + tCharge(0), tPhi(0), trpangleTPC(0), tPDGCode(0), @@ -165,119 +146,94 @@ AliAnalysisTaskNucleiv2::AliAnalysisTaskNucleiv2() { // Dummy Constructor fESDtrackCuts = new AliESDtrackCuts("AliESDtrackCuts","AliESDtrackCuts"); + fESDtrackCutsEP = new AliESDtrackCuts("AliESDtrackCutsEP","AliESDtrackCutsEP"); // Initialize(); } //________________________________________________________________________ -AliAnalysisTaskNucleiv2::AliAnalysisTaskNucleiv2(const char *name,const char *datatype,Bool_t filltree) - : AliAnalysisTaskSE(name), - fAnalysisType("ESD"), - fCollidingSystems(0), - fDataType(datatype), - fFillNtuple(filltree), - fListHistCascade(0), - fHistEventMultiplicity(0), - fHistTrackMultiplicity(0), - fHistTrackMultiplicityCentral(0), - fHistTrackMultiplicitySemiCentral(0), - fHistTrackMultiplicityMB(0), - fhBB(0), - fhBBDeu(0), - fhPtDeu(0), - fhTOF(0), - fhMassTOF(0), - hRPangleTPCvsCentrality(0), //RESOLUTION Histrograms - hPlaneResoTPCvsCentrality(0), - hRPangleVZEROvsCentrality(0), - hRPangleVZEROAvsCentrality(0), - hRPangleVZEROCvsCentrality(0), - hPlaneResoVZEROvsCentrality(0), - hPlaneResoVZEROAvsCentrality(0), - hPlaneResoVZEROCvsCentrality(0), - hCosPhivsPt(0), - hSinPhivsPt(0), - hPhivsPt(0), - hAntiCosPhivsPt(0), - hAntiSinPhivsPt(0), - hAntiPhivsPt(0), - hCosDeltaPhivsPt075(0), - hSinDeltaPhivsPt075(0), - hDeltaPhivsPt075(0), - hCosDeltaPhiVZEROvsPt075(0), - hSinDeltaPhiVZEROvsPt075(0), - hDeltaPhiVZEROvsPt075(0), - hCosDeltaPhivsPt1530(0), - hSinDeltaPhivsPt1530(0), - hDeltaPhivsPt1530(0), - hCosDeltaPhiVZEROvsPt1530(0), - hSinDeltaPhiVZEROvsPt1530(0), - hDeltaPhiVZEROvsPt1530(0), - hCosDeltaPhivsPt3050(0), - hSinDeltaPhivsPt3050(0), - hDeltaPhivsPt3050(0), - hCosDeltaPhiVZEROvsPt3050(0), - hSinDeltaPhiVZEROvsPt3050(0), - hDeltaPhiVZEROvsPt3050(0), - hCosDeltaPhivsPt1550(0), - hSinDeltaPhivsPt1550(0), - hDeltaPhivsPt1550(0), - hCosDeltaPhiVZEROvsPt1550(0), - hSinDeltaPhiVZEROvsPt1550(0), - hDeltaPhiVZEROvsPt1550(0), - hAntiCosDeltaPhivsPt075(0), - hAntiSinDeltaPhivsPt075(0), - hAntiDeltaPhivsPt075(0), - hAntiCosDeltaPhiVZEROvsPt075(0), - hAntiSinDeltaPhiVZEROvsPt075(0), - hAntiDeltaPhiVZEROvsPt075(0), - hAntiCosDeltaPhivsPt1530(0), - hAntiSinDeltaPhivsPt1530(0), - hAntiDeltaPhivsPt1530(0), - hAntiCosDeltaPhiVZEROvsPt1530(0), - hAntiSinDeltaPhiVZEROvsPt1530(0), - hAntiDeltaPhiVZEROvsPt1530(0), - hAntiCosDeltaPhivsPt3050(0), - hAntiSinDeltaPhivsPt3050(0), - hAntiDeltaPhivsPt3050(0), - hAntiCosDeltaPhiVZEROvsPt3050(0), - hAntiSinDeltaPhiVZEROvsPt3050(0), - hAntiDeltaPhiVZEROvsPt3050(0), - hAntiCosDeltaPhivsPt1550(0), - hAntiSinDeltaPhivsPt1550(0), - hAntiDeltaPhivsPt1550(0), - hAntiCosDeltaPhiVZEROvsPt1550(0), - hAntiSinDeltaPhiVZEROvsPt1550(0), - hAntiDeltaPhiVZEROvsPt1550(0), - fESDtrackCuts(0), - fPIDResponse(0), - fNtuple1(0), - tCentrality(0), - tTPCMomentum(0), - tdEdx(0), - tEta(0), - tITSclustermap(0), - tCharge(0), - tPtCorr(0), - tPhi(0), - trpangleTPC(0), - tPDGCode(0), - tPDGCodeMum(0), - tIsPrimaryTr(0), - fNtuple2(0) , - tCentralityMC(0), - tPDGCodeMC(0), - tPDGCodeMumMC(0), - tIsPrimary(0), - tEtaMC(0), - tPtMC(0), - tYMC(0) - +AliAnalysisTaskNucleiv2::AliAnalysisTaskNucleiv2(const char *name) + : AliAnalysisTaskSE(name), + fAnalysisType(0), + fCollidingSystems(0), + fDataType(0), + fFillNtuple(0), + fCentralityMin(0), + fCentralityMax(0), + fCutsRP(0), + fNullCuts(0), + fFlowEvent(0), + fListHist(0), + fHistEventMultiplicity(0), + fHistTrackMultiplicity(0), + fHistTrackMultiplicityCentral(0), + fHistTrackMultiplicitySemiCentral(0), + fHistTrackMultiplicityMB(0), + fhBB(0), + fhBBDeu(0), + fhPtDeu(0), + fhTOF(0), + fhMassTOF(0), + EPVzAvsCentrality(0), + EPVzCvsCentrality(0), + EPTPCvsCentrality(0), + EPVzvsCentrality(0), + EPTPCpvsCentrality(0), + EPTPCnvsCentrality(0), + fSubEventDPhiv205(0), + fSubEventDPhiv2new05(0), + fSubEventDPhiv22040(0), + fSubEventDPhiv2new2040(0), + fSubEventDPhiv24060(0), + fSubEventDPhiv2new4060(0), + hCos2DeltaPhiVzAvsCentrality(0), + hCos2DeltaPhiVzCvsCentrality(0), + hCos2DeltaPhiVzMvsCentrality(0), + hCos2DeltaPhiTPCfvsCentrality(0), + hCos2DeltaPhiTPCpvsCentrality(0), + hCos2DeltaPhiTPCnvsCentrality(0), + hEvPlaneTPCvsEvPVz05(0), + hEvPlaneTPCvsEvPVz075(0), + hEvPlaneTPCvsEvPVz1530(0), + hEvPlaneTPCvsEvPVz3050(0), + hEvPlaneTPCvsEvPVz2040(0), + hEvPlaneTPCvsEvPVz4060(0), + hCos2DeltaPhivsPt075(0), + hCos2DeltaPhiVZEROvsPt075(0), + hCos2DeltaPhivsPt1530(0), + hCos2DeltaPhiVZEROvsPt1530(0), + hCos2DeltaPhivsPt3050(0), + hCos2DeltaPhiVZEROvsPt3050(0), + hCos2DeltaPhivsPt05(0), + hCos2DeltaPhiVZEROvsPt05(0), + hCos2DeltaPhivsPt2040(0), + hCos2DeltaPhiVZEROvsPt2040(0), + hCos2DeltaPhivsPt4060(0), + hCos2DeltaPhiVZEROvsPt4060(0), + fESDtrackCuts(0), + fESDtrackCutsEP(0), + fPIDResponse(0), + fNtuple1(0), + tCharge(0), + tPhi(0), + trpangleTPC(0), + tPDGCode(0), + tPDGCodeMum(0), + tIsPrimaryTr(0), + fNtuple2(0) , + tCentralityMC(0), + tPDGCodeMC(0), + tPDGCodeMumMC(0), + tIsPrimary(0), + tEtaMC(0), + tPtMC(0), + tYMC(0) + { // Define input and output slots here // Input slot #0 works with a TChain //DefineInput(0, TChain::Class()); - // Output slot #0 writes into a TList container (Cascade) + // Output slot #0 writes into a TList container () // // create track cuts @@ -285,15 +241,13 @@ AliAnalysisTaskNucleiv2::AliAnalysisTaskNucleiv2(const char *name,const char *da fESDtrackCuts = new AliESDtrackCuts("AliESDtrackCuts","AliESDtrackCuts"); // Initialize(); - SetDataType(datatype); - SetFillTree(filltree); DefineInput(0, TChain::Class()); DefineOutput(1, TList::Class()); DefineOutput(2, TTree::Class()); DefineOutput(3, TTree::Class()); - + DefineOutput(4, AliFlowEventSimple::Class()); } void AliAnalysisTaskNucleiv2::Initialize() @@ -308,10 +262,67 @@ void AliAnalysisTaskNucleiv2::Initialize() // // + fESDtrackCutsEP = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts(); // Printf("Initizialize\n"); } +//________________________________________________________________________ +Float_t AliAnalysisTaskNucleiv2::GetEventPlaneForCandidate(AliESDtrack* track0, const TVector2* q,AliEventplane *pl, const TVector2* qsub1, const TVector2* qsub2){ + + // remove autocorrelations + + TArrayF* qx = 0x0; + TArrayF* qy = 0x0; + TVector2 qcopy; + // if(!fEtaGap){ + qx = pl->GetQContributionXArray(); + qy = pl->GetQContributionYArray(); + qcopy = *q; + // }else { + // if(d->Eta()<0.){ + // qx = pl->GetQContributionXArraysub1(); + // qy = pl->GetQContributionYArraysub1(); + // qcopy = *qsub1; + // }else{ + // qx = pl->GetQContributionXArraysub2(); + // qy = pl->GetQContributionYArraysub2(); + // qcopy = *qsub2; + // } + //} + + TVector2 q0; + if((track0->GetID()) < qx->fN){ + q0.Set(qx->At(track0->GetID()),qy->At(track0->GetID())); + } + + qcopy = qcopy - q0; + + return qcopy.Phi()/2.; + +} +//_____________________________________________________________________________ +template void AliAnalysisTaskNucleiv2::SetNullCuts(T* event) +{ + //Set null cuts + if (fDebug) cout << " fCutsRP " << fCutsRP << endl; + fCutsRP->SetEvent(event, MCEvent()); + fNullCuts->SetParamType(AliFlowTrackCuts::kGlobal); + fNullCuts->SetPtRange(+1, -1); // select nothing QUICK + fNullCuts->SetEtaRange(+1, -1); // select nothing VZERO + fNullCuts->SetEvent(event, MCEvent()); +} +//______________________________________________________________________ +void AliAnalysisTaskNucleiv2::PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const +{ + //Prepare flow events + FlowEv->ClearFast(); + FlowEv->Fill(fCutsRP, fNullCuts); + FlowEv->SetReferenceMultiplicity(iMulti); + FlowEv->DefineDeadZone(0, 0, 0, 0); + // FlowEv->TagSubeventsInEta(-0.7, 0, 0, 0.7); +} + //________________________________________________________________________ Float_t AliAnalysisTaskNucleiv2::GetPhi0Pi(Float_t phi){ // Sets the phi angle in the range 0-pi @@ -325,13 +336,46 @@ Float_t AliAnalysisTaskNucleiv2::GetPhi0Pi(Float_t phi){ return result; } - +//_____________________________________________________________________________ +void AliAnalysisTaskNucleiv2::SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax) +{ + // Set a centrality range ]min, max] + fCentralityMin = CentralityMin; + fCentralityMax = CentralityMax; + +} //==================DEFINITION OF OUTPUT OBJECTS============================== void AliAnalysisTaskNucleiv2::UserCreateOutputObjects() { - fListHistCascade = new TList(); - fListHistCascade->SetOwner(); // IMPORTANT! + //------------------------------------------------------- + fNullCuts = new AliFlowTrackCuts("null_cuts"); + + AliFlowCommonConstants* cc = AliFlowCommonConstants::GetMaster(); + cc->SetNbinsMult(10000); + cc->SetMultMin(0); + cc->SetMultMax(10000); + + cc->SetNbinsPt(100); + cc->SetPtMin(0); + cc->SetPtMax(50); + + cc->SetNbinsPhi(180); + cc->SetPhiMin(0.0); + cc->SetPhiMax(TMath::TwoPi()); + + cc->SetNbinsEta(30); + cc->SetEtaMin(-7.0); + cc->SetEtaMax(+7.0); + + cc->SetNbinsQ(500); + cc->SetQMin(0.0); + cc->SetQMax(3.0); + + //------------------------------------------------------ + + fListHist = new TList(); + fListHist->SetOwner(); // IMPORTANT! if(! fHistEventMultiplicity ){ @@ -350,250 +394,186 @@ void AliAnalysisTaskNucleiv2::UserCreateOutputObjects() fHistEventMultiplicity->GetXaxis()->SetBinLabel(10,"out of pt bounds"); fHistEventMultiplicity->GetXaxis()->SetBinLabel(11,"mismatch lab"); fHistEventMultiplicity->GetXaxis()->SetBinLabel(12,"non valid TPC EP"); - fListHistCascade->Add(fHistEventMultiplicity); + fListHist->Add(fHistEventMultiplicity); } if(! fHistTrackMultiplicity ){ fHistTrackMultiplicity = new TH2F( "fHistTrackMultiplicity", "Nb of Tracks MB Events |Vz| < 10", 25000,0, 25000,105,-0.5,104.5); fHistTrackMultiplicity->GetXaxis()->SetTitle("Number of tracks"); fHistTrackMultiplicity->GetYaxis()->SetTitle("Percentile"); - fListHistCascade->Add(fHistTrackMultiplicity); + fListHist->Add(fHistTrackMultiplicity); } if(! fHistTrackMultiplicityCentral ){ fHistTrackMultiplicityCentral = new TH2F( "fHistTrackMultiplicityCentral", "Nb of Tracks MB Events |Vz| < 10", 25000,0, 25000,105,-0.5,104.5); fHistTrackMultiplicityCentral->GetXaxis()->SetTitle("Number of tracks"); fHistTrackMultiplicityCentral->GetYaxis()->SetTitle("Percentile"); - fListHistCascade->Add(fHistTrackMultiplicityCentral); + fListHist->Add(fHistTrackMultiplicityCentral); } if(! fHistTrackMultiplicitySemiCentral ){ fHistTrackMultiplicitySemiCentral = new TH2F( "fHistTrackMultiplicitySemiCentral", "Nb of Tracks MB Events |Vz| < 10", 25000,0, 25000,105,-0.5,104.5); fHistTrackMultiplicitySemiCentral->GetXaxis()->SetTitle("Number of tracks"); fHistTrackMultiplicitySemiCentral->GetYaxis()->SetTitle("Percentile"); - fListHistCascade->Add(fHistTrackMultiplicitySemiCentral); + fListHist->Add(fHistTrackMultiplicitySemiCentral); } if(! fHistTrackMultiplicityMB ){ fHistTrackMultiplicityMB = new TH2F( "fHistTrackMultiplicityMB", "Nb of Tracks MB Events |Vz| < 10", 25000,0, 25000,105,-0.5,104.5); fHistTrackMultiplicityMB->GetXaxis()->SetTitle("Number of tracks"); fHistTrackMultiplicityMB->GetYaxis()->SetTitle("Percentile"); - fListHistCascade->Add(fHistTrackMultiplicityMB); + fListHist->Add(fHistTrackMultiplicityMB); } if(! fhBB ){ fhBB = new TH2F( "fhBB" , "BetheBlochTPC" , 240,-6,6,1000,0,1000); - fListHistCascade->Add(fhBB); + fListHist->Add(fhBB); } if(! fhBBDeu ){ fhBBDeu = new TH2F( "fhBBDeu" , "BetheBlochTPC - Deuteron" , 240,-6,6,1000,0,1000); - fListHistCascade->Add(fhBBDeu); + fListHist->Add(fhBBDeu); } if(!fhPtDeu ){ fhPtDeu = new TH2F( "fhPtDeu" , "pt corretto vs pt track - Deuteron" , 120,0,6,120,0,6); - fListHistCascade->Add(fhPtDeu); + fListHist->Add(fhPtDeu); } if(! fhTOF ){ fhTOF = new TH2F( "fhTOF" , "Scatter Plot TOF" , 240,-6,6,1000,0,1.2); - fListHistCascade->Add(fhTOF); + fListHist->Add(fhTOF); } if(! fhMassTOF){ fhMassTOF=new TH1F ("fhMassTOF","Particle Mass - TOF", 300,-5 ,5); - fListHistCascade->Add(fhMassTOF); - } - - if(!hRPangleTPCvsCentrality){ - hRPangleTPCvsCentrality = new TH2F("hRPangleTPCvsCentrality" ,"hRPangleTPCvsCentrality" ,100,0,TMath::Pi(),210,-0.5,105.5); - fListHistCascade->Add(hRPangleTPCvsCentrality); - } - if(!hPlaneResoTPCvsCentrality){ - hPlaneResoTPCvsCentrality = new TH2F("hPlaneResoTPCvsCentrality" ,"hPlaneResoTPCvsCentrality" ,500,-1,1,210,-0.5,105.5); - fListHistCascade->Add(hPlaneResoTPCvsCentrality); - } - if(!hRPangleVZEROvsCentrality){ - hRPangleVZEROvsCentrality = new TH2F("hRPangleVZEROvsCentrality" ,"hRPangleVZEROvsCentrality" ,100,0,TMath::Pi(),210,-0.5,105.5); - fListHistCascade->Add(hRPangleVZEROvsCentrality); + fListHist->Add(fhMassTOF); } - if(!hRPangleVZEROAvsCentrality){ - hRPangleVZEROAvsCentrality = new TH2F("hRPangleVZEROAvsCentrality" ,"hRPangleVZEROAvsCentrality" ,100,0,TMath::Pi(),210,-0.5,105.5); - fListHistCascade->Add(hRPangleVZEROAvsCentrality); - } - - if(!hRPangleVZEROCvsCentrality){ - hRPangleVZEROCvsCentrality = new TH2F("hRPangleVZEROCvsCentrality" ,"hRPangleVZEROCvsCentrality" ,100,0,TMath::Pi(),210,-0.5,105.5); - fListHistCascade->Add(hRPangleVZEROCvsCentrality); - } - - if(!hPlaneResoVZEROvsCentrality){ - hPlaneResoVZEROvsCentrality = new TH2F("hPlaneResoVZEROvsCentrality","hPlaneResoVZEROvsCentrality",500,-1,1,210,-0.5,105.5); - fListHistCascade->Add(hPlaneResoVZEROvsCentrality); - } - - if(!hPlaneResoVZEROAvsCentrality){ - hPlaneResoVZEROAvsCentrality = new TH2F("hPlaneResoVZEROAvsCentrality","hPlaneResoVZEROAvsCentrality",500,-1,1,210,-0.5,105.5); - fListHistCascade->Add(hPlaneResoVZEROAvsCentrality); - } - - if(!hPlaneResoVZEROCvsCentrality){ - hPlaneResoVZEROCvsCentrality = new TH2F("hPlaneResoVZEROCvsCentrality","hPlaneResoVZEROCvsCentrality",500,-1,1,210,-0.5,105.5); - fListHistCascade->Add(hPlaneResoVZEROCvsCentrality); - } + EPVzAvsCentrality = new TH2D("EPVzAvsCentrality", "EPVzAvsCentrality", 80, -2, 2,105,-0.5,105.5); + fListHist->Add(EPVzAvsCentrality); + EPVzCvsCentrality = new TH2D("EPVzCvsCentrality", "EPVzCvsCentrality", 80, -2, 2,105,-0.5,105.5); + fListHist->Add(EPVzCvsCentrality); + EPTPCvsCentrality = new TH2D("EPTPCvsCentrality", "EPTPCvsCentrality", 80, -2, 2,105,-0.5,105.5); + fListHist->Add(EPTPCvsCentrality); + + + EPVzvsCentrality = new TH2D("EPVzvsCentrality", "EPVzvsCentrality", 80, -2, 2,105,-0.5,105.5); + fListHist->Add(EPVzvsCentrality); + EPTPCpvsCentrality = new TH2D("EPTPCpvsCentrality", "EPTPCpvsCentrality", 80, -2, 2,105,-0.5,105.5); + fListHist->Add(EPTPCpvsCentrality); + EPTPCnvsCentrality = new TH2D("EPTPCnvsCentrality", "EPTPCnvsCentrality", 80, -2, 2,105,-0.5,105.5); + fListHist->Add(EPTPCnvsCentrality); + + //1 - hCosPhivsPt = new TH2F("hCosPhivsPt","hCosPhivsPt",200,-1,1,60,0,3.0); - hSinPhivsPt = new TH2F("hSinPhivsPt","hSinPhivsPt",100, 0,1,60,0,3.0); - hPhivsPt = new TH2F("hPhivsPt","hPhivsPt" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hAntiCosPhivsPt = new TH2F("hAntiCosPhivsPt","hAntiCosPhivsPt",200,-1,1,60,0,3.0); - hAntiSinPhivsPt = new TH2F("hAntiSinPhivsPt","hAntiSinPhivsPt",100, 0,1,60,0,3.0); - hAntiPhivsPt = new TH2F("hAntiPhivsPt","hAntiPhivsPt" ,36, 0,2*TMath::Pi(),60,0,3.0); - - - hCosDeltaPhivsPt075 = new TH2F("hCosDeltaPhivsPt075","hCosDeltaPhivsPt075",200,-1,1,60,0,3.0); - hSinDeltaPhivsPt075 = new TH2F("hSinDeltaPhivsPt075","hSinDeltaPhivsPt075",100, 0,1,60,0,3.0); - hDeltaPhivsPt075 = new TH2F("hDeltaPhivsPt075","hDeltaPhivsPt075" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hCosDeltaPhiVZEROvsPt075 = new TH2F("hCosDeltaPhiVZEROvsPt075","hCosDeltaPhiVZEROvsPt075",200,-1,1,60,0,3.0); - hSinDeltaPhiVZEROvsPt075 = new TH2F("hSinDeltaPhiVZEROvsPt075","hSinDeltaPhiVZEROvsPt075",100, 0,1,60,0,3.0); - hDeltaPhiVZEROvsPt075 = new TH2F("hDeltaPhiVZEROvsPt075","hDeltaPhiVZEROvsPt075" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hCosDeltaPhivsPt1530 = new TH2F("hCosDeltaPhivsPt1530","hCosDeltaPhivsPt1530",200,-1,1,60,0,3.0); - hSinDeltaPhivsPt1530 = new TH2F("hSinDeltaPhivsPt1530","hSinDeltaPhivsPt1530",100, 0,1,60,0,3.0); - hDeltaPhivsPt1530 = new TH2F("hDeltaPhivsPt1530","hDeltaPhivsPt1530" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hCosDeltaPhiVZEROvsPt1530 = new TH2F("hCosDeltaPhiVZEROvsPt1530","hCosDeltaPhiVZEROvsPt1530",200,-1,1,60,0,3.0); - hSinDeltaPhiVZEROvsPt1530 = new TH2F("hSinDeltaPhiVZEROvsPt1530","hSinDeltaPhiVZEROvsPt1530",100, 0,1,60,0,3.0); - hDeltaPhiVZEROvsPt1530 = new TH2F("hDeltaPhiVZEROvsPt1530","hDeltaPhiVZEROvsPt1530" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hCosDeltaPhivsPt3050 = new TH2F("hCosDeltaPhivsPt3050","hCosDeltaPhivsPt3050",200,-1,1,60,0,3.0); - hSinDeltaPhivsPt3050 = new TH2F("hSinDeltaPhivsPt3050","hSinDeltaPhivsPt3050",100, 0,1,60,0,3.0); - hDeltaPhivsPt3050 = new TH2F("hDeltaPhivsPt3050","hDeltaPhivsPt3050" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hCosDeltaPhiVZEROvsPt3050 = new TH2F("hCosDeltaPhiVZEROvsPt3050","hCosDeltaPhiVZEROvsPt3050",200,-1,1,60,0,3.0); - hSinDeltaPhiVZEROvsPt3050 = new TH2F("hSinDeltaPhiVZEROvsPt3050","hSinDeltaPhiVZEROvsPt3050",100, 0,1,60,0,3.0); - hDeltaPhiVZEROvsPt3050 = new TH2F("hDeltaPhiVZEROvsPt3050","hDeltaPhiVZEROvsPt3050" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hCosDeltaPhivsPt1550 = new TH2F("hCosDeltaPhivsPt1550","hCosDeltaPhivsPt1550",200,-1,1,60,0,3.0); - hSinDeltaPhivsPt1550 = new TH2F("hSinDeltaPhivsPt1550","hSinDeltaPhivsPt1550",100, 0,1,60,0,3.0); - hDeltaPhivsPt1550 = new TH2F("hDeltaPhivsPt1550","hDeltaPhivsPt1550" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hCosDeltaPhiVZEROvsPt1550 = new TH2F("hCosDeltaPhiVZEROvsPt1550","hCosDeltaPhiVZEROvsPt1550",200,-1,1,60,0,3.0); - hSinDeltaPhiVZEROvsPt1550 = new TH2F("hSinDeltaPhiVZEROvsPt1550","hSinDeltaPhiVZEROvsPt1550",100, 0,1,60,0,3.0); - hDeltaPhiVZEROvsPt1550 = new TH2F("hDeltaPhiVZEROvsPt1550","hDeltaPhiVZEROvsPt1550" ,36, 0,2*TMath::Pi(),60,0,3.0); - - - hAntiCosDeltaPhivsPt075 = new TH2F("hAntiCosDeltaPhivsPt075","hAntiCosDeltaPhivsPt075",200,-1,1,60,0,3.0); - hAntiSinDeltaPhivsPt075 = new TH2F("hAntiSinDeltaPhivsPt075","hAntiSinDeltaPhivsPt075",100, 0,1,60,0,3.0); - hAntiDeltaPhivsPt075 = new TH2F("hAntiDeltaPhivsPt075","hAntiDeltaPhivsPt075" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hAntiCosDeltaPhiVZEROvsPt075 = new TH2F("hAntiCosDeltaPhiVZEROvsPt075","hAntiCosDeltaPhiVZEROvsPt075",200,-1,1,60,0,3.0); - hAntiSinDeltaPhiVZEROvsPt075 = new TH2F("hAntiSinDeltaPhiVZEROvsPt075","hAntiSinDeltaPhiVZEROvsPt075",100, 0,1,60,0,3.0); - hAntiDeltaPhiVZEROvsPt075 = new TH2F("hAntiDeltaPhiVZEROvsPt075","hAntiDeltaPhiVZEROvsPt075" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hAntiCosDeltaPhivsPt1530 = new TH2F("hAntiCosDeltaPhivsPt1530","hAntiCosDeltaPhivsPt1530",200,-1,1,60,0,3.0); - hAntiSinDeltaPhivsPt1530 = new TH2F("hAntiSinDeltaPhivsPt1530","hAntiSinDeltaPhivsPt1530",100, 0,1,60,0,3.0); - hAntiDeltaPhivsPt1530 = new TH2F("hAntiDeltaPhivsPt1530","hAntiDeltaPhivsPt1530" ,36, 0,2*TMath::Pi(),60,0,3.0); + fSubEventDPhiv205 = new TProfile("fSubEventDPhiv205", "fSubEventDPhiv205", 3, 0, 3); + fSubEventDPhiv205->GetXaxis()->SetBinLabel(1, ""); + fSubEventDPhiv205->GetXaxis()->SetBinLabel(2, "))"); + fSubEventDPhiv205->GetXaxis()->SetBinLabel(3, "))"); + fListHist->Add(fSubEventDPhiv205); + + fSubEventDPhiv2new05 = new TProfile("fSubEventDPhiv2new05", "fSubEventDPhiv2new05", 3, 0, 3); + fSubEventDPhiv2new05->GetXaxis()->SetBinLabel(1, ""); + fSubEventDPhiv2new05->GetXaxis()->SetBinLabel(2, "))"); + fSubEventDPhiv2new05->GetXaxis()->SetBinLabel(3, "))"); + fListHist->Add(fSubEventDPhiv2new05); - hAntiCosDeltaPhiVZEROvsPt1530 = new TH2F("hAntiCosDeltaPhiVZEROvsPt1530","hAntiCosDeltaPhiVZEROvsPt1530",200,-1,1,60,0,3.0); - hAntiSinDeltaPhiVZEROvsPt1530 = new TH2F("hAntiSinDeltaPhiVZEROvsPt1530","hAntiSinDeltaPhiVZEROvsPt1530",100, 0,1,60,0,3.0); - hAntiDeltaPhiVZEROvsPt1530 = new TH2F("hAntiDeltaPhiVZEROvsPt1530","hAntiDeltaPhiVZEROvsPt1530" ,36, 0,2*TMath::Pi(),60,0,3.0); + //2 - hAntiCosDeltaPhivsPt3050 = new TH2F("hAntiCosDeltaPhivsPt3050","hAntiCosDeltaPhivsPt3050",200,-1,1,60,0,3.0); - hAntiSinDeltaPhivsPt3050 = new TH2F("hAntiSinDeltaPhivsPt3050","hAntiSinDeltaPhivsPt3050",100, 0,1,60,0,3.0); - hAntiDeltaPhivsPt3050 = new TH2F("hAntiDeltaPhivsPt3050","hAntiDeltaPhivsPt3050" ,36, 0,2*TMath::Pi(),60,0,3.0); - - hAntiCosDeltaPhiVZEROvsPt3050 = new TH2F("hAntiCosDeltaPhiVZEROvsPt3050","hAntiCosDeltaPhiVZEROvsPt3050",200,-1,1,60,0,3.0); - hAntiSinDeltaPhiVZEROvsPt3050 = new TH2F("hAntiSinDeltaPhiVZEROvsPt3050","hAntiSinDeltaPhiVZEROvsPt3050",100, 0,1,60,0,3.0); - hAntiDeltaPhiVZEROvsPt3050 = new TH2F("hAntiDeltaPhiVZEROvsPt3050","hAntiDeltaPhiVZEROvsPt3050" ,36, 0,2*TMath::Pi(),60,0,3.0); + fSubEventDPhiv22040 = new TProfile("fSubEventDPhiv22040", "fSubEventDPhiv22040", 3, 0, 3); + fSubEventDPhiv22040->GetXaxis()->SetBinLabel(1, ""); + fSubEventDPhiv22040->GetXaxis()->SetBinLabel(2, "))"); + fSubEventDPhiv22040->GetXaxis()->SetBinLabel(3, "))"); + fListHist->Add(fSubEventDPhiv22040); + + fSubEventDPhiv2new2040 = new TProfile("fSubEventDPhiv2new2040", "fSubEventDPhiv2new2040", 3, 0, 3); + fSubEventDPhiv2new2040->GetXaxis()->SetBinLabel(1, ""); + fSubEventDPhiv2new2040->GetXaxis()->SetBinLabel(2, "))"); + fSubEventDPhiv2new2040->GetXaxis()->SetBinLabel(3, "))"); + fListHist->Add(fSubEventDPhiv2new2040); - hAntiCosDeltaPhivsPt1550 = new TH2F("hAntiCosDeltaPhivsPt1550","hAntiCosDeltaPhivsPt1550",200,-1,1,60,0,3.0); - hAntiSinDeltaPhivsPt1550 = new TH2F("hAntiSinDeltaPhivsPt1550","hAntiSinDeltaPhivsPt1550",100, 0,1,60,0,3.0); - hAntiDeltaPhivsPt1550 = new TH2F("hAntiDeltaPhivsPt1550","hAntiDeltaPhivsPt1550" ,36, 0,2*TMath::Pi(),60,0,3.0); + //3 + + fSubEventDPhiv24060 = new TProfile("fSubEventDPhiv24060", "fSubEventDPhiv24060", 3, 0, 3); + fSubEventDPhiv24060->GetXaxis()->SetBinLabel(1, ""); + fSubEventDPhiv24060->GetXaxis()->SetBinLabel(2, "))"); + fSubEventDPhiv24060->GetXaxis()->SetBinLabel(3, "))"); + fListHist->Add(fSubEventDPhiv24060); + + fSubEventDPhiv2new4060 = new TProfile("fSubEventDPhiv2new4060", "fSubEventDPhiv2new4060", 3, 0, 3); + fSubEventDPhiv2new4060->GetXaxis()->SetBinLabel(1, ""); + fSubEventDPhiv2new4060->GetXaxis()->SetBinLabel(2, "))"); + fSubEventDPhiv2new4060->GetXaxis()->SetBinLabel(3, "))"); + fListHist->Add(fSubEventDPhiv2new4060); - hAntiCosDeltaPhiVZEROvsPt1550 = new TH2F("hAntiCosDeltaPhiVZEROvsPt1550","hAntiCosDeltaPhiVZEROvsPt1550",200,-1,1,60,0,3.0); - hAntiSinDeltaPhiVZEROvsPt1550 = new TH2F("hAntiSinDeltaPhiVZEROvsPt1550","hAntiSinDeltaPhiVZEROvsPt1550",100, 0,1,60,0,3.0); - hAntiDeltaPhiVZEROvsPt1550 = new TH2F("hAntiDeltaPhiVZEROvsPt1550","hAntiDeltaPhiVZEROvsPt1550" ,36, 0,2*TMath::Pi(),60,0,3.0); + //------------------ + + hCos2DeltaPhiVzAvsCentrality = new TH2F("hCos2DeltaPhiVzAvsCentrality" ,"hCos2DeltaPhiVzAvsCentrality" ,100,-1.1,1.1,105,-0.5,105.5); + hCos2DeltaPhiVzCvsCentrality = new TH2F("hCos2DeltaPhiVzCvsCentrality" ,"hCos2DeltaPhiVzCvsCentrality" ,100,-1.1,1.1,105,-0.5,105.5); + hCos2DeltaPhiVzMvsCentrality = new TH2F("hCos2DeltaPhiVzMvsCentrality" ,"hCos2DeltaPhiVzMvsCentrality" ,100,-1.1,1.1,105,-0.5,105.5); + hCos2DeltaPhiTPCfvsCentrality = new TH2F("hCos2DeltaPhiTPCfvsCentrality","hCos2DeltaPhiTPCfvsCentrality",100,-1.1,1.1,105,-0.5,105.5); + hCos2DeltaPhiTPCpvsCentrality = new TH2F("hCos2DeltaPhiTPCpvsCentrality","hCos2DeltaPhiTPCpvsCentrality",100,-1.1,1.1,105,-0.5,105.5); + hCos2DeltaPhiTPCnvsCentrality = new TH2F("hCos2DeltaPhiTPCnvsCentrality","hCos2DeltaPhiTPCnvsCentrality",100,-1.1,1.1,105,-0.5,105.5); + + fListHist->Add(hCos2DeltaPhiVzAvsCentrality); + fListHist->Add(hCos2DeltaPhiVzCvsCentrality); + fListHist->Add(hCos2DeltaPhiVzMvsCentrality); + fListHist->Add(hCos2DeltaPhiTPCfvsCentrality); + fListHist->Add(hCos2DeltaPhiTPCpvsCentrality); + fListHist->Add(hCos2DeltaPhiTPCnvsCentrality); + + hEvPlaneTPCvsEvPVz05 = new TH2F("hEvPlaneTPCvsEvPVz05" ,"hEvPlaneTPCvsEvPVz05" ,100,-2*TMath::Pi(),2*TMath::Pi(),100,-2*TMath::Pi(),2*TMath::Pi()); + hEvPlaneTPCvsEvPVz075 = new TH2F("hEvPlaneTPCvsEvPVz075" ,"hEvPlaneTPCvsEvPVz075" ,100,-2*TMath::Pi(),2*TMath::Pi(),100,-2*TMath::Pi(),2*TMath::Pi()); + hEvPlaneTPCvsEvPVz1530 = new TH2F("hEvPlaneTPCvsEvPVz1530","hEvPlaneTPCvsEvPVz1530",100,-2*TMath::Pi(),2*TMath::Pi(),100,-2*TMath::Pi(),2*TMath::Pi()); + hEvPlaneTPCvsEvPVz3050 = new TH2F("hEvPlaneTPCvsEvPVz3050","hEvPlaneTPCvsEvPVz3050",100,-2*TMath::Pi(),2*TMath::Pi(),100,-2*TMath::Pi(),2*TMath::Pi()); + hEvPlaneTPCvsEvPVz2040 = new TH2F("hEvPlaneTPCvsEvPVz2040","hEvPlaneTPCvsEvPVz2040",100,-2*TMath::Pi(),2*TMath::Pi(),100,-2*TMath::Pi(),2*TMath::Pi()); + hEvPlaneTPCvsEvPVz4060 = new TH2F("hEvPlaneTPCvsEvPVz4060","hEvPlaneTPCvsEvPVz4060",100,-2*TMath::Pi(),2*TMath::Pi(),100,-2*TMath::Pi(),2*TMath::Pi()); + + + fListHist->Add(hEvPlaneTPCvsEvPVz05); + fListHist->Add(hEvPlaneTPCvsEvPVz075); + fListHist->Add(hEvPlaneTPCvsEvPVz1530); + fListHist->Add(hEvPlaneTPCvsEvPVz3050); + fListHist->Add(hEvPlaneTPCvsEvPVz2040); + fListHist->Add(hEvPlaneTPCvsEvPVz4060); + + hCos2DeltaPhivsPt075 = new TH2F("hCos2DeltaPhivsPt075", "hCos2DeltaPhivsPt075" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhiVZEROvsPt075 = new TH2F("hCos2DeltaPhiVZEROvsPt075", "hCos2DeltaPhiVZEROvsPt075" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhivsPt1530 = new TH2F("hCos2DeltaPhivsPt1530", "hCos2DeltaPhivsPt1530" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhiVZEROvsPt1530 = new TH2F("hCos2DeltaPhiVZEROvsPt1530","hCos2DeltaPhiVZEROvsPt1530" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhivsPt3050 = new TH2F("hCos2DeltaPhivsPt3050", "hCos2DeltaPhivsPt3050" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhiVZEROvsPt3050 = new TH2F("hCos2DeltaPhiVZEROvsPt3050","hCos2DeltaPhiVZEROvsPt3050" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhivsPt05 = new TH2F("hCos2DeltaPhivsPt05", "hCos2DeltaPhivsPt05" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhiVZEROvsPt05 = new TH2F("hCos2DeltaPhiVZEROvsPt05", "hCos2DeltaPhiVZEROvsPt05" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhivsPt2040 = new TH2F("hCos2DeltaPhivsPt2040", "hCos2DeltaPhivsPt2040" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhiVZEROvsPt2040 = new TH2F("hCos2DeltaPhiVZEROvsPt2040","hCos2DeltaPhiVZEROvsPt2040" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhivsPt4060 = new TH2F("hCos2DeltaPhivsPt4060", "hCos2DeltaPhivsPt4060" ,75, -1.1,1.1,210,-5.5,5.5); + hCos2DeltaPhiVZEROvsPt4060 = new TH2F("hCos2DeltaPhiVZEROvsPt4060","hCos2DeltaPhiVZEROvsPt4060" ,75, -1.1,1.1,210,-5.5,5.5); //-------------- - fListHistCascade->Add(hCosPhivsPt); - fListHistCascade->Add(hSinPhivsPt); - fListHistCascade->Add(hPhivsPt); - fListHistCascade->Add(hAntiCosPhivsPt); - fListHistCascade->Add(hAntiSinPhivsPt); - fListHistCascade->Add(hAntiPhivsPt); - fListHistCascade->Add(hCosDeltaPhivsPt075); - fListHistCascade->Add(hSinDeltaPhivsPt075); - fListHistCascade->Add(hDeltaPhivsPt075); - fListHistCascade->Add(hCosDeltaPhiVZEROvsPt075); - fListHistCascade->Add(hSinDeltaPhiVZEROvsPt075); - fListHistCascade->Add(hDeltaPhiVZEROvsPt075); - fListHistCascade->Add(hCosDeltaPhivsPt1530); - fListHistCascade->Add(hSinDeltaPhivsPt1530); - fListHistCascade->Add(hDeltaPhivsPt1530); - fListHistCascade->Add(hCosDeltaPhiVZEROvsPt1530); - fListHistCascade->Add(hSinDeltaPhiVZEROvsPt1530); - fListHistCascade->Add(hDeltaPhiVZEROvsPt1530); - fListHistCascade->Add(hCosDeltaPhivsPt3050); - fListHistCascade->Add(hSinDeltaPhivsPt3050); - fListHistCascade->Add(hDeltaPhivsPt3050); - fListHistCascade->Add(hCosDeltaPhiVZEROvsPt3050); - fListHistCascade->Add(hSinDeltaPhiVZEROvsPt3050); - fListHistCascade->Add(hDeltaPhiVZEROvsPt3050); - fListHistCascade->Add(hCosDeltaPhivsPt1550); - fListHistCascade->Add(hSinDeltaPhivsPt1550); - fListHistCascade->Add(hDeltaPhivsPt1550); - fListHistCascade->Add(hCosDeltaPhiVZEROvsPt1550); - fListHistCascade->Add(hSinDeltaPhiVZEROvsPt1550); - fListHistCascade->Add(hDeltaPhiVZEROvsPt1550); - fListHistCascade->Add(hAntiCosDeltaPhivsPt075); - fListHistCascade->Add(hAntiSinDeltaPhivsPt075); - fListHistCascade->Add(hAntiDeltaPhivsPt075); - fListHistCascade->Add(hAntiCosDeltaPhiVZEROvsPt075); - fListHistCascade->Add(hAntiSinDeltaPhiVZEROvsPt075); - fListHistCascade->Add(hAntiDeltaPhiVZEROvsPt075); - fListHistCascade->Add(hAntiCosDeltaPhivsPt1530); - fListHistCascade->Add(hAntiSinDeltaPhivsPt1530); - fListHistCascade->Add(hAntiDeltaPhivsPt1530); - fListHistCascade->Add(hAntiCosDeltaPhiVZEROvsPt1530); - fListHistCascade->Add(hAntiSinDeltaPhiVZEROvsPt1530); - fListHistCascade->Add(hAntiDeltaPhiVZEROvsPt1530); - fListHistCascade->Add(hAntiCosDeltaPhivsPt3050); - fListHistCascade->Add(hAntiSinDeltaPhivsPt3050); - fListHistCascade->Add(hAntiDeltaPhivsPt3050); - fListHistCascade->Add(hAntiCosDeltaPhiVZEROvsPt3050); - fListHistCascade->Add(hAntiSinDeltaPhiVZEROvsPt3050); - fListHistCascade->Add(hAntiDeltaPhiVZEROvsPt3050); - fListHistCascade->Add(hAntiCosDeltaPhivsPt1550); - fListHistCascade->Add(hAntiSinDeltaPhivsPt1550); - fListHistCascade->Add(hAntiDeltaPhivsPt1550); - fListHistCascade->Add(hAntiCosDeltaPhiVZEROvsPt1550); - fListHistCascade->Add(hAntiSinDeltaPhiVZEROvsPt1550); - fListHistCascade->Add(hAntiDeltaPhiVZEROvsPt1550); + fListHist->Add(hCos2DeltaPhivsPt075); + fListHist->Add(hCos2DeltaPhiVZEROvsPt075); + fListHist->Add(hCos2DeltaPhivsPt1530); + fListHist->Add(hCos2DeltaPhiVZEROvsPt1530); + fListHist->Add(hCos2DeltaPhivsPt3050); + fListHist->Add(hCos2DeltaPhiVZEROvsPt3050); + fListHist->Add(hCos2DeltaPhivsPt05); + fListHist->Add(hCos2DeltaPhiVZEROvsPt05); + fListHist->Add(hCos2DeltaPhivsPt2040); + fListHist->Add(hCos2DeltaPhiVZEROvsPt2040); + fListHist->Add(hCos2DeltaPhivsPt4060); + fListHist->Add(hCos2DeltaPhiVZEROvsPt4060); + if(! fNtuple1 ) { fNtuple1 = new TTree("fNtuple1","fNtuple1"); - fNtuple1->Branch("tEventNumber" ,&tEventNumber ,"tEventNumber[7]/D"); - fNtuple1->Branch("tCentrality" ,&tCentrality ,"tCentrality/D" ); - fNtuple1->Branch("tVertexCoord" ,&tVertexCoord ,"tVertexCoord[3]/D"); - fNtuple1->Branch("tPIDITS" ,&tPIDITS ,"tPIDITS[9]/D" ); - fNtuple1->Branch("tPIDTPC" ,&tPIDTPC ,"tPIDTPC[9]/D" ); - fNtuple1->Branch("tPIDTOF" ,&tPIDTOF ,"tPIDTOF[9]/D" ); - fNtuple1->Branch("tPulls" ,&tPulls ,"tPulls[2]/D" ); - fNtuple1->Branch("tMomentum" ,&tMomentum ,"tMomentum[3]/D" ); - fNtuple1->Branch("tTPCMomentum" ,&tTPCMomentum ,"tTPCMomentum/D" ); - fNtuple1->Branch("tdEdx" ,&tdEdx ,"tdEdx/D" ); - fNtuple1->Branch("tEta" ,&tEta ,"tEta/D" ); + fNtuple1->Branch("tCentrality" ,&tCentrality ,"tCentrality[2]/D" ); + fNtuple1->Branch("tPulls" ,&tPulls ,"tPulls[3]/D" ); + fNtuple1->Branch("tMomentum" ,&tMomentum ,"tMomentum[4]/D" ); fNtuple1->Branch("tDCA" ,&tDCA ,"tDCA[2]/D" ); - fNtuple1->Branch("tTracksTPC" ,&tTracksTPC ,"tTracksTPC[2]/D" ); - fNtuple1->Branch("tITSclustermap",&tITSclustermap,"tITSclustermap" ); - fNtuple1->Branch("tITSsample" ,&tITSsample ,"tITSsample[4]/D" ); - fNtuple1->Branch("tisTOF[2]" ,&tisTOF ,"tisTOF[2]/I" ); + fNtuple1->Branch("tisTOF" ,&tisTOF ,"tisTOF[2]/I" ); fNtuple1->Branch("tTOFtrack" ,&tTOFtrack ,"tTOFtrack[3]/D" ); fNtuple1->Branch("tCharge" ,&tCharge ,"tCharge/I" ); - fNtuple1->Branch("tPtCorr" ,&tPtCorr ,"tPtCorr/D" ); fNtuple1->Branch("tPhi" ,&tPhi ,"tPhi/D" ); fNtuple1->Branch("trpangleTPC" ,&trpangleTPC ,"trpangleTPC/D" ); fNtuple1->Branch("trpangleVZERO" ,&trpangleVZERO ,"trpangleVZERO[3]/D" ); @@ -606,8 +586,6 @@ void AliAnalysisTaskNucleiv2::UserCreateOutputObjects() } } - - if(fDataType == "SIM"){ @@ -616,7 +594,6 @@ void AliAnalysisTaskNucleiv2::UserCreateOutputObjects() fNtuple2 = new TTree("fNtuple2","fNtuple2"); - fNtuple2->Branch("tEventNumberMC" ,&tEventNumberMC ,"tEventNumberMC[6]/D"); fNtuple2->Branch("tCentralityMC" ,&tCentralityMC ,"tCentralityMC/D" ); fNtuple2->Branch("tVertexCoordMC" ,&tVertexCoordMC ,"tVertexCoordMC[3]/D"); fNtuple2->Branch("tMomentumMC" ,&tMomentumMC ,"tMomentumMC[3]/D" ); @@ -631,10 +608,14 @@ void AliAnalysisTaskNucleiv2::UserCreateOutputObjects() } } - - PostData(1, fListHistCascade); + + PostData(1, fListHist); PostData(2, fNtuple1); PostData(3, fNtuple2); + + fFlowEvent = new AliFlowEvent(10000); + PostData(4, fFlowEvent); + }// end UserCreateOutputObjects @@ -652,8 +633,8 @@ void AliAnalysisTaskNucleiv2::UserExec(Option_t *) if (!event) { Printf("ERROR: Could not retrieve event"); return; } AliStack *stack = 0; + if(fDataType == "SIM"){ - AliMCEvent *mcEvent = MCEvent(); if (!mcEvent) { Printf("ERROR: Could not retrieve MC event"); @@ -668,746 +649,610 @@ void AliAnalysisTaskNucleiv2::UserExec(Option_t *) } // create pointer to event - - AliESDEvent* lESDevent = dynamic_cast(event); - if (!lESDevent) { - AliError("Cannot get the ESD event"); - return; - } - - fHistEventMultiplicity->Fill(1); - fHistEventMultiplicity->Fill(7); - - //_____________________________________________________ - // Centrality - - AliCentrality *centrality = lESDevent->GetCentrality(); - Float_t percentile=centrality->GetCentralityPercentile("V0M"); - - Int_t TrackNumber = lESDevent->GetNumberOfTracks(); - fHistTrackMultiplicity->Fill(TrackNumber,percentile); //tracce per evento - - //______________________________________________________ - // PID - - AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager(); - AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler()); - fPIDResponse=inputHandler->GetPIDResponse(); - - //================================================================= - - //!*********************!// - //! Define variables !// - //!*********************!// - - Double_t evNumber = 0.; - Double_t runNumber = 0.; - Double_t BCNumber = 0.; - Double_t OrbitNumber = 0.; - Double_t PeriodNumber = 0.; - - - Double_t ITSsample[4]; - for(Int_t i=0;i<4;i++)ITSsample[i]=0; - - Double_t xPrimaryVertex=0.,yPrimaryVertex=0.,zPrimaryVertex=0.; - Float_t impactXY=-999., impactZ=-999.; - Double_t pinTPC=0.,poutTPC=0.,TPCSignal=0.; - - ULong_t status=0; - Bool_t isTPC=kFALSE; - + + if(fAnalysisType == "ESD"){ - // Primary vertex cut - - const AliESDVertex *vtx = lESDevent->GetPrimaryVertexTracks(); + AliESDEvent* lESDevent = dynamic_cast(event); + if (!lESDevent) { + AliError("Cannot get the ESD event"); + return; + } + + fHistEventMultiplicity->Fill(1); + fHistEventMultiplicity->Fill(7); - if(vtx->GetNContributors()<1) { + //_____________________________________________________ + // Centrality + + AliCentrality *centrality = lESDevent->GetCentrality(); + Float_t percentile=centrality->GetCentralityPercentile("V0M"); + + Int_t TrackNumber = lESDevent->GetNumberOfTracks(); + fHistTrackMultiplicity->Fill(TrackNumber,percentile); //tracce per evento - // SPD vertex cut - vtx = lESDevent->GetPrimaryVertexSPD(); + //______________________________________________________ + // PID + + AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager(); + AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler()); + fPIDResponse=inputHandler->GetPIDResponse(); + + //================================================================= + + Float_t impactXY=-999., impactZ=-999.; + Double_t pinTPC=0.,poutTPC=0.,TPCSignal=0.; + + ULong_t status=0; + Bool_t isTPC=kFALSE; + + + // Primary vertex cut + + const AliESDVertex *vtx = lESDevent->GetPrimaryVertexTracks(); if(vtx->GetNContributors()<1) { - Info("AliAnalysisTaskHelium3Pi","No good vertex, skip event"); - return; // NO GOOD VERTEX, SKIP EVENT + + // SPD vertex cut + vtx = lESDevent->GetPrimaryVertexSPD(); + + if(vtx->GetNContributors()<1) { + Info("AliAnalysisTaskHelium3Pi","No good vertex, skip event"); + return; // NO GOOD VERTEX, SKIP EVENT + } } - } - - fHistEventMultiplicity->Fill(2); // analyzed events with PV - - xPrimaryVertex=vtx->GetXv(); - yPrimaryVertex=vtx->GetYv(); - zPrimaryVertex=vtx->GetZv(); - - if(TMath::Abs(zPrimaryVertex)>10) return; - fHistEventMultiplicity->Fill(3); - - Bool_t isSelectedCentral = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral); - Bool_t isSelectedSemiCentral = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral); - Bool_t isSelectedMB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB); - - fHistTrackMultiplicity->Fill(TrackNumber,percentile); - - Int_t eventtype = -999; - - // cout<<"ET 1: "<Fill(2); // analyzed events with PV + + if(TMath::Abs(vtx->GetZv())>10) return; + fHistEventMultiplicity->Fill(3); - if(fDataType == "REAL"){ - - if(isSelectedCentral){ - if(percentile<0)return; - if(percentile>=7.5)return; - fHistEventMultiplicity->Fill(4); - fHistTrackMultiplicityCentral->Fill(TrackNumber,percentile); - eventtype =1; - } + Bool_t isSelectedCentral = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral); + Bool_t isSelectedSemiCentral = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral); + Bool_t isSelectedMB = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB); - if(isSelectedSemiCentral){ - if(percentile<15)return; - if(percentile>=50)return; - fHistEventMultiplicity->Fill(5); - fHistTrackMultiplicitySemiCentral->Fill(TrackNumber,percentile); - eventtype =2; - } + fHistTrackMultiplicity->Fill(TrackNumber,percentile); - if(isSelectedMB){ - if(percentile<0)return; - if(percentile>=80)return; - fHistEventMultiplicity->Fill(6); - fHistTrackMultiplicityMB->Fill(TrackNumber,percentile); - eventtype =3; - } + Int_t eventtype = -999; - // cout<<"ET 2: "<=7.5)return; + fHistEventMultiplicity->Fill(4); + fHistTrackMultiplicityCentral->Fill(TrackNumber,percentile); + eventtype =1; + } - } - - evNumber = lESDevent->GetEventNumberInFile(); - runNumber = lESDevent->GetRunNumber(); - BCNumber = lESDevent->GetBunchCrossNumber(); - OrbitNumber = lESDevent->GetOrbitNumber(); - PeriodNumber= lESDevent->GetPeriodNumber(); - - AliEventplane *pl=lESDevent->GetEventplane(); - - if(fDataType == "REAL"){ + if(isSelectedSemiCentral){ + // if(percentile<15)return; + // if(percentile>=50)return; + fHistEventMultiplicity->Fill(5); + fHistTrackMultiplicitySemiCentral->Fill(TrackNumber,percentile); + eventtype =2; + } + + if(isSelectedMB){ + if(percentile<0)return; + if(percentile>=80)return; + fHistEventMultiplicity->Fill(6); + fHistTrackMultiplicityMB->Fill(TrackNumber,percentile); + eventtype =3; + } - if(!pl ){ - AliError("AliAnalysisTaskSENucleiv2::UserExec:no eventplane! v2 analysis without eventplane not possible!\n"); - fHistEventMultiplicity->Fill(12); + // cout<<"ET 2: "<GetEventplane("Q"); - - if(fDataType == "REAL"){ - if(rpangleTPC<0){ - fHistEventMultiplicity->Fill(11); - return; + + if(fDataType == "SIM"){ + cout<<"Take SIM event"<GetEventplane(); + + if(fDataType == "REAL"){ + + if(!pl ){ + AliError("AliAnalysisTaskSENucleiv2::UserExec:no eventplane! v2 analysis without eventplane not possible!\n"); + fHistEventMultiplicity->Fill(12); + } + } + - hRPangleTPCvsCentrality->Fill(rpangleTPC,percentile); - - qsub1 = pl->GetQsub1(); - qsub2 = pl->GetQsub2(); - - if(fDataType == "REAL"){ - if(!qsub1 || !qsub2){ - AliError("AliAnalysisTaskSENucleiv2::UserExec:no qsub1 or qsub2!\n"); - return; + //Event plane from FLOW + //=============================================V0EP from Alex====================================================================== + + Double_t qxEPa = 0, qyEPa = 0; + Double_t qxEPc = 0, qyEPc = 0; + Double_t qxEP = 0, qyEP = 0; + + Double_t evPlAngV0A = pl->CalculateVZEROEventPlane(lESDevent, 8, 2, qxEPa, qyEPa); + Double_t evPlAngV0C = pl->CalculateVZEROEventPlane(lESDevent, 9, 2, qxEPc, qyEPc); + Double_t evPlAngV0 = pl->CalculateVZEROEventPlane(lESDevent,10, 2, qxEP, qyEP); + + Double_t Qx2 = 0, Qy2 = 0; + Double_t Qx2p = 0, Qy2p = 0; + Double_t Qx2n = 0, Qy2n = 0; + + for (Int_t iT = 0; iT < TrackNumber; iT++){ + AliESDtrack* track = lESDevent->GetTrack(iT); + + if (!track) + continue; + + if ((TMath::Abs(track->Eta()) > 0.8) || (track->Pt() < 0.2) || (track->GetTPCNcls() < 70) || (track->Pt() >= 20.0)) + continue; + + if(!fESDtrackCutsEP->AcceptTrack(track)) + continue; + + if(track->Eta()>0 && track->Eta()<0.8){ + + Qx2p += TMath::Cos(2*track->Phi()); + Qy2p += TMath::Sin(2*track->Phi()); + } + if(track->Eta()<0 && track->Eta()> -0.8){ + + Qx2n += TMath::Cos(2*track->Phi()); + Qy2n += TMath::Sin(2*track->Phi()); + } + + Qx2 += TMath::Cos(2*track->Phi()); + Qy2 += TMath::Sin(2*track->Phi()); + } - - //TPC event Plane - rpangleeventATPC = qsub1->Phi()/2.; - rpangleeventBTPC = qsub2->Phi()/2.; + Double_t evPlAngTPC = TMath::ATan2(Qy2, Qx2)/2.; + Double_t evPlAngTPCn = TMath::ATan2(Qy2n, Qx2n)/2.; + Double_t evPlAngTPCp = TMath::ATan2(Qy2p, Qx2p)/2.; - deltaPsiTPC =rpangleeventATPC-rpangleeventBTPC; + EPVzAvsCentrality->Fill(evPlAngV0A,percentile); + EPVzCvsCentrality->Fill(evPlAngV0C,percentile); + EPTPCvsCentrality->Fill(evPlAngTPC,percentile); - if(TMath::Abs(deltaPsiTPC)>TMath::Pi()/2.){ - if(deltaPsiTPC>0.) deltaPsiTPC-=TMath::Pi(); - else deltaPsiTPC +=TMath::Pi(); - } // difference of subevents reaction plane angle cannot be bigger than phi/2 + EPTPCnvsCentrality->Fill(evPlAngTPCn,percentile); + EPTPCpvsCentrality->Fill(evPlAngTPCp,percentile); + EPVzvsCentrality->Fill(evPlAngV0,percentile); - planeresoTPC = TMath::Cos(2.*deltaPsiTPC); // reaction plane resolution + // For TPC resolution + // Cos(2*(tpc-v0A)) vs Centrality + // Cos(2*(tpc-v0C)) vs Centrality + // Cos(2*(v0A-v0C)) vs Centrality + // For VZEROM resolution : + // Cos(2*(V0-TPCp)) vs Centrality + // Cos(2*(V0-TPCn)) vs Centrality + // Cos(2*(TPCp-TPCn)) vs Centrality + + hCos2DeltaPhiVzAvsCentrality ->Fill(TMath::Cos(2.*(evPlAngV0-evPlAngTPCp)) ,percentile); + hCos2DeltaPhiVzCvsCentrality ->Fill(TMath::Cos(2.*(evPlAngV0-evPlAngTPCn)) ,percentile); + hCos2DeltaPhiVzMvsCentrality ->Fill(TMath::Cos(2.*(evPlAngTPCp-evPlAngTPCn)),percentile); + hCos2DeltaPhiTPCfvsCentrality->Fill(TMath::Cos(2.*(evPlAngTPC-evPlAngV0A)) ,percentile); + hCos2DeltaPhiTPCpvsCentrality->Fill(TMath::Cos(2.*(evPlAngTPC-evPlAngV0C)) ,percentile); + hCos2DeltaPhiTPCnvsCentrality->Fill(TMath::Cos(2.*(evPlAngV0C-evPlAngV0A)) ,percentile); - hPlaneResoTPCvsCentrality->Fill(planeresoTPC,percentile); - - //VZERO event plane - - rpangleVZERO = GetPhi0Pi(pl->GetEventplane("V0",lESDevent,2)); - rpangleeventBVZERO=GetPhi0Pi(pl->GetEventplane("V0A",lESDevent,2)); - rpangleeventCVZERO=GetPhi0Pi(pl->GetEventplane("V0C",lESDevent,2)); - - hRPangleVZEROvsCentrality->Fill(rpangleVZERO,percentile); - hRPangleVZEROAvsCentrality->Fill(rpangleeventBVZERO,percentile); - hRPangleVZEROCvsCentrality->Fill(rpangleeventCVZERO,percentile); - - //Resolution V0 : V0M - V0A - rpangleeventAVZERO = rpangleVZERO; - deltaPsiVZERO =rpangleeventAVZERO-rpangleeventBVZERO; - - if(TMath::Abs(deltaPsiVZERO)>TMath::Pi()/2.){ - if(deltaPsiVZERO>0.) deltaPsiVZERO-=TMath::Pi(); - else deltaPsiVZERO +=TMath::Pi(); - } // difference of subevents reaction plane angle cannot be bigger than phi/2 - - planeresoVZERO = TMath::Cos(2.*deltaPsiVZERO); - - hPlaneResoVZEROvsCentrality->Fill(planeresoVZERO,percentile); - - //Resolution V0 : V0M - V0C - deltaPsiVZERO =rpangleeventAVZERO-rpangleeventCVZERO; - - if(TMath::Abs(deltaPsiVZERO)>TMath::Pi()/2.){ - if(deltaPsiVZERO>0.) deltaPsiVZERO-=TMath::Pi(); - else deltaPsiVZERO +=TMath::Pi(); - } // difference of subevents reaction plane angle cannot be bigger than phi/2 - - planeresoVZERO = TMath::Cos(2.*deltaPsiVZERO); + // e volendo 3 per il vzero come sotto - hPlaneResoVZEROAvsCentrality->Fill(planeresoVZERO,percentile); + if(percentile>=0 || percentile<=5){ + //This is v0 resolution + fSubEventDPhiv205->Fill(0.5, TMath::Cos(2.*(evPlAngV0A-evPlAngTPC))); // vzeroa - tpc + fSubEventDPhiv205->Fill(1.5, TMath::Cos(2.*(evPlAngV0A-evPlAngV0C))); // vzeroa - vzeroc + fSubEventDPhiv205->Fill(2.5, TMath::Cos(2.*(evPlAngV0C-evPlAngTPC))); // tpc - vzeroc + + + fSubEventDPhiv2new05->Fill(0.5, TMath::Cos(2.*(evPlAngV0-evPlAngTPCp)) ); // vzero - tpcp + fSubEventDPhiv2new05->Fill(1.5, TMath::Cos(2.*(evPlAngV0-evPlAngTPCn)) ); // vzero - tpcn + fSubEventDPhiv2new05->Fill(2.5, TMath::Cos(2.*(evPlAngTPCp-evPlAngTPCn))); // tpcp - tpcn + + hEvPlaneTPCvsEvPVz05 ->Fill( evPlAngTPC,evPlAngV0); + } - //Resolution V0 : V0A - V0C - - deltaPsiVZERO =rpangleeventBVZERO-rpangleeventCVZERO; - - if(TMath::Abs(deltaPsiVZERO)>TMath::Pi()/2.){ - if(deltaPsiVZERO>0.) deltaPsiVZERO-=TMath::Pi(); - else deltaPsiVZERO +=TMath::Pi(); - } // difference of subevents reaction plane angle cannot be bigger than phi/2 - - planeresoVZERO = TMath::Cos(2.*deltaPsiVZERO); - - hPlaneResoVZEROCvsCentrality->Fill(planeresoVZERO,percentile); - - //rpangleeventBVZERO + if(percentile>=20 || percentile<=40){ + fSubEventDPhiv22040->Fill(0.5, TMath::Cos(2.*(evPlAngV0A-evPlAngTPC))); // vzeroa - tpc + fSubEventDPhiv22040->Fill(1.5, TMath::Cos(2.*(evPlAngV0A-evPlAngV0C))); // vzeroa - vzeroc + fSubEventDPhiv22040->Fill(2.5, TMath::Cos(2.*(evPlAngV0C-evPlAngTPC))); // tpc - vzeroc + + + fSubEventDPhiv2new2040->Fill(0.5, TMath::Cos(2.*(evPlAngV0-evPlAngTPCp))); // vzero - tpcp + fSubEventDPhiv2new2040->Fill(1.5, TMath::Cos(2.*(evPlAngV0-evPlAngTPCn))); // vzero - tpcn + fSubEventDPhiv2new2040->Fill(2.5, TMath::Cos(2.*(evPlAngTPCp-evPlAngTPCn))); // tpcp - tpcn + + hEvPlaneTPCvsEvPVz2040 ->Fill( evPlAngTPC,evPlAngV0); + + } + + if(percentile>=40 || percentile<=60){ + fSubEventDPhiv24060->Fill(0.5, TMath::Cos(2.*(evPlAngV0A-evPlAngTPC))); // vzeroa - tpc + fSubEventDPhiv24060->Fill(1.5, TMath::Cos(2.*(evPlAngV0A-evPlAngV0C))); // vzeroa - vzeroc + fSubEventDPhiv24060->Fill(2.5, TMath::Cos(2.*(evPlAngV0C-evPlAngTPC))); // tpc - vzeroc + + fSubEventDPhiv2new4060->Fill(0.5, TMath::Cos(2.*(evPlAngV0-evPlAngTPCp))); // vzero - tpcp + fSubEventDPhiv2new4060->Fill(1.5, TMath::Cos(2.*(evPlAngV0-evPlAngTPCn))); // vzero - tpcn + fSubEventDPhiv2new4060->Fill(2.5, TMath::Cos(2.*(evPlAngTPCp-evPlAngTPCn))); // tpcp - tpcn - if(TMath::Abs(rpangleTPC-rpangleVZERO)>10)return; - - trpangleTPC = rpangleTPC; - trpangleVZERO[0] = rpangleVZERO; - trpangleVZERO[1] = rpangleeventBVZERO; - trpangleVZERO[2] = rpangleeventCVZERO; - } - // cout<<"rpangle TPC: "<Fill( evPlAngTPC,evPlAngV0); + } - Int_t isTOF=0; - Int_t isoutTPC=0; - // cout<<"TRack number MC "<=0 || percentile<=7.5) + hEvPlaneTPCvsEvPVz075->Fill( evPlAngTPC,evPlAngV0); + if(percentile>=15 || percentile<=30) + hEvPlaneTPCvsEvPVz1530->Fill( evPlAngTPC,evPlAngV0); + if(percentile>=30 || percentile<=50) + hEvPlaneTPCvsEvPVz3050->Fill( evPlAngTPC,evPlAngV0); + + //==================================================================================================================== + + // To remove auto-correlation + TVector2 *q = 0x0; + TVector2 *qsub1=0x0; + TVector2 *qsub2=0x0; + qsub1 = pl->GetQsub1(); + qsub2 = pl->GetQsub2(); + + q = pl->GetQVector(); - for (Int_t j=0; jGetTrack(j); - if (!fESDtrackCuts->AcceptTrack(esdtrack)) continue; + // cout<<"rpangle TPC: "<GetStatus(); - - isTPC = (((status) & AliESDtrack::kTPCin) != 0); - isTOF = ((((status) & AliESDtrack::kTOFout) != 0) && (((status) & AliESDtrack::kTIME) != 0)); - isoutTPC = (((status) & AliESDtrack::kTPCout) != 0); + Int_t isTOF=0; + Int_t isoutTPC=0; + // cout<<"TRack number MC "<GetTPCsignal(); - - if (TPCSignal<10)continue; - if (TPCSignal>1000)continue; - if (!isTPC)continue; + for (Int_t j=0; jGetTrack(j); + if (!fESDtrackCuts->AcceptTrack(esdtrack)) continue; - if(!esdtrack->GetTPCInnerParam())continue; - AliExternalTrackParam trackIn(*esdtrack->GetInnerParam()); - pinTPC= trackIn.GetP(); + status = (ULong_t)esdtrack->GetStatus(); + + isTPC = (((status) & AliESDtrack::kTPCin) != 0); + isTOF = ((((status) & AliESDtrack::kTOFout) != 0) && (((status) & AliESDtrack::kTIME) != 0)); + isoutTPC = (((status) & AliESDtrack::kTPCout) != 0); + + TPCSignal=esdtrack->GetTPCsignal(); + + if (TPCSignal<10)continue; + if (TPCSignal>1000)continue; + if (!isTPC)continue; + + if(!esdtrack->GetTPCInnerParam())continue; + AliExternalTrackParam trackIn(*esdtrack->GetInnerParam()); + pinTPC= trackIn.GetP(); - fhBB->Fill(pinTPC*esdtrack->GetSign(),TPCSignal); + fhBB->Fill(pinTPC*esdtrack->GetSign(),TPCSignal); - if(isTOF){ - if(!esdtrack->GetOuterParam())continue; - AliExternalTrackParam trackOut(*esdtrack->GetOuterParam()); - poutTPC = trackOut.GetP(); - fhTOF->Fill(poutTPC*esdtrack->GetSign(),(esdtrack->GetIntegratedLength()/esdtrack->GetTOFsignal())/2.99792458e-2); + if(isTOF){ + if(!esdtrack->GetOuterParam())continue; + AliExternalTrackParam trackOut(*esdtrack->GetOuterParam()); + poutTPC = trackOut.GetP(); + fhTOF->Fill(poutTPC*esdtrack->GetSign(),(esdtrack->GetIntegratedLength()/esdtrack->GetTOFsignal())/2.99792458e-2); - } + } - Int_t fIdxInt[200]; //dummy array - Int_t nClustersTPC = esdtrack->GetTPCclusters(fIdxInt); - Float_t chi2PerClusterTPC = esdtrack->GetTPCchi2()/(Float_t)(nClustersTPC); + Int_t fIdxInt[200]; //dummy array + Int_t nClustersTPC = esdtrack->GetTPCclusters(fIdxInt); + Float_t chi2PerClusterTPC = esdtrack->GetTPCchi2()/(Float_t)(nClustersTPC); - esdtrack->GetImpactParameters(impactXY, impactZ); + esdtrack->GetImpactParameters(impactXY, impactZ); - Float_t deutExp = -999; - Float_t hel3Exp = -999; + Float_t deutExp = -999; + Float_t tritExp = -999; + Float_t hel3Exp = -999; - if(fDataType == "REAL"){ - deutExp = AliExternalTrackParam::BetheBlochAleph(pinTPC/(0.938*2),1.45802,27.4992,4.00313e-15,2.48485,8.31768); - hel3Exp = 4*AliExternalTrackParam::BetheBlochAleph(2*pinTPC/(0.938*3),1.74962,27.4992,4.00313e-15,2.42485,8.31768); - } + if(fDataType == "REAL"){ + deutExp = AliExternalTrackParam::BetheBlochAleph(pinTPC/(0.938*2),1.45802,27.4992,4.00313e-15,2.48485,8.31768); + tritExp = AliExternalTrackParam::BetheBlochAleph(pinTPC/(0.938*3),1.45802,27.4992,4.00313e-15,2.48485,8.31768); + hel3Exp = 4*AliExternalTrackParam::BetheBlochAleph(2*pinTPC/(0.938*3),1.74962,27.4992,4.00313e-15,2.42485,8.31768); + } - if(fDataType == "SIM"){ - Double_t parMC[5] = {1.17329, 27.4992, 4.00313e-15, 2.1204316, 4.1373729}; // NEW!!! - deutExp = AliExternalTrackParam::BetheBlochAleph(pinTPC/(0.938*2),parMC[0],parMC[1],parMC[2],parMC[3],parMC[4]); - hel3Exp = 4*AliExternalTrackParam::BetheBlochAleph(2*pinTPC/(0.938*3),parMC[0],parMC[1],parMC[2],parMC[3],parMC[4]); - } + if(fDataType == "SIM"){ + Double_t parMC[5] = {1.17329, 27.4992, 4.00313e-15, 2.1204316, 4.1373729}; // NEW!!! + deutExp = AliExternalTrackParam::BetheBlochAleph(pinTPC/(0.938*2),parMC[0],parMC[1],parMC[2],parMC[3],parMC[4]); + tritExp = AliExternalTrackParam::BetheBlochAleph(pinTPC/(0.938*3),parMC[0],parMC[1],parMC[2],parMC[3],parMC[4]); + hel3Exp = 4*AliExternalTrackParam::BetheBlochAleph(2*pinTPC/(0.938*3),parMC[0],parMC[1],parMC[2],parMC[3],parMC[4]); + } - Double_t pullTPC = (TPCSignal - deutExp)/(0.07*deutExp); - Double_t pullTPChel3 = (TPCSignal - hel3Exp)/(0.07*hel3Exp); - - tPulls[0] = pullTPC; - tPulls[1] = pullTPChel3; + Double_t pullTPC = (TPCSignal - deutExp)/(0.07*deutExp); + Double_t pullTPChel3 = (TPCSignal - hel3Exp)/(0.07*hel3Exp); + Double_t pullTPCtrit = (TPCSignal - tritExp)/(0.07*tritExp); + + tPulls[0] = pullTPC; + tPulls[1] = pullTPChel3; + tPulls[2] = pullTPCtrit; - //Fill the tree + //Fill the tree - tEventNumber[0] = evNumber ; - tEventNumber[1] = runNumber ; - tEventNumber[2] = BCNumber ; - tEventNumber[3] = OrbitNumber ; - tEventNumber[4] = PeriodNumber; - tEventNumber[5] = TrackNumber; - tEventNumber[6] = eventtype ; + tCentrality[0] = percentile; + tCentrality[1] = eventtype; - tCentrality = percentile; - - tVertexCoord[0] = xPrimaryVertex; - tVertexCoord[1] = yPrimaryVertex; - tVertexCoord[2] = zPrimaryVertex; - - if(TMath::Abs(zPrimaryVertex)>10)continue; - - // bbtheo = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 7); - - tPIDITS[0] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 0); - tPIDITS[1] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 1); - tPIDITS[2] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 2); - tPIDITS[3] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 3); - tPIDITS[4] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 4); - tPIDITS[5] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 5); - tPIDITS[6] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 6); - tPIDITS[7] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 7); - tPIDITS[8] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)0,esdtrack,(AliPID::EParticleType) 8); - - tPIDTPC[0] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 0); - tPIDTPC[1] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 1); - tPIDTPC[2] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 2); - tPIDTPC[3] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 3); - tPIDTPC[4] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 4); - tPIDTPC[5] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 5); - tPIDTPC[6] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 6); - tPIDTPC[7] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 7); - tPIDTPC[8] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)1,esdtrack,(AliPID::EParticleType) 8); - - tPIDTOF[0] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 0); - tPIDTOF[1] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 1); - tPIDTOF[2] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 2); - tPIDTOF[3] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 3); - tPIDTOF[4] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 4); - tPIDTOF[5] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 5); - tPIDTOF[6] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 6); - tPIDTOF[7] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 7); - tPIDTOF[8] = fPIDResponse->NumberOfSigmas((AliPIDResponse::EDetector)3,esdtrack,(AliPID::EParticleType) 8); - - tMomentum[0] = esdtrack->Px(); - tMomentum[1] = esdtrack->Py(); - tMomentum[2] = esdtrack->Pz(); - tTPCMomentum = pinTPC; - tEta = esdtrack->Eta(); - tdEdx = TPCSignal; - tDCA[0] = impactXY; - tDCA[1] = impactZ; - - // if(nClustersTPC<80) - // cout<<"!!!!! TPC cls: "<GetITSClusterMap(); - esdtrack->GetITSdEdxSamples(ITSsample); - tITSsample[0] = ITSsample[0]; - tITSsample[1] = ITSsample[1]; - tITSsample[2] = ITSsample[2]; - tITSsample[3] = ITSsample[3]; - - tisTOF[0] = isTOF; - tisTOF[1] = isoutTPC; - - Double_t p = esdtrack->P(); - Double_t tof = esdtrack->GetTOFsignal()-fPIDResponse->GetTOFResponse().GetStartTime(p); - - tTOFtrack[0] = poutTPC; - tTOFtrack[1] = tof; //esdtrack->GetTOFsignal(); //ps = Time - tTOFtrack[2] = esdtrack->GetIntegratedLength(); //cm + tMomentum[0] = esdtrack->Px(); + tMomentum[1] = esdtrack->Py(); + tMomentum[2] = esdtrack->Pz(); + + //Corrected momentum from Alexander + Double_t pT = esdtrack->Pt()/(1 - 0.333303/TMath::Power(esdtrack->Pt() + 0.651111, 5.27268)); + tMomentum[3] = pT; - tCharge = esdtrack->Charge(); - tPhi = esdtrack->Phi(); + tDCA[0] = impactXY; + tDCA[1] = impactZ; - //Corrected momentum from Alexander + tisTOF[0] = isTOF; + tisTOF[1] = isoutTPC; + + Double_t p = esdtrack->P(); + Double_t tof = esdtrack->GetTOFsignal()-fPIDResponse->GetTOFResponse().GetStartTime(p); + + tTOFtrack[0] = poutTPC; + tTOFtrack[1] = tof; //ps = Time + tTOFtrack[2] = esdtrack->GetIntegratedLength(); //cm + + tCharge = esdtrack->Charge(); + tPhi = esdtrack->Phi(); + + Float_t beta = 0; + Float_t gamma = 0; + Float_t deltaMass = 0; - Double_t pT = esdtrack->Pt()/(1 - 0.333303/TMath::Power(esdtrack->Pt() + 0.651111, 5.27268)); - tPtCorr = pT; + if(fDataType == "REAL"){ + if(TMath::Abs(pinTPC) < 6 && TMath::Abs(pullTPC) < 3){ - if(fDataType == "REAL"){ - if(pinTPC < 3. && TMath::Abs(pullTPC) < 3){ - if(fFillNtuple == kTRUE) - fNtuple1->Fill(); - fhBBDeu->Fill(pinTPC*esdtrack->GetSign(),TPCSignal); - } + fhBBDeu->Fill(pinTPC*esdtrack->GetSign(),TPCSignal); + + if(pinTPC < 1.0 && fFillNtuple == kTRUE) + fNtuple1->Fill(); + + if(tTOFtrack[1] > 0 ){ + beta = tTOFtrack[2]/(tTOFtrack[1] * 2.99792457999999984e-02); + gamma = 1/TMath::Sqrt(1 - beta*beta); + deltaMass = poutTPC/TMath::Sqrt(gamma*gamma - 1) - 1.8756; + fhMassTOF->Fill(deltaMass); + } + + if(pinTPC >= 1.0 && tTOFtrack[1] > 0 && TMath::Abs(deltaMass)<0.5 && fFillNtuple == kTRUE ) + fNtuple1->Fill(); + } - if(pinTPC < 10. && TMath::Abs(pullTPChel3) < 3){ - if(fFillNtuple == kTRUE) - fNtuple1->Fill(); - fhBBDeu->Fill(pinTPC*esdtrack->GetSign(),TPCSignal); - } + if(pinTPC < 10. && TMath::Abs(pullTPChel3) < 3){ + if(fFillNtuple == kTRUE) + fNtuple1->Fill(); + fhBBDeu->Fill(pinTPC*esdtrack->GetSign(),TPCSignal); + } - if(TMath::Abs(pullTPC)<2){ + + //Fill also things for flow package + + if(TMath::Abs(pullTPC)<2){ - fhPtDeu->Fill(esdtrack->Pt(),pT); + fhPtDeu->Fill(esdtrack->Pt(),pT); - Float_t deltaphiTPC=2*GetPhi0Pi(tPhi-trpangleTPC); - Float_t deltaphiV0 =2*GetPhi0Pi(tPhi-trpangleVZERO[0]); + //Remove AutoCorrelation + trpangleTPC = GetEventPlaneForCandidate(esdtrack,q,pl,qsub1,qsub2); + + Float_t deltaphiTPC=2*GetPhi0Pi(tPhi-trpangleTPC); + Float_t deltaphiV0 =2*GetPhi0Pi(tPhi-trpangleVZERO[0]); - if(tTPCMomentum < 1.0){ + if(pinTPC < 1.0){ - if(tCharge > 0){ - - hCosPhivsPt ->Fill(TMath::Cos(tPhi),tPtCorr); - hSinPhivsPt ->Fill(TMath::Sin(tPhi),tPtCorr); - hPhivsPt ->Fill(tPhi,tPtCorr); - - if(tCentrality>0 && tCentrality<7.5){ - hCosDeltaPhivsPt075 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt075 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt075 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt075 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt075 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt075 ->Fill(deltaphiV0,tPtCorr); - - } - - if(tCentrality>15 && tCentrality<30){ - hCosDeltaPhivsPt1530 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt1530 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt1530 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt1530 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt1530 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt1530 ->Fill(deltaphiV0,tPtCorr); - } - - if(tCentrality>30 && tCentrality<50){ - hCosDeltaPhivsPt3050 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt3050 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt3050 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt3050 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt3050 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt3050 ->Fill(deltaphiV0,tPtCorr); - } - - if(tCentrality>15 && tCentrality<50){ - hCosDeltaPhivsPt1550 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt1550 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt1550 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt1550 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt1550 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt1550 ->Fill(deltaphiV0,tPtCorr); - } - } + //Here + + //================================================================== + //----------------------Flow of Inclusive Particles -------------------------------------------------------- + + AliFlowTrack *sTrack = new AliFlowTrack(); + sTrack->Set(esdtrack); + sTrack->SetID(esdtrack->GetID()); + sTrack->SetForRPSelection(kTRUE); + sTrack->SetForPOISelection(kTRUE); - if(tCharge < 0){ + for(int iRPs=0; iRPs!=fFlowEvent->NumberOfTracks(); ++iRPs) + { + // cout << " no of rps " << iRPs << endl; + AliFlowTrack *iRP = dynamic_cast(fFlowEvent->GetTrack( iRPs )); + if (!iRP) continue; + if (!iRP->InRPSelection()) continue; + if( sTrack->GetID() == iRP->GetID()) + { + if(fDebug) printf(" was in RP set"); + // cout << sTrack->GetID() <<" == " << iRP->GetID() << " was in RP set" <SetForRPSelection(kFALSE); + // fFlowEvent->SetNumberOfRPs(fFlowEvent->GetNumberOfRPs() - 1); + } + } //end of for loop on RPs + fFlowEvent->InsertTrack(((AliFlowTrack*) sTrack)); + fFlowEvent->SetNumberOfPOIs(fFlowEvent->GetNumberOfPOIs()+1); - hAntiCosPhivsPt ->Fill(TMath::Cos(tPhi),tPtCorr); - hAntiSinPhivsPt ->Fill(TMath::Sin(tPhi),tPtCorr); - hAntiPhivsPt ->Fill(tPhi,tPtCorr); - if(tCentrality>0 && tCentrality<7.5){ - hAntiCosDeltaPhivsPt075 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt075 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt075 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt075 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt075 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt075 ->Fill(deltaphiV0,tPtCorr); - } - if(tCentrality>15 && tCentrality<30){ - hAntiCosDeltaPhivsPt1530 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt1530 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt1530 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt1530 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt1530 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt1530 ->Fill(deltaphiV0,tPtCorr); - } - - if(tCentrality>30 && tCentrality<50){ - hAntiCosDeltaPhivsPt3050 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt3050 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt3050 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt3050 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt3050 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt3050 ->Fill(deltaphiV0,tPtCorr); - } + //================================================================= + + // if(tCharge > 0){ - if(tCentrality>15 && tCentrality<50){ - hAntiCosDeltaPhivsPt1550 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt1550 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt1550 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt1550 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt1550 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt1550 ->Fill(deltaphiV0,tPtCorr); + if(tCentrality[0]>0 && tCentrality[0]<7.5){ + hCos2DeltaPhivsPt075 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt075 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); + } - - } - - } - if(tTPCMomentum > 1.0 && tTPCMomentum < 3.0){ - if(tPIDTOF[5]>2 || tPIDTOF[5]< -2)continue; - - if(tCharge > 0){ - - hCosPhivsPt ->Fill(TMath::Cos(tPhi),tPtCorr); - hSinPhivsPt ->Fill(TMath::Sin(tPhi),tPtCorr); - hPhivsPt ->Fill(tPhi,tPtCorr); - - - if(tCentrality>0 && tCentrality<7.5){ - hCosDeltaPhivsPt075 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt075 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt075 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt075 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt075 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt075 ->Fill(deltaphiV0,tPtCorr); - + if(tCentrality[0]>0 && tCentrality[0]<5){ + hCos2DeltaPhivsPt05 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt05 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); } - if(tCentrality>15 && tCentrality<30){ - hCosDeltaPhivsPt1530 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt1530 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt1530 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt1530 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt1530 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt1530 ->Fill(deltaphiV0,tPtCorr); + if(tCentrality[0]>15 && tCentrality[0]<30){ + hCos2DeltaPhivsPt1530 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt1530 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); } - if(tCentrality>30 && tCentrality<50){ - hCosDeltaPhivsPt3050 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt3050 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt3050 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt3050 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt3050 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt3050 ->Fill(deltaphiV0,tPtCorr); - + if(tCentrality[0]>20 && tCentrality[0]<40){ + hCos2DeltaPhivsPt2040 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt2040 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); } - if(tCentrality>15 && tCentrality<50){ - hCosDeltaPhivsPt1550 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hSinDeltaPhivsPt1550 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hDeltaPhivsPt1550 ->Fill(deltaphiTPC,tPtCorr); - hCosDeltaPhiVZEROvsPt1550 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hSinDeltaPhiVZEROvsPt1550 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hDeltaPhiVZEROvsPt1550 ->Fill(deltaphiV0,tPtCorr); + if(tCentrality[0]>30 && tCentrality[0]<50){ + hCos2DeltaPhivsPt3050 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt3050 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); } + + if(tCentrality[0]>40 && tCentrality[0]<60){ + hCos2DeltaPhivsPt4060 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt4060 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); + } } - - if(tCharge < 0){ - hAntiCosPhivsPt ->Fill(TMath::Cos(tPhi),tPtCorr); - hAntiSinPhivsPt ->Fill(TMath::Sin(tPhi),tPtCorr); - hAntiPhivsPt ->Fill(tPhi,tPtCorr); - - if(tCentrality>0 && tCentrality<7.5){ - hAntiCosDeltaPhivsPt075 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt075 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt075 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt075 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt075 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt075 ->Fill(deltaphiV0,tPtCorr); - + if(pinTPC > 1.0 && pinTPC < 6.0 && tTOFtrack[1] > 0 && TMath::Abs(deltaMass)<0.5){ + + if(tCentrality[0]>0 && tCentrality[0]<7.5){ + hCos2DeltaPhivsPt075 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt075 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); + } - if(tCentrality>15 && tCentrality<30){ - hAntiCosDeltaPhivsPt1530 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt1530 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt1530 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt1530 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt1530 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt1530 ->Fill(deltaphiV0,tPtCorr); + if(tCentrality[0]>0 && tCentrality[0]<5){ + hCos2DeltaPhivsPt05 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt05 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); + } - + if(tCentrality[0]>15 && tCentrality[0]<30){ + hCos2DeltaPhivsPt1530 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt1530 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); } - if(tCentrality>30 && tCentrality<50){ - hAntiCosDeltaPhivsPt3050 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt3050 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt3050 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt3050 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt3050 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt3050 ->Fill(deltaphiV0,tPtCorr); - - + if(tCentrality[0]>20 && tCentrality[0]<40){ + hCos2DeltaPhivsPt2040 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt2040 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); } - if(tCentrality>15 && tCentrality<50){ - hAntiCosDeltaPhivsPt1550 ->Fill(TMath::Cos(deltaphiTPC),tPtCorr); - hAntiSinDeltaPhivsPt1550 ->Fill(TMath::Sin(deltaphiTPC),tPtCorr); - hAntiDeltaPhivsPt1550 ->Fill(deltaphiTPC,tPtCorr); - hAntiCosDeltaPhiVZEROvsPt1550 ->Fill(TMath::Cos(deltaphiV0),tPtCorr); - hAntiSinDeltaPhiVZEROvsPt1550 ->Fill(TMath::Sin(deltaphiV0),tPtCorr); - hAntiDeltaPhiVZEROvsPt1550 ->Fill(deltaphiV0,tPtCorr); - - + if(tCentrality[0]>30 && tCentrality[0]<50){ + hCos2DeltaPhivsPt3050 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt3050 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); } - + + if(tCentrality[0]>40 && tCentrality[0]<60){ + hCos2DeltaPhivsPt4060 ->Fill(TMath::Cos(deltaphiTPC),tMomentum[3]*tCharge); + hCos2DeltaPhiVZEROvsPt4060 ->Fill(TMath::Cos(deltaphiV0) ,tMomentum[3]*tCharge); + } } - - } - - - if(tTOFtrack[1] > 0){ - Double_t beta = tTOFtrack[2]/(tTOFtrack[1] * 2.99792457999999984e-02); - Float_t gamma = 1/TMath::Sqrt(1 - beta*beta); - fhMassTOF->Fill(poutTPC/TMath::Sqrt(gamma*gamma - 1) - 1.8756); } } - } - if(fDataType == "SIM"){ + if(fDataType == "SIM"){ - Int_t label = TMath::Abs(esdtrack->GetLabel()); - TParticle * part = stack->Particle(label); - Int_t PDGCode=part->GetPdgCode(); - - Int_t motherPDG=0; + Int_t label = TMath::Abs(esdtrack->GetLabel()); + TParticle * part = stack->Particle(label); + Int_t PDGCode=part->GetPdgCode(); + + Int_t motherPDG=0; - Int_t mumid = part->GetFirstMother(); - if(mumid>-1){ - TParticle *mother=(TParticle*)stack->Particle(mumid); - motherPDG = mother->GetPdgCode(); - } + Int_t mumid = part->GetFirstMother(); + if(mumid>-1){ + TParticle *mother=(TParticle*)stack->Particle(mumid); + motherPDG = mother->GetPdgCode(); + } - if( PDGCode == 1000010020 || PDGCode == -1000010020 || PDGCode == 1000020030 || PDGCode == -1000020030){ + if( PDGCode == 1000010020 || PDGCode == -1000010020 || PDGCode == 1000020030 || PDGCode == -1000020030){ - tPDGCode=PDGCode; - tPDGCodeMum = motherPDG; - - tIsPrimaryTr = stack->IsPhysicalPrimary(label); - tIsSecondaryTr[0] = stack->IsSecondaryFromMaterial(label); - tIsSecondaryTr[1] = stack->IsSecondaryFromWeakDecay(label); - - fNtuple1->Fill(); - fhPtDeu->Fill(esdtrack->Pt(),pT); + tPDGCode=PDGCode; + tPDGCodeMum = motherPDG; + + tIsPrimaryTr = stack->IsPhysicalPrimary(label); + tIsSecondaryTr[0] = stack->IsSecondaryFromMaterial(label); + tIsSecondaryTr[1] = stack->IsSecondaryFromWeakDecay(label); + + fNtuple1->Fill(); + fhPtDeu->Fill(esdtrack->Pt(),pT); - if(tTOFtrack[1] > 0){ - Double_t beta = tTOFtrack[2]/(tTOFtrack[1] * 2.99792457999999984e-02); - Float_t gamma = 1/TMath::Sqrt(1 - beta*beta); - fhMassTOF->Fill(poutTPC/TMath::Sqrt(gamma*gamma - 1) - 1.8756); + if(tTOFtrack[1] > 0){ + beta = tTOFtrack[2]/(tTOFtrack[1] * 2.99792457999999984e-02); + gamma = 1/TMath::Sqrt(1 - beta*beta); + fhMassTOF->Fill(poutTPC/TMath::Sqrt(gamma*gamma - 1) - 1.8756); + } } } - } - - } //track - - //==END RECONSTRUCTION== + + } //track - - // MC truth - - if(fDataType == "SIM"){ + //==END RECONSTRUCTION== - for (Int_t iMC=0; iMCGetNtrack(); iMC++){ - - const TParticle *tparticle = stack->Particle(iMC); - Long_t PDGCode = tparticle->GetPdgCode(); - - Double_t eta = tparticle->Eta(); - Double_t pt = tparticle->Pt(); - Double_t rap = tparticle->Y(); - - //check which particle it is - - Float_t codemoth = 0; - - Int_t indexMoth=tparticle->GetFirstMother(); + + // MC truth + + if(fDataType == "SIM"){ - if(indexMoth>=0){ - TParticle* moth = stack->Particle(indexMoth); - codemoth = TMath::Abs(moth->GetPdgCode()); - } - - //d, 3He + for (Int_t iMC=0; iMCGetNtrack(); iMC++){ + + const TParticle *tparticle = stack->Particle(iMC); + Long_t PDGCode = tparticle->GetPdgCode(); + + Double_t eta = tparticle->Eta(); + Double_t pt = tparticle->Pt(); + Double_t rap = tparticle->Y(); - if( PDGCode == 1000010020 || PDGCode == -1000010020 || PDGCode == 1000020030 || PDGCode == -1000020030){ + //check which particle it is - tEventNumberMC[0] = evNumber ; - tEventNumberMC[1] = runNumber ; - tEventNumberMC[2] = BCNumber ; - tEventNumberMC[3] = OrbitNumber ; - tEventNumberMC[4] = PeriodNumber; - tEventNumberMC[5] = TrackNumber; - - tCentralityMC = percentile; + Float_t codemoth = 0; - tVertexCoordMC[0] = xPrimaryVertex; - tVertexCoordMC[1] = yPrimaryVertex; - tVertexCoordMC[2] = zPrimaryVertex; + Int_t indexMoth=tparticle->GetFirstMother(); - tVertexCoordMC[0] = tparticle->Px(); - tVertexCoordMC[1] = tparticle->Py(); - tVertexCoordMC[2] = tparticle->Pz(); + if(indexMoth>=0){ + TParticle* moth = stack->Particle(indexMoth); + codemoth = TMath::Abs(moth->GetPdgCode()); + } - tPDGCodeMC = PDGCode; - tPDGCodeMumMC = codemoth; - tEtaMC = eta; + //d, 3He - tPtMC = pt; - tYMC = rap; - - tIsPrimary = stack->IsPhysicalPrimary(iMC); - tIsSecondary[0] = stack->IsSecondaryFromMaterial(iMC); - tIsSecondary[1] = stack->IsSecondaryFromWeakDecay(iMC); - + if( PDGCode == 1000010020 || PDGCode == -1000010020 || PDGCode == 1000020030 || PDGCode == -1000020030){ + - fNtuple2->Fill(); + + tCentralityMC = percentile; + + tVertexCoordMC[0] = vtx->GetXv(); + tVertexCoordMC[1] = vtx->GetYv(); + tVertexCoordMC[2] = vtx->GetZv(); + + tVertexCoordMC[0] = tparticle->Px(); + tVertexCoordMC[1] = tparticle->Py(); + tVertexCoordMC[2] = tparticle->Pz(); + + tPDGCodeMC = PDGCode; + tPDGCodeMumMC = codemoth; + tEtaMC = eta; + + tPtMC = pt; + tYMC = rap; + + tIsPrimary = stack->IsPhysicalPrimary(iMC); + tIsSecondary[0] = stack->IsSecondaryFromMaterial(iMC); + tIsSecondary[1] = stack->IsSecondaryFromWeakDecay(iMC); + + + fNtuple2->Fill(); + } } + } - - - } - PostData(1, fListHistCascade); + + PostData(1, fListHist); PostData(2, fNtuple1); PostData(3, fNtuple2); + + PostData(4, fFlowEvent); + } //end userexec diff --git a/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.h b/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.h index 66da86025fa..4bf5f3252eb 100644 --- a/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.h +++ b/PWGLF/STRANGENESS/Hypernuclei/AliAnalysisTaskNucleiv2.h @@ -11,8 +11,15 @@ class TList; class TH1F; class TH2F; class TH3F; +class TProfile; class TNtuple; class AliESDcascade; +class AliFlowTrackCuts; +class AliFlowTrack; +class AliFlowEvent; +class AliFlowCandidateTrack; +class AliFlowEventSimple; + //class AliCascadeVertexer; #include #include "TString.h" @@ -23,142 +30,125 @@ class AliAnalysisTaskNucleiv2 : public AliAnalysisTaskSE { public: // AliAnalysisTaskNucleiv2(const char *datatype); AliAnalysisTaskNucleiv2(); - AliAnalysisTaskNucleiv2(const char *name,const char *datatype,Bool_t filltree); + AliAnalysisTaskNucleiv2(const char *name); virtual ~AliAnalysisTaskNucleiv2() {} virtual void UserCreateOutputObjects(); virtual void UserExec(Option_t *option); virtual void Terminate(Option_t *); - void SetCollidingSystems(Short_t collidingSystems = 0) {fCollidingSystems = collidingSystems;} - void SetAnalysisType (const char* analysisType = "ESD") {fAnalysisType = analysisType;} - void SetDataType (const char* dataType = "REAL") {fDataType = dataType;} - void SetFillTree (Bool_t ifFill = kFALSE) {fFillNtuple = ifFill;} - // void SetDataType (const char* dataTypeS = datatype) {fDataType = dataTypeS;} - // void SetDataType (const char* dataType) {fDataType = dataType;} - - //Double_t BetheBloch(Double_t bg,Double_t Charge,Bool_t optMC); - // Double_t BetheBloch(Double_t bg,Double_t Charge,Bool_t isPbPb); - // Bool_t IsTrackAccepted(AliESDtrack * const track); + void SetCollidingSystems(Short_t collidingSystems = 0) {fCollidingSystems = collidingSystems;} + void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;} + void SetDataType(const char* dataType) {fDataType = dataType;} + void SetFillTree(Bool_t ifFill) {fFillNtuple = ifFill;} + void SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax); //select centrality + Float_t GetEventPlaneForCandidate(AliESDtrack* track0, const TVector2* q,AliEventplane *pl, const TVector2* qsub1, const TVector2* qsub2); + template void SetNullCuts(T* aod); + void PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const; Float_t GetPhi0Pi(Float_t phi); void Initialize(); private: - TString fAnalysisType; //! "ESD" or "AOD" analysis type + TString fAnalysisType; //! "ESD" or "AOD" analysis type + + Short_t fCollidingSystems; //! 0 = pp collisions or 1 = AA collisions + TString fDataType; //! "REAL" or "SIM" data type + Bool_t fFillNtuple; //! fill or not the tree - Short_t fCollidingSystems; //! 0 = pp collisions or 1 = AA collisions - TString fDataType; //! "REAL" or "SIM" data type - Bool_t fFillNtuple; //! fill or not the tree + Double_t fCentralityMin; // lower bound of cenrality bin + Double_t fCentralityMax; // upper bound of centrality bin + + AliFlowTrackCuts *fCutsRP; // track cuts for reference particles + AliFlowTrackCuts *fNullCuts; // dummy cuts for flow event tracks + AliFlowEvent *fFlowEvent; //! flow events + TList *fListHist; //! List of histograms - TList *fListHistCascade; //! List of Cascade histograms TH1F *fHistEventMultiplicity; //! event multiplicity TH2F *fHistTrackMultiplicity; //! track multiplicity TH2F *fHistTrackMultiplicityCentral; //! track multiplicity TH2F *fHistTrackMultiplicitySemiCentral;//! track multiplicity TH2F *fHistTrackMultiplicityMB; //! track multiplicity + TH2F *fhBB; //! ScatterPlot Total TH2F *fhBBDeu; //! ScatterPlot Total TH2F *fhPtDeu; //! correctet vs non correcter d pt TH2F *fhTOF; //! ScatterPlot Total TOF TH1F *fhMassTOF; //! Mass Distribution TOF + + //From Flow Analysis + TH2D *EPVzAvsCentrality ; + TH2D *EPVzCvsCentrality ; + TH2D *EPTPCvsCentrality ; + TH2D *EPVzvsCentrality ; + TH2D *EPTPCpvsCentrality ; + TH2D *EPTPCnvsCentrality ; + + //------------------------------ + + TProfile *fSubEventDPhiv205; + TProfile *fSubEventDPhiv2new05; + + TProfile *fSubEventDPhiv22040; + TProfile *fSubEventDPhiv2new2040; + + TProfile *fSubEventDPhiv24060; + TProfile *fSubEventDPhiv2new4060; + + TH2F *hCos2DeltaPhiVzAvsCentrality; + TH2F *hCos2DeltaPhiVzCvsCentrality; + TH2F *hCos2DeltaPhiVzMvsCentrality; + TH2F *hCos2DeltaPhiTPCfvsCentrality; + TH2F *hCos2DeltaPhiTPCpvsCentrality; + TH2F *hCos2DeltaPhiTPCnvsCentrality; + + //--------------------------------------------------------------------------- + TH2F *hEvPlaneTPCvsEvPVz05; + TH2F *hEvPlaneTPCvsEvPVz075; + TH2F *hEvPlaneTPCvsEvPVz1530; + TH2F *hEvPlaneTPCvsEvPVz3050; + TH2F *hEvPlaneTPCvsEvPVz2040; + TH2F *hEvPlaneTPCvsEvPVz4060; + + + // From D meson analysis - TH2F *hRPangleTPCvsCentrality; //RESOLUTION Histrograms - TH2F *hPlaneResoTPCvsCentrality; - TH2F *hRPangleVZEROvsCentrality; - TH2F *hRPangleVZEROAvsCentrality; - TH2F *hRPangleVZEROCvsCentrality; - TH2F *hPlaneResoVZEROvsCentrality; - TH2F *hPlaneResoVZEROAvsCentrality; - TH2F *hPlaneResoVZEROCvsCentrality; - TH2F *hCosPhivsPt; - TH2F *hSinPhivsPt; - TH2F *hPhivsPt; - TH2F *hAntiCosPhivsPt; - TH2F *hAntiSinPhivsPt; - TH2F *hAntiPhivsPt; - TH2F *hCosDeltaPhivsPt075; - TH2F *hSinDeltaPhivsPt075; - TH2F *hDeltaPhivsPt075; - TH2F *hCosDeltaPhiVZEROvsPt075; - TH2F *hSinDeltaPhiVZEROvsPt075; - TH2F *hDeltaPhiVZEROvsPt075; - TH2F *hCosDeltaPhivsPt1530; - TH2F *hSinDeltaPhivsPt1530; - TH2F *hDeltaPhivsPt1530; - TH2F *hCosDeltaPhiVZEROvsPt1530; - TH2F *hSinDeltaPhiVZEROvsPt1530; - TH2F *hDeltaPhiVZEROvsPt1530; - TH2F *hCosDeltaPhivsPt3050; - TH2F *hSinDeltaPhivsPt3050; - TH2F *hDeltaPhivsPt3050; - TH2F *hCosDeltaPhiVZEROvsPt3050; - TH2F *hSinDeltaPhiVZEROvsPt3050; - TH2F *hDeltaPhiVZEROvsPt3050; - TH2F *hCosDeltaPhivsPt1550; - TH2F *hSinDeltaPhivsPt1550; - TH2F *hDeltaPhivsPt1550; - TH2F *hCosDeltaPhiVZEROvsPt1550; - TH2F *hSinDeltaPhiVZEROvsPt1550; - TH2F *hDeltaPhiVZEROvsPt1550; - TH2F *hAntiCosDeltaPhivsPt075; - TH2F *hAntiSinDeltaPhivsPt075; - TH2F *hAntiDeltaPhivsPt075; - TH2F *hAntiCosDeltaPhiVZEROvsPt075; - TH2F *hAntiSinDeltaPhiVZEROvsPt075; - TH2F *hAntiDeltaPhiVZEROvsPt075; - TH2F *hAntiCosDeltaPhivsPt1530; - TH2F *hAntiSinDeltaPhivsPt1530; - TH2F *hAntiDeltaPhivsPt1530; - TH2F *hAntiCosDeltaPhiVZEROvsPt1530; - TH2F *hAntiSinDeltaPhiVZEROvsPt1530; - TH2F *hAntiDeltaPhiVZEROvsPt1530; - TH2F *hAntiCosDeltaPhivsPt3050; - TH2F *hAntiSinDeltaPhivsPt3050; - TH2F *hAntiDeltaPhivsPt3050; - TH2F *hAntiCosDeltaPhiVZEROvsPt3050; - TH2F *hAntiSinDeltaPhiVZEROvsPt3050; - TH2F *hAntiDeltaPhiVZEROvsPt3050; - TH2F *hAntiCosDeltaPhivsPt1550; - TH2F *hAntiSinDeltaPhivsPt1550; - TH2F *hAntiDeltaPhivsPt1550; - TH2F *hAntiCosDeltaPhiVZEROvsPt1550; - TH2F *hAntiSinDeltaPhiVZEROvsPt1550; - TH2F *hAntiDeltaPhiVZEROvsPt1550; - + TH2F *hCos2DeltaPhivsPt075; + TH2F *hCos2DeltaPhiVZEROvsPt075; + TH2F *hCos2DeltaPhivsPt1530; + TH2F *hCos2DeltaPhiVZEROvsPt1530; + TH2F *hCos2DeltaPhivsPt3050; + TH2F *hCos2DeltaPhiVZEROvsPt3050; + + TH2F *hCos2DeltaPhivsPt05; + TH2F *hCos2DeltaPhiVZEROvsPt05; + TH2F *hCos2DeltaPhivsPt2040; + TH2F *hCos2DeltaPhiVZEROvsPt2040; + TH2F *hCos2DeltaPhivsPt4060; + TH2F *hCos2DeltaPhiVZEROvsPt4060; + + AliESDtrackCuts * fESDtrackCuts; + AliESDtrackCuts * fESDtrackCutsEP; AliPIDResponse *fPIDResponse; //! pointer to PID response //_______________________________________________________________________ TTree *fNtuple1; //! Some Information on the tracks - Double_t tEventNumber[7]; //ev number; run number; Bunch Cross - Orbit - Period Number; #tracks; event type - Double_t tCentrality ; - Double_t tVertexCoord[3]; - - //TRACKS - Double_t tPIDITS[9]; //n-signas different particle species ITS - Double_t tPIDTPC[9]; //n-signas different particle species TPC - Double_t tPIDTOF[9]; //n-signas different particle species TOF - Double_t tPulls[3]; //Pulls + Double_t tCentrality[2] ; // Centrality + event type + Double_t tPulls[3]; // Pulls - Double_t tMomentum[3]; //pxpypz of the tracks - Double_t tTPCMomentum; //momentum at theh TPC inner wall - Double_t tdEdx; //dEdx of the tracks - Double_t tEta; //eta of the tracks + Double_t tMomentum[4]; //pxpypz of the tracks + corrected pt for d Double_t tDCA[2]; //dcaXY and dcaZ of the track - Double_t tTracksTPC[2]; //chi^2 and #TPCcluster - Double_t tITSclustermap; //ITS cluster map - Double_t tITSsample[4]; //ITS samples Int_t tisTOF[2]; //isTOF, isOuterTPCwall Double_t tTOFtrack[3]; //poutTPC,timeTOF,trackLenghtTOF; - Int_t tCharge; //Charge of the Track - Double_t tPtCorr; //Corrected Momentum + Int_t tCharge; //Charge of the Track (Pos or Neg) Double_t tPhi; //Phi Double_t trpangleTPC; //rpangleTPC Double_t trpangleVZERO[3]; //rpangleVZERO: V0M, V0A, V0C - + // MC releted quantities + Double_t tPDGCode; //PDG code ptc Double_t tPDGCodeMum; //PDG code mother ptc Double_t tIsPrimaryTr; @@ -168,7 +158,6 @@ class AliAnalysisTaskNucleiv2 : public AliAnalysisTaskSE { TTree *fNtuple2; //! MC tree - Double_t tEventNumberMC[6]; //ev number; run number; Bunch Cross - Orbit - Period Number; #tracks Double_t tCentralityMC; Double_t tVertexCoordMC[3]; Double_t tMomentumMC[3]; //pxpypz of the tracks -- 2.43.0