The current event builder is to be adapted to the base class CbmAlgBuildEvents and implemented in the algo directory. The current software should stay in place until verfication of the new algorithm.
Question here: do we have are can imagine to have different algorithms for this task (extracting digis around a trigger time and creating a CbmRawEvent)? If not, we do not necessarily need a base class.
Updated by Dominik Smith 8 months ago
Question here: do we have are can imagine to have different algorithms for this task (extracting digis around a
trigger time and creating a CbmRawEvent)? If not, we do not necessarily need a base class.
Good question. I tend to see base classes as something that should be implemented as the need for them arises, i.e. at the earliest together with the second instance of classes that will derive from them. That way, the shared properties of the respective objects are clear from the outset and don't have to be predicted in advance. Also, doing it this way doesn't lead to states of the code that contain "unused generality", which some clean-coding paradigms suggest avoiding.
Basically, the argument against unused generality is a combination of "you probably won't need it" i.e. "accurately predicting future needs is hard", "it will confuse the users" and "it leads to higher code complexity without gains in functionality".
I would say the same thing about a base class for trigger / seed finding algorithms, by the way.
Updated by Volker Friese 8 months ago
One prime reason for base classes is of course to implement common functionality. The second one, however, is to be able to start the framework integration before the concrete implementation is available.
The trigger is a very general concept - actually, it is the core of the online data processing, and there will be many different and differently complex triggers. The digi-based trigger (seed finder) is only one and a rather simple example. Already here, we are discussing different implementations (fixed window size vs. minimum number of digis).