Skip to content

Exit gracefully if no IDVAlgorithm is found

Patrick Koppenburg requested to merge pkoppenb-IDVAlgorithm into master

LoKi functors, as well as some other tools, assume they are owned by a DVAlgorithm and use the tools configured within. Typically, BPVIPCHI2() assumes the existence of the geometry tool. This was reported bu @amathad in https://gitlab.cern.ch/lhcb-dpa/project/-/issues/173 following https://mattermost.web.cern.ch/lhcb/pl/tddzihtuitbdtq1ifajt4pj6zh.

There's no point fixing LoKi as eventually its functors will be replaced by ThOr. BPVIPCHI2 is already. In the meantime make sure there is no crash but exit gracefully instead. With this MR the message is

FunctionalParticleMaker.LoKi::Hy...   FATAL  Exception with tag=Gaudi::Utils::getIDVAlgorithm is caught
FunctionalParticleMaker.LoKi::Hy...   ERROR Gaudi::Utils::getIDVAlgorithm 	 Cannot find IAlgorithm. You probably cannot use this tool/functor in this context	 StatusCode=FAILURE
ToolSvc                               ERROR Error initializing tool 'FunctionalParticleMaker.LoKi::Hybrid::TrackSelector'
HiveDataBrokerSvc                     FATAL in sysInitialize(): exception with tag=FunctionalParticleMaker is caught
HiveDataBrokerSvc                     ERROR FunctionalParticleMaker 	 Failed to retrieve tool LoKi::Hybrid::TrackSelector/LoKi::Hybrid::TrackSelector	 StatusCode=FAILURE
ServiceManager                        ERROR Unable to initialize service "HiveDataBrokerSvc"
HLTControlFlowMgr                     FATAL Error retrieving HiveDataBrokerSvc
ServiceManager                        ERROR Unable to initialize Service: HLTControlFlowMgr
ApplicationMgr                        ERROR Application Manager Terminated with error code 1

I suggest to backport to run 2.

Merge request reports