Skip to content

Commit a7a71a7

Browse files
[PWGHF] Fill correct sign of D0 in the Charm table and add flag for the nSigma PID in the Femto task (#14356)
1 parent a671bcb commit a7a71a7

File tree

2 files changed

+45
-8
lines changed

2 files changed

+45
-8
lines changed

PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -586,10 +586,18 @@ struct HfProducerCharmHadronsTrackFemtoDream {
586586
bdtScoreFd);
587587

588588
} else if constexpr (Channel == DecayChannel::D0ToPiK) {
589+
int signD0 = 0;
590+
if (candFlag == 0) {
591+
signD0 = +1; // D0
592+
} else if (candFlag == 1) {
593+
signD0 = -1; // anti-D0
594+
} else {
595+
LOG(error) << "Unexpected candFlag = " << candFlag;
596+
}
589597
rowCandCharm2Prong(
590598
outputCollision.lastIndex(),
591599
timeStamp,
592-
trackPos1.sign() + trackNeg.sign(),
600+
signD0,
593601
trackPos1.globalIndex(),
594602
trackNeg.globalIndex(),
595603
trackPos1.pt(),

PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,30 @@ struct HfTaskCharmHadronsTrackFemtoDream {
767767
: NegativeCharge;
768768

769769
timeStamp = part.timeStamp();
770-
770+
float tpcNSigma = 999.f;
771+
float tofNSigma = 999.f;
772+
switch (trackSel.pdgCodeTrack1.value) {
773+
case kProton:
774+
tpcNSigma = part.tpcNSigmaPr();
775+
tofNSigma = part.tofNSigmaPr();
776+
break;
777+
case kPiPlus:
778+
tpcNSigma = part.tpcNSigmaPi();
779+
tofNSigma = part.tofNSigmaPi();
780+
break;
781+
case kKPlus:
782+
tpcNSigma = part.tpcNSigmaKa();
783+
tofNSigma = part.tofNSigmaKa();
784+
break;
785+
case kDeuteron:
786+
tpcNSigma = part.tpcNSigmaDe();
787+
tofNSigma = part.tofNSigmaDe();
788+
break;
789+
default:
790+
LOG(fatal) << "Unhandled PDG code in PID switch: "
791+
<< trackSel.pdgCodeTrack1.value;
792+
break;
793+
}
771794
rowFemtoResultTrk(
772795
col.globalIndex(),
773796
timeStamp,
@@ -779,8 +802,8 @@ struct HfTaskCharmHadronsTrackFemtoDream {
779802
part.tpcNClsFound(),
780803
part.tpcNClsFindable(),
781804
part.tpcNClsCrossedRows(),
782-
part.tpcNSigmaPr(),
783-
part.tofNSigmaPr());
805+
tpcNSigma,
806+
tofNSigma);
784807
}
785808

786809
// ---- Fill Collision Table ----
@@ -874,9 +897,12 @@ struct HfTaskCharmHadronsTrackFemtoDream {
874897
auto sliceCharmHad = partitionCharmHadron2Prong->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
875898
if (fillTableWithCharm.value && sliceCharmHad.size() == 0) {
876899
continue;
900+
} else {
901+
fillTables<false, DecayChannel::D0ToPiK>(col, sliceTrk1, sliceCharmHad);
902+
}
903+
if (sliceCharmHad.size() > 0 && sliceTrk1.size() > 0) {
904+
doSameEvent<false, DecayChannel::D0ToPiK, FilteredCharmCand2Prongs>(sliceCharmHad, sliceTrk1, parts, col);
877905
}
878-
fillTables<false, DecayChannel::D0ToPiK>(col, sliceTrk1, sliceCharmHad);
879-
doSameEvent<false, DecayChannel::D0ToPiK, FilteredCharmCand2Prongs>(sliceCharmHad, sliceTrk1, parts, col);
880906
}
881907
if (mixSetting.doMixEvent) {
882908
switch (mixSetting.mixingBinPolicy) {
@@ -906,9 +932,12 @@ struct HfTaskCharmHadronsTrackFemtoDream {
906932
auto sliceCharmHad = partitionCharmHadronDstar->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache);
907933
if (fillTableWithCharm.value && sliceCharmHad.size() == 0) {
908934
continue;
935+
} else {
936+
fillTables<false, DecayChannel::DstarToD0Pi>(col, sliceTrk1, sliceCharmHad);
937+
}
938+
if (sliceCharmHad.size() > 0 && sliceTrk1.size() > 0) {
939+
doSameEvent<false, DecayChannel::DstarToD0Pi, FilteredCharmCandDstars>(sliceCharmHad, sliceTrk1, parts, col);
909940
}
910-
fillTables<false, DecayChannel::DstarToD0Pi>(col, sliceTrk1, sliceCharmHad);
911-
doSameEvent<false, DecayChannel::DstarToD0Pi, FilteredCharmCandDstars>(sliceCharmHad, sliceTrk1, parts, col);
912941
}
913942
if (mixSetting.doMixEvent) {
914943
switch (mixSetting.mixingBinPolicy) {

0 commit comments

Comments
 (0)