From 1ea04d3fa52330a345f0fee251914c136705be11 Mon Sep 17 00:00:00 2001 From: Austeja Date: Mon, 30 Jun 2025 16:09:05 +0200 Subject: [PATCH 1/2] [PWGCF] Fix naming and other bugs in producer task for Pb-Pb collisions --- PWGCF/FemtoDream/Tasks/CMakeLists.txt | 2 +- .../Tasks/femtoDreamCollisionMasker.cxx | 2 +- ...mtoDreamTripletTaskTrackTrackTrackPbPb.cxx | 32 ++++++++++--------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/PWGCF/FemtoDream/Tasks/CMakeLists.txt b/PWGCF/FemtoDream/Tasks/CMakeLists.txt index 4c8613e3d40..eefdde89e9e 100644 --- a/PWGCF/FemtoDream/Tasks/CMakeLists.txt +++ b/PWGCF/FemtoDream/Tasks/CMakeLists.txt @@ -19,7 +19,7 @@ o2physics_add_dpl_workflow(femtodream-triplet-track-track-track PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) -o2physics_add_dpl_workflow(femtodream-triplet-track-track-track-pbpb +o2physics_add_dpl_workflow(femtodream-triplet-track-track-track-pb-pb SOURCES femtoDreamTripletTaskTrackTrackTrackPbPb.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) diff --git a/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx b/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx index 1ca9d808073..db5f632403d 100644 --- a/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx +++ b/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx @@ -244,7 +244,7 @@ struct femoDreamCollisionMasker { NegChildPIDTPCBits.at(CollisionMasks::kPartTwo).push_back(option.defaultValue.get()); } } - } else if (device.name.find("femto-dream-triplet-task-track-track-track") != std::string::npos) { + } else if ((device.name.find("femto-dream-triplet-task-track-track-track") != std::string::npos) || (device.name.find("femto-dream-triplet-task-track-track-track-pb-pb") != std::string::npos)) { LOG(info) << "Matched workflow: " << device.name; TaskFinder = CollisionMasks::kTrackTrackTrack; for (auto const& option : device.options) { diff --git a/PWGCF/FemtoDream/Tasks/femtoDreamTripletTaskTrackTrackTrackPbPb.cxx b/PWGCF/FemtoDream/Tasks/femtoDreamTripletTaskTrackTrackTrackPbPb.cxx index ddb9737d7d5..f0d69344160 100644 --- a/PWGCF/FemtoDream/Tasks/femtoDreamTripletTaskTrackTrackTrackPbPb.cxx +++ b/PWGCF/FemtoDream/Tasks/femtoDreamTripletTaskTrackTrackTrackPbPb.cxx @@ -9,7 +9,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -/// \file femtoDreamTripletTaskTrackTrackTrack.cxx +/// \file femtoDreamTripletTaskTrackTrackTrackPbPb.cxx /// \brief Tasks that reads the track tables and creates track triplets; only three identical particles can be used /// \author Laura Serksnyte, TU München, laura.serksnyte@tum.de @@ -40,7 +40,7 @@ using namespace o2::framework; using namespace o2::framework::expressions; using namespace o2::soa; -struct femtoDreamTripletTaskTrackTrackTrack { +struct femtoDreamTripletTaskTrackTrackTrackPbPb { SliceCache cache; Preslice perCol = aod::femtodreamparticle::fdCollisionId; @@ -51,7 +51,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { using FilteredFDCollisions = soa::Filtered; using FilteredFDCollision = FilteredFDCollisions::iterator; - using MaskedCollisions = soa::Join; + using MaskedCollisions = soa::Filtered>; using MaskedCollision = MaskedCollisions::iterator; aod::femtodreamcollision::BitMaskType MaskBit = -1; float mMassOne = -999, mMassTwo = -999, mMassThree = -999; @@ -163,7 +163,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { ThreeBodyQARegistry.add("TrackMC_QA/hMazzachi", ";gen;(reco-gen)/gen", kTH2F, {{100, ConfMinpT, ConfMaxpT}, {300, -1, 1}}); } ThreeBodyQARegistry.add("TripletTaskQA/hCentrality", ";Centrality; Q3", kTH2F, {{100, 0, 100}, ConfQ3Bins}); - ThreeBodyQARegistry.add("TripletTaskQA/hCentralityME", ";Centrality;", kTH1F, {{100, 0.0, 100.0}}); + ThreeBodyQARegistry.add("TripletTaskQA/hCentralityME", ";Centrality;Entries", kTH1F, {{100, 0.0, 100.0}}); sameEventCont.init(&resultRegistry, ConfQ3Bins, ConfMultBins, ConfIsMC); mixedEventCont.init(&resultRegistry, ConfQ3Bins, ConfMultBins, ConfIsMC); @@ -185,7 +185,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { int index = 0; auto& workflows = context.services().get(); for (DeviceSpec const& device : workflows.devices) { - if (device.name.find("femto-dream-triplet-task-track-track-track") != std::string::npos) { + if (device.name.find("femto-dream-triplet-task-track-track-track-pb-pb") != std::string::npos) { if (containsNameValuePair(device.options, "ConfCutPart", ConfCutPart.value) && containsNameValuePair(device.options, "ConfTPCPIDBit", ConfTPCPIDBit.value) && containsNameValuePair(device.options, "ConfTPCTOFPIDBit", ConfTPCTOFPIDBit.value) && @@ -295,7 +295,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { } doSameEvent(thegroupSelectedParts, parts, col.magField(), col.multNtr(), col.multV0M()); } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processSameEvent, "Enable processing same event", true); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processSameEvent, "Enable processing same event", true); /// process function to call doSameEvent with Data which has a mask for containing particles or not /// \param col subscribe to the collision table (Data) @@ -312,7 +312,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { } doSameEvent(thegroupSelectedParts, parts, col.magField(), col.multNtr(), col.multV0M()); } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processSameEventMasked, "Enable processing same event with masks", false); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processSameEventMasked, "Enable processing same event with masks", false); /// process function for to call doSameEvent with Monte Carlo /// \param col subscribe to the collision table (Monte Carlo Reconstructed reconstructed) @@ -333,7 +333,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { } doSameEvent(thegroupSelectedParts, parts, col.magField(), col.multNtr(), col.multV0M()); } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processSameEventMC, "Enable processing same event for Monte Carlo", false); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processSameEventMC, "Enable processing same event for Monte Carlo", false); /// process function for to call doSameEvent with Monte Carlo which has a mask for containing particles or not /// \param col subscribe to the collision table (Monte Carlo Reconstructed reconstructed) @@ -354,7 +354,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { } doSameEvent(thegroupSelectedParts, parts, col.magField(), col.multNtr(), col.multV0M()); } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processSameEventMCMasked, "Enable processing same event for Monte Carlo", false); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processSameEventMCMasked, "Enable processing same event for Monte Carlo", false); /// This function processes the mixed event /// \tparam PartitionType @@ -417,7 +417,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { doMixedEvent(groupPartsOne, groupPartsTwo, groupPartsThree, parts, magFieldTesla1, multiplicityCol); } } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processMixedEvent, "Enable processing mixed events", true); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processMixedEvent, "Enable processing mixed events", true); /// process function for to call doMixedEvent with Data which has a mask for containing particles or not /// @param cols subscribe to the collisions table (Data) @@ -429,10 +429,12 @@ struct femtoDreamTripletTaskTrackTrackTrack { (ConfTracksInMixedEvent == 3 && (aod::femtodreamcollision::bitmaskTrackThree & MaskBit) == MaskBit); PartitionMaskedCol1.bindTable(cols); - for (auto& [collision1, collision2, collision3] : soa::selfCombinations(colBinning, ConfNEventsMix, -1, *PartitionMaskedCol1.mFiltered, *PartitionMaskedCol1.mFiltered, *PartitionMaskedCol1.mFiltered)) { const int multiplicityCol = collision1.multNtr(); ThreeBodyQARegistry.fill(HIST("TripletTaskQA/hMECollisionBins"), colBinning.getBin({collision1.posZ(), multiplicityCol})); + ThreeBodyQARegistry.fill(HIST("TripletTaskQA/hCentralityME"), collision1.multV0M()); + ThreeBodyQARegistry.fill(HIST("TripletTaskQA/hCentralityME"), collision2.multV0M()); + ThreeBodyQARegistry.fill(HIST("TripletTaskQA/hCentralityME"), collision3.multV0M()); auto groupPartsOne = SelectedParts->sliceByCached(aod::femtodreamparticle::fdCollisionId, collision1.globalIndex(), cache); auto groupPartsTwo = SelectedParts->sliceByCached(aod::femtodreamparticle::fdCollisionId, collision2.globalIndex(), cache); @@ -449,7 +451,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { doMixedEvent(groupPartsOne, groupPartsTwo, groupPartsThree, parts, magFieldTesla1, multiplicityCol); } } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processMixedEventMasked, "Enable processing mixed events", false); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processMixedEventMasked, "Enable processing mixed events", false); /// brief process function for to call doMixedEvent with Monte Carlo /// @param cols subscribe to the collisions table (Monte Carlo Reconstructed reconstructed) @@ -480,7 +482,7 @@ struct femtoDreamTripletTaskTrackTrackTrack { doMixedEvent(groupPartsOne, groupPartsTwo, groupPartsThree, parts, magFieldTesla1, multiplicityCol); } } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processMixedEventMC, "Enable processing mixed events MC", false); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processMixedEventMC, "Enable processing mixed events MC", false); /// brief process function for to call doMixedEvent with Monte Carlo which has a mask for containing particles or not /// @param cols subscribe to the collisions table (Monte Carlo Reconstructed reconstructed) @@ -516,13 +518,13 @@ struct femtoDreamTripletTaskTrackTrackTrack { doMixedEvent(groupPartsOne, groupPartsTwo, groupPartsThree, parts, magFieldTesla1, multiplicityCol); } } - PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrack, processMixedEventMCMasked, "Enable processing mixed events MC", false); + PROCESS_SWITCH(femtoDreamTripletTaskTrackTrackTrackPbPb, processMixedEventMCMasked, "Enable processing mixed events MC", false); }; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { WorkflowSpec workflow{ - adaptAnalysisTask(cfgc), + adaptAnalysisTask(cfgc), }; return workflow; } From 459168a021aeda102c711f1e960ea7ab87c42569 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 30 Jun 2025 14:22:47 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx b/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx index db5f632403d..fddbee16a88 100644 --- a/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx +++ b/PWGCF/FemtoDream/Tasks/femtoDreamCollisionMasker.cxx @@ -244,7 +244,7 @@ struct femoDreamCollisionMasker { NegChildPIDTPCBits.at(CollisionMasks::kPartTwo).push_back(option.defaultValue.get()); } } - } else if ((device.name.find("femto-dream-triplet-task-track-track-track") != std::string::npos) || (device.name.find("femto-dream-triplet-task-track-track-track-pb-pb") != std::string::npos)) { + } else if ((device.name.find("femto-dream-triplet-task-track-track-track") != std::string::npos) || (device.name.find("femto-dream-triplet-task-track-track-track-pb-pb") != std::string::npos)) { LOG(info) << "Matched workflow: " << device.name; TaskFinder = CollisionMasks::kTrackTrackTrack; for (auto const& option : device.options) {