From b6c667c4833af5936486e59c01c5729c477bd94f Mon Sep 17 00:00:00 2001 From: SFBayLaser Date: Wed, 7 Jun 2023 08:47:22 -0700 Subject: [PATCH 1/6] These are the commits associated with PR #590 along the develop branch now ported to the production branch --- fcl/reco/Definitions/stage0_icarus_defs.fcl | 13 ++- .../Definitions/stage0_icarus_defs_run1.fcl | 14 ++- .../stage0_icarus_driver_common.fcl | 1 + .../stage0_icarus_driver_common_run1.fcl | 1 + fcl/reco/Definitions/stage1_icarus_defs.fcl | 21 +++-- fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl | 3 +- .../Stage0/Run1/stage0_run1_icarus_lite.fcl | 4 +- .../Stage0/Run1/stage0_run1_icarus_mc.fcl | 4 +- .../Stage0/Run1/stage0_run1_raw_icarus.fcl | 2 +- .../Run1/stage0_run1_raw_icarus_lite.fcl | 4 +- .../Stage0/Run1/stage0_run1_rawpmt_icarus.fcl | 2 +- .../Stage0/Run1/stage0_run1_wc_icarus.fcl | 2 +- .../Run1/stage0_run1_wc_icarus_lite.fcl | 4 +- ...gic_raw_to_triggeremu_icarus_Run1_data.fcl | 4 +- icaruscode/Filters/CMakeLists.txt | 3 + .../Filters/FilterDataIntegrity_module.cc | 91 +++++++++++++++++++ .../Filters/icarus_FilterDataIntegrity.fcl | 8 ++ 17 files changed, 156 insertions(+), 25 deletions(-) create mode 100644 icaruscode/Filters/FilterDataIntegrity_module.cc create mode 100644 icaruscode/Filters/icarus_FilterDataIntegrity.fcl diff --git a/fcl/reco/Definitions/stage0_icarus_defs.fcl b/fcl/reco/Definitions/stage0_icarus_defs.fcl index 2303c17f9..790be8fed 100644 --- a/fcl/reco/Definitions/stage0_icarus_defs.fcl +++ b/fcl/reco/Definitions/stage0_icarus_defs.fcl @@ -15,6 +15,7 @@ #include "crt_decoderdefs_icarus.fcl" #include "crthitproducer.fcl" #include "wcls-decode-to-sig-base.fcl" +#include "icarus_FilterDataIntegrity.fcl" #include "icarus_FilterCRTPMTMatching.fcl" BEGIN_PROLOG @@ -119,7 +120,11 @@ icarus_stage0_filters: # flashfilterBNB: { module_type: "FilterOpFlash" OpFlashProducerList: ["opflashCryoE","opflashCryoW"] - WindowStartTime: -0.2 # 0.2us safe margin +# WindowStartTime: -1489.6 # -1489.4 - 0.2us safe margin +# WindowEndTime: -1487.6 # -1487.8 + 0.2us safe margin +# WindowStartTime: -1490.8 # 9.6 us - 1500 us offset - 0.4us safe margin +# WindowEndTime: -1488.4 # 11.2 -1500 us offset + 0.4us safe margin + WindowStartTime: -0.2 # Gate is now recentered by Gianluca/Andrea WindowEndTime: 1.8 } flashfilterNuMI: { module_type: "FilterOpFlash" @@ -154,6 +159,8 @@ icarus_stage0_filters: TriggerType: "Unknown" } + filterdataintegrity: @local::icarus_FilterDataIntegrity + crtpmtmatchingfilter: @local::icarus_FilterCRTPMTMatching } @@ -261,6 +268,7 @@ icarus_stage0_CRT: [ ] icarus_stage0_data: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, daqTPCROI, @@ -268,6 +276,7 @@ icarus_stage0_data: [ ] icarus_stage0_2d_data: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, daqTPCROI, @@ -275,6 +284,7 @@ icarus_stage0_2d_data: [ ] icarus_stage0_data_crtpmtfilter: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, crtpmtmatchingfilter, @@ -283,6 +293,7 @@ icarus_stage0_data_crtpmtfilter: [ ] icarus_stage0_2d_data_crtpmtfilter: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, crtpmtmatchingfilter, diff --git a/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl b/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl index d1f857693..ddfa0d4ab 100644 --- a/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl +++ b/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl @@ -15,6 +15,7 @@ #include "crt_decoderdefs_icarus.fcl" #include "crthitproducer.fcl" #include "wcls-decode-to-sig-base.fcl" +#include "icarus_FilterDataIntegrity.fcl" #include "icarus_FilterCRTPMTMatching.fcl" BEGIN_PROLOG @@ -126,7 +127,11 @@ icarus_stage0_filters: # flashfilterBNB: { module_type: "FilterOpFlash" OpFlashProducerList: ["opflashCryoE","opflashCryoW"] - WindowStartTime: -0.2 # 0.2us safe margin +# WindowStartTime: -1489.6 # -1489.4 - 0.2us safe margin +# WindowEndTime: -1487.6 # -1487.8 + 0.2us safe margin +# WindowStartTime: -1490.8 # 9.6 us - 1500 us offset - 0.4us safe margin +# WindowEndTime: -1488.4 # 11.2 -1500 us offset + 0.4us safe margin + WindowStartTime: -0.2 # Gate is now recentered by Gianluca/Andrea WindowEndTime: 1.8 } flashfilterNuMI: { module_type: "FilterOpFlash" @@ -160,6 +165,9 @@ icarus_stage0_filters: TriggerDataLabel: "daqTrigger" TriggerType: "Unknown" } + + filterdataintegrity: @local::icarus_FilterDataIntegrity + crtpmtmatchingfilter: @local::icarus_FilterCRTPMTMatching } @@ -265,6 +273,7 @@ icarus_stage0_CRT: [ ] icarus_stage0_data: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, daqTPCROI, @@ -272,6 +281,7 @@ icarus_stage0_data: [ ] icarus_stage0_data_crtpmtfilter: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, crtpmtmatchingfilter, @@ -280,6 +290,7 @@ icarus_stage0_data_crtpmtfilter: [ ] icarus_stage0_2d_data: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, daqTPCROI, @@ -287,6 +298,7 @@ icarus_stage0_2d_data: [ ] icarus_stage0_2d_data_crtpmtfilter: [ + filterdataintegrity, @sequence::icarus_stage0_PMT, @sequence::icarus_stage0_CRT, crtpmtmatchingfilter, diff --git a/fcl/reco/Definitions/stage0_icarus_driver_common.fcl b/fcl/reco/Definitions/stage0_icarus_driver_common.fcl index 7608cf558..6aff4f89b 100644 --- a/fcl/reco/Definitions/stage0_icarus_driver_common.fcl +++ b/fcl/reco/Definitions/stage0_icarus_driver_common.fcl @@ -65,6 +65,7 @@ outputs: fileName: "%ifb_%tc-%p.root" fileProperties: {maxInputFiles: 1} checkFileName: false + SelectEvents: [path] } } diff --git a/fcl/reco/Definitions/stage0_icarus_driver_common_run1.fcl b/fcl/reco/Definitions/stage0_icarus_driver_common_run1.fcl index dc997d1ee..726435996 100644 --- a/fcl/reco/Definitions/stage0_icarus_driver_common_run1.fcl +++ b/fcl/reco/Definitions/stage0_icarus_driver_common_run1.fcl @@ -65,6 +65,7 @@ outputs: fileName: "%ifb_%tc-%p.root" fileProperties: {maxInputFiles: 1} checkFileName: false + SelectEvents: [path] } } diff --git a/fcl/reco/Definitions/stage1_icarus_defs.fcl b/fcl/reco/Definitions/stage1_icarus_defs.fcl index c6fc08c5c..51b71feb8 100644 --- a/fcl/reco/Definitions/stage1_icarus_defs.fcl +++ b/fcl/reco/Definitions/stage1_icarus_defs.fcl @@ -69,6 +69,14 @@ icarus_stage1_producers: icarus_stage1_filters: { + flashfilter: { module_type: "FilterOpFlash" + OpFlashProducerList: ["opflashCryoW","opflashCryoE"] +# WindowStartTime: -1489.6 # -1489.4 - 0.2us safe margin +# WindowEndTime: -1487.6 # -1487.8 + 0.2us safe margin + WindowStartTime: -1490.8 # 9.6 us - 1500 us offset - 0.4us safe margin + WindowEndTime: -1488.4 # 11.2 -1500 us offset + 0.4us safe margin + } + TPCHitFilterCryoW: @local::icarus_FilterNumberTPCHits TPCHitFilterCryoE: @local::icarus_FilterNumberTPCHits } @@ -147,18 +155,13 @@ icarus_analysis_larcv_modules: [ @sequence::icarus_analysis_modules ] # Set up filtering of cluster3D hits by cryostat -icarus_filter_cluster3DCryoW: [ cluster3DCryoW, +# Changed slightly to faciliate larcv processing +icarus_filter_cluster3D: [ cluster3DCryoE, + cluster3DCryoW, + TPCHitFilterCryoE, TPCHitFilterCryoW ] -icarus_filter_cluster3DCryoE: [ cluster3DCryoE, - TPCHitFilterCryoE - ] - -icarus_filter_cluster3D: [ @sequence::icarus_filter_cluster3DCryoW, - @sequence::icarus_filter_cluster3DCryoE - ] - icarus_reco_cluster3DCryoW: [ cluster3DCryoW ] icarus_reco_cluster3DCryoE: [ cluster3DCryoE ] diff --git a/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl b/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl index ae254b12c..2cc30e40f 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl @@ -15,7 +15,8 @@ physics.trigger_paths: [ path ] physics.end_paths: [ outana, streamROOT ] # Drop the artdaq format files on output -outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_ophituncorrected_*_*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ] +outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_ophituncorrected_*_*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ] +#outputs.rootOutput.SelectEvents: [path] ## Modify the event selection for the purity analyzers physics.analyzers.purityinfoana0.SelectEvents: [ path ] diff --git a/fcl/reco/Stage0/Run1/stage0_run1_icarus_lite.fcl b/fcl/reco/Stage0/Run1/stage0_run1_icarus_lite.fcl index 27a18c817..989573630 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_icarus_lite.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_icarus_lite.fcl @@ -14,5 +14,5 @@ #include "stage0_run1_icarus.fcl" # Drop truth data products. -outputs.outCommon.outputCommands: [ @sequence::outputs.outCommon.outputCommands, - @sequence::reco_drops ] +outputs.rootOutput.outputCommands: [ @sequence::outputs.rootOutput.outputCommands, + @sequence::reco_drops ] diff --git a/fcl/reco/Stage0/Run1/stage0_run1_icarus_mc.fcl b/fcl/reco/Stage0/Run1/stage0_run1_icarus_mc.fcl index 075fdc969..edb0f373c 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_icarus_mc.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_icarus_mc.fcl @@ -29,8 +29,8 @@ physics.trigger_paths: [ path ] physics.end_paths: [ outana, streamROOT ] # Drop the artdaq format files on output -#outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_MCDecodeTPCROI_*_*", "drop *_decon1droi_*_*","drop raw::RawDigits_*_*_*" ] -outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_decon1droi_*_*" ] +#outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_MCDecodeTPCROI_*_*", "drop *_decon1droi_*_*","drop raw::RawDigits_*_*_*" ] +outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_decon1droi_*_*" ] # Set the expected input for ophit physics.producers.ophit: @local::icarus_ophit_MC diff --git a/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus.fcl b/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus.fcl index 0c6852152..f38cbef77 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus.fcl @@ -5,4 +5,4 @@ #include "stage0_run1_icarus.fcl" # Drop the artdaq format files on output -outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ] +outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ] diff --git a/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus_lite.fcl b/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus_lite.fcl index 5f4a08c8e..07814c4ec 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus_lite.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_raw_icarus_lite.fcl @@ -15,5 +15,5 @@ # Drop truth data products. -outputs.outCommon.outputCommands: [ @sequence::outputs.outCommon.outputCommands, - @sequence::reco_drops ] +outputs.rootOutput.outputCommands: [ @sequence::outputs.rootOutput.outputCommands, + @sequence::reco_drops ] diff --git a/fcl/reco/Stage0/Run1/stage0_run1_rawpmt_icarus.fcl b/fcl/reco/Stage0/Run1/stage0_run1_rawpmt_icarus.fcl index 3faae2940..a84d6c092 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_rawpmt_icarus.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_rawpmt_icarus.fcl @@ -18,7 +18,7 @@ physics.trigger_paths: [ path ] physics.end_paths: [ outana, streamROOT ] # Drop the artdaq format files on output -outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ] +outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ] ## Modify the event selection for the purity analyzers physics.analyzers.purityinfoana0.SelectEvents: [ path ] diff --git a/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus.fcl b/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus.fcl index 417b160f2..cbb9d2dca 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus.fcl @@ -16,7 +16,7 @@ physics.trigger_paths: [ path ] physics.end_paths: [ outana, streamCommon ] # Drop the artdaq format files on output -outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*", "drop *_decon2Droi*_*_*", "drop *_roifindr_*_*" ] +outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*", "drop *_decon2Droi*_*_*", "drop *_roifindr_*_*" ] # Override the hit finder input physics.producers.gaushitTPCWW.CalDataModuleLabel: "roifinder2d:PHYSCRATEDATATPCWW" diff --git a/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus_lite.fcl b/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus_lite.fcl index ffe741c2e..53e2e639b 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus_lite.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_wc_icarus_lite.fcl @@ -15,5 +15,5 @@ # Drop truth data products. -outputs.outCommon.outputCommands: [ @sequence::outputs.outCommon.outputCommands, - @sequence::reco_drops ] +outputs.rootOutput.outputCommands: [ @sequence::outputs.rootOutput.outputCommands, + @sequence::reco_drops ] diff --git a/icaruscode/Analysis/trigger/magic_raw_to_triggeremu_icarus_Run1_data.fcl b/icaruscode/Analysis/trigger/magic_raw_to_triggeremu_icarus_Run1_data.fcl index 7a8f46ca4..60f187ae4 100644 --- a/icaruscode/Analysis/trigger/magic_raw_to_triggeremu_icarus_Run1_data.fcl +++ b/icaruscode/Analysis/trigger/magic_raw_to_triggeremu_icarus_Run1_data.fcl @@ -145,7 +145,7 @@ physics.filters: { physics.pathE: [ @sequence::physics.pathE - , @sequence::icarus_filter_cluster3DCryoE + , @sequence::icarus_reco_cluster3DCryoE , @sequence::icarus_reco_pandoraGausCryoE , fmatchCryoE , @sequence::icarus_crttrack @@ -153,7 +153,7 @@ physics.pathE: [ ] physics.pathW: [ @sequence::physics.pathW - , @sequence::icarus_filter_cluster3DCryoW + , @sequence::icarus_reco_cluster3DCryoW , @sequence::icarus_reco_pandoraGausCryoW , fmatchCryoW , @sequence::icarus_crttrack diff --git a/icaruscode/Filters/CMakeLists.txt b/icaruscode/Filters/CMakeLists.txt index ebb6ac5af..de5843ade 100644 --- a/icaruscode/Filters/CMakeLists.txt +++ b/icaruscode/Filters/CMakeLists.txt @@ -2,6 +2,8 @@ art_make_library() set( MODULE_LIBRARIES sbnobj::Common_Trigger icarusalg::Utilities + sbndaq_artdaq_core::sbndaq-artdaq-core_Overlays_ICARUS + artdaq_core::artdaq-core_Utilities larcorealg::Geometry larcore::Geometry_Geometry_service larsim::Simulation @@ -38,6 +40,7 @@ set( MODULE_LIBRARIES ) cet_build_plugin(FilterNeutrinosActiveVolume art::module LIBRARIES ${MODULE_LIBRARIES}) cet_build_plugin(FilterNumberTPCHits art::module LIBRARIES ${MODULE_LIBRARIES}) +cet_build_plugin(FilterDataIntegrity art::module LIBRARIES ${MODULE_LIBRARIES}) cet_build_plugin(FilterOpFlash art::module LIBRARIES ${MODULE_LIBRARIES}) cet_build_plugin(FilterParticlesActiveVolume art::module LIBRARIES ${MODULE_LIBRARIES}) cet_build_plugin(TriggerTypeFilter art::module LIBRARIES ${MODULE_LIBRARIES}) diff --git a/icaruscode/Filters/FilterDataIntegrity_module.cc b/icaruscode/Filters/FilterDataIntegrity_module.cc new file mode 100644 index 000000000..9c9741b2a --- /dev/null +++ b/icaruscode/Filters/FilterDataIntegrity_module.cc @@ -0,0 +1,91 @@ +//////////////////////////////////////////////////////////////////////// +// +// FilterDataIntegrity class +// +//////////////////////////////////////////////////////////////////////// + +/// Framework includes +#include "art/Framework/Core/ModuleMacros.h" +#include "art/Framework/Core/EDFilter.h" +#include "art/Framework/Principal/Event.h" +#include "messagefacility/MessageLogger/MessageLogger.h" + +#include "artdaq-core/Data/Fragment.hh" + +#include +#include + +///filters for events, etc +namespace filter +{ + + class FilterDataIntegrity : public art::EDFilter + { + + public: + explicit FilterDataIntegrity(fhicl::ParameterSet const &); + + bool filter(art::Event &evt) override; + + private: + + // We will use this to keep track of the expected fragments in an event + // but note we will assume the first event is complete to set this list + std::set fExpectedFragments; + + }; //class FilterDataIntegrity +} + +/////////////////////////////////////////////////////// + +filter::FilterDataIntegrity::FilterDataIntegrity(fhicl::ParameterSet const &pset) + : EDFilter{pset} +{ + return; +} + +bool filter::FilterDataIntegrity::filter(art::Event &event) +{ + bool filterPass = true; + + // get all the artdaq fragment collections in the event. + std::vector>> fragmentHandles; + fragmentHandles = event.getMany>(); + + std::set missingFragments(fExpectedFragments); + int emptyFragments(0); + + for (const auto& handle : fragmentHandles) + { + for (const auto& fragment : *handle) + { + int fragmentID = fragment.fragmentID(); + + fExpectedFragments.insert(fragmentID); + missingFragments.erase(fragmentID); + + std::string instanceName = handle.provenance()->productInstanceName(); + std::size_t found = instanceName.find("Empty"); + + if (found != std::string::npos) emptyFragments++; + } + } + + mf::LogDebug("FilterDataIntegrity") << "Expected fragments: " << fExpectedFragments.size() << " expected, has " << missingFragments.size() << " missing. There are " << emptyFragments << " empty fragments"; + + if (!missingFragments.empty() || emptyFragments > 0) + { + mf::LogInfo("FilterDataIntegrity") << "Bad fragments: " << missingFragments.size() << ", " << emptyFragments; + + filterPass = false; + } + + return filterPass; +} + +namespace filter +{ + + DEFINE_ART_MODULE(FilterDataIntegrity) + +} //namespace filt diff --git a/icaruscode/Filters/icarus_FilterDataIntegrity.fcl b/icaruscode/Filters/icarus_FilterDataIntegrity.fcl new file mode 100644 index 000000000..869dacace --- /dev/null +++ b/icaruscode/Filters/icarus_FilterDataIntegrity.fcl @@ -0,0 +1,8 @@ +BEGIN_PROLOG + +icarus_FilterDataIntegrity: +{ + module_type: "FilterDataIntegrity" +} + +END_PROLOG From fec80fbc67055cd8c2926b3559e608cee57bb59c Mon Sep 17 00:00:00 2001 From: SFBayLaser Date: Wed, 7 Jun 2023 08:48:02 -0700 Subject: [PATCH 2/6] This is the commit for PR #591 which reverts and inadvertent add of the 3D hit building --- .../SnippetHit3DBuilderICARUS_tool.cc | 154 +++++++----------- 1 file changed, 58 insertions(+), 96 deletions(-) mode change 100755 => 100644 icaruscode/TPC/Tracking/cluster3D/SnippetHit3DBuilderICARUS_tool.cc diff --git a/icaruscode/TPC/Tracking/cluster3D/SnippetHit3DBuilderICARUS_tool.cc b/icaruscode/TPC/Tracking/cluster3D/SnippetHit3DBuilderICARUS_tool.cc old mode 100755 new mode 100644 index 9e2824d3d..1fd737383 --- a/icaruscode/TPC/Tracking/cluster3D/SnippetHit3DBuilderICARUS_tool.cc +++ b/icaruscode/TPC/Tracking/cluster3D/SnippetHit3DBuilderICARUS_tool.cc @@ -143,13 +143,6 @@ class SnippetHit3DBuilderICARUS : virtual public IHit3DBuilder */ size_t BuildHitPairMap(PlaneToSnippetHitMap& planeToHitVectorMap, reco::HitPairList& hitPairList) const; - /** - * @brief This defines a structure allowing us to see which hits have already been matched. Generally, if two - * hits have been matched then there is no point considering them anymore as it simply means duplicate - * space points will be created - */ - using MatchedHitMap = std::unordered_map>; - /** * @brief Given the ClusterHit2D objects, build the HitPairMap */ @@ -167,13 +160,13 @@ class SnippetHit3DBuilderICARUS : virtual public IHit3DBuilder /** * @brief This algorithm takes lists of hit pairs and finds good triplets */ - void findGoodTriplets(HitMatchTripletVecMap&, HitMatchTripletVecMap&, MatchedHitMap&, reco::HitPairList&, bool = false) const; + void findGoodTriplets(HitMatchTripletVecMap&, HitMatchTripletVecMap&, reco::HitPairList&, bool = false) const; /** * @brief This will look at storing pair "orphans" where the 2D hits are otherwise unused */ - int saveOrphanPairs(HitMatchTripletVecMap&, MatchedHitMap&, reco::HitPairList&) const; + int saveOrphanPairs(HitMatchTripletVecMap&, reco::HitPairList&) const; /** * @brief Make a HitPair object by checking two hits @@ -188,14 +181,13 @@ class SnippetHit3DBuilderICARUS : virtual public IHit3DBuilder * @brief Make a 3D HitPair object by checking two hits */ bool makeHitTriplet(reco::ClusterHit3D& pairOut, - MatchedHitMap& matchedHitMap, const reco::ClusterHit3D& pairIn, const reco::ClusterHit2D* hit2) const; /** * @brief Make a 3D HitPair object from a valid pair and a dead channel in the missing plane */ - bool makeDeadChannelPair(reco::ClusterHit3D& pairOut, const reco::ClusterHit3D& pair, MatchedHitMap&, size_t maxStatus = 4, size_t minStatus = 0, float minOverlap=0.2) const; + bool makeDeadChannelPair(reco::ClusterHit3D& pairOut, const reco::ClusterHit3D& pair, size_t maxStatus = 4, size_t minStatus = 0, float minOverlap=0.2) const; /** * @brief function to detemine if two wires "intersect" (in the 2D sense) @@ -497,8 +489,6 @@ void SnippetHit3DBuilderICARUS::BuildChannelStatusVec(PlaneToWireToHitSetMap& pl } } - std::cout << "SnippetHit3D finds " << m_numBadChannels << " bad channels" << std::endl; - return; } @@ -609,7 +599,9 @@ void SnippetHit3DBuilderICARUS::BuildHit3D(reco::HitPairList& hitPairList) const // The first task is to take the lists of input 2D hits (a map of view to sorted lists of 2D hits) // and then to build a list of 3D hits to be used in downstream processing + std::cout << "--> Calling BuildChannelStatusVec" << std::endl; BuildChannelStatusVec(m_planeToWireToHitSetMap); + std::cout << "--- done with channel status building" << std::endl; size_t numHitPairs = BuildHitPairMap(m_planeToSnippetHitMap, hitPairList); @@ -749,9 +741,6 @@ size_t SnippetHit3DBuilderICARUS::BuildHitPairMapByTPC(PlaneSnippetHitMapItrPair size_t nDeadChanHits(0); size_t nOrphanPairs(0); - // Structure to keep track of hit associations - MatchedHitMap matchedHitMap; - //********************************************************************************* // Basically, we try to loop until done... while(1) @@ -790,13 +779,13 @@ size_t SnippetHit3DBuilderICARUS::BuildHitPairMapByTPC(PlaneSnippetHitMapItrPair nDeadChanHits += hitPairList.size() - curHitListSize; curHitListSize = hitPairList.size(); - if (n12Pairs > n13Pairs) findGoodTriplets(pair12Map, pair13Map, matchedHitMap, hitPairList); - else findGoodTriplets(pair13Map, pair12Map, matchedHitMap, hitPairList); + if (n12Pairs > n13Pairs) findGoodTriplets(pair12Map, pair13Map, hitPairList); + else findGoodTriplets(pair13Map, pair12Map, hitPairList); if (m_saveMythicalPoints) { - nOrphanPairs += saveOrphanPairs(pair12Map, matchedHitMap, hitPairList); - nOrphanPairs += saveOrphanPairs(pair13Map, matchedHitMap, hitPairList); + nOrphanPairs += saveOrphanPairs(pair12Map, hitPairList); + nOrphanPairs += saveOrphanPairs(pair13Map, hitPairList); } nTriplets += hitPairList.size() - curHitListSize; @@ -810,9 +799,9 @@ size_t SnippetHit3DBuilderICARUS::BuildHitPairMapByTPC(PlaneSnippetHitMapItrPair } int SnippetHit3DBuilderICARUS::findGoodHitPairs(SnippetHitMap::iterator& firstSnippetItr, - SnippetHitMap::iterator& startItr, - SnippetHitMap::iterator& endItr, - HitMatchTripletVecMap& hitMatchMap) const + SnippetHitMap::iterator& startItr, + SnippetHitMap::iterator& endItr, + HitMatchTripletVecMap& hitMatchMap) const { int numPairs(0); @@ -863,11 +852,7 @@ int SnippetHit3DBuilderICARUS::findGoodHitPairs(SnippetHitMap::iterator& firstSn return numPairs; } -void SnippetHit3DBuilderICARUS::findGoodTriplets(HitMatchTripletVecMap& pair12Map, - HitMatchTripletVecMap& pair13Map, - MatchedHitMap& matchedHitMap, - reco::HitPairList& hitPairList, - bool tagged) const +void SnippetHit3DBuilderICARUS::findGoodTriplets(HitMatchTripletVecMap& pair12Map, HitMatchTripletVecMap& pair13Map, reco::HitPairList& hitPairList, bool tagged) const { // Build triplets from the two lists of hit pairs if (!pair12Map.empty()) @@ -915,7 +900,7 @@ void SnippetHit3DBuilderICARUS::findGoodTriplets(HitMatchTripletVecMap& pair12Ma // If success try for the triplet reco::ClusterHit3D triplet; - if (makeHitTriplet(triplet, matchedHitMap, pair1, hit2)) + if (makeHitTriplet(triplet, pair1, hit2)) { triplet.setID(hitPairList.size()); hitPairList.emplace_back(triplet); @@ -937,7 +922,7 @@ void SnippetHit3DBuilderICARUS::findGoodTriplets(HitMatchTripletVecMap& pair12Ma const reco::ClusterHit3D* pair = pairMapPair.first; // Here we look to see if we failed to make a triplet because the partner wire was dead/noisy/sick - if (makeDeadChannelPair(deadChanPair, *pair, matchedHitMap, 4, 0, 0.)) tempDeadChanVec.emplace_back(deadChanPair); + if (makeDeadChannelPair(deadChanPair, *pair, 4, 0, 0.)) tempDeadChanVec.emplace_back(deadChanPair); } // Handle the dead wire triplets @@ -982,7 +967,7 @@ void SnippetHit3DBuilderICARUS::findGoodTriplets(HitMatchTripletVecMap& pair12Ma return; } -int SnippetHit3DBuilderICARUS::saveOrphanPairs(HitMatchTripletVecMap& pairMap, MatchedHitMap& matchedHitMap, reco::HitPairList& hitPairList) const +int SnippetHit3DBuilderICARUS::saveOrphanPairs(HitMatchTripletVecMap& pairMap, reco::HitPairList& hitPairList) const { int curTripletCount = hitPairList.size(); @@ -1006,9 +991,6 @@ int SnippetHit3DBuilderICARUS::saveOrphanPairs(HitMatchTripletVecMap& pairMap, M const reco::ClusterHit2D* hit1 = std::get<0>(hit2Dhit3DPair); const reco::ClusterHit2D* hit2 = std::get<1>(hit2Dhit3DPair); - // Have these already been used in some fashion? - if (matchedHitMap[hit1].find(hit2) != matchedHitMap[hit1].end()) continue; - if (m_outputHistograms) { m_2hit1stPHVec.emplace_back(hit1->getHit()->PeakAmplitude()); @@ -1029,8 +1011,6 @@ int SnippetHit3DBuilderICARUS::saveOrphanPairs(HitMatchTripletVecMap& pairMap, M // Add to the list hitPairList.emplace_back(hit3D); hitPairList.back().setID(hitPairList.size()-1); - matchedHitMap[hit1].insert(hit2); - matchedHitMap[hit2].insert(hit1); } } } @@ -1192,7 +1172,6 @@ bool SnippetHit3DBuilderICARUS::makeHitPair(reco::ClusterHit3D& hitPair, bool SnippetHit3DBuilderICARUS::makeHitTriplet(reco::ClusterHit3D& hitTriplet, - MatchedHitMap& matchedHitMap, const reco::ClusterHit3D& pair, const reco::ClusterHit2D* hit) const { @@ -1238,12 +1217,8 @@ bool SnippetHit3DBuilderICARUS::makeHitTriplet(reco::ClusterHit3D& hitTrip if (!hit0) hit0 = pairHitVec[2]; else if (!hit1) hit1 = pairHitVec[2]; - bool notMatched = matchedHitMap[hit].find(hit0) == matchedHitMap[hit].end() - && matchedHitMap[hit].find(hit1) == matchedHitMap[hit].end() - && matchedHitMap[hit0].find(hit1) == matchedHitMap[hit0].end(); - // If good pairs made here then we can try to make a triplet - if (notMatched && makeHitPair(pair0h, hit0, hit, m_hitWidthSclFctr) && makeHitPair(pair1h, hit1, hit, m_hitWidthSclFctr)) + if (makeHitPair(pair0h, hit0, hit, m_hitWidthSclFctr) && makeHitPair(pair1h, hit1, hit, m_hitWidthSclFctr)) { // Get a copy of the input hit vector (note the order is by plane - by definition) reco::ClusterHit2DVec hitVector = pair.getHits(); @@ -1455,13 +1430,8 @@ bool SnippetHit3DBuilderICARUS::makeHitTriplet(reco::ClusterHit3D& hitTrip wireIDVec); // Since we are keeping the triplet, mark the hits as used - for(size_t hit2DIdx = 0; hit2DIdx < hitVector.size(); hit2DIdx++) + for(const auto& hit2D : hitVector) { - const reco::ClusterHit2D* hit2D = hitVector[hit2DIdx]; - - matchedHitMap[hit2D].insert(hitVector[(hit2DIdx+1)%hitVector.size()]); - matchedHitMap[hit2D].insert(hitVector[(hit2DIdx+2)%hitVector.size()]); - if (hit2D->getStatusBits() & reco::ClusterHit2D::USEDINTRIPLET) hit2D->setStatusBit(reco::ClusterHit2D::SHAREDINTRIPLET); hit2D->setStatusBit(reco::ClusterHit2D::USEDINTRIPLET); @@ -1535,11 +1505,11 @@ bool SnippetHit3DBuilderICARUS::WireIDsIntersect(const geo::WireID& wireID0, con } float SnippetHit3DBuilderICARUS::closestApproach(const Eigen::Vector3f& P0, - const Eigen::Vector3f& u0, - const Eigen::Vector3f& P1, - const Eigen::Vector3f& u1, - float& arcLen0, - float& arcLen1) const + const Eigen::Vector3f& u0, + const Eigen::Vector3f& P1, + const Eigen::Vector3f& u1, + float& arcLen0, + float& arcLen1) const { // Technique is to compute the arclength to each point of closest approach Eigen::Vector3f w0 = P0 - P1; @@ -1579,7 +1549,6 @@ float SnippetHit3DBuilderICARUS::chargeIntegral(float peakMean, bool SnippetHit3DBuilderICARUS::makeDeadChannelPair(reco::ClusterHit3D& pairOut, const reco::ClusterHit3D& pair, - MatchedHitMap& matchedHitMap, size_t maxChanStatus, size_t minChanStatus, float minOverlap) const @@ -1605,56 +1574,49 @@ bool SnippetHit3DBuilderICARUS::makeDeadChannelPair(reco::ClusterHit3D& pa missPlane = 1; } - // It can be the case that these hits have already been associated to a space point - if (matchedHitMap[hit0].find(hit1) != matchedHitMap[hit0].end()) - { - // Which plane is missing? - geo::WireID wireID0 = hit0->WireID(); - geo::WireID wireID1 = hit1->WireID(); - - // Ok, recover the wireID expected in the third plane... - geo::WireID wireIn(wireID0.Cryostat,wireID0.TPC,missPlane,0); - geo::WireID wireID = NearestWireID(pair.getPosition(), wireIn); + // Which plane is missing? + geo::WireID wireID0 = hit0->WireID(); + geo::WireID wireID1 = hit1->WireID(); - // There can be a round off issue so check the next wire as well - bool wireStatus = m_channelStatus[wireID.Plane][wireID.Wire] < maxChanStatus && m_channelStatus[wireID.Plane][wireID.Wire] >= minChanStatus; - bool wireOneStatus = m_channelStatus[wireID.Plane][wireID.Wire+1] < maxChanStatus && m_channelStatus[wireID.Plane][wireID.Wire+1] >= minChanStatus; + // Ok, recover the wireID expected in the third plane... + geo::WireID wireIn(wireID0.Cryostat,wireID0.TPC,missPlane,0); + geo::WireID wireID = NearestWireID(pair.getPosition(), wireIn); - // Make sure they are of at least the minimum status - if(wireStatus || wireOneStatus) - { - // Sort out which is the wire we're dealing with - if (!wireStatus) wireID.Wire += 1; + // There can be a round off issue so check the next wire as well + bool wireStatus = m_channelStatus[wireID.Plane][wireID.Wire] < maxChanStatus && m_channelStatus[wireID.Plane][wireID.Wire] >= minChanStatus; + bool wireOneStatus = m_channelStatus[wireID.Plane][wireID.Wire+1] < maxChanStatus && m_channelStatus[wireID.Plane][wireID.Wire+1] >= minChanStatus; - // Want to refine position since we "know" the missing wire - geo::WireIDIntersection widIntersect0; + // Make sure they are of at least the minimum status + if(wireStatus || wireOneStatus) + { + // Sort out which is the wire we're dealing with + if (!wireStatus) wireID.Wire += 1; - if (m_geometry->WireIDsIntersect(wireID0, wireID, widIntersect0)) - { - geo::WireIDIntersection widIntersect1; + // Want to refine position since we "know" the missing wire + geo::WireIDIntersection widIntersect0; - if (m_geometry->WireIDsIntersect(wireID1, wireID, widIntersect1)) - { - Eigen::Vector3f newPosition(pair.getPosition()[0],pair.getPosition()[1],pair.getPosition()[2]); + if (m_geometry->WireIDsIntersect(wireID0, wireID, widIntersect0)) + { + geo::WireIDIntersection widIntersect1; - newPosition[1] = (newPosition[1] + widIntersect0.y + widIntersect1.y) / 3.; - newPosition[2] = (newPosition[2] + widIntersect0.z + widIntersect1.z - 2. * m_zPosOffset) / 3.; + if (m_geometry->WireIDsIntersect(wireID1, wireID, widIntersect1)) + { + Eigen::Vector3f newPosition(pair.getPosition()[0],pair.getPosition()[1],pair.getPosition()[2]); - pairOut = pair; - pairOut.setWireID(wireID); - pairOut.setPosition(newPosition); + newPosition[1] = (newPosition[1] + widIntersect0.y + widIntersect1.y) / 3.; + newPosition[2] = (newPosition[2] + widIntersect0.z + widIntersect1.z - 2. * m_zPosOffset) / 3.; - if (hit0->getStatusBits() & reco::ClusterHit2D::USEDINTRIPLET) hit0->setStatusBit(reco::ClusterHit2D::SHAREDINTRIPLET); - if (hit1->getStatusBits() & reco::ClusterHit2D::USEDINTRIPLET) hit1->setStatusBit(reco::ClusterHit2D::SHAREDINTRIPLET); + pairOut = pair; + pairOut.setWireID(wireID); + pairOut.setPosition(newPosition); - hit0->setStatusBit(reco::ClusterHit2D::USEDINTRIPLET); - hit1->setStatusBit(reco::ClusterHit2D::USEDINTRIPLET); + if (hit0->getStatusBits() & reco::ClusterHit2D::USEDINTRIPLET) hit0->setStatusBit(reco::ClusterHit2D::SHAREDINTRIPLET); + if (hit1->getStatusBits() & reco::ClusterHit2D::USEDINTRIPLET) hit1->setStatusBit(reco::ClusterHit2D::SHAREDINTRIPLET); - matchedHitMap[hit0].insert(hit1); - matchedHitMap[hit1].insert(hit0); + hit0->setStatusBit(reco::ClusterHit2D::USEDINTRIPLET); + hit1->setStatusBit(reco::ClusterHit2D::USEDINTRIPLET); - result = true; - } + result = true; } } } @@ -1944,9 +1906,9 @@ void SnippetHit3DBuilderICARUS::CollectArtHits(const art::Event& evt) const //------------------------------------------------------------------------------------------------------------------------------------------ void SnippetHit3DBuilderICARUS::CreateNewRecobHitCollection(art::Event& event, - reco::HitPairList& hitPairList, - std::vector& hitPtrVec, - RecobHitToPtrMap& recobHitToPtrMap) + reco::HitPairList& hitPairList, + std::vector& hitPtrVec, + RecobHitToPtrMap& recobHitToPtrMap) { // Set up the timing cet::cpu_timer theClockBuildNewHits; From f681c294ff01a553c0bbc6a4051035d1960bba6c Mon Sep 17 00:00:00 2001 From: SFBayLaser Date: Wed, 7 Jun 2023 11:42:34 -0700 Subject: [PATCH 3/6] Fixing some commits that were trying to revert to a previous setup --- fcl/reco/Definitions/stage0_icarus_defs.fcl | 6 +----- fcl/reco/Definitions/stage0_icarus_defs_run1.fcl | 8 ++------ fcl/reco/Definitions/stage1_icarus_defs.fcl | 8 -------- fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl | 3 +-- 4 files changed, 4 insertions(+), 21 deletions(-) diff --git a/fcl/reco/Definitions/stage0_icarus_defs.fcl b/fcl/reco/Definitions/stage0_icarus_defs.fcl index 790be8fed..94533b3f3 100644 --- a/fcl/reco/Definitions/stage0_icarus_defs.fcl +++ b/fcl/reco/Definitions/stage0_icarus_defs.fcl @@ -120,11 +120,7 @@ icarus_stage0_filters: # flashfilterBNB: { module_type: "FilterOpFlash" OpFlashProducerList: ["opflashCryoE","opflashCryoW"] -# WindowStartTime: -1489.6 # -1489.4 - 0.2us safe margin -# WindowEndTime: -1487.6 # -1487.8 + 0.2us safe margin -# WindowStartTime: -1490.8 # 9.6 us - 1500 us offset - 0.4us safe margin -# WindowEndTime: -1488.4 # 11.2 -1500 us offset + 0.4us safe margin - WindowStartTime: -0.2 # Gate is now recentered by Gianluca/Andrea + WindowStartTime: -0.2 # 0.2us safe margin WindowEndTime: 1.8 } flashfilterNuMI: { module_type: "FilterOpFlash" diff --git a/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl b/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl index ddfa0d4ab..2832fe321 100644 --- a/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl +++ b/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl @@ -127,12 +127,8 @@ icarus_stage0_filters: # flashfilterBNB: { module_type: "FilterOpFlash" OpFlashProducerList: ["opflashCryoE","opflashCryoW"] -# WindowStartTime: -1489.6 # -1489.4 - 0.2us safe margin -# WindowEndTime: -1487.6 # -1487.8 + 0.2us safe margin -# WindowStartTime: -1490.8 # 9.6 us - 1500 us offset - 0.4us safe margin -# WindowEndTime: -1488.4 # 11.2 -1500 us offset + 0.4us safe margin - WindowStartTime: -0.2 # Gate is now recentered by Gianluca/Andrea - WindowEndTime: 1.8 + WindowStartTime: -0.2 # 0.2us safe margin +# WindowEndTime: 1.8 } flashfilterNuMI: { module_type: "FilterOpFlash" OpFlashProducerList: ["opflashCryoE","opflashCryoW"] diff --git a/fcl/reco/Definitions/stage1_icarus_defs.fcl b/fcl/reco/Definitions/stage1_icarus_defs.fcl index 51b71feb8..3fa48719a 100644 --- a/fcl/reco/Definitions/stage1_icarus_defs.fcl +++ b/fcl/reco/Definitions/stage1_icarus_defs.fcl @@ -69,14 +69,6 @@ icarus_stage1_producers: icarus_stage1_filters: { - flashfilter: { module_type: "FilterOpFlash" - OpFlashProducerList: ["opflashCryoW","opflashCryoE"] -# WindowStartTime: -1489.6 # -1489.4 - 0.2us safe margin -# WindowEndTime: -1487.6 # -1487.8 + 0.2us safe margin - WindowStartTime: -1490.8 # 9.6 us - 1500 us offset - 0.4us safe margin - WindowEndTime: -1488.4 # 11.2 -1500 us offset + 0.4us safe margin - } - TPCHitFilterCryoW: @local::icarus_FilterNumberTPCHits TPCHitFilterCryoE: @local::icarus_FilterNumberTPCHits } diff --git a/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl b/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl index 2cc30e40f..5fe3dbdac 100644 --- a/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl +++ b/fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl @@ -15,8 +15,7 @@ physics.trigger_paths: [ path ] physics.end_paths: [ outana, streamROOT ] # Drop the artdaq format files on output -outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_ophituncorrected_*_*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ] -#outputs.rootOutput.SelectEvents: [path] +outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_ophituncorrected_*_*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ]outputs.rootOutput.SelectEvents: [path] ## Modify the event selection for the purity analyzers physics.analyzers.purityinfoana0.SelectEvents: [ path ] From 111e769b2e676121d4b1323f555d4caeb505b4a9 Mon Sep 17 00:00:00 2001 From: SFBayLaser Date: Wed, 7 Jun 2023 11:45:03 -0700 Subject: [PATCH 4/6] remove # to prevent a line from being commented out --- fcl/reco/Definitions/stage0_icarus_defs_run1.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl b/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl index 2832fe321..aa82ccc42 100644 --- a/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl +++ b/fcl/reco/Definitions/stage0_icarus_defs_run1.fcl @@ -128,7 +128,7 @@ icarus_stage0_filters: flashfilterBNB: { module_type: "FilterOpFlash" OpFlashProducerList: ["opflashCryoE","opflashCryoW"] WindowStartTime: -0.2 # 0.2us safe margin -# WindowEndTime: 1.8 + WindowEndTime: 1.8 } flashfilterNuMI: { module_type: "FilterOpFlash" OpFlashProducerList: ["opflashCryoE","opflashCryoW"] From 4e4c922f349f9c83556ca9dfef06ef6661975b06 Mon Sep 17 00:00:00 2001 From: SFBayLaser Date: Wed, 7 Jun 2023 11:57:06 -0700 Subject: [PATCH 5/6] Making sure the naming of the root output is consistent --- fcl/reco/Definitions/stage1_icarus_driver_common.fcl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fcl/reco/Definitions/stage1_icarus_driver_common.fcl b/fcl/reco/Definitions/stage1_icarus_driver_common.fcl index 66671049f..28133b77c 100644 --- a/fcl/reco/Definitions/stage1_icarus_driver_common.fcl +++ b/fcl/reco/Definitions/stage1_icarus_driver_common.fcl @@ -46,8 +46,8 @@ physics: #reco sequence and trigger_paths to be defined elsewhere - stream1: [ out1 ] - end_paths: [stream1] + stream1: [ rootOutput ] + end_paths: [ stream1 ] } @@ -56,7 +56,7 @@ physics: #entry in the output stream you want those to go to, where XXX is the label of the filter module(s) outputs: { - out1: + rootOutput: { module_type: RootOutput dataTier: "reconstructed" From 191b0877a9f6e0090207bd6f42ebb6e5e54366e6 Mon Sep 17 00:00:00 2001 From: SFBayLaser Date: Wed, 7 Jun 2023 12:29:20 -0700 Subject: [PATCH 6/6] Reverting, I was confusing stage 1 with stage 0... --- fcl/reco/Definitions/stage1_icarus_driver_common.fcl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fcl/reco/Definitions/stage1_icarus_driver_common.fcl b/fcl/reco/Definitions/stage1_icarus_driver_common.fcl index 28133b77c..a8304f707 100644 --- a/fcl/reco/Definitions/stage1_icarus_driver_common.fcl +++ b/fcl/reco/Definitions/stage1_icarus_driver_common.fcl @@ -46,7 +46,7 @@ physics: #reco sequence and trigger_paths to be defined elsewhere - stream1: [ rootOutput ] + stream1: [ out1 ] end_paths: [ stream1 ] } @@ -56,7 +56,7 @@ physics: #entry in the output stream you want those to go to, where XXX is the label of the filter module(s) outputs: { - rootOutput: + out1: { module_type: RootOutput dataTier: "reconstructed"