From 058d850e93bd267ced2fe42e454cfbeba2fef10b Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 15 Jan 2026 14:41:32 -0600 Subject: [PATCH 01/57] Fixed a hit mapper line to match new inputs --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index eb9a3b810..7c068dde8 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -367,22 +367,22 @@ namespace blip { art::Handle > simchanHandle; std::vector > simchanlist; if (evt.getByLabel(fSimChanProducer,simchanHandle)) - { + { art::fill_ptr_vector(simchanlist, simchanHandle); //Loop over channels to get full sedlist for(int chIndex=0; chIndex wids = wireReadoutGeom->Get().ChannelToWire( (*(simchanlist[chIndex])).Channel() ); //Not sure why this is a vector, but it should have len 1 - const geo::PlaneID& planeID = wids[0].planeID(); - if(int(planeID.Plane) != fCaloPlane) continue; //only take calorimetry plane IDE values - std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, 999999999); - for(int ideIndex=0; ideIndex wids = wireReadoutGeom->Get().ChannelToWire( (*(simchanlist[chIndex])).Channel() ); //Not sure why this is a vector, but it should have len 1 + const geo::PlaneID& planeID = wids[0].planeID(); + if(int(planeID.Plane) != fCaloPlane) continue; //only take calorimetry plane IDE values + std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, 999999999); + for(int ideIndex=0; ideIndex > hitHandle; @@ -442,7 +442,7 @@ namespace blip { //=============================================================== std::map< int, int > map_gh; // if input collection is already gaushit, this is trivial - if( fHitProducer == "gaushit" ) { + if( fHitProducer == "gaushit" || fHitProducer == "specialblipgaushit") { for(auto& h : hitlist ) map_gh[h.key()] = h.key(); // ... but if not, find the matching gaushit. There's no convenient // hit ID, so we must loop through and compare channel/time (ugh) From 647fcac1971dc2763ed1c5a599e99164aefd8260 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 15 Jan 2026 14:55:36 -0600 Subject: [PATCH 02/57] Checking what branch causes new crash --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 7c068dde8..a689dec82 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -442,7 +442,9 @@ namespace blip { //=============================================================== std::map< int, int > map_gh; // if input collection is already gaushit, this is trivial + std::cout << " About to fill in map with hitProducer " << fHitProducer << std::endl; if( fHitProducer == "gaushit" || fHitProducer == "specialblipgaushit") { + std::cout << " in special branch" << std::endl; for(auto& h : hitlist ) map_gh[h.key()] = h.key(); // ... but if not, find the matching gaushit. There's no convenient // hit ID, so we must loop through and compare channel/time (ugh) @@ -457,6 +459,7 @@ namespace blip { } } } + std::cout << "done with map" << std::endl; //===================================================== // Record PDG for every G4 Track ID From 3cf18b98afe5707e46ce8384be2dd5b80dc95617 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 15 Jan 2026 16:52:16 -0600 Subject: [PATCH 03/57] debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index a689dec82..db165fee0 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -536,6 +536,7 @@ namespace blip { BlipUtils::MakeTrueBlips(pinfo, trueblips); BlipUtils::MergeTrueBlips(trueblips, fTrueBlipMergeDist); } + std::cout << "end of true blips" << std::endl; //======================================= @@ -668,6 +669,7 @@ namespace blip { //printf(" %lu plane: %i, wire: %i, time: %i\n",i,hitinfo[i].plane,hitinfo[i].wire,int(hitinfo[i].driftTime)); }//endloop over hits + std::cout << " Hit info filled in " << std::endl; //for(auto& a : tpc_plane_hitsMap ) { //for(auto& b : a.second ) @@ -734,7 +736,7 @@ namespace blip { // Hit clustering // --------------------------------------------------- std::map>> tpc_planeclustsMap; - + std::cout << "Hit clustering processing" << std::endl; for(auto const& tpc_plane_hitsMap : cryo_tpc_plane_hitsMap ) { for(auto const& plane_hitsMap : tpc_plane_hitsMap.second ) { @@ -877,6 +879,7 @@ namespace blip { }//loop over planes }//loop over TPCs }//loop over cryostats + std::cout << "Done Hit clustering processing" << std::endl; //std::cout<<"All done with clustering\n"; @@ -895,7 +898,7 @@ namespace blip { float _matchQDiffLimit= (fMatchQDiffLimit <= 0 ) ? std::numeric_limits::max() : fMatchQDiffLimit; float _matchMaxQRatio = (fMatchMaxQRatio <= 0 ) ? std::numeric_limits::max() : fMatchMaxQRatio; - + std::cout << "Plane matching " << std::endl; for(auto& tpcMap : tpc_planeclustsMap ) { // loop on TPCs //std::cout @@ -1110,6 +1113,7 @@ namespace blip { }//endloop over caloplane ("Plane A") clusters }//endif calo plane has clusters }//endloop over TPCs + std::cout << " done planematching " << std::endl; // Re-index the clusters after removing unmatched if( !keepAllClusts ) { From 64b158ae5ff396f3ac0aa67e0035e674b61e8696 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 15 Jan 2026 17:04:52 -0600 Subject: [PATCH 04/57] make special blip gaus hit more prominent --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index db165fee0..550995f7f 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -393,7 +393,11 @@ namespace blip { // -- hits (from gaushit), these are used in truth-matching of hits art::Handle< std::vector > hitHandleGH; std::vector > hitlistGH; - if (evt.getByLabel("gaushit",hitHandleGH)) + if(fHitProducer == "specialblipgaushit") + { + if(evt.getByLabel("specialblipgaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); + } + else if(evt.getByLabel("gaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); // -- tracks From 9e746c705b371c91db74a38c7b2272ddde99c275 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 11:22:57 -0600 Subject: [PATCH 05/57] change hardcoded label --- 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 550995f7f..db4e43a23 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -409,7 +409,7 @@ namespace blip { // -- associations art::FindManyP fmtrk(hitHandle,evt,fTrkProducer); art::FindManyP fmtrkGH(hitHandleGH,evt,fTrkProducer); - art::FindMany fmhh(hitHandleGH,evt,"gaushitTruthMatch"); + art::FindMany fmhh(hitHandleGH,evt,"blipgaushitTruthMatch"); /* //==================================================== // Update map of bad channels for this event From bcd7ca5c1f84500dfb6a16c52ca80430f29af7aa Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 11:55:11 -0600 Subject: [PATCH 06/57] change hardcoded label --- 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 db4e43a23..ea3e5fbd0 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -655,7 +655,7 @@ namespace blip { // find associated track - if( fHitProducer == "gaushit" && fmtrk.isValid() ) { + if( fHitProducer == "specialblipgaushit" && fmtrk.isValid() ) { if(fmtrk.at(i).size()) hitinfo[i].trkid = fmtrk.at(i)[0]->ID(); // if the hit collection didn't have associations made From fa0306952f1e7a4ca1f6df3ae3ed43673cb9db90 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 14:13:43 -0600 Subject: [PATCH 07/57] debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index ea3e5fbd0..2bca553d6 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -373,9 +373,11 @@ namespace blip { for(int chIndex=0; chIndex wids = wireReadoutGeom->Get().ChannelToWire( (*(simchanlist[chIndex])).Channel() ); //Not sure why this is a vector, but it should have len 1 + std::cout << " Got my wire for chIndex " << chIndex << " it has size " << wids.size() << " first entry string is " << wids[0].toString() << std::endl; const geo::PlaneID& planeID = wids[0].planeID(); if(int(planeID.Plane) != fCaloPlane) continue; //only take calorimetry plane IDE values std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, 999999999); + std::cout << " this channel has " << TempChIDE.size() << " IDEs" for(int ideIndex=0; ideIndex Date: Fri, 16 Jan 2026 14:18:31 -0600 Subject: [PATCH 08/57] debug --- 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 2bca553d6..29dee242d 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -377,7 +377,7 @@ namespace blip { const geo::PlaneID& planeID = wids[0].planeID(); if(int(planeID.Plane) != fCaloPlane) continue; //only take calorimetry plane IDE values std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, 999999999); - std::cout << " this channel has " << TempChIDE.size() << " IDEs" + std::cout << " this channel has " << TempChIDE.size() << " IDEs" << std::endl; for(int ideIndex=0; ideIndex Date: Fri, 16 Jan 2026 15:13:26 -0600 Subject: [PATCH 09/57] Adding back sim energyDeposit interface --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 35 +++++++++++++++--------- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 23 ++++++++++++---- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 6 ++-- 3 files changed, 43 insertions(+), 21 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 29dee242d..6de0af9a3 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -357,31 +357,32 @@ namespace blip { if (evt.getByLabel(fGeantProducer,pHandle)) art::fill_ptr_vector(plist, pHandle); - // -- SimEnergyDeposits (usually dropped in reco - //art::Handle > sedHandle; - std::vector sedlist; - //if (evt.getByLabel(fSimDepProducer,sedHandle)){ - // art::fill_ptr_vector(sedlist, sedHandle); - // } - // -- SimChannels (usually dropped in reco) + // -- SimEnergyDeposits + art::Handle > sedHandle; + std::vector > sedlist; + if (evt.getByLabel(fSimDepProducer,sedHandle)){ + art::fill_ptr_vector(sedlist, sedHandle); + } + std::vector sIDElist; + // -- SimChannels art::Handle > simchanHandle; std::vector > simchanlist; if (evt.getByLabel(fSimChanProducer,simchanHandle)) { art::fill_ptr_vector(simchanlist, simchanHandle); - //Loop over channels to get full sedlist + //Loop over channels to get full sIDElist for(int chIndex=0; chIndex wids = wireReadoutGeom->Get().ChannelToWire( (*(simchanlist[chIndex])).Channel() ); //Not sure why this is a vector, but it should have len 1 - std::cout << " Got my wire for chIndex " << chIndex << " it has size " << wids.size() << " first entry string is " << wids[0].toString() << std::endl; const geo::PlaneID& planeID = wids[0].planeID(); if(int(planeID.Plane) != fCaloPlane) continue; //only take calorimetry plane IDE values - std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, 999999999); + std::cout << " Got my wire for chIndex " << chIndex << " it has size " << wids.size() << " first entry string is " << wids[0].toString() << std::endl; + unsigned int MaxTDCTick = 3401; + std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, MaxTDCTick); std::cout << " this channel has " << TempChIDE.size() << " IDEs" << std::endl; for(int ideIndex=0; ideIndex IDE otherwise. This is usually kept but results in strange bugs. + { + BlipUtils::FillParticleInfo( *plist[i], pinfo[i], sIDElist, fCaloPlane); + } if( map_g4trkid_charge[pinfo[i].trackId] ) pinfo[i].numElectrons = (int)map_g4trkid_charge[pinfo[i].trackId]; pinfo[i].index = i; } diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index e1b8b1b48..64eddc254 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -32,9 +32,8 @@ namespace BlipUtils { //=========================================================================== // Provided a MCParticle, calculate everything we'll need for later calculations // and save into ParticleInfo object - void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ - - // Get important info and do conversions +void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo){ + // Get important info and do conversions pinfo.particle = part; pinfo.trackId = part.TrackId(); pinfo.isPrimary = (int)(part.Process() == "primary"); @@ -50,17 +49,29 @@ namespace BlipUtils { pinfo.time = /*ns ->mus*/1e-3 * part.T(); pinfo.endtime = /*ns ->mus*/1e-3 * part.EndT(); pinfo.numTrajPts = part.NumberTrajectoryPoints(); - // Pathlength (in AV) and start/end point pinfo.pathLength = PathLength( part, pinfo.startPoint, pinfo.endPoint); - // Central position of trajectory pinfo.position = 0.5*(pinfo.startPoint+pinfo.endPoint); - // Energy/charge deposited by this particle, found using SimEnergyDeposits pinfo.depEnergy = 0; pinfo.depElectrons = 0; + return; +} +void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ + FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { + if( sed->TrackID() == part.TrackId() ) { + pinfo.depEnergy += sed->Energy(); + pinfo.depElectrons += sed->NumElectrons(); + } + } + return; + } + void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SIDEVec_t& sIDEvec, int caloPlane){ + + FillParticleInfo( part, pinfo); + for(auto& sed : sIDEvec ) { if( -1*sed.trackID == part.TrackId() || sed.trackID == part.TrackId() ) { pinfo.depEnergy += sed.energy; pinfo.depElectrons += sed.numElectrons; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 0584c9792..af947f0f0 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -37,8 +37,8 @@ #include "sbndcode/BlipRecoSBND/Utils/DataTypes.h" #include "TH1D.h" - -typedef std::vector SEDVec_t; +typedef std::vector> SEDVec_t; +typedef std::vector SIDEVec_t; geo::View_t kViews[3]={geo::kU, geo::kV, geo::kW}; @@ -49,6 +49,8 @@ namespace BlipUtils { //################################################### //void InitializeDetProps(); void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane=2); + void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane=2); + void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo); //void CalcPartDrift(blip::ParticleInfo&, int); //void CalcTotalDep(float&,int&,float&, SEDVec_t&); void MakeTrueBlips(std::vector&, std::vector&); From 666f85f3d48de9a82d2e226174bf1965eef2b121 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 15:19:39 -0600 Subject: [PATCH 10/57] Removed default arg --- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index af947f0f0..ecbfd76e6 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -48,8 +48,8 @@ namespace BlipUtils { // Functions related to blip reconstruction //################################################### //void InitializeDetProps(); - void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane=2); - void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane=2); + void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane); + void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane); void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo); //void CalcPartDrift(blip::ParticleInfo&, int); //void CalcTotalDep(float&,int&,float&, SEDVec_t&); From d4854a10008f787883c074ca5a8c4d60b5b50ada Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 15:22:02 -0600 Subject: [PATCH 11/57] wrong type --- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index ecbfd76e6..089b863d5 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -49,7 +49,7 @@ namespace BlipUtils { //################################################### //void InitializeDetProps(); void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane); - void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SEDVec_t&, int plane); + void FillParticleInfo(simb::MCParticle const&, blip::ParticleInfo&, SIDEVec_t&, int plane); void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo); //void CalcPartDrift(blip::ParticleInfo&, int); //void CalcTotalDep(float&,int&,float&, SEDVec_t&); From 645587bfac0aa4df101a6409ef1a256c917425dd Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 15:24:52 -0600 Subject: [PATCH 12/57] wrong type --- 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 6de0af9a3..76629727c 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -358,7 +358,7 @@ namespace blip { art::fill_ptr_vector(plist, pHandle); // -- SimEnergyDeposits - art::Handle > sedHandle; + art::Handle > sedHandle; std::vector > sedlist; if (evt.getByLabel(fSimDepProducer,sedHandle)){ art::fill_ptr_vector(sedlist, sedHandle); From f1a0d28b0e7cac51af0c0b12d1d70fb3de16dc76 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 15:33:41 -0600 Subject: [PATCH 13/57] debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 76629727c..47f065abe 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -386,6 +386,7 @@ namespace blip { } } } + std::cout << "sed list " << sedlist.size() << " IDElist " << sIDElist.size() << std::endl; // -- hits (from input module, usually track-masked subset of gaushit) art::Handle< std::vector > hitHandle; From 1ae2dd99173e96a09c7450f1fad596b90a45d43f Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 15:47:44 -0600 Subject: [PATCH 14/57] checking on sim energy deposit patch --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 47f065abe..54164e425 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -361,6 +361,7 @@ namespace blip { art::Handle > sedHandle; std::vector > sedlist; if (evt.getByLabel(fSimDepProducer,sedHandle)){ + std::cout << " in the sedlist filler " << std::endl; art::fill_ptr_vector(sedlist, sedHandle); } std::vector sIDElist; @@ -376,10 +377,8 @@ namespace blip { std::vector wids = wireReadoutGeom->Get().ChannelToWire( (*(simchanlist[chIndex])).Channel() ); //Not sure why this is a vector, but it should have len 1 const geo::PlaneID& planeID = wids[0].planeID(); if(int(planeID.Plane) != fCaloPlane) continue; //only take calorimetry plane IDE values - std::cout << " Got my wire for chIndex " << chIndex << " it has size " << wids.size() << " first entry string is " << wids[0].toString() << std::endl; unsigned int MaxTDCTick = 3401; std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, MaxTDCTick); - std::cout << " this channel has " << TempChIDE.size() << " IDEs" << std::endl; for(int ideIndex=0; ideIndex0) { + std::cout << " filling particle info with sedlist" << std::endl; BlipUtils::FillParticleInfo( *plist[i], pinfo[i], sedlist, fCaloPlane); } else //use sim::Channel -> IDE otherwise. This is usually kept but results in strange bugs. From 24c72c084174ce8abdfc103708371d15a4a990ef Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 16 Jan 2026 15:57:00 -0600 Subject: [PATCH 15/57] change ide performance --- 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 54164e425..73bdead1f 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -377,7 +377,7 @@ namespace blip { std::vector wids = wireReadoutGeom->Get().ChannelToWire( (*(simchanlist[chIndex])).Channel() ); //Not sure why this is a vector, but it should have len 1 const geo::PlaneID& planeID = wids[0].planeID(); if(int(planeID.Plane) != fCaloPlane) continue; //only take calorimetry plane IDE values - unsigned int MaxTDCTick = 3401; + unsigned int MaxTDCTick = 4294967294; // 1 under 32 bit unsigned int max std::vector< sim::IDE > TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, MaxTDCTick); for(int ideIndex=0; ideIndex Date: Tue, 20 Jan 2026 10:33:12 -0600 Subject: [PATCH 16/57] fixing blip ID markers? May not update on blip object --- 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 73bdead1f..31079e5a9 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1068,7 +1068,7 @@ namespace blip { for(auto& hc : hcGroup ) { hitclust[hc.ID].isMatched = true; for(auto hit : hitclust[hc.ID].HitIDs) hitinfo[hit].ismatch = true; - + hitclust[hc.ID].BlipID = newBlip.ID; // Diagnostic plots for successful 3-plane matches //if( picky && hc.Plane != fCaloPlane ) { //float q1 = (float)newBlip.clusters[fCaloPlane].Charge; From 0960ff9d641ab5df46d7930823c0f628a1270a57 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 20 Jan 2026 10:46:12 -0600 Subject: [PATCH 17/57] Better spot for blip id update --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 31079e5a9..e716b54a8 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1068,7 +1068,6 @@ namespace blip { for(auto& hc : hcGroup ) { hitclust[hc.ID].isMatched = true; for(auto hit : hitclust[hc.ID].HitIDs) hitinfo[hit].ismatch = true; - hitclust[hc.ID].BlipID = newBlip.ID; // Diagnostic plots for successful 3-plane matches //if( picky && hc.Plane != fCaloPlane ) { //float q1 = (float)newBlip.clusters[fCaloPlane].Charge; @@ -1123,6 +1122,10 @@ namespace blip { hitclust[hc.ID].BlipID = newBlip.ID; for( auto& h : hc.HitIDs ) hitinfo[h].blipid = newBlip.ID; } + for(auto hc : newBlip.clusters) + { + hc.BlipID = newBlip.ID; + } }//endif ncands > 0 From baeb5390c258653912f89147a8a4bbab6d05d287 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 20 Jan 2026 11:10:54 -0600 Subject: [PATCH 18/57] Maybe we add it to the vector too fast? --- 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 e716b54a8..86fd63e9c 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1117,7 +1117,6 @@ namespace blip { // if we made it this far, the blip is good! // associate this blip with the hits and clusters within it newBlip.ID = blips.size(); - blips.push_back(newBlip); for(auto& hc : hcGroup ) { hitclust[hc.ID].BlipID = newBlip.ID; for( auto& h : hc.HitIDs ) hitinfo[h].blipid = newBlip.ID; @@ -1126,6 +1125,7 @@ namespace blip { { hc.BlipID = newBlip.ID; } + blips.push_back(newBlip); }//endif ncands > 0 From 0043a9553ad8fcd179f1612cf3bd8ffac3eaf2f0 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 20 Jan 2026 11:23:53 -0600 Subject: [PATCH 19/57] Try explicitly accessing array --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 86fd63e9c..a39de37d8 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1121,9 +1121,9 @@ namespace blip { hitclust[hc.ID].BlipID = newBlip.ID; for( auto& h : hc.HitIDs ) hitinfo[h].blipid = newBlip.ID; } - for(auto hc : newBlip.clusters) + for(int iclust=0; iclust Date: Tue, 20 Jan 2026 11:31:44 -0600 Subject: [PATCH 20/57] That fixed it. Add a check for filling in blipID on real clusters --- 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 a39de37d8..c5758a8df 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -1123,7 +1123,7 @@ namespace blip { } for(int iclust=0; iclust-1) newBlip.clusters[iclust].BlipID = newBlip.ID; } blips.push_back(newBlip); From 1a077c86b9846d2828dff26ad2146eed2d513fe0 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 20 Jan 2026 12:00:01 -0600 Subject: [PATCH 21/57] Removed debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 38 ++++++------------------ 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index c5758a8df..9429bc8fb 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -32,7 +32,6 @@ namespace blip { // Loop over cryostats - std::cout<<"NCryostats: "< > sedHandle; std::vector > sedlist; if (evt.getByLabel(fSimDepProducer,sedHandle)){ - std::cout << " in the sedlist filler " << std::endl; art::fill_ptr_vector(sedlist, sedHandle); } std::vector sIDElist; @@ -385,8 +376,6 @@ namespace blip { } } } - std::cout << "sed list " << sedlist.size() << " IDElist " << sIDElist.size() << std::endl; - // -- hits (from input module, usually track-masked subset of gaushit) art::Handle< std::vector > hitHandle; std::vector > hitlist; @@ -449,9 +438,7 @@ namespace blip { //=============================================================== std::map< int, int > map_gh; // if input collection is already gaushit, this is trivial - std::cout << " About to fill in map with hitProducer " << fHitProducer << std::endl; if( fHitProducer == "gaushit" || fHitProducer == "specialblipgaushit") { - std::cout << " in special branch" << std::endl; for(auto& h : hitlist ) map_gh[h.key()] = h.key(); // ... but if not, find the matching gaushit. There's no convenient // hit ID, so we must loop through and compare channel/time (ugh) @@ -465,9 +452,7 @@ namespace blip { break; } } - } - std::cout << "done with map" << std::endl; - + } //===================================================== // Record PDG for every G4 Track ID //===================================================== @@ -539,7 +524,6 @@ namespace blip { //use sim::EnergyDeposits by default. This is heavy and may be dropped if(sedlist.size()>0) { - std::cout << " filling particle info with sedlist" << std::endl; BlipUtils::FillParticleInfo( *plist[i], pinfo[i], sedlist, fCaloPlane); } else //use sim::Channel -> IDE otherwise. This is usually kept but results in strange bugs. @@ -552,8 +536,6 @@ namespace blip { BlipUtils::MakeTrueBlips(pinfo, trueblips); BlipUtils::MergeTrueBlips(trueblips, fTrueBlipMergeDist); } - std::cout << "end of true blips" << std::endl; - //======================================= // Map track IDs to the index in the vector @@ -684,9 +666,7 @@ namespace blip { if( hitinfo[i].trkid < 0 ) nhits_untracked++; //printf(" %lu plane: %i, wire: %i, time: %i\n",i,hitinfo[i].plane,hitinfo[i].wire,int(hitinfo[i].driftTime)); - }//endloop over hits - std::cout << " Hit info filled in " << std::endl; - + }//endloop over hits //for(auto& a : tpc_plane_hitsMap ) { //for(auto& b : a.second ) //std::cout<<"TPC "<>> tpc_planeclustsMap; - std::cout << "Hit clustering processing" << std::endl; for(auto const& tpc_plane_hitsMap : cryo_tpc_plane_hitsMap ) { for(auto const& plane_hitsMap : tpc_plane_hitsMap.second ) { @@ -895,7 +874,6 @@ namespace blip { }//loop over planes }//loop over TPCs }//loop over cryostats - std::cout << "Done Hit clustering processing" << std::endl; //std::cout<<"All done with clustering\n"; @@ -914,7 +892,6 @@ namespace blip { float _matchQDiffLimit= (fMatchQDiffLimit <= 0 ) ? std::numeric_limits::max() : fMatchQDiffLimit; float _matchMaxQRatio = (fMatchMaxQRatio <= 0 ) ? std::numeric_limits::max() : fMatchMaxQRatio; - std::cout << "Plane matching " << std::endl; for(auto& tpcMap : tpc_planeclustsMap ) { // loop on TPCs //std::cout @@ -1121,9 +1098,14 @@ namespace blip { hitclust[hc.ID].BlipID = newBlip.ID; for( auto& h : hc.HitIDs ) hitinfo[h].blipid = newBlip.ID; } + //BLIPS HAVE A COPY OF HITCLUSTERS NOT A POINTER + //UPDATE THE HITCLUSTER VARS THAT HAVE CHANGED SINCE CONSTRUCTION for(int iclust=0; iclust-1) newBlip.clusters[iclust].BlipID = newBlip.ID; + if(newBlip.clusters[iclust].ID>-1){ + newBlip.clusters[iclust].BlipID = newBlip.ID; + newBlip.clusters[iclust].isMatched = true; + } } blips.push_back(newBlip); @@ -1132,8 +1114,6 @@ namespace blip { }//endloop over caloplane ("Plane A") clusters }//endif calo plane has clusters }//endloop over TPCs - std::cout << " done planematching " << std::endl; - // Re-index the clusters after removing unmatched if( !keepAllClusts ) { std::vector hitclust_filt; From 70cec633e48718807f93920adc06c61023b38fea Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 20 Jan 2026 12:37:06 -0600 Subject: [PATCH 22/57] temp debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 9429bc8fb..7a6436616 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -376,6 +376,7 @@ namespace blip { } } } + std::cout <<"IDE SIZE " << sIDElist.size() << " vs EDEP SIZE " << sedlist.size() << std::endl; // -- hits (from input module, usually track-masked subset of gaushit) art::Handle< std::vector > hitHandle; std::vector > hitlist; From a33d9ac3d022739c438ff5a465792c8a5af02337 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 20 Jan 2026 14:59:52 -0600 Subject: [PATCH 23/57] removed debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 1 - sbndcode/BlipRecoSBND/blipreco_configs.fcl | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 7a6436616..9429bc8fb 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -376,7 +376,6 @@ namespace blip { } } } - std::cout <<"IDE SIZE " << sIDElist.size() << " vs EDEP SIZE " << sedlist.size() << std::endl; // -- hits (from input module, usually track-masked subset of gaushit) art::Handle< std::vector > hitHandle; std::vector > hitlist; diff --git a/sbndcode/BlipRecoSBND/blipreco_configs.fcl b/sbndcode/BlipRecoSBND/blipreco_configs.fcl index 1d4158a21..e771f2d21 100644 --- a/sbndcode/BlipRecoSBND/blipreco_configs.fcl +++ b/sbndcode/BlipRecoSBND/blipreco_configs.fcl @@ -8,7 +8,7 @@ sbnd_blipalg: HitProducer: "specialblipgaushit" #// input recob::Hits to use for blip reconstruction TrkProducer: "blipPandoraTrackCopy" #// input recob::Tracks to use for blip reconstruction GeantProducer: "largeant" #// input sim::MCParticles (getting true particle info) - SimEDepProducer: "ionandscint" #// input sim::SimEnergyDeposits (getting energy/electrons deposited) + SimEDepProducer: "ionandscint:priorSCE:G4" #// input sim::SimEnergyDeposits (getting energy/electrons deposited) SimChanProducer: "simtpc2d:simpleSC:DetSim" #// label for sim::SimChannels (getting drifted charge; optional) MaxHitTrkLength: 5.0 #// hits in trks > this length will be vetoed [cm] DoHitFiltering: false #// filter hits based on amp, width, RMS From 39f8a7d173438b5b8873a254460e8ca59dc0af01 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Wed, 21 Jan 2026 16:25:27 -0600 Subject: [PATCH 24/57] Minor fix to true blip construction --- 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 64eddc254..065d99ae0 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -149,7 +149,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, simb::MCParticle& part = pinfo.particle; // Skip neutrons, photons - // if( part.PdgCode() == 2112 || part.PdgCode() == 22 ) return; + if( part.PdgCode() == 2112 || part.PdgCode() == 22 ) return; // Check that path length isn't zero if( !pinfo.pathLength ) return; From 3ecebc553f11eb835f386f8865e4157dd51aa299 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Wed, 21 Jan 2026 17:08:00 -0600 Subject: [PATCH 25/57] Break ancestry at neutron too --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 +++-- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 065d99ae0..0dd4a8587 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -115,7 +115,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, simb::MCParticle& p = pinfo[j].particle; std::string pr = p.Process(); if( p.PdgCode() != 2112 && (pr == "eIoni" || pr == "muIoni" || pr == "hIoni") ){ - if( IsAncestorOf(p.TrackId(),part.TrackId(),true) ) GrowTrueBlip(pinfo[j],tb); + if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ) GrowTrueBlip(pinfo[j],tb); } } } @@ -485,7 +485,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, //==================================================================== // Function to determine if a particle descended from another particle. // Allows option to break lineage at photons for contiguous parentage. - bool IsAncestorOf(int particleID, int ancestorID, bool breakAtPhots = false){ + bool IsAncestorOf(int particleID, int ancestorID, bool breakAtPhots = false, bool breakAtNeutrons = false){ art::ServiceHandle pi_serv; const sim::ParticleList& plist = pi_serv->ParticleList(); if( particleID == ancestorID ) return true; @@ -499,6 +499,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, simb::MCParticle pM = pi_serv->TrackIdToParticle(p.Mother()); if ( pM.TrackId() == ancestorID ) { return true; } else if ( breakAtPhots == true && pM.PdgCode() == 22 ) { return false; } + else if ( breakAtNeutrons && pM.PdgCode() == 2112 ) { return false; } else if ( pM.Process() == "primary" || pM.TrackId() == 1 ) { return false; } else if ( pM.Mother() == 0 ) { return false; } else { particleID = pM.TrackId(); } diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h index 089b863d5..59ed79735 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -80,7 +80,7 @@ namespace BlipUtils { //bool G4IdToMCTruth( int const, art::Ptr&); double PathLength(const simb::MCParticle&, TVector3&, TVector3&); double PathLength(const simb::MCParticle&); - bool IsAncestorOf(int, int, bool); + bool IsAncestorOf(int, int, bool, bool); double DistToBoundary(const recob::Track::Point_t&); double DistToLine(TVector3&, TVector3&, TVector3&); double DistToLine2D(TVector2&, TVector2&, TVector2&); From ee016146a9672ba232b50ef7269728d2447848bf Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 10:14:04 -0600 Subject: [PATCH 26/57] Removing special behavior on gamma/neutron outside of CheckAncestry --- 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 0dd4a8587..c9a954d88 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -149,7 +149,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, simb::MCParticle& part = pinfo.particle; // Skip neutrons, photons - if( part.PdgCode() == 2112 || part.PdgCode() == 22 ) return; + // if( part.PdgCode() == 2112 || part.PdgCode() == 22 ) return; // Check that path length isn't zero if( !pinfo.pathLength ) return; From adc506c7c361597ef50c187b91d6854ebda5903a Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 12:04:12 -0600 Subject: [PATCH 27/57] Noticed sim depEnergy was staying at zero. Trying to fix it --- 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 c9a954d88..0b06fc9b2 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,7 +61,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo){ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { - if( sed->TrackID() == part.TrackId() ) { + if( -1*sed.trackID == part.TrackId() || sed.trackID == part.TrackId() ) { pinfo.depEnergy += sed->Energy(); pinfo.depElectrons += sed->NumElectrons(); } From 43100bf089065ba1b330d227b55c0bb3be991bc5 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 12:06:13 -0600 Subject: [PATCH 28/57] typo --- 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 0b06fc9b2..af51498d6 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,7 +61,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo){ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { - if( -1*sed.trackID == part.TrackId() || sed.trackID == part.TrackId() ) { + if( -1*sed.trackID() == part.TrackId() || sed.trackID() == part.TrackId() ) { pinfo.depEnergy += sed->Energy(); pinfo.depElectrons += sed->NumElectrons(); } From 79fb458c8a17e7fd3e813421e4951c0e5e4d7a20 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 12:12:00 -0600 Subject: [PATCH 29/57] typo --- 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 af51498d6..1f5c8278d 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,7 +61,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo){ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { - if( -1*sed.trackID() == part.TrackId() || sed.trackID() == part.TrackId() ) { + if( -1*sed.TrackID() == part.TrackId() || sed.TrackID() == part.TrackId() ) { pinfo.depEnergy += sed->Energy(); pinfo.depElectrons += sed->NumElectrons(); } From c433721908f1f3c288b4f17317271e4646648ab1 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 12:15:42 -0600 Subject: [PATCH 30/57] typo --- 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 1f5c8278d..a51ecf6f2 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,7 +61,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo){ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { - if( -1*sed.TrackID() == part.TrackId() || sed.TrackID() == part.TrackId() ) { + if( -1*sed->TrackID() == part.TrackId() || sed->TrackID() == part.TrackId() ) { pinfo.depEnergy += sed->Energy(); pinfo.depElectrons += sed->NumElectrons(); } From 9efb275b95e8bd401bda16269b30e40c82b2f28f Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 12:20:38 -0600 Subject: [PATCH 31/57] debug --- 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 a51ecf6f2..c63c4a4ad 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,6 +61,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo){ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { + std::cout << sed->TrackID() << " vs " << part.TrackId() << std::endl; if( -1*sed->TrackID() == part.TrackId() || sed->TrackID() == part.TrackId() ) { pinfo.depEnergy += sed->Energy(); pinfo.depElectrons += sed->NumElectrons(); @@ -69,7 +70,6 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, return; } void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SIDEVec_t& sIDEvec, int caloPlane){ - FillParticleInfo( part, pinfo); for(auto& sed : sIDEvec ) { if( -1*sed.trackID == part.TrackId() || sed.trackID == part.TrackId() ) { From 5c40d9c9ac5115d51fbd9f76e0573e7bb27844b7 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 12:23:54 -0600 Subject: [PATCH 32/57] debug --- 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 c63c4a4ad..27db686f7 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,8 +61,8 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo){ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, SEDVec_t& sedvec, int caloPlane){ FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { - std::cout << sed->TrackID() << " vs " << part.TrackId() << std::endl; if( -1*sed->TrackID() == part.TrackId() || sed->TrackID() == part.TrackId() ) { + std::cout << " recording some edep information" << std::endl; pinfo.depEnergy += sed->Energy(); pinfo.depElectrons += sed->NumElectrons(); } From 9a4c8a370bf98a68ab14343ebfcded728533a2f5 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 13:16:40 -0600 Subject: [PATCH 33/57] change grow blip conditions --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 27db686f7..f5fadf941 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -62,7 +62,6 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, FillParticleInfo( part, pinfo); for(auto& sed : sedvec ) { if( -1*sed->TrackID() == part.TrackId() || sed->TrackID() == part.TrackId() ) { - std::cout << " recording some edep information" << std::endl; pinfo.depEnergy += sed->Energy(); pinfo.depElectrons += sed->NumElectrons(); } @@ -114,7 +113,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, for(size_t j=0; j Date: Thu, 22 Jan 2026 14:16:59 -0600 Subject: [PATCH 34/57] debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 ++ sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 9429bc8fb..55cb95f9f 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -534,7 +534,9 @@ namespace blip { pinfo[i].index = i; } BlipUtils::MakeTrueBlips(pinfo, trueblips); + std::cout << "True blip size after make " << trueblips.size() << std::endl; BlipUtils::MergeTrueBlips(trueblips, fTrueBlipMergeDist); + std::cout << "True blip size after merge " << trueblips.size() << std::endl; } //======================================= diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index f5fadf941..82dc79ff7 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -113,7 +113,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, for(size_t j=0; j Date: Thu, 22 Jan 2026 15:48:27 -0600 Subject: [PATCH 35/57] debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 55cb95f9f..6c8507fcd 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -693,6 +693,7 @@ namespace blip { // Basic track inclusion cut: exclude hits that were tracked + int Tracked=0; for(size_t i=0; iLength() > fMaxHitTrkLength ) { hitIsTracked[i] = true; hitIsGood[i] = false; + Tracked++; } } + std::cout << Tracked << " hits were in tracks from pandora " << std::endl; // Filter based on hit properties. For hits that are a part of From 6a7d42f7beb7a7dad632c097bb0057a4a6ea1809 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 16:03:00 -0600 Subject: [PATCH 36/57] debug --- sbndcode/BlipRecoSBND/BlipAna_module.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index b9ca904e8..5153898e4 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -1582,6 +1582,8 @@ void BlipAna::PrintClusterInfo(const blip::HitClust& hc){ hc.EdepID, hc.isMatched ); + printf("G4 IDs contib"); + for(g4ID : hc.G4IDs) printf("%i", g4ID); } void BlipAna::PrintBlipInfo(const blip::Blip& bl){ From 71d60223f6cb4678366b35f6744f8ee2e6c58a60 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 16:06:32 -0600 Subject: [PATCH 37/57] debug --- sbndcode/BlipRecoSBND/BlipAna_module.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index 5153898e4..13a64367d 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -1583,7 +1583,7 @@ void BlipAna::PrintClusterInfo(const blip::HitClust& hc){ hc.isMatched ); printf("G4 IDs contib"); - for(g4ID : hc.G4IDs) printf("%i", g4ID); + for(int g4ID : hc.G4IDs) printf("%i", g4ID); } void BlipAna::PrintBlipInfo(const blip::Blip& bl){ From 7ea7cd4a62ca3262ddd143a60002b4f63999de6d Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 16:09:15 -0600 Subject: [PATCH 38/57] debug --- sbndcode/BlipRecoSBND/BlipAna_module.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index 13a64367d..8ba95a8ea 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -1582,8 +1582,9 @@ void BlipAna::PrintClusterInfo(const blip::HitClust& hc){ hc.EdepID, hc.isMatched ); - printf("G4 IDs contib"); - for(int g4ID : hc.G4IDs) printf("%i", g4ID); + printf("G4 IDs contib \n"); + for(int g4ID : hc.G4IDs) printf(" %i ", g4ID); + printf("\n"); } void BlipAna::PrintBlipInfo(const blip::Blip& bl){ From 1ee64d5ad25f561d21abd55b9910aea5fd71d287 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 16:55:31 -0600 Subject: [PATCH 39/57] debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 6c8507fcd..c334b1e82 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -385,12 +385,8 @@ namespace blip { // -- hits (from gaushit), these are used in truth-matching of hits art::Handle< std::vector > hitHandleGH; std::vector > hitlistGH; - if(fHitProducer == "specialblipgaushit") - { - if(evt.getByLabel("specialblipgaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); - } - else if(evt.getByLabel("gaushit",hitHandleGH)) - art::fill_ptr_vector(hitlistGH, hitHandleGH); + if(evt.getByLabel("specialblipgaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); + else if(evt.getByLabel("gaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); // -- tracks art::Handle< std::vector > tracklistHandle; @@ -531,6 +527,7 @@ namespace blip { BlipUtils::FillParticleInfo( *plist[i], pinfo[i], sIDElist, fCaloPlane); } if( map_g4trkid_charge[pinfo[i].trackId] ) pinfo[i].numElectrons = (int)map_g4trkid_charge[pinfo[i].trackId]; + else pinfo[i].numElectrons = pinfo[i].depElectrons; // JACOB ADDITION Jan22, 2026 for strange channel IDE results pinfo[i].index = i; } BlipUtils::MakeTrueBlips(pinfo, trueblips); From 3c4cad33d17e66a094f01308b902cc2b9ab63647 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 17:05:54 -0600 Subject: [PATCH 40/57] Restore oldest logic --- 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 82dc79ff7..83a6bfc24 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -95,7 +95,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, //std::cout<<"Making true blip for "< Date: Thu, 22 Jan 2026 17:12:08 -0600 Subject: [PATCH 41/57] did not work --- 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 83a6bfc24..82dc79ff7 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -95,7 +95,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, //std::cout<<"Making true blip for "< Date: Thu, 22 Jan 2026 17:20:00 -0600 Subject: [PATCH 42/57] debug tracking --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 82dc79ff7..f8aa79350 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -105,6 +105,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, // Create the new blip blip::TrueBlip tb; GrowTrueBlip(pinfo[i],tb); + std::cout << "Made a true blip out of " << pinfo[i].TrackID() << " with code " << pinfo[i].PdgCode() << std::endl; if( !tb.Energy ) continue; // We want to loop through any contiguous electrons (produced @@ -114,7 +115,10 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, simb::MCParticle& p = pinfo[j].particle; std::string pr = p.Process(); if( p.PdgCode() != 2112 && p.PdgCode() != 22 && (pr == "eIoni" || pr == "muIoni" || pr == "hIoni") ){ //neutron and photons leave track - if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ) GrowTrueBlip(pinfo[j],tb); + if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ){ + GrowTrueBlip(pinfo[j],tb); + std::cout << " \t growing it with " << pinfo[j].TrackID() << " with code " << pinfo[j].PdgCode() << std::endl; + } } } } From c5af4ee8cd21fbe13c6be824528465d288413353 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 17:22:47 -0600 Subject: [PATCH 43/57] debug tracking --- 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 f8aa79350..2e6c44a38 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -117,7 +117,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, if( p.PdgCode() != 2112 && p.PdgCode() != 22 && (pr == "eIoni" || pr == "muIoni" || pr == "hIoni") ){ //neutron and photons leave track if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ){ GrowTrueBlip(pinfo[j],tb); - std::cout << " \t growing it with " << pinfo[j].TrackID() << " with code " << pinfo[j].PdgCode() << std::endl; + std::cout << " \t growing it with " << pinfo[j].particle.TrackID() << " with code " << pinfo[j].particle.PdgCode() << std::endl; } } } From e9214fa9b7552d2e8e9ae6b4b8b999ee438ca60d Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 17:24:54 -0600 Subject: [PATCH 44/57] debug tracking --- 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 2e6c44a38..53314314a 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -105,7 +105,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, // Create the new blip blip::TrueBlip tb; GrowTrueBlip(pinfo[i],tb); - std::cout << "Made a true blip out of " << pinfo[i].TrackID() << " with code " << pinfo[i].PdgCode() << std::endl; + std::cout << "Made a true blip out of " << pinfo[i].particle.TrackID() << " with code " << pinfo[i].particle.PdgCode() << std::endl; if( !tb.Energy ) continue; // We want to loop through any contiguous electrons (produced From 30bfe5bae554692c4abc1ce0b3c86790fee3ed48 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 17:26:26 -0600 Subject: [PATCH 45/57] debug tracking --- 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 53314314a..4d3673921 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -105,7 +105,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, // Create the new blip blip::TrueBlip tb; GrowTrueBlip(pinfo[i],tb); - std::cout << "Made a true blip out of " << pinfo[i].particle.TrackID() << " with code " << pinfo[i].particle.PdgCode() << std::endl; + std::cout << "Made a true blip out of " << pinfo[i].particle.TrackId() << " with code " << pinfo[i].particle.PdgCode() << std::endl; if( !tb.Energy ) continue; // We want to loop through any contiguous electrons (produced @@ -117,7 +117,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, if( p.PdgCode() != 2112 && p.PdgCode() != 22 && (pr == "eIoni" || pr == "muIoni" || pr == "hIoni") ){ //neutron and photons leave track if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ){ GrowTrueBlip(pinfo[j],tb); - std::cout << " \t growing it with " << pinfo[j].particle.TrackID() << " with code " << pinfo[j].particle.PdgCode() << std::endl; + std::cout << " \t growing it with " << pinfo[j].particle.TrackId() << " with code " << pinfo[j].particle.PdgCode() << std::endl; } } } From 0e92018094a843b0e4143008ccf3dbb2596ca69a Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 17:33:50 -0600 Subject: [PATCH 46/57] debug tracking --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 4d3673921..869272876 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -105,7 +105,8 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, // Create the new blip blip::TrueBlip tb; GrowTrueBlip(pinfo[i],tb); - std::cout << "Made a true blip out of " << pinfo[i].particle.TrackId() << " with code " << pinfo[i].particle.PdgCode() << std::endl; + std::cout << "Made a true blip out of " << pinfo[i].particle.TrackId() << " with code " << pinfo[i].particle.PdgCode() << + " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; if( !tb.Energy ) continue; // We want to loop through any contiguous electrons (produced @@ -117,7 +118,8 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, if( p.PdgCode() != 2112 && p.PdgCode() != 22 && (pr == "eIoni" || pr == "muIoni" || pr == "hIoni") ){ //neutron and photons leave track if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ){ GrowTrueBlip(pinfo[j],tb); - std::cout << " \t growing it with " << pinfo[j].particle.TrackId() << " with code " << pinfo[j].particle.PdgCode() << std::endl; + std::cout << " \t growing it with " << pinfo[j].particle.TrackId() << " with code " << pinfo[j].particle.PdgCode()<< + " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; } } } From 5f9d19d351de0f05fd73058f632f0a98c5e0735e Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 17:39:51 -0600 Subject: [PATCH 47/57] debug tracking --- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 869272876..725386fa5 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -105,7 +105,8 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, // Create the new blip blip::TrueBlip tb; GrowTrueBlip(pinfo[i],tb); - std::cout << "Made a true blip out of " << pinfo[i].particle.TrackId() << " with code " << pinfo[i].particle.PdgCode() << + std::cout << "Made a true blip out of " << pinfo[i].particle.TrackId() << " with code " << pinfo[i].particle.PdgCode() << " and daughters " + << pinfo[i].particle.NumberDaughters() << " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; if( !tb.Energy ) continue; @@ -119,7 +120,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ){ GrowTrueBlip(pinfo[j],tb); std::cout << " \t growing it with " << pinfo[j].particle.TrackId() << " with code " << pinfo[j].particle.PdgCode()<< - " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; + " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; //literally never seems to be called? } } } From ee4eb006311e69b7b6ad93a92c1ab91c819cf46b Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Thu, 22 Jan 2026 17:45:07 -0600 Subject: [PATCH 48/57] debug tracking --- 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 725386fa5..887ec2dd9 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -112,7 +112,8 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, // We want to loop through any contiguous electrons (produced // with process "eIoni") and add the energy they deposit into this blip. - if( part.NumberDaughters() ) { + if( part.NumberDaughters() ) { //particles have daughters but they must all be neutron, gamma, or one of the special processes? + int excludedDaughters=0; for(size_t j=0; j Date: Fri, 23 Jan 2026 10:43:05 -0600 Subject: [PATCH 49/57] Hiding away branch that shouldn't be accessed --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- sbndcode/BlipRecoSBND/BlipAna_module.cc | 1 - sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index c334b1e82..89468ffea 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -386,7 +386,7 @@ namespace blip { art::Handle< std::vector > hitHandleGH; std::vector > hitlistGH; if(evt.getByLabel("specialblipgaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); - else if(evt.getByLabel("gaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); + //else if(evt.getByLabel("gaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); // -- tracks art::Handle< std::vector > tracklistHandle; diff --git a/sbndcode/BlipRecoSBND/BlipAna_module.cc b/sbndcode/BlipRecoSBND/BlipAna_module.cc index 8ba95a8ea..012a6a8fb 100644 --- a/sbndcode/BlipRecoSBND/BlipAna_module.cc +++ b/sbndcode/BlipRecoSBND/BlipAna_module.cc @@ -1326,7 +1326,6 @@ void BlipAna::analyze(const art::Event& evt) } } - if( fDebugMode ) PrintClusterInfo(clust); }//endloop over 2D hit clusters diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 887ec2dd9..cf4c4fd06 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -124,7 +124,7 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; //literally never seems to be called? } } - else if(IsAncestorOf(p.TrackId(),part.TrackId(),true,true)) excludedDaughters++; + else if(IsAncestorOf(p.TrackId(),part.TrackId(),true,true)) excludedDaughters++; } std::cout << " \t " << excludedDaughters << " were of the special types" << std::endl; } From 4b6d9521d7491c021c85fe71f375336dfec83cef Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 12:43:31 -0600 Subject: [PATCH 50/57] special debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 89468ffea..8be2b192f 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -616,6 +616,15 @@ namespace blip { hitinfo[i].g4charge = 0; float maxQ = -9; for(size_t j=0; jPdgCode() << " and contribtues " << btvec.at(j)->numElectrons << std::endl; + } hitinfo[i].g4energy += btvec.at(j)->energy; hitinfo[i].g4charge += btvec.at(j)->numElectrons; if( btvec.at(j)->numElectrons <= maxQ ) continue; From 37d2a282fa3a6003704d690ee373787e881c542a Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 12:51:44 -0600 Subject: [PATCH 51/57] remove old debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 +- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 8be2b192f..935196d68 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -386,7 +386,7 @@ namespace blip { art::Handle< std::vector > hitHandleGH; std::vector > hitlistGH; if(evt.getByLabel("specialblipgaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); - //else if(evt.getByLabel("gaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); + else if(evt.getByLabel("gaushit",hitHandleGH)) art::fill_ptr_vector(hitlistGH, hitHandleGH); // -- tracks art::Handle< std::vector > tracklistHandle; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index cf4c4fd06..04345dce1 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -105,9 +105,6 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, // Create the new blip blip::TrueBlip tb; GrowTrueBlip(pinfo[i],tb); - std::cout << "Made a true blip out of " << pinfo[i].particle.TrackId() << " with code " << pinfo[i].particle.PdgCode() << " and daughters " - << pinfo[i].particle.NumberDaughters() << - " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; if( !tb.Energy ) continue; // We want to loop through any contiguous electrons (produced @@ -120,13 +117,10 @@ void FillParticleInfo( const simb::MCParticle& part, blip::ParticleInfo& pinfo, if( p.PdgCode() != 2112 && p.PdgCode() != 22 && (pr == "eIoni" || pr == "muIoni" || pr == "hIoni") ){ //neutron and photons leave track if( IsAncestorOf(p.TrackId(),part.TrackId(),true,true) ){ GrowTrueBlip(pinfo[j],tb); - std::cout << " \t growing it with " << pinfo[j].particle.TrackId() << " with code " << pinfo[j].particle.PdgCode()<< - " total electrons " << tb.DepElectrons << " total energy " << tb.Energy << std::endl; //literally never seems to be called? } } else if(IsAncestorOf(p.TrackId(),part.TrackId(),true,true)) excludedDaughters++; } - std::cout << " \t " << excludedDaughters << " were of the special types" << std::endl; } // Final check -- ensure there was non-negligible number From dc3aaf438571fd039555f2e6a3c6a567a1b1ce04 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 12:57:02 -0600 Subject: [PATCH 52/57] additional special debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 935196d68..6921091d3 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -622,6 +622,8 @@ namespace blip { { std::cout << " on hit " << igh << std::endl; std::cout << " its got pvec size " << pvec.size() << std::endl; + std::cout << "hit is on wire " << hitinfo[i].wire <<" in tpc " << hitinfo[i].tpc << " on plane " << hitinfo[i].plane << + " at time " << hitinfo[i].peakTime << std::endl; } std::cout << "pvec " << j << " has code " << pvec.at(j)->PdgCode() << " and contribtues " << btvec.at(j)->numElectrons << std::endl; } From 851365f9f1ec37ca0957024a921cb58caeff44dc Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 13:10:35 -0600 Subject: [PATCH 53/57] additional special debug --- 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 6921091d3..cc9f80dd0 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -621,7 +621,7 @@ namespace blip { if(j==0) { std::cout << " on hit " << igh << std::endl; - std::cout << " its got pvec size " << pvec.size() << std::endl; + std::cout << " its got pvec size " << pvec.size() << " and btvec size " << btvec.size() << std::endl; std::cout << "hit is on wire " << hitinfo[i].wire <<" in tpc " << hitinfo[i].tpc << " on plane " << hitinfo[i].plane << " at time " << hitinfo[i].peakTime << std::endl; } From 79aef20d00318da6251fc827257c43f488d2e01a Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 13:22:09 -0600 Subject: [PATCH 54/57] A guess --- 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 cc9f80dd0..6e8398b8c 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -397,7 +397,7 @@ namespace blip { // -- associations art::FindManyP fmtrk(hitHandle,evt,fTrkProducer); art::FindManyP fmtrkGH(hitHandleGH,evt,fTrkProducer); - art::FindMany fmhh(hitHandleGH,evt,"blipgaushitTruthMatch"); + art::FindMany fmhh(hitHandleGH,evt,"blipgaushitTruthMatch"); /* //==================================================== // Update map of bad channels for this event From b38684412f589c2642df44a6044e54639e2f59fc Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 13:36:55 -0600 Subject: [PATCH 55/57] A guess2 --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 6e8398b8c..9b680f66d 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -397,7 +397,7 @@ namespace blip { // -- associations art::FindManyP fmtrk(hitHandle,evt,fTrkProducer); art::FindManyP fmtrkGH(hitHandleGH,evt,fTrkProducer); - art::FindMany fmhh(hitHandleGH,evt,"blipgaushitTruthMatch"); + art::FindMany fmhh(hitHandleGH,evt,"blipgaushitTruthMatch"); /* //==================================================== // Update map of bad channels for this event @@ -611,7 +611,7 @@ namespace blip { if( fmhh.at(igh).size() ) { std::vector pvec; std::vector btvec; - fmhh.get(igh,pvec,btvec); + fmhh.get(pvec,igh,btvec); hitinfo[i].g4energy = 0; hitinfo[i].g4charge = 0; float maxQ = -9; From 3d2dd5b7399373f88630cb4073ec1cd60f44205c Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 13:42:17 -0600 Subject: [PATCH 56/57] Final guess --- 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 9b680f66d..133102da2 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -611,7 +611,7 @@ namespace blip { if( fmhh.at(igh).size() ) { std::vector pvec; std::vector btvec; - fmhh.get(pvec,igh,btvec); + fmhh.get(igh,btvec,pvec); hitinfo[i].g4energy = 0; hitinfo[i].g4charge = 0; float maxQ = -9; From 8d06c28c8f8e64094cb68eb0c62f98ce2e4fd1e3 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 23 Jan 2026 13:44:56 -0600 Subject: [PATCH 57/57] back to original --- 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 133102da2..adaa261b4 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -611,7 +611,7 @@ namespace blip { if( fmhh.at(igh).size() ) { std::vector pvec; std::vector btvec; - fmhh.get(igh,btvec,pvec); + fmhh.get(igh,pvec,btvec); hitinfo[i].g4energy = 0; hitinfo[i].g4charge = 0; float maxQ = -9;