-
Notifications
You must be signed in to change notification settings - Fork 484
calibrations in DPL #2803
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
calibrations in DPL #2803
Conversation
4253527 to
078851b
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.
| if (dh->dataDescription != o2::header::gDataDescriptionRawData) { | |
| if (dh == nullptr || dh->dataDescription != o2::header::gDataDescriptionRawData) { |
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.
When using custom completion policies, input slots might be invalid, the DataRef object contains nullptr.
I'm going to enhance the API in order to simplify implementations and to make it more intuitive. Actually the API has not been adopted to features which have been added.
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.
#2843 will silently fix the problem, invalid slots will be filtered out from the iteration
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.
Thanks for the quick improvement. Meanwhile I also tested with the nullptr. This works. Thanks for the hint. Next I'll try to use TFID for event detection.
What would even be better is to get all data belonging to one TF in one call, instead of one call per link.
783c7db to
ed9014c
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.
Hi Jens, you need to refine the logic for the activeSector variable. This is a bit field which should be calculated once to signal all active sectors to the tracker which will then wait for a complete data set. Right now it looks like you are setting only the bit for the current sector which is propagated anyhow as the sector member of the header. So for one TF entity you need to calculate the active sectors before sending the first digit output, and then the active sector member variable in the header needs to be the same for all output parts of the TF.
I think that's why the tracker does not run when connected directly to the raw workflow. But if you have only one sector it should work. That could be a quick test for this hypothesis.
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 checked the logic in the tracker. It is taking the activeSector bitfield face value, meaning that within one computing it will start the processing if it has data for each of the corresponding sectors. In that respect it should work if you always only set one bit for the current sector.
I propose the following logic: the bitfield should always have ones for bits, during sending the active sectors should be accumulated and when the last block is sent, this bitfield must be transmitted. Having all bits set (also those which actually do not correspond to sectors) will make the tracker wait for more data. Only if the transmitted active sector bitfield matches the buffered data, the tracker will start.
2aa87d3 to
acae234
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.
Using QuitRequest::All will terminate all devices and some of them might not have processed the data yet, should be `QuitRequest::Me``
c140e68 to
972d776
Compare
75437d9 to
06da42d
Compare
Implements options for dumping data to file * only the actual calibration output * the full calibration class
|
@matthiasrichter , @shahor02 , |
Still many things to be improved...
o Add DPL device which converts raw data to digits o Adapt Digit dump for in memory processing
* First running version of GBT -> digits -> tracks workflow * Minor cleanup * configurable sector input
* Allow for also treating Decoded raw data * Slightly change data laylout
* Add workflow definiton for link based data decoding and convert it to digits * Modify raw to digits workflow to allow for slecting the decoder type
|
The build for the GPU is failing for the well known CUDA/ROOT/Cmake incompatibility. This will be fixed with alisw/alidist#2157 |
c9418d1 to
5794211
Compare
|
Hi @wiechula |
|
Please don't merge, the CMake fix I linked above must be merged first!
|
|
Lets wait for the fix David mentioned, then it can be merged from my side. There are no changes that impact standard simulation / reconstruction. It is mainly raw data processing preparation for the pre-commissioning analysis and minor fixes. |
|
Dependent PR has been merged, and CI is finally green. Merging since already approved |
No description provided.