Tag notes o Fixes: - DataFlowManager: remove segfault due to improper use of bitsets - Cmake: Treat Root as all other externals - HiveEventLoopMgr: (legacy component): check for WB existence and not DataSvc only - AIDA: properly found also with the new externals infrastructure - HiveReadAlgorithm: Can be used also with old Gaudi infrastructure o ForwardScheduler: Improved output info in case of stall. o HiveWhiteBoard: use recursive mutex instead of a spin mutex in order to support MiniBrunel. o HiveSlimEventLoopMgr: run the 1st event alone even if multiple events in flight are selected (eases measurements since some loading happens in minibrunel at the first event). Add per event RSS and timing measurements. o IDataSvc: allow to pass a particular IDataProviderSvc in order to properly use the slots in the whiteboard. o MDF input: It is now possible to read multiple events simultaneously starting from MDF files. RawDataAddresses now do not share the same buffer for banks. The fix (code mainly from M. Frank) consists in the following steps: 1) StreamBuffer class: add an adopt 'method' which corresponds to the 'data' one but passing the ownership of the banks to the client 2) RawDataAddress class: add an adoptData method which corresponds to the setData one. If data is adopted, the destructor of the class will trigger the deletion of the data 3) RawDataSelector class: add a flag to decide if the data is to be adopted by the address or not. It should be an option in the future. 4) MDFSelector class: wire into the method getDataSpace the buffer adoption. As for 3, this should be dynamically chosable. As for the ROOT I/O, the createAddress and next methods of the selector must be called serially and in this order! In any case, this is ensured by the structure of the HiveSlimEventLoopManager. o DetDataSvc: Replace the DataSvc with a version with thread safe retrieve methods:'TsDataSvc'. The DetDataSvc inherits from this TS version of DataSvc. The RegistryEntry had to be made friend of this new svc. Recusrive lock is used given the "richness" of the IDataManager interface. Reentrant methods should be identified and recursive lock eliminated in favour of a rapid spin lock (or no lock at all?) o TimerForSequencer: Eliminate doubles to accumulate statistics in favour of uint64_t-s. Add sigma of the timing measurements o CPUCruncher scenario for MiniBrunel o First iteration of coding conventions