diff --git a/PWGJE/Tasks/jetsubstructurehfoutput.cxx b/PWGJE/Tasks/jetsubstructurehfoutput.cxx index 3c9814bead0..e4d7fd1fc98 100644 --- a/PWGJE/Tasks/jetsubstructurehfoutput.cxx +++ b/PWGJE/Tasks/jetsubstructurehfoutput.cxx @@ -40,7 +40,7 @@ using namespace o2::framework::expressions; // NB: runDataProcessing.h must be included after customize! #include "Framework/runDataProcessing.h" -template +template struct JetSubstructureHFOutputTask { Produces collisionOutputTableData; Produces jetOutputTableData; @@ -89,7 +89,7 @@ struct JetSubstructureHFOutputTask { jetSubstructureOutputTable(jetOutputTable.lastIndex(), jet.zg(), jet.rg(), jet.nsd()); } - template + template void analyseCharged(T const& collision, U const& jets, V const& jetsTag, M const& tracks, N const& candidates, O& collisionOutputTable, P& jetOutputTable, S& jetSubstructureOutputTable) { @@ -105,22 +105,23 @@ struct JetSubstructureHFOutputTask { std::vector geoMatching; std::vector ptMatching; std::vector hfMatching; - if (jet.has_matchedJetGeo()) { - for (auto& jetTag : jet.template matchedJetGeo_as()) { - geoMatching.push_back(jetTag.globalIndex()); + if constexpr (isMatched) { + if (jet.has_matchedJetGeo()) { + for (auto& jetTag : jet.template matchedJetGeo_as()) { + geoMatching.push_back(jetTag.globalIndex()); + } } - } - if (jet.has_matchedJetPt()) { - for (auto& jetTag : jet.template matchedJetPt_as()) { - ptMatching.push_back(jetTag.globalIndex()); + if (jet.has_matchedJetPt()) { + for (auto& jetTag : jet.template matchedJetPt_as()) { + ptMatching.push_back(jetTag.globalIndex()); + } } - } - if (jet.has_matchedJetCand()) { - for (auto& jetTag : jet.template matchedJetCand_as()) { - hfMatching.push_back(jetTag.globalIndex()); + if (jet.has_matchedJetCand()) { + for (auto& jetTag : jet.template matchedJetCand_as()) { + hfMatching.push_back(jetTag.globalIndex()); + } } } - int32_t candidateIndex = -1; auto candidateTableIndex = candidateMapping.find(candidate.globalIndex()); if (candidateTableIndex != candidateMapping.end()) { @@ -212,23 +213,23 @@ struct JetSubstructureHFOutputTask { void processOutputData(JetCollision const& collision, JetTableData const& jets, - JetTableDataSub const& jetsTag, JetTracks const& tracks, CandidateCollisionTable const& canidateCollisions, CandidateTable const& candidates) { - analyseCharged(collision, jets, jetsTag, tracks, candidates, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData); + analyseCharged(collision, jets, jets, tracks, candidates, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData); } PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputData, "hf jet substructure output Data", false); void processOutputDataSub(JetCollision const& collision, - JetTableDataSub const& jets, - JetTableData const& jetsTag, + JetMatchedTableData const& jets, + JetTableDataSub const& jetsSub, TracksSub const& tracks, CandidateCollisionTable const& canidateCollisions, CandidateTable const& candidates) { - analyseCharged(collision, jets, jetsTag, tracks, candidates, collisionOutputTableDataSub, jetOutputTableDataSub, jetSubstructureOutputTableDataSub); + analyseCharged(collision, jets, jetsSub, tracks, candidates, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData); + analyseCharged(collision, jetsSub, jets, tracks, candidates, collisionOutputTableDataSub, jetOutputTableDataSub, jetSubstructureOutputTableDataSub); } PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputDataSub, "hf jet substructure output event-wise subtracted Data", false); @@ -239,7 +240,7 @@ struct JetSubstructureHFOutputTask { CandidateCollisionTable const& canidateCollisions, CandidateTable const& candidates) { - analyseCharged(collision, jets, jetsTag, tracks, candidates, collisionOutputTableMCD, jetOutputTableMCD, jetSubstructureOutputTableMCD); + analyseCharged(collision, jets, jetsTag, tracks, candidates, collisionOutputTableMCD, jetOutputTableMCD, jetSubstructureOutputTableMCD); } PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputMCD, "hf jet substructure output MCD", false); @@ -284,9 +285,9 @@ struct JetSubstructureHFOutputTask { } PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputMCP, "hf jet substructure output MCP", false); }; -using JetSubstructureOutputD0 = JetSubstructureHFOutputTask>, aod::D0ChargedJetCollisionOutputs, aod::D0ChargedJetOutputs, aod::D0ChargedJetSubstructureOutputs, soa::Filtered>, aod::D0ChargedMCDetectorLevelJetCollisionOutputs, aod::D0ChargedMCDetectorLevelJetOutputs, aod::D0ChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered>, aod::D0ChargedMCParticleLevelJetCollisionOutputs, aod::D0ChargedMCParticleLevelJetOutputs, aod::D0ChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered>, aod::D0ChargedEventWiseSubtractedJetCollisionOutputs, aod::D0ChargedEventWiseSubtractedJetOutputs, aod::D0ChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfD0CollBase, aod::StoredHfD0Bases, aod::StoredHfD0Pars, aod::StoredHfD0ParEs, aod::StoredHfD0Sels, aod::StoredHfD0Mcs, aod::StoredHfD0PBases>; -// using JetSubstructureOutputLc = JetSubstructureHFOutputTask>, aod::LcChargedJetCollisionOutputs, aod::LcChargedJetOutputs, aod::LcChargedJetSubstructureOutputs, soa::Filtered>, aod::LcChargedMCDetectorLevelJetCollisionOutputs, aod::LcChargedMCDetectorLevelJetOutputs, aod::LcChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered>, aod::LcChargedMCParticleLevelJetCollisionOutputs, aod::LcChargedMCParticleLevelJetOutputs, aod::LcChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered>, aod::LcChargedEventWiseSubtractedJetCollisionOutputs, aod::LcChargedEventWiseSubtractedJetOutputs, aod::LcChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfLcCollBase, aod::StoredHfLcBases, aod::StoredHfLcPars, aod::StoredHfLcParEs, aod::StoredHfLcSels, aod::StoredHfLcMcs, aod::StoredHfLcPBases>; -// using JetSubstructureOutputBplus = JetSubstructureHFOutputTask>, aod::BplusChargedJetCollisionOutputs, aod::BplusChargedJetOutputs, aod::BplusChargedJetSubstructureOutputs, soa::Filtered>, aod::BplusChargedMCDetectorLevelJetCollisionOutputs, aod::BplusChargedMCDetectorLevelJetOutputs, aod::BplusChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered>, aod::BplusChargedMCParticleLevelJetCollisionOutputs, aod::BplusChargedMCParticleLevelJetOutputs, aod::BplusChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered>, aod::BplusChargedEventWiseSubtractedJetCollisionOutputs, aod::BplusChargedEventWiseSubtractedJetOutputs, aod::BplusChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfBplusCollBase, aod::StoredHfBplusBases, aod::StoredHfBplusPars, aod::StoredHfBplusParEs, aod::StoredHfBplusSels, aod::StoredHfBplusMcs, aod::StoredHfBplusPBases>; +using JetSubstructureOutputD0 = JetSubstructureHFOutputTask>, soa::Filtered>, aod::D0ChargedJetCollisionOutputs, aod::D0ChargedJetOutputs, aod::D0ChargedJetSubstructureOutputs, soa::Filtered>, aod::D0ChargedMCDetectorLevelJetCollisionOutputs, aod::D0ChargedMCDetectorLevelJetOutputs, aod::D0ChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered>, aod::D0ChargedMCParticleLevelJetCollisionOutputs, aod::D0ChargedMCParticleLevelJetOutputs, aod::D0ChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered>, aod::D0ChargedEventWiseSubtractedJetCollisionOutputs, aod::D0ChargedEventWiseSubtractedJetOutputs, aod::D0ChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfD0CollBase, aod::StoredHfD0Bases, aod::StoredHfD0Pars, aod::StoredHfD0ParEs, aod::StoredHfD0Sels, aod::StoredHfD0Mcs, aod::StoredHfD0PBases>; +// using JetSubstructureOutputLc = JetSubstructureHFOutputTask>, soa::Filtered>, aod::LcChargedJetCollisionOutputs, aod::LcChargedJetOutputs, aod::LcChargedJetSubstructureOutputs, soa::Filtered>, aod::LcChargedMCDetectorLevelJetCollisionOutputs, aod::LcChargedMCDetectorLevelJetOutputs, aod::LcChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered>, aod::LcChargedMCParticleLevelJetCollisionOutputs, aod::LcChargedMCParticleLevelJetOutputs, aod::LcChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered>, aod::LcChargedEventWiseSubtractedJetCollisionOutputs, aod::LcChargedEventWiseSubtractedJetOutputs, aod::LcChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfLcCollBase, aod::StoredHfLcBases, aod::StoredHfLcPars, aod::StoredHfLcParEs, aod::StoredHfLcSels, aod::StoredHfLcMcs, aod::StoredHfLcPBases>; +// using JetSubstructureOutputBplus = JetSubstructureHFOutputTask>, soa::Filtered>, aod::BplusChargedJetCollisionOutputs, aod::BplusChargedJetOutputs, aod::BplusChargedJetSubstructureOutputs, soa::Filtered>, aod::BplusChargedMCDetectorLevelJetCollisionOutputs, aod::BplusChargedMCDetectorLevelJetOutputs, aod::BplusChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered>, aod::BplusChargedMCParticleLevelJetCollisionOutputs, aod::BplusChargedMCParticleLevelJetOutputs, aod::BplusChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered>, aod::BplusChargedEventWiseSubtractedJetCollisionOutputs, aod::BplusChargedEventWiseSubtractedJetOutputs, aod::BplusChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfBplusCollBase, aod::StoredHfBplusBases, aod::StoredHfBplusPars, aod::StoredHfBplusParEs, aod::StoredHfBplusSels, aod::StoredHfBplusMcs, aod::StoredHfBplusPBases>; WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { diff --git a/PWGJE/Tasks/jetsubstructureoutput.cxx b/PWGJE/Tasks/jetsubstructureoutput.cxx index 01842acda41..ae77ba695be 100644 --- a/PWGJE/Tasks/jetsubstructureoutput.cxx +++ b/PWGJE/Tasks/jetsubstructureoutput.cxx @@ -76,7 +76,7 @@ struct JetSubstructureOutputTask { jetSubstructureOutputTable(jetOutputTable.lastIndex(), jet.zg(), jet.rg(), jet.nsd()); } - template + template void analyseCharged(T const& collision, U const& jets, V const& jetsTag, M& collisionOutputTable, N& jetOutputTable, O& jetSubstructureOutputTable) { @@ -91,14 +91,16 @@ struct JetSubstructureOutputTask { if (jet.r() == round(jetRadiiValue * 100.0f)) { std::vector geoMatching; std::vector ptMatching; - if (jet.has_matchedJetGeo()) { - for (auto& jetTag : jet.template matchedJetGeo_as()) { - geoMatching.push_back(jetTag.globalIndex()); + if constexpr (hasMatching) { + if (jet.has_matchedJetGeo()) { + for (auto& jetTag : jet.template matchedJetGeo_as()) { + geoMatching.push_back(jetTag.globalIndex()); + } } - } - if (jet.has_matchedJetPt()) { - for (auto& jetTag : jet.template matchedJetPt_as()) { - ptMatching.push_back(jetTag.globalIndex()); + if (jet.has_matchedJetPt()) { + for (auto& jetTag : jet.template matchedJetPt_as()) { + ptMatching.push_back(jetTag.globalIndex()); + } } } if (nJetInCollision == 0) { @@ -116,20 +118,20 @@ struct JetSubstructureOutputTask { PROCESS_SWITCH(JetSubstructureOutputTask, processDummy, "Dummy process function turned on by default", true); void processOutputData(JetCollision const& collision, - soa::Filtered> const& jets, - aod::ChargedEventWiseSubtractedJets const& jetsTag, + soa::Filtered> const& jets, JetTracks const& tracks) { - analyseCharged(collision, jets, jetsTag, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData); + analyseCharged(collision, jets, jets, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData); } PROCESS_SWITCH(JetSubstructureOutputTask, processOutputData, "jet substructure output Data", false); void processOutputDataSub(JetCollision const& collision, - soa::Filtered> const& jets, - aod::ChargedJets const& jetsTag, + soa::Filtered> const& jets, + soa::Filtered> const& jetsSub, JetTracks const& tracks) { - analyseCharged(collision, jets, jetsTag, collisionOutputTableDataSub, jetOutputTableDataSub, jetSubstructureOutputTableDataSub); + analyseCharged(collision, jets, jetsSub, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData); + analyseCharged(collision, jetsSub, jets, collisionOutputTableDataSub, jetOutputTableDataSub, jetSubstructureOutputTableDataSub); } PROCESS_SWITCH(JetSubstructureOutputTask, processOutputDataSub, "jet substructure output event-wise subtracted Data", false); @@ -138,7 +140,7 @@ struct JetSubstructureOutputTask { aod::ChargedMCParticleLevelJets const& jetsTag, JetTracks const& tracks) { - analyseCharged(collision, jets, jetsTag, collisionOutputTableMCD, jetOutputTableMCD, jetSubstructureOutputTableMCD); + analyseCharged(collision, jets, jetsTag, collisionOutputTableMCD, jetOutputTableMCD, jetSubstructureOutputTableMCD); } PROCESS_SWITCH(JetSubstructureOutputTask, processOutputMCD, "jet substructure output MCD", false);