Skip to content

Commit 5cb638e

Browse files
[PWGHF] Change the logic for fill charm table for D0 reflection (#14384)
1 parent 4cbdde3 commit 5cb638e

File tree

4 files changed

+54
-23
lines changed

4 files changed

+54
-23
lines changed

PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12-
/// \file femtoDreamProducer.cxx
12+
/// \file producerCharmHadronsTrackFemtoDream.cxx
1313
/// \brief Tasks that produces the track tables used for the pairing
1414
/// \author Ravindra Singh, GSI, ravindra.singh@cern.ch
1515
/// \author Biao Zhang, Heidelberg University, biao.zhang@cern.ch
@@ -98,6 +98,12 @@ enum DecayChannel { DplusToPiKPi = 0,
9898
DstarToD0Pi
9999
};
100100

101+
enum class D0CandFlag : uint8_t {
102+
D0 = 0,
103+
D0Bar = 1,
104+
Reflected = 2
105+
};
106+
101107
struct HfProducerCharmHadronsTrackFemtoDream {
102108

103109
Produces<aod::FDCollisions> outputCollision;
@@ -586,11 +592,13 @@ struct HfProducerCharmHadronsTrackFemtoDream {
586592
bdtScoreFd);
587593

588594
} 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
595+
int signD0 = -999;
596+
if (candFlag == static_cast<int>(D0CandFlag::D0)) {
597+
signD0 = +1;
598+
} else if (candFlag == static_cast<int>(D0CandFlag::D0Bar)) {
599+
signD0 = -1;
600+
} else if (candFlag == static_cast<int>(D0CandFlag::Reflected)) {
601+
signD0 = 0;
594602
} else {
595603
LOG(error) << "Unexpected candFlag = " << candFlag;
596604
}
@@ -738,10 +746,12 @@ struct HfProducerCharmHadronsTrackFemtoDream {
738746
LOGF(fatal, "Please check your Ml configuration!!");
739747
}
740748
}
741-
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
742-
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
743-
if (candidate.isSelD0() && candidate.isSelD0bar())
749+
if (candidate.isSelD0() && candidate.isSelD0bar()) {
744750
fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection
751+
} else {
752+
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
753+
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
754+
}
745755

746756
} else if constexpr (Channel == DecayChannel::DstarToD0Pi) {
747757
if constexpr (UseCharmMl) {

PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ enum V0Channel {
104104
Lambda
105105
};
106106

107+
enum class D0CandFlag : uint8_t {
108+
D0 = 0,
109+
D0Bar = 1,
110+
Reflected = 2
111+
};
112+
107113
struct HfProducerCharmHadronsV0FemtoDream {
108114

109115
Produces<aod::FDCollisions> outputCollision;
@@ -771,11 +777,13 @@ struct HfProducerCharmHadronsV0FemtoDream {
771777
bdtScoreFd);
772778

773779
} else if constexpr (Channel == DecayChannel::D0ToPiK) {
774-
int signD0 = 0;
775-
if (candFlag == 0) {
776-
signD0 = +1; // D0
777-
} else if (candFlag == 1) {
778-
signD0 = -1; // anti-D0
780+
int signD0 = -999;
781+
if (candFlag == static_cast<int>(D0CandFlag::D0)) {
782+
signD0 = +1;
783+
} else if (candFlag == static_cast<int>(D0CandFlag::D0Bar)) {
784+
signD0 = -1;
785+
} else if (candFlag == static_cast<int>(D0CandFlag::Reflected)) {
786+
signD0 = 0;
779787
} else {
780788
LOG(error) << "Unexpected candFlag = " << candFlag;
781789
}
@@ -923,10 +931,12 @@ struct HfProducerCharmHadronsV0FemtoDream {
923931
LOGF(fatal, "Please check your Ml configuration!!");
924932
}
925933
}
926-
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
927-
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
928-
if (candidate.isSelD0() && candidate.isSelD0bar())
934+
if (candidate.isSelD0() && candidate.isSelD0bar()) {
929935
fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection
936+
} else {
937+
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
938+
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
939+
}
930940

931941
} else if constexpr (Channel == DecayChannel::DstarToD0Pi) {
932942
if constexpr (UseCharmMl) {

PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ struct HfTaskCharmHadronsTrackFemtoDream {
7575
enum PairSign {
7676
PairNotDefined = 0,
7777
LikeSignPair = 1,
78-
UnLikeSignPair = 2
78+
UnLikeSignPair = 2,
79+
ReflectedPair = 3
7980
};
8081
// decay channels
8182
enum DecayChannel { DplusToPiKPi = 0,
@@ -529,9 +530,12 @@ struct HfTaskCharmHadronsTrackFemtoDream {
529530
int pairSign = 0;
530531
if (chargeTrack == p2.charge()) {
531532
pairSign = LikeSignPair;
532-
} else {
533+
} else if (chargeTrack == -p2.charge()) {
533534
pairSign = UnLikeSignPair;
535+
} else {
536+
pairSign = ReflectedPair;
534537
}
538+
535539
/// Filling QA histograms of the selected tracks
536540
selectedTrackHisto.fillQA<IsMc, true>(p1, static_cast<aod::femtodreamparticle::MomentumType>(confTempFitVarMomentum.value), col.multNtr(), col.multV0M());
537541

@@ -655,8 +659,10 @@ struct HfTaskCharmHadronsTrackFemtoDream {
655659
int pairSign = 0;
656660
if (chargeTrack == p2.charge()) {
657661
pairSign = LikeSignPair;
658-
} else {
662+
} else if (chargeTrack == -p2.charge()) {
659663
pairSign = UnLikeSignPair;
664+
} else {
665+
pairSign = ReflectedPair;
660666
}
661667

662668
int charmHadMc = 0;

PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ struct HfTaskCharmHadronsV0FemtoDream {
6969
enum PairSign {
7070
PairNotDefined = 0,
7171
LikeSignPair = 1,
72-
UnLikeSignPair = 2
72+
UnLikeSignPair = 2,
73+
ReflectedPair = 3
7374
};
7475
// decay channels
7576
enum DecayChannel { DplusToPiKPi = 0,
@@ -466,8 +467,10 @@ struct HfTaskCharmHadronsV0FemtoDream {
466467
int pairSign = 0;
467468
if (chargeV0 == p2.charge()) {
468469
pairSign = LikeSignPair;
469-
} else {
470+
} else if (chargeV0 == -p2.charge()) {
470471
pairSign = UnLikeSignPair;
472+
} else {
473+
pairSign = ReflectedPair;
471474
}
472475

473476
int charmHadMc = 0;
@@ -554,8 +557,10 @@ struct HfTaskCharmHadronsV0FemtoDream {
554557
int pairSign = 0;
555558
if (chargeV0 == p2.charge()) {
556559
pairSign = LikeSignPair;
557-
} else {
560+
} else if (chargeV0 == -p2.charge()) {
558561
pairSign = UnLikeSignPair;
562+
} else {
563+
pairSign = ReflectedPair;
559564
}
560565

561566
int charmHadMc = 0;

0 commit comments

Comments
 (0)