From def2dbb3aa871efc8c9d29b3e65c005170053973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:25:11 +0200 Subject: [PATCH 1/8] Update taskCharmHadronsFemtoDream.cxx --- .../HFC/Tasks/taskCharmHadronsFemtoDream.cxx | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx index f024e276a9a..9baeec35c2f 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx @@ -139,7 +139,7 @@ struct HfTaskCharmHadronsFemtoDream { using FilteredCharmMcCands = soa::Filtered>; using FilteredCharmMcCand = FilteredCharmMcCands::iterator; - using FilteredColisions = soa::Filtered>; + using FilteredColisions = soa::Filtered>; using FilteredColision = FilteredColisions::iterator; using FilteredMcColisions = soa::Filtered>; @@ -148,7 +148,7 @@ struct HfTaskCharmHadronsFemtoDream { using FilteredFDMcParts = soa::Filtered>; using FilteredFDMcPart = FilteredFDMcParts::iterator; - using FilteredFDParticles = soa::Filtered>; + using FilteredFDParticles = soa::Filtered>; using FilteredFDParticle = FilteredFDParticles::iterator; Filter eventMultiplicity = aod::femtodreamcollision::multNtr >= eventSel.multMin && aod::femtodreamcollision::multNtr <= eventSel.multMax; @@ -477,8 +477,7 @@ struct HfTaskCharmHadronsFemtoDream { eventHisto.fillQA(col); auto sliceTrk1 = partitionTrk1->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache); auto sliceCharmHad = partitionCharmHadron->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache); - auto bc = col.template bc_as(); - int64_t timeStamp = bc.timestamp(); + int64_t timeStamp = -999; /// Filling QA histograms of the all tracks and all charm hadrons before pairing for (auto const& part : sliceTrk1) { @@ -491,7 +490,7 @@ struct HfTaskCharmHadronsFemtoDream { } else { chargeTrack = NegativeCharge; } - + timeStamp = part.timeStamp(); rowFemtoResultTrk( col.globalIndex(), timeStamp, @@ -509,6 +508,8 @@ struct HfTaskCharmHadronsFemtoDream { for (auto const& part : sliceCharmHad) { float invMass = getCharmHadronMass(part); registryCharmHadronQa.fill(HIST("CharmHadronQA/hPtVsMass"), part.pt(), invMass); + timeStamp = part.timeStamp(); + rowFemtoResultCharm( col.globalIndex(), timeStamp, @@ -525,12 +526,14 @@ struct HfTaskCharmHadronsFemtoDream { part.bdtFD()); } - rowFemtoResultColl( - col.globalIndex(), - timeStamp, - col.posZ(), - col.multNtr()); + if (sliceCharmHad.size() || sliceTrk1.size()) { + rowFemtoResultColl( + col.globalIndex(), + timeStamp, + col.posZ(), + col.multNtr()); + } if ((col.bitmaskTrackOne() & bitMask) != bitMask || (col.bitmaskTrackTwo() & bitMask) != bitMask) { return; } From cd0e23a9b922b90fa8f8850d135ed713cc7297b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:26:19 +0200 Subject: [PATCH 2/8] Update FemtoDerived.h --- PWGCF/DataModel/FemtoDerived.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PWGCF/DataModel/FemtoDerived.h b/PWGCF/DataModel/FemtoDerived.h index 855b7d30bf2..bd8ea777673 100644 --- a/PWGCF/DataModel/FemtoDerived.h +++ b/PWGCF/DataModel/FemtoDerived.h @@ -374,6 +374,9 @@ DECLARE_SOA_TABLE(FDHfCandMC, "AOD", "FDHFCANDMC", //! Table for reconstructed M DECLARE_SOA_TABLE(FDParticlesIndex, "AOD", "FDPARTICLEINDEX", //! Table track index to match associate particle with charm hadron prongs o2::soa::Index<>, fdhf::TrackId); +DECLARE_SOA_TABLE(FDParticlesTimeStamp, "AOD", "FDPARTICLETIME", //! Time Stampe of track associate event + o2::soa::Index<>, + fdhf::TimeStamp); DECLARE_SOA_TABLE_STAGED(FDParticles, "FDPARTICLE", o2::soa::Index<>, From a46bcd7dda1cc733eabc598103c77670ba79f3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:27:51 +0200 Subject: [PATCH 3/8] Update femtoDreamProducer.cxx --- PWGHF/HFC/TableProducer/femtoDreamProducer.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx b/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx index 2a6fad8c841..346dee8df32 100644 --- a/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx +++ b/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx @@ -102,6 +102,7 @@ struct HfFemtoDreamProducer { Produces rowCandMcCharmHad; Produces rowCandCharmHadGen; Produces outputPartsIndex; + Produces outputPartsTime; Produces outputMcCollision; Produces outputCollsMcLabels; Produces outputParts; @@ -391,9 +392,11 @@ struct HfFemtoDreamProducer { trackCuts.fillQA(track); // the bit-wise container of the systematic variations is obtained auto cutContainer = trackCuts.getCutContainer(track, track.pt(), track.eta(), sqrtf(powf(track.dcaXY(), 2.f) + powf(track.dcaZ(), 2.f))); - + auto bc = col.template bc_as(); + int64_t timeStamp = bc.timestamp(); // track global index outputPartsIndex(track.globalIndex()); + outputPartsTime(timeStamp); // now the table is filled outputParts(outputCollision.lastIndex(), From b3a4d8d4e28642a92ad99f9d975d491e46309d0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 17:41:36 +0200 Subject: [PATCH 4/8] Update taskCharmHadronsFemtoDream.cxx --- PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx index 9baeec35c2f..ffdd1de4e77 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx @@ -160,9 +160,8 @@ struct HfTaskCharmHadronsFemtoDream { Filter trackPtFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::pt < ptTrack1Max, true); Filter trackPtFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::pt > ptTrack1Min, true); - Preslice perCol = aod::femtodreamparticle::fdCollisionId; - /// Partition for particle 1 + Preslice perCol = aod::femtodreamparticle::fdCollisionId; Partition partitionTrk1 = (aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack)) && (ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) && ifnode(aod::femtodreamparticle::pt * coshEta(aod::femtodreamparticle::eta) <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1)); Partition partitionMcTrk1 = (aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack)) && @@ -170,6 +169,7 @@ struct HfTaskCharmHadronsFemtoDream { ifnode(aod::femtodreamparticle::pt * coshEta(aod::femtodreamparticle::eta) <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1)); /// Partition for particle 2 + Preslice perHfByCol = aod::femtodreamparticle::fdCollisionId; Partition partitionCharmHadron = aod::fdhf::bdtBkg < charmHadBkgBDTmax && aod::fdhf::bdtFD < charmHadFdBDTmax && aod::fdhf::bdtFD > charmHadFdBDTmin&& aod::fdhf::bdtPrompt charmHadPromptBDTmin; Partition partitionMcCharmHadron = aod::fdhf::originMcRec == OriginRecPrompt || aod::fdhf::originMcRec == OriginRecFD; @@ -533,10 +533,10 @@ struct HfTaskCharmHadronsFemtoDream { timeStamp, col.posZ(), col.multNtr()); - } - if ((col.bitmaskTrackOne() & bitMask) != bitMask || (col.bitmaskTrackTwo() & bitMask) != bitMask) { + } else { return; } + doSameEvent(sliceTrk1, sliceCharmHad, parts, col); } PROCESS_SWITCH(HfTaskCharmHadronsFemtoDream, processSameEvent, "Enable processing same event", false); From cb406aab0196d8ee28d5be2fc451b7c74b1d182b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 17:48:42 +0200 Subject: [PATCH 5/8] fix linter warning --- PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx index ffdd1de4e77..7be774309e3 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx @@ -160,8 +160,10 @@ struct HfTaskCharmHadronsFemtoDream { Filter trackPtFilterLow = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::pt < ptTrack1Max, true); Filter trackPtFilterUp = ifnode(aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack), aod::femtodreamparticle::pt > ptTrack1Min, true); - /// Partition for particle 1 Preslice perCol = aod::femtodreamparticle::fdCollisionId; + Preslice perHfByCol = aod::femtodreamparticle::fdCollisionId; + + /// Partition for particle 1 Partition partitionTrk1 = (aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack)) && (ncheckbit(aod::femtodreamparticle::cut, cutBitTrack1)) && ifnode(aod::femtodreamparticle::pt * coshEta(aod::femtodreamparticle::eta) <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1)); Partition partitionMcTrk1 = (aod::femtodreamparticle::partType == uint8_t(aod::femtodreamparticle::ParticleType::kTrack)) && @@ -169,7 +171,6 @@ struct HfTaskCharmHadronsFemtoDream { ifnode(aod::femtodreamparticle::pt * coshEta(aod::femtodreamparticle::eta) <= pidThresTrack1, ncheckbit(aod::femtodreamparticle::pidcut, tpcBitTrack1), ncheckbit(aod::femtodreamparticle::pidcut, tpcTofBitTrack1)); /// Partition for particle 2 - Preslice perHfByCol = aod::femtodreamparticle::fdCollisionId; Partition partitionCharmHadron = aod::fdhf::bdtBkg < charmHadBkgBDTmax && aod::fdhf::bdtFD < charmHadFdBDTmax && aod::fdhf::bdtFD > charmHadFdBDTmin&& aod::fdhf::bdtPrompt charmHadPromptBDTmin; Partition partitionMcCharmHadron = aod::fdhf::originMcRec == OriginRecPrompt || aod::fdhf::originMcRec == OriginRecFD; From ad1c7b6a158c2320b86ddbc13eaf744bef6ca479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 17:57:49 +0200 Subject: [PATCH 6/8] Update FemtoDerived.h --- PWGCF/DataModel/FemtoDerived.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGCF/DataModel/FemtoDerived.h b/PWGCF/DataModel/FemtoDerived.h index bd8ea777673..3be2baadc37 100644 --- a/PWGCF/DataModel/FemtoDerived.h +++ b/PWGCF/DataModel/FemtoDerived.h @@ -374,7 +374,7 @@ DECLARE_SOA_TABLE(FDHfCandMC, "AOD", "FDHFCANDMC", //! Table for reconstructed M DECLARE_SOA_TABLE(FDParticlesIndex, "AOD", "FDPARTICLEINDEX", //! Table track index to match associate particle with charm hadron prongs o2::soa::Index<>, fdhf::TrackId); -DECLARE_SOA_TABLE(FDParticlesTimeStamp, "AOD", "FDPARTICLETIME", //! Time Stampe of track associate event +DECLARE_SOA_TABLE(FDTrkTimeStamp, "AOD", "FDHFTRKTIMESTAMP", //! Time Stampe of track associate event o2::soa::Index<>, fdhf::TimeStamp); From 1b2f1624383bbd9b6a485f6ee94a15a249b8de4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 17:59:45 +0200 Subject: [PATCH 7/8] Update femtoDreamProducer.cxx --- PWGHF/HFC/TableProducer/femtoDreamProducer.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx b/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx index 346dee8df32..1255781f2b0 100644 --- a/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx +++ b/PWGHF/HFC/TableProducer/femtoDreamProducer.cxx @@ -102,7 +102,7 @@ struct HfFemtoDreamProducer { Produces rowCandMcCharmHad; Produces rowCandCharmHadGen; Produces outputPartsIndex; - Produces outputPartsTime; + Produces outputPartsTime; Produces outputMcCollision; Produces outputCollsMcLabels; Produces outputParts; From 168535b5cb24b40e4984c858401a5b7e18b4a9d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Fri, 8 Aug 2025 18:00:20 +0200 Subject: [PATCH 8/8] Update taskCharmHadronsFemtoDream.cxx --- PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx index 7be774309e3..5632f7eefe8 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsFemtoDream.cxx @@ -148,7 +148,7 @@ struct HfTaskCharmHadronsFemtoDream { using FilteredFDMcParts = soa::Filtered>; using FilteredFDMcPart = FilteredFDMcParts::iterator; - using FilteredFDParticles = soa::Filtered>; + using FilteredFDParticles = soa::Filtered>; using FilteredFDParticle = FilteredFDParticles::iterator; Filter eventMultiplicity = aod::femtodreamcollision::multNtr >= eventSel.multMin && aod::femtodreamcollision::multNtr <= eventSel.multMax;