From 20e4eaf5b8375ba639e08622f03e6efd8f6ccd86 Mon Sep 17 00:00:00 2001 From: Sasha Bylinkin <37345380+abylinkin@users.noreply.github.com> Date: Wed, 17 Apr 2024 13:14:14 +0200 Subject: [PATCH] Add files via upload --- PWGUD/Core/SGSelector.h | 110 ++++++++++++---------------------------- 1 file changed, 32 insertions(+), 78 deletions(-) diff --git a/PWGUD/Core/SGSelector.h b/PWGUD/Core/SGSelector.h index 7bba2245b3a..a559c58a869 100644 --- a/PWGUD/Core/SGSelector.h +++ b/PWGUD/Core/SGSelector.h @@ -50,10 +50,13 @@ class SGSelector return result; } auto newbc = oldbc; - auto newznabc = oldbc; - auto newzncbc = oldbc; + auto newdgabc = oldbc; + auto newdgcbc = oldbc; + float tempampa = 0; + float tempampc = 0; + float ampc = 0; + float ampa = 0; bool gA = true, gC = true; - bool gzA = true, gzC = true; for (auto const& bc : bcRange) { if (!udhelpers::cleanFITA(bc, diffCuts.maxFITtime(), diffCuts.FITAmpLimits())) { if (gA) @@ -74,77 +77,27 @@ class SGSelector result.value = 3; return result; } - for (auto const& bc : bcRange) { - if (bc.has_zdc()) { - auto zdc = bc.zdc(); - if (std::abs(static_cast(zdc.timeZNA())) < 2 && zdc.energyCommonZNA() > 0) { - if (gzA) { - newznabc = bc; - } - if (!gzA && std::abs(static_cast(bc.globalBC() - oldbc.globalBC())) < std::abs(static_cast(newznabc.globalBC() - oldbc.globalBC()))) { - newznabc = bc; - } - gzA = false; - } - if (std::abs(static_cast(zdc.timeZNC())) < 2 && zdc.energyCommonZNC() > 0) { - if (gzC) { - newzncbc = bc; - } - if (!gzC && std::abs(static_cast(bc.globalBC() - oldbc.globalBC())) < std::abs(static_cast(newzncbc.globalBC() - oldbc.globalBC()))) { - newzncbc = bc; - } - gzC = false; - } - } + if (gA && gC) { //loop once again for so-called DG events to get the most active FT0 BC + for (auto const& bc : bcRange) { + if (bc.has_foundFT0()){ + tempampa = udhelpers::FT0AmplitudeA(bc.foundFT0()); + tempampc = udhelpers::FT0AmplitudeC(bc.foundFT0()); + if (tempampa > ampa){ + ampa = tempampa; + newdgabc = bc; + } + if (tempampc > ampc){ + ampc = tempampc; + newdgcbc = bc; + } + } } - if (gA && gC) { - if (!gzA && !gzC) { - if (std::abs(static_cast(newznabc.globalBC() - oldbc.globalBC())) < std::abs(static_cast(newzncbc.globalBC() - oldbc.globalBC()))) { - newzncbc = newznabc; - newbc = newznabc; - } else { - newznabc = newzncbc; - newbc = newzncbc; - } - } else if (!gzA) { - newzncbc = newznabc; - newbc = newznabc; - } else if (!gzC) { - newznabc = newzncbc; - newbc = newzncbc; - } - } else if (!gA) { - if (!gzA) { - if (newbc.globalBC() == newznabc.globalBC()) { - newzncbc = newznabc; - } else if (std::abs(static_cast(newznabc.globalBC() - oldbc.globalBC())) < std::abs(static_cast(newbc.globalBC() - oldbc.globalBC()))) { - newzncbc = newznabc; - newbc = newznabc; - } else { - newzncbc = newbc; - newznabc = newbc; - } - } else { - newzncbc = newbc; - newznabc = newbc; - } - } else if (!gC) { - if (!gzC) { - if (newbc.globalBC() == newzncbc.globalBC()) { - newznabc = newzncbc; - } else if (std::abs(static_cast(newzncbc.globalBC() - oldbc.globalBC())) < std::abs(static_cast(newbc.globalBC() - oldbc.globalBC()))) { - newznabc = newzncbc; - newbc = newzncbc; - } else { - newzncbc = newbc; - newznabc = newbc; - } - - } else { - newzncbc = newbc; - newznabc = newbc; - } + if (newdgabc != newdgcbc){ + if (ampc/diffCuts.FITAmpLimits()[2] > ampa/diffCuts.FITAmpLimits()[2]) newdgabc = newdgcbc; } + newbc = newdgabc; + } + result.bc = &newbc; // LOGF(info, "Old BC: %i, New BC: %i",oldbc.globalBC(), newbc.globalBC()); result.bc = &newbc; result.value = gA && gC ? 2 : (gA ? 0 : 1); @@ -160,22 +113,23 @@ class SGSelector } template - int trueGap(CC& collision, float fv0_cut, float zdc_cut) + int trueGap(CC& collision, float fv0, float ft0a, float ft0c, float zdc_cut) { + float fit_cut[3] = {fv0, ft0a, ft0c}; int gap = collision.gapSide(); int true_gap = gap; if (gap == 0) { - if (collision.totalFV0AmplitudeA() > fv0_cut || collision.energyCommonZNA() > zdc_cut) + if (collision.totalFV0AmplitudeA() > fit_cut[0] || collision.totalFT0AmplitudeA() > fit_cut[1] || collision.energyCommonZNA() > zdc_cut) true_gap = -1; } else if (gap == 1) { - if (collision.energyCommonZNC() > zdc_cut) + if (collision.totalFT0AmplitudeC() > fit_cut[2] || collision.energyCommonZNC() > zdc_cut) true_gap = -1; } else if (gap == 2) { - if ((collision.totalFV0AmplitudeA() > fv0_cut || collision.energyCommonZNA() > zdc_cut) && (collision.energyCommonZNC() > zdc_cut)) + if ((collision.totalFV0AmplitudeA() > fit_cut[0] || collision.totalFT0AmplitudeA() > fit_cut[1] || collision.energyCommonZNA() > zdc_cut) && (collision.totalFT0AmplitudeC() > fit_cut[2] ||collision.energyCommonZNC() > zdc_cut)) true_gap = -1; - else if (collision.totalFV0AmplitudeA() > fv0_cut || collision.energyCommonZNA() > zdc_cut) + else if (collision.totalFV0AmplitudeA() > fit_cut[0] || collision.totalFT0AmplitudeA() > fit_cut[1] || collision.energyCommonZNA() > zdc_cut) true_gap = 1; - else if (collision.energyCommonZNC() > zdc_cut) + else if (collision.totalFT0AmplitudeC() > fit_cut[2] || collision.energyCommonZNC() > zdc_cut) true_gap = 0; } return true_gap;