From bc92e5ca48520b7fa73ed8f2db276bef9b006abd Mon Sep 17 00:00:00 2001 From: tmadlener Date: Fri, 4 Oct 2024 19:32:40 +0200 Subject: [PATCH] Split ParticleID collection into smaller collections Having one large ParticleID collection made sense historically before EDM4hep reversed the direction of the ReconstructedParticle -> ParticleID relation. Since now ParticleIDs point to the ReconstructedParticles it's easier to handle downstream (and especially in FCCAnalyses) if there are several smaller and more specific ParticleID collections for each of the input collections that are converted. --- converter/include/k4SimDelphes/DelphesEDM4HepConverter.h | 1 - .../k4SimDelphes/DelphesEDM4HepOutputConfiguration.h | 5 ----- converter/src/DelphesEDM4HepConverter.cc | 8 ++------ 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/converter/include/k4SimDelphes/DelphesEDM4HepConverter.h b/converter/include/k4SimDelphes/DelphesEDM4HepConverter.h index 5a49a4b..7dd9676 100644 --- a/converter/include/k4SimDelphes/DelphesEDM4HepConverter.h +++ b/converter/include/k4SimDelphes/DelphesEDM4HepConverter.h @@ -158,7 +158,6 @@ namespace k4SimDelphes { double m_magneticFieldBz; // necessary for determining track parameters std::string m_recoCollName; - std::string m_particleIDName; std::string m_recoMCLinkCollName; // map from UniqueIDs (delphes generated particles) to MCParticles diff --git a/converter/include/k4SimDelphes/DelphesEDM4HepOutputConfiguration.h b/converter/include/k4SimDelphes/DelphesEDM4HepOutputConfiguration.h index 571fddf..ae30960 100644 --- a/converter/include/k4SimDelphes/DelphesEDM4HepOutputConfiguration.h +++ b/converter/include/k4SimDelphes/DelphesEDM4HepOutputConfiguration.h @@ -82,11 +82,6 @@ namespace k4SimDelphes { * generated to reconstructed particles. */ std::string RecoMCParticleLinkCollectionName{"MCRecoAssociations"}; - - /** - * Name of the ParticleIDCollection holding the ctags / isolation variables. - */ - std::string ParticleIDCollectionName{"ParticleIDs"}; }; template std::ostream& operator<<(std::ostream& os, std::vector const& container) { diff --git a/converter/src/DelphesEDM4HepConverter.cc b/converter/src/DelphesEDM4HepConverter.cc index 9d29e9e..e102547 100644 --- a/converter/src/DelphesEDM4HepConverter.cc +++ b/converter/src/DelphesEDM4HepConverter.cc @@ -79,7 +79,6 @@ namespace k4SimDelphes { OutputSettings const& outputSettings, double magFieldBz) : m_magneticFieldBz(magFieldBz), m_recoCollName(outputSettings.RecoParticleCollectionName), - m_particleIDName(outputSettings.ParticleIDCollectionName), m_recoMCLinkCollName(outputSettings.RecoMCParticleLinkCollectionName) { for (const auto& branch : branches) { if (contains(PROCESSING_ORDER, branch.className)) { @@ -224,7 +223,7 @@ namespace k4SimDelphes { magFieldCollection->push_back(m_magneticFieldBz); auto* mcRecoRelations = getCollection(m_recoMCLinkCollName); - auto* idCollection = getCollection(m_particleIDName); + auto* idCollection = createCollection(branch + "_PID"); auto* trackerHitColl = getCollection(TRACKERHIT_OUTPUT_NAME); for (auto iCand = 0; iCand < delphesCollection->GetEntries(); ++iCand) { @@ -346,7 +345,7 @@ namespace k4SimDelphes { void DelphesEDM4HepConverter::processJets(const TClonesArray* delphesCollection, std::string const& branch) { auto* jetCollection = createCollection(branch); - auto* idCollection = getCollection(m_particleIDName); + auto* idCollection = createCollection(branch + "_tags"); for (auto iCand = 0; iCand < delphesCollection->GetEntries(); ++iCand) { auto* delphesCand = static_cast(delphesCollection->At(iCand)); @@ -510,9 +509,6 @@ namespace k4SimDelphes { if (m_collections.find(m_recoMCLinkCollName) == m_collections.end()) { createCollection(m_recoMCLinkCollName); } - if (m_collections.find(m_particleIDName) == m_collections.end()) { - createCollection(m_particleIDName); - } if (m_collections.find(TRACKERHIT_OUTPUT_NAME) == m_collections.end()) { createCollection(TRACKERHIT_OUTPUT_NAME); }