Skip to content

Commit 4bf96a7

Browse files
nzardoshNima Zardoshti
andauthored
PWGJE : seperating matched and unmatched data jets in substructure output task (#4416)
Co-authored-by: Nima Zardoshti <nzardosh@alicecerno2.cern.ch>
1 parent f5f0271 commit 4bf96a7

2 files changed

Lines changed: 41 additions & 38 deletions

File tree

PWGJE/Tasks/jetsubstructurehfoutput.cxx

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ using namespace o2::framework::expressions;
4040
// NB: runDataProcessing.h must be included after customize!
4141
#include "Framework/runDataProcessing.h"
4242

43-
template <typename CandidateCollisionTable, typename CandidateTable, typename CandidateTableMCP, typename TracksSub, typename JetTableData, typename OutputCollisionTableData, typename OutputTableData, typename SubstructureOutputTableData, typename JetTableMCD, typename OutputCollisionTableMCD, typename OutputTableMCD, typename SubstructureOutputTableMCD, typename JetTableMCP, typename OutputCollisionTableMCP, typename OutputTableMCP, typename SubstructureOutputTableMCP, typename JetTableDataSub, typename OutputCollisionTableDataSub, typename OutputTableDataSub, typename SubstructureOutputTableDataSub, typename CandidateCollisionOutputTable, typename CandidateOutputTable, typename CandidateParOutputTable, typename CandidateParExtraOutputTable, typename CandidateSelOutputTable, typename CandidateMCDOutputTable, typename CandidateMCPOutputTable>
43+
template <typename CandidateCollisionTable, typename CandidateTable, typename CandidateTableMCP, typename TracksSub, typename JetTableData, typename JetMatchedTableData, typename OutputCollisionTableData, typename OutputTableData, typename SubstructureOutputTableData, typename JetTableMCD, typename OutputCollisionTableMCD, typename OutputTableMCD, typename SubstructureOutputTableMCD, typename JetTableMCP, typename OutputCollisionTableMCP, typename OutputTableMCP, typename SubstructureOutputTableMCP, typename JetTableDataSub, typename OutputCollisionTableDataSub, typename OutputTableDataSub, typename SubstructureOutputTableDataSub, typename CandidateCollisionOutputTable, typename CandidateOutputTable, typename CandidateParOutputTable, typename CandidateParExtraOutputTable, typename CandidateSelOutputTable, typename CandidateMCDOutputTable, typename CandidateMCPOutputTable>
4444
struct JetSubstructureHFOutputTask {
4545
Produces<OutputCollisionTableData> collisionOutputTableData;
4646
Produces<OutputTableData> jetOutputTableData;
@@ -89,7 +89,7 @@ struct JetSubstructureHFOutputTask {
8989
jetSubstructureOutputTable(jetOutputTable.lastIndex(), jet.zg(), jet.rg(), jet.nsd());
9090
}
9191

92-
template <typename T, typename U, typename V, typename M, typename N, typename O, typename P, typename S>
92+
template <bool isMatched, typename T, typename U, typename V, typename M, typename N, typename O, typename P, typename S>
9393
void analyseCharged(T const& collision, U const& jets, V const& jetsTag, M const& tracks, N const& candidates, O& collisionOutputTable, P& jetOutputTable, S& jetSubstructureOutputTable)
9494
{
9595

@@ -105,22 +105,23 @@ struct JetSubstructureHFOutputTask {
105105
std::vector<int> geoMatching;
106106
std::vector<int> ptMatching;
107107
std::vector<int> hfMatching;
108-
if (jet.has_matchedJetGeo()) {
109-
for (auto& jetTag : jet.template matchedJetGeo_as<V>()) {
110-
geoMatching.push_back(jetTag.globalIndex());
108+
if constexpr (isMatched) {
109+
if (jet.has_matchedJetGeo()) {
110+
for (auto& jetTag : jet.template matchedJetGeo_as<V>()) {
111+
geoMatching.push_back(jetTag.globalIndex());
112+
}
111113
}
112-
}
113-
if (jet.has_matchedJetPt()) {
114-
for (auto& jetTag : jet.template matchedJetPt_as<V>()) {
115-
ptMatching.push_back(jetTag.globalIndex());
114+
if (jet.has_matchedJetPt()) {
115+
for (auto& jetTag : jet.template matchedJetPt_as<V>()) {
116+
ptMatching.push_back(jetTag.globalIndex());
117+
}
116118
}
117-
}
118-
if (jet.has_matchedJetCand()) {
119-
for (auto& jetTag : jet.template matchedJetCand_as<V>()) {
120-
hfMatching.push_back(jetTag.globalIndex());
119+
if (jet.has_matchedJetCand()) {
120+
for (auto& jetTag : jet.template matchedJetCand_as<V>()) {
121+
hfMatching.push_back(jetTag.globalIndex());
122+
}
121123
}
122124
}
123-
124125
int32_t candidateIndex = -1;
125126
auto candidateTableIndex = candidateMapping.find(candidate.globalIndex());
126127
if (candidateTableIndex != candidateMapping.end()) {
@@ -212,23 +213,23 @@ struct JetSubstructureHFOutputTask {
212213

213214
void processOutputData(JetCollision const& collision,
214215
JetTableData const& jets,
215-
JetTableDataSub const& jetsTag,
216216
JetTracks const& tracks,
217217
CandidateCollisionTable const& canidateCollisions,
218218
CandidateTable const& candidates)
219219
{
220-
analyseCharged(collision, jets, jetsTag, tracks, candidates, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData);
220+
analyseCharged<false>(collision, jets, jets, tracks, candidates, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData);
221221
}
222222
PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputData, "hf jet substructure output Data", false);
223223

224224
void processOutputDataSub(JetCollision const& collision,
225-
JetTableDataSub const& jets,
226-
JetTableData const& jetsTag,
225+
JetMatchedTableData const& jets,
226+
JetTableDataSub const& jetsSub,
227227
TracksSub const& tracks,
228228
CandidateCollisionTable const& canidateCollisions,
229229
CandidateTable const& candidates)
230230
{
231-
analyseCharged(collision, jets, jetsTag, tracks, candidates, collisionOutputTableDataSub, jetOutputTableDataSub, jetSubstructureOutputTableDataSub);
231+
analyseCharged<true>(collision, jets, jetsSub, tracks, candidates, collisionOutputTableData, jetOutputTableData, jetSubstructureOutputTableData);
232+
analyseCharged<true>(collision, jetsSub, jets, tracks, candidates, collisionOutputTableDataSub, jetOutputTableDataSub, jetSubstructureOutputTableDataSub);
232233
}
233234
PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputDataSub, "hf jet substructure output event-wise subtracted Data", false);
234235

@@ -239,7 +240,7 @@ struct JetSubstructureHFOutputTask {
239240
CandidateCollisionTable const& canidateCollisions,
240241
CandidateTable const& candidates)
241242
{
242-
analyseCharged(collision, jets, jetsTag, tracks, candidates, collisionOutputTableMCD, jetOutputTableMCD, jetSubstructureOutputTableMCD);
243+
analyseCharged<true>(collision, jets, jetsTag, tracks, candidates, collisionOutputTableMCD, jetOutputTableMCD, jetSubstructureOutputTableMCD);
243244
}
244245
PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputMCD, "hf jet substructure output MCD", false);
245246

@@ -284,9 +285,9 @@ struct JetSubstructureHFOutputTask {
284285
}
285286
PROCESS_SWITCH(JetSubstructureHFOutputTask, processOutputMCP, "hf jet substructure output MCP", false);
286287
};
287-
using JetSubstructureOutputD0 = JetSubstructureHFOutputTask<aod::HfD0CollBases, CandidatesD0Data, CandidatesD0MCP, aod::JTrackD0Subs, soa::Filtered<soa::Join<aod::D0ChargedJets, aod::D0ChargedJetConstituents, aod::D0ChargedJetSubstructures, aod::D0ChargedJetsMatchedToD0ChargedEventWiseSubtractedJets>>, aod::D0ChargedJetCollisionOutputs, aod::D0ChargedJetOutputs, aod::D0ChargedJetSubstructureOutputs, soa::Filtered<soa::Join<aod::D0ChargedMCDetectorLevelJets, aod::D0ChargedMCDetectorLevelJetConstituents, aod::D0ChargedMCDetectorLevelJetSubstructures, aod::D0ChargedMCDetectorLevelJetsMatchedToD0ChargedMCParticleLevelJets>>, aod::D0ChargedMCDetectorLevelJetCollisionOutputs, aod::D0ChargedMCDetectorLevelJetOutputs, aod::D0ChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::D0ChargedMCParticleLevelJets, aod::D0ChargedMCParticleLevelJetConstituents, aod::D0ChargedMCParticleLevelJetSubstructures, aod::D0ChargedMCParticleLevelJetsMatchedToD0ChargedMCDetectorLevelJets>>, aod::D0ChargedMCParticleLevelJetCollisionOutputs, aod::D0ChargedMCParticleLevelJetOutputs, aod::D0ChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::D0ChargedEventWiseSubtractedJets, aod::D0ChargedEventWiseSubtractedJetConstituents, aod::D0ChargedEventWiseSubtractedJetSubstructures, aod::D0ChargedEventWiseSubtractedJetsMatchedToD0ChargedJets>>, aod::D0ChargedEventWiseSubtractedJetCollisionOutputs, aod::D0ChargedEventWiseSubtractedJetOutputs, aod::D0ChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfD0CollBase, aod::StoredHfD0Bases, aod::StoredHfD0Pars, aod::StoredHfD0ParEs, aod::StoredHfD0Sels, aod::StoredHfD0Mcs, aod::StoredHfD0PBases>;
288-
// using JetSubstructureOutputLc = JetSubstructureHFOutputTask<aod::HfLcCollBases,CandidatesLcData, CandidatesLcMCP, aod::JTrackLcSubs, soa::Filtered<soa::Join<aod::LcChargedJets, aod::LcChargedJetConstituents, aod::LcChargedJetSubstructures, aod::LcChargedJetsMatchedToLcChargedEventWiseSubtractedJets>>, aod::LcChargedJetCollisionOutputs, aod::LcChargedJetOutputs, aod::LcChargedJetSubstructureOutputs, soa::Filtered<soa::Join<aod::LcChargedMCDetectorLevelJets, aod::LcChargedMCDetectorLevelJetConstituents, aod::LcChargedMCDetectorLevelJetSubstructures, aod::LcChargedMCDetectorLevelJetsMatchedToLcChargedMCParticleLevelJets>>, aod::LcChargedMCDetectorLevelJetCollisionOutputs, aod::LcChargedMCDetectorLevelJetOutputs, aod::LcChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::LcChargedMCParticleLevelJets, aod::LcChargedMCParticleLevelJetConstituents, aod::LcChargedMCParticleLevelJetSubstructures, aod::LcChargedMCParticleLevelJetsMatchedToLcChargedMCDetectorLevelJets>>, aod::LcChargedMCParticleLevelJetCollisionOutputs, aod::LcChargedMCParticleLevelJetOutputs, aod::LcChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::LcChargedEventWiseSubtractedJets, aod::LcChargedEventWiseSubtractedJetConstituents, aod::LcChargedEventWiseSubtractedJetSubstructures, aod::LcChargedEventWiseSubtractedJetsMatchedToLcChargedJets>>, aod::LcChargedEventWiseSubtractedJetCollisionOutputs, aod::LcChargedEventWiseSubtractedJetOutputs, aod::LcChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfLcCollBase, aod::StoredHfLcBases, aod::StoredHfLcPars, aod::StoredHfLcParEs, aod::StoredHfLcSels, aod::StoredHfLcMcs, aod::StoredHfLcPBases>;
289-
// using JetSubstructureOutputBplus = JetSubstructureHFOutputTask<aod::HfBplusCollBases,CandidatesBplusData, CandidatesBplusMCP, aod::JTrackBplusSubs, soa::Filtered<soa::Join<aod::BplusChargedJets, aod::BplusChargedJetConstituents, aod::BplusChargedJetSubstructures, aod::BplusChargedJetsMatchedToBplusChargedEventWiseSubtractedJets>>, aod::BplusChargedJetCollisionOutputs, aod::BplusChargedJetOutputs, aod::BplusChargedJetSubstructureOutputs, soa::Filtered<soa::Join<aod::BplusChargedMCDetectorLevelJets, aod::BplusChargedMCDetectorLevelJetConstituents, aod::BplusChargedMCDetectorLevelJetSubstructures, aod::BplusChargedMCDetectorLevelJetsMatchedToBplusChargedMCParticleLevelJets>>, aod::BplusChargedMCDetectorLevelJetCollisionOutputs, aod::BplusChargedMCDetectorLevelJetOutputs, aod::BplusChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::BplusChargedMCParticleLevelJets, aod::BplusChargedMCParticleLevelJetConstituents, aod::BplusChargedMCParticleLevelJetSubstructures, aod::BplusChargedMCParticleLevelJetsMatchedToBplusChargedMCDetectorLevelJets>>, aod::BplusChargedMCParticleLevelJetCollisionOutputs, aod::BplusChargedMCParticleLevelJetOutputs, aod::BplusChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::BplusChargedEventWiseSubtractedJets, aod::BplusChargedEventWiseSubtractedJetConstituents, aod::BplusChargedEventWiseSubtractedJetSubstructures, aod::BplusChargedEventWiseSubtractedJetsMatchedToBplusChargedJets>>, aod::BplusChargedEventWiseSubtractedJetCollisionOutputs, aod::BplusChargedEventWiseSubtractedJetOutputs, aod::BplusChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfBplusCollBase, aod::StoredHfBplusBases, aod::StoredHfBplusPars, aod::StoredHfBplusParEs, aod::StoredHfBplusSels, aod::StoredHfBplusMcs, aod::StoredHfBplusPBases>;
288+
using JetSubstructureOutputD0 = JetSubstructureHFOutputTask<aod::HfD0CollBases, CandidatesD0Data, CandidatesD0MCP, aod::JTrackD0Subs, soa::Filtered<soa::Join<aod::D0ChargedJets, aod::D0ChargedJetConstituents, aod::D0ChargedJetSubstructures>>, soa::Filtered<soa::Join<aod::D0ChargedJets, aod::D0ChargedJetConstituents, aod::D0ChargedJetSubstructures, aod::D0ChargedJetsMatchedToD0ChargedEventWiseSubtractedJets>>, aod::D0ChargedJetCollisionOutputs, aod::D0ChargedJetOutputs, aod::D0ChargedJetSubstructureOutputs, soa::Filtered<soa::Join<aod::D0ChargedMCDetectorLevelJets, aod::D0ChargedMCDetectorLevelJetConstituents, aod::D0ChargedMCDetectorLevelJetSubstructures, aod::D0ChargedMCDetectorLevelJetsMatchedToD0ChargedMCParticleLevelJets>>, aod::D0ChargedMCDetectorLevelJetCollisionOutputs, aod::D0ChargedMCDetectorLevelJetOutputs, aod::D0ChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::D0ChargedMCParticleLevelJets, aod::D0ChargedMCParticleLevelJetConstituents, aod::D0ChargedMCParticleLevelJetSubstructures, aod::D0ChargedMCParticleLevelJetsMatchedToD0ChargedMCDetectorLevelJets>>, aod::D0ChargedMCParticleLevelJetCollisionOutputs, aod::D0ChargedMCParticleLevelJetOutputs, aod::D0ChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::D0ChargedEventWiseSubtractedJets, aod::D0ChargedEventWiseSubtractedJetConstituents, aod::D0ChargedEventWiseSubtractedJetSubstructures, aod::D0ChargedEventWiseSubtractedJetsMatchedToD0ChargedJets>>, aod::D0ChargedEventWiseSubtractedJetCollisionOutputs, aod::D0ChargedEventWiseSubtractedJetOutputs, aod::D0ChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfD0CollBase, aod::StoredHfD0Bases, aod::StoredHfD0Pars, aod::StoredHfD0ParEs, aod::StoredHfD0Sels, aod::StoredHfD0Mcs, aod::StoredHfD0PBases>;
289+
// using JetSubstructureOutputLc = JetSubstructureHFOutputTask<aod::HfLcCollBases,CandidatesLcData, CandidatesLcMCP, aod::JTrackLcSubs, soa::Filtered<soa::Join<aod::LcChargedJets, aod::LcChargedJetConstituents, aod::LcChargedJetSubstructures>>, soa::Filtered<soa::Join<aod::LcChargedJets, aod::LcChargedJetConstituents, aod::LcChargedJetSubstructures, aod::LcChargedJetsMatchedToLcChargedEventWiseSubtractedJets>>, aod::LcChargedJetCollisionOutputs, aod::LcChargedJetOutputs, aod::LcChargedJetSubstructureOutputs, soa::Filtered<soa::Join<aod::LcChargedMCDetectorLevelJets, aod::LcChargedMCDetectorLevelJetConstituents, aod::LcChargedMCDetectorLevelJetSubstructures, aod::LcChargedMCDetectorLevelJetsMatchedToLcChargedMCParticleLevelJets>>, aod::LcChargedMCDetectorLevelJetCollisionOutputs, aod::LcChargedMCDetectorLevelJetOutputs, aod::LcChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::LcChargedMCParticleLevelJets, aod::LcChargedMCParticleLevelJetConstituents, aod::LcChargedMCParticleLevelJetSubstructures, aod::LcChargedMCParticleLevelJetsMatchedToLcChargedMCDetectorLevelJets>>, aod::LcChargedMCParticleLevelJetCollisionOutputs, aod::LcChargedMCParticleLevelJetOutputs, aod::LcChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::LcChargedEventWiseSubtractedJets, aod::LcChargedEventWiseSubtractedJetConstituents, aod::LcChargedEventWiseSubtractedJetSubstructures, aod::LcChargedEventWiseSubtractedJetsMatchedToLcChargedJets>>, aod::LcChargedEventWiseSubtractedJetCollisionOutputs, aod::LcChargedEventWiseSubtractedJetOutputs, aod::LcChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfLcCollBase, aod::StoredHfLcBases, aod::StoredHfLcPars, aod::StoredHfLcParEs, aod::StoredHfLcSels, aod::StoredHfLcMcs, aod::StoredHfLcPBases>;
290+
// using JetSubstructureOutputBplus = JetSubstructureHFOutputTask<aod::HfBplusCollBases,CandidatesBplusData, CandidatesBplusMCP, aod::JTrackBplusSubs, soa::Filtered<soa::Join<aod::BplusChargedJets, aod::BplusChargedJetConstituents, aod::BplusChargedJetSubstructures>>, soa::Filtered<soa::Join<aod::BplusChargedJets, aod::BplusChargedJetConstituents, aod::BplusChargedJetSubstructures, aod::BplusChargedJetsMatchedToBplusChargedEventWiseSubtractedJets>>, aod::BplusChargedJetCollisionOutputs, aod::BplusChargedJetOutputs, aod::BplusChargedJetSubstructureOutputs, soa::Filtered<soa::Join<aod::BplusChargedMCDetectorLevelJets, aod::BplusChargedMCDetectorLevelJetConstituents, aod::BplusChargedMCDetectorLevelJetSubstructures, aod::BplusChargedMCDetectorLevelJetsMatchedToBplusChargedMCParticleLevelJets>>, aod::BplusChargedMCDetectorLevelJetCollisionOutputs, aod::BplusChargedMCDetectorLevelJetOutputs, aod::BplusChargedMCDetectorLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::BplusChargedMCParticleLevelJets, aod::BplusChargedMCParticleLevelJetConstituents, aod::BplusChargedMCParticleLevelJetSubstructures, aod::BplusChargedMCParticleLevelJetsMatchedToBplusChargedMCDetectorLevelJets>>, aod::BplusChargedMCParticleLevelJetCollisionOutputs, aod::BplusChargedMCParticleLevelJetOutputs, aod::BplusChargedMCParticleLevelJetSubstructureOutputs, soa::Filtered<soa::Join<aod::BplusChargedEventWiseSubtractedJets, aod::BplusChargedEventWiseSubtractedJetConstituents, aod::BplusChargedEventWiseSubtractedJetSubstructures, aod::BplusChargedEventWiseSubtractedJetsMatchedToBplusChargedJets>>, aod::BplusChargedEventWiseSubtractedJetCollisionOutputs, aod::BplusChargedEventWiseSubtractedJetOutputs, aod::BplusChargedEventWiseSubtractedJetSubstructureOutputs, aod::StoredHfBplusCollBase, aod::StoredHfBplusBases, aod::StoredHfBplusPars, aod::StoredHfBplusParEs, aod::StoredHfBplusSels, aod::StoredHfBplusMcs, aod::StoredHfBplusPBases>;
290291

291292
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
292293
{

0 commit comments

Comments
 (0)