From e2eb2ac1d2b5f831ee690f2ff99c777c078018cb Mon Sep 17 00:00:00 2001 From: Roman Lavicka Date: Wed, 19 Feb 2025 16:54:28 +0100 Subject: [PATCH 1/4] possibility to select likesign events --- PWGUD/Tasks/upcTauCentralBarrelRL.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx index bbcfbb4e63c..d377ea4a730 100644 --- a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx +++ b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx @@ -108,8 +108,9 @@ struct UpcTauRl { Configurable useThresholdsPID{"useThresholdsPID", false, {"Switch off smaller-sigma-wins pidZ."}}; Configurable applyTauEventSelection{"applyTauEventSelection", true, {"Select tau event."}}; Configurable cutOppositeCharge{"cutOppositeCharge", true, {"Tracks have opposite charge."}}; + Configurable cutSameCharge{"cutSameCharge", false, {"Tracks have same charge."}}; Configurable cutMaxAcoplanarity{"cutMaxAcoplanarity", 4 * o2::constants::math::PI / 5, {"Opening angle of the tracks. What is more goes away."}}; - Configurable cutMinAcoplanarity{"cutMinAcoplanarity", 2 * o2::constants::math::PI / 5, {"Opening angle of the tracks. What is less goes away."}}; + Configurable cutMinAcoplanarity{"cutMinAcoplanarity", 0 * o2::constants::math::PI / 5, {"Opening angle of the tracks. What is less goes away."}}; Configurable cutElectronHasTOF{"cutElectronHasTOF", true, {"Electron is required to hit TOF."}}; Configurable cutGoodElectron{"cutGoodElectron", true, {"Select good electron."}}; Configurable cutOutRho{"cutOutRho", false, {"Cut out rho mass under two tracks are pions hypothesis"}}; @@ -1030,6 +1031,8 @@ struct UpcTauRl { int enumTrk1 = (cutTauEvent.useThresholdsPID ? (isElectronCandidate(trkDaug1) ? P_ELECTRON : P_PION) : enumMyParticle(trackPDG(trkDaug1, cutPID.cutSiTPC, cutPID.cutSiTOF, cutPID.usePIDwTOF, cutPID.useScutTOFinTPC))); if (cutTauEvent.cutOppositeCharge && (trkDaug1.sign() * trkDaug2.sign() > 0)) return false; + if (cutTauEvent.cutSameCharge && (trkDaug1.sign() * trkDaug2.sign() < 0)) + return false; if (calculateAcoplanarity(daug[0].Phi(), daug[1].Phi()) > cutTauEvent.cutMaxAcoplanarity) return false; if (calculateAcoplanarity(daug[0].Phi(), daug[1].Phi()) < cutTauEvent.cutMinAcoplanarity) From c69f9eb094f2ddecd5c6e06cf10f818f0a9f3633 Mon Sep 17 00:00:00 2001 From: Roman Lavicka Date: Wed, 19 Feb 2025 17:31:31 +0100 Subject: [PATCH 2/4] using collisionselsextra --- PWGUD/Tasks/upcTauCentralBarrelRL.cxx | 48 ++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx index d377ea4a730..6df27bb0d14 100644 --- a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx +++ b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx @@ -78,6 +78,10 @@ struct UpcTauRl { Configurable cutTrueGapSideFT0C{"cutTrueGapSideFT0C", 50., "FT0C threshold for SG selector"}; Configurable cutTrueGapSideZDC{"cutTrueGapSideZDC", 0., "ZDC threshold for SG selector. 0 is <1n, 4.2 is <2n, 6.7 is <3n, 9.5 is <4n, 12.5 is <5n"}; Configurable cutFITtime{"cutFITtime", 40., "Maximum FIT time allowed. Default is 40ns"}; + Configurable cutEvOccupancy{"cutEvOccupancy", 100000., "Maximum allowed occupancy"}; + Configurable cutEvTrs{"cutEvTrs", true, {"Event selection bit kNoCollInTimeRangeStandard"}}; + Configurable cutEvTrofs{"cutEvTrofs", true, {"Event selection bit kNoCollInRofStandard"}}; + Configurable cutEvHmpr{"cutEvHmpr", true, {"Event selection bit kNoHighMultCollInPrevRof"}}; Configurable applyAcceptanceSelection{"applyAcceptanceSelection", false, {"Select events in ALICE CB acceptance set with cutTrackEta"}}; Configurable cutTrackEta{"cutTrackEta", 0.9, "Cut on central barrel track eta in absolute values."}; } cutSample; @@ -182,11 +186,11 @@ struct UpcTauRl { } confAxis; using FullUDTracks = soa::Join; - using FullUDCollision = soa::Join::iterator; - using FullSGUDCollision = soa::Join::iterator; + using FullUDCollision = soa::Join::iterator; + using FullSGUDCollision = soa::Join::iterator; using FullMCUDTracks = soa::Join; - using FullMCUDCollision = soa::Join::iterator; - using FullMCSGUDCollision = soa::Join::iterator; + using FullMCUDCollision = soa::Join::iterator; + using FullMCSGUDCollision = soa::Join::iterator; // init void init(InitContext&) @@ -939,6 +943,30 @@ struct UpcTauRl { return true; } + + template + bool isGoodROFtime(C const& coll) + { + + // Occupancy + if (coll.occupancyInTime() > cutSample.cutEvOccupancy) + return false; + + // kNoCollInTimeRangeStandard + if (cutSample.cutEvTrs && !coll.trs()) + return false; + + // kNoCollInRofStandard + if (cutSample.cutEvTrofs && !coll.trofs()) + return false; + + // kNoHighMultCollInPrevRof + if (cutSample.cutEvHmpr && !coll.hmpr()) + return false; + + return true; + } + template bool isElectronCandidate(T const& electronCandidate) // Loose criterium to find electron-like particle @@ -2490,6 +2518,9 @@ struct UpcTauRl { FullUDTracks const& reconstructedBarrelTracks) { + if (!isGoodROFtime(reconstructedCollision)) + return; + if (!isGoodFITtime(reconstructedCollision, cutSample.cutFITtime)) return; @@ -2513,6 +2544,9 @@ struct UpcTauRl { if (cutSample.useTrueGap) gapSide = trueGapSide; + if (!isGoodROFtime(reconstructedCollision)) + return; + if (gapSide != cutSample.whichGapSide) return; @@ -2534,6 +2568,9 @@ struct UpcTauRl { { isMC = true; + if (!isGoodROFtime(reconstructedCollision)) + return; + if (!isGoodFITtime(reconstructedCollision, cutSample.cutFITtime)) return; @@ -2570,6 +2607,9 @@ struct UpcTauRl { if (gapSide != cutSample.whichGapSide) return; + if (!isGoodROFtime(reconstructedCollision)) + return; + if (!isGoodFITtime(reconstructedCollision, cutSample.cutFITtime)) return; From c9264fe88d24dacd878c11c73ec8ee1c94a97d7e Mon Sep 17 00:00:00 2001 From: Roman Lavicka Date: Wed, 19 Feb 2025 17:33:13 +0100 Subject: [PATCH 3/4] deleting obsolete processfunction --- PWGUD/Tasks/upcTauCentralBarrelRL.cxx | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx index 6df27bb0d14..67b14b1f7a5 100644 --- a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx +++ b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx @@ -2655,30 +2655,11 @@ struct UpcTauRl { } // end processMCgenDG - void processTestMC(FullMCUDCollision const& /*reconstructedCollision*/, - FullMCUDTracks const& /*reconstructedBarrelTracks*/, - aod::UDMcCollisions const&, - aod::UDMcParticles const&) - { - // if (reconstructedCollision.has_udMcCollision()) { - // const auto& generatedCollision = reconstructedCollision.udMcCollision(); - // printDebugMessage(Form("%lli udMcCollision found", generatedCollision.size())); // FIXME: Type of size() is not invariant. - // } - - // const auto& track = reconstructedBarrelTracks.iteratorAt(0); - // if (track.size() && track.has_udMcParticle()) { - // const auto& particle = track.udMcParticle(); - // printDebugMessage(Form("%lli udMcParticle found", particle.size())); // FIXME: Type of size() is not invariant. - // } - - } // end processTestMC - PROCESS_SWITCH(UpcTauRl, processDataDG, "Iterate UD tables with measured data created by DG-Candidate-Producer.", false); PROCESS_SWITCH(UpcTauRl, processDataSG, "Iterate UD tables with measured data created by SG-Candidate-Producer.", false); PROCESS_SWITCH(UpcTauRl, processMCrecDG, "Iterate Monte Carlo UD tables with reconstructed data created by DG-Candidate-Producer. Similar to processDataDG but uses association to truth level.", false); PROCESS_SWITCH(UpcTauRl, processMCrecSG, "Iterate Monte Carlo UD tables with reconstructed data created by SG-Candidate-Producer. Similar to processDataSG but uses association to truth level and trueGap is not available.", false); PROCESS_SWITCH(UpcTauRl, processMCgen, "Iterate Monte Carlo UD tables with truth data.", false); - PROCESS_SWITCH(UpcTauRl, processTestMC, "Simple test of indices in MC sample.", false); }; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) From e09601a6a319be3b4b751f93c646214c11bb4ce4 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Wed, 19 Feb 2025 16:34:26 +0000 Subject: [PATCH 4/4] Please consider the following formatting changes --- PWGUD/Tasks/upcTauCentralBarrelRL.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx index 67b14b1f7a5..9551270f3fa 100644 --- a/PWGUD/Tasks/upcTauCentralBarrelRL.cxx +++ b/PWGUD/Tasks/upcTauCentralBarrelRL.cxx @@ -943,7 +943,6 @@ struct UpcTauRl { return true; } - template bool isGoodROFtime(C const& coll) {