Skip to content

Commit 6e6b37d

Browse files
authored
Update treeCreatorToXiPi.cxx
1 parent 1fa7c23 commit 6e6b37d

1 file changed

Lines changed: 59 additions & 18 deletions

File tree

PWGHF/TableProducer/treeCreatorToXiPi.cxx

Lines changed: 59 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ DECLARE_SOA_COLUMN(TofNSigmaPrFromLambda, tofNSigmaPrFromLambda, float);
163163

164164
DECLARE_SOA_TABLE(HfToXiPiEvs, "AOD", "HFTOXIPIEV",
165165
full::IsEventSel8, full::IsEventSelZ,
166-
full::CollisionId,
167166
full::McCollisionId,
168167
collision::NumContrib,
169168
collision::PosX,
@@ -214,7 +213,6 @@ DECLARE_SOA_TABLE(HfToXiPiFulls, "AOD", "HFTOXIPIFULL",
214213
full::FlagMcMatchRec, full::DebugMcRec, full::OriginRec, full::CollisionMatched);
215214

216215
DECLARE_SOA_TABLE(HfToXiPiLites, "AOD", "HFTOXIPILITE",
217-
full::CollisionId,
218216
full::XPv, full::YPv, full::ZPv, collision::NumContrib, collision::Chi2,
219217
full::XDecayVtxCharmBaryon, full::YDecayVtxCharmBaryon, full::ZDecayVtxCharmBaryon,
220218
full::XDecayVtxCascade, full::YDecayVtxCascade, full::ZDecayVtxCascade,
@@ -249,11 +247,16 @@ struct HfTreeCreatorToXiPi {
249247
Produces<o2::aod::HfToXiPiEvs> rowEv;
250248

251249
Configurable<float> zPvCut{"zPvCut", 10., "Cut on absolute value of primary vertex z coordinate"};
252-
Configurable<bool> useCentrality{"useCentrality", false, "Decide whether to use centrality information"};
253250

254-
using Cents = soa::Join<aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFDDMs>;
255-
using MyEventTable = soa::Join<aod::Collisions, aod::EvSels, aod::PVMultZeqs, Cents>;
256-
using MyTrackTable = soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra>;
251+
//HfHelper hfHelper;
252+
SliceCache cache;
253+
//using SelectedCandidates = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelLc>>;
254+
//Preslice<SelectedCandidates> candidatesPerCollision = aod::hf_cand::collisionId;
255+
Preslice<aod::HfCandToXiPi> candXicPerCollision = aod::hf_cand_xic0_omegac0::collisionId;
256+
257+
using Cents = soa::Join<aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentFDDMs >;
258+
using MyTrackTable = soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra >;
259+
using MyEventTable = soa::Join<aod::Collisions, aod::EvSels, aod::PVMultZeqs, Cents >;
257260

258261
void init(InitContext const&)
259262
{
@@ -262,7 +265,7 @@ struct HfTreeCreatorToXiPi {
262265
}
263266
}
264267

265-
template <typename T>
268+
template <bool useCentrality, typename T>
266269
void fillEvent(const T& collision, float cutZPv)
267270
{
268271
float centFT0A = -1.f;
@@ -280,7 +283,6 @@ struct HfTreeCreatorToXiPi {
280283

281284
rowEv(
282285
collision.sel8(), std::abs(collision.posZ()) < cutZPv,
283-
collision.globalIndex(),
284286
-1,
285287
collision.numContrib(),
286288
collision.posX(),
@@ -300,7 +302,7 @@ struct HfTreeCreatorToXiPi {
300302
void fillCandidate(const T& candidate, int8_t flagMc, int8_t debugMc, int8_t originMc, bool collisionMatched)
301303
{
302304
rowCandidateFull(
303-
candidate.collisionId(),
305+
rowEv.lastIndex(),
304306
candidate.xPv(),
305307
candidate.yPv(),
306308
candidate.zPv(),
@@ -418,7 +420,6 @@ struct HfTreeCreatorToXiPi {
418420
if (candidate.resultSelections() && candidate.statusPidCharmBaryon() && candidate.statusInvMassLambda() && candidate.statusInvMassCascade() && candidate.statusInvMassCharmBaryon()) {
419421

420422
rowCandidateLite(
421-
candidate.collisionId(),
422423
candidate.xPv(),
423424
candidate.yPv(),
424425
candidate.zPv(),
@@ -497,7 +498,7 @@ struct HfTreeCreatorToXiPi {
497498
// Filling event properties
498499
rowEv.reserve(collisions.size());
499500
for (const auto& collision : collisions) {
500-
fillEvent(collision, zPvCut);
501+
fillEvent<false>(collision, zPvCut);
501502
}
502503

503504
// Filling candidate properties
@@ -506,15 +507,35 @@ struct HfTreeCreatorToXiPi {
506507
fillCandidate(candidate, -7, -7, RecoDecay::OriginType::None, false);
507508
}
508509
}
509-
PROCESS_SWITCH(HfTreeCreatorToXiPi, processDataFull, "Process data with full information", true);
510+
PROCESS_SWITCH(HfTreeCreatorToXiPi, processDataFull, "Process data with full information w/o centrality", true);
511+
512+
void processDataFullWithCentrality(MyEventTable const& collisions, MyTrackTable const&,
513+
soa::Join<aod::HfCandToXiPi, aod::HfSelToXiPi> const& candidates)
514+
{
515+
// Filling event properties
516+
rowEv.reserve(collisions.size());
517+
for (const auto& collision : collisions) {
518+
auto thisCollId = collision.globalIndex();
519+
auto groupedXicCandidates = candidates.sliceBy(candXicPerCollision, thisCollId);
520+
auto sizeTableCand = groupedXicCandidates.size();
521+
fillEvent<true>(collision, zPvCut);
522+
523+
// Filling candidate properties
524+
rowCandidateFull.reserve(sizeTableCand);
525+
for (const auto& candidate : groupedXicCandidates) {
526+
fillCandidate(candidate, -7, -7, RecoDecay::OriginType::None, false);
527+
}
528+
}
529+
}
530+
PROCESS_SWITCH(HfTreeCreatorToXiPi, processDataFullWithCentrality, "Process data with full information with centrality", false);
510531

511532
void processMcFullXic0(MyEventTable const& collisions, MyTrackTable const&,
512533
soa::Join<aod::HfCandToXiPi, aod::HfSelToXiPi, aod::HfXicToXiPiMCRec> const& candidates)
513534
{
514535
// Filling event properties
515536
rowEv.reserve(collisions.size());
516537
for (const auto& collision : collisions) {
517-
fillEvent(collision, zPvCut);
538+
fillEvent<false>(collision, zPvCut);
518539
}
519540

520541
// Filling candidate properties
@@ -523,15 +544,35 @@ struct HfTreeCreatorToXiPi {
523544
fillCandidate(candidate, candidate.flagMcMatchRec(), candidate.debugMcRec(), candidate.originRec(), candidate.collisionMatched());
524545
}
525546
}
526-
PROCESS_SWITCH(HfTreeCreatorToXiPi, processMcFullXic0, "Process MC with full information for xic0", false);
547+
PROCESS_SWITCH(HfTreeCreatorToXiPi, processMcFullXic0, "Process MC with full information for xic0 w/o centrality", false);
548+
549+
void processMcFullXic0WithCentrality(MyEventTable const& collisions, MyTrackTable const&,
550+
soa::Join<aod::HfCandToXiPi, aod::HfSelToXiPi, aod::HfXicToXiPiMCRec> const& candidates)
551+
{
552+
// Filling event properties
553+
rowEv.reserve(collisions.size());
554+
for (const auto& collision : collisions) {
555+
auto thisCollId = collision.globalIndex();
556+
auto groupedXicCandidates = candidates.sliceBy(candXicPerCollision, thisCollId);
557+
auto sizeTableCand = groupedXicCandidates.size();
558+
fillEvent<true>(collision, zPvCut);
559+
560+
// Filling candidate properties
561+
rowCandidateFull.reserve(sizeTableCand);
562+
for (const auto& candidate : groupedXicCandidates) {
563+
fillCandidate(candidate, candidate.flagMcMatchRec(), candidate.debugMcRec(), candidate.originRec(), candidate.collisionMatched());
564+
}
565+
}
566+
}
567+
PROCESS_SWITCH(HfTreeCreatorToXiPi, processMcFullXic0WithCentrality, "Process MC with full information for xic0 with centrality", false);
527568

528569
void processMcFullOmegac0(MyEventTable const& collisions, MyTrackTable const&,
529570
soa::Join<aod::HfCandToXiPi, aod::HfSelToXiPi, aod::HfOmegacToXiPiMCRec> const& candidates)
530571
{
531572
// Filling event properties
532573
rowEv.reserve(collisions.size());
533574
for (const auto& collision : collisions) {
534-
fillEvent(collision, zPvCut);
575+
fillEvent<false>(collision, zPvCut);
535576
}
536577

537578
// Filling candidate properties
@@ -548,7 +589,7 @@ struct HfTreeCreatorToXiPi {
548589
// Filling event properties
549590
rowEv.reserve(collisions.size());
550591
for (const auto& collision : collisions) {
551-
fillEvent(collision, zPvCut);
592+
fillEvent<false>(collision, zPvCut);
552593
}
553594

554595
// Filling candidate properties
@@ -565,7 +606,7 @@ struct HfTreeCreatorToXiPi {
565606
// Filling event properties
566607
rowEv.reserve(collisions.size());
567608
for (const auto& collision : collisions) {
568-
fillEvent(collision, zPvCut);
609+
fillEvent<false>(collision, zPvCut);
569610
}
570611

571612
// Filling candidate properties
@@ -582,7 +623,7 @@ struct HfTreeCreatorToXiPi {
582623
// Filling event properties
583624
rowEv.reserve(collisions.size());
584625
for (const auto& collision : collisions) {
585-
fillEvent(collision, zPvCut);
626+
fillEvent<false>(collision, zPvCut);
586627
}
587628

588629
// Filling candidate properties

0 commit comments

Comments
 (0)