Project

General

Profile

Actions

Sim-Development #1556

closed

Sim-Development #1536: Remove all inheritance from digi classes

Adapt simulation and reconstruction to digis with TObject inheritance

Added by Volker Friese over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
High
Assignee:
Target version:
Start date:
03/04/2020
Due date:
% Done:

20%

Estimated time:
20.00 h
Spent time:

Related issues

Related to CbmRoot - Bug #1586: Segmentation fault while unpacking mcbm dataClosedAjit Kumar03/04/2020

Actions
Precedes Simulation - Sim-Development #1540: Remove inheritance of CbmDigi from TObjectClosedVolker Friese03/05/202003/06/2020

Actions
Follows Simulation - Sim-Development #1539: Adaption of digi consumer classes to input std::vector instead of TClonesArrayClosedVolker Friese02/14/202002/17/2020

Actions
Actions #1

Updated by Volker Friese over 2 years ago

Actions #2

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
Actions #3

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.

Actions #4

Updated by Volker Friese over 2 years ago

  • % Done changed from 0 to 20
Actions #5

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.

Actions #6

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.

Actions #7

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.

Actions #8

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

Actions #9

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.

Actions #10

Updated by Pierre-Alain Loizeau over 2 years ago

  • Related to Bug #1586: Segmentation fault while unpacking mcbm data added
Actions

Also available in: Atom PDF