Structural Update to EventBuilderV2 for LAPPDs - #393
Open
anuj-guptta wants to merge 5 commits into
Open
anuj-guptta wants to merge 5 commits into
anuj-guptta wants to merge 5 commits into
Conversation
Limitations of existing framework - Metadata read from both ACDCs in 'LAPPDLoadStore.cpp', but beamgate and timestamps are constructed out of ACDC 0 metadata only. - This led to wrong beamgate alignment in the 'offsetFit_MultipleLAPPD.cpp', causing only ACDC 0 fit to be right. - Later only ACDC 0 offsets and corrections were propagated to downstream tools for matching during EventBuilding. - Not able to recover as much LAPPD events as expected despite moving towards a PPS pre-scale of 5. Updations to code - The structural changes are made to code such that all ACDC related variables are split into '0/1'. - This version is now dual-ACDC EBV2. - The tools are modified to accomodate both ACDCs for all chains of the event building stages. - Updated tools are 'LAPPDLoadStore', 'LAPPDTreeMaker', 'EBLAPPD', 'EBSaver', 'ProcessedLAPPDFilter' and 'ANNIEEventTreeMaker'. - Updated the matching logic in 'EBLAPPD' to use an OR condition between corrected timestamps from both ACDCs to maximize LAPPD event recovery. - The changes are validated over both beam data and laser data, in gpvms and grid submissions as well. - Other fixes include memory leak and code readability. - Cleaned up verbose logging and aligned verbose name with tool name in 'LAPPDLoadStoreConfig'. - Cleaned up 'ANNIEEventTreeMakerConfig'. Issues - With these changes, the existing processed data will not be able to run through 'BeamClusterAnalysis'. Pending - Update downstream analysis and support tools (outside of EBV2) to fully accommodate the new dual-ACDC architecture: - 'PrintDQ', 'LAPPDTreeMaker' (only relevant part was updated) and 'PhaseIITreeMaker'.
- Implemented fallback logic to support older data files that lack explicit ACDC board identifiers. - Safely routes legacy single-board data to downstream tools. - ACDC 1 variables will be set to zero as default in such cases.
- Refactored tree making tools to fully support the new dual-ACDC data configurations. - Note: These are tools used outside the primary data processing chain, so they currently have limited test coverage.
- Implemented OR-logic for the PPS missing check in dual-board configurations. - Dropped backward compatibility for legacy single-board data, as data quality checks are primarily run on new data acquisitions.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes
Limitations of existing framework
LAPPDLoadStore.cpp, but beamgate and timestamp were constructed out of ACDC 0 metadata only.offsetFit_MultipleLAPPD.cpp, such that only the ACDC 0 fit was correctly aligned.offsetFit_MultipleLAPPD.cppto support dual-ACDC EBV2 ANNIE_HelperScripts#2Updates to the EventBuilderV2 framework
LAPPDLoadStore,LAPPDTreeMaker,EBLAPPD,EBSaver,ProcessedLAPPDFilterandANNIEEventTreeMaker.PrintDQandPhaseIITreeMaker.EBLAPPDto use an OR condition between the corrected timestamps from the two ACDCs, allowing LAPPD events associated with either ACDC to be recovered.LAPPDLoadStoreto support legacy single-board data files that do not contain explicit ACDC board identifiers.PrintDQtool.Additional updates
LAPPDLoadStoreConfig.ANNIEEventTreeMakerConfig.Validation
LAPPDTreeMakerandPhaseIITreeMakertools have limited testing since they are not directly related to data processing stages.Checklist before submitting your PR
newusage, there is a reason the data must be on the heapnewthere is adelete, unless I explicitly know why (e.g. ROOT or a BoostStore takes ownership)Additional Material
Attach any validation or demonstration files here. You may also link to relavant docdb articles.