-
Notifications
You must be signed in to change notification settings - Fork 53
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
Event builder v2 tools #307
base: Application
Are you sure you want to change the base?
Conversation
This reverts commit 6e3c7d8.
Tools for Event Builder version 2, contains EB tools, and two tools for LAPPD_EB tool chain, and one script for LAPPD timestamp fitting
ANNIEEventTreeMaker tool for processed data from EventBuilderV2 tool chain, like the PhaseIITreeMaker
Hi Yue. Sorry for the delay on this. First some top level comments on the PR - as always, please try to address just one thing with each PR. If this addresses 3 things, it would be better as 3 smaller PRs. If bugs spring up later someone can check out a commit before/after each PR merge, check does the code work/not work, and relatively easily pinpoint where the bug was introduced. Minimal PRs = less changes = less code to look for the bug in. Keeping all related changes together also makes it easier to spot when a change that impacts other tools has been introduced but not all impacts accounted for. etc etc. Secondly, validation is good (especially for any PRs that affect "standard" toolchains), but I feel like it's really critical for event-building. Have you processed the same runs with the old and new toolchains compared the outputs? If you can run in an 'equivalent' kind of configuration, a simple That may be a lot of work, but changes to event building impact all analysis of data out of the detector - I do think we should validate before we 'tag' this as the new offcial (especially for a rewrite of this magnitude, but the same tools should be used for any EB changes going forwards). |
Related but indepdent: I also think it would be good to benchmark performance. |
Regarding 1. in your PR comment specifically
is a sentence I dread reading. Is there really no way to linearise this? Running a toolchain, then a script, then another toolchain is really antithetical to the ToolChain process. We've now had this with trigger overlap, with beam information, with LAPPD timing, with muon fitting.... The process to analyse data becomes a long string of scripts, executables, a bunch of intermediate files.... n.b. is this the |
OK, some specific comments on the actual code:
can we get these from input file? Surely we should not need to ask the user to tell us if it's data or not.
surely
if there's some reason this cyclic mapping is needed, perhaps we should wrap it in a single function in the datamodel, rather than needing to repeat this multi-step operation.
|
Thanks for the reply! |
This PR includes tools for two toolchains: LAPPD_EB and EventBuilderV2, and one tool for BeamClusterAnalysis tool chain.
LAPPD_EB generates a ROOT file containing LAPPD timestamps and CTC timestamps for fitting. A script is then used to fit these timestamps and generate an offset file for LAPPD event building (LAPPDTreeMaker and offsetFit_MultipleLAPPD.cpp).
EventBuilderV2 is based on the data decoders from version 1 of event building, which primarily used ANNIEEventBuilder. It introduces a tool similar to the LAPPD data decoder (LAPPDLoadStore). Version 2 adopts a different strategy for loading raw data, discards the build type implementation (in EBLoadRaw), and separates the event-building processes for each subsystem into distinct tools (the other EB* tools).
For BeamClusterAnalysis, I provide a updated version of the PhaseIITreeMaker: ANNIEEventTreeMaker. This tool will generate tree based on event, rather than CTC-MRD or CTC-cluster pairs. It also includes more information like beam PoT.
More details can be found in the slides from the collaboration meeting and the analysis workshop.
https://annie-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=5633