Fixes around clearStore call
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.