WIP: Cleanup of STS unpacker
A new unpacker class is developed, based on CbmMcbm2018Unpacker. This is work in progress.
New task and algo classes are created in /reco/detectors/sts: CbmAlgoUnpackSts.h CbmAlgoUnpackSts.cxx CbmRecoUnpackSts.h (task) CbmRecoUnpackSts.cxx (task)
The main goal is the bring the STS unpacker more in line with the layout presented by @v.friese in the following presentation:
Aside from cleanup, renaming and moving, the biggest changes are the following:
-All monitoring functionality, i.e. generation of histograms was moved to a new class CbmAlgoUnpackStsMonitor (found in the same folder).
-CbmAlgoUnpackSts is now derived from from CbmUnpack (found in /reco/base/), instead of CbmStar2019Algo. This means that Algo no longer owns the Digi vector, but uses a pointer to std::vector. The base class was also changed slightly, to use pointers instead of references, and monitoring functionality was removed.
-A new function Unpack() was implemented to replace ProcessTs(), as proposed in the talk linked to above.
CMakeLists.txt and CbmRecoStsLinkDef.h were changed accordingly. Currently, the inheritance of CbmRecoUnpackSts from CbmMcbmUnpack is left in place, to keep the possibility of using CbmMcbm2018Source.
There are still several large blocks of commented-out code. This will be addressed.
Feedback from @p.-a.loizeau @se.gorbunov @praisig @f.uhlig would be appreciated.
Merge request reports
Activity
Dear @f.uhlig, @v.friese, @p.-a.loizeau,
you have been identified as code owner of at least one file which was changed with this merge request.
Please check the changes and approve them or request changes.
added CodeOwners label
added 1 commit
- 75370131 - CbmAlgoUnpackSts: Removed ProcessTs() from derived and base classes. Removed...
added 1 commit
- a5665fc6 - CbmAlgoUnpackSts: Removed ProcessTs() from derived and base classes. Removed...
added 1 commit
- 6dbfee9c - Moved control of CbmAlgoUnpackStsMonitor object from CbmAlgoUnpackSts to CbmRecoUnpackSts.
added 1 commit
- b3993837 - Removed some commented out code which referred to event building or hit...
added 1 commit
- 83204456 - Removed some commented out code which referred to event building or hit...
added 1 commit
- 6112a9f7 - CbmAlgoUnpackSts: Implemented a separate function for the generation of debugging histograms.
added 1 commit
- 01418d85 - CbmAlgoUnpackSts: Added optional debugging histograms.
- Resolved by Pierre-Alain Loizeau
@p.-a.loizeau I produced some histograms from the file "831_pn02_0001.tsa" which show the message type per DPB, and noticed that the DPB index is zero in all cases. Is this expected for this data set?
added 1 commit
- 00258d4f - CbmAlgoUnpackStsMonitor: Added MessTypePerElink histograms.
- Resolved by Dominik Smith
@p.-a.loizeau Could you please take a look at the function CbmAlgoUnpackSts::ProcessDebugInfo?
What I did there is take some of the commented out lines, which were used to fill different histograms during debugging, and combine them into a function which can be activated with a single if statement (which has a negligible cost for the "false" case) to produce debugging info.
What confuses me is that the Elink index was handled differently for the different message types. For each message type other than "Hit", the Elink index is set to "fuCurrDpbIdx * fUnpackPar->GetNbElinkPerDpb()". I was wondering whether I should change this to the way that it is done for hit messages in all cases.
Also, for status messages no histograms were produced previously. Is there a reason for this? Probably I will just add them, as this should not hurt anything.
added 1 commit
- c05733b5 - CbmAlgoUnpackStsMonitor: Added MessTypePerElink histograms.
added 1 commit
- 3f812e44 - CbmAlgoUnpackStsMonitor: Added MessTypePerElink histograms.
added 1 commit
- bfc31c0f - CbmAlgoUnpackStsMonitor: Added histogram for StsHitsElinkPerDpb.