-
Notifications
You must be signed in to change notification settings - Fork 485
Generic tools for the data header #221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generic tools for the data header #221
Conversation
|
Hi Matthias, it looks good! I'm just wondering about the type conversion to BaseHeader, I think we should not expose BaseHeader directly, unless maybe in some internal implementation. MAybe a first step would be to generalize it a bit like this: and then think if we can maybe hide the base class completely (at least in Header::Block API which is the public interface, some static_assert maybe), otherwise it becomes tempting to try to dynamic_cast stuff here... |
|
Hi Mikolaj,good point.Its probably a good idea not to make base header that visible. I will have a second look.Ciao Matthias |
Implements a generic container for the union of a char and a uint element of the same size. Simple definition of 1 to 8 byte decriptors. The generalization for more than 8 bytes can be activated later once an appropriate test setup is available.
3c3d08e to
3cbd55a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have removed the type cast operator for AliceO2::Header::Block. We will first think a bit longer about this matter. I did a forced push to my fork, the respective code has been removed from the updated commits.
The PR is ready for merge now.
* Added draft MCH module * First implementation of SAMPA pedestals analysis * Implemented decoding and mapping classes Also added examples of detector-view histograms * Fixed compilation warnings * Added skeleton of physics data analysis * Added pedestals histograms in detector coordinates * [MCH] added draft decoder for User Logic data * [MCH] added reading of temporary CRU mapping file * [MCH] various improvements Added saving of histograms to ROOT file on local filesystem (temporary patch) Added support for drawing detectors outline on the ROOT plots Tests of detectors/electronics mapping * [MCH] updated tasks * Renamed MCH Modules folder * [MCH] implemented mapping into data decoder * [MCH] moved mapping into data decoder and updated histograms * [MCH] moved mapping into data decoder and updated histograms * [MCH] moved location of all accessory files to /tmp * [MCH] split CRUs and FECs mapping into separate files * [MCH] added preliminary detector contour drawing code in pedestals checker * [MCH] added example for retrieving the CRU mapping from the decoder class * Ajout boucle sur de's, compile sans fonctionner * Updated loop, plots histograms, issues on NHitsDE and NHitsHighAmplDE * Adapted RawDataProcessor, corrected PhyDP, DE-specific histograms still empty * [MCH] improved drawing of detector contours * [MCH] enabled mapping for commissioning * [MCH] reduced verbosity level * [MCH] added checks for histograms in XY detector coordinates * Decommenting PadReading * Added file reader executable The new executable reads data from a binary input file and sends the contents to QC via DPL. The input data file must be filled with contiguous RDH blocks of 8 kB. Each block is read from the file and sent out via DPL. The output format is the same as the one of the readout proxy executable, so that it should be possible to transparently use either of the two data providers without changing the QC side. * RawDataProcessor, added call to readPadMapping2 via mMapFEC object * MuonChambersMapping, definition of readPadMapping, allows to get pads infos on a given DE * Removal of readPadMapping and of DE number hardcoding * [MCH] commented out unnecessary MapFEC member * [MCH] fixed mistake in CRU mapping load * [MCH] removed unnecessary use of MapFEC object and removed DS-specific histograms * [MCH] Small change in histogram title * Added search and display of missing DS * Typos corrected * Debugging of MCHCheckPedestals (for clear marking of failing DSs) * Implementation of Preclustering and Clustering from O2 in QC * Computation of cluster sizes and charge histograms * Commenting faulty cluster size and charge histos, Merging digits from same pads * [MCH] moved modules folder to MUON/MCH * [MCH] improved performances and added overall noise distribution plots * Small changes for compilation * Deleted MCH folder * Modifications to read DPL digits as input for QC * Adapted FileReader to dynamic CRU buffers * Changed name of monitorDataDigits * [MCH] Fixed naming of monitorData function * [MCH] adapted file reader to dynamic CRU block sizes * [MCH] added check for existance of DS board in mapping * [MCH] improvements in pedestals analysis - added function for reading the MCH digits from DPL - improved speed of electronics mapping * Fixed code formatting * [MCH] cleaned code and removed unnecessary logging * [MCH] further code improvements for PR AliceO2Group#221 * [MCH] fixed printf format strings * [MCH] fixed build error * [MCH] further build error fixes * [MCH] further compilation error fixes Co-authored-by: aferrero <andrea.ferrero@cern.ch> Co-authored-by: Barthélémy von Haller <barthelemy.von.haller@cern.ch> Co-authored-by: alice-mch <55982792+alice-mch@users.noreply.github.com> Co-authored-by: Sebastien Perrin <sebastien.perrin@cern.ch>
It goes through the same template code for all types.
AliceO2::Header::Blockto extract the firstBaseHeader