@@ -38,7 +38,7 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
3838// NB: runDataProcessing.h must be included after customize!
3939#include " Framework/runDataProcessing.h"
4040
41- template <typename JetTable, typename ConstituentTable, typename ConstituentSubTable>
41+ template <typename CandidateTableData, typename CandidateTableMCD, typename ParticleTable, typename JetTable, typename ConstituentTable, typename ConstituentSubTable>
4242struct JetFinderHFTask {
4343 Produces<JetTable> jetsTable;
4444 Produces<ConstituentTable> constituentsTable;
@@ -124,15 +124,15 @@ struct JetFinderHFTask {
124124 jetFinder.ghostArea = jetGhostArea;
125125 jetFinder.ghostRepeatN = ghostRepeat;
126126
127- if (doprocessD0ChargedJetsData || doprocessD0ChargedJetsMCD || doprocessD0ChargedJetsMCP ) { // Note : need to be careful if configurable workflow options are added later
127+ if constexpr (std::is_same_v<std:: decay_t <CandidateTableData>, CandidatesD0Data> ) { // Note : need to be careful if configurable workflow options are added later
128128 candPDG = static_cast <int >(pdg::Code::kD0 );
129129 candDecay = static_cast <int >(aod::hf_cand_2prong::DecayType::D0ToPiK);
130130 }
131- if (doprocessBplusChargedJetsData || doprocessBplusChargedJetsMCD || doprocessBplusChargedJetsMCP ) {
131+ if constexpr (std::is_same_v<std:: decay_t <CandidateTableData>, CandidatesBplusData> ) {
132132 candPDG = static_cast <int >(pdg::Code::kBPlus );
133133 candDecay = static_cast <int >(aod::hf_cand_bplus::DecayType::BplusToD0Pi);
134134 }
135- if (doprocessLcChargedJetsData || doprocessLcChargedJetsMCD || doprocessLcChargedJetsMCP ) {
135+ if constexpr (std::is_same_v<std:: decay_t <CandidateTableData>, CandidatesLcData> ) {
136136 candPDG = static_cast <int >(pdg::Code::kLambdaCPlus );
137137 candDecay = static_cast <int >(aod::hf_cand_3prong::DecayType::LcToPKPi);
138138 }
@@ -216,57 +216,32 @@ struct JetFinderHFTask {
216216 }
217217 PROCESS_SWITCH (JetFinderHFTask, processDummy, " Dummy process function turned on by default" , true );
218218
219- void processD0ChargedJetsData (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels>>::iterator const & collision, JetTracks const & tracks, CandidateD0Data const & candidates) { analyseData (collision, tracks, candidates); }
220- PROCESS_SWITCH (JetFinderHFTask, processD0ChargedJetsData , " D0 jet finding on data" , false );
219+ void processChargedJetsData (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels>>::iterator const & collision, JetTracks const & tracks, CandidateTableData const & candidates) { analyseData (collision, tracks, candidates); }
220+ PROCESS_SWITCH (JetFinderHFTask, processChargedJetsData , " charged hf jet finding on data" , false );
221221
222- void processD0ChargedJetsMCD (soa::Join<aod::Collisions, aod::EvSels>::iterator const & collision, JetTracks const & tracks, CandidateD0MC const & candidates) { analyseMCD (collision, tracks, candidates); }
223- PROCESS_SWITCH (JetFinderHFTask, processD0ChargedJetsMCD , " D0 finding on MC detector level" , false );
222+ void processChargedJetsMCD (soa::Join<aod::Collisions, aod::EvSels>::iterator const & collision, JetTracks const & tracks, CandidateTableMCD const & candidates) { analyseMCD (collision, tracks, candidates); }
223+ PROCESS_SWITCH (JetFinderHFTask, processChargedJetsMCD , " charged hf jet finding on MC detector level" , false );
224224
225- void processD0ChargedJetsMCP (aod::McCollision const & collision,
226- JetParticlesD0 const & particles)
225+ void processChargedJetsMCP (aod::McCollision const & collision,
226+ ParticleTable const & particles)
227227 {
228228 analyseMCP (collision, particles);
229229 }
230- PROCESS_SWITCH (JetFinderHFTask, processD0ChargedJetsMCP, " D0 jet finding on MC particle level" , false );
231-
232- void processBplusChargedJetsData (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels>>::iterator const & collision, JetTracks const & tracks, CandidateBplusData const & candidates, aod::HfCand2Prong const & HFdaughters) { analyseData (collision, tracks, candidates); }
233- PROCESS_SWITCH (JetFinderHFTask, processBplusChargedJetsData, " B+ jet finding on data" , false );
234-
235- void processBplusChargedJetsMCD (soa::Join<aod::Collisions, aod::EvSels>::iterator const & collision, JetTracks const & tracks, CandidateBplusMC const & candidates, aod::HfCand2Prong const & HFdaughters) { analyseMCD (collision, tracks, candidates); }
236- PROCESS_SWITCH (JetFinderHFTask, processBplusChargedJetsMCD, " B+ finding on MC detector level" , false );
237-
238- void processBplusChargedJetsMCP (aod::McCollision const & collision,
239- JetParticlesBplus const & particles)
240- {
241- analyseMCP (collision, particles);
242- }
243- PROCESS_SWITCH (JetFinderHFTask, processBplusChargedJetsMCP, " B+ jet finding on MC particle level" , false );
244-
245- void processLcChargedJetsData (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels>>::iterator const & collision, JetTracks const & tracks, CandidateLcData const & candidates) { analyseData (collision, tracks, candidates); }
246- PROCESS_SWITCH (JetFinderHFTask, processLcChargedJetsData, " Lc jet finding on data" , false );
247-
248- void processLcChargedJetsMCD (soa::Join<aod::Collisions, aod::EvSels>::iterator const & collision, JetTracks const & tracks, CandidateLcMC const & candidates) { analyseMCD (collision, tracks, candidates); }
249- PROCESS_SWITCH (JetFinderHFTask, processLcChargedJetsMCD, " Lc finding on MC detector level" , false );
250-
251- void processLcChargedJetsMCP (aod::McCollision const & collision,
252- JetParticlesLc const & particles)
253- {
254- analyseMCP (collision, particles);
255- }
256- PROCESS_SWITCH (JetFinderHFTask, processLcChargedJetsMCP, " Lc jet finding on MC particle level" , false );
230+ PROCESS_SWITCH (JetFinderHFTask, processChargedJetsMCP, " hf jet finding on MC particle level" , false );
257231};
258232/*
259- using JetFinderD0DataCharged = JetFinderHFTask<o2::aod::D0ChargedJets, o2::aod::D0ChargedJetConstituents, o2::aod::D0ChargedJetConstituentsSub>;
260- using JetFinderD0MCDetectorLevelCharged = JetFinderHFTask<o2::aod::D0ChargedMCDetectorLevelJets, o2::aod::D0ChargedMCDetectorLevelJetConstituents, o2::aod::D0ChargedMCDetectorLevelJetConstituentsSub>;
261- using JetFinderD0MCParticleLevelCharged = JetFinderHFTask<o2::aod::D0ChargedMCParticleLevelJets, o2::aod::D0ChargedMCParticleLevelJetConstituents, o2::aod::D0ChargedMCParticleLevelJetConstituentsSub>;
262233
263- using JetFinderBplusDataCharged = JetFinderHFTask<o2::aod::BplusChargedJets, o2::aod::BplusChargedJetConstituents, o2::aod::BplusChargedJetConstituentsSub>;
264- using JetFinderBplusMCDetectorLevelCharged = JetFinderHFTask<o2::aod::BplusChargedMCDetectorLevelJets, o2::aod::BplusChargedMCDetectorLevelJetConstituents, o2::aod::BplusChargedMCDetectorLevelJetConstituentsSub>;
265- using JetFinderBplusMCParticleLevelCharged = JetFinderHFTask<o2::aod::BplusChargedMCParticleLevelJets, o2::aod::BplusChargedMCParticleLevelJetConstituents, o2::aod::BplusChargedMCParticleLevelJetConstituentsSub>;
234+ using JetFinderD0DataCharged = JetFinderHFTask<CandidatesD0Data,CandidatesD0MCD,ParticlesD0,o2::aod::D0ChargedJets, o2::aod::D0ChargedJetConstituents, o2::aod::D0ChargedJetConstituentsSub>;
235+ using JetFinderD0MCDetectorLevelCharged = JetFinderHFTask<CandidatesD0Data,CandidatesD0MCD,ParticlesD0,o2::aod::D0ChargedMCDetectorLevelJets, o2::aod::D0ChargedMCDetectorLevelJetConstituents, o2::aod::D0ChargedMCDetectorLevelJetConstituentsSub>;
236+ using JetFinderD0MCParticleLevelCharged = JetFinderHFTask<CandidatesD0Data,CandidatesD0MCD,ParticlesD0,o2::aod::D0ChargedMCParticleLevelJets, o2::aod::D0ChargedMCParticleLevelJetConstituents, o2::aod::D0ChargedMCParticleLevelJetConstituentsSub>;
237+
238+ using JetFinderBplusDataCharged = JetFinderHFTask<CandidatesBplusData,CandidatesBplusMCD,ParticlesBplus,o2::aod::BplusChargedJets, o2::aod::BplusChargedJetConstituents, o2::aod::BplusChargedJetConstituentsSub>;
239+ using JetFinderBplusMCDetectorLevelCharged = JetFinderHFTask<CandidatesBplusData,CandidatesBplusMCD,ParticlesBplus,o2::aod::BplusChargedMCDetectorLevelJets, o2::aod::BplusChargedMCDetectorLevelJetConstituents, o2::aod::BplusChargedMCDetectorLevelJetConstituentsSub>;
240+ using JetFinderBplusMCParticleLevelCharged = JetFinderHFTask<CandidatesBplusData,CandidatesBplusMCD,ParticlesBplus,o2::aod::BplusChargedMCParticleLevelJets, o2::aod::BplusChargedMCParticleLevelJetConstituents, o2::aod::BplusChargedMCParticleLevelJetConstituentsSub>;
266241
267- using JetFinderLcDataCharged = JetFinderHFTask<o2::aod::LcChargedJets, o2::aod::LcChargedJetConstituents, o2::aod::LcChargedJetConstituentsSub>;
268- using JetFinderLcMCDetectorLevelCharged = JetFinderHFTask<o2::aod::LcChargedMCDetectorLevelJets, o2::aod::LcChargedMCDetectorLevelJetConstituents, o2::aod::LcChargedMCDetectorLevelJetConstituentsSub>;
269- using JetFinderLcMCParticleLevelCharged = JetFinderHFTask<o2::aod::LcChargedMCParticleLevelJets, o2::aod::LcChargedMCParticleLevelJetConstituents, o2::aod::LcChargedMCParticleLevelJetConstituentsSub>;
242+ using JetFinderLcDataCharged = JetFinderHFTask<CandidatesLcData,CandidatesLcMCD,ParticlesLc, o2::aod::LcChargedJets, o2::aod::LcChargedJetConstituents, o2::aod::LcChargedJetConstituentsSub>;
243+ using JetFinderLcMCDetectorLevelCharged = JetFinderHFTask<CandidatesLcData,CandidatesLcMCD,ParticlesLc, o2::aod::LcChargedMCDetectorLevelJets, o2::aod::LcChargedMCDetectorLevelJetConstituents, o2::aod::LcChargedMCDetectorLevelJetConstituentsSub>;
244+ using JetFinderLcMCParticleLevelCharged = JetFinderHFTask<CandidatesLcData,CandidatesLcMCD,ParticlesLc, o2::aod::LcChargedMCParticleLevelJets, o2::aod::LcChargedMCParticleLevelJetConstituents, o2::aod::LcChargedMCParticleLevelJetConstituentsSub>;
270245
271246WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
272247{
0 commit comments