From f0b884e5b907767470080af3887b260a1bb1dbe9 Mon Sep 17 00:00:00 2001 From: fuchuncui <162277233+fuchuncui@users.noreply.github.com> Date: Wed, 30 Jul 2025 19:32:52 +0800 Subject: [PATCH 1/2] [PWGCF] fix a bug about cascades competing mass rejection --- PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx | 58 ++++++++++++----------------- 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx b/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx index fd0a6e5b27a..b285598efa3 100644 --- a/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx +++ b/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx @@ -1205,27 +1205,12 @@ struct FlowGfwOmegaXi { ((std::fabs(itsResponse.nSigmaITS(bachelor)) < cfgNSigma[8]) || bachelor.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(posdau)) < cfgNSigma[7]) || posdau.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(negdau)) < cfgNSigma[6]) || negdau.pt() < lowpt)) { registry.fill(HIST("InvMassOmega_all"), casc.pt(), casc.mOmega(), casc.eta(), cent); isOmega = true; - - setCurrentParticleWeights(weff, wacc, bachelor, vtxz, 0); - fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc * weff * wloc, 4096); - setCurrentParticleWeights(weff, wacc, posdau, vtxz, 0); - fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc * weff * wloc, 4096); - setCurrentParticleWeights(weff, wacc, negdau, vtxz, 0); - fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc * weff * wloc, 4096); - } else if (casc.sign() > 0 && std::fabs(casc.yOmega()) < cfgCasc_rapidity && (std::fabs(bachelor.tpcNSigmaKa()) < cfgNSigma[2] && std::fabs(negdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(posdau.tpcNSigmaPi()) < cfgNSigma[0]) && ((std::fabs(bachelor.tofNSigmaKa()) < cfgNSigma[5] || bachelor.pt() < lowpt) && (std::fabs(negdau.tofNSigmaPr()) < cfgNSigma[4] || negdau.pt() < lowpt) && (std::fabs(posdau.tofNSigmaPi()) < cfgNSigma[3] || posdau.pt() < lowpt)) && ((std::fabs(itsResponse.nSigmaITS(bachelor)) < cfgNSigma[8]) || bachelor.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(posdau)) < cfgNSigma[7]) || posdau.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(negdau)) < cfgNSigma[6]) || negdau.pt() < lowpt)) { registry.fill(HIST("InvMassOmega_all"), casc.pt(), casc.mOmega(), casc.eta(), cent); isOmega = true; - - setCurrentParticleWeights(weff, wacc, bachelor, vtxz, 0); - fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc * weff * wloc, 4096); - setCurrentParticleWeights(weff, wacc, posdau, vtxz, 0); - fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc * weff * wloc, 4096); - setCurrentParticleWeights(weff, wacc, negdau, vtxz, 0); - fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc * weff * wloc, 4096); } } // Xi and antiXi @@ -1236,27 +1221,12 @@ struct FlowGfwOmegaXi { ((std::fabs(itsResponse.nSigmaITS(bachelor)) < cfgNSigma[6]) || bachelor.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(posdau)) < cfgNSigma[7]) || posdau.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(negdau)) < cfgNSigma[6]) || negdau.pt() < lowpt)) { registry.fill(HIST("InvMassXi_all"), casc.pt(), casc.mXi(), casc.eta(), cent); isXi = true; - - setCurrentParticleWeights(weff, wacc, bachelor, vtxz, 0); - fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc * weff * wloc, 2048); - setCurrentParticleWeights(weff, wacc, posdau, vtxz, 0); - fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc * weff * wloc, 2048); - setCurrentParticleWeights(weff, wacc, negdau, vtxz, 0); - fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc * weff * wloc, 2048); - } else if (casc.sign() > 0 && std::fabs(casc.yXi()) < cfgCasc_rapidity && (std::fabs(bachelor.tpcNSigmaPi()) < cfgNSigma[0] && std::fabs(negdau.tpcNSigmaPr()) < cfgNSigma[1] && std::fabs(posdau.tpcNSigmaPi()) < cfgNSigma[0]) && ((std::fabs(bachelor.tofNSigmaPi()) < cfgNSigma[3] || bachelor.pt() < lowpt) && (std::fabs(negdau.tofNSigmaPr()) < cfgNSigma[4] || negdau.pt() < lowpt) && (std::fabs(posdau.tofNSigmaPi()) < cfgNSigma[3] || posdau.pt() < lowpt)) && ((std::fabs(itsResponse.nSigmaITS(bachelor)) < cfgNSigma[6]) || bachelor.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(posdau)) < cfgNSigma[7]) || posdau.pt() < lowpt) && ((std::fabs(itsResponse.nSigmaITS(negdau)) < cfgNSigma[6]) || negdau.pt() < lowpt)) { registry.fill(HIST("InvMassXi_all"), casc.pt(), casc.mXi(), casc.eta(), cent); isXi = true; - - setCurrentParticleWeights(weff, wacc, bachelor, vtxz, 0); - fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc * weff * wloc, 2048); - setCurrentParticleWeights(weff, wacc, posdau, vtxz, 0); - fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc * weff * wloc, 2048); - setCurrentParticleWeights(weff, wacc, negdau, vtxz, 0); - fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc * weff * wloc, 2048); } } // fill QA @@ -1315,10 +1285,10 @@ struct FlowGfwOmegaXi { if (!negdau.hasTPC() || !negdau.hasITS()) continue; } - if (isXi && (casc.mOmega() - o2::constants::physics::MassOmegaMinus) < cascBuilderOpts.cfgcasc_compmassrej.value) { + if (isXi && std::fabs(casc.mOmega() - o2::constants::physics::MassOmegaMinus) < cascBuilderOpts.cfgcasc_compmassrej.value) { isXi = false; } - if (isOmega && (casc.mXi() - o2::constants::physics::MassXiMinus) < cascBuilderOpts.cfgcasc_compmassrej.value) { + if (isOmega && std::fabs(casc.mXi() - o2::constants::physics::MassXiMinus) < cascBuilderOpts.cfgcasc_compmassrej.value) { isXi = false; } // fill QA @@ -1331,9 +1301,19 @@ struct FlowGfwOmegaXi { registry.fill(HIST("QAhisto/Casc/hqadcaCascV0dauafter"), casc.dcaV0daughters()); } + float weff_bac = 1; + float weff_pos = 1; + float weff_neg = 1; + float wacc_bac = 1; + float wacc_pos = 1; + float wacc_neg = 1; if (isOmega) { - if (cfgDoAccEffCorr) + if (cfgDoAccEffCorr) { setCurrentParticleWeights(weff, wacc, casc, vtxz, 4); + setCurrentParticleWeights(weff_bac, wacc_bac, bachelor, vtxz, 0); + setCurrentParticleWeights(weff_pos, wacc_pos, posdau, vtxz, 0); + setCurrentParticleWeights(weff_neg, wacc_neg, negdau, vtxz, 0); + } if (cfgDoLocDenCorr) { int phibin = -999; phibin = hLocalDensity->FindBin(RecoDecay::constrainAngle(casc.phi(), -constants::math::PI)); @@ -1345,13 +1325,20 @@ struct FlowGfwOmegaXi { registry.fill(HIST("hEtaPhiVtxzPOIOmega"), casc.phi(), casc.eta(), vtxz, wacc); registry.fill(HIST("InvMassOmega"), casc.pt(), casc.mOmega(), casc.eta(), cent); fGFW->Fill(casc.eta(), fOmegaPtAxis->FindBin(casc.pt()) - 1 + ((fOmegaMass->FindBin(casc.mOmega()) - 1) * nOmegaPtBins), casc.phi(), wacc * weff * wloc, 4); + fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc_bac * weff_bac * wloc, 4096); + fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc_pos * weff_pos * wloc, 4096); + fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc_neg * weff_neg * wloc, 4096); if (cfgOutputNUAWeights) fWeightsOmega->fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0); } if (isXi) { - if (cfgDoAccEffCorr) + if (cfgDoAccEffCorr) { setCurrentParticleWeights(weff, wacc, casc, vtxz, 3); + setCurrentParticleWeights(weff_bac, wacc_bac, bachelor, vtxz, 0); + setCurrentParticleWeights(weff_pos, wacc_pos, posdau, vtxz, 0); + setCurrentParticleWeights(weff_neg, wacc_neg, negdau, vtxz, 0); + } if (cfgDoLocDenCorr) { int phibin = -999; phibin = hLocalDensity->FindBin(RecoDecay::constrainAngle(casc.phi(), -constants::math::PI)); @@ -1363,6 +1350,9 @@ struct FlowGfwOmegaXi { registry.fill(HIST("hEtaPhiVtxzPOIXi"), casc.phi(), casc.eta(), vtxz, wacc); registry.fill(HIST("InvMassXi"), casc.pt(), casc.mXi(), casc.eta(), cent); fGFW->Fill(casc.eta(), fXiPtAxis->FindBin(casc.pt()) - 1 + ((fXiMass->FindBin(casc.mXi()) - 1) * nXiPtBins), casc.phi(), wacc * weff * wloc, 2); + fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc_bac * weff_bac * wloc, 2048); + fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc_pos * weff_pos * wloc, 2048); + fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc_neg * weff_neg * wloc, 2048); if (cfgOutputNUAWeights) fWeightsXi->fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0); From 2c685248a34f7e705981cc86f807b3ef9fab06b4 Mon Sep 17 00:00:00 2001 From: fuchuncui <162277233+fuchuncui@users.noreply.github.com> Date: Wed, 30 Jul 2025 19:35:58 +0800 Subject: [PATCH 2/2] Add files via upload --- PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx | 36 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx b/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx index b285598efa3..bf001b02df2 100644 --- a/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx +++ b/PWGCF/Flow/Tasks/flowGfwOmegaXi.cxx @@ -1301,18 +1301,18 @@ struct FlowGfwOmegaXi { registry.fill(HIST("QAhisto/Casc/hqadcaCascV0dauafter"), casc.dcaV0daughters()); } - float weff_bac = 1; - float weff_pos = 1; - float weff_neg = 1; - float wacc_bac = 1; - float wacc_pos = 1; - float wacc_neg = 1; + float weffBac = 1; + float weffPos = 1; + float weffNeg = 1; + float waccBac = 1; + float waccPos = 1; + float waccNeg = 1; if (isOmega) { if (cfgDoAccEffCorr) { setCurrentParticleWeights(weff, wacc, casc, vtxz, 4); - setCurrentParticleWeights(weff_bac, wacc_bac, bachelor, vtxz, 0); - setCurrentParticleWeights(weff_pos, wacc_pos, posdau, vtxz, 0); - setCurrentParticleWeights(weff_neg, wacc_neg, negdau, vtxz, 0); + setCurrentParticleWeights(weffBac, waccBac, bachelor, vtxz, 0); + setCurrentParticleWeights(weffPos, waccPos, posdau, vtxz, 0); + setCurrentParticleWeights(weffNeg, waccNeg, negdau, vtxz, 0); } if (cfgDoLocDenCorr) { int phibin = -999; @@ -1325,9 +1325,9 @@ struct FlowGfwOmegaXi { registry.fill(HIST("hEtaPhiVtxzPOIOmega"), casc.phi(), casc.eta(), vtxz, wacc); registry.fill(HIST("InvMassOmega"), casc.pt(), casc.mOmega(), casc.eta(), cent); fGFW->Fill(casc.eta(), fOmegaPtAxis->FindBin(casc.pt()) - 1 + ((fOmegaMass->FindBin(casc.mOmega()) - 1) * nOmegaPtBins), casc.phi(), wacc * weff * wloc, 4); - fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc_bac * weff_bac * wloc, 4096); - fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc_pos * weff_pos * wloc, 4096); - fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc_neg * weff_neg * wloc, 4096); + fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), waccBac * weffBac * wloc, 4096); + fGFW->Fill(posdau.eta(), 1, posdau.phi(), waccPos * weffPos * wloc, 4096); + fGFW->Fill(negdau.eta(), 1, negdau.phi(), waccNeg * weffNeg * wloc, 4096); if (cfgOutputNUAWeights) fWeightsOmega->fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0); @@ -1335,9 +1335,9 @@ struct FlowGfwOmegaXi { if (isXi) { if (cfgDoAccEffCorr) { setCurrentParticleWeights(weff, wacc, casc, vtxz, 3); - setCurrentParticleWeights(weff_bac, wacc_bac, bachelor, vtxz, 0); - setCurrentParticleWeights(weff_pos, wacc_pos, posdau, vtxz, 0); - setCurrentParticleWeights(weff_neg, wacc_neg, negdau, vtxz, 0); + setCurrentParticleWeights(weffBac, waccBac, bachelor, vtxz, 0); + setCurrentParticleWeights(weffPos, waccPos, posdau, vtxz, 0); + setCurrentParticleWeights(weffNeg, waccNeg, negdau, vtxz, 0); } if (cfgDoLocDenCorr) { int phibin = -999; @@ -1350,9 +1350,9 @@ struct FlowGfwOmegaXi { registry.fill(HIST("hEtaPhiVtxzPOIXi"), casc.phi(), casc.eta(), vtxz, wacc); registry.fill(HIST("InvMassXi"), casc.pt(), casc.mXi(), casc.eta(), cent); fGFW->Fill(casc.eta(), fXiPtAxis->FindBin(casc.pt()) - 1 + ((fXiMass->FindBin(casc.mXi()) - 1) * nXiPtBins), casc.phi(), wacc * weff * wloc, 2); - fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), wacc_bac * weff_bac * wloc, 2048); - fGFW->Fill(posdau.eta(), 1, posdau.phi(), wacc_pos * weff_pos * wloc, 2048); - fGFW->Fill(negdau.eta(), 1, negdau.phi(), wacc_neg * weff_neg * wloc, 2048); + fGFW->Fill(bachelor.eta(), 1, bachelor.phi(), waccBac * weffBac * wloc, 2048); + fGFW->Fill(posdau.eta(), 1, posdau.phi(), waccPos * weffPos * wloc, 2048); + fGFW->Fill(negdau.eta(), 1, negdau.phi(), waccNeg * weffNeg * wloc, 2048); if (cfgOutputNUAWeights) fWeightsXi->fill(casc.phi(), casc.eta(), vtxz, casc.pt(), cent, 0);