Skip to content

Fixes around clearStore call

Sebastien Ponce requested to merge sponce_clearStoreFix into master

Mainly 2 of them :

  • Do not call clearStore too early in EventloopMgr
  • Do call it rather than throwing an exception in EvtStoreSvc::setRoot

Before this change, the first point led to an inconsistent behavior when using GaudiPython concerning the state of the TES after a call to appMgr.run. In case we had reached the end of input, it was empty as clearStore was called. But in case we did not, it was populated with the last event.

Providing the latter case allows to run more algorithms by hand or dump content from the TES (used for example by the LHCb alignment code), this change removes the clearStore call in case we reach the end of input.

Note that it does not change the normal behavior as it is anyway called in the next few lines in case a new event comes, through the setRoot call.

Talking of the setRoot call, it was not implemented following the IDataManagerSvc specification in EvtStoreSvc. The spec says "Implicitly this clears the entire data store" (https://gitlab.cern.ch/gaudi/Gaudi/-/blob/master/GaudiKernel/include/GaudiKernel/IDataManagerSvc.h#L183) while EvtStoreSvc was throwing an exception in such cases. This is now fixed.

Edited by Sebastien Ponce

Merge request reports