@@ -52,6 +52,7 @@ using namespace o2::hf_centrality;
5252struct HfCorrelatorDplusDplusReduced {
5353 Produces<o2::aod::HfCandDpFulls> rowCandidateFull;
5454 Produces<o2::aod::HfCandDpLites> rowCandidateLite;
55+ Produces<o2::aod::HfCandDpTinys> rowCandidateTiny;
5556 Produces<o2::aod::HfCandDpFullEvs> rowCandidateFullEvents;
5657 Produces<o2::aod::HfCandDpMls> rowCandidateMl;
5758
@@ -60,6 +61,7 @@ struct HfCorrelatorDplusDplusReduced {
6061
6162 Configurable<int > selectionFlagDplus{" selectionFlagDplus" , 1 , " Selection Flag for Dplus" };
6263 Configurable<bool > fillCandidateLiteTable{" fillCandidateLiteTable" , false , " Switch to fill lite table with candidate properties" };
64+ Configurable<bool > fillCandidateTinyTable{" fillCandidateTinyTable" , false , " Switch to fill tiny table with candidate properties" };
6365 // parameters for production of training samples
6466 Configurable<bool > fillCorrBkgs{" fillCorrBkgs" , false , " Flag to fill derived tables with correlated background candidates" };
6567 Configurable<std::vector<int >> classMlIndexes{" classMlIndexes" , {0 , 2 }, " Indexes of ML bkg and non-prompt scores." };
@@ -113,11 +115,12 @@ struct HfCorrelatorDplusDplusReduced {
113115 }
114116
115117 template <typename Coll, bool doMc = false , bool doMl = false , typename T>
116- void fillCandidateTable (const T& candidate, int localEvIdx = -1 )
118+ void fillCandidateTable (const T& candidate, int localEvIdx = -1 , int sign = 1 )
117119 {
118120 int8_t flagMc = 0 ;
119121 int8_t originMc = 0 ;
120122 int8_t channelMc = 0 ;
123+
121124 if constexpr (doMc) {
122125 flagMc = candidate.flagMcMatchRec ();
123126 originMc = candidate.originMcRec ();
@@ -140,7 +143,18 @@ struct HfCorrelatorDplusDplusReduced {
140143 cent = getCentralityColl (coll, centEstimator);
141144 }
142145
143- if (fillCandidateLiteTable) {
146+ if (fillCandidateTinyTable) {
147+ rowCandidateTiny (
148+ candidate.isSelDplusToPiKPi (),
149+ hfHelper.invMassDplusToPiKPi (candidate),
150+ sign * candidate.pt (),
151+ candidate.eta (),
152+ candidate.phi (),
153+ localEvIdx,
154+ flagMc,
155+ originMc,
156+ channelMc);
157+ } else if (fillCandidateLiteTable) {
144158 rowCandidateLite (
145159 candidate.chi2PCA (),
146160 candidate.decayLength (),
@@ -176,15 +190,14 @@ struct HfCorrelatorDplusDplusReduced {
176190 candidate.tpcTofNSigmaKa2 (),
177191 candidate.isSelDplusToPiKPi (),
178192 hfHelper.invMassDplusToPiKPi (candidate),
179- candidate.pt (),
193+ sign * candidate.pt (),
180194 candidate.cpa (),
181195 candidate.cpaXY (),
182196 candidate.maxNormalisedDeltaIP (),
183197 candidate.eta (),
184198 candidate.phi (),
185199 hfHelper.yDplus (candidate),
186200 cent,
187- coll.numContrib (),
188201 localEvIdx,
189202 flagMc,
190203 originMc,
@@ -252,7 +265,7 @@ struct HfCorrelatorDplusDplusReduced {
252265 candidate.tpcTofNSigmaKa2 (),
253266 candidate.isSelDplusToPiKPi (),
254267 hfHelper.invMassDplusToPiKPi (candidate),
255- candidate.pt (),
268+ sign * candidate.pt (),
256269 candidate.p (),
257270 candidate.cpa (),
258271 candidate.cpaXY (),
@@ -270,7 +283,7 @@ struct HfCorrelatorDplusDplusReduced {
270283 }
271284 }
272285
273- void processData (aod::Collisions const & collisions, SelectedCandidates const & candidates)
286+ void processData (aod::Collisions const & collisions, SelectedCandidates const & candidates, aod::Tracks const & )
274287 {
275288 static int lastRunNumber = -1 ;
276289 // reserve memory
@@ -297,14 +310,14 @@ struct HfCorrelatorDplusDplusReduced {
297310
298311 const auto colId = collision.globalIndex ();
299312 auto candidatesInThisCollision = candidates.sliceBy (tracksPerCollision, colId);
300- if (skipSingleD) {
301- if (candidatesInThisCollision.size () < 2 ) { // o2-linter: disable=magic-number (number of candidate must be larger than 1)
313+ if (skipSingleD)
314+ if (candidatesInThisCollision.size () < 2 ) // o2-linter: disable=magic-number (number of candidate must be larger than 1)
302315 continue ;
303- }
304- }
305316 fillEvent (collision);
306317 for (const auto & candidate : candidatesInThisCollision) {
307- fillCandidateTable<aod::Collisions>(candidate, rowCandidateFullEvents.lastIndex ());
318+ auto prong_candidate = candidate.prong1_as <aod::Tracks>();
319+ auto candidate_sign = prong_candidate.sign ();
320+ fillCandidateTable<aod::Collisions>(candidate, rowCandidateFullEvents.lastIndex (), candidate_sign);
308321 }
309322 }
310323 }
@@ -324,14 +337,14 @@ struct HfCorrelatorDplusDplusReduced {
324337 for (const auto & collision : collisions) { // No skimming for MC data. No Zorro !
325338 const auto colId = collision.globalIndex ();
326339 auto candidatesInThisCollision = candidates.sliceBy (tracksPerCollision, colId);
327- if (skipSingleD) {
328- if (candidatesInThisCollision.size () < 2 ) { // o2-linter: disable=magic-number (number of candidate must be larger than 1)
340+ if (skipSingleD)
341+ if (candidatesInThisCollision.size () < 2 ) // o2-linter: disable=magic-number (number of candidate must be larger than 1)
329342 continue ;
330- }
331- }
332343 fillEvent (collision);
333344 for (const auto & candidate : candidatesInThisCollision) {
334- fillCandidateTable<aod::Collisions, true >(candidate, rowCandidateFullEvents.lastIndex ());
345+ auto prong_candidate = candidate.prong1_as <aod::Tracks>();
346+ auto candidate_sign = prong_candidate.sign ();
347+ fillCandidateTable<aod::Collisions, true >(candidate, rowCandidateFullEvents.lastIndex (), candidate_sign);
335348 }
336349 }
337350 }
@@ -346,11 +359,9 @@ struct HfCorrelatorDplusDplusReduced {
346359 for (const auto & mccollision : mccollisions) { // No skimming for MC data. No Zorro !
347360 const auto colId = mccollision.globalIndex ();
348361 const auto particlesInThisCollision = mcparticles.sliceBy (mcParticlesPerMcCollision, colId);
349- if (skipSingleD) {
350- if (particlesInThisCollision.size () < 2 ) { // o2-linter: disable=magic-number (number of candidate must be larger than 1)
362+ if (skipSingleD)
363+ if (particlesInThisCollision.size () < 2 ) // o2-linter: disable=magic-number (number of candidate must be larger than 1)
351364 continue ;
352- }
353- }
354365 rowCandidateMcCollisions (
355366 mccollision.posX (),
356367 mccollision.posY (),
0 commit comments