Skip to content
28 changes: 19 additions & 9 deletions PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

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

enum class D0CandFlag : uint8_t {
D0 = 0,
D0Bar = 1,
Reflected = 2
};

struct HfProducerCharmHadronsTrackFemtoDream {

Produces<aod::FDCollisions> outputCollision;
Expand Down Expand Up @@ -586,11 +592,13 @@ struct HfProducerCharmHadronsTrackFemtoDream {
bdtScoreFd);

} else if constexpr (Channel == DecayChannel::D0ToPiK) {
int signD0 = 0;
if (candFlag == 0) {
signD0 = +1; // D0
} else if (candFlag == 1) {
signD0 = -1; // anti-D0
int signD0 = -999;
if (candFlag == static_cast<int>(D0CandFlag::D0)) {
signD0 = +1;
} else if (candFlag == static_cast<int>(D0CandFlag::D0Bar)) {
signD0 = -1;
} else if (candFlag == static_cast<int>(D0CandFlag::Reflected)) {
signD0 = 0;
} else {
LOG(error) << "Unexpected candFlag = " << candFlag;
}
Expand Down Expand Up @@ -738,10 +746,12 @@ struct HfProducerCharmHadronsTrackFemtoDream {
LOGF(fatal, "Please check your Ml configuration!!");
}
}
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
if (candidate.isSelD0() && candidate.isSelD0bar())
if (candidate.isSelD0() && candidate.isSelD0bar()) {
fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection
} else {
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
}

} else if constexpr (Channel == DecayChannel::DstarToD0Pi) {
if constexpr (UseCharmMl) {
Expand Down
26 changes: 18 additions & 8 deletions PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ enum V0Channel {
Lambda
};

enum class D0CandFlag : uint8_t {
D0 = 0,
D0Bar = 1,
Reflected = 2
};

struct HfProducerCharmHadronsV0FemtoDream {

Produces<aod::FDCollisions> outputCollision;
Expand Down Expand Up @@ -771,11 +777,13 @@ struct HfProducerCharmHadronsV0FemtoDream {
bdtScoreFd);

} else if constexpr (Channel == DecayChannel::D0ToPiK) {
int signD0 = 0;
if (candFlag == 0) {
signD0 = +1; // D0
} else if (candFlag == 1) {
signD0 = -1; // anti-D0
int signD0 = -999;
if (candFlag == static_cast<int>(D0CandFlag::D0)) {
signD0 = +1;
} else if (candFlag == static_cast<int>(D0CandFlag::D0Bar)) {
signD0 = -1;
} else if (candFlag == static_cast<int>(D0CandFlag::Reflected)) {
signD0 = 0;
} else {
LOG(error) << "Unexpected candFlag = " << candFlag;
}
Expand Down Expand Up @@ -923,10 +931,12 @@ struct HfProducerCharmHadronsV0FemtoDream {
LOGF(fatal, "Please check your Ml configuration!!");
}
}
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
if (candidate.isSelD0() && candidate.isSelD0bar())
if (candidate.isSelD0() && candidate.isSelD0bar()) {
fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection
} else {
fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2));
fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2));
}

} else if constexpr (Channel == DecayChannel::DstarToD0Pi) {
if constexpr (UseCharmMl) {
Expand Down
12 changes: 9 additions & 3 deletions PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ struct HfTaskCharmHadronsTrackFemtoDream {
enum PairSign {
PairNotDefined = 0,
LikeSignPair = 1,
UnLikeSignPair = 2
UnLikeSignPair = 2,
ReflectedPair = 3
};
// decay channels
enum DecayChannel { DplusToPiKPi = 0,
Expand Down Expand Up @@ -529,9 +530,12 @@ struct HfTaskCharmHadronsTrackFemtoDream {
int pairSign = 0;
if (chargeTrack == p2.charge()) {
pairSign = LikeSignPair;
} else {
} else if (chargeTrack == -p2.charge()) {
pairSign = UnLikeSignPair;
} else {
pairSign = ReflectedPair;
}

/// Filling QA histograms of the selected tracks
selectedTrackHisto.fillQA<IsMc, true>(p1, static_cast<aod::femtodreamparticle::MomentumType>(confTempFitVarMomentum.value), col.multNtr(), col.multV0M());

Expand Down Expand Up @@ -655,8 +659,10 @@ struct HfTaskCharmHadronsTrackFemtoDream {
int pairSign = 0;
if (chargeTrack == p2.charge()) {
pairSign = LikeSignPair;
} else {
} else if (chargeTrack == -p2.charge()) {
pairSign = UnLikeSignPair;
} else {
pairSign = ReflectedPair;
}

int charmHadMc = 0;
Expand Down
11 changes: 8 additions & 3 deletions PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ struct HfTaskCharmHadronsV0FemtoDream {
enum PairSign {
PairNotDefined = 0,
LikeSignPair = 1,
UnLikeSignPair = 2
UnLikeSignPair = 2,
ReflectedPair = 3
};
// decay channels
enum DecayChannel { DplusToPiKPi = 0,
Expand Down Expand Up @@ -466,8 +467,10 @@ struct HfTaskCharmHadronsV0FemtoDream {
int pairSign = 0;
if (chargeV0 == p2.charge()) {
pairSign = LikeSignPair;
} else {
} else if (chargeV0 == -p2.charge()) {
pairSign = UnLikeSignPair;
} else {
pairSign = ReflectedPair;
}

int charmHadMc = 0;
Expand Down Expand Up @@ -554,8 +557,10 @@ struct HfTaskCharmHadronsV0FemtoDream {
int pairSign = 0;
if (chargeV0 == p2.charge()) {
pairSign = LikeSignPair;
} else {
} else if (chargeV0 == -p2.charge()) {
pairSign = UnLikeSignPair;
} else {
pairSign = ReflectedPair;
}

int charmHadMc = 0;
Expand Down
Loading