From 9fcf2399d9927bd9777ce867d7167aa2eba05e76 Mon Sep 17 00:00:00 2001 From: jikim1290 Date: Wed, 27 Aug 2025 23:28:24 +0900 Subject: [PATCH 1/3] adding pp trigger analysis --- PWGLF/Tasks/Strangeness/CMakeLists.txt | 2 +- PWGLF/Tasks/Strangeness/lambdalambda.cxx | 67 +++++++++++++++++++----- 2 files changed, 55 insertions(+), 14 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/CMakeLists.txt b/PWGLF/Tasks/Strangeness/CMakeLists.txt index 100b8667aab..db4a211e4fa 100644 --- a/PWGLF/Tasks/Strangeness/CMakeLists.txt +++ b/PWGLF/Tasks/Strangeness/CMakeLists.txt @@ -133,7 +133,7 @@ o2physics_add_dpl_workflow(lambdak0sflattenicity o2physics_add_dpl_workflow(lambdalambda SOURCES lambdalambda.cxx - PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore + PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(lambdajetpolarization diff --git a/PWGLF/Tasks/Strangeness/lambdalambda.cxx b/PWGLF/Tasks/Strangeness/lambdalambda.cxx index bf8579f105d..d1037779ec0 100644 --- a/PWGLF/Tasks/Strangeness/lambdalambda.cxx +++ b/PWGLF/Tasks/Strangeness/lambdalambda.cxx @@ -45,6 +45,9 @@ #include "Common/Core/trackUtilities.h" #include "Common/Core/TrackSelection.h" +#include "EventFiltering/Zorro.h" +#include "EventFiltering/ZorroSummary.h" + #include "CommonConstants/PhysicsConstants.h" #include "ReconstructionDataFormats/Track.h" @@ -68,6 +71,9 @@ struct lambdalambda { using TrackCandidates = soa::Join; using V0TrackCandidate = aod::V0Datas; + Zorro zorro; + OutputObj zorroSummary{"zorroSummary"}; + HistogramRegistry histos{ "histos", {}, @@ -136,6 +142,9 @@ struct lambdalambda { Configurable cfgNRotBkg{"cfgNRotBkg", 10, "the number of rotational backgrounds"}; Configurable cfgNoMixedEvents{"cfgNoMixedEvents", 10, "Number of mixed events per event"}; + Configurable cfgSkimmedProcessing{"cfgSkimmedProcessing", false, "Enable processing of skimmed data"}; + Configurable triggerName{"triggerName", "fLambdaLambda", "Software trigger name"}; + ConfigurableAxis massAxis{"massAxis", {110, 2.22, 2.33}, "Invariant mass axis"}; ConfigurableAxis ptAxis{"ptAxis", {VARIABLE_WIDTH, 0.2, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.5, 8.0, 10.0, 100.0}, "Transverse momentum bins"}; ConfigurableAxis centAxis{"centAxis", {VARIABLE_WIDTH, 0, 10, 20, 50, 100}, "Centrality interval"}; @@ -157,8 +166,20 @@ struct lambdalambda { bool IsTriggered; bool IsSelected; + void initCCDB(aod::BCsWithTimestamps::iterator const& bc) + { + if (cfgSkimmedProcessing) { + zorro.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), triggerName.value); + zorro.populateHistRegistry(histos, bc.runNumber()); + } + } + void init(o2::framework::InitContext&) { + if (cfgSkimmedProcessing) { + zorroSummary.setObject(zorro.getZorroSummary()); + } + AxisSpec centQaAxis = {80, 0.0, 80.0}; AxisSpec PVzQaAxis = {300, -15.0, 15.0}; AxisSpec combAxis = {3, -0.5, 2.5}; @@ -506,8 +527,15 @@ struct lambdalambda { histos.fill(HIST("QA/CentDist"), centrality, 1.0); histos.fill(HIST("QA/PVzDist"), collision.posZ(), 1.0); + auto bc = collision.bc_as(); + if (cfgSkimmedProcessing) { + initCCDB(bc); + if (!zorro.isSelected(collision.template bc_as().globalBC())) { + return; + } + } + if (cfgEffCor) { - auto bc = collision.bc_as(); EffMap = ccdb->getForTimeStamp(cfgEffCorPath.value, bc.timestamp()); } FillHistograms(collision, collision, V0s, V0s); @@ -520,26 +548,39 @@ struct lambdalambda { PROCESS_SWITCH(lambdalambda, processDataSame, "Process Event for same data", true); SliceCache cache; - using BinningTypeVertexContributor = ColumnBinningPolicy; + using BinningType = ColumnBinningPolicy; + BinningType colBinning{{vertexAxis, centAxis}, true}; + Preslice tracksPerCollisionV0 = aod::v0data::collisionId; void processDataMixed(EventCandidates const& collisions, - TrackCandidates const& /*tracks*/, aod::V0Datas const& V0s) + TrackCandidates const& /*tracks*/, aod::V0Datas const& V0s, aod::BCsWithTimestamps const&) { - auto tracksTuple = std::make_tuple(V0s); - BinningTypeVertexContributor binningOnPositions{{vertexAxis, centAxis}, true}; - SameKindPair pair{binningOnPositions, cfgNoMixedEvents, -1, collisions, tracksTuple, &cache}; - for (auto& [c1, tracks1, c2, tracks2] : pair) { - if (cfgCentEst == 1) { - centrality = c1.centFT0C(); - } else if (cfgCentEst == 2) { - centrality = c1.centFT0M(); + int currentRun = -1; + for (auto& [c1, c2] : selfCombinations(colBinning, cfgNoMixedEvents, -1, collisions, collisions)) { + if (c1.index() == c2.index()) continue; + + auto bc1 = c1.bc_as(); + auto bc2 = c2.bc_as(); + + if (bc1.runNumber() != bc2.runNumber() ) continue; + + if (bc1.runNumber() != currentRun) { + if (cfgSkimmedProcessing) { + initCCDB(bc1); + if (!zorro.isSelected(bc1.globalBC()) || !zorro.isSelected(bc2.globalBC())) { + continue; + } + } } + + centrality = c1.centFT0M(); if (!eventSelected(c1)) continue; if (!eventSelected(c2)) continue; - if (c1.bcId() == c2.bcId()) - continue; + + auto tracks1 = V0s.sliceBy(tracksPerCollisionV0, c1.globalIndex()); + auto tracks2 = V0s.sliceBy(tracksPerCollisionV0, c2.globalIndex()); FillHistograms(c1, c2, tracks1, tracks2); } From 5be2c5167778dd8bdcbba30f44deaa0c0c7d59dd Mon Sep 17 00:00:00 2001 From: jikim1290 Date: Wed, 27 Aug 2025 23:42:23 +0900 Subject: [PATCH 2/3] fix name --- PWGLF/Tasks/Strangeness/lambdalambda.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/lambdalambda.cxx b/PWGLF/Tasks/Strangeness/lambdalambda.cxx index d1037779ec0..f483f762ecd 100644 --- a/PWGLF/Tasks/Strangeness/lambdalambda.cxx +++ b/PWGLF/Tasks/Strangeness/lambdalambda.cxx @@ -143,7 +143,7 @@ struct lambdalambda { Configurable cfgNoMixedEvents{"cfgNoMixedEvents", 10, "Number of mixed events per event"}; Configurable cfgSkimmedProcessing{"cfgSkimmedProcessing", false, "Enable processing of skimmed data"}; - Configurable triggerName{"triggerName", "fLambdaLambda", "Software trigger name"}; + Configurable cfgTriggerName{"cfgTriggerName", "fLambdaLambda", "Software trigger name"}; ConfigurableAxis massAxis{"massAxis", {110, 2.22, 2.33}, "Invariant mass axis"}; ConfigurableAxis ptAxis{"ptAxis", {VARIABLE_WIDTH, 0.2, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.5, 8.0, 10.0, 100.0}, "Transverse momentum bins"}; @@ -169,7 +169,7 @@ struct lambdalambda { void initCCDB(aod::BCsWithTimestamps::iterator const& bc) { if (cfgSkimmedProcessing) { - zorro.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), triggerName.value); + zorro.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), cfgTriggerName.value); zorro.populateHistRegistry(histos, bc.runNumber()); } } @@ -585,7 +585,7 @@ struct lambdalambda { FillHistograms(c1, c2, tracks1, tracks2); } } - PROCESS_SWITCH(lambdalambda, processDataMixed, "Process Event for mixed data", true); + PROCESS_SWITCH(lambdalambda, processDataMixed, "Process Event for mixed data", false); }; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) From 0dd3786f549f03123cbeda073104a47abcb07577 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Wed, 27 Aug 2025 14:43:40 +0000 Subject: [PATCH 3/3] Please consider the following formatting changes --- PWGLF/Tasks/Strangeness/lambdalambda.cxx | 76 +++++++++++------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/lambdalambda.cxx b/PWGLF/Tasks/Strangeness/lambdalambda.cxx index f483f762ecd..4c6b7bc4d84 100644 --- a/PWGLF/Tasks/Strangeness/lambdalambda.cxx +++ b/PWGLF/Tasks/Strangeness/lambdalambda.cxx @@ -11,54 +11,48 @@ /// \author Junlee Kim (jikim1290@gmail.com) -#include -#include -#include -#include -#include -#include - -#include "TLorentzVector.h" -#include "TRandom3.h" -#include "TF1.h" -#include "TVector3.h" -#include "Math/Vector3D.h" -#include "Math/Vector4D.h" -#include "Math/GenVector/Boost.h" -#include - -#include "Framework/runDataProcessing.h" -#include "Framework/AnalysisTask.h" -#include "Framework/AnalysisDataModel.h" -#include "Framework/HistogramRegistry.h" -#include "Framework/StepTHn.h" -#include "Framework/O2DatabasePDGPlugin.h" -#include "Framework/ASoAHelpers.h" -#include "Framework/StaticFor.h" +#include "PWGLF/DataModel/LFStrangenessTables.h" -#include "Common/DataModel/PIDResponse.h" -#include "Common/DataModel/Multiplicity.h" +#include "Common/Core/TrackSelection.h" +#include "Common/Core/trackUtilities.h" #include "Common/DataModel/Centrality.h" -#include "Common/DataModel/TrackSelectionTables.h" #include "Common/DataModel/EventSelection.h" - -#include "Common/Core/trackUtilities.h" -#include "Common/Core/TrackSelection.h" - +#include "Common/DataModel/Multiplicity.h" +#include "Common/DataModel/PIDResponse.h" +#include "Common/DataModel/TrackSelectionTables.h" #include "EventFiltering/Zorro.h" #include "EventFiltering/ZorroSummary.h" +#include "CCDB/BasicCCDBManager.h" +#include "CCDB/CcdbApi.h" #include "CommonConstants/PhysicsConstants.h" - -#include "ReconstructionDataFormats/Track.h" - -#include "DataFormatsParameters/GRPObject.h" #include "DataFormatsParameters/GRPMagField.h" +#include "DataFormatsParameters/GRPObject.h" +#include "Framework/ASoAHelpers.h" +#include "Framework/AnalysisDataModel.h" +#include "Framework/AnalysisTask.h" +#include "Framework/HistogramRegistry.h" +#include "Framework/O2DatabasePDGPlugin.h" +#include "Framework/StaticFor.h" +#include "Framework/StepTHn.h" +#include "Framework/runDataProcessing.h" +#include "ReconstructionDataFormats/Track.h" -#include "CCDB/CcdbApi.h" -#include "CCDB/BasicCCDBManager.h" +#include "Math/GenVector/Boost.h" +#include "Math/Vector3D.h" +#include "Math/Vector4D.h" +#include "TF1.h" +#include "TLorentzVector.h" +#include "TRandom3.h" +#include "TVector3.h" +#include -#include "PWGLF/DataModel/LFStrangenessTables.h" +#include +#include +#include +#include +#include +#include using namespace o2; using namespace o2::framework; @@ -557,12 +551,14 @@ struct lambdalambda { { int currentRun = -1; for (auto& [c1, c2] : selfCombinations(colBinning, cfgNoMixedEvents, -1, collisions, collisions)) { - if (c1.index() == c2.index()) continue; + if (c1.index() == c2.index()) + continue; auto bc1 = c1.bc_as(); auto bc2 = c2.bc_as(); - if (bc1.runNumber() != bc2.runNumber() ) continue; + if (bc1.runNumber() != bc2.runNumber()) + continue; if (bc1.runNumber() != currentRun) { if (cfgSkimmedProcessing) {