From 143a118a12378c650adbeeaf853561dba94a1bd2 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 26 Aug 2025 09:19:09 +0000 Subject: [PATCH] Please consider the following formatting changes --- PWGCF/Flow/TableProducer/zdcQVectors.cxx | 2 +- PWGCF/Flow/Tasks/flowSP.cxx | 131 ++++++++++++----------- 2 files changed, 69 insertions(+), 64 deletions(-) diff --git a/PWGCF/Flow/TableProducer/zdcQVectors.cxx b/PWGCF/Flow/TableProducer/zdcQVectors.cxx index c1c66093a9d..bf6dc06422c 100644 --- a/PWGCF/Flow/TableProducer/zdcQVectors.cxx +++ b/PWGCF/Flow/TableProducer/zdcQVectors.cxx @@ -220,7 +220,7 @@ struct ZdcQVectors { registry.add(Form("QA/before/hQ%s%s_vs_vx", coord, side), Form("hQ%s%s_vs_vx", coord, side), {HistType::kTProfile, {axisVx}}); registry.add(Form("QA/before/hQ%s%s_vs_vy", coord, side), Form("hQ%s%s_vs_vy", coord, side), {HistType::kTProfile, {axisVy}}); registry.add(Form("QA/before/hQ%s%s_vs_vz", coord, side), Form("hQ%s%s_vs_vz", coord, side), {HistType::kTProfile, {axisVz}}); - registry.add(Form("QA/Q%s%s_vs_iteration", coord, side), Form("hQ%s%s_vs_iteration", coord, side), {HistType::kTH2D, {{25,0,25}, axisQ}}); + registry.add(Form("QA/Q%s%s_vs_iteration", coord, side), Form("hQ%s%s_vs_iteration", coord, side), {HistType::kTH2D, {{25, 0, 25}, axisQ}}); names[0].push_back(TString::Format("hQ%s%s_mean_Cent_V_run", coord, side)); names[1].push_back(TString::Format("hQ%s%s_mean_cent_run", coord, side)); diff --git a/PWGCF/Flow/Tasks/flowSP.cxx b/PWGCF/Flow/Tasks/flowSP.cxx index 7825adb450f..9c29f63c75d 100644 --- a/PWGCF/Flow/Tasks/flowSP.cxx +++ b/PWGCF/Flow/Tasks/flowSP.cxx @@ -136,7 +136,7 @@ struct FlowSP { using ZDCCollisions = soa::Filtered>; // For MC Reco and Gen - using CCs = soa::Filtered>; //without SPTableZDC + using CCs = soa::Filtered>; // without SPTableZDC using CC = CCs::iterator; using TCs = soa::Join; using FilteredTCs = soa::Filtered; @@ -179,7 +179,6 @@ struct FlowSP { HistogramRegistry registry{"registry"}; HistogramRegistry histos{"histos", {}, OutputObjHandlingPolicy::QAObject}; - // Event selection cuts TF1* fPhiCutLow = nullptr; TF1* fPhiCutHigh = nullptr; @@ -340,22 +339,22 @@ struct FlowSP { histos.add("QA/after/CentFT0C_vs_CentFV0A", " ; Cent FT0C (%); Cent FV0A (%) ", {HistType::kTH2D, {axisCent, axisCent}}); histos.add("QA/after/CentFT0C_vs_CentNGlobal", " ; Cent FT0C (%); Cent NGlobal (%) ", {HistType::kTH2D, {axisCent, axisCent}}); - if(cfgFillEventPlaneQA && doprocessData){ - histos.add("QA/after/PsiA_vs_Cent", "", {HistType::kTH2D, {axisPhiPlane, axisCent}}); - histos.add("QA/after/PsiC_vs_Cent", "", {HistType::kTH2D, {axisPhiPlane, axisCent}}); - histos.add("QA/after/PsiFull_vs_Cent", "", {HistType::kTH2D, {axisPhiPlane, axisCent}}); - histos.add("QA/after/PsiA_vs_Vx", "", {HistType::kTH2D, {axisPhiPlane, axisVx}}); - histos.add("QA/after/PsiC_vs_Vx", "", {HistType::kTH2D, {axisPhiPlane, axisVx}}); - histos.add("QA/after/PsiFull_vs_Vx", "", {HistType::kTH2D, {axisPhiPlane, axisVx}}); - histos.add("QA/after/PsiA_vs_Vy", "", {HistType::kTH2D, {axisPhiPlane, axisVy}}); - histos.add("QA/after/PsiC_vs_Vy", "", {HistType::kTH2D, {axisPhiPlane, axisVy}}); - histos.add("QA/after/PsiFull_vs_Vy", "", {HistType::kTH2D, {axisPhiPlane, axisVy}}); - histos.add("QA/after/PsiA_vs_Vz", "", {HistType::kTH2D, {axisPhiPlane, axisVz}}); - histos.add("QA/after/PsiC_vs_Vz", "", {HistType::kTH2D, {axisPhiPlane, axisVz}}); - histos.add("QA/after/PsiFull_vs_Vz", "", {HistType::kTH2D, {axisPhiPlane, axisVz}}); + if (cfgFillEventPlaneQA && doprocessData) { + histos.add("QA/after/PsiA_vs_Cent", "", {HistType::kTH2D, {axisPhiPlane, axisCent}}); + histos.add("QA/after/PsiC_vs_Cent", "", {HistType::kTH2D, {axisPhiPlane, axisCent}}); + histos.add("QA/after/PsiFull_vs_Cent", "", {HistType::kTH2D, {axisPhiPlane, axisCent}}); + histos.add("QA/after/PsiA_vs_Vx", "", {HistType::kTH2D, {axisPhiPlane, axisVx}}); + histos.add("QA/after/PsiC_vs_Vx", "", {HistType::kTH2D, {axisPhiPlane, axisVx}}); + histos.add("QA/after/PsiFull_vs_Vx", "", {HistType::kTH2D, {axisPhiPlane, axisVx}}); + histos.add("QA/after/PsiA_vs_Vy", "", {HistType::kTH2D, {axisPhiPlane, axisVy}}); + histos.add("QA/after/PsiC_vs_Vy", "", {HistType::kTH2D, {axisPhiPlane, axisVy}}); + histos.add("QA/after/PsiFull_vs_Vy", "", {HistType::kTH2D, {axisPhiPlane, axisVy}}); + histos.add("QA/after/PsiA_vs_Vz", "", {HistType::kTH2D, {axisPhiPlane, axisVz}}); + histos.add("QA/after/PsiC_vs_Vz", "", {HistType::kTH2D, {axisPhiPlane, axisVz}}); + histos.add("QA/after/PsiFull_vs_Vz", "", {HistType::kTH2D, {axisPhiPlane, axisVz}}); } - if (cfgFillQABefore){ + if (cfgFillQABefore) { histos.addClone("QA/after/", "QA/before/"); } } @@ -371,7 +370,7 @@ struct FlowSP { histos.add("incl/QA/after/hSharedClusters_pt", "", {HistType::kTH2D, {axisPt, axisShCl}}); histos.add("incl/QA/after/hCrossedRows_pt", "", {HistType::kTH2D, {axisPt, axisCl}}); histos.add("incl/QA/after/hCrossedRows_vs_SharedClusters", "", {HistType::kTH2D, {axisCl, axisShCl}}); - + if (cfgTrackSelDoTrackQAvsCent) { histos.add("incl/QA/after/hPt_Eta", "", kTH3D, {axisPt, axisEta, axisCent}); histos.add("incl/QA/after/hPt_Eta_uncorrected", "", kTH3D, {axisPt, axisEta, axisCent}); @@ -380,7 +379,6 @@ struct FlowSP { } else { histos.add("incl/QA/after/hPhi_Eta_Pt", "", kTH3D, {axisPhi, axisEta, axisPt}); histos.add("incl/QA/after/hPhi_Eta_Pt_corrected", "", kTH3D, {axisPhi, axisEta, axisPt}); - } if (cfgFillQABefore) @@ -388,7 +386,7 @@ struct FlowSP { } if (cfgFillPIDQA) { - histos.add("hPIDcounts", "", kTH2D, {{{4, 0, 4}, axisPt}}); + histos.add("hPIDcounts", "", kTH2D, {{{4, 0, 4}, axisPt}}); histos.get(HIST("hPIDcounts"))->GetXaxis()->SetBinLabel(1, "UFO"); histos.get(HIST("hPIDcounts"))->GetXaxis()->SetBinLabel(2, "Pion"); histos.get(HIST("hPIDcounts"))->GetXaxis()->SetBinLabel(3, "Kaon"); @@ -398,10 +396,10 @@ struct FlowSP { histos.add("incl/QA/after/hBetaTOF_pt", "", {HistType::kTH2D, {axisPt, axisBeta}}); histos.add("incl/QA/before/hdEdxTPC_pt", "", {HistType::kTH2D, {axisPt, axisdEdx}}); histos.add("incl/QA/before/hBetaTOF_pt", "", {HistType::kTH2D, {axisPt, axisBeta}}); - + histos.add("incl/pion/QA/after/hNsigmaTPC_pt", "", {HistType::kTH2D, {axisPt, axisNsigma}}); histos.add("incl/pion/QA/after/hNsigmaTOF_pt", "", {HistType::kTH2D, {axisPt, axisNsigma}}); - + histos.add("incl/pion/QA/after/hPhi_Eta_vz", "", kTH3D, {axisPhi, axisEta, axisVz}); histos.add("incl/pion/QA/after/hPhi_Eta_vz_corrected", "", kTH3D, {axisPhi, axisEta, axisVz}); histos.add("incl/pion/QA/after/hPhi_Eta_Pt", "", kTH3D, {axisPhi, axisEta, axisPt}); @@ -412,7 +410,7 @@ struct FlowSP { histos.add("incl/pion/QA/after/hCrossedRows_pt", "", {HistType::kTH2D, {axisPt, axisCl}}); histos.add("incl/pion/QA/after/hCrossedRows_vs_SharedClusters", "", {HistType::kTH2D, {axisCl, axisShCl}}); - if (cfgFillQABefore){ + if (cfgFillQABefore) { histos.addClone("incl/pion/QA/after/", "incl/pion/QA/before/"); } @@ -442,7 +440,7 @@ struct FlowSP { registry.add("QQCorrelations/qAXqCY", "", kTProfile, {axisCent}); registry.add("QQCorrelations/qAYqCX", "", kTProfile, {axisCent}); registry.add("QQCorrelations/qAXYqCXY", "", kTProfile, {axisCent}); - + if (cfgFillGeneralV1Histos) { // track properties per centrality and per eta, pt bin registry.add("incl/vnC_eta", "", kTProfile2D, {axisEtaVn, axisCentrality}); @@ -557,7 +555,7 @@ struct FlowSP { registry.addClone("incl/", "pos/"); registry.addClone("incl/", "neg/"); } - if (cfgFillPIDQA){ + if (cfgFillPIDQA) { histos.addClone("incl/", "pos/"); histos.addClone("incl/", "neg/"); } @@ -1032,7 +1030,7 @@ struct FlowSP { registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("vnCy_pt"), track.pt(), centrality, (uy * qyC) / std::sqrt(std::fabs(corrQQy)), weight); } - if (cfgFillEventPlane && pt==0) { //only fill for inclusive! + if (cfgFillEventPlane && pt == 0) { // only fill for inclusive! registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("vnA_eta_EP"), track.eta(), centrality, vnA, weight); registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("vnC_eta_EP"), track.eta(), centrality, vnC, weight); registry.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("vnFull_eta_EP"), track.eta(), centrality, vnFull, weight); @@ -1111,7 +1109,6 @@ struct FlowSP { histos.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("QA/") + HIST(Time[ft]) + HIST("hPt_Eta_uncorrected"), track.pt(), track.eta(), centrality); histos.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("QA/") + HIST(Time[ft]) + HIST("hPhi_Eta"), track.phi(), track.eta(), centrality, wacc * weff); histos.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("QA/") + HIST(Time[ft]) + HIST("hPhi_Eta_uncorrected"), track.phi(), track.eta(), centrality); - histos.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("QA/") + HIST(Time[ft]) + HIST("hPhi_Eta_vz"), track.phi(), track.eta(), vz); histos.fill(HIST(Charge[ct]) + HIST(Species[pt]) + HIST("QA/") + HIST(Time[ft]) + HIST("hPhi_Eta_vz_corrected"), track.phi(), track.eta(), vz, wacc); @@ -1231,7 +1228,8 @@ struct FlowSP { LOGF(info, "Size of mAcceptance: %i (should be 0)", (int)cfg.mAcceptance.size()); } - if (cfgFillQABefore) fillEventQA(collision, tracks); + if (cfgFillQABefore) + fillEventQA(collision, tracks); loadCorrections(bc.timestamp()); @@ -1265,7 +1263,7 @@ struct FlowSP { // https://twiki.cern.ch/twiki/pub/ALICE/DirectedFlowAnalysisNote/vn_ZDC_ALICE_INT_NOTE_version02.pdf double psiFull = 1.0 * std::atan2(qyA + qyC, qxA + qxC); - // always fill these histograms! + // always fill these histograms! registry.fill(HIST("QQCorrelations/qAqCXY"), centrality, qxA * qxC + qyA * qyC); registry.fill(HIST("QQCorrelations/qAXqCY"), centrality, qxA * qyC); registry.fill(HIST("QQCorrelations/qAYqCX"), centrality, qyA * qxC); @@ -1375,7 +1373,7 @@ struct FlowSP { auto phi = RecoDecay::constrainAngle(track.phi(), 0); // Fill NUA weights (last 0 is for Data see GFWWeights class (not a weight)) - // ToDo: Add pi, ka, proton here! + // ToDo: Add pi, ka, proton here! if (cfgFillWeights) { fWeights->fill(phi, track.eta(), vtxz, track.pt(), centrality, 0); registry.fill(HIST("weights2D/hPhi_Eta_vz"), phi, track.eta(), vtxz, 1); @@ -1431,22 +1429,27 @@ struct FlowSP { fillHistograms(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - - // NOTE: these are not the right wacc and weff!! Need to do for each particle species! This is just to test for now. - if(cfgFillPID){ - if(trackPID== kPions){ + // NOTE: these are not the right wacc and weff!! Need to do for each particle species! This is just to test for now. + if (cfgFillPID) { + if (trackPID == kPions) { fillHistograms(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - if (pos) fillHistograms(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - else fillHistograms(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - } else if(trackPID== kKaons){ - fillHistograms(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - if (pos) fillHistograms(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - else fillHistograms(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - } else if (trackPID==kProtons){ - fillHistograms(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - if (pos) fillHistograms(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - else fillHistograms(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); - } + if (pos) + fillHistograms(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + else + fillHistograms(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + } else if (trackPID == kKaons) { + fillHistograms(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + if (pos) + fillHistograms(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + else + fillHistograms(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + } else if (trackPID == kProtons) { + fillHistograms(track, wacc, weff, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + if (pos) + fillHistograms(track, waccP, weffP, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + else + fillHistograms(track, waccN, weffN, centWeight, ux, uy, uxMH, uyMH, uxMH2, uyMH2, qxA, qyA, qxC, qyC, corrQQx, corrQQy, corrQQ, vnA, vnC, vnFull, centrality); + } } if (cfgFillChargeDependence) { @@ -1479,7 +1482,8 @@ struct FlowSP { if (cfgCentNGlobal) centrality = collision.centNGlobal(); - if (cfgFillQABefore) fillEventQA(collision, filteredTracks); + if (cfgFillQABefore) + fillEventQA(collision, filteredTracks); if (!eventSelected(collision, filteredTracks.size())) return; @@ -1506,26 +1510,26 @@ struct FlowSP { histos.fill(HIST("hTrackCount"), trackSel_ZeroCharge); fillMCPtHistos(track, mcParticle.pdgCode(), centrality); - bool pos = (track.sign() > 0) ? true : false; + bool pos = (track.sign() > 0) ? true : false; - fillPrimaryHistos(mcParticle, centrality); + fillPrimaryHistos(mcParticle, centrality); - // This neglects PID (for now) later use getPID like in data. + // This neglects PID (for now) later use getPID like in data. if (cfgFillQABefore) { - switch (std::abs(mcParticle.pdgCode())) { - case kPions: - fillAllQA(track, vtxz, centrality, pos); - break; - case kKaons: - fillAllQA(track, vtxz, centrality, pos); - break; - case kProtons: - fillAllQA(track, vtxz, centrality, pos); - break; - default: - fillAllQA(track, vtxz, centrality, pos); - } + switch (std::abs(mcParticle.pdgCode())) { + case kPions: + fillAllQA(track, vtxz, centrality, pos); + break; + case kKaons: + fillAllQA(track, vtxz, centrality, pos); + break; + case kProtons: + fillAllQA(track, vtxz, centrality, pos); + break; + default: + fillAllQA(track, vtxz, centrality, pos); } + } if (!trackSelected(track, field)) continue; @@ -1533,7 +1537,7 @@ struct FlowSP { fillMCPtHistos(track, mcParticle.pdgCode(), centrality); fillTrackQA(track, vtxz); - fillPrimaryHistos(mcParticle, centrality); + fillPrimaryHistos(mcParticle, centrality); } // end of track loop } @@ -1572,7 +1576,8 @@ struct FlowSP { if (cfgCentNGlobal) centrality = col.centNGlobal(); - if(cfgFillQABefore) fillEventQA(col, filteredTrackSlice); + if (cfgFillQABefore) + fillEventQA(col, filteredTrackSlice); if (trackSlice.size() < 1) { colSelected = false;