-
Notifications
You must be signed in to change notification settings - Fork 27
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
Design and Implement Data Models For Raw/Calibrated Data #74
Comments
I think a good starting point would be to see what, if anything, we know about:
|
Can you explain more about the UDD & EH databanks? You links to the documentation are 404ing, and there is nothing explaining what they are for in ddb 4521 |
@pguzowski links should now be fixed. DocDB 4521 has additional DocDB ids where there's some info on the banks: DocDB-4504, DocDB-4467, DocDB-4254 (Calibration/Reconstruction side: DocDB-4483). "UDD" is basically the raw event data (so geiger, calo etc), "EH" is event level metadata, likely counter, timestamps and so on. |
Is there anywhere we should be doing this work? I.e. a shared document... |
@pguzowski, right here in the comments! It's a discovery/discussion exercise at this point, so useful to link to code, add snippets etc. Once we converge on structures/design, it can be written up as a tech note. |
From the point of view of the tracker UDD will need for each event, a list of geiger digits. CD will store tracker hits. |
Thanks @pguzowski! So sketching things out as they stand: struct EventHeader {
TimeStamp triggerTime;
};
struct RawGeigerHit {
ChannelID id;
TimeType anodeT0;
TimeType anodeT1;
TimeType anodeT2;
TimeType anodeT3;
TimeType anodeT4;
TimeType cathodeTop;
TimeType cathodeBottom;
};
struct CalibratedGeigerHit {
GeometryID id;
float radialDistance;
float radialDistanceError;
float longitudinalDistance;
float longitudinalDistanceError;
}; Here I've only sketched attributes - one thing it highlights is the need to identify what Existing currently are https://github.com/SuperNEMO-DBD/Falaise/blob/develop/source/falaise/snemo/datamodels/raw_tracker_hit.h and https://github.com/SuperNEMO-DBD/Falaise/blob/develop/source/falaise/snemo/datamodels/calibrated_tracker_hit.h which have additional data that I'm not sure about. There's a possible geometric id from Bayeux: https://github.com/SuperNEMO-DBD/Bayeux/blob/develop/source/bxgeomtools/include/geomtools/geom_id.h, which basically reduces to struct GeometryID {
uint32_t type;
std::vector<uint32_t> addresses;
}; |
Hi, The idea was to parse the Raw Data text files produce by the Front-End Boards, serialize the hits and pack calorimeter and tracker hits into events. I think this preliminary work is a good starting point for the Raw Data / Event Builder parts and have to be integrated (and certainly merged because few classes already exists) in the source of Falaise. |
@goliviero definitely useful! I noted a few references to "SNDER": Falaise/companions/fecom/src/libs/libfecom/fecom/tracker_hit.hpp Lines 154 to 155 in fd289cf
Is this on DocDB, if so which ID? |
The SNDER (SuperNEMO Demonstator electronics reference) ID on doc db is #2557. |
I think we should add some sort of calibrated time (probably of the time the underlying charged particle passed through the cell) to the calibrated tracker hit
|
@goliviero, @lemiere (and cc'ing @yramachers, @macolino for comment if required), I'd like to follow up on a couple of items from DocDB-4612 presented at the last collaboration meeting. Specifically, the proposed data flow from Slides 3, 4:
I realise that some of the above might not be totally definable at this point, but I think some rough outlines/ideas are critical to start thinking about what will go into the following DataQuality/UDD/CD steps. |
One further item: the current |
So, the On the other points, things are not that clear for the moment :
As you can see for each threshold cross it fills a register. The FEAST read channels / channels and then send it to the DAQ. So for each Geiger cell, 7 registers (timestamps) are filled.
I think we will save the RHD stream because it is raw data and it is mandatory to keep things from the DAQ. The format is not defined yet but it will be compress into binaries.
|
I think composition is better here, both as a model and because struct tracker_digitized_hit {
geomtools::geom_id geo_address;
geomtools::geom_id daq_address;
... other attributes ...
}; and similar for the calorimeter? |
O.k., these should be fully documented ASAP in Section 8 of DocDB #2557 (most things appear there, but not everything).
Agreed on saving the stream, and I'd encourage some thought and discussion now on the format so we have a heads up on any additional requirements for external packages, and have a rough idea of what it'll take to read the files. |
To update this, the https://github.com/supernemo-dbd/SNRawDataProducts project will form the basis for the Raw Data side. It builds on the internal data+daq project at Lyon, eventually, as agreed at the Annecy workshop, to be split out here for sharing between online/offline. @fmauger, @lemiere, could we please have an update on the status of the internal project please? This is needed for critical upcoming work on tracker commissioning (cc'ing @cherylepatrick, @davewaters, @yramachers). |
@fmauger, @lemiere, could we have an update on the status of the internal "snfee" project on the Lyon GitLab please? Whilst a DocDB is available, there has been no update to the Lyon GitLab in several months, including review/merge of a Merge Request to improve ROOT output for commissioning analysis. In going forward with the tracker commissioning we will require at least the https://github.com/supernemo-dbd/SNRawDataProducts library to enable reading of raw data in Falaise. I'd like to get this on a more stable and available path as agreed at Annecy so we're ready for tracker data both online and offline. Just to cross-reference: related issues/tasks are #157 on metadata tracking, plus handling Boost.serialization schema evolution as requested in BxCppDev/Bayeux#48. |
TODO: Discussion about some digitization datamodel and calibration datamodel + connection with the raw data model. |
As outlined in the Analysis Board Meeting of 11/12/2017 (see DocDB-4521), we should document, review and implement data models for:
Useful inputs to the discussion are provided in the above DocDB, and existing C++ code is available in
The initial aim is just to identify the main objects and their attributes, e.g.
moving on to relations and interactions. It's expected this will be an iterative process, but eventually lead to a concrete write up on the Caen Wiki and as a tech note.
The main "stakeholders" in this data are the Data Quality, Calibration and Reconstruction, and Software (inc. developers of the digitization), hence the assignees, but all input is welcome.
The text was updated successfully, but these errors were encountered: