@@ -1665,26 +1665,50 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16651665
16661666 // Get all of the OpFlashes
16671667 std::vector<caf::SROpFlash> srflashes;
1668+ if (fDet == kICARUS )
1669+ {
1670+ for (const std::string& pandora_tag_suffix : pandora_tag_suffixes) {
1671+ art::Handle<std::vector<recob::OpFlash>> flashes_handle;
1672+ GetByLabelStrict (evt, fParams .OpFlashLabel () + pandora_tag_suffix, flashes_handle);
1673+ // fill into event
1674+ if (flashes_handle.isValid ()) {
1675+ const std::vector<recob::OpFlash> &opflashes = *flashes_handle;
1676+ int cryostat = ( pandora_tag_suffix.find (" W" ) != std::string::npos ) ? 1 : 0 ;
16681677
1669- for (const std::string& pandora_tag_suffix : pandora_tag_suffixes) {
1670- art::Handle<std::vector<recob::OpFlash>> flashes_handle;
1671- GetByLabelStrict (evt, fParams .OpFlashLabel () + pandora_tag_suffix, flashes_handle);
1672- // fill into event
1673- if (flashes_handle.isValid ()) {
1674- const std::vector<recob::OpFlash> &opflashes = *flashes_handle;
1675- int cryostat = ( pandora_tag_suffix.find (" W" ) != std::string::npos ) ? 1 : 0 ;
1678+ // get associated OpHits for each OpFlash
1679+ art::FindMany<recob::OpHit> findManyHits (flashes_handle, evt, fParams .OpFlashLabel () + pandora_tag_suffix);
16761680
1677- // get associated OpHits for each OpFlash
1678- art::FindMany< recob::OpHit> findManyHits (flashes_handle, evt, fParams . OpFlashLabel () + pandora_tag_suffix);
1681+ int iflash= 0 ;
1682+ for ( const recob::OpFlash& flash : opflashes) {
16791683
1680- int iflash=0 ;
1681- for (const recob::OpFlash& flash : opflashes) {
1684+ std::vector<recob::OpHit const *> const & ophits = findManyHits.at (iflash);
16821685
1683- std::vector<recob::OpHit const *> const & ophits = findManyHits.at (iflash);
1686+ srflashes.emplace_back ();
1687+ FillICARUSOpFlash (flash, ophits, cryostat, srflashes.back ());
1688+ iflash++;
1689+ }
1690+ }
1691+ }
1692+ }
1693+ else if (fDet == kSBND )
1694+ {
1695+ std::vector<std::string> tpc_suffixes_sbnd = {" tpc0" , " tpc1" };
16841696
1685- srflashes.emplace_back ();
1686- FillOpFlash (flash, ophits, cryostat, srflashes.back ());
1687- iflash++;
1697+ for (size_t tpc=0 ; tpc<tpc_suffixes_sbnd.size (); tpc++) {
1698+ art::Handle<std::vector<recob::OpFlash>> flashes_handle;
1699+ GetByLabelStrict (evt, fParams .OpFlashLabel () + tpc_suffixes_sbnd[tpc], flashes_handle);
1700+ // fill into event
1701+ if (flashes_handle.isValid ()) {
1702+ const std::vector<recob::OpFlash> &opflashes = *flashes_handle;
1703+ // get associated OpHits for each OpFlash
1704+ art::FindMany<recob::OpHit> findManyHits (flashes_handle, evt, fParams .OpFlashLabel () + tpc_suffixes_sbnd[tpc]);
1705+ int iflash=0 ;
1706+ for (const recob::OpFlash& flash : opflashes) {
1707+ std::vector<recob::OpHit const *> const & ophits = findManyHits.at (iflash);
1708+ srflashes.emplace_back ();
1709+ FillSBNDOpFlash (flash, ophits, tpc, srflashes.back ());
1710+ iflash++;
1711+ }
16881712 }
16891713 }
16901714 }
0 commit comments