Sim-Development #1541
closedSim-Development #1536: Remove all inheritance from digi classes
Adapt digi consumer classes to handle digis without baseclass CbmDigi
Related issues
Updated by Volker Friese over 2 years ago
- Related to Sim-Development #1540: Remove inheritance of CbmDigi from TObject added
Updated by Volker Friese over 2 years ago
- Precedes Sim-Development #1542: Remove inheritance of digi classes from CbmDigi added
Updated by Volker Friese over 2 years ago
- Status changed from Assigned to In Progress
- Assignee changed from Volker Friese to Pierre-Alain Loizeau
- % Done changed from 0 to 20
The usage of the base class CbmDigi must be removed. In a few cases, this could be trivially done by avoiding an upwards cast (see r15783).
A more involved problem is classes that use CbmTbDaqBuffer, which seems to be a copy of the now deprecated CbmDaqBuffer. These are:- beamtime/CbmSourceLmd
- beamtime/unpacker/CbmROCUnpackSts
- beamtime/unpacker/CbmROCUnpackMuch
- fles/cern2016/unpacker/CbmTSUnpackMuch
- fles/cern2016/unpacker/CbmTSUnpackTof
- fles/star2018/unpacker/CbmUnpackTofStar2018
- MQ/unpacker/CbmDeviceUnpackTofMcbm2018
- fles/mcbm2018/tasks/CbmCheckTiming
- fles/mcbm2018/tasks/CbmMcbm2018CheckPulser
Before taking action, I would like to inquire which of these classes are obsolete, in order not to waste work.
Updated by Pierre-Alain Loizeau over 2 years ago
- beamtime/CbmSourceLmd (or maybe still used by Christian Simon for TRB data)
- beamtime/unpacker/CbmROCUnpackSts
- beamtime/unpacker/CbmROCUnpackMuch
- fles/cern2016/unpacker/CbmTSUnpackMuch
- fles/cern2016/unpacker/CbmTSUnpackTof
- fles/star2018/unpacker/CbmUnpackTofStar2018
- MQ/unpacker/CbmDeviceUnpackTofMcbm2018
- fles/mcbm2018/tasks/CbmCheckTiming
- fles/mcbm2018/tasks/CbmMcbm2018CheckPulser
=> Would work with a templated function maybe?
I cannot add Norbert as watcher, could you do it?
Updated by Volker Friese over 2 years ago
- Assignee changed from Pierre-Alain Loizeau to Volker Friese
Both
fles/mcbm2018/tasks/CbmCheckTiming
fles/mcbm2018/tasks/CbmMcbm2018CheckPulser
can, I think, be rather easily adapted. There are switches for detector ID anyhow in the code, the cast to CbmDigi can be moved into that, thus avoiding using a base class pointer.
Updated by Volker Friese over 2 years ago
I have removed the inheritance from CbmDigi for MVD, STS, RICH, MUCH and PSD so far. In the process I have noticed that in some classes (CbmCheckTiming, CbmMcbm2018CheckPulser), the virtual method CbmDigi::GetCharge() was used, Since this method was not implemented in RichDigi, MuchDigi and PsdDigi, it always returned zero (implementation in base class). I hope Pierre-Alain was aware of that. I have implemented these methods now directly in the respective digi classes, again with zero return value.
Updated by Volker Friese over 2 years ago
- % Done changed from 70 to 80
With r15813, all digi classes used in simulation do not derive from CbmDigi any more (still from TObject, that will be the next step).
To be adjusted (use CbmDigiManager) are still:- run/CbmBuildEventsIdeal
- littrack/cbm/qa/clustering/CbmLitClusteringQA
- fles/mcbm2018/tasks/CbmCheckEvents
- beamtime/CbmSourceLmd
- beamtime/unpacker/CbmROCUnpackSts
- beamtime/unpacker/CbmROCUnpackMuch
- fles/cern2016/unpacker/CbmTSUnpackMuch
- fles/cern2016/unpacker/CbmTSUnpackTof
- fles/star2018/CbmUnpackTofStar2018
and the directory MQ/unpacker.
If some of these are still needed, some work has to be invested. Otherwise, I suggest to remove all these classes.
- much/CbmMuchStrawDigi
- psd/CbmPsdDigiMcbm
- core/data/beamtime/CbmAuxDigi
- core/data/beamtime/fhodo/CbmFiberHodoDigi
- core/data/beamtime/CbmTbEvent
which have to be attended to (if still needed) before the base class CbmDigi can be removed.
Updated by Volker Friese over 2 years ago
- % Done changed from 80 to 90
To be adjusted (use CbmDigiManager) are still:
- run/CbmBuildEventsIdeal
- littrack/cbm/qa/clustering/CbmLitClusteringQA
- fles/mcbm2018/tasks/CbmCheckEvents
Are all done by now.
There are other digi classes still deriving from CbmDigi:
- much/CbmMuchStrawDigi
Will be removed (notice from V. Singhal)
- psd/CbmPsdDigiMcbm
Is unified with CbmPsdDigi (r15834)
- core/data/beamtime/CbmAuxDigi
- core/data/beamtime/fhodo/CbmFiberHodoDigi
- core/data/beamtime/CbmTbEvent
CbmDigi inheritance was removed (still derive from TObject, but no harm in that).
Updated by Volker Friese over 2 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
Target met, issue can be closed.