Migration to std::vector as digi container

Added by Volker Friese over 2 years ago

As discussed earlier, our plan is to remove the inheritance of our digi classes from TObject (and, possibly, from any base class). See:

As a first step, the handling of the digi objects through std::vector containers was implemented with r15722, still keeping the inheritance from CbmDigi (and thus, from TObject). That means that for simulated data, digis are from now on provided in vector containers in the ROOT TTree for all detector systems.

All consumers of digis (e.g., reconstruction, QA, analysis) have to changed to get their input data from a vector instead of from a TClonesArray. The recommended way is to use CbmDigiManager for this. The DigiManager shields the application developer from the concrete container used. It can handle also the old TClonesArray as presently still used by the unpackers in case of real data.

This has already be done for all classes employed in regular tests, including nightly tests. For other consumer classes, the changes have to be implemented by the maintainer themselves. Note that the change in the container does not result in a compilation error, but most likely in a runtime error.

The changes to be done in the consumer tasks are:

a.) In the Init() method, the digi manager should be initialised and the presence of the relevant digi branch should be checked:
if ( ! CbmDigiManager::Instance()->IsPresent(kTrd) ) LOG(fatal);

b.) In the Exec() method, a typical loop over the digis in one time slice looks like:
Int_t nDigis = CbmDigiManager::Instance()->GetNofDigis(kTrd);
for (Int_t index= 0; index < nDigis; index++) {
const CbmTrdDigi* digi = CbmDigiManager::Instance()->Get<CbmTrdDigi>(index);
if ( CbmDigiManager::Instance()->IsMatchPresent(kTrd) {
const CbmMatch* match = CbmDigiManager::Instance()->GetMatch(kTrd, index);

Please report if you encounter any problems.

Related issues: #1537, #1538, #1539.

CP-SIM workgroup meeting 24 October 2019 (1 comment)

Added by Volker Friese over 2 years ago

Dear colleagues,

this is to invite to the next workgroup meeting of CP-SIM, to take place tomorrow, 24 October 2019, 10:30 - 12:00 CEST.

The aim of the meeting if to communicate current activities and to plan for the next release APR20. One project surely to be finished latest by then is the transition towards using std::vector containers for the digi objects.

For details and the proposed agenda, see You are welcome to propose more agenda items. Developers are asked to contribute with short presentations.

Meeting coordinates:
Vibe meeting 1612530599 (
GSI: KBW 5.32

With best regards,

Volker Friese

CP-SIM session at the Collaboration Meeting April 2019

Added by Volker Friese about 3 years ago

Dear colleagues,

during the collaboration meeting next week, we will have a session for the CP-SIM workgroup meeting. We should present recent developments and discuss the planning of future developments for release OCT19 and beyond.

I am aware of ongoing or planned developments for STS, RICH, MUCH and TRD and would like to ask Evgeny, Semen, Vikas and Etienne to prepare short respective presentations (10 + 5 min.). Please confirm by email. If something is to be presented for MVD, TOF or PSD, please let me know in order to include it into the agenda.

We shall also discuss with the PWGs on their needs and wishes for further developments in terms of simplified interfaces and macros.



Contributions to the CBM Progress Report 2018

Added by Volker Friese over 3 years ago

Dear colleagues,

the deadline for contributions to the CBM Progress Report is just two weeks away (21 February). Please let me know who from CP-SIM intends to prepare a contribution. If you want to do so, please send it to me latest by the deadline.

Best regards,


First CP-SIM workgroup meeting: 15 November 2018, 10:30 CET (1 comment)

Added by Volker Friese over 3 years ago

Dear colleagues,

as discussed at the recent collaboration meeting, we will have monthly meetings of the computing workgroup CP-SIM, of which you are a member. The meetings will use once per month the time slot of the CBM Software Meeting, i.e. Thursdays, 10:30 CET. Usually, this will be the first Thursday in the month; this month, it is the second Thursday due to the Joint Scientific Council having taken place last Thursday, which I had to attend.

Please see for a tentative agenda for 15 November. I propose to have regularly short (~5 min) status reports from the active work packages:
- framework (V. Friese)
- STS (E Lavrik)
- RICH (S. Lebedev)
- MUCH (V. Singhal, E. Nandy, P. Bhaduri)
- TRD (E. Bechtel, A. Bercuci, F. Roether)
- PSD (S. Morozov, V. Klochkov)
- Passives (A. Senger)

Should you wish to report more extensively, please let me know in advance.

Additional agenda items are:
- digitization with multiple MC inputs (V.F.)
- status of detector geometry notes (all)
- priorities and planning (all)

Please let me know if you have additional suggestions for the agenda.

Hope to meet you all on Thursday,


Collaboration Meeting October 2018

Added by Volker Friese over 3 years ago

Dear colleagues,

we are currently in the process of organizing the upcoming Collaboration Meeting from 1 to 5 October this year. There will be parallel work group sessions for each Computing Project. For the CP Simulation Software, we will use this to review and discuss the current status, discuss next steps, and discuss how to organise ourselves in an efficient way.

In order to estimate the required time, please inform me whether you want to give a presentation in this work group session, regarding detector geometry, digitizers, and other topics concerning simulation software.

Please acknowledge that simulation software is organised separately from reconstruction software (cluster and hit finders). For the latter, M. Zyzak is the Project Leader. This separation may sometimes look artificial, in particular when the same person is involved on the detector side. It is, however, necessary to properly structure and plan our efforts.

With best regards,


Re-factoring of detector response simulation

Added by Volker Friese almost 4 years ago

With r13014, the unification of event-by-event simulation and time-based simulation was implemented following the discussion in the software meeting of 7 June 2018.

All digitizers were modified accordingly, meaning that they now derive from CbmDigitize and implement the pure virtual methods void WriteDigi(CbmDigi*) and void ResetArrays(). Data are always delivered to CbmDaq, which decides when to fill the tree.

Please check the changes to the digitizers and test.


    Also available in: Atom