Sim-Development #1556
closedSim-Development #1536: Remove all inheritance from digi classes
Adapt simulation and reconstruction to digis with TObject inheritance
Related issues
Updated by Volker Friese over 2 years ago
- Precedes Sim-Development #1540: Remove inheritance of CbmDigi from TObject added
Updated by Volker Friese over 2 years ago
- Due date changed from 02/24/2020 to 02/21/2020
- Start date changed from 02/19/2020 to 02/18/2020
- Follows Sim-Development #1539: Adaption of digi consumer classes to input std::vector instead of TClonesArray added
Updated by Volker Friese over 2 years ago
I have removed the TObject inheritance from CbmStsDigi and CbmPsdDigi so far (CbmPsdDigiMcbm has vanished, it was copied to CbmPsdDigi).
This means that the unpackers as they are (fles/mcbm2018) will not work properly since they still produce TClonesArray output of digis.
Updated by Volker Friese over 2 years ago
- % Done changed from 20 to 60
CbmMuchDigi and CbmRichDigi are also done.
It will not be possible to remove the TObject inheritance from CbmMvdDigi, since the MVD digitizer uses internally TClonesArrays very extensively. Making CbmMvdDigi a standalone object would require a major redesign of the entire MVD software. We will have to do that eventually, but I do not think that is feasible for the APR20 release.
Updated by Volker Friese over 2 years ago
- % Done changed from 60 to 80
CbmTrdDigi is also done (r15843).
I had to remove the classes
beamtime/trd/lib/CbmTrdSimpleDigitizer and
beamtime/trd/lib/CbmTrdAdvDigitizer
from the build. These classes do not only read digis, but produce them in TClonesArrays, so no easy and quick fix was possible. I did not go into the trouble of fixing them, since the entire beamtime directory is probably obsolete anyhow.
Updated by Volker Friese over 2 years ago
- Status changed from Assigned to Resolved
- % Done changed from 80 to 100
With r15844, also CbmTofDigi is not a TObject any longer.
The only difficulty in the reco tasks was found in CbmTofEventClusterizer, which is used for reconstruction of mCBM (Reconstruction for full CBM is done with CbmTofSimpleClusterizer). This class used internally TClonesArrays to store calibrated digis, alo of type CbmTofDigi. I have changed this to the usage of std::vector instead. I have no means to test it, though, with real data. The code is close to undebuggable.
Since the T0 digis are also described by the class CbmTofDigi, but not included (yet) in CbmDigiManager, I have introduced the use of std:vector explicitely for T0 in some tasks in fles/mcbm2018/tasks (CbmCheckEvents, CbmCheckTiming).
So, now all our digi classes are non-TObjects. This issue can thus be closed.
Updated by Pierre-Alain Loizeau over 2 years ago
We still have to update all the mCBM unpacking and reconstruction classes as well as some analysis macros from TClonesArray to std::vector.
I am in the process of doing it, so maybe a new issue should be created about it which depends on #1511
Updated by Volker Friese over 2 years ago
- Status changed from Resolved to Closed
All reconstruction classes should by now work formally with both vector input and TClonesArray input. Of course, our digis cannot be stored in TClonesArrays any longer, so the TClonesArray option is obsolete. Yes, the unpackers have to produce output in this format.
I do not know of all analyis macros, of course.
The last class to be adapted was CbmMcbm2018EventBuilder. With that, I close this issue.
Updated by Pierre-Alain Loizeau over 2 years ago
- Related to Bug #1586: Segmentation fault while unpacking mcbm data added