-
Notifications
You must be signed in to change notification settings - Fork 40
Beam timing integration and optical calibration nutples update #751
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
Conversation
…m dumping, use of shared baselines, general code cleanup
|
trigger build |
|
✔️ 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 |
|
✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard |
|
❌ CI build for ICARUS Failed at phase ci_tests ICARUS on slf7 for e26:prof - ignored warnings for build -- details available through the CI dashboard 🚨 For more details about the failed phase, check the ci_tests ICARUS phase logs parent CI build details are available through the CI dashboard |
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
…st for board setup
I reviewed, implemented and resolved all the comments! And yes, as an avid non-user of |
|
trigger build LArSoft/lar*@LARSOFT_SUITE_v09_91_02 |
|
✔️ 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 |
This PR is the initial step towards integrating the beam timing information into the official reconstruction workflow. It includes the low-lovel producer that extracts the beam times (EW,RWM) from the digitized waveforms as well as the infrastructure update to propagate RWM-relative times up to the calibration ntuples.
In particular, the main updates are:
PMTBeamSignalsExtractorto extract the RWM/EW times from their digitized waveforms in the spare channels of the PMT digitizers and two new productsstd::vector<icarus::timing::PMTBeamSignal>storing the corrected RWM and EW times respectively.ICARUSBeamStructureAnaas a quick shortcut for studies on the beam bunch structure, combining together PMT, beam and CRT information.ICARUSFlashAssAna(standard light analysis for the calibration ntuples), including the addition of new beam-related variables and other small changes (including the option to dump the full PMT waveforms!)icarus_stage0_defsto includePMTBeamSignalsExtractorin the chain of PMT producers with labelbeam, therefore injecting two new data products (beam:EWandbeam:RWM).fclfiles to runICARUSBeamStructureAnaandICARUSFlashAssAnaon raw files.More details are given below for the reviewers. I'm summoning for the task @PetrilloAtWork (as LArSoft grandmaster and OpReco/trigger convener), @rtriozzi , @aheggest and @francescopoppi (as CRT experts, timing enthusiasts and calibration ntuples enjoyers).
Details
PMTBeamSignalsExtractorThis module extracts the RWM and EW times from the waveforms recorded in the spare PMT channels and associates these times with all the channels in the same PMT readout crate. A few notes:
CAEN_V1730_setup_icarus.fcl. The wrong labels due to fibers having been swapped in the middle of Run-2 (see SBN-doc-34631 for details) are corrected while packaging the data products.PMTWaveformTimeCorrectionExtractor: get the absolute minimum, get the baseline 20 samples before, and take the start time from the sample that crosses 20% of the amplitude (baseline-minimum). It's important to note that a tunable threshold (default: 200 ADC) has been added to avoid picking up on electronic crosstalk (see SBN-doc-34928) which becomes particularly relevant when no real signal is present.std::vector<icarus::timing::PMTBeamSignal>with 360 elements each, representing the relevant RWM or EW time for the corresponding PMT channel (similar concept tostd::vector<icarus::timing::PMTWaveformTimeCorrection>). The reason for saving different RWM times for each PMT crate is related to being currently unable to determine a unique one. If no signal was found in the waveform, the RWM/EW time defaults to zero andisValid()returns false foricarus::timing::PMTBeamSignal(which should always be checked before using the product).icarus_stage0_defs.fclasbeam: the two data products are labelled asbeam:EWandbeam:RWMrespectively.ICARUSBeamStructureAnaThis analyzer is meant to simplify the work for people looking directly at the beam bunch structure by putting together two ROOT trees with relevant trigger, PMT, beam and CRT variables. This is an updated version of what has been used for the light-only reconstruction of the BNB/NuMI bunch structure.
_rwmin the variable name). If the RWM time is not available for a particular channel, the RWM-relative times are defaulted to zero. This could happen both if the RWM digitized signal was missing completely for the event or if it was missing for only one or few crates.run_beamstructure_ana.fclis provided to run this analyzer directly on raw data. The final output contains both its output trees and the debug trees fromPMTBeamSignalsExtractorso that it provides all the info needed for reconstructing and studying the beam bunch structure on data.ICARUSFlashAssAna(calibration ntuples)This analyzer produces the optical trees that are part of the calibration nutples. It has been updated to propagate the new beam timing variables to a common widely-used output. At the same time, additional updates were implemented to either clean-up the code or add functionalities. Changing variable names or conventions was avoided to maintain compatibility with user codes that might be based off these trees.
_rwmin the variable name). If the RWM time is not available for a particular channel, the RWM-relative times are defaulted to zero. Please note that the RWM-relative rise time is not provided in this format as the rise time is defined by convention as being relative to the start time, so it can be easily computed from the other variable.UseSharedBaseline) has been added (defaulted totrue) for the the baseline computation in the waveform info tree using the SharedBaseline module instead of a single median over the waveform. If the option is disabled or the number of baselines does not match the number of waveforms (which can happen if you mix data products, e.g.daqPMTonbeamwithpmtbaselines), the simple median is used. Please note that even if the option is disabled, the module still requires the SharedBaseline data product to be available... this shouldn't be too much of a problem given that it's in the standardstage0flow.SaveRawWaveforms, defaulted tofalse) has also been added to dump the full waveforms in the waveform info tree. This was requested some time ago and might be useful for specific productions. It should generally be disabled since the it makes the output tree quite heavy.run_flashana.fclis provided to run this analyzer directly on raw data.