-
Notifications
You must be signed in to change notification settings - Fork 34
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
Trigger decoder update to unpack the new trigger diagnostics #740
base: develop
Are you sure you want to change the base?
Trigger decoder update to unpack the new trigger diagnostics #740
Conversation
This includes LVDS/adder bits, trigger logic and trigger tick (new!) also for minimum bias events when such information is present.
This includes would-be trigger information in minimum bias events.
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.
Looks good to me.
OK to proceed in implementing this. |
trigger build LArSoft/lar*@LARSOFT_SUITE_v09_90_00 SBNSoftware/sbnobj#110 |
✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard |
✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard |
❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for c14:prof -- details available through the CI dashboard 🚨 For more details about the failed phase, check the build ICARUS phase logs parent CI build details are available through the CI dashboard |
🚨 For more details about the warning phase, check the ci_tests ICARUS phase logs parent CI build details are available through the CI dashboard |
trigger build |
✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard |
✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard |
❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for e26:prof -- details available through the CI dashboard 🚨 For more details about the failed phase, check the build ICARUS phase logs parent CI build details are available through the CI dashboard |
❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for c14:prof -- details available through the CI dashboard 🚨 For more details about the failed phase, check the build ICARUS phase logs parent CI build details are available through the CI dashboard |
trigger build SBNSoftware/sbnobj#110 |
✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard |
✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard |
❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for c14:prof -- details available through the CI dashboard 🚨 For more details about the failed phase, check the build ICARUS phase logs parent CI build details are available through the CI dashboard |
🚨 For more details about the warning phase, check the ci_tests ICARUS phase logs parent CI build details are available through the CI dashboard |
Changes in the trigger information conveyed via DAQ fragments are documented in SBN DocDB 36264 and link therein.
The new information needs to be extracted and stored into a data product (see SBNSoftware/sbnobj#110 for the data product extension).
These changes enable the ICARUS trigger decoder tool V3 to decode the new format of data (whose version number is by chance also
3
).Changes
The changes all pertain the cryostat-specific information about global trigger candidates in that cryostat; this information lands on a
sbn::ExtraTriggerInfo::CryostatInfo
object. The information of each cryostat is treated independently from the other. The changes are the following:triggerLocationBits
); this happens only for light-based triggers, not minimum bias ones.Flag_XXXX
datum is1
for that cryostat; this may happen in minimum bias events too, and should always happen when there is a global trigger in the cryostat. However, in rare cases (< 0.01%) it was observed that there is no trigger location (triggerLocationBit
0
) while there was obviously a trigger — the event was acquired, after all. In those cases, theFlag_XXXX
was still set and the decoding should still happen.Flag_XXXX
, the content ofDelay_XXXX
is converted into nanoseconds via the new configuration parameterFPGAtickLength
(defaulting to25
ns to reflect the settings of the hardware since its installation) and stored into the new data membersbn::ExtraTriggerInfo::CryostatInfo::beamToTrigger
.As a remainder, all this information pertains the first trigger candidate, with the exception of the count which records how many more candidates arrived after the first one. The only reason why the first candidate of a cryostat is not be promoted to global trigger is that a global trigger has already happened, either from the other cryostat or because of a minimum bias gate.
Backward compatibility and testing
The new decoder was successfully tested with old data which does not include the new information, and with new data which does, for both minimum bias and light-based trigger events.
The old decoder was also tested with the new data, in which case it correctly decodes the available information and ignores the new one, which is left default-constructed (like there were no trigger in the cryostat). The old code also does not decode anything of the cryostat information for minimum bias events.
All changes to the fragment data format and to the offline code (data product and decoding tool) are non-breaking both backward and forward.
Reviewers
I summon for review one among: