-
Notifications
You must be signed in to change notification settings - Fork 31
Add PMT Beam Signal timing to ICARUS CAFs #541
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
base: develop
Are you sure you want to change the base?
Conversation
…using information stored in PMTBeamSignal
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.
Generally looks good. Main comment is: we need to make sure this doesn't break if the product is missing (MC files, older data files). Have you tested this as well?
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.
My comments were addressed by the recent changes, so I approve.
Description
This pull request reads the special PMT Beam timing signal (RWM) into the CAFMaker which enables us to reconstruct the Beam Bunch structure seen by ICARUS PMTs.
The PMT Beam signals were originally stored in an icaruscode data product
icarus::timing::PMTBeamSignal
, but icaruscode PR #832 and sbnobj PR #130 together move the data product to a SBN common area,sbnobj/Common
.A
std::vector<sbn::timing::PMTBeamSignal>
is read into the CAFMaker and then passed toFillICARUSOpFlash
if thePMTBeamSignal
is valid. If running on MC, offbeam data or stage1 files without thesbn::timing::PMTBeamSignal
data product, thesrflash.rwmtime
variable will be left to it's default valuekSignalingNaN
in SROpFlash.h.Within
FillICARUSOpFlash
, two new helper functions defined in sbnobj/Common/PMT/Data/PMTBeamSignal.cxx are called.SelectFirstOpHitByTime
reads in a single OpHit and returns a startmap and risemap (holding the start and rise time of each OpHit channel).getFlashBunchTime
reads in the risemap andstd::vector<sbn::timing::PMTBeamSignal> RWMTimes
, finds the mean between the first OpHit RiseTimes on opposite walls to get the Flash Interaction time wrt the RWM time.This PR is a companion to sbnanaobj PR #141. This PR requires icaruscode PR #832 and sbnobj PR #130 also being merged.