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