From 3abd95cd303784d70d2d7999e4b778668d4ee8b2 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 6 Nov 2025 11:02:26 -0600 Subject: [PATCH 01/73] adjustments to new paths --- sbndcode/BlipRecoSBND/Alg/CMakeLists.txt | 3 +- sbndcode/BlipRecoSBND/CMakeLists.txt | 3 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- sbndcode/BlipRecoSBND/Utils/classes.h | 37 +----------------------- 4 files changed, 5 insertions(+), 40 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt index e62631aa7..3a404125c 100644 --- a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt @@ -11,6 +11,7 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg lardataobj::RawData lardataobj::RecoBase lardata::RecoObjects + larreco::Calorimetry larpandora::LArPandoraInterface nusimdata::SimulationBase cetlib::cetlib @@ -34,7 +35,7 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg sbndcode_CRTUtils sbnobj::Common_CRT #sbndcode_CosmicIdUtils - sbndcode_BlipUtils + BlipUtils ) install_headers() diff --git a/sbndcode/BlipRecoSBND/CMakeLists.txt b/sbndcode/BlipRecoSBND/CMakeLists.txt index 13ccdac63..38734b91c 100644 --- a/sbndcode/BlipRecoSBND/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/CMakeLists.txt @@ -37,9 +37,8 @@ set( MODULE_LIBRARIES larcorealg::Geometry sbndcode_BlipRecoAlg ) -add_subdirectory(Utils) add_subdirectory(Alg) - +add_subdirectory(Utils) cet_build_plugin(BlipAna art::Module SOURCE BlipAna_module.cc LIBRARIES ${MODULE_LIBRARIES} ) cet_build_plugin(BlipRecoProducer art::Module SOURCE BlipRecoProducer_module.cc LIBRARIES ${MODULE_LIBRARIES} ) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index bcd216b38..707f35516 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -34,7 +34,7 @@ #include #include -#include "sbndcode/BlipRecoSBND/Utils/DataTypes.h" +#include "sbnobj/SBND/Blip/DataTypes.h" #include "TH1D.h" diff --git a/sbndcode/BlipRecoSBND/Utils/classes.h b/sbndcode/BlipRecoSBND/Utils/classes.h index 403af300f..a3d8b2a2e 100644 --- a/sbndcode/BlipRecoSBND/Utils/classes.h +++ b/sbndcode/BlipRecoSBND/Utils/classes.h @@ -1,36 +1 @@ -// -// Build a dictionary. -// -// $Id: classes.h,v 1.8 2010/04/12 18:12:28 Exp $ -// $Author: $ -// $Date: 2010/04/12 18:12:28 $ -// -// Original author Rob Kutschke, modified by wes -// - -#include "canvas/Persistency/Common/Wrapper.h" - -// data-products -// lardataobj -//#include "lardata/Utilities/AssociationUtil.h" -#include "canvas/Persistency/Common/Assns.h" -#include "lardataobj/RecoBase/PFParticle.h" -#include "lardataobj/RecoBase/Hit.h" -#include "nusimdata/SimulationBase/MCTruth.h" -#include "sbndcode/BlipRecoSBND/Utils/DataTypes.h" -#include "lardataobj/RecoBase/SpacePoint.h" - -// -// Only include objects that we would like to be able to put into the event. -// Do not include the objects they contain internally. -// - -template class art::Assns; -template class art::Wrapper >; -template class std::vector; -template class art::Wrapper >; -template class std::map; -template class art::Assns; -template class art::Wrapper >; -template class art::Assns; -template class art::Wrapper >; +#include "sbnobj/SBND/Blip/classes.h" From 4d2df24d718a5284a625d5db5c003758021d9a6e Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 6 Nov 2025 12:38:13 -0600 Subject: [PATCH 02/73] Trying to get compile to solve --- sbndcode/BlipRecoSBND/Alg/CMakeLists.txt | 2 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt index 3a404125c..6e99a8365 100644 --- a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt @@ -35,7 +35,7 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg sbndcode_CRTUtils sbnobj::Common_CRT #sbndcode_CosmicIdUtils - BlipUtils + sbndcode_BlipUtils ) install_headers() diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 707f35516..b59fdb187 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -34,7 +34,7 @@ #include #include -#include "sbnobj/SBND/Blip/DataTypes.h" +#include "sbnobj/SBND/Blip/BlipDataTypes.h" #include "TH1D.h" diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index da1dcdd20..b05f2f7f0 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -38,6 +38,7 @@ cet_make_library( ROOT::Gdml sbndcode_CRTUtils sbnobj::Common_CRT + sbndobj_BlipDataTypes #sbndcode_CosmicIdUtils ) From 619cc9db6bf087fe1182889c7856998ee2bd715d Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 10 Nov 2025 09:07:13 -0600 Subject: [PATCH 03/73] Assorted changes to things I don't actually use so the compiler would be happy --- sbndcode/CRT/CRTAna/CRTAnalysis_module.cc | 2 +- .../CRT/CRTEventDisplay/CRTEventDisplayAlg.cc | 2 +- .../CRT/CRTReco/CRTTrackProducer_module.cc | 19 ++++++++++++------- .../LightPropagationCorrectionAna_module.cc | 14 +++++++------- .../LightPropagationCorrection_module.cc | 12 ++++++------ 5 files changed, 27 insertions(+), 22 deletions(-) diff --git a/sbndcode/CRT/CRTAna/CRTAnalysis_module.cc b/sbndcode/CRT/CRTAna/CRTAnalysis_module.cc index 09c31d779..85d53ba1d 100644 --- a/sbndcode/CRT/CRTAna/CRTAnalysis_module.cc +++ b/sbndcode/CRT/CRTAna/CRTAnalysis_module.cc @@ -1748,7 +1748,7 @@ void sbnd::crt::CRTAnalysis::AnalyseTPCMatching(const art::Event &e, const art:: _tpc_tr_ts1[nActualTracks] = crttrack->Ts1(); _tpc_tr_score[nActualTracks] = trackMatch.TriggerConfidence(); - const std::set taggers = crttrack->Taggers(); + const std::vector taggers = crttrack->Taggers(); const geo::Point_t start = crttrack->Start(); const geo::Point_t end = crttrack->End(); diff --git a/sbndcode/CRT/CRTEventDisplay/CRTEventDisplayAlg.cc b/sbndcode/CRT/CRTEventDisplay/CRTEventDisplayAlg.cc index 967b363c5..598bee225 100644 --- a/sbndcode/CRT/CRTEventDisplay/CRTEventDisplayAlg.cc +++ b/sbndcode/CRT/CRTEventDisplay/CRTEventDisplayAlg.cc @@ -597,7 +597,7 @@ namespace sbnd::crt { if(trackTime < fMinTime || trackTime > fMaxTime) continue; - std::set taggers = track->Taggers(); + std::vector taggers = track->Taggers(); //used to be set. May cause issues bool none = fChoseTaggers; for(auto const& tagger : taggers) diff --git a/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc b/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc index e9d586531..7337fd915 100644 --- a/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc +++ b/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc @@ -35,7 +35,6 @@ #include - namespace geo { using Point2D_t = ROOT::Math::PositionVector2D, ROOT::Math::GlobalCoordinateSystemTag>; @@ -238,15 +237,18 @@ std::vector>> sbnd::crt::CRTTr const double pe = primarySpacePoint->PE() + secondarySpacePoint->PE() + tertiarySpacePoint->PE(); - const std::set used_taggers = {primaryCluster->Tagger(), secondaryCluster->Tagger(), tertiaryCluster->Tagger()}; + const std::vector used_taggers = {primaryCluster->Tagger(), secondaryCluster->Tagger(), tertiaryCluster->Tagger()}; geo::Point_t fitStart, fitMid, fitEnd; double gof; BestFitLine(primarySpacePoint->Pos(), secondarySpacePoint->Pos(), tertiarySpacePoint->Pos(), primaryCluster->Tagger(), secondaryCluster->Tagger(), tertiaryCluster->Tagger(), fitStart, fitMid, fitEnd, gof); - - const CRTTrack track({fitStart, fitMid, fitEnd}, t0, et0, t1, et1, pe, tof, used_taggers); + const double _t0 = t0; + const double _et0 = et0; + const double _t1 = t1; + const double _et1 = et1; + const CRTTrack track({fitStart, fitMid, fitEnd}, _t0, _et0, _t1, _et1, pe, tof, used_taggers); const std::set used_spacepoints = {i, ii, iii}; candidates.emplace_back(track, used_spacepoints); @@ -264,9 +266,12 @@ std::vector>> sbnd::crt::CRTTr const double pe = primarySpacePoint->PE() + secondarySpacePoint->PE(); - const std::set used_taggers = {primaryCluster->Tagger(), secondaryCluster->Tagger()}; - - const CRTTrack track(start, end, t0, et0, t1, et1, pe, tof, used_taggers); + const std::vector used_taggers = {primaryCluster->Tagger(), secondaryCluster->Tagger()}; + const double _t0 = t0; + const double _et0 = et0; + const double _t1 = t1; + const double _et1 = et1; + const CRTTrack track(start, end, _t0, _et0, _t1, _et1, pe, tof, used_taggers); const std::set used_spacepoints = {i, ii}; candidates.emplace_back(track, used_spacepoints); diff --git a/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc b/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc index f90b0db3b..9899d9edf 100644 --- a/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc +++ b/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc @@ -118,14 +118,14 @@ void LightPropagationCorrectionAna::analyze(art::Event const& e) std::cout << " Corrected flash time is " << correctedopflash->OpFlashT0 << std::endl; std::cout << " Associated with slice id " << slice_v[0]->ID() << std::endl; - std::cout << "Corrected flash time light only " << correctedopflash->UpstreamTime_lightonly << std::endl; - std::cout << "Corrected flash time tpc z corr " << correctedopflash->UpstreamTime_tpczcorr << std::endl; - std::cout << "Corrected flash time prop corr tpc z corr " << correctedopflash->UpstreamTime_propcorr_tpczcorr << std::endl; + //std::cout << "Corrected flash time light only " << correctedopflash->UpstreamTime_lightonly << std::endl; + //std::cout << "Corrected flash time tpc z corr " << correctedopflash->UpstreamTime_tpczcorr << std::endl; + //std::cout << "Corrected flash time prop corr tpc z corr " << correctedopflash->UpstreamTime_propcorr_tpczcorr << std::endl; fOpFlashT0 = correctedopflash->OpFlashT0; - fUpstreamTime_lightonly = correctedopflash->UpstreamTime_lightonly; - fUpstreamTime_tpczcorr = correctedopflash->UpstreamTime_tpczcorr; - fUpstreamTime_propcorr_tpczcorr = correctedopflash->UpstreamTime_propcorr_tpczcorr; + //fUpstreamTime_lightonly = correctedopflash->UpstreamTime_lightonly; + //fUpstreamTime_tpczcorr = correctedopflash->UpstreamTime_tpczcorr; + //fUpstreamTime_propcorr_tpczcorr = correctedopflash->UpstreamTime_propcorr_tpczcorr; fTree->Fill(); } } @@ -147,4 +147,4 @@ void LightPropagationCorrectionAna::beginJob() } -DEFINE_ART_MODULE(LightPropagationCorrectionAna) \ No newline at end of file +DEFINE_ART_MODULE(LightPropagationCorrectionAna) diff --git a/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc b/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc index 79e4849cb..25be6fd77 100644 --- a/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc +++ b/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc @@ -299,11 +299,11 @@ void sbnd::LightPropagationCorrection::produce(art::Event & e) newFlashTime = flasht0; sbn::CorrectedOpFlashTiming correctedOpFlashTiming; correctedOpFlashTiming.OpFlashT0 = originalFlashTime + fEventTriggerTime/1000 - fRWMTime/1000; - correctedOpFlashTiming.UpstreamTime_lightonly = originalFlashTime + fEventTriggerTime/1000 - fRWMTime/1000 - (Zcenter/fSpeedOfLight)/1000; - correctedOpFlashTiming.UpstreamTime_tpczcorr = originalFlashTime + fEventTriggerTime/1000 - fRWMTime/1000 - (fRecoVz/fSpeedOfLight)/1000; - correctedOpFlashTiming.UpstreamTime_propcorr_tpczcorr = newFlashTime + fEventTriggerTime/1000 - fRWMTime/1000 - (fRecoVz/fSpeedOfLight)/1000; - correctedOpFlashTiming.FMScore = _fFMScore; - correctedOpFlashTiming.SliceNuScore = _sliceMaxNuScore; + //correctedOpFlashTiming.UpstreamTime_lightonly = originalFlashTime + fEventTriggerTime/1000 - fRWMTime/1000 - (Zcenter/fSpeedOfLight)/1000; + //correctedOpFlashTiming.UpstreamTime_tpczcorr = originalFlashTime + fEventTriggerTime/1000 - fRWMTime/1000 - (fRecoVz/fSpeedOfLight)/1000; + //correctedOpFlashTiming.UpstreamTime_propcorr_tpczcorr = newFlashTime + fEventTriggerTime/1000 - fRWMTime/1000 - (fRecoVz/fSpeedOfLight)/1000; + //correctedOpFlashTiming.FMScore = _fFMScore; + //correctedOpFlashTiming.SliceNuScore = _sliceMaxNuScore; correctedOpFlashTimes->emplace_back(std::move(correctedOpFlashTiming)); } @@ -551,4 +551,4 @@ ::lightana::LiteOpHitArray_t sbnd::LightPropagationCorrection::GetAssociatedLite } return flash_hits_v; - } \ No newline at end of file + } From 8c71d0bce4aba4b0d8858db1122d21a48fa33cc8 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 10 Nov 2025 15:28:24 -0600 Subject: [PATCH 04/73] updated sbnobj --- sbndcode/BlipRecoSBND/BlipAna_module.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index b9ca904e8..6dce5dd4a 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -75,7 +75,8 @@ const int kMaxTrks = 1000; const int kMaxBlips = 5000; const int kMaxG4 = 30000; const int kMaxEDeps = 10000; -const int kMaxTrkPts = 2000; +const int kMaxTrkPts = 2000; +const int kNplanes = blip::kNplanes; class BlipAna; From bb7fca38885c361a1b4dea88e9cca7e2d3557400 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 13 Nov 2025 16:28:09 -0600 Subject: [PATCH 05/73] Forgot to take out cmake lists --- sbndcode/BlipRecoSBND/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/CMakeLists.txt b/sbndcode/BlipRecoSBND/CMakeLists.txt index 38734b91c..91c26f818 100644 --- a/sbndcode/BlipRecoSBND/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/CMakeLists.txt @@ -38,7 +38,7 @@ set( MODULE_LIBRARIES larcorealg::Geometry ) add_subdirectory(Alg) -add_subdirectory(Utils) +#add_subdirectory(Utils) cet_build_plugin(BlipAna art::Module SOURCE BlipAna_module.cc LIBRARIES ${MODULE_LIBRARIES} ) cet_build_plugin(BlipRecoProducer art::Module SOURCE BlipRecoProducer_module.cc LIBRARIES ${MODULE_LIBRARIES} ) From 04973a2074250c663ddb00ce3f5e13502d9c2a03 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 13 Nov 2025 16:47:23 -0600 Subject: [PATCH 06/73] CMAKEList updates --- sbndcode/BlipRecoSBND/Alg/CMakeLists.txt | 3 ++- sbndcode/BlipRecoSBND/CMakeLists.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt index 6e99a8365..9ed0e28c7 100644 --- a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt @@ -35,7 +35,8 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg sbndcode_CRTUtils sbnobj::Common_CRT #sbndcode_CosmicIdUtils - sbndcode_BlipUtils + #sbndcode_BlipUtils + sbndobj_BlipDataTypes ) install_headers() diff --git a/sbndcode/BlipRecoSBND/CMakeLists.txt b/sbndcode/BlipRecoSBND/CMakeLists.txt index 91c26f818..d77b574a9 100644 --- a/sbndcode/BlipRecoSBND/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/CMakeLists.txt @@ -33,7 +33,8 @@ set( MODULE_LIBRARIES larcorealg::Geometry ROOT::Gdml sbndcode_RecoUtils sbndcode_OpDetSim - sbndcode_BlipUtils + #sbndcode_BlipUtils + sbndobj_BlipDataTypes sbndcode_BlipRecoAlg ) From a8816a28531877dcaea4a2a713612a26db4bb2f8 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 13 Nov 2025 17:14:13 -0600 Subject: [PATCH 07/73] Updating includes --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index 4ba2e61ad..16f688bc0 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -52,7 +52,8 @@ #include "larevt/CalibrationDBI/Interface/ChannelStatusProvider.h" // Blip-specific utils -#include "sbndcode/BlipRecoSBND/Utils/BlipUtils.h" +//#include "sbndcode/BlipRecoSBND/Utils/BlipUtils.h" +#include "sbnobj/SBND/Blip/BlipDataTypes.h" // ROOT stuff #include "TH1D.h" From 7a1e130dd8d64c54c751bd00aca8e8b3925efc70 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 13 Nov 2025 17:22:34 -0600 Subject: [PATCH 08/73] Tried to separate the removal of classes.h but it doesn't actually work --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- sbndcode/BlipRecoSBND/CMakeLists.txt | 4 +- sbndcode/BlipRecoSBND/Utils/DataTypes.h | 174 -------------------- sbndcode/BlipRecoSBND/Utils/classes.h | 1 - sbndcode/BlipRecoSBND/Utils/classes_def.xml | 14 -- 5 files changed, 3 insertions(+), 192 deletions(-) delete mode 100644 sbndcode/BlipRecoSBND/Utils/DataTypes.h delete mode 100644 sbndcode/BlipRecoSBND/Utils/classes.h delete mode 100644 sbndcode/BlipRecoSBND/Utils/classes_def.xml diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 1abf5cc7f..a0e941748 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -12,7 +12,7 @@ namespace blip { auto const& detProp = art::ServiceHandle()->DataForJob(); auto const& clockData = art::ServiceHandle()->DataForJob(); - art::ServiceHandle wireReadoutGeom; + art::ServiceHandle wireReadoutGeom; kLArDensity = detProp.Density(); kNominalEfield = detProp.Efield(); kDriftVelocity = detProp.DriftVelocity(detProp.Efield(0),detProp.Temperature()); diff --git a/sbndcode/BlipRecoSBND/CMakeLists.txt b/sbndcode/BlipRecoSBND/CMakeLists.txt index d77b574a9..414aecabf 100644 --- a/sbndcode/BlipRecoSBND/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/CMakeLists.txt @@ -33,13 +33,13 @@ set( MODULE_LIBRARIES larcorealg::Geometry ROOT::Gdml sbndcode_RecoUtils sbndcode_OpDetSim - #sbndcode_BlipUtils + sbndcode_BlipUtils sbndobj_BlipDataTypes sbndcode_BlipRecoAlg ) add_subdirectory(Alg) -#add_subdirectory(Utils) +add_subdirectory(Utils) cet_build_plugin(BlipAna art::Module SOURCE BlipAna_module.cc LIBRARIES ${MODULE_LIBRARIES} ) cet_build_plugin(BlipRecoProducer art::Module SOURCE BlipRecoProducer_module.cc LIBRARIES ${MODULE_LIBRARIES} ) diff --git a/sbndcode/BlipRecoSBND/Utils/DataTypes.h b/sbndcode/BlipRecoSBND/Utils/DataTypes.h deleted file mode 100644 index 023eb99ce..000000000 --- a/sbndcode/BlipRecoSBND/Utils/DataTypes.h +++ /dev/null @@ -1,174 +0,0 @@ - -#include "lardataobj/RecoBase/Hit.h" -#include "nusimdata/SimulationBase/MCParticle.h" - -#include - -typedef std::vector vint_t; -typedef std::vector vbool_t; -typedef std::vector vfloat_t; -typedef std::set si_t; -typedef std::map mif_t; - -const int kNplanes = 3; -const int kNTPCs = 2; - -namespace blip { - - //################################################### - // Data structures - //################################################### - - struct ParticleInfo { - simb::MCParticle particle; - int trackId = -9; - int index = -9; - int isPrimary = -9; - int numTrajPts = -9; - double depEnergy = -9; - int depElectrons = -9; - double numElectrons = -9; - double mass = -9; - double E = -9; - double endE = -9; - double KE = -9; - double endKE = -9; - double P = -9; - double Px = -9; - double Py = -9; - double Pz = -9; - double pathLength = -9; - double time = -9; - double endtime = -9; - TVector3 startPoint; - TVector3 endPoint; - TVector3 position; - }; - - // True energy depositions - struct TrueBlip { - int ID = -9; // unique blip ID - int Cryostat = -9; // Cryostat ID - int TPC = -9; // TPC ID - float Time = -9; // time of particle interaction - int TimeTick = -9; // time tick - float DriftTime = -9; // drift time [us] - float Energy = 0; // energy dep [MeV] - int DepElectrons = 0; // deposited electrons - int NumElectrons = 0; // electrons reaching wires - int LeadG4ID = -9; // lead G4 track ID - int LeadG4Index = -9; // lead G4 track index - int LeadG4PDG = -9; // lead G4 PDG - float LeadCharge = -9; // lead G4 charge dep - TVector3 Position; // XYZ position - mif_t G4ChargeMap; - mif_t G4PDGMap; - }; - - struct HitInfo { - int hitid = -9; - int cryo = -9; - int tpc = -9; - int plane = -9; - int wire = -9; - int chan = -9; - float amp = -9; - float rms = -9; - int trkid = -9; - int shwrid = -9; - int clustid = -9; - int blipid = -9; - bool ismatch = false; - float integralADC = -999; // [ADCs] from integral - float sigmaintegral = -999; - float sumADC = -999; // [ADCs] from sum - float charge = -999; // [e-] - float peakTime = -999999; - float driftTime = -999999; // [tick] - float gof = -9; - int g4trkid = -9; - int g4pdg = -999; - int g4charge = -999; // [e-] - float g4frac = -99; - float g4energy = -999; // [MeV] - }; - - struct HitClust { - int ID = -9; - bool isValid = false; - int CenterChan = -999; - int CenterWire = -999; - bool isTruthMatched = false; - bool isMerged = false; - bool isMatched = false; - int DeadWireSep = 99; - int Cryostat = -9; - int TPC = -9; - int Plane = -9; - int NHits = -9; - int NWires = -9; - float ADCs = -999; - float Amplitude = -999; - float Charge = -999; - float SigmaCharge = -999; - float TimeTick = -999; - float Time = -999; - float StartHitTime = -999; - float EndHitTime = -999; - float StartTime = -999; - float EndTime = -999; - float Timespan = -999; - float RMS = -999; - int StartWire = -999; - int EndWire = -999; - int NPulseTrainHits = -9; - float GoodnessOfFit = -999; - int BlipID = -9; - int EdepID = -9; - si_t HitIDs; - si_t Wires; - si_t Chans; - si_t G4IDs; - - std::map IntersectLocations; - }; - - struct Blip { - - int ID = -9; // Blip ID / index - bool isValid = false; // Blip passes basic checks - int Cryostat = -9; // Cryostat - int TPC = -9; // TPC - int NPlanes = -9; // Num. matched planes - int MaxWireSpan = -9; // Maximum span of wires on any plane cluster - float TimeTick = -999; // Readout time [ticks] - float Time = -999; // Drift time [us] - float Charge = -9; // Charge on calorimetry plane - float Energy = -999; // Energy (const dE/dx, fcl-configurable) - float EnergyESTAR = -999; // Energy (ESTAR method from ArgoNeuT) - float EnergyPSTAR = -999; // Energy (PSTAR method similar with ESTAR method from ArgoNeuT) - float ProxTrkDist = -9; // Distance to cloest track - int ProxTrkID = -9; // ID of closest track - bool inCylinder = false; // Is it in a cone/cylinder region? - - TVector3 Position; // 3D position TVector3 - float SigmaYZ = -9.; // Uncertainty in YZ intersect [cm] - float dX = -9; // Equivalent length along drift direction [cm] - float dYZ = -9; // Approximate length scale in YZ space [cm] - - // Plane/cluster-specific information - blip::HitClust clusters[kNplanes]; - - // Truth-matched energy deposition - blip::TrueBlip truth; - - // Prototype getter functions - double X() { return Position.X(); } - double Y() { return Position.Y(); } - double Z() { return Position.Z(); } - - }; - -} - - diff --git a/sbndcode/BlipRecoSBND/Utils/classes.h b/sbndcode/BlipRecoSBND/Utils/classes.h deleted file mode 100644 index a3d8b2a2e..000000000 --- a/sbndcode/BlipRecoSBND/Utils/classes.h +++ /dev/null @@ -1 +0,0 @@ -#include "sbnobj/SBND/Blip/classes.h" diff --git a/sbndcode/BlipRecoSBND/Utils/classes_def.xml b/sbndcode/BlipRecoSBND/Utils/classes_def.xml deleted file mode 100644 index c5492251c..000000000 --- a/sbndcode/BlipRecoSBND/Utils/classes_def.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - From 70ee378181114da96aefc483a84e1d856230a8be Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 13 Nov 2025 18:35:52 -0600 Subject: [PATCH 09/73] compiler is so fussy --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 4 ++-- sbndcode/BlipRecoSBND/Alg/CMakeLists.txt | 2 +- sbndcode/BlipRecoSBND/Utils/classes.h | 0 sbndcode/BlipRecoSBND/Utils/classes_def.xml | 2 ++ 5 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 sbndcode/BlipRecoSBND/Utils/classes.h create mode 100644 sbndcode/BlipRecoSBND/Utils/classes_def.xml diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index a0e941748..1abf5cc7f 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -12,7 +12,7 @@ namespace blip { auto const& detProp = art::ServiceHandle()->DataForJob(); auto const& clockData = art::ServiceHandle()->DataForJob(); - art::ServiceHandle wireReadoutGeom; + art::ServiceHandle wireReadoutGeom; kLArDensity = detProp.Density(); kNominalEfield = detProp.Efield(); kDriftVelocity = detProp.DriftVelocity(detProp.Efield(0),detProp.Temperature()); diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index 16f688bc0..6e54c5beb 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -39,7 +39,7 @@ #include "larcorealg/Geometry/GeometryCore.h" #include "larreco/Calorimetry/CalorimetryAlg.h" #include "art/Framework/Principal/Event.h" - +#include "larcore/Geometry/WireReadout.h" // Microboone includes //#include "ubevt/Database/TPCEnergyCalib/TPCEnergyCalibService.h" @@ -52,7 +52,7 @@ #include "larevt/CalibrationDBI/Interface/ChannelStatusProvider.h" // Blip-specific utils -//#include "sbndcode/BlipRecoSBND/Utils/BlipUtils.h" +#include "sbndcode/BlipRecoSBND/Utils/BlipUtils.h" #include "sbnobj/SBND/Blip/BlipDataTypes.h" // ROOT stuff diff --git a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt index 9ed0e28c7..7fab12836 100644 --- a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt @@ -35,7 +35,7 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg sbndcode_CRTUtils sbnobj::Common_CRT #sbndcode_CosmicIdUtils - #sbndcode_BlipUtils + sbndcode_BlipUtils sbndobj_BlipDataTypes ) diff --git a/sbndcode/BlipRecoSBND/Utils/classes.h b/sbndcode/BlipRecoSBND/Utils/classes.h new file mode 100644 index 000000000..e69de29bb diff --git a/sbndcode/BlipRecoSBND/Utils/classes_def.xml b/sbndcode/BlipRecoSBND/Utils/classes_def.xml new file mode 100644 index 000000000..2eff49dff --- /dev/null +++ b/sbndcode/BlipRecoSBND/Utils/classes_def.xml @@ -0,0 +1,2 @@ + + From 9a4101987a6d19a460a372da9acc3fbea4e89a75 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 14 Nov 2025 10:30:16 -0600 Subject: [PATCH 10/73] compile changes --- CMakeLists.txt | 2 +- ups/product_deps | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 033c8a6bc..95dbcc756 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ cmake_minimum_required(VERSION 3.20 FATAL_ERROR) -set(${PROJECT_NAME}_CMAKE_PROJECT_VERSION_STRING 10.11.01.01) +set(${PROJECT_NAME}_CMAKE_PROJECT_VERSION_STRING 10.12.02) find_package(cetmodules REQUIRED) project(sbndcode LANGUAGES CXX) diff --git a/ups/product_deps b/ups/product_deps index 151fd7276..efe9f99ee 100644 --- a/ups/product_deps +++ b/ups/product_deps @@ -253,7 +253,7 @@ wpdir product_dir wire-cell-cfg # #################################### product version qual flags -sbncode v10_11_01_01 - +sbncode v10_12_02 - cetmodules v3_24_01 - only_for_build sbnd_data v01_36_00 - sbndutil v10_06_01 - optional From b2c99ca3ce9b68b8239f8706f63248b033171230 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 14 Nov 2025 11:55:16 -0600 Subject: [PATCH 11/73] updated caf maker fcl --- sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl index d18bc079b..f93d6bacf 100644 --- a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl +++ b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl @@ -126,9 +126,9 @@ physics: # change tools in sbn to have 2D TPC sim/sp input physics.producers.pandoraShowerRazzle.SimChannelLabel: "simtpc2d:simpleSC" physics.producers.pandoraTrackDazzle.SimChannelLabel: "simtpc2d:simpleSC" -physics.producers.cnnid.WireLabel: "simtpc2d:gauss" +#physics.producers.cnnid.WireLabel: "simtpc2d:gauss" # uncomment below line for to use DNN ROI SP for CNNID scores -#physics.producers.cnnid.WireLabel: "simtpc2d:dnnsp" +physics.producers.cnnid.WireLabel: "simtpc2d:dnnsp" physics.producers.vertexCharge.CaloAlg: @local::sbnd_calorimetryalgmc physics.producers.vertexStub.CaloAlg: @local::sbnd_calorimetryalgmc @@ -136,6 +136,7 @@ physics.producers.vertexStub.CaloAlg: @local::sbnd_calorimetryalgmc physics.producers.cafmaker: @local::standard_cafmaker physics.producers.cafmaker.CosmicGenLabel: "corsika" physics.producers.cafmaker.SimChannelLabel: "simtpc2d:simpleSC" +physics.producers.cafmaker.BlipTag: "blipreco" # Blinding not needed for MC physics.producers.cafmaker.CreateBlindedCAF: false From 2736872a5c96003aa96ae165476401b1b0c7a7ff Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 14 Nov 2025 13:25:43 -0600 Subject: [PATCH 12/73] fcl changes to include blips --- .../standard/caf/cafmakerjob_sbnd_data_sce.fcl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_data_sce.fcl b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_data_sce.fcl index fb093fa55..e584b5a47 100644 --- a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_data_sce.fcl +++ b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_data_sce.fcl @@ -15,6 +15,7 @@ physics.producers.cafmaker.TPCPMTBarycenterMatchLabel: "tpcpmtbarycentermatching physics.producers.cafmaker.CVNLabel: "cvnSCE" physics.producers.cafmaker.CorrectedOpFlashLabel: "lightpropagationcorrectionSCE" physics.producers.cnnid.WireLabel: "sptpc2d:dnnsp" +physics.producers.cafmaker.BlipTag: "blipreco" physics.producers.cnnid.ClusterModuleLabel: "pandoraSCE" physics.producers.cnnid.PFParticleModuleLabel: "pandoraSCE" @@ -35,7 +36,7 @@ physics.producers.pandoraShowerCosmicDist.PandoraLabel: "pandoraSCE" physics.producers.pandoraShowerCosmicDist.ShowerLabel: "pandoraSCEShowerSBN" physics.producers.pandoraShowerRazzle.PFPLabel: "pandoraSCE" physics.producers.pandoraShowerRazzle.ShowerLabel: "pandoraSCEShowerSBN" - +physics.producers.pandoraShowerRazzle.SimChannelLabel: "sptpc2d:dnnsp" physics.producers.pandoraRazzled: @local::razzled_sbnd_sce physics.producers.pandoraTrackClosestApproach.TrackLabel: "pandoraSCETrack" @@ -53,6 +54,8 @@ physics.producers.pandoraTrackDazzle.PFPLabel: "pandoraSCE" physics.producers.pandoraTrackDazzle.TrackLabel: "pandoraSCETrack" physics.producers.pandoraTrackDazzle.CaloLabel: "pandoraSCECaloData" physics.producers.pandoraTrackDazzle.Chi2Label: "pandoraSCEPidData" +physics.producers.pandoraTrackDazzle.SimChannelLabel: "sptpc2d:dnnsp" + physics.producers.fmatchSCE: @local::transfer_flashmatch_sce_sbnd physics.producers.fmatchopSCE: @local::transfer_flashmatch_sce_sbnd From dbcec4b627cd88f52c543b8d8df1b8a18b63b576 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 14 Nov 2025 13:29:02 -0600 Subject: [PATCH 13/73] MC caf updates --- sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_sce.fcl | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_sce.fcl b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_sce.fcl index 43493065b..87259491f 100644 --- a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_sce.fcl +++ b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd_sce.fcl @@ -15,6 +15,7 @@ physics.producers.cafmaker.CRTTrackMatchLabel: "pandoraSCETrackCRTTrack" physics.producers.cafmaker.OpT0Label: "opt0finderSCE" physics.producers.cafmaker.TPCPMTBarycenterMatchLabel: "tpcpmtbarycentermatchingSCE" physics.producers.cafmaker.CVNLabel: "cvnSCE" +physics.producers.cafmaker.BlipTag: "blipreco" physics.producers.cnnid.ClusterModuleLabel: "pandoraSCE" physics.producers.cnnid.PFParticleModuleLabel: "pandoraSCE" From f63553b0ba7e0bf649b29b5a1e7a67e79be57c4f Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Wed, 19 Nov 2025 10:08:18 -0600 Subject: [PATCH 14/73] Fixing changes I didn't intend to make --- sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc | 9 ++++----- .../LightPropagationCorrectionAna_module.cc | 2 +- .../LightPropagationCorrection_module.cc | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc b/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc index 9f610fb6b..912923274 100644 --- a/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc +++ b/sbndcode/CRT/CRTReco/CRTTrackProducer_module.cc @@ -35,6 +35,7 @@ #include + namespace geo { using Point2D_t = ROOT::Math::PositionVector2D, ROOT::Math::GlobalCoordinateSystemTag>; @@ -244,11 +245,8 @@ std::vector>> sbnd::crt::CRTTr BestFitLine(primarySpacePoint->Pos(), secondarySpacePoint->Pos(), tertiarySpacePoint->Pos(), primaryCluster->Tagger(), secondaryCluster->Tagger(), tertiaryCluster->Tagger(), fitStart, fitMid, fitEnd, gof); - const double _t0 = t0; - const double _et0 = et0; - const double _t1 = t1; - const double _et1 = et1; - const CRTTrack track({fitStart, fitMid, fitEnd}, _t0, _et0, _t1, _et1, pe, tof, used_taggers); + + const CRTTrack track({fitStart, fitMid, fitEnd}, t0, et0, t1, et1, pe, tof, used_taggers); const std::set used_spacepoints = {i, ii, iii}; candidates.emplace_back(track, used_spacepoints); @@ -267,6 +265,7 @@ std::vector>> sbnd::crt::CRTTr const double pe = primarySpacePoint->PE() + secondarySpacePoint->PE(); const std::vector used_taggers = {primaryCluster->Tagger(), secondaryCluster->Tagger()}; + const CRTTrack track(start, end, t0, et0, t1, et1, pe, tof, used_taggers); const std::set used_spacepoints = {i, ii}; diff --git a/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc b/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc index a46649f8a..9b09202a2 100644 --- a/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc +++ b/sbndcode/LightPropagationCorrection/LightPropagationCorrectionAna_module.cc @@ -147,4 +147,4 @@ void LightPropagationCorrectionAna::beginJob() } -DEFINE_ART_MODULE(LightPropagationCorrectionAna) +DEFINE_ART_MODULE(LightPropagationCorrectionAna) \ No newline at end of file diff --git a/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc b/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc index 1e74b4b1c..eb75360a4 100644 --- a/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc +++ b/sbndcode/LightPropagationCorrection/LightPropagationCorrection_module.cc @@ -542,4 +542,4 @@ ::lightana::LiteOpHitArray_t sbnd::LightPropagationCorrection::GetAssociatedLite } return flash_hits_v; - } + } \ No newline at end of file From 1fbb8281dc77bb7896a9f3991d3b9edddb1f4ad0 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 20 Nov 2025 09:55:01 -0600 Subject: [PATCH 15/73] Fixed indentation --- sbndcode/BlipRecoSBND/Alg/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt index 7fab12836..31a572935 100644 --- a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt @@ -11,7 +11,7 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg lardataobj::RawData lardataobj::RecoBase lardata::RecoObjects - larreco::Calorimetry + larreco::Calorimetry larpandora::LArPandoraInterface nusimdata::SimulationBase cetlib::cetlib @@ -35,8 +35,8 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg sbndcode_CRTUtils sbnobj::Common_CRT #sbndcode_CosmicIdUtils - sbndcode_BlipUtils - sbndobj_BlipDataTypes + sbndcode_BlipUtils + sbndobj_BlipDataTypes ) install_headers() From 382de1d6bcb4a0dcde6d7a40411c8622bbcca990 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 29 Nov 2025 11:36:20 -0600 Subject: [PATCH 16/73] fixed library name --- sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index b05f2f7f0..e46d26faf 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -42,7 +42,7 @@ cet_make_library( #sbndcode_CosmicIdUtils ) -art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) +art_dictionary(DICTIONARY_LIBRARIES sbnobj::SBND_Blip) install_headers() install_source() install_fhicl() From 180851404edfa44ea397522db2dd7e9ed4ef767a Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 12:49:37 -0600 Subject: [PATCH 17/73] TVector3 Replacement updates --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 14 ++++++++++---- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index e1b8b1b48..2ca7840a0 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,9 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.position = 0.5*(pinfo.startPoint+pinfo.endPoint); + pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), + 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), + 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; @@ -155,7 +157,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - tblip.Position = w1*tblip.Position + w2*pinfo.position; + tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), + w1*tblip.Position.Y() + w2*pinfo.position.Y(), + w1*tblip.Position.Z() + w2*pinfo.position.Z()); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over @@ -196,7 +200,7 @@ namespace BlipUtils { // check that the times are similar (we don't want to merge // together a blip that happened much later but in the same spot) if( fabs(blip_i.Time - blip_j.Time) > 5 ) continue; - float d = (blip_i.Position-blip_j.Position).Mag(); + float d = TMath::Sqrt((blip_i.Position-blip_j.Position).Mag2()); if( d < dmin ) { isGrouped.at(j) = true; //float totE = blip_i.Energy + blip_j.Energy; @@ -204,7 +208,9 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - blip_i.Position = w1*blip_i.Position + w2*blip_j.Position; + blip_i.Position.SetXYZ( w1*blip_i.Position.X() + w2*blip_j.Position.X(), + w1*blip_i.Position.Y() + w2*blip_j.Position.Y(), + w1*blip_i.Position.Z() + w2*blip_j.Position.Z()) blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; blip_i.Time = w1*blip_i.Time + w2*blip_j.Time; blip_i.DepElectrons += blip_j.DepElectrons; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 4f7cc0d0d..6da1d4963 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -76,7 +76,7 @@ namespace BlipUtils { //void HitTruth(art::Ptr const&, int&, float&, float&, float&); //si_t HitTruthIds( art::Ptr const&); //bool G4IdToMCTruth( int const, art::Ptr&); - double PathLength(const simb::MCParticle&, TVector3&, TVector3&); + double PathLength(const simb::MCParticle&, geo::Point_t&, geo::Point_t&); double PathLength(const simb::MCParticle&); bool IsAncestorOf(int, int, bool); double DistToBoundary(const recob::Track::Point_t&); From d137623af87540d884cc3d7f9908e7b5188b3944 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:02:03 -0600 Subject: [PATCH 18/73] more TVector 3 conversion --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 2ca7840a0..fb44a567e 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -210,7 +210,7 @@ namespace BlipUtils { blip_i.Energy += blip_j.Energy; blip_i.Position.SetXYZ( w1*blip_i.Position.X() + w2*blip_j.Position.X(), w1*blip_i.Position.Y() + w2*blip_j.Position.Y(), - w1*blip_i.Position.Z() + w2*blip_j.Position.Z()) + w1*blip_i.Position.Z() + w2*blip_j.Position.Z()); blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; blip_i.Time = w1*blip_i.Time + w2*blip_j.Time; blip_i.DepElectrons += blip_j.DepElectrons; @@ -425,12 +425,16 @@ namespace BlipUtils { // YZ-plane, as well as the mean difference between intersection points. newblip.Position.SetXYZ(0,0,0); if( wirex.size() == 1 ) { - newblip.Position= wirex[0]; + newblip.Position.SetXYZ(wirex[0]); } else { newblip.SigmaYZ = 0; double fact = 1./wirex.size(); - for(auto& v : wirex ) newblip.Position += v * fact; - for(auto& v : wirex ) newblip.SigmaYZ += (v-newblip.Position).Mag() * fact; + for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, + newblip.Position.Y() + v.Y() * fact, + newblip.Position.Z() + v.Z() * fact); + for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( TMath::Pow(v.X()-newblip.Position.X(), 2) + + TMath::Pow(v.Y()-newblip.Position.Y(), 2) + + TMath::Pow(v.Z()-newblip.Position.Z(), 2)) * fact; // Ensure that difference between intersection points is // consistent with the maximal wire extent if( newblip.SigmaYZ > std::max(1.,0.5*newblip.dYZ) ) return newblip; From 184ba702a244e2728c4633d1abbcf7374347a720 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:14:22 -0600 Subject: [PATCH 19/73] Update Power calls --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index fb44a567e..8039bbf3c 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -432,9 +432,9 @@ namespace BlipUtils { for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, newblip.Position.Y() + v.Y() * fact, newblip.Position.Z() + v.Z() * fact); - for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( TMath::Pow(v.X()-newblip.Position.X(), 2) + - TMath::Pow(v.Y()-newblip.Position.Y(), 2) + - TMath::Pow(v.Z()-newblip.Position.Z(), 2)) * fact; + for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + + pow(v.Y()-newblip.Position.Y(), 2) + + pow(v.Z()-newblip.Position.Z(), 2)) * fact; // Ensure that difference between intersection points is // consistent with the maximal wire extent if( newblip.SigmaYZ > std::max(1.,0.5*newblip.dYZ) ) return newblip; From ae53aa56c1dcce99f35131d7de3a06578ad4a137 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:27:14 -0600 Subject: [PATCH 20/73] Not sure this should function --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 8039bbf3c..e98e0e95c 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -425,7 +425,7 @@ namespace BlipUtils { // YZ-plane, as well as the mean difference between intersection points. newblip.Position.SetXYZ(0,0,0); if( wirex.size() == 1 ) { - newblip.Position.SetXYZ(wirex[0]); + newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; double fact = 1./wirex.size(); From 785cf59ae20dbb32813971a85e6e06e3f364d0b6 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:32:18 -0600 Subject: [PATCH 21/73] One more cmake update --- sbndcode/BlipRecoSBND/Alg/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt index 31a572935..6c10f3c94 100644 --- a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt @@ -36,7 +36,7 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg sbnobj::Common_CRT #sbndcode_CosmicIdUtils sbndcode_BlipUtils - sbndobj_BlipDataTypes + sbnobj::SBND_Blip ) install_headers() From a23b8fe876c8a0fe17e8980fc91589d357bc105f Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:37:19 -0600 Subject: [PATCH 22/73] How did I miss so many --- sbndcode/BlipRecoSBND/CMakeLists.txt | 2 +- sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/CMakeLists.txt b/sbndcode/BlipRecoSBND/CMakeLists.txt index 414aecabf..2f096b2a7 100644 --- a/sbndcode/BlipRecoSBND/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/CMakeLists.txt @@ -34,7 +34,7 @@ set( MODULE_LIBRARIES larcorealg::Geometry sbndcode_RecoUtils sbndcode_OpDetSim sbndcode_BlipUtils - sbndobj_BlipDataTypes + sbncode::SBND_Blip sbndcode_BlipRecoAlg ) diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index e46d26faf..8d577cf1e 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -38,11 +38,11 @@ cet_make_library( ROOT::Gdml sbndcode_CRTUtils sbnobj::Common_CRT - sbndobj_BlipDataTypes + sbnobj::SBND_Blip #sbndcode_CosmicIdUtils ) -art_dictionary(DICTIONARY_LIBRARIES sbnobj::SBND_Blip) +art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) install_headers() install_source() install_fhicl() From 311ee029b402e399fa4ff64bb516727b6cf162cf Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:38:54 -0600 Subject: [PATCH 23/73] How did I miss so many --- sbndcode/BlipRecoSBND/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/CMakeLists.txt b/sbndcode/BlipRecoSBND/CMakeLists.txt index 2f096b2a7..5952c26bd 100644 --- a/sbndcode/BlipRecoSBND/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/CMakeLists.txt @@ -34,7 +34,7 @@ set( MODULE_LIBRARIES larcorealg::Geometry sbndcode_RecoUtils sbndcode_OpDetSim sbndcode_BlipUtils - sbncode::SBND_Blip + sbnobj::SBND_Blip sbndcode_BlipRecoAlg ) From a36a2b58e105452047f1854899e0e57e84a1faf9 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:43:43 -0600 Subject: [PATCH 24/73] Weird these cmake issues appeared now and not earlier --- sbndcode/BlipRecoSBND/Alg/CMakeLists.txt | 1 - sbndcode/BlipRecoSBND/CMakeLists.txt | 2 +- sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt index 6c10f3c94..1be1ed923 100644 --- a/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Alg/CMakeLists.txt @@ -34,7 +34,6 @@ art_make_library(LIBRARY_NAME sbndcode_BlipRecoAlg ROOT::Gdml sbndcode_CRTUtils sbnobj::Common_CRT - #sbndcode_CosmicIdUtils sbndcode_BlipUtils sbnobj::SBND_Blip ) diff --git a/sbndcode/BlipRecoSBND/CMakeLists.txt b/sbndcode/BlipRecoSBND/CMakeLists.txt index 5952c26bd..16d8dece1 100644 --- a/sbndcode/BlipRecoSBND/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/CMakeLists.txt @@ -8,7 +8,7 @@ set( MODULE_LIBRARIES larcorealg::Geometry larevt::Filters lardataobj::RawData lardataobj::RecoBase - larreco::Calorimetry + larreco::Calorimetry larreco::RecoAlg lardata::RecoObjects larpandora::LArPandoraInterface diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index 8d577cf1e..f54a2d605 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -4,7 +4,6 @@ cet_make_library( LIBRARY_NAME sbndcode_BlipUtils LIBRARIES - PUBLIC larcorealg::Geometry larcore::Geometry_Geometry_service larsim::Simulation @@ -39,7 +38,6 @@ cet_make_library( sbndcode_CRTUtils sbnobj::Common_CRT sbnobj::SBND_Blip - #sbndcode_CosmicIdUtils ) art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) From e7951b5e31efd4e28a6ac42b47ee0cc845612fa6 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:49:55 -0600 Subject: [PATCH 25/73] Adding includes that are probably unneeded --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 1 + sbndcode/BlipRecoSBND/BlipAna_module.cc | 1 + sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc | 1 + sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 1 + 4 files changed, 4 insertions(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index c80e9166d..1851ae4b9 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -41,6 +41,7 @@ #include "larreco/Calorimetry/CalorimetryAlg.h" #include "art/Framework/Principal/Event.h" #include "larcore/Geometry/WireReadout.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // Microboone includes //#include "ubevt/Database/TPCEnergyCalib/TPCEnergyCalibService.h" diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index 6dce5dd4a..a8590b131 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -32,6 +32,7 @@ #include "lardataobj/AnalysisBase/Calorimetry.h" #include "larevt/SpaceChargeServices/SpaceChargeService.h" #include "cetlib/search_path.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // SBND-specific includes #include "sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h" diff --git a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc index 962367af5..7fde766e8 100644 --- a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc +++ b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc @@ -33,6 +33,7 @@ #include "lardataobj/RawData/RawDigit.h" #include "lardataobj/RawData/raw.h" #include "lardata/Utilities/AssociationUtil.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // C++ includes #include diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 6da1d4963..bff152637 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,6 +27,7 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" //#include "larcorealg/Geometry/GeometryCore.h" //#include "larcorealg/Geometry/WireReadoutGeom.h" From 1db5fd57bbaea4982da71ea19cd62dbbbad16e5b Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:51:50 -0600 Subject: [PATCH 26/73] Oh I just updated one spot --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index e98e0e95c..c2fe570ca 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -623,7 +623,7 @@ namespace BlipUtils { //============================================================================= // Length of particle trajectory - double PathLength(const simb::MCParticle& part, TVector3& start, TVector3& end) + double PathLength(const simb::MCParticle& part, geo::Point_t& start, geo::Point_t& end) { int n = part.NumberTrajectoryPoints(); if( n <= 1 ) return 0.; From 813ff32fcd3c7828bbed54cf3166e5d8df983f7d Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:55:35 -0600 Subject: [PATCH 27/73] Oh I just updated one spot --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index c2fe570ca..d0afdea48 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -643,7 +643,7 @@ namespace BlipUtils { return L; } double PathLength(const simb::MCParticle& part){ - TVector3 a,b; + geo::Point_t a,b; return PathLength(part,a,b); } From d07534825ea6bb74d5c1f08896d5720ba3fa55e2 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Sat, 29 Nov 2025 13:58:17 -0600 Subject: [PATCH 28/73] I hope I don't just replace all these tvector 3 --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index eb9a3b810..d013f778c 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1072,7 +1072,7 @@ namespace blip { TVector3 p2(b.X(), b.Y(), b.Z() ); // TO-DO: if this track starts or ends at a TPC boundary, // we should extend p1 or p2 to outside the AV to avoid blind spots - TVector3 bp = newBlip.Position; + TVector3 bp(newBlip.Position.X(), newBlip.Position.Y(), newBlip.Position.Z()); float d = BlipUtils::DistToLine(p1,p2,bp); if( d > 0 ) { // update closest trkdist From 3a30ea5fa747c842f879c029ad4c39c9301e93e8 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Wed, 10 Dec 2025 08:48:40 -0600 Subject: [PATCH 29/73] addressing Henry comments --- sbndcode/BlipRecoSBND/BlipAna_module.cc | 2 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 -- sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index a8590b131..6b8edc40d 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -77,7 +77,7 @@ const int kMaxBlips = 5000; const int kMaxG4 = 30000; const int kMaxEDeps = 10000; const int kMaxTrkPts = 2000; -const int kNplanes = blip::kNplanes; +const int kNplanes = blip::kNplanes; class BlipAna; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index bff152637..11c191ee0 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -28,8 +28,6 @@ #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" #include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" -//#include "larcorealg/Geometry/GeometryCore.h" -//#include "larcorealg/Geometry/WireReadoutGeom.h" // c++ #include diff --git a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl index cd92e0814..aa5aeafc7 100644 --- a/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl +++ b/sbndcode/JobConfigurations/standard/caf/cafmakerjob_sbnd.fcl @@ -126,7 +126,6 @@ physics: # change tools in sbn to have 2D TPC sim/sp input physics.producers.pandoraShowerRazzle.SimChannelLabel: "simtpc2d:simpleSC" physics.producers.pandoraTrackDazzle.SimChannelLabel: "simtpc2d:simpleSC" -#physics.producers.cnnid.WireLabel: "simtpc2d:gauss" # uncomment below line for to use DNN ROI SP for CNNID scores physics.producers.cnnid.WireLabel: "simtpc2d:dnnsp" From 298f171ed44903f4ca243b1eca62b8df06158ab1 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Wed, 10 Dec 2025 08:51:23 -0600 Subject: [PATCH 30/73] Tab align issue --- sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index f54a2d605..329ab12b4 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -37,7 +37,7 @@ cet_make_library( ROOT::Gdml sbndcode_CRTUtils sbnobj::Common_CRT - sbnobj::SBND_Blip + sbnobj::SBND_Blip ) art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) From 9c94f327b292e088b52847986297b47be90eebbe Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Wed, 10 Dec 2025 08:52:23 -0600 Subject: [PATCH 31/73] Tab align issue --- sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index 329ab12b4..ffd5d00f4 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -37,7 +37,7 @@ cet_make_library( ROOT::Gdml sbndcode_CRTUtils sbnobj::Common_CRT - sbnobj::SBND_Blip + sbnobj::SBND_Blip ) art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) From c67ed6319564347bf68931f188966f0f2574e766 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 10:07:01 -0600 Subject: [PATCH 32/73] Removed some tvector3 dependencies --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 28 +++++++++++----------- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 1 + sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 1 - 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index d013f778c..c68706d33 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1072,7 +1072,7 @@ namespace blip { TVector3 p2(b.X(), b.Y(), b.Z() ); // TO-DO: if this track starts or ends at a TPC boundary, // we should extend p1 or p2 to outside the AV to avoid blind spots - TVector3 bp(newBlip.Position.X(), newBlip.Position.Y(), newBlip.Position.Z()); + TVector3 bp = geo::vect::convertTo(newBlip.Position); float d = BlipUtils::DistToLine(p1,p2,bp); if( d > 0 ) { // update closest trkdist diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index d0afdea48..0928b9f29 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,9 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), - 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), - 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); + pinfo.position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; @@ -157,9 +155,10 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), - w1*tblip.Position.Y() + w2*pinfo.position.Y(), - w1*tblip.Position.Z() + w2*pinfo.position.Z()); + geo::vect::MiddlePointAccumulator mpalg; + mpalg.add(tblip.Position, w1); + mpalg.add(pinfo.Position, w2); + tblip.Position = mpalg.middlePoint(); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over @@ -200,7 +199,7 @@ namespace BlipUtils { // check that the times are similar (we don't want to merge // together a blip that happened much later but in the same spot) if( fabs(blip_i.Time - blip_j.Time) > 5 ) continue; - float d = TMath::Sqrt((blip_i.Position-blip_j.Position).Mag2()); + float d = (blip_i.Position-blip_j.Position).R(); //Size of vector spanning two blips if( d < dmin ) { isGrouped.at(j) = true; //float totE = blip_i.Energy + blip_j.Energy; @@ -208,9 +207,11 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - blip_i.Position.SetXYZ( w1*blip_i.Position.X() + w2*blip_j.Position.X(), - w1*blip_i.Position.Y() + w2*blip_j.Position.Y(), - w1*blip_i.Position.Z() + w2*blip_j.Position.Z()); + geo::vect::MiddlePointAccumulator mpalg; + mpalg.add(blip_i.Position, w1); + mpalg.add(blip_j.Position, w2); + blip_i.Position = mpalg.middlePoint(); + mpalg.clear(); blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; blip_i.Time = w1*blip_i.Time + w2*blip_j.Time; blip_i.DepElectrons += blip_j.DepElectrons; @@ -428,10 +429,9 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - double fact = 1./wirex.size(); - for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, - newblip.Position.Y() + v.Y() * fact, - newblip.Position.Z() + v.Z() * fact); + geo::vect::MiddlePointAccumulator position; + position.add(begin(wirex), end(wirex)); + newblip.Position = position.middlePoint(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + pow(v.Y()-newblip.Position.Y(), 2) + pow(v.Z()-newblip.Position.Z(), 2)) * fact; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 11c191ee0..c272d730e 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,6 +27,7 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" +#include "larcorealg/Geometry/geo_vector_utils.h" #include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index ffd5d00f4..ecb2a1d1a 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -40,7 +40,6 @@ cet_make_library( sbnobj::SBND_Blip ) -art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) install_headers() install_source() install_fhicl() From eae9be385c29094993afaf130aade036bf8bd2cf Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 11:17:45 -0600 Subject: [PATCH 33/73] typo in include --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 1 + sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index 1851ae4b9..ba6151d64 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -38,6 +38,7 @@ #include "larcore/Geometry/Geometry.h" #include "larcorealg/Geometry/WireReadoutGeom.h" #include "larcorealg/Geometry/GeometryCore.h" +#include "larcorealg/Geometry/geo_vectors_utils.h" #include "larreco/Calorimetry/CalorimetryAlg.h" #include "art/Framework/Principal/Event.h" #include "larcore/Geometry/WireReadout.h" diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index c272d730e..0bd73c60d 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,7 +27,7 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" -#include "larcorealg/Geometry/geo_vector_utils.h" +#include "larcorealg/Geometry/geo_vectors_utils.h" #include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ From be7a13bc6a5128a6e4b8b683f09bd388c239a6b9 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 11:23:10 -0600 Subject: [PATCH 34/73] made pinfo position have a capital like all other blip positions --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 0928b9f29..bc6965e5f 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; @@ -145,7 +145,7 @@ namespace BlipUtils { // If this is a new blip, initialize if( !tblip.G4ChargeMap.size() ) { - tblip.Position = pinfo.position; + tblip.Position = pinfo.Position; tblip.Time = pinfo.time; // .. otherwise, check that the new particle From c41582b0516d8874b132ac1b04bacaebe4fb6934 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 11:26:35 -0600 Subject: [PATCH 35/73] thanks compiler --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index bc6965e5f..317ed987a 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -432,6 +432,7 @@ namespace BlipUtils { geo::vect::MiddlePointAccumulator position; position.add(begin(wirex), end(wirex)); newblip.Position = position.middlePoint(); + double fact = 1./wirex.size(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + pow(v.Y()-newblip.Position.Y(), 2) + pow(v.Z()-newblip.Position.Z(), 2)) * fact; From 5d1cc286ffe24a024a382139b8a4d370ffe8b782 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 11:33:08 -0600 Subject: [PATCH 36/73] swap one more tvector3 for geo::point_t --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 317ed987a..06ed4c615 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -382,7 +382,7 @@ namespace BlipUtils { // ------------------------------------------------ /// Look for valid wire intersections between // central-most hits in each cluster - std::vector wirex; + std::vector wirex; for(size_t i=0; iGet().Plane(geo::PlaneID{(unsigned int)hcs[i].Cryostat, (unsigned int)hcs[i].TPC, (unsigned int)hcs[i].Plane}); @@ -411,7 +411,7 @@ namespace BlipUtils { } if( match3d ) { - TVector3 a(0., intsec_p.Y(), intsec_p.Z()); + geo::Point_t a{0., intsec_p.Y(), intsec_p.Z()}; wirex.push_back(a); newblip.clusters[pli] = hcs[i]; newblip.clusters[plj] = hcs[j]; From 39745f4e7c795f5933fc5ac5bac3b82757ce6a0a Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 11:51:30 -0600 Subject: [PATCH 37/73] trying a different accumulator --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 06ed4c615..4a220e41e 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -429,7 +429,7 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - geo::vect::MiddlePointAccumulator position; + geo::vect::MiddlePointAccumulatorDim position; position.add(begin(wirex), end(wirex)); newblip.Position = position.middlePoint(); double fact = 1./wirex.size(); From c44a0cff672504d46e62533d24d771d2ca285693 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 11:59:38 -0600 Subject: [PATCH 38/73] gave up on iterator --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 4a220e41e..bc2c3536f 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -429,8 +429,8 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - geo::vect::MiddlePointAccumulatorDim position; - position.add(begin(wirex), end(wirex)); + geo::vect::MiddlePointAccumulator position; + for(auto& v : wirex ) position.add(v); newblip.Position = position.middlePoint(); double fact = 1./wirex.size(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + From 87ca9dc8eea16468c788dcff83265c60097e5602 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 12:05:41 -0600 Subject: [PATCH 39/73] put it back --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index bc2c3536f..81cb22c98 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -430,7 +430,7 @@ namespace BlipUtils { } else { newblip.SigmaYZ = 0; geo::vect::MiddlePointAccumulator position; - for(auto& v : wirex ) position.add(v); + position.add(wirex.begin(), wirex.end()); newblip.Position = position.middlePoint(); double fact = 1./wirex.size(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + From e627109e746ba41a011d8dac24d9b99cada30922 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 12:12:44 -0600 Subject: [PATCH 40/73] Removed iterator again --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 81cb22c98..7f7e25971 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -429,10 +429,11 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - geo::vect::MiddlePointAccumulator position; - position.add(wirex.begin(), wirex.end()); - newblip.Position = position.middlePoint(); double fact = 1./wirex.size(); + position.add(wirex.begin(), wirex.end()); + for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, + newblip.Position.Y() + v.Y() * fact, + newblip.Position.Z() + v.Z() * fact); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + pow(v.Y()-newblip.Position.Y(), 2) + pow(v.Z()-newblip.Position.Z(), 2)) * fact; From c78d55dd43fc834cbcf3223ea9e5f29648e40f10 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 12:14:55 -0600 Subject: [PATCH 41/73] missed a line --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 7f7e25971..9e2953892 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -430,7 +430,6 @@ namespace BlipUtils { } else { newblip.SigmaYZ = 0; double fact = 1./wirex.size(); - position.add(wirex.begin(), wirex.end()); for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, newblip.Position.Y() + v.Y() * fact, newblip.Position.Z() + v.Z() * fact); From 10e49161ae66c4b2f00afc30bfe36d356424a867 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 12:18:50 -0600 Subject: [PATCH 42/73] Don't know how to initilize correctly --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 9e2953892..ef3769323 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,7 +155,7 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - geo::vect::MiddlePointAccumulator mpalg; + geo::vect::MiddlePointAccumulator<3U> mpalg; mpalg.add(tblip.Position, w1); mpalg.add(pinfo.Position, w2); tblip.Position = mpalg.middlePoint(); @@ -207,7 +207,7 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - geo::vect::MiddlePointAccumulator mpalg; + geo::vect::MiddlePointAccumulator<3U> mpalg; mpalg.add(blip_i.Position, w1); mpalg.add(blip_j.Position, w2); blip_i.Position = mpalg.middlePoint(); From 1b10ce549e2efcccea9f2317ae09ad0d26e7a18b Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 12:24:03 -0600 Subject: [PATCH 43/73] these accumulator are not being nice --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index ef3769323..7b783470e 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,9 +155,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - geo::vect::MiddlePointAccumulator<3U> mpalg; - mpalg.add(tblip.Position, w1); - mpalg.add(pinfo.Position, w2); + geo::vect::MiddlePointAccumulator mpalg; + mpalg.add(&tblip.Position, w1); + mpalg.add(&pinfo.Position, w2); tblip.Position = mpalg.middlePoint(); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; @@ -207,9 +207,9 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - geo::vect::MiddlePointAccumulator<3U> mpalg; - mpalg.add(blip_i.Position, w1); - mpalg.add(blip_j.Position, w2); + geo::vect::MiddlePointAccumulator mpalg; + mpalg.add(&blip_i.Position, w1); + mpalg.add(&blip_j.Position, w2); blip_i.Position = mpalg.middlePoint(); mpalg.clear(); blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; From 612a577764a2dc026f1166866aa836f24cf2a688 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 12:36:30 -0600 Subject: [PATCH 44/73] throw out accumulator --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 7b783470e..2fa377d56 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,10 +155,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - geo::vect::MiddlePointAccumulator mpalg; - mpalg.add(&tblip.Position, w1); - mpalg.add(&pinfo.Position, w2); - tblip.Position = mpalg.middlePoint(); + tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), + w1*tblip.Position.Y() + w2*pinfo.position.Y(), + w1*tblip.Position.Z() + w2*pinfo.position.Z()); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over From d49df9d6290e31f997cbf2de9416512b8153f910 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 12:38:08 -0600 Subject: [PATCH 45/73] fix typo --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 2fa377d56..295f18627 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,9 +155,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), - w1*tblip.Position.Y() + w2*pinfo.position.Y(), - w1*tblip.Position.Z() + w2*pinfo.position.Z()); + tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.Position.X(), + w1*tblip.Position.Y() + w2*pinfo.Position.Y(), + w1*tblip.Position.Z() + w2*pinfo.Position.Z()); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over @@ -206,11 +206,9 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - geo::vect::MiddlePointAccumulator mpalg; - mpalg.add(&blip_i.Position, w1); - mpalg.add(&blip_j.Position, w2); - blip_i.Position = mpalg.middlePoint(); - mpalg.clear(); + blip_i.Position.SetXYZ( w1*blip_i.Position.X() + w2*blip_j.Position.X(), + w1*blip_i.Position.Y() + w2*blip_j.Position.Y(), + w1*blip_i.Position.Z() + w2*blip_j.Position.Z()); blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; blip_i.Time = w1*blip_i.Time + w2*blip_j.Time; blip_i.DepElectrons += blip_j.DepElectrons; From 33bb8a3b5c77e574c6e4a849bd888c30d2994f94 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:05:26 -0600 Subject: [PATCH 46/73] Trying to fix runtime error --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 1 + sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index ba6151d64..ec9150eb7 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -72,6 +72,7 @@ #include #include #include +#include typedef std::map>> CTPMap_t; typedef std::map> CTMap_t; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 295f18627..7ccf79028 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,10 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), + 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), + 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); + //pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; From a4b6724298033e27560939c053fa751489f229bb Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:09:25 -0600 Subject: [PATCH 47/73] Trying to fix runtime error --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 7ccf79028..295f18627 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,10 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), - 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), - 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); - //pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; From a705deb60c8344603907232d5b46496254674960 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:11:56 -0600 Subject: [PATCH 48/73] Trying to fix runtime error --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 295f18627..c7fd36aa3 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,10 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.Position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), + 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), + 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); + //pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; From 32a391c6a4a0371b9394b11dac2b5afde8911e07 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:19:52 -0600 Subject: [PATCH 49/73] Trying to fix runtime error --- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 1 - 1 file changed, 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 0bd73c60d..11c191ee0 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,7 +27,6 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" -#include "larcorealg/Geometry/geo_vectors_utils.h" #include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ From 48ef455e43cbf4dfb2e56ae1d215ce54cab1d40f Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:28:23 -0600 Subject: [PATCH 50/73] Revert "Trying to fix runtime error" This reverts commit 32a391c6a4a0371b9394b11dac2b5afde8911e07. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 11c191ee0..0bd73c60d 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,6 +27,7 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" +#include "larcorealg/Geometry/geo_vectors_utils.h" #include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ From 2f7a877ea3d2cfdeb354739c7fe6a2e47afb6515 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:28:38 -0600 Subject: [PATCH 51/73] :q Revert "Trying to fix runtime error" This reverts commit a705deb60c8344603907232d5b46496254674960. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index c7fd36aa3..295f18627 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,10 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.Position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), - 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), - 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); - //pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; From b5e00dc32616428c854c3efb3d29d49ac1ad6f0f Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:28:58 -0600 Subject: [PATCH 52/73] Revert "Trying to fix runtime error" This reverts commit a4b6724298033e27560939c053fa751489f229bb. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 295f18627..7ccf79028 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,10 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), + 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), + 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); + //pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; From 4dfcb26dfb37117ea82c1e0b1d498d7874fa2959 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:00 -0600 Subject: [PATCH 53/73] Revert "Trying to fix runtime error" This reverts commit 33bb8a3b5c77e574c6e4a849bd888c30d2994f94. --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 1 - sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index ec9150eb7..ba6151d64 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -72,7 +72,6 @@ #include #include #include -#include typedef std::map>> CTPMap_t; typedef std::map> CTMap_t; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 7ccf79028..295f18627 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,10 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), - 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), - 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); - //pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; From bb4f59a5b223d9146cdb1d9fa7946ef2791018ba Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:12 -0600 Subject: [PATCH 54/73] Revert "fix typo" This reverts commit d49df9d6290e31f997cbf2de9416512b8153f910. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 295f18627..2fa377d56 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,9 +155,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.Position.X(), - w1*tblip.Position.Y() + w2*pinfo.Position.Y(), - w1*tblip.Position.Z() + w2*pinfo.Position.Z()); + tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), + w1*tblip.Position.Y() + w2*pinfo.position.Y(), + w1*tblip.Position.Z() + w2*pinfo.position.Z()); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over @@ -206,9 +206,11 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - blip_i.Position.SetXYZ( w1*blip_i.Position.X() + w2*blip_j.Position.X(), - w1*blip_i.Position.Y() + w2*blip_j.Position.Y(), - w1*blip_i.Position.Z() + w2*blip_j.Position.Z()); + geo::vect::MiddlePointAccumulator mpalg; + mpalg.add(&blip_i.Position, w1); + mpalg.add(&blip_j.Position, w2); + blip_i.Position = mpalg.middlePoint(); + mpalg.clear(); blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; blip_i.Time = w1*blip_i.Time + w2*blip_j.Time; blip_i.DepElectrons += blip_j.DepElectrons; From 378d685e7b6899a83090569e86306fe28f4f874e Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:13 -0600 Subject: [PATCH 55/73] Revert "throw out accumulator" This reverts commit 612a577764a2dc026f1166866aa836f24cf2a688. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 2fa377d56..7b783470e 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,9 +155,10 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), - w1*tblip.Position.Y() + w2*pinfo.position.Y(), - w1*tblip.Position.Z() + w2*pinfo.position.Z()); + geo::vect::MiddlePointAccumulator mpalg; + mpalg.add(&tblip.Position, w1); + mpalg.add(&pinfo.Position, w2); + tblip.Position = mpalg.middlePoint(); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over From bc843e77585fc62a1abeb25f8948e3428f9837c6 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:14 -0600 Subject: [PATCH 56/73] Revert "these accumulator are not being nice" This reverts commit 1b10ce549e2efcccea9f2317ae09ad0d26e7a18b. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 7b783470e..ef3769323 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,9 +155,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - geo::vect::MiddlePointAccumulator mpalg; - mpalg.add(&tblip.Position, w1); - mpalg.add(&pinfo.Position, w2); + geo::vect::MiddlePointAccumulator<3U> mpalg; + mpalg.add(tblip.Position, w1); + mpalg.add(pinfo.Position, w2); tblip.Position = mpalg.middlePoint(); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; @@ -207,9 +207,9 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - geo::vect::MiddlePointAccumulator mpalg; - mpalg.add(&blip_i.Position, w1); - mpalg.add(&blip_j.Position, w2); + geo::vect::MiddlePointAccumulator<3U> mpalg; + mpalg.add(blip_i.Position, w1); + mpalg.add(blip_j.Position, w2); blip_i.Position = mpalg.middlePoint(); mpalg.clear(); blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; From 104e1accf6866dcd2353ed87c99b09c2c9ec4d04 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:14 -0600 Subject: [PATCH 57/73] Revert "Don't know how to initilize correctly" This reverts commit 10e49161ae66c4b2f00afc30bfe36d356424a867. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index ef3769323..9e2953892 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -155,7 +155,7 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - geo::vect::MiddlePointAccumulator<3U> mpalg; + geo::vect::MiddlePointAccumulator mpalg; mpalg.add(tblip.Position, w1); mpalg.add(pinfo.Position, w2); tblip.Position = mpalg.middlePoint(); @@ -207,7 +207,7 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - geo::vect::MiddlePointAccumulator<3U> mpalg; + geo::vect::MiddlePointAccumulator mpalg; mpalg.add(blip_i.Position, w1); mpalg.add(blip_j.Position, w2); blip_i.Position = mpalg.middlePoint(); From 5ce9ad2869b3289d5e53a62beb03c969c0a75656 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:15 -0600 Subject: [PATCH 58/73] Revert "missed a line" This reverts commit c78d55dd43fc834cbcf3223ea9e5f29648e40f10. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 9e2953892..7f7e25971 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -430,6 +430,7 @@ namespace BlipUtils { } else { newblip.SigmaYZ = 0; double fact = 1./wirex.size(); + position.add(wirex.begin(), wirex.end()); for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, newblip.Position.Y() + v.Y() * fact, newblip.Position.Z() + v.Z() * fact); From 4502f767d674bfbb7e36e2d3961e5ea451eae2b6 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:15 -0600 Subject: [PATCH 59/73] Revert "Removed iterator again" This reverts commit e627109e746ba41a011d8dac24d9b99cada30922. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 7f7e25971..81cb22c98 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -429,11 +429,10 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - double fact = 1./wirex.size(); + geo::vect::MiddlePointAccumulator position; position.add(wirex.begin(), wirex.end()); - for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, - newblip.Position.Y() + v.Y() * fact, - newblip.Position.Z() + v.Z() * fact); + newblip.Position = position.middlePoint(); + double fact = 1./wirex.size(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + pow(v.Y()-newblip.Position.Y(), 2) + pow(v.Z()-newblip.Position.Z(), 2)) * fact; From 6267b1e8013988112c03228cc3bee1899f1e03a6 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:15 -0600 Subject: [PATCH 60/73] Revert "put it back" This reverts commit 87ca9dc8eea16468c788dcff83265c60097e5602. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 81cb22c98..bc2c3536f 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -430,7 +430,7 @@ namespace BlipUtils { } else { newblip.SigmaYZ = 0; geo::vect::MiddlePointAccumulator position; - position.add(wirex.begin(), wirex.end()); + for(auto& v : wirex ) position.add(v); newblip.Position = position.middlePoint(); double fact = 1./wirex.size(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + From 50dba79ca69a5a95901bb25fd10e4169ec78b8ae Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:16 -0600 Subject: [PATCH 61/73] Revert "gave up on iterator" This reverts commit c44a0cff672504d46e62533d24d771d2ca285693. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index bc2c3536f..4a220e41e 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -429,8 +429,8 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - geo::vect::MiddlePointAccumulator position; - for(auto& v : wirex ) position.add(v); + geo::vect::MiddlePointAccumulatorDim position; + position.add(begin(wirex), end(wirex)); newblip.Position = position.middlePoint(); double fact = 1./wirex.size(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + From 296d8d1908a35ded3d402f02d651865e8ca37ee3 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:16 -0600 Subject: [PATCH 62/73] Revert "trying a different accumulator" This reverts commit 39745f4e7c795f5933fc5ac5bac3b82757ce6a0a. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 4a220e41e..06ed4c615 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -429,7 +429,7 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - geo::vect::MiddlePointAccumulatorDim position; + geo::vect::MiddlePointAccumulator position; position.add(begin(wirex), end(wirex)); newblip.Position = position.middlePoint(); double fact = 1./wirex.size(); From 4a69c2b41e0123737af524608ea0a34cd312ce08 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:16 -0600 Subject: [PATCH 63/73] Revert "swap one more tvector3 for geo::point_t" This reverts commit 5d1cc286ffe24a024a382139b8a4d370ffe8b782. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 06ed4c615..317ed987a 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -382,7 +382,7 @@ namespace BlipUtils { // ------------------------------------------------ /// Look for valid wire intersections between // central-most hits in each cluster - std::vector wirex; + std::vector wirex; for(size_t i=0; iGet().Plane(geo::PlaneID{(unsigned int)hcs[i].Cryostat, (unsigned int)hcs[i].TPC, (unsigned int)hcs[i].Plane}); @@ -411,7 +411,7 @@ namespace BlipUtils { } if( match3d ) { - geo::Point_t a{0., intsec_p.Y(), intsec_p.Z()}; + TVector3 a(0., intsec_p.Y(), intsec_p.Z()); wirex.push_back(a); newblip.clusters[pli] = hcs[i]; newblip.clusters[plj] = hcs[j]; From 1d49586f5c6820f25486e4f28983eb50291d6817 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:17 -0600 Subject: [PATCH 64/73] Revert "thanks compiler" This reverts commit c41582b0516d8874b132ac1b04bacaebe4fb6934. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 317ed987a..bc6965e5f 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -432,7 +432,6 @@ namespace BlipUtils { geo::vect::MiddlePointAccumulator position; position.add(begin(wirex), end(wirex)); newblip.Position = position.middlePoint(); - double fact = 1./wirex.size(); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + pow(v.Y()-newblip.Position.Y(), 2) + pow(v.Z()-newblip.Position.Z(), 2)) * fact; From 361f09e6016742a708578f18689e5c4fb18d64de Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:17 -0600 Subject: [PATCH 65/73] Revert "made pinfo position have a capital like all other blip positions" This reverts commit be7a13bc6a5128a6e4b8b683f09bd388c239a6b9. --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index bc6965e5f..0928b9f29 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; @@ -145,7 +145,7 @@ namespace BlipUtils { // If this is a new blip, initialize if( !tblip.G4ChargeMap.size() ) { - tblip.Position = pinfo.Position; + tblip.Position = pinfo.position; tblip.Time = pinfo.time; // .. otherwise, check that the new particle From dc54a8eb858f48823e2dbe7fbe6597cf5831fc76 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:17 -0600 Subject: [PATCH 66/73] Revert "typo in include" This reverts commit eae9be385c29094993afaf130aade036bf8bd2cf. --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 1 - sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index ba6151d64..1851ae4b9 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -38,7 +38,6 @@ #include "larcore/Geometry/Geometry.h" #include "larcorealg/Geometry/WireReadoutGeom.h" #include "larcorealg/Geometry/GeometryCore.h" -#include "larcorealg/Geometry/geo_vectors_utils.h" #include "larreco/Calorimetry/CalorimetryAlg.h" #include "art/Framework/Principal/Event.h" #include "larcore/Geometry/WireReadout.h" diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 0bd73c60d..c272d730e 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,7 +27,7 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" -#include "larcorealg/Geometry/geo_vectors_utils.h" +#include "larcorealg/Geometry/geo_vector_utils.h" #include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ From 92d3f007a44db6179a16c9a71bfe19219b58ad23 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:43 -0600 Subject: [PATCH 67/73] Revert "Merge branch 'develop' into feature/AddingBlipToCAF" This reverts commit 774ebe27b049f9eb6e98068ec2b84a7ce090bf07, reversing changes made to c67ed6319564347bf68931f188966f0f2574e766. --- CMakeLists.txt | 2 +- .../calibration_database_PDS_TagSets_sbnd.fcl | 4 +- sbndcode/Decoders/PMT/pmtdecoder.fcl | 2 +- .../gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl | 14 ----- .../standard/reco/config/workflow_reco2.fcl | 11 +--- .../standard/reco/reco2_data_blipwdnn.fcl | 10 ---- .../reco/reco2_data_singlerecobhit.fcl | 4 ++ .../standard/reco/reco2_mc_blipwdnn.fcl | 45 ---------------- .../standard/reco/reco2_mc_singlerecobhit.fcl | 4 ++ .../standard/standard_detsim_sbnd.fcl | 4 +- .../LArSoftConfigurations/gen/genie_sbnd.fcl | 4 +- .../opticalproperties_sbnd.fcl | 2 +- .../Alg/OpDeconvolutionAlgWienerData_tool.cc | 8 ++- .../job/opdeconvolution_sbnd.fcl | 2 + .../job/sbnd_flashfinder_deco.fcl | 52 +++++++++++++------ .../OpFlash/job/sbnd_driftestimatoralgo.fcl | 2 +- .../OpFlash/job/sbnd_flashgeoalgo.fcl | 46 +++------------- sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl | 2 +- sbndcode/OpDetSim/BeamRatesCalib_module.cc | 2 +- sbndcode/OpDetSim/DigiPMTSBNDAlg.hh | 4 ++ sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl | 2 +- .../TPCPMTBarycenterMatching_module.cc | 15 +++--- ...sbnd_tpcpmt3dbarycentermatching_config.fcl | 18 +++---- .../PMTSoftware/fcls/pmtmcmetricproducer.fcl | 5 +- test/GENIE/check_genie_geom_scan.py | 8 +-- ups/product_deps | 6 +-- 26 files changed, 98 insertions(+), 180 deletions(-) delete mode 100644 sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl delete mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl create mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl delete mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl create mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl diff --git a/CMakeLists.txt b/CMakeLists.txt index 403af95fe..cd192f906 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ cmake_minimum_required(VERSION 3.20 FATAL_ERROR) -set(${PROJECT_NAME}_CMAKE_PROJECT_VERSION_STRING 10.14.02) +set(${PROJECT_NAME}_CMAKE_PROJECT_VERSION_STRING 10.14.00.01) find_package(cetmodules REQUIRED) project(sbndcode LANGUAGES CXX) diff --git a/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl b/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl index b80cf8403..3721691ce 100644 --- a/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl +++ b/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl @@ -10,8 +10,8 @@ BEGIN_PROLOG # For SBND 2025 Fall production PDS_CalibrationTags_Nov2025: { - PMTCalibrationDatabaseTag: "v3r1" - DatabaseTimeStamp: 1765487620000000000 + PMTCalibrationDatabaseTag: "v2r1" + DatabaseTimeStamp: 1763157679000000000 } END_PROLOG \ No newline at end of file diff --git a/sbndcode/Decoders/PMT/pmtdecoder.fcl b/sbndcode/Decoders/PMT/pmtdecoder.fcl index ea2f7cc1b..421fe92a5 100644 --- a/sbndcode/Decoders/PMT/pmtdecoder.fcl +++ b/sbndcode/Decoders/PMT/pmtdecoder.fcl @@ -48,7 +48,7 @@ pmtdecoder: hist_evt: 1 # the # of the event used to generate the histograms, 1st event by default # trigger configurable - mon_threshold: 50 # ADC channel value threshold to add 1 to the trigger response MON pulse + mon_threshold: 15 # ADC channel value threshold to add 1 to the trigger response MON pulse # for when the fragIDs are mapped to the old configuration or you need to hardcode fragids... ## to use this, must set `fragid_offset` to 0!!! diff --git a/sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl b/sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl deleted file mode 100644 index 44d1f56e0..000000000 --- a/sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl +++ /dev/null @@ -1,14 +0,0 @@ -# Description: an override for the default SBND MPV/MPR generator that -# adds kaons (charged and neutral), lambdas, and the neutral sigma -# baryon to the MPV generator. -# Author: mueller@fnal.gov - -#include "run_mpvmpr_sbnd.fcl" - -physics.producers.generator.ParticleParameter.PDGCode : [[-11,11,-13,13], [111] , [211,-211], [2212] , [22] , [310] , [321,-321] , [3212,3122] ] -physics.producers.generator.ParticleParameter.MinMulti : [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] -physics.producers.generator.ParticleParameter.MaxMulti : [ 1 , 2 , 2 , 4 , 2 , 1 , 1 , 1 ] -physics.producers.generator.ParticleParameter.ProbWeight : [ 3 , 1 , 1 , 3 , 1 , 1 , 1 , 1 ] -physics.producers.generator.ParticleParameter.KERange : [ [0.0,3.0] , [0.0,1.0] , [0.0,1.0] , [0.0,1.0] , [0.0,1.0] , [0.0,1.5] , [0.0,1.5] , [0.0,0.7] ] - -outputs.out1.fileName: "prodmpvmpr_exotics_sbnd_%p-%tc.root" \ No newline at end of file diff --git a/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl b/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl index f89f6fba0..167662ecc 100755 --- a/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl +++ b/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl @@ -53,8 +53,6 @@ sbnd_reco2_producers:{ ### SCE-aware pandora: pandoraSCE: @local::scecorrection pandoraSCETrack: @local::sbnd_pandoraTrackCreation - blipPandoraSCE: @local::scecorrection - blipPandoraSCETrack:@local::sbnd_pandoraTrackCreation pandoraSCEShower: @local::sbnd_sce_incremental_pandoraModularShowerCreation pandoraSCEShowerSBN: @local::sbnd_sce_sbn_pandoraModularShowerCreation @@ -79,8 +77,8 @@ sbnd_reco2_producers:{ fmatchoparaSCE: @local::sbnd_simple_flashmatch_opara_sce opt0finder: @local::sbnd_opt0_finder_one_to_many opt0finderSCE: @local::sbnd_opt0_finder_one_to_many - tpcpmtbarycentermatching: @local::TPCPMTBarycenterMatchProducerMC - tpcpmtbarycentermatchingSCE: @local::TPCPMTBarycenterMatchProducerSCEMC + tpcpmtbarycentermatching: @local::TPCPMTBarycenterMatchProducer + tpcpmtbarycentermatchingSCE: @local::TPCPMTBarycenterMatchProducerSCE ### Uncalibrated calorimetry producer for calibration caloskimmer caloskimCalorimetry: @local::caloskim_calorimetry @@ -194,15 +192,10 @@ sbnd_reco2_producers.opt0finderSCE.CaloProducer: "pandoraSCECalo" sbnd_reco2_producers.pandoraSCE.T0Labels: [] sbnd_reco2_producers.pandoraSCE.T0LabelsCorrectT0: [] sbnd_reco2_producers.pandoraSCE.CorrectNoT0Tag: true -sbnd_reco2_producers.blipPandoraSCE.T0Labels: [] -sbnd_reco2_producers.blipPandoraSCE.T0LabelsCorrectT0: [] -sbnd_reco2_producers.blipPandoraSCE.CorrectNoT0Tag: true # point track/shower creation to the SCE pandora sbnd_reco2_producers.pandoraSCETrack.PFParticleLabel: "pandoraSCE" sbnd_reco2_producers.pandoraSCEShower.PFParticleLabel: "pandoraSCE" sbnd_reco2_producers.pandoraSCEShowerSBN.PFParticleLabel: "pandoraSCE" -sbnd_reco2_producers.blipPandoraSCETrack.PFParticleLabel: "blipPandoraSCE" - sbnd_reco2_producers.crtspacepointmatchingSCE.TPCTrackModuleLabel: "pandoraSCETrack" sbnd_reco2_producers.crtspacepointmatchingSCE.PFPModuleLabel: "pandoraSCE" diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl deleted file mode 100644 index 7078c6c0a..000000000 --- a/sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl +++ /dev/null @@ -1,10 +0,0 @@ -#Nominal configuration uses dnn (ind) + trad (col) for hit finding. -#Blip requires trad (all) for hit finding. -#This fcl configures everything to use the nominal config (dnn + trad) - -#include "reco2_data.fcl" -physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" -physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" -physics.producers.blipreco.BlipAlg.TrkProducer: "pandoraSCETrack" -physics.analyzers.blipana.BlipAlg.TrkProducer: "pandoraSCETrack" -physics.reco2: [ pandora, pandoraTrack, pandoraShower, pandoraShowerSBN, pandoraCaloData, pandoraPidData, pandoraLikePidData, cvn, opt0finder, crtveto, crtspacepointmatching, crttrackmatching, tpcpmtbarycentermatching, pandoraSCE, pandoraSCETrack, pandoraSCEShower, pandoraSCEShowerSBN, pandoraSCECaloData, pandoraSCEPidData, pandoraSCELikePidData, cvnSCE, opt0finderSCE, tpcpmtbarycentermatchingSCE, crtspacepointmatchingSCE, crttrackmatchingSCE, caloskimCalorimetry, blipreco, lightpropagationcorrectionSCE, frameshift] diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl new file mode 100644 index 000000000..a719e5df4 --- /dev/null +++ b/sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl @@ -0,0 +1,4 @@ +#include "reco2_data.fcl" +physics.producers.blipPandoraCopy.HitFinderModuleLabel: "gaushit" +physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" +physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" \ No newline at end of file diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl deleted file mode 100644 index abf5e9357..000000000 --- a/sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl +++ /dev/null @@ -1,45 +0,0 @@ -#Nominal configuration uses dnn (ind) + trad (col) for hit finding. -#Blip requires trad (all) for hit finding. -#This fcl configures everything to use the nominal config (dnn + trad) - -#include "standard_reco2_sbnd.fcl" -physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" -physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" -physics.producers.blipreco.BlipAlg.TrkProducer: "pandoraSCETrack" -physics.analyzers.blipana.BlipAlg.TrkProducer: "pandoraSCETrack" -physics.reco2: [ rns - , pandora - , pandoraTrack - , blipPandoraCopy - , blipPandoraTrackCopy - , pandoraShower - , pandoraShowerSBN - , pandoraCalo - , pandoraPid - , pandoraLikePid - , crtveto - , crtspacepointmatching - , crttrackmatching - , fmatch - , fmatchop - , caloskimCalorimetry - , opt0finder - , tpcpmtbarycentermatching - , pandoraSCE - , pandoraSCETrack - , pandoraSCEShower - , pandoraSCEShowerSBN - , pandoraSCECalo - , pandoraSCEPid - , pandoraSCELikePid - , crtspacepointmatchingSCE - , crttrackmatchingSCE - , fmatchSCE - , fmatchopSCE - , opt0finderSCE - , tpcpmtbarycentermatchingSCE - , cvn - , cvnSCE - , blipreco - ] -physics.trigger_paths: [ reco2 ] \ No newline at end of file diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl new file mode 100644 index 000000000..ed38ff261 --- /dev/null +++ b/sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl @@ -0,0 +1,4 @@ +#include "standard_reco2_sbnd.fcl" +physics.producers.blipPandoraCopy.HitFinderModuleLabel: "gaushit" +physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" +physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" diff --git a/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl b/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl index e9ab0fff7..2dabe25f4 100755 --- a/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl +++ b/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl @@ -68,12 +68,12 @@ physics: simtpc2d: @local::sbnd_wcls_simsp_bothrois crtsim: @local::sbnd_crtsim opdaq: @local::sbnd_opdetdigitizer - pmtpulseoscillation: @local::sbnd_pmtpulseoscillation pmtmetricmc: @local::sbnd_pmtmcmetricproducer + pmtpulseoscillation: @local::sbnd_pmtpulseoscillation } #define the producer and filter modules for this path, order matters, - simulate: [rns, simtpc2d, crtsim, opdaq, pmtpulseoscillation, pmtmetricmc] + simulate: [rns, simtpc2d, crtsim, opdaq, pmtmetricmc, pmtpulseoscillation] #define the output stream, there could be more than one if using filters stream1: [ out1 ] diff --git a/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl b/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl index 7e3d8fabc..61bddbc90 100644 --- a/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl +++ b/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl @@ -236,7 +236,7 @@ sbnd_flux_g4bnb_1_0_0_fhc: { FluxType: "dk2nu" DetectorLocation: "SBND" FluxCopyMethod: "DIRECT" - FluxSearchPaths: "/cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.1/fhc/a/" + FluxSearchPaths: "/cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.0/fhc/a/" FluxFiles: [ "NuBeam_production_BooNE_50m_I174000A_*.dk2nu.root" ] } @@ -385,7 +385,7 @@ sbnd_genie_simple_rockbox: { # As we are changing the FV we need to recalculate the maximum path lengths # This file was generated by running with: # GeomScan: "flux: 10000 1.1 1" - GeomScan: "file: GENIE/sbnd_rock_maxpathlength_fluxG4v1.1.1_gdmlv02_06.xml" + GeomScan: "file: GENIE/sbnd_rock_maxpathlength_fluxG4_gdmlv02_06.xml" } # Rotated bucket configuration diff --git a/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl b/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl index 0048cc354..ba677dd9c 100644 --- a/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl +++ b/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl @@ -30,7 +30,7 @@ sbnd_opticalproperties: { # ScintPreScale MUST be equal/larger than the largest detection efficiency applied at DetSim stage # This corresponds to the coated PMTs detection efficiency (3.9% see docdb-40444) # See sbndcode/OpDetSim/digi_pmt_sbnd.fcl - ScintPreScale: 0.0392 + ScintPreScale: 0.039 EnableCerenkovLight: false # Cerenkov light OFF by default diff --git a/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc b/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc index 134183f30..d33cc57ee 100644 --- a/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc +++ b/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc @@ -51,6 +51,7 @@ class opdet::OpDeconvolutionAlgWiener : opdet::OpDeconvolutionAlg { std::vector fSinglePEWave; std::vector fSinglePEChannels; std::vector fPeakAmplitude; + std::vector fSkipChannelList; bool fPositivePolarity; bool fUseSaturated; int fADCSaturationValue; @@ -128,6 +129,7 @@ opdet::OpDeconvolutionAlgWiener::OpDeconvolutionAlgWiener(fhicl::ParameterSet co fPMTChargeToADC = p.get< double >("PMTChargeToADC"); fDecoWaveformPrecision = p.get< double >("DecoWaveformPrecision"); fBaselineSample = p.get< short unsigned int >("BaselineSample"); + fSkipChannelList = p.get< std::vector>("SkipChannelList"); fFilter = p.get< std::string >("Filter"); fElectronics = p.get< std::string >("Electronics"); fDaphne_Freq = p.get< double >("DaphneFreq"); @@ -171,9 +173,11 @@ std::vector opdet::OpDeconvolutionAlgWiener::RunDeconvolutio { std::vector wfDeco; wfDeco.reserve(wfVector.size()); - for(auto const& wf : wfVector){ + for(auto const& wf : wfVector) + { int channelNumber = wf.ChannelNumber(); - if(fPMTCalibrationDatabaseService->getReconstructChannel(channelNumber)) { + auto it = std::find(fSkipChannelList.begin(), fSkipChannelList.end(), channelNumber); + if (it == fSkipChannelList.end()) { fSinglePEWave = fPMTCalibrationDatabaseService->getSER(channelNumber); double SPEAmplitude = fPMTCalibrationDatabaseService->getSPEAmplitude(channelNumber); double SPEPeakValue = *std::max_element(fSinglePEWave.begin(), fSinglePEWave.end(), [](double a, double b) {return std::abs(a) < std::abs(b);}); diff --git a/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl b/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl index 71bf626cb..0d7790bf5 100644 --- a/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl +++ b/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl @@ -34,6 +34,7 @@ SBNDOpDeconvolutionPMT_data.Electronics: [""] SBNDOpDeconvolutionPMT_data.OpDecoAlg.OpDetDataFile: "./OpDetSim/digi_pmt_sbnd_data_OV6.root" SBNDOpDeconvolutionPMT_data.OpDecoAlg.Filter: "(x>0)*exp(-0.5*pow(x/[0],[1]))" #Gauss filter, remove DC component F(0)=0 SBNDOpDeconvolutionPMT_data.OpDecoAlg.DecoWaveformPrecision: 0.005 +SBNDOpDeconvolutionPMT_data.OpDecoAlg.SkipChannelList: [39, 66, 67, 71, 85, 86, 87, 92, 115, 138, 141, 170, 197, 217, 218, 221, 222, 223, 226, 245, 248, 249, 302] ###### PMT REALISTIC MC ###### @@ -45,6 +46,7 @@ SBNDOpDeconvolutionPMT_realisticMC.Electronics: [""] SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.OpDetDataFile: "./OpDetSim/digi_pmt_sbnd_data_OV6.root" SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.Filter: "(x>0)*exp(-0.5*pow(x/[0],[1]))" #Gauss filter, remove DC component F(0)=0 SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.DecoWaveformPrecision: 0.005 +SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.SkipChannelList: [39, 66, 67, 71, 85, 86, 87, 92, 115, 138, 141, 170, 197, 217, 218, 221, 222, 223, 226, 245, 248, 249, 302] ###### XA IDEAL MC ###### diff --git a/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl b/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl index e83ffdbbb..610e9c818 100644 --- a/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl +++ b/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl @@ -28,37 +28,57 @@ SBNDDecoSimpleFlashTPC1.CorrectLightPropagation: true ###### PMT DATA ###### ###TPC0 -SBNDDecoSimpleFlashTPC0_data: @local::SBNDDecoSimpleFlashTPC0 -SBNDDecoSimpleFlashTPC0_data.ReadoutDelay: 0 //cable time delay in us +SBNDDecoSimpleFlashTPC0_data: @local::SBNDSimpleFlashTPC0 SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.DataCalibration: true -SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2_tpc0.root" -SBNDDecoSimpleFlashTPC0_data.FlashGeoConfig: @local::FlashGeoThresholdTPC0Data +SBNDDecoSimpleFlashTPC0_data.PECalib.SPEAreaGain: 200 +SBNDDecoSimpleFlashTPC0_data.OpHitProducers: ["ophitpmt"] +SBNDDecoSimpleFlashTPC0_data.OpHitInputTime: "RiseTime" +SBNDDecoSimpleFlashTPC0_data.UseT0Tool: true +SBNDDecoSimpleFlashTPC0_data.ReadoutDelay: 0 //cable time delay in us +SBNDDecoSimpleFlashTPC0_data.CorrectLightPropagation: true +SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2.root" #TPC1 -SBNDDecoSimpleFlashTPC1_data: @local::SBNDDecoSimpleFlashTPC1 -SBNDDecoSimpleFlashTPC1_data.ReadoutDelay: 0 //cable time delay in us +SBNDDecoSimpleFlashTPC1_data: @local::SBNDSimpleFlashTPC1 SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.DataCalibration: true -SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2_tpc1.root" -SBNDDecoSimpleFlashTPC1_data.FlashGeoConfig: @local::FlashGeoThresholdTPC1Data +SBNDDecoSimpleFlashTPC1_data.PECalib.SPEAreaGain: 200 +SBNDDecoSimpleFlashTPC1_data.OpHitProducers: ["ophitpmt"] +SBNDDecoSimpleFlashTPC1_data.OpHitInputTime: "RiseTime" +SBNDDecoSimpleFlashTPC1_data.UseT0Tool: true +SBNDDecoSimpleFlashTPC1_data.ReadoutDelay: 0 //cable time delay in us +SBNDDecoSimpleFlashTPC1_data.CorrectLightPropagation: true ###### PMT REALISTIC MC ###### ###TPC0 -SBNDDecoSimpleFlashTPC0_realisticMC: @local::SBNDDecoSimpleFlashTPC0_data -SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root" -SBNDDecoSimpleFlashTPC0_realisticMC.ReadoutDelay: 0. //cable time delay in us -SBNDDecoSimpleFlashTPC0_realisticMC.FlashGeoConfig: @local::FlashGeoThresholdTPC0_realisticMC +SBNDDecoSimpleFlashTPC0_realisticMC: @local::SBNDSimpleFlashTPC0 +SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" +SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.DataCalibration: true +SBNDDecoSimpleFlashTPC0_realisticMC.PECalib.SPEAreaGain: 200 +SBNDDecoSimpleFlashTPC0_realisticMC.OpHitProducers: ["ophitpmt"] +SBNDDecoSimpleFlashTPC0_realisticMC.OpHitInputTime: "RiseTime" +SBNDDecoSimpleFlashTPC0_realisticMC.UseT0Tool: true +SBNDDecoSimpleFlashTPC0_realisticMC.ReadoutDelay: 0 //cable time delay in us +SBNDDecoSimpleFlashTPC0_realisticMC.CorrectLightPropagation: true +SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root" #TPC1 -SBNDDecoSimpleFlashTPC1_realisticMC: @local::SBNDDecoSimpleFlashTPC1_data -SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root" -SBNDDecoSimpleFlashTPC1_realisticMC.ReadoutDelay: 0. //cable time delay in us -SBNDDecoSimpleFlashTPC1_realisticMC.FlashGeoConfig: @local::FlashGeoThresholdTPC1_realisticMC +SBNDDecoSimpleFlashTPC1_realisticMC: @local::SBNDSimpleFlashTPC1 +SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" +SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.DataCalibration: true +SBNDDecoSimpleFlashTPC1_realisticMC.PECalib.SPEAreaGain: 200 +SBNDDecoSimpleFlashTPC1_realisticMC.OpHitProducers: ["ophitpmt"] +SBNDDecoSimpleFlashTPC1_realisticMC.OpHitInputTime: "RiseTime" +SBNDDecoSimpleFlashTPC1_realisticMC.UseT0Tool: true +SBNDDecoSimpleFlashTPC1_realisticMC.ReadoutDelay: 0 //cable time delay in us +SBNDDecoSimpleFlashTPC1_realisticMC.CorrectLightPropagation: true +SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root" ###### XA IDEAL MC ###### + ####OpFlash finder for XArapucas deconvolved waveforms##### ###TPC0 SBNDDecoSimpleFlashTPC0Arapuca: @local::SBNDSimpleFlashTPC0 diff --git a/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl b/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl index bdb1fcbaa..38b8a9f67 100644 --- a/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl +++ b/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl @@ -5,7 +5,7 @@ BEGIN_PROLOG DriftEstimatorPMTRatio: { tool_type: "DriftEstimatorPMTRatio" - CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root" + CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root" VGroupVUV: @local::sbnd_vuv_timing_parameterization.vuv_vgroup_mean VGroupVIS: @local::sbnd_vis_timing_parameterization.vis_vmean DataCalibration: true diff --git a/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl b/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl index 018bb0e94..18051a4c2 100644 --- a/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl +++ b/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl @@ -1,51 +1,17 @@ BEGIN_PROLOG -FlashGeoBarycenter:{ +FlashGeoBarycenter: +{ tool_type: "FlashGeoBarycenter" WeightExp: 2 } -FlashGeoThreshold:{ +FlashGeoThreshold: +{ tool_type: "FlashGeoThreshold" PDTypes: ["pmt_coated", "pmt_uncoated"] - ThresholdY: 0.8 - ThresholdZ: 0.8 - NormalizeByPDType: true - WeightExp: 2 -} - -FlashGeoThresholdTPC0Data:{ - tool_type: "FlashGeoThreshold" - PDTypes: ["pmt_coated"] - ThresholdY: 0.5 - ThresholdZ: 0.5 - NormalizeByPDType: true - WeightExp: 2 -} - -FlashGeoThresholdTPC1Data:{ - tool_type: "FlashGeoThreshold" - PDTypes: ["pmt_coated"] - ThresholdY: 0.5 - ThresholdZ: 0.5 - NormalizeByPDType: true - WeightExp: 2 -} - -FlashGeoThresholdTPC0_realisticMC:{ - tool_type: "FlashGeoThreshold" - PDTypes: ["pmt_coated"] - ThresholdY: 0.7 - ThresholdZ: 0.7 - NormalizeByPDType: true - WeightExp: 2 -} - -FlashGeoThresholdTPC1_realisticMC:{ - tool_type: "FlashGeoThreshold" - PDTypes: ["pmt_coated"] - ThresholdY: 0.6 - ThresholdZ: 0.6 + ThresholdY: 0.75 + ThresholdZ: 0.45 NormalizeByPDType: true WeightExp: 2 } diff --git a/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl b/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl index eb457716d..6e6a4bad2 100644 --- a/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl +++ b/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl @@ -19,7 +19,7 @@ BeamRatesCalib: # Save some example trigger pulses for each flash (TH1D similar to wvfana) SaveAllMon: true # The MON threshold used in the saved TH1D examples - FCLthreshold: 50 + FCLthreshold: 25 # PMT index corresponding to the opening of the beam acceptance BeamWindowEnd # Note that BeamWindowStart should not account for MTC/A wire+processing delays # Those are handled by CAENOffset diff --git a/sbndcode/OpDetSim/BeamRatesCalib_module.cc b/sbndcode/OpDetSim/BeamRatesCalib_module.cc index b4fd79b84..a73fa78b6 100755 --- a/sbndcode/OpDetSim/BeamRatesCalib_module.cc +++ b/sbndcode/OpDetSim/BeamRatesCalib_module.cc @@ -200,7 +200,7 @@ namespace opdet { //OpDet means optical detector fBeamWindowEnd = p.get("BeamWindowEnd", 1688+680); fSaveAllMON = p.get("SaveAllMon", false); fCheckTriggers = p.get("CheckHardwareTriggers", false); //Needs MTCA LLT to be digitized which is unusual (run 15670) - fFCLthreshold = p.get("FCLthreshold", 50); + fFCLthreshold = p.get("FCLthreshold", 15); fOpDetsToPlot = p.get >("OpDetsToPlot"); fCheckSoftTrig = p.get("CheckSoftTrig", false); fSoftTrigLabel = p.get("SoftTrigLabel", "pmtmetricproducer:"); diff --git a/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh b/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh index 25b714a41..7a7d7bcd0 100644 --- a/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh +++ b/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh @@ -81,6 +81,8 @@ namespace opdet { bool MakeGainFluctuations; //Fluctuate PMT gain fhicl::ParameterSet GainFluctuationsParams; bool SimulateNonLinearity; //Fluctuate PMT gain + bool PositivePolarity; + bool OscillateAfterPulse; bool UseDataNoise; fhicl::ParameterSet NonLinearityParams; @@ -133,6 +135,8 @@ namespace opdet { return fParams.PMTBaseline; } + void AddOscillationAfterPulse( std::vector& wave); + private: ConfigurationParameters_t fParams; diff --git a/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl b/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl index ebc8ad62e..c26eb170c 100755 --- a/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl +++ b/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl @@ -14,7 +14,7 @@ sbnd_opdetdigitizer: ApplyTriggers: true #optional ticksPerSlice: 5000 # corresponds to 10us PercentTicksBeforeCross: 0.2 - MonThreshold: 50 + MonThreshold: 15 PairMultiplicityThreshold: 4 @table::sbnd_digipmt_alg diff --git a/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc b/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc index e9ee7beb9..70fea3aa7 100644 --- a/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc +++ b/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc @@ -232,9 +232,8 @@ class TPCPMTBarycenterMatchProducer : public art::EDProducer { double fDistanceCandidateFlashes; ///< Maximum distance between candidate flashes to be considered for matching (cm) std::vector fCalAreaConst; /// Calibration area constants for wire plane std::vector fSkipChannelList; - double fOpDetCoVUVEff; // Efficiencies for PMT detection (Coated PMT VUV) - double fOpDetCoVISEff; // Efficiencies for PMT detection (Coated PMT VIS) - double fOpDetUncoVISEff; // Efficiencies for PMT detection (Uncoated PMT VIS) + double fOpDetVUVEff; // Efficiencies for PMT detection + double fOpDetVISEff; // Efficiencies for PMT detection bool fVerbose; ///< Print extra info bool fFillMatchTree; ///< Fill an output TTree in the supplemental file bool fDo3DMatching; ///< Wether to perform the matching in 3D or 2D @@ -305,9 +304,8 @@ TPCPMTBarycenterMatchProducer::TPCPMTBarycenterMatchProducer(fhicl::ParameterSet fCollectionOnly(p.get("CollectionOnly", true)), fDistanceCandidateFlashes(p.get("DistanceCandidateFlashes")), // cm fCalAreaConst(p.get>("CalAreaConst")), - fOpDetCoVUVEff (p.get("OpDetCoVUVEff")), - fOpDetCoVISEff (p.get("OpDetCoVISEff")), - fOpDetUncoVISEff (p.get("OpDetUncoVISEff")), + fOpDetVUVEff (p.get("OpDetVUVEff")), + fOpDetVISEff (p.get("OpDetVISEff")), fVerbose(p.get("Verbose")), fFillMatchTree(p.get("FillMatchTree")), fDo3DMatching(p.get("Do3DMatching")), @@ -893,10 +891,11 @@ double TPCPMTBarycenterMatchProducer::GetFlashLight(double flash_pe, std::vector for(size_t ch=0; ch gdml version:', gdml_version) -print('\t -> flux configuration:', flux_config) +#print('\t -> flux configuration:', flux_config) # # Check that the two are the same, if not, need to regenerate the GeomScan file # message = 'Please regenerate the GeomScan file. Instructions are in fcl file make_genie_geomscan_file_sbnd.fcl.' -assert geom_scan_flux_config == flux_config, f"Have you updated/changed the flux files? {message}" +#assert geom_scan_flux_config == flux_config, f"Have you updated/changed the flux files? {message}" assert geom_scan_gdml_version == gdml_version, f"Have you updated/changed the GDML file? {message}" diff --git a/ups/product_deps b/ups/product_deps index 2938e2336..8527c3080 100644 --- a/ups/product_deps +++ b/ups/product_deps @@ -253,9 +253,9 @@ wpdir product_dir wire-cell-cfg # #################################### product version qual flags -sbncode v10_14_02 - +sbncode v10_14_00 - cetmodules v3_24_01 - only_for_build -sbnd_data v01_41_00 - +sbnd_data v01_38_00 - sbndutil v10_06_01 - optional fhiclpy v4_03_05 - end_product_list @@ -326,7 +326,7 @@ end_qualifier_list #################################### table_fragment_begin # currently, XML pandora files are installed in 'scripts': - pathPrepend(GDK2NUFLUXXML, /cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/GNuMIFlux.xml) + pathPrepend(GDK2NUFLUXXML, /cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.0/GNuMIFlux.xml) pathPrepend(FW_SEARCH_PATH, ${SBNDCODE_DIR}/scripts) pathPrepend(FW_SEARCH_PATH, ${SBND_DATA_DIR}/CalibrationDatabase) pathPrepend(FW_SEARCH_PATH, /cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash) From b93b540f1f9416805ede5ea78eb79f373ff46c69 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:29:53 -0600 Subject: [PATCH 68/73] Revert "Removed some tvector3 dependencies" This reverts commit c67ed6319564347bf68931f188966f0f2574e766. --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 28 +++++++++++----------- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 1 - sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 1 + 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index c68706d33..d013f778c 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1072,7 +1072,7 @@ namespace blip { TVector3 p2(b.X(), b.Y(), b.Z() ); // TO-DO: if this track starts or ends at a TPC boundary, // we should extend p1 or p2 to outside the AV to avoid blind spots - TVector3 bp = geo::vect::convertTo(newBlip.Position); + TVector3 bp(newBlip.Position.X(), newBlip.Position.Y(), newBlip.Position.Z()); float d = BlipUtils::DistToLine(p1,p2,bp); if( d > 0 ) { // update closest trkdist diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 0928b9f29..d0afdea48 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,9 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); + pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), + 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), + 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; @@ -155,10 +157,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - geo::vect::MiddlePointAccumulator mpalg; - mpalg.add(tblip.Position, w1); - mpalg.add(pinfo.Position, w2); - tblip.Position = mpalg.middlePoint(); + tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), + w1*tblip.Position.Y() + w2*pinfo.position.Y(), + w1*tblip.Position.Z() + w2*pinfo.position.Z()); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over @@ -199,7 +200,7 @@ namespace BlipUtils { // check that the times are similar (we don't want to merge // together a blip that happened much later but in the same spot) if( fabs(blip_i.Time - blip_j.Time) > 5 ) continue; - float d = (blip_i.Position-blip_j.Position).R(); //Size of vector spanning two blips + float d = TMath::Sqrt((blip_i.Position-blip_j.Position).Mag2()); if( d < dmin ) { isGrouped.at(j) = true; //float totE = blip_i.Energy + blip_j.Energy; @@ -207,11 +208,9 @@ namespace BlipUtils { float w1 = blip_i.DepElectrons/totQ; float w2 = blip_j.DepElectrons/totQ; blip_i.Energy += blip_j.Energy; - geo::vect::MiddlePointAccumulator mpalg; - mpalg.add(blip_i.Position, w1); - mpalg.add(blip_j.Position, w2); - blip_i.Position = mpalg.middlePoint(); - mpalg.clear(); + blip_i.Position.SetXYZ( w1*blip_i.Position.X() + w2*blip_j.Position.X(), + w1*blip_i.Position.Y() + w2*blip_j.Position.Y(), + w1*blip_i.Position.Z() + w2*blip_j.Position.Z()); blip_i.DriftTime = w1*blip_i.DriftTime+ w2*blip_j.DriftTime; blip_i.Time = w1*blip_i.Time + w2*blip_j.Time; blip_i.DepElectrons += blip_j.DepElectrons; @@ -429,9 +428,10 @@ namespace BlipUtils { newblip.Position = wirex[0]; } else { newblip.SigmaYZ = 0; - geo::vect::MiddlePointAccumulator position; - position.add(begin(wirex), end(wirex)); - newblip.Position = position.middlePoint(); + double fact = 1./wirex.size(); + for(auto& v : wirex ) newblip.Position.SetXYZ( newblip.Position.X() + v.X() * fact, + newblip.Position.Y() + v.Y() * fact, + newblip.Position.Z() + v.Z() * fact); for(auto& v : wirex ) newblip.SigmaYZ += TMath::Sqrt( pow(v.X()-newblip.Position.X(), 2) + pow(v.Y()-newblip.Position.Y(), 2) + pow(v.Z()-newblip.Position.Z(), 2)) * fact; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index c272d730e..11c191ee0 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,7 +27,6 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" -#include "larcorealg/Geometry/geo_vector_utils.h" #include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index ecb2a1d1a..ffd5d00f4 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -40,6 +40,7 @@ cet_make_library( sbnobj::SBND_Blip ) +art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) install_headers() install_source() install_fhicl() From 37b4ba232f8d231ec4379dd6b888ec092c777b75 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:31:24 -0600 Subject: [PATCH 69/73] Revert "Revert "Merge branch 'develop' into feature/AddingBlipToCAF"" This reverts commit 92d3f007a44db6179a16c9a71bfe19219b58ad23. --- CMakeLists.txt | 2 +- .../calibration_database_PDS_TagSets_sbnd.fcl | 4 +- sbndcode/Decoders/PMT/pmtdecoder.fcl | 2 +- .../gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl | 14 +++++ .../standard/reco/config/workflow_reco2.fcl | 11 +++- .../standard/reco/reco2_data_blipwdnn.fcl | 10 ++++ .../reco/reco2_data_singlerecobhit.fcl | 4 -- .../standard/reco/reco2_mc_blipwdnn.fcl | 45 ++++++++++++++++ .../standard/reco/reco2_mc_singlerecobhit.fcl | 4 -- .../standard/standard_detsim_sbnd.fcl | 4 +- .../LArSoftConfigurations/gen/genie_sbnd.fcl | 4 +- .../opticalproperties_sbnd.fcl | 2 +- .../Alg/OpDeconvolutionAlgWienerData_tool.cc | 8 +-- .../job/opdeconvolution_sbnd.fcl | 2 - .../job/sbnd_flashfinder_deco.fcl | 52 ++++++------------- .../OpFlash/job/sbnd_driftestimatoralgo.fcl | 2 +- .../OpFlash/job/sbnd_flashgeoalgo.fcl | 46 +++++++++++++--- sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl | 2 +- sbndcode/OpDetSim/BeamRatesCalib_module.cc | 2 +- sbndcode/OpDetSim/DigiPMTSBNDAlg.hh | 4 -- sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl | 2 +- .../TPCPMTBarycenterMatching_module.cc | 15 +++--- ...sbnd_tpcpmt3dbarycentermatching_config.fcl | 18 ++++--- .../PMTSoftware/fcls/pmtmcmetricproducer.fcl | 5 +- test/GENIE/check_genie_geom_scan.py | 8 +-- ups/product_deps | 6 +-- 26 files changed, 180 insertions(+), 98 deletions(-) create mode 100644 sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl create mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl delete mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl create mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl delete mode 100644 sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl diff --git a/CMakeLists.txt b/CMakeLists.txt index cd192f906..403af95fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ cmake_minimum_required(VERSION 3.20 FATAL_ERROR) -set(${PROJECT_NAME}_CMAKE_PROJECT_VERSION_STRING 10.14.00.01) +set(${PROJECT_NAME}_CMAKE_PROJECT_VERSION_STRING 10.14.02) find_package(cetmodules REQUIRED) project(sbndcode LANGUAGES CXX) diff --git a/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl b/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl index 3721691ce..b80cf8403 100644 --- a/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl +++ b/sbndcode/Calibration/configurations/calibration_database_PDS_TagSets_sbnd.fcl @@ -10,8 +10,8 @@ BEGIN_PROLOG # For SBND 2025 Fall production PDS_CalibrationTags_Nov2025: { - PMTCalibrationDatabaseTag: "v2r1" - DatabaseTimeStamp: 1763157679000000000 + PMTCalibrationDatabaseTag: "v3r1" + DatabaseTimeStamp: 1765487620000000000 } END_PROLOG \ No newline at end of file diff --git a/sbndcode/Decoders/PMT/pmtdecoder.fcl b/sbndcode/Decoders/PMT/pmtdecoder.fcl index 421fe92a5..ea2f7cc1b 100644 --- a/sbndcode/Decoders/PMT/pmtdecoder.fcl +++ b/sbndcode/Decoders/PMT/pmtdecoder.fcl @@ -48,7 +48,7 @@ pmtdecoder: hist_evt: 1 # the # of the event used to generate the histograms, 1st event by default # trigger configurable - mon_threshold: 15 # ADC channel value threshold to add 1 to the trigger response MON pulse + mon_threshold: 50 # ADC channel value threshold to add 1 to the trigger response MON pulse # for when the fragIDs are mapped to the old configuration or you need to hardcode fragids... ## to use this, must set `fragid_offset` to 0!!! diff --git a/sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl b/sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl new file mode 100644 index 000000000..44d1f56e0 --- /dev/null +++ b/sbndcode/JobConfigurations/standard/gen/MultiPart/run_mpvmpr_exotics_sbnd.fcl @@ -0,0 +1,14 @@ +# Description: an override for the default SBND MPV/MPR generator that +# adds kaons (charged and neutral), lambdas, and the neutral sigma +# baryon to the MPV generator. +# Author: mueller@fnal.gov + +#include "run_mpvmpr_sbnd.fcl" + +physics.producers.generator.ParticleParameter.PDGCode : [[-11,11,-13,13], [111] , [211,-211], [2212] , [22] , [310] , [321,-321] , [3212,3122] ] +physics.producers.generator.ParticleParameter.MinMulti : [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] +physics.producers.generator.ParticleParameter.MaxMulti : [ 1 , 2 , 2 , 4 , 2 , 1 , 1 , 1 ] +physics.producers.generator.ParticleParameter.ProbWeight : [ 3 , 1 , 1 , 3 , 1 , 1 , 1 , 1 ] +physics.producers.generator.ParticleParameter.KERange : [ [0.0,3.0] , [0.0,1.0] , [0.0,1.0] , [0.0,1.0] , [0.0,1.0] , [0.0,1.5] , [0.0,1.5] , [0.0,0.7] ] + +outputs.out1.fileName: "prodmpvmpr_exotics_sbnd_%p-%tc.root" \ No newline at end of file diff --git a/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl b/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl index 167662ecc..f89f6fba0 100755 --- a/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl +++ b/sbndcode/JobConfigurations/standard/reco/config/workflow_reco2.fcl @@ -53,6 +53,8 @@ sbnd_reco2_producers:{ ### SCE-aware pandora: pandoraSCE: @local::scecorrection pandoraSCETrack: @local::sbnd_pandoraTrackCreation + blipPandoraSCE: @local::scecorrection + blipPandoraSCETrack:@local::sbnd_pandoraTrackCreation pandoraSCEShower: @local::sbnd_sce_incremental_pandoraModularShowerCreation pandoraSCEShowerSBN: @local::sbnd_sce_sbn_pandoraModularShowerCreation @@ -77,8 +79,8 @@ sbnd_reco2_producers:{ fmatchoparaSCE: @local::sbnd_simple_flashmatch_opara_sce opt0finder: @local::sbnd_opt0_finder_one_to_many opt0finderSCE: @local::sbnd_opt0_finder_one_to_many - tpcpmtbarycentermatching: @local::TPCPMTBarycenterMatchProducer - tpcpmtbarycentermatchingSCE: @local::TPCPMTBarycenterMatchProducerSCE + tpcpmtbarycentermatching: @local::TPCPMTBarycenterMatchProducerMC + tpcpmtbarycentermatchingSCE: @local::TPCPMTBarycenterMatchProducerSCEMC ### Uncalibrated calorimetry producer for calibration caloskimmer caloskimCalorimetry: @local::caloskim_calorimetry @@ -192,10 +194,15 @@ sbnd_reco2_producers.opt0finderSCE.CaloProducer: "pandoraSCECalo" sbnd_reco2_producers.pandoraSCE.T0Labels: [] sbnd_reco2_producers.pandoraSCE.T0LabelsCorrectT0: [] sbnd_reco2_producers.pandoraSCE.CorrectNoT0Tag: true +sbnd_reco2_producers.blipPandoraSCE.T0Labels: [] +sbnd_reco2_producers.blipPandoraSCE.T0LabelsCorrectT0: [] +sbnd_reco2_producers.blipPandoraSCE.CorrectNoT0Tag: true # point track/shower creation to the SCE pandora sbnd_reco2_producers.pandoraSCETrack.PFParticleLabel: "pandoraSCE" sbnd_reco2_producers.pandoraSCEShower.PFParticleLabel: "pandoraSCE" sbnd_reco2_producers.pandoraSCEShowerSBN.PFParticleLabel: "pandoraSCE" +sbnd_reco2_producers.blipPandoraSCETrack.PFParticleLabel: "blipPandoraSCE" + sbnd_reco2_producers.crtspacepointmatchingSCE.TPCTrackModuleLabel: "pandoraSCETrack" sbnd_reco2_producers.crtspacepointmatchingSCE.PFPModuleLabel: "pandoraSCE" diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl new file mode 100644 index 000000000..7078c6c0a --- /dev/null +++ b/sbndcode/JobConfigurations/standard/reco/reco2_data_blipwdnn.fcl @@ -0,0 +1,10 @@ +#Nominal configuration uses dnn (ind) + trad (col) for hit finding. +#Blip requires trad (all) for hit finding. +#This fcl configures everything to use the nominal config (dnn + trad) + +#include "reco2_data.fcl" +physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" +physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" +physics.producers.blipreco.BlipAlg.TrkProducer: "pandoraSCETrack" +physics.analyzers.blipana.BlipAlg.TrkProducer: "pandoraSCETrack" +physics.reco2: [ pandora, pandoraTrack, pandoraShower, pandoraShowerSBN, pandoraCaloData, pandoraPidData, pandoraLikePidData, cvn, opt0finder, crtveto, crtspacepointmatching, crttrackmatching, tpcpmtbarycentermatching, pandoraSCE, pandoraSCETrack, pandoraSCEShower, pandoraSCEShowerSBN, pandoraSCECaloData, pandoraSCEPidData, pandoraSCELikePidData, cvnSCE, opt0finderSCE, tpcpmtbarycentermatchingSCE, crtspacepointmatchingSCE, crttrackmatchingSCE, caloskimCalorimetry, blipreco, lightpropagationcorrectionSCE, frameshift] diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl deleted file mode 100644 index a719e5df4..000000000 --- a/sbndcode/JobConfigurations/standard/reco/reco2_data_singlerecobhit.fcl +++ /dev/null @@ -1,4 +0,0 @@ -#include "reco2_data.fcl" -physics.producers.blipPandoraCopy.HitFinderModuleLabel: "gaushit" -physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" -physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" \ No newline at end of file diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl new file mode 100644 index 000000000..abf5e9357 --- /dev/null +++ b/sbndcode/JobConfigurations/standard/reco/reco2_mc_blipwdnn.fcl @@ -0,0 +1,45 @@ +#Nominal configuration uses dnn (ind) + trad (col) for hit finding. +#Blip requires trad (all) for hit finding. +#This fcl configures everything to use the nominal config (dnn + trad) + +#include "standard_reco2_sbnd.fcl" +physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" +physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" +physics.producers.blipreco.BlipAlg.TrkProducer: "pandoraSCETrack" +physics.analyzers.blipana.BlipAlg.TrkProducer: "pandoraSCETrack" +physics.reco2: [ rns + , pandora + , pandoraTrack + , blipPandoraCopy + , blipPandoraTrackCopy + , pandoraShower + , pandoraShowerSBN + , pandoraCalo + , pandoraPid + , pandoraLikePid + , crtveto + , crtspacepointmatching + , crttrackmatching + , fmatch + , fmatchop + , caloskimCalorimetry + , opt0finder + , tpcpmtbarycentermatching + , pandoraSCE + , pandoraSCETrack + , pandoraSCEShower + , pandoraSCEShowerSBN + , pandoraSCECalo + , pandoraSCEPid + , pandoraSCELikePid + , crtspacepointmatchingSCE + , crttrackmatchingSCE + , fmatchSCE + , fmatchopSCE + , opt0finderSCE + , tpcpmtbarycentermatchingSCE + , cvn + , cvnSCE + , blipreco + ] +physics.trigger_paths: [ reco2 ] \ No newline at end of file diff --git a/sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl b/sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl deleted file mode 100644 index ed38ff261..000000000 --- a/sbndcode/JobConfigurations/standard/reco/reco2_mc_singlerecobhit.fcl +++ /dev/null @@ -1,4 +0,0 @@ -#include "standard_reco2_sbnd.fcl" -physics.producers.blipPandoraCopy.HitFinderModuleLabel: "gaushit" -physics.producers.blipreco.BlipAlg.HitProducer: "gaushit" -physics.analyzers.blipana.BlipAlg.HitProducer: "gaushit" diff --git a/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl b/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl index 2dabe25f4..e9ab0fff7 100755 --- a/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl +++ b/sbndcode/JobConfigurations/standard/standard_detsim_sbnd.fcl @@ -68,12 +68,12 @@ physics: simtpc2d: @local::sbnd_wcls_simsp_bothrois crtsim: @local::sbnd_crtsim opdaq: @local::sbnd_opdetdigitizer - pmtmetricmc: @local::sbnd_pmtmcmetricproducer pmtpulseoscillation: @local::sbnd_pmtpulseoscillation + pmtmetricmc: @local::sbnd_pmtmcmetricproducer } #define the producer and filter modules for this path, order matters, - simulate: [rns, simtpc2d, crtsim, opdaq, pmtmetricmc, pmtpulseoscillation] + simulate: [rns, simtpc2d, crtsim, opdaq, pmtpulseoscillation, pmtmetricmc] #define the output stream, there could be more than one if using filters stream1: [ out1 ] diff --git a/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl b/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl index 61bddbc90..7e3d8fabc 100644 --- a/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl +++ b/sbndcode/LArSoftConfigurations/gen/genie_sbnd.fcl @@ -236,7 +236,7 @@ sbnd_flux_g4bnb_1_0_0_fhc: { FluxType: "dk2nu" DetectorLocation: "SBND" FluxCopyMethod: "DIRECT" - FluxSearchPaths: "/cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.0/fhc/a/" + FluxSearchPaths: "/cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.1/fhc/a/" FluxFiles: [ "NuBeam_production_BooNE_50m_I174000A_*.dk2nu.root" ] } @@ -385,7 +385,7 @@ sbnd_genie_simple_rockbox: { # As we are changing the FV we need to recalculate the maximum path lengths # This file was generated by running with: # GeomScan: "flux: 10000 1.1 1" - GeomScan: "file: GENIE/sbnd_rock_maxpathlength_fluxG4_gdmlv02_06.xml" + GeomScan: "file: GENIE/sbnd_rock_maxpathlength_fluxG4v1.1.1_gdmlv02_06.xml" } # Rotated bucket configuration diff --git a/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl b/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl index ba677dd9c..0048cc354 100644 --- a/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl +++ b/sbndcode/LArSoftConfigurations/opticalproperties_sbnd.fcl @@ -30,7 +30,7 @@ sbnd_opticalproperties: { # ScintPreScale MUST be equal/larger than the largest detection efficiency applied at DetSim stage # This corresponds to the coated PMTs detection efficiency (3.9% see docdb-40444) # See sbndcode/OpDetSim/digi_pmt_sbnd.fcl - ScintPreScale: 0.039 + ScintPreScale: 0.0392 EnableCerenkovLight: false # Cerenkov light OFF by default diff --git a/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc b/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc index d33cc57ee..134183f30 100644 --- a/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc +++ b/sbndcode/OpDetReco/OpDeconvolution/Alg/OpDeconvolutionAlgWienerData_tool.cc @@ -51,7 +51,6 @@ class opdet::OpDeconvolutionAlgWiener : opdet::OpDeconvolutionAlg { std::vector fSinglePEWave; std::vector fSinglePEChannels; std::vector fPeakAmplitude; - std::vector fSkipChannelList; bool fPositivePolarity; bool fUseSaturated; int fADCSaturationValue; @@ -129,7 +128,6 @@ opdet::OpDeconvolutionAlgWiener::OpDeconvolutionAlgWiener(fhicl::ParameterSet co fPMTChargeToADC = p.get< double >("PMTChargeToADC"); fDecoWaveformPrecision = p.get< double >("DecoWaveformPrecision"); fBaselineSample = p.get< short unsigned int >("BaselineSample"); - fSkipChannelList = p.get< std::vector>("SkipChannelList"); fFilter = p.get< std::string >("Filter"); fElectronics = p.get< std::string >("Electronics"); fDaphne_Freq = p.get< double >("DaphneFreq"); @@ -173,11 +171,9 @@ std::vector opdet::OpDeconvolutionAlgWiener::RunDeconvolutio { std::vector wfDeco; wfDeco.reserve(wfVector.size()); - for(auto const& wf : wfVector) - { + for(auto const& wf : wfVector){ int channelNumber = wf.ChannelNumber(); - auto it = std::find(fSkipChannelList.begin(), fSkipChannelList.end(), channelNumber); - if (it == fSkipChannelList.end()) { + if(fPMTCalibrationDatabaseService->getReconstructChannel(channelNumber)) { fSinglePEWave = fPMTCalibrationDatabaseService->getSER(channelNumber); double SPEAmplitude = fPMTCalibrationDatabaseService->getSPEAmplitude(channelNumber); double SPEPeakValue = *std::max_element(fSinglePEWave.begin(), fSinglePEWave.end(), [](double a, double b) {return std::abs(a) < std::abs(b);}); diff --git a/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl b/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl index 0d7790bf5..71bf626cb 100644 --- a/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl +++ b/sbndcode/OpDetReco/OpDeconvolution/job/opdeconvolution_sbnd.fcl @@ -34,7 +34,6 @@ SBNDOpDeconvolutionPMT_data.Electronics: [""] SBNDOpDeconvolutionPMT_data.OpDecoAlg.OpDetDataFile: "./OpDetSim/digi_pmt_sbnd_data_OV6.root" SBNDOpDeconvolutionPMT_data.OpDecoAlg.Filter: "(x>0)*exp(-0.5*pow(x/[0],[1]))" #Gauss filter, remove DC component F(0)=0 SBNDOpDeconvolutionPMT_data.OpDecoAlg.DecoWaveformPrecision: 0.005 -SBNDOpDeconvolutionPMT_data.OpDecoAlg.SkipChannelList: [39, 66, 67, 71, 85, 86, 87, 92, 115, 138, 141, 170, 197, 217, 218, 221, 222, 223, 226, 245, 248, 249, 302] ###### PMT REALISTIC MC ###### @@ -46,7 +45,6 @@ SBNDOpDeconvolutionPMT_realisticMC.Electronics: [""] SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.OpDetDataFile: "./OpDetSim/digi_pmt_sbnd_data_OV6.root" SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.Filter: "(x>0)*exp(-0.5*pow(x/[0],[1]))" #Gauss filter, remove DC component F(0)=0 SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.DecoWaveformPrecision: 0.005 -SBNDOpDeconvolutionPMT_realisticMC.OpDecoAlg.SkipChannelList: [39, 66, 67, 71, 85, 86, 87, 92, 115, 138, 141, 170, 197, 217, 218, 221, 222, 223, 226, 245, 248, 249, 302] ###### XA IDEAL MC ###### diff --git a/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl b/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl index 610e9c818..e83ffdbbb 100644 --- a/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl +++ b/sbndcode/OpDetReco/OpDeconvolution/job/sbnd_flashfinder_deco.fcl @@ -28,57 +28,37 @@ SBNDDecoSimpleFlashTPC1.CorrectLightPropagation: true ###### PMT DATA ###### ###TPC0 -SBNDDecoSimpleFlashTPC0_data: @local::SBNDSimpleFlashTPC0 +SBNDDecoSimpleFlashTPC0_data: @local::SBNDDecoSimpleFlashTPC0 +SBNDDecoSimpleFlashTPC0_data.ReadoutDelay: 0 //cable time delay in us SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.DataCalibration: true -SBNDDecoSimpleFlashTPC0_data.PECalib.SPEAreaGain: 200 -SBNDDecoSimpleFlashTPC0_data.OpHitProducers: ["ophitpmt"] -SBNDDecoSimpleFlashTPC0_data.OpHitInputTime: "RiseTime" -SBNDDecoSimpleFlashTPC0_data.UseT0Tool: true -SBNDDecoSimpleFlashTPC0_data.ReadoutDelay: 0 //cable time delay in us -SBNDDecoSimpleFlashTPC0_data.CorrectLightPropagation: true -SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2.root" +SBNDDecoSimpleFlashTPC0_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2_tpc0.root" +SBNDDecoSimpleFlashTPC0_data.FlashGeoConfig: @local::FlashGeoThresholdTPC0Data #TPC1 -SBNDDecoSimpleFlashTPC1_data: @local::SBNDSimpleFlashTPC1 +SBNDDecoSimpleFlashTPC1_data: @local::SBNDDecoSimpleFlashTPC1 +SBNDDecoSimpleFlashTPC1_data.ReadoutDelay: 0 //cable time delay in us SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.DataCalibration: true -SBNDDecoSimpleFlashTPC1_data.PECalib.SPEAreaGain: 200 -SBNDDecoSimpleFlashTPC1_data.OpHitProducers: ["ophitpmt"] -SBNDDecoSimpleFlashTPC1_data.OpHitInputTime: "RiseTime" -SBNDDecoSimpleFlashTPC1_data.UseT0Tool: true -SBNDDecoSimpleFlashTPC1_data.ReadoutDelay: 0 //cable time delay in us -SBNDDecoSimpleFlashTPC1_data.CorrectLightPropagation: true +SBNDDecoSimpleFlashTPC1_data.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_data_v2_tpc1.root" +SBNDDecoSimpleFlashTPC1_data.FlashGeoConfig: @local::FlashGeoThresholdTPC1Data ###### PMT REALISTIC MC ###### ###TPC0 -SBNDDecoSimpleFlashTPC0_realisticMC: @local::SBNDSimpleFlashTPC0 -SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" -SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.DataCalibration: true -SBNDDecoSimpleFlashTPC0_realisticMC.PECalib.SPEAreaGain: 200 -SBNDDecoSimpleFlashTPC0_realisticMC.OpHitProducers: ["ophitpmt"] -SBNDDecoSimpleFlashTPC0_realisticMC.OpHitInputTime: "RiseTime" -SBNDDecoSimpleFlashTPC0_realisticMC.UseT0Tool: true -SBNDDecoSimpleFlashTPC0_realisticMC.ReadoutDelay: 0 //cable time delay in us -SBNDDecoSimpleFlashTPC0_realisticMC.CorrectLightPropagation: true -SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root" +SBNDDecoSimpleFlashTPC0_realisticMC: @local::SBNDDecoSimpleFlashTPC0_data +SBNDDecoSimpleFlashTPC0_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root" +SBNDDecoSimpleFlashTPC0_realisticMC.ReadoutDelay: 0. //cable time delay in us +SBNDDecoSimpleFlashTPC0_realisticMC.FlashGeoConfig: @local::FlashGeoThresholdTPC0_realisticMC #TPC1 -SBNDDecoSimpleFlashTPC1_realisticMC: @local::SBNDSimpleFlashTPC1 -SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.tool_type: "DriftEstimatorPMTRatio" -SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.DataCalibration: true -SBNDDecoSimpleFlashTPC1_realisticMC.PECalib.SPEAreaGain: 200 -SBNDDecoSimpleFlashTPC1_realisticMC.OpHitProducers: ["ophitpmt"] -SBNDDecoSimpleFlashTPC1_realisticMC.OpHitInputTime: "RiseTime" -SBNDDecoSimpleFlashTPC1_realisticMC.UseT0Tool: true -SBNDDecoSimpleFlashTPC1_realisticMC.ReadoutDelay: 0 //cable time delay in us -SBNDDecoSimpleFlashTPC1_realisticMC.CorrectLightPropagation: true -SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root" +SBNDDecoSimpleFlashTPC1_realisticMC: @local::SBNDDecoSimpleFlashTPC1_data +SBNDDecoSimpleFlashTPC1_realisticMC.DriftEstimatorConfig.CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root" +SBNDDecoSimpleFlashTPC1_realisticMC.ReadoutDelay: 0. //cable time delay in us +SBNDDecoSimpleFlashTPC1_realisticMC.FlashGeoConfig: @local::FlashGeoThresholdTPC1_realisticMC ###### XA IDEAL MC ###### - ####OpFlash finder for XArapucas deconvolved waveforms##### ###TPC0 SBNDDecoSimpleFlashTPC0Arapuca: @local::SBNDSimpleFlashTPC0 diff --git a/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl b/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl index 38b8a9f67..bdb1fcbaa 100644 --- a/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl +++ b/sbndcode/OpDetReco/OpFlash/job/sbnd_driftestimatoralgo.fcl @@ -5,7 +5,7 @@ BEGIN_PROLOG DriftEstimatorPMTRatio: { tool_type: "DriftEstimatorPMTRatio" - CalibrationFile: "OpDetReco/PMTRatioCalibration_MC2.root" + CalibrationFile: "OpDetReco/PMTRatioCalibration_MC3.root" VGroupVUV: @local::sbnd_vuv_timing_parameterization.vuv_vgroup_mean VGroupVIS: @local::sbnd_vis_timing_parameterization.vis_vmean DataCalibration: true diff --git a/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl b/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl index 18051a4c2..018bb0e94 100644 --- a/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl +++ b/sbndcode/OpDetReco/OpFlash/job/sbnd_flashgeoalgo.fcl @@ -1,17 +1,51 @@ BEGIN_PROLOG -FlashGeoBarycenter: -{ +FlashGeoBarycenter:{ tool_type: "FlashGeoBarycenter" WeightExp: 2 } -FlashGeoThreshold: -{ +FlashGeoThreshold:{ tool_type: "FlashGeoThreshold" PDTypes: ["pmt_coated", "pmt_uncoated"] - ThresholdY: 0.75 - ThresholdZ: 0.45 + ThresholdY: 0.8 + ThresholdZ: 0.8 + NormalizeByPDType: true + WeightExp: 2 +} + +FlashGeoThresholdTPC0Data:{ + tool_type: "FlashGeoThreshold" + PDTypes: ["pmt_coated"] + ThresholdY: 0.5 + ThresholdZ: 0.5 + NormalizeByPDType: true + WeightExp: 2 +} + +FlashGeoThresholdTPC1Data:{ + tool_type: "FlashGeoThreshold" + PDTypes: ["pmt_coated"] + ThresholdY: 0.5 + ThresholdZ: 0.5 + NormalizeByPDType: true + WeightExp: 2 +} + +FlashGeoThresholdTPC0_realisticMC:{ + tool_type: "FlashGeoThreshold" + PDTypes: ["pmt_coated"] + ThresholdY: 0.7 + ThresholdZ: 0.7 + NormalizeByPDType: true + WeightExp: 2 +} + +FlashGeoThresholdTPC1_realisticMC:{ + tool_type: "FlashGeoThreshold" + PDTypes: ["pmt_coated"] + ThresholdY: 0.6 + ThresholdZ: 0.6 NormalizeByPDType: true WeightExp: 2 } diff --git a/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl b/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl index 6e6a4bad2..eb457716d 100644 --- a/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl +++ b/sbndcode/OpDetSim/BeamRatesCalib_Defaults.fcl @@ -19,7 +19,7 @@ BeamRatesCalib: # Save some example trigger pulses for each flash (TH1D similar to wvfana) SaveAllMon: true # The MON threshold used in the saved TH1D examples - FCLthreshold: 25 + FCLthreshold: 50 # PMT index corresponding to the opening of the beam acceptance BeamWindowEnd # Note that BeamWindowStart should not account for MTC/A wire+processing delays # Those are handled by CAENOffset diff --git a/sbndcode/OpDetSim/BeamRatesCalib_module.cc b/sbndcode/OpDetSim/BeamRatesCalib_module.cc index a73fa78b6..b4fd79b84 100755 --- a/sbndcode/OpDetSim/BeamRatesCalib_module.cc +++ b/sbndcode/OpDetSim/BeamRatesCalib_module.cc @@ -200,7 +200,7 @@ namespace opdet { //OpDet means optical detector fBeamWindowEnd = p.get("BeamWindowEnd", 1688+680); fSaveAllMON = p.get("SaveAllMon", false); fCheckTriggers = p.get("CheckHardwareTriggers", false); //Needs MTCA LLT to be digitized which is unusual (run 15670) - fFCLthreshold = p.get("FCLthreshold", 15); + fFCLthreshold = p.get("FCLthreshold", 50); fOpDetsToPlot = p.get >("OpDetsToPlot"); fCheckSoftTrig = p.get("CheckSoftTrig", false); fSoftTrigLabel = p.get("SoftTrigLabel", "pmtmetricproducer:"); diff --git a/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh b/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh index 7a7d7bcd0..25b714a41 100644 --- a/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh +++ b/sbndcode/OpDetSim/DigiPMTSBNDAlg.hh @@ -81,8 +81,6 @@ namespace opdet { bool MakeGainFluctuations; //Fluctuate PMT gain fhicl::ParameterSet GainFluctuationsParams; bool SimulateNonLinearity; //Fluctuate PMT gain - bool PositivePolarity; - bool OscillateAfterPulse; bool UseDataNoise; fhicl::ParameterSet NonLinearityParams; @@ -135,8 +133,6 @@ namespace opdet { return fParams.PMTBaseline; } - void AddOscillationAfterPulse( std::vector& wave); - private: ConfigurationParameters_t fParams; diff --git a/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl b/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl index c26eb170c..ebc8ad62e 100755 --- a/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl +++ b/sbndcode/OpDetSim/opdetdigitizer_sbnd.fcl @@ -14,7 +14,7 @@ sbnd_opdetdigitizer: ApplyTriggers: true #optional ticksPerSlice: 5000 # corresponds to 10us PercentTicksBeforeCross: 0.2 - MonThreshold: 15 + MonThreshold: 50 PairMultiplicityThreshold: 4 @table::sbnd_digipmt_alg diff --git a/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc b/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc index 70fea3aa7..e9ee7beb9 100644 --- a/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc +++ b/sbndcode/TPCPMTBarycenterMatching/TPCPMTBarycenterMatching_module.cc @@ -232,8 +232,9 @@ class TPCPMTBarycenterMatchProducer : public art::EDProducer { double fDistanceCandidateFlashes; ///< Maximum distance between candidate flashes to be considered for matching (cm) std::vector fCalAreaConst; /// Calibration area constants for wire plane std::vector fSkipChannelList; - double fOpDetVUVEff; // Efficiencies for PMT detection - double fOpDetVISEff; // Efficiencies for PMT detection + double fOpDetCoVUVEff; // Efficiencies for PMT detection (Coated PMT VUV) + double fOpDetCoVISEff; // Efficiencies for PMT detection (Coated PMT VIS) + double fOpDetUncoVISEff; // Efficiencies for PMT detection (Uncoated PMT VIS) bool fVerbose; ///< Print extra info bool fFillMatchTree; ///< Fill an output TTree in the supplemental file bool fDo3DMatching; ///< Wether to perform the matching in 3D or 2D @@ -304,8 +305,9 @@ TPCPMTBarycenterMatchProducer::TPCPMTBarycenterMatchProducer(fhicl::ParameterSet fCollectionOnly(p.get("CollectionOnly", true)), fDistanceCandidateFlashes(p.get("DistanceCandidateFlashes")), // cm fCalAreaConst(p.get>("CalAreaConst")), - fOpDetVUVEff (p.get("OpDetVUVEff")), - fOpDetVISEff (p.get("OpDetVISEff")), + fOpDetCoVUVEff (p.get("OpDetCoVUVEff")), + fOpDetCoVISEff (p.get("OpDetCoVISEff")), + fOpDetUncoVISEff (p.get("OpDetUncoVISEff")), fVerbose(p.get("Verbose")), fFillMatchTree(p.get("FillMatchTree")), fDo3DMatching(p.get("Do3DMatching")), @@ -891,11 +893,10 @@ double TPCPMTBarycenterMatchProducer::GetFlashLight(double flash_pe, std::vector for(size_t ch=0; ch gdml version:', gdml_version) -#print('\t -> flux configuration:', flux_config) +print('\t -> flux configuration:', flux_config) # # Check that the two are the same, if not, need to regenerate the GeomScan file # message = 'Please regenerate the GeomScan file. Instructions are in fcl file make_genie_geomscan_file_sbnd.fcl.' -#assert geom_scan_flux_config == flux_config, f"Have you updated/changed the flux files? {message}" +assert geom_scan_flux_config == flux_config, f"Have you updated/changed the flux files? {message}" assert geom_scan_gdml_version == gdml_version, f"Have you updated/changed the GDML file? {message}" diff --git a/ups/product_deps b/ups/product_deps index 8527c3080..2938e2336 100644 --- a/ups/product_deps +++ b/ups/product_deps @@ -253,9 +253,9 @@ wpdir product_dir wire-cell-cfg # #################################### product version qual flags -sbncode v10_14_00 - +sbncode v10_14_02 - cetmodules v3_24_01 - only_for_build -sbnd_data v01_38_00 - +sbnd_data v01_41_00 - sbndutil v10_06_01 - optional fhiclpy v4_03_05 - end_product_list @@ -326,7 +326,7 @@ end_qualifier_list #################################### table_fragment_begin # currently, XML pandora files are installed in 'scripts': - pathPrepend(GDK2NUFLUXXML, /cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/v1.1.0/GNuMIFlux.xml) + pathPrepend(GDK2NUFLUXXML, /cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash/fluxFiles/bnb/G4BNB/GNuMIFlux.xml) pathPrepend(FW_SEARCH_PATH, ${SBNDCODE_DIR}/scripts) pathPrepend(FW_SEARCH_PATH, ${SBND_DATA_DIR}/CalibrationDatabase) pathPrepend(FW_SEARCH_PATH, /cvmfs/sbnd.osgstorage.org/pnfs/fnal.gov/usr/sbnd/persistent/stash) From 318787a6a1bcc19ca4ffc6ec51be73402d3ea091 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 15:35:25 -0600 Subject: [PATCH 70/73] fixing caps again --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index d0afdea48..61dd50de3 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,7 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), + pinfo.Position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); @@ -147,7 +147,7 @@ namespace BlipUtils { // If this is a new blip, initialize if( !tblip.G4ChargeMap.size() ) { - tblip.Position = pinfo.position; + tblip.Position = pinfo.Position; tblip.Time = pinfo.time; // .. otherwise, check that the new particle @@ -157,9 +157,9 @@ namespace BlipUtils { float totE = tblip.Energy + pinfo.depEnergy; float w1 = tblip.Energy/totE; float w2 = pinfo.depEnergy/totE; - tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.position.X(), - w1*tblip.Position.Y() + w2*pinfo.position.Y(), - w1*tblip.Position.Z() + w2*pinfo.position.Z()); + tblip.Position.SetXYZ( w1*tblip.Position.X() + w2*pinfo.Position.X(), + w1*tblip.Position.Y() + w2*pinfo.Position.Y(), + w1*tblip.Position.Z() + w2*pinfo.Position.Z()); tblip.Time = w1*tblip.Time + w2*pinfo.time; tblip.LeadCharge = pinfo.depElectrons; // ... if the particle isn't a match, show's over From 62286d3d4259558f299c934ad8c68f44ed0e9646 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 16:27:27 -0600 Subject: [PATCH 71/73] still fixing runtime error --- sbndcode/BlipRecoSBND/BlipAna_module.cc | 2 +- sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc | 2 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index 6b8edc40d..eda85337d 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -32,7 +32,7 @@ #include "lardataobj/AnalysisBase/Calorimetry.h" #include "larevt/SpaceChargeServices/SpaceChargeService.h" #include "cetlib/search_path.h" -#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // SBND-specific includes #include "sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h" diff --git a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc index 7fde766e8..a5f34d4a5 100644 --- a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc +++ b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc @@ -33,7 +33,7 @@ #include "lardataobj/RawData/RawDigit.h" #include "lardataobj/RawData/raw.h" #include "lardata/Utilities/AssociationUtil.h" -#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // C++ includes #include diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 11c191ee0..185f71fe1 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,7 +27,7 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" -#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ #include From 25cd5479bc4fc04a3009c8ae0ca5e43514c335d1 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Mon, 5 Jan 2026 16:32:41 -0600 Subject: [PATCH 72/73] still fixing runtime error --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index 1851ae4b9..5dd3a8d16 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -41,7 +41,7 @@ #include "larreco/Calorimetry/CalorimetryAlg.h" #include "art/Framework/Principal/Event.h" #include "larcore/Geometry/WireReadout.h" -#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // Microboone includes //#include "ubevt/Database/TPCEnergyCalib/TPCEnergyCalibService.h" From e3bb6d5c6654b91d40cbdfc64c2e568a507a18ea Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 6 Jan 2026 18:54:20 -0600 Subject: [PATCH 73/73] resetting to d49df9d -- where all tvector3 is removed but the geo::vector util functions are not used --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 3 ++- sbndcode/BlipRecoSBND/BlipAna_module.cc | 2 +- sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc | 2 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 10 ++++------ sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 3 ++- sbndcode/BlipRecoSBND/Utils/CMakeLists.txt | 1 - 7 files changed, 11 insertions(+), 12 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index d013f778c..c68706d33 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1072,7 +1072,7 @@ namespace blip { TVector3 p2(b.X(), b.Y(), b.Z() ); // TO-DO: if this track starts or ends at a TPC boundary, // we should extend p1 or p2 to outside the AV to avoid blind spots - TVector3 bp(newBlip.Position.X(), newBlip.Position.Y(), newBlip.Position.Z()); + TVector3 bp = geo::vect::convertTo(newBlip.Position); float d = BlipUtils::DistToLine(p1,p2,bp); if( d > 0 ) { // update closest trkdist diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index 5dd3a8d16..ba6151d64 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -38,10 +38,11 @@ #include "larcore/Geometry/Geometry.h" #include "larcorealg/Geometry/WireReadoutGeom.h" #include "larcorealg/Geometry/GeometryCore.h" +#include "larcorealg/Geometry/geo_vectors_utils.h" #include "larreco/Calorimetry/CalorimetryAlg.h" #include "art/Framework/Principal/Event.h" #include "larcore/Geometry/WireReadout.h" -//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // Microboone includes //#include "ubevt/Database/TPCEnergyCalib/TPCEnergyCalibService.h" diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index eda85337d..6b8edc40d 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -32,7 +32,7 @@ #include "lardataobj/AnalysisBase/Calorimetry.h" #include "larevt/SpaceChargeServices/SpaceChargeService.h" #include "cetlib/search_path.h" -//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // SBND-specific includes #include "sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h" diff --git a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc index a5f34d4a5..7fde766e8 100644 --- a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc +++ b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc @@ -33,7 +33,7 @@ #include "lardataobj/RawData/RawDigit.h" #include "lardataobj/RawData/raw.h" #include "lardata/Utilities/AssociationUtil.h" -//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // C++ includes #include diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 61dd50de3..295f18627 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -55,9 +55,7 @@ namespace BlipUtils { pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); // Central position of trajectory - pinfo.Position.SetXYZ(0.5*(pinfo.startPoint.X()+pinfo.endPoint.X()), - 0.5*(pinfo.startPoint.Y()+pinfo.endPoint.Y()), - 0.5*(pinfo.startPoint.Z()+pinfo.endPoint.Z()) ); + pinfo.Position = geo::vect::middlePoint({ pinfo.startPoint, pinfo.endPoint }); // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; @@ -200,7 +198,7 @@ namespace BlipUtils { // check that the times are similar (we don't want to merge // together a blip that happened much later but in the same spot) if( fabs(blip_i.Time - blip_j.Time) > 5 ) continue; - float d = TMath::Sqrt((blip_i.Position-blip_j.Position).Mag2()); + float d = (blip_i.Position-blip_j.Position).R(); //Size of vector spanning two blips if( d < dmin ) { isGrouped.at(j) = true; //float totE = blip_i.Energy + blip_j.Energy; @@ -381,7 +379,7 @@ namespace BlipUtils { // ------------------------------------------------ /// Look for valid wire intersections between // central-most hits in each cluster - std::vector wirex; + std::vector wirex; for(size_t i=0; iGet().Plane(geo::PlaneID{(unsigned int)hcs[i].Cryostat, (unsigned int)hcs[i].TPC, (unsigned int)hcs[i].Plane}); @@ -410,7 +408,7 @@ namespace BlipUtils { } if( match3d ) { - TVector3 a(0., intsec_p.Y(), intsec_p.Z()); + geo::Point_t a{0., intsec_p.Y(), intsec_p.Z()}; wirex.push_back(a); newblip.clusters[pli] = hcs[i]; newblip.clusters[plj] = hcs[j]; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 185f71fe1..0bd73c60d 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -27,7 +27,8 @@ #include "larcore/CoreUtils/ServiceUtil.h" #include "larcore/Geometry/Geometry.h" #include "larcore/Geometry/WireReadout.h" -//#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" +#include "larcorealg/Geometry/geo_vectors_utils.h" +#include "larcoreobj/SimpleTypesAndConstants/geo_vectors.h" // c++ #include diff --git a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt index ffd5d00f4..ecb2a1d1a 100644 --- a/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt +++ b/sbndcode/BlipRecoSBND/Utils/CMakeLists.txt @@ -40,7 +40,6 @@ cet_make_library( sbnobj::SBND_Blip ) -art_dictionary(DICTIONARY_LIBRARIES sbndcode_BlipUtils) install_headers() install_source() install_fhicl()