@@ -1668,14 +1668,18 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16681668 std::vector<caf::SROpFlash> srflashes;
16691669 if (fDet == kICARUS )
16701670 {
1671+ // Get all of the special PMT Beam Signals (to use as an opFlash reference time below)
1672+ art::Handle<std::vector<sbn::timing::PMTBeamSignal>> PMTBeamSignal_handle;
1673+ GetByLabelIfExists (evt, fParams .PMTBeamSignalLabel (), PMTBeamSignal_handle);
1674+
16711675 for (const std::string& pandora_tag_suffix : pandora_tag_suffixes) {
16721676 art::Handle<std::vector<recob::OpFlash>> flashes_handle;
16731677 GetByLabelStrict (evt, fParams .OpFlashLabel () + pandora_tag_suffix, flashes_handle);
16741678 // fill into event
16751679 if (flashes_handle.isValid ()) {
16761680 const std::vector<recob::OpFlash> &opflashes = *flashes_handle;
16771681 int cryostat = ( pandora_tag_suffix.find (" W" ) != std::string::npos ) ? 1 : 0 ;
1678-
1682+
16791683 // get associated OpHits for each OpFlash
16801684 art::FindMany<recob::OpHit> findManyHits (flashes_handle, evt, fParams .OpFlashLabel () + pandora_tag_suffix);
16811685
@@ -1685,7 +1689,14 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16851689 std::vector<recob::OpHit const *> const & ophits = findManyHits.at (iflash);
16861690
16871691 srflashes.emplace_back ();
1688- FillICARUSOpFlash (flash, ophits, cryostat, srflashes.back ());
1692+ if (PMTBeamSignal_handle.isValid () && isRealData){
1693+ const std::vector<sbn::timing::PMTBeamSignal> &pmtbeamsignals = *PMTBeamSignal_handle;
1694+ FillICARUSOpFlash (flash, ophits, cryostat, pmtbeamsignals, srflashes.back ());
1695+ }
1696+ else {
1697+ const std::vector<sbn::timing::PMTBeamSignal> pmtbeamsignals;
1698+ FillICARUSOpFlash (flash, ophits, cryostat, pmtbeamsignals, srflashes.back ());
1699+ }
16891700 iflash++;
16901701 }
16911702 }
0 commit comments