Skip to content

Commit 27f8d14

Browse files
committed
candidateSelectorXicToXiPiPi split process[Data,Mc] to DCAFitter and KF
1 parent c9a7cd3 commit 27f8d14

1 file changed

Lines changed: 35 additions & 7 deletions

File tree

‎PWGHF/TableProducer/candidateSelectorXicToXiPiPi.cxx‎

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,11 @@ struct HfCandidateSelectorXicToXiPiPi {
121121

122122
void init(InitContext&)
123123
{
124-
if ((doprocessData + doprocessMc) != 1) {
124+
if ((doprocessDataWithDCAFitter + doprocessDataWithKFParticle + doprocessMcWithDCAFitter + doprocessMcWithKFParticle) != 1) {
125125
LOGP(fatal, "Enable exactly one process function at a time.");
126126
}
127+
const bool doprocessData = doprocessDataWithDCAFitter || doprocessDataWithKFParticle;
128+
const bool doprocessMc = doprocessMcWithDCAFitter || doprocessMcWithKFParticle;
127129

128130
if (usePid) {
129131
// pion
@@ -699,8 +701,8 @@ struct HfCandidateSelectorXicToXiPiPi {
699701
}
700702
}
701703

702-
void processData(aod::HfCandXic const& hfCandsXic,
703-
TracksExtraWPid const& tracks)
704+
template <aod::hf_cand::VertexerType ReconstructionType, typename CandType>
705+
void runData(CandType const& hfCandsXic, TracksExtraWPid const& tracks)
704706
{
705707
for (const auto& hfCandXic : hfCandsXic) {
706708
int statusXicToXiPiPi = 0;
@@ -727,10 +729,9 @@ struct HfCandidateSelectorXicToXiPiPi {
727729
hfSelXicToXiPiPiCandidate(statusXicToXiPiPi);
728730
}
729731
}
730-
PROCESS_SWITCH(HfCandidateSelectorXicToXiPiPi, processData, "Select candidates without MC matching information", true);
731732

732-
void processMc(soa::Join<aod::HfCandXic, aod::HfCandXicMcRec> const& hfCandsXic,
733-
TracksExtraWPid const& tracks)
733+
template <aod::hf_cand::VertexerType ReconstructionType, typename CandType>
734+
void runMc(CandType const& hfCandsXic, TracksExtraWPid const& tracks)
734735
{
735736
for (const auto& hfCandXic : hfCandsXic) {
736737
int statusXicToXiPiPi = 0;
@@ -764,7 +765,34 @@ struct HfCandidateSelectorXicToXiPiPi {
764765
hfSelXicToXiPiPiCandidate(statusXicToXiPiPi);
765766
}
766767
}
767-
PROCESS_SWITCH(HfCandidateSelectorXicToXiPiPi, processMc, "Select candidates with MC matching information", false);
768+
769+
void processDataWithDCAFitter(aod::HfCandXic const& hfCandsXic,
770+
TracksExtraWPid const& tracks)
771+
{
772+
runData<aod::hf_cand::VertexerType::DCAFitter>(hfCandsXic, tracks);
773+
}
774+
PROCESS_SWITCH(HfCandidateSelectorXicToXiPiPi, processDataWithDCAFitter, "Select candidates without MC matching information using DCAFitter", true);
775+
776+
void processDataWithKFParticle(soa::Join<aod::HfCandXic, aod::HfCandXicKF> const& hfCandsXic,
777+
TracksExtraWPid const& tracks)
778+
{
779+
runData<aod::hf_cand::VertexerType::KfParticle>(hfCandsXic, tracks);
780+
}
781+
PROCESS_SWITCH(HfCandidateSelectorXicToXiPiPi, processDataWithKFParticle, "Select candidates without MC matching information using KFParticle", false);
782+
783+
void processMcWithDCAFitter(soa::Join<aod::HfCandXic, aod::HfCandXicMcRec> const& hfCandsXic,
784+
TracksExtraWPid const& tracks)
785+
{
786+
runMc<aod::hf_cand::VertexerType::DCAFitter>(hfCandsXic, tracks);
787+
}
788+
PROCESS_SWITCH(HfCandidateSelectorXicToXiPiPi, processMcWithDCAFitter, "Select candidates with MC matching information using DCAFitter", false);
789+
790+
void processMcWithKFParticle(soa::Join<aod::HfCandXic, aod::HfCandXicMcRec, aod::HfCandXicKF> const& hfCandsXic,
791+
TracksExtraWPid const& tracks)
792+
{
793+
runMc<aod::hf_cand::VertexerType::KfParticle>(hfCandsXic, tracks);
794+
}
795+
PROCESS_SWITCH(HfCandidateSelectorXicToXiPiPi, processMcWithKFParticle, "Select candidates with MC matching information using KFParticle", false);
768796
};
769797

770798
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)