Skip to content

Collection name has leftover / from TES in EDM4hep2Lcio #235

@Zehvogel

Description

@Zehvogel

TL; DR:

It is only removed for the collectionNames, not for idToName

// Remove the leading /
collectionNames.push_back(pReg->name().substr(1, pReg->name().size() - 1));
if (idToName) {
if (functionalWrapper) {
idToName->emplace(functionalWrapper->getData()->getID(), pReg->name());
} else {
idToName->emplace(algorithmWrapper->collectionBase()->getID(), pReg->name());
}
}

The name from idToName ends up as is in lcio_event->getCollection(name)

if (auto it = m_idToName.find(id); it != m_idToName.end()) {
auto name = it->second;
if (pidCollMeta.metadata.has_value()) {
UTIL::PIDHandler pidHandler(lcio_event->getCollection(name));

This then throws an uncaught missing collection exception that only gets reported by the MarlinProcessorWrapper this tool was attached to, at first glance looking like one of the usual missing collection problems...

[ctest] ToolSvc.EventNu...  DEBUG Event: 0 Run: 0
[ctest] EventNumber         FATAL Standard std::exception is caught in sysExecute
[ctest] EventNumber         ERROR lcio::DataNotAvailableException: LCEventImpl::getCollection: collection not in event:/BuildUpVertices

I have not looked at everything so I don't know if we can just remove the / or if we need more changes to not break in another place. We also should also add a test covering this.

More details:

I encountered this while trying to add the MLJetTagger to CLDConfig after switching to the IOSvc
key4hep/CLDConfig#78

From this comment it looks like that part of the code should not even run for the BuildUpVertices

// Now go over the collections that have been produced in a functional algorithm (if any)

But I think the actual condition is different, all my collections are from the TES event if not produced by a functional algorithm

[ctest] ToolSvc.EventNu...   INFO Converting all collections from EDM4hep to LCIO
[ctest] ToolSvc.EventNu...  DEBUG Adding 'YokeEndcapCollectionContributions' from TES to conversion? trueAdding 'YokeEndcapCollection' from TES to conversion? trueAdding 'VertexBarrelCollection' from TES to conversion? trueAdding 'OuterTrackerBarrelCollection' from TES to conversion? trueAdding 'YokeBarrelCollectionContributions' from TES to conversion? trueAdding 'VertexEndcapCollection' from TES to conversion? trueAdding 'LumiCalCollection' from TES to conversion? trueAdding 'ECalBarrelCollection' from TES to conversion? trueAdding 'YokeBarrelCollection' from TES to conversion? trueAdding 'OuterTrackerEndcapCollection' from TES to conversion? trueAdding 'HCalRingCollection' from TES to conversion? trueAdding 'HCalRingCollectionContributions' from TES to conversion? trueAdding 'MCParticles' from TES to conversion? falseAdding 'ECalBarrelCollectionContributions' from TES to conversion? trueAdding 'EventHeader' from TES to conversion? trueAdding 'ECalEndcapCollectionContributions' from TES to conversion? trueAdding 'HCalBarrelCollectionContributions' from TES to conversion? trueAdding 'LumiCalCollectionContributions' from TES to conversion? trueAdding 'ECalEndcapCollection' from TES to conversion? trueAdding 'HCalBarrelCollection' from TES to conversion? trueAdding 'InnerTrackerBarrelCollection' from TES to conversion? trueAdding 'HCalEndcapCollection' from TES to conversion? trueAdding 'HCalEndcapCollectionContributions' from TES to conversion? trueAdding 'InnerTrackerEndcapCollection' from TES to conversion? trueAdding 'BuildUpVertices' from TES to conversion? trueAdding 'BuildUpVertices_associatedParticles' from TES to conversion? trueAdding 'BuildUpVertices_RP' from TES to conversion? trueAdding 'BuildUpVertices_RP_startVertices' from TES to conversion? trueAdding 'BuildUpVertices_V0' from TES to conversion? trueAdding 'BuildUpVertices_V0_associatedParticles' from TES to conversion? trueAdding 'BuildUpVertices_V0_RP' from TES to conversion? trueAdding 'BuildUpVertices_V0_RP_startVertices' from TES to conversion? trueAdding 'ECALBarrel' from TES to conversion? trueAdding 'ECALEndcap' from TES to conversion? trueAdding 'HCALBarrel' from TES to conversion? trueAdding 'HCALEndcap' from TES to conversion? trueAdding 'HCALOther' from TES to conversion? trueAdding 'ITrackerEndcapHits' from TES to conversion? trueAdding 'ITrackerHits' from TES to conversion? trueAdding 'LumiCalClusters' from TES to conversion? trueAdding 'LumiCalHits' from TES to conversion? trueAdding 'LumiCalRecoParticles' from TES to conversion? trueAdding 'LumiCalRecoParticles_startVertices' from TES to conversion? trueAdding 'MUON' from TES to conversion? trueAdding 'OTrackerEndcapHits' from TES to conversion? trueAdding 'OTrackerHits' from TES to conversion? trueAdding 'PandoraClusters' from TES to conversion? trueAdding 'PandoraPFOs' from TES to conversion? trueAdding 'PandoraPFOs_startVertices' from TES to conversion? trueAdding 'PandoraStartVertices' from TES to conversion? trueAdding 'PandoraStartVertices_associatedParticles' from TES to conversion? trueAdding 'PrimaryVertices' from TES to conversion? trueAdding 'PrimaryVertices_associatedParticles' from TES to conversion? trueAdding 'PrimaryVertices_RP' from TES to conversion? trueAdding 'PrimaryVertices_RP_startVertices' from TES to conversion? trueAdding 'RefinedVertexJets' from TES to conversion? trueAdding 'RefinedVertexJets_PID_yth' from TES to conversion? trueAdding 'RefinedVertexJets_startVertices' from TES to conversion? trueAdding 'RefinedVertexJets_vtx' from TES to conversion? trueAdding 'RefinedVertexJets_vtx_associatedParticles' from TES to conversion? trueAdding 'RefinedVertexJets_vtx_RP' from TES to conversion? trueAdding 'RefinedVertexJets_vtx_RP_startVertices' from TES to conversion? trueAdding 'RefinedVertices' from TES to conversion? trueAdding 'RefinedVertices_associatedParticles' from TES to conversion? trueAdding 'RefinedVertices_RP' from TES to conversion? trueAdding 'RefinedVertices_RP_startVertices' from TES to conversion? trueAdding 'SiTracks' from TES to conversion? trueAdding 'SiTracks_dQdx' from TES to conversion? trueAdding 'SiTracksCT' from TES to conversion? trueAdding 'SiTracksCT_dQdx' from TES to conversion? trueAdding 'SiTracks_Refitted' from TES to conversion? trueAdding 'SiTracks_Refitted_dQdx' from TES to conversion? trueAdding 'VXDEndcapTrackerHits' from TES to conversion? trueAdding 'VXDTrackerHits' from TES to conversion? trueAdding 'VertexJets' from TES to conversion? trueAdding 'VertexJets_PID_yth' from TES to conversion? trueAdding 'VertexJets_startVertices' from TES to conversion? trueAdding 'DebugHits' from TES to conversion? trueAdding 'EfficientMCParticles' from TES to conversion? trueAdding 'InefficientMCParticles' from TES to conversion? trueAdding 'LooseSelectedPandoraPFOs' from TES to conversion? trueAdding 'MCParticlesSkimmed' from TES to conversion? trueAdding 'MCPhysicsParticles' from TES to conversion? trueAdding 'PFOsFromJets' from TES to conversion? trueAdding 'SelectedPandoraPFOs' from TES to conversion? trueAdding 'TightSelectedPandoraPFOs' from TES to conversion? trueAdding 'CalohitMCTruthLink' from TES to conversion? trueAdding 'ClusterMCTruthLink' from TES to conversion? trueAdding 'InnerTrackerBarrelHitsRelations' from TES to conversion? trueAdding 'InnerTrackerEndcapHitsRelations' from TES to conversion? trueAdding 'MCTruthClusterLink' from TES to conversion? trueAdding 'MCTruthRecoLink' from TES to conversion? trueAdding 'MCTruthSiTracksLink' from TES to conversion? trueAdding 'OuterTrackerBarrelHitsRelations' from TES to conversion? trueAdding 'OuterTrackerEndcapHitsRelations' from TES to conversion? trueAdding 'RecoMCTruthLink' from TES to conversion? trueAdding 'RefinedVertexJets_rel' from TES to conversion? trueAdding 'RelationCaloHit' from TES to conversion? trueAdding 'RelationMuonHit' from TES to conversion? trueAdding 'SiTracksMCTruthLink' from TES to conversion? trueAdding 'VXDEndcapTrackerHitRelations' from TES to conversion? trueAdding 'VXDTrackerHitRelations' from TES to conversion? trueAdding 'RefinedJetTag_G' from TES to conversion? trueAdding 'RefinedJetTag_U' from TES to conversion? trueAdding 'RefinedJetTag_S' from TES to conversion? trueAdding 'RefinedJetTag_C' from TES to conversion? trueAdding 'RefinedJetTag_B' from TES to conversion? trueAdding 'RefinedJetTag_D' from TES to conversion? trueAdding 'RefinedJetTag_TAU' from TES to conversion? trueConverting collection EventHeader (storing it as <directly into LCEvent>)

(there is also a missing endmsg() in that printout)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions