Skip to content

Commit a20753e

Browse files
authored
[PWGHF] Reserve memory before filling charm femto tables (#16671)
1 parent a36119d commit a20753e

3 files changed

Lines changed: 32 additions & 6 deletions

File tree

PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,14 @@ struct HfProducerCharmHadronsTrackFemtoDream {
621621
bool isSelectedMlD0barToKPi = true;
622622
bool isSelectedMlDstarToD0Pi = true;
623623

624+
if constexpr (Channel == DecayChannel::DplusToPiKPi || Channel == DecayChannel::LcToPKPi) {
625+
rowCandCharm3Prong.reserve(rowCandCharm3Prong.lastIndex() + sizeCand * 2 + 1);
626+
} else if constexpr (Channel == DecayChannel::D0ToPiK) {
627+
rowCandCharm2Prong.reserve(rowCandCharm2Prong.lastIndex() + sizeCand * 2 + 1);
628+
} else if constexpr (Channel == DecayChannel::DstarToD0Pi) {
629+
rowCandCharmDstar.reserve(rowCandCharmDstar.lastIndex() + sizeCand + 1);
630+
}
631+
624632
for (const auto& candidate : candidates) {
625633
outputMlD0 = {-1.0f, -1.0f, -1.0f};
626634
outputMlD0bar = {-1.0f, -1.0f, -1.0f};
@@ -894,7 +902,7 @@ struct HfProducerCharmHadronsTrackFemtoDream {
894902
void fillCharmHadMcGen(ParticleType particles)
895903
{
896904
// Filling particle properties
897-
rowCandCharmHadGen.reserve(particles.size());
905+
rowCandCharmHadGen.reserve(particles.size() + 1);
898906
if constexpr (Channel == DecayChannel::DplusToPiKPi) {
899907
for (const auto& particle : particles) {
900908
if (std::abs(particle.flagMcMatchGen()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi) {

PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,14 @@ struct HfProducerCharmHadronsV0FemtoDream {
722722
return;
723723
}
724724

725+
if constexpr (Channel == DecayChannel::DplusToPiKPi || Channel == DecayChannel::LcToPKPi) {
726+
rowCandCharm3Prong.reserve(rowCandCharm3Prong.lastIndex() + sizeCand * 2 + 1);
727+
} else if constexpr (Channel == DecayChannel::D0ToPiK) {
728+
rowCandCharm2Prong.reserve(rowCandCharm2Prong.lastIndex() + sizeCand * 2 + 1);
729+
} else if constexpr (Channel == DecayChannel::DstarToD0Pi) {
730+
rowCandCharmDstar.reserve(rowCandCharmDstar.lastIndex() + sizeCand + 1);
731+
}
732+
725733
outputCollision(vtxZ, mult, multNtr, spher, magField);
726734
if constexpr (IsMc) {
727735
fillMcCollision(col);
@@ -1124,7 +1132,7 @@ struct HfProducerCharmHadronsV0FemtoDream {
11241132
void fillCharmHadMcGen(ParticleType particles)
11251133
{
11261134
// Filling particle properties
1127-
rowCandCharmHadGen.reserve(particles.size());
1135+
rowCandCharmHadGen.reserve(particles.size() + 1);
11281136
if constexpr (Channel == DecayChannel::DplusToPiKPi) {
11291137
for (const auto& particle : particles) {
11301138
if (std::abs(particle.flagMcMatchGen()) == hf_decay::hf_cand_3prong::DecayChannelMain::DplusToPiKPi) {

PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -752,8 +752,11 @@ struct HfTaskCharmHadronsV0FemtoDream {
752752

753753
void processDataLcV0(FilteredCollisions const& cols,
754754
FDV0Particles const& parts,
755-
FilteredCharmCand3Prongs const&)
755+
FilteredCharmCand3Prongs const& candidates)
756756
{
757+
758+
rowFemtoResultCharm3Prong.reserve(candidates.size() + 1);
759+
757760
for (const auto& col : cols) {
758761
eventHisto.fillQA(col);
759762
auto sliceCharmHad = partitionCharmHadron3Prong->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
@@ -784,8 +787,10 @@ struct HfTaskCharmHadronsV0FemtoDream {
784787

785788
void processDataDplusV0(FilteredCollisions const& cols,
786789
FDV0Particles const& parts,
787-
FilteredCharmCand3Prongs const&)
790+
FilteredCharmCand3Prongs const& candidates)
788791
{
792+
rowFemtoResultCharm3Prong.reserve(candidates.size() + 1);
793+
789794
for (const auto& col : cols) {
790795
eventHisto.fillQA(col);
791796
auto sliceCharmHad = partitionCharmHadron3Prong->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
@@ -816,8 +821,10 @@ struct HfTaskCharmHadronsV0FemtoDream {
816821

817822
void processDataD0V0(FilteredCollisions const& cols,
818823
FDV0Particles const& parts,
819-
FilteredCharmCand2Prongs const&)
824+
FilteredCharmCand2Prongs const& candidates)
820825
{
826+
rowFemtoResultCharm2Prong.reserve(candidates.size() + 1);
827+
821828
for (const auto& col : cols) {
822829
eventHisto.fillQA(col);
823830
auto sliceCharmHad = partitionCharmHadron2Prong->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
@@ -848,8 +855,11 @@ struct HfTaskCharmHadronsV0FemtoDream {
848855

849856
void processDataDstarV0(FilteredCollisions const& cols,
850857
FDV0Particles const& parts,
851-
FilteredCharmCandDstars const&)
858+
FilteredCharmCandDstars const& candidates)
852859
{
860+
861+
rowFemtoResultCharmDstar.reserve(candidates.size() + 1);
862+
853863
for (const auto& col : cols) {
854864
eventHisto.fillQA(col);
855865
auto sliceCharmHad = partitionCharmHadronDstar->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);

0 commit comments

Comments
 (0)