//Event stats.\r
TString gCutName[4] = {"Total","Offline trigger",\r
"Vertex","Analyzed"};\r
- fHistEventStats = new TH1F("fHistEventStats",\r
- "Event statistics;;N_{events}",\r
- 4,0.5,4.5);\r
+ fHistEventStats = new TH2F("fHistEventStats",\r
+ "Event statistics;;Centrality percentile;N_{events}",\r
+ 4,0.5,4.5,220,-5,105);\r
for(Int_t i = 1; i <= 4; i++)\r
fHistEventStats->GetXaxis()->SetBinLabel(i,gCutName[i-1].Data());\r
fList->Add(fHistEventStats);\r
fHistTrackStats = new TH1F("fHistTrackStats","Event statistics;TrackFilterBit;N_{events}",130,0,130);\r
fList->Add(fHistTrackStats);\r
\r
- fHistNumberOfAcceptedTracks = new TH1F("fHistNumberOfAcceptedTracks",";N_{acc.};Entries",4001,-0.5,4000.5);\r
+ fHistNumberOfAcceptedTracks = new TH2F("fHistNumberOfAcceptedTracks",";N_{acc.};Centrality percentile;Entries",4001,-0.5,4000.5,220,-5,105);\r
fList->Add(fHistNumberOfAcceptedTracks);\r
\r
// Vertex distributions\r
fList->Add(fHistVx);\r
fHistVy = new TH1F("fHistVy","Primary vertex distribution - y coordinate;V_{y} (cm);Entries",100,-0.5,0.5);\r
fList->Add(fHistVy);\r
- fHistVz = new TH1F("fHistVz","Primary vertex distribution - z coordinate;V_{z} (cm);Entries",100,-20.,20.);\r
+ fHistVz = new TH2F("fHistVz","Primary vertex distribution - z coordinate;V_{z} (cm);Centrality percentile;Entries",100,-20.,20.,220,-5,105);\r
fList->Add(fHistVz);\r
\r
//Event plane\r
- fHistEventPlane = new TH1F("fHistEventPlane",";#Psi_{2} [deg.];Counts",100,0,360.);\r
+ fHistEventPlane = new TH2F("fHistEventPlane",";#Psi_{2} [deg.];Centrality percentile;Counts",100,0,360.,220,-5,105);\r
fList->Add(fHistEventPlane);\r
\r
// QA histograms\r
fHistClus = new TH2F("fHistClus","# Cluster (TPC vs. ITS)",10,0,10,200,0,200);\r
fList->Add(fHistClus);\r
- fHistChi2 = new TH1F("fHistChi2","Chi2/NDF distribution",200,0,10);\r
+ fHistChi2 = new TH2F("fHistChi2","Chi2/NDF distribution;#chi^{2}/ndf;Centrality percentile",200,0,10,220,-5,105);\r
fList->Add(fHistChi2);\r
fHistDCA = new TH2F("fHistDCA","DCA (xy vs. z)",400,-5,5,400,-5,5); \r
fList->Add(fHistDCA);\r
- fHistPt = new TH1F("fHistPt","p_{T} distribution",200,0,10);\r
+ fHistPt = new TH2F("fHistPt","p_{T} distribution;p_{T} (GeV/c);Centrality percentile",200,0,10,220,-5,105);\r
fList->Add(fHistPt);\r
- fHistEta = new TH1F("fHistEta","#eta distribution",200,-2,2);\r
+ fHistEta = new TH2F("fHistEta","#eta distribution;#eta;Centrality percentile",200,-2,2,220,-5,105);\r
fList->Add(fHistEta);\r
- fHistRapidity = new TH1F("fHistRapidity","y distribution",200,-2,2);\r
+ fHistRapidity = new TH2F("fHistRapidity","y distribution;y;Centrality percentile",200,-2,2,220,-5,105);\r
fList->Add(fHistRapidity);\r
- fHistPhi = new TH1F("fHistPhi","#phi distribution",200,-20,380);\r
+ fHistPhi = new TH2F("fHistPhi","#phi distribution;#phi;Centrality percentile",200,-20,380,220,-5,105);\r
fList->Add(fHistPhi);\r
- fHistPhiBefore = new TH1F("fHistPhiBefore","#phi distribution",200,0.,2*TMath::Pi());\r
+ fHistPhiBefore = new TH2F("fHistPhiBefore","#phi distribution;#phi;Centrality percentile",200,0.,2*TMath::Pi(),220,-5,105);\r
fList->Add(fHistPhiBefore);\r
- fHistPhiAfter = new TH1F("fHistPhiAfter","#phi distribution",200,0.,2*TMath::Pi());\r
+ fHistPhiAfter = new TH2F("fHistPhiAfter","#phi distribution;#phi;Centrality percentile",200,0.,2*TMath::Pi(),220,-5,105);\r
fList->Add(fHistPhiAfter);\r
- fHistPhiPos = new TH1F("fHistPhiPos","#phi distribution for positive particles",200,-20,380);\r
+ fHistPhiPos = new TH2F("fHistPhiPos","#phi distribution for positive particles;#phi;Centrality percentile",200,-20,380,220,-5,105);\r
fList->Add(fHistPhiPos);\r
- fHistPhiNeg = new TH1F("fHistPhiNeg","#phi distribution for negative particles",200,-20,380);\r
+ fHistPhiNeg = new TH2F("fHistPhiNeg","#phi distribution for negative particles;#phi;Centrality percentile",200,-20,380,220,-5,105);\r
fList->Add(fHistPhiNeg);\r
fHistV0M = new TH2F("fHistV0M","V0 Multiplicity C vs. A",500, 0, 20000, 500, 0, 20000);\r
fList->Add(fHistV0M);\r
fHistTriggerStats->Fill(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected());\r
\r
// event selection done in AliAnalysisTaskSE::Exec() --> this is not used\r
- fHistEventStats->Fill(1); //all events\r
+ fHistEventStats->Fill(1,fCentrality); //all events\r
Bool_t isSelected = kTRUE;\r
if(fUseOfflineTrigger)\r
isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();\r
if(isSelected) {\r
- fHistEventStats->Fill(2); //triggered events\r
+ fHistEventStats->Fill(2,fCentrality); //triggered events\r
\r
if(fUseCentrality) {\r
//Centrality stuff\r
if(vertex) {\r
if(vertex->GetNContributors() > 0) {\r
if(vertex->GetZRes() != 0) {\r
- fHistEventStats->Fill(3); //events with a proper vertex\r
+ fHistEventStats->Fill(3,fCentrality); //events with a proper vertex\r
if(TMath::Abs(vertex->GetXv()) < fVxMax) {\r
if(TMath::Abs(vertex->GetYv()) < fVyMax) {\r
if(TMath::Abs(vertex->GetZv()) < fVzMax) {\r
- fHistEventStats->Fill(4); //analayzed events\r
+ fHistEventStats->Fill(4,fCentrality); //analayzed events\r
fHistVx->Fill(vertex->GetXv());\r
fHistVy->Fill(vertex->GetYv());\r
- fHistVz->Fill(vertex->GetZv());\r
+ fHistVz->Fill(vertex->GetZv(),fCentrality);\r
\r
//========Get the VZERO event plane========//\r
Double_t gVZEROEventPlane = -10.0;\r
gVZEROEventPlane = ep->CalculateVZEROEventPlane(gESD,10,2,qxTot,qyTot);\r
if(gVZEROEventPlane < 0.) gVZEROEventPlane += TMath::Pi();\r
gReactionPlane = gVZEROEventPlane*TMath::RadToDeg();\r
- fHistEventPlane->Fill(gReactionPlane);\r
+ fHistEventPlane->Fill(gReactionPlane,fCentrality);\r
//========Get the VZERO event plane========//\r
\r
//Printf("There are %d tracks in this event", gESD->GetNumberOfTracks());\r
track_TPC->PxPyPz(v_p);\r
fHistClus->Fill(track_TPC->GetITSclusters(0),nClustersTPC);\r
fHistDCA->Fill(b[1],b[0]);\r
- fHistChi2->Fill(chi2PerClusterTPC);\r
- fHistPt->Fill(v_pt);\r
- fHistEta->Fill(v_eta);\r
- fHistPhi->Fill(v_phi);\r
- fHistRapidity->Fill(v_y);\r
- if(v_charge > 0) fHistPhiPos->Fill(v_phi);\r
- else if(v_charge < 0) fHistPhiNeg->Fill(v_phi);\r
+ fHistChi2->Fill(chi2PerClusterTPC,fCentrality);\r
+ fHistPt->Fill(v_pt,fCentrality);\r
+ fHistEta->Fill(v_eta,fCentrality);\r
+ fHistPhi->Fill(v_phi,fCentrality);\r
+ fHistRapidity->Fill(v_y,fCentrality);\r
+ if(v_charge > 0) fHistPhiPos->Fill(v_phi,fCentrality);\r
+ else if(v_charge < 0) fHistPhiNeg->Fill(v_phi,fCentrality);\r
\r
// fill charge vector\r
chargeVector[0]->push_back(v_charge);\r
fHistTriggerStats->Fill(aodHeader->GetOfflineTrigger());\r
\r
// event selection done in AliAnalysisTaskSE::Exec() --> this is not used\r
- fHistEventStats->Fill(1); //all events\r
+ fHistEventStats->Fill(1,fCentrality); //all events\r
Bool_t isSelected = kTRUE;\r
if(fUseOfflineTrigger)\r
isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();\r
if(isSelected) {\r
- fHistEventStats->Fill(2); //triggered events\r
+ fHistEventStats->Fill(2,fCentrality); //triggered events\r
\r
//Centrality stuff (centrality in AOD header)\r
if(fUseCentrality) {\r
\r
if(vertex->GetNContributors() > 0) {\r
if(fCov[5] != 0) {\r
- fHistEventStats->Fill(3); //events with a proper vertex\r
+ fHistEventStats->Fill(3,fCentrality); //events with a proper vertex\r
if(TMath::Abs(vertex->GetX()) < fVxMax) {\r
if(TMath::Abs(vertex->GetY()) < fVyMax) {\r
if(TMath::Abs(vertex->GetZ()) < fVzMax) {\r
- fHistEventStats->Fill(4); //analyzed events\r
+ fHistEventStats->Fill(4,fCentrality); //analyzed events\r
fHistVx->Fill(vertex->GetX());\r
fHistVy->Fill(vertex->GetY());\r
- fHistVz->Fill(vertex->GetZ());\r
+ fHistVz->Fill(vertex->GetZ(),fCentrality);\r
\r
//========Get the VZERO event plane========//\r
Double_t gVZEROEventPlane = -10.0;\r
// fill QA histograms\r
fHistClus->Fill(aodTrack->GetITSNcls(),aodTrack->GetTPCNcls());\r
fHistDCA->Fill(DCAz,DCAxy);\r
- fHistChi2->Fill(aodTrack->Chi2perNDF());\r
- fHistPt->Fill(v_pt);\r
- fHistEta->Fill(v_eta);\r
- fHistPhi->Fill(v_phi);\r
- fHistRapidity->Fill(v_y);\r
- if(v_charge > 0) fHistPhiPos->Fill(v_phi);\r
- else if(v_charge < 0) fHistPhiNeg->Fill(v_phi);\r
+ fHistChi2->Fill(aodTrack->Chi2perNDF(),fCentrality);\r
+ fHistPt->Fill(v_pt,fCentrality);\r
+ fHistEta->Fill(v_eta,fCentrality);\r
+ fHistPhi->Fill(v_phi,fCentrality);\r
+ fHistRapidity->Fill(v_y,fCentrality);\r
+ if(v_charge > 0) fHistPhiPos->Fill(v_phi,fCentrality);\r
+ else if(v_charge < 0) fHistPhiNeg->Fill(v_phi,fCentrality);\r
\r
// fill charge vector\r
chargeVector[0]->push_back(v_charge);\r
fHistTriggerStats->Fill(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected());\r
\r
// event selection done in AliAnalysisTaskSE::Exec() --> this is not used\r
- fHistEventStats->Fill(1); //all events\r
+ fHistEventStats->Fill(1,fCentrality); //all events\r
Bool_t isSelected = kTRUE;\r
if(fUseOfflineTrigger)\r
isSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();\r
if(isSelected) {\r
- fHistEventStats->Fill(2); //triggered events\r
+ fHistEventStats->Fill(2,fCentrality); //triggered events\r
\r
if(fUseCentrality) {\r
//Centrality stuff\r
if(vertex) {\r
if(vertex->GetNContributors() > 0) {\r
if(vertex->GetZRes() != 0) {\r
- fHistEventStats->Fill(3); //events with a proper vertex\r
+ fHistEventStats->Fill(3,fCentrality); //events with a proper vertex\r
if(TMath::Abs(vertex->GetXv()) < fVxMax) {\r
if(TMath::Abs(vertex->GetYv()) < fVyMax) {\r
if(TMath::Abs(vertex->GetZv()) < fVzMax) {\r
- fHistEventStats->Fill(4); //analayzed events\r
+ fHistEventStats->Fill(4,fCentrality); //analayzed events\r
fHistVx->Fill(vertex->GetXv());\r
fHistVy->Fill(vertex->GetYv());\r
- fHistVz->Fill(vertex->GetZv());\r
+ fHistVz->Fill(vertex->GetZv(),fCentrality);\r
\r
//========Get the VZERO event plane========//\r
Double_t gVZEROEventPlane = -10.0;\r
gVZEROEventPlane = ep->CalculateVZEROEventPlane(gESD,10,2,qxTot,qyTot);\r
if(gVZEROEventPlane < 0.) gVZEROEventPlane += TMath::Pi();\r
gReactionPlane = gVZEROEventPlane*TMath::RadToDeg();\r
- fHistEventPlane->Fill(gReactionPlane);\r
+ fHistEventPlane->Fill(gReactionPlane,fCentrality);\r
//========Get the VZERO event plane========//\r
\r
//Printf("There are %d tracks in this event", gESD->GetNumberOfTracks());\r
\r
fHistClus->Fill(track_TPC->GetITSclusters(0),nClustersTPC);\r
fHistDCA->Fill(b[1],b[0]);\r
- fHistChi2->Fill(chi2PerClusterTPC);\r
- fHistPt->Fill(v_pt);\r
- fHistEta->Fill(v_eta);\r
- fHistPhi->Fill(v_phi);\r
- fHistRapidity->Fill(v_y);\r
- if(v_charge > 0) fHistPhiPos->Fill(v_phi);\r
- else if(v_charge < 0) fHistPhiNeg->Fill(v_phi);\r
+ fHistChi2->Fill(chi2PerClusterTPC,fCentrality);\r
+ fHistPt->Fill(v_pt,fCentrality);\r
+ fHistEta->Fill(v_eta,fCentrality);\r
+ fHistPhi->Fill(v_phi,fCentrality);\r
+ fHistRapidity->Fill(v_y,fCentrality);\r
+ if(v_charge > 0) fHistPhiPos->Fill(v_phi,fCentrality);\r
+ else if(v_charge < 0) fHistPhiNeg->Fill(v_phi,fCentrality);\r
\r
// fill charge vector\r
chargeVector[0]->push_back(v_charge);\r
Printf("ERROR: mcEvent not available");\r
return;\r
}\r
- fHistEventStats->Fill(1); //total events\r
- fHistEventStats->Fill(2); //offline trigger\r
+ fHistEventStats->Fill(1,fCentrality); //total events\r
+ fHistEventStats->Fill(2,fCentrality); //offline trigger\r
\r
Double_t gImpactParameter = 0.;\r
if(fUseCentrality) {\r
fCentrality = gImpactParameter;\r
}\r
fCentrality = gImpactParameter;\r
- fHistEventPlane->Fill(gReactionPlane*TMath::RadToDeg());\r
+ fHistEventPlane->Fill(gReactionPlane*TMath::RadToDeg(),fCentrality);\r
\r
// take only events inside centrality class (DIDN'T CHANGE THIS UP TO NOW)\r
if((fImpactParameterMin > gImpactParameter) || (fImpactParameterMax < gImpactParameter))\r
//gVertexArray.At(0),\r
//gVertexArray.At(1),\r
//gVertexArray.At(2));\r
- fHistEventStats->Fill(3); //events with a proper vertex\r
+ fHistEventStats->Fill(3,fCentrality); //events with a proper vertex\r
if(TMath::Abs(gVertexArray.At(0)) < fVxMax) {\r
if(TMath::Abs(gVertexArray.At(1)) < fVyMax) {\r
if(TMath::Abs(gVertexArray.At(2)) < fVzMax) {\r
- fHistEventStats->Fill(4); //analayzed events\r
+ fHistEventStats->Fill(4,fCentrality); //analayzed events\r
fHistVx->Fill(gVertexArray.At(0));\r
fHistVy->Fill(gVertexArray.At(1));\r
- fHistVz->Fill(gVertexArray.At(2));\r
+ fHistVz->Fill(gVertexArray.At(2),fCentrality);\r
\r
Printf("There are %d tracks in this event", mcEvent->GetNumberOfPrimaries());\r
for (Int_t iTracks = 0; iTracks < mcEvent->GetNumberOfPrimaries(); iTracks++) {\r
track->PxPyPz(v_p);\r
//Printf("phi (before): %lf",v_phi);\r
\r
- fHistPt->Fill(v_pt);\r
- fHistEta->Fill(v_eta);\r
- fHistPhi->Fill(v_phi*TMath::RadToDeg());\r
- fHistRapidity->Fill(v_y);\r
- if(v_charge > 0) fHistPhiPos->Fill(v_phi*TMath::RadToDeg());\r
- else if(v_charge < 0) fHistPhiNeg->Fill(v_phi*TMath::RadToDeg());\r
+ fHistPt->Fill(v_pt,fCentrality);\r
+ fHistEta->Fill(v_eta,fCentrality);\r
+ fHistPhi->Fill(v_phi*TMath::RadToDeg(),fCentrality);\r
+ fHistRapidity->Fill(v_y,fCentrality);\r
+ if(v_charge > 0) fHistPhiPos->Fill(v_phi*TMath::RadToDeg(),fCentrality);\r
+ else if(v_charge < 0) fHistPhiNeg->Fill(v_phi*TMath::RadToDeg(),fCentrality);\r
\r
//Flow after burner\r
if(fUseFlowAfterBurner) {\r
//Printf("phi (after): %lf\n",v_phi);\r
Double_t v_DeltaphiBefore = phi0 - gReactionPlane;\r
if(v_DeltaphiBefore < 0) v_DeltaphiBefore += 2*TMath::Pi();\r
- fHistPhiBefore->Fill(v_DeltaphiBefore);\r
+ fHistPhiBefore->Fill(v_DeltaphiBefore,fCentrality);\r
\r
Double_t v_DeltaphiAfter = v_phi - gReactionPlane;\r
if(v_DeltaphiAfter < 0) v_DeltaphiAfter += 2*TMath::Pi();\r
- fHistPhiAfter->Fill(v_DeltaphiAfter);\r
+ fHistPhiAfter->Fill(v_DeltaphiAfter,fCentrality);\r
}\r
\r
v_phi *= TMath::RadToDeg();\r
if((gNumberOfAcceptedTracks < fNumberOfAcceptedTracksMin)||(gNumberOfAcceptedTracks > fNumberOfAcceptedTracksMax))\r
return;\r
}\r
- fHistNumberOfAcceptedTracks->Fill(gNumberOfAcceptedTracks);\r
+ fHistNumberOfAcceptedTracks->Fill(gNumberOfAcceptedTracks,fCentrality);\r
\r
// calculate balance function\r
if(fUseMultiplicity) \r