Couple STS reconstruction to digi data in CbmDigiEvent format
With the introduction of CbmDigiEvent, produced by the event builder, the need to couple reconstruction tasks to it arises. The access logic is quite different from the current one, where digi objects are in one large array per time slice, and the event objects provide the indices of the associated digis. Now, the digis have to be obtained directly from the CbmDigiEvent object.
To do this properly, it can hardly be caught in one single interface instance. Instead, the necessary changes would have to be applied in all reconstruction tasks - which will take some time, in particular if the current data format (CbmEvent) shall continue to be supported.
In order to arrive at a quick solution applicable for the mCBM operation, an additional task CbmTaskMakeRecoEvents is implemented. This task must be run prior to any reconstruction task. It simply copies the digis from the CbmDigiEvent objects into large, timeslice-wise vectors as direct branches in the ROOT tree, and creates and fill the associated CbmEvent objects. In this way, the "old" data interfaces are restored without the need to change any reconstruction task. The expense is the duplication of digis in memory. This is to be regarded as temporary solution until the reconstruction tasks will be properly interfaced to CbmDigiEvent or CbmDigiTimeslice.
The current implementation is for STS only, since CbmDigiEvent / CbmDigiData currently support only CbmStsDigi. It can be straightforwardly expanded once other digi classes are included in CbmDigiEvent.
A usage example is put in macro/run/run_reco_digievent.C (STS reconstruction only).