From f0611b985f40f4efc58a8bc537d145cc1a3bb9b9 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Wed, 15 Oct 2025 11:39:21 -0500 Subject: [PATCH 1/5] Updated Sim::EnergyDeposit to Sim::IDE --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 4 ++-- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 6 +++--- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 1abf5cc7f..c1cb39e2c 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -358,8 +358,8 @@ namespace blip { art::fill_ptr_vector(plist, pHandle); // -- SimEnergyDeposits - art::Handle > sedHandle; - std::vector > sedlist; + art::Handle > sedHandle; + std::vector > sedlist; if (evt.getByLabel(fSimDepProducer,sedHandle)){ art::fill_ptr_vector(sedlist, sedHandle); } diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index 1b1e674f0..d07839c27 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,9 +61,9 @@ namespace BlipUtils { pinfo.depEnergy = 0; pinfo.depElectrons = 0; for(auto& sed : sedvec ) { - if( sed->TrackID() == part.TrackId() ) { - pinfo.depEnergy += sed->Energy(); - pinfo.depElectrons += sed->NumElectrons(); + if( 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 bcd216b38..e05ee7baf 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.h +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.h @@ -38,7 +38,7 @@ #include "TH1D.h" -typedef std::vector> SEDVec_t; +typedef std::vector> SEDVec_t; geo::View_t kViews[3]={geo::kU, geo::kV, geo::kW}; From 3ec91ec3d6ee8191de8c71e8807a4df7fbe42ea2 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Tue, 21 Oct 2025 08:28:07 -0500 Subject: [PATCH 2/5] initial draft of simIDE interface --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 29 ++++++++++++++++------ sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 16 +++++++----- sbndcode/BlipRecoSBND/Utils/BlipUtils.h | 2 +- sbndcode/BlipRecoSBND/blipreco_configs.fcl | 2 +- 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index c1cb39e2c..ece1a9966 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -357,18 +357,31 @@ namespace blip { if (evt.getByLabel(fGeantProducer,pHandle)) art::fill_ptr_vector(plist, pHandle); - // -- SimEnergyDeposits - art::Handle > sedHandle; - std::vector > sedlist; - if (evt.getByLabel(fSimDepProducer,sedHandle)){ - art::fill_ptr_vector(sedlist, sedHandle); - } - + // -- SimEnergyDeposits (usually dropped in reco + //art::Handle > sedHandle; + std::vector sedlist; + //if (evt.getByLabel(fSimDepProducer,sedHandle)){ + // art::fill_ptr_vector(sedlist, sedHandle); + // } + std::cout << " \n\n\n\n\n\n\n\n\n Look here \n\n\n\n\n " << std::endl; // -- SimChannels (usually dropped in reco) art::Handle > simchanHandle; std::vector > simchanlist; - if (evt.getByLabel(fSimChanProducer,simchanHandle)) + std::cout << fSimChanProducer << " Look at my sim channel handle here " < TempChIDE = (*simchanlist[chIndex]).TrackIDsAndEnergies(0, 999999999); + for(int ideIndex=0; ideIndex > hitHandle; diff --git a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc index d07839c27..9a9311824 100644 --- a/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc +++ b/sbndcode/BlipRecoSBND/Utils/BlipUtils.cc @@ -61,12 +61,12 @@ namespace BlipUtils { pinfo.depEnergy = 0; pinfo.depElectrons = 0; for(auto& sed : sedvec ) { - if( sed->trackID == part.TrackId() ) { - pinfo.depEnergy += sed->energy; - pinfo.depElectrons += sed->numElectrons; + if( -1*sed.trackID == part.TrackId() || sed.trackID == part.TrackId() ) { + pinfo.depEnergy += sed.energy; + pinfo.depElectrons += sed.numElectrons; } } - + std::cout << pinfo.depEnergy << " " << pinfo.trackId << std::endl; return; } @@ -86,7 +86,7 @@ namespace BlipUtils { //std::cout<<"Making true blip for "<> SEDVec_t; +typedef std::vector SEDVec_t; geo::View_t kViews[3]={geo::kU, geo::kV, geo::kW}; diff --git a/sbndcode/BlipRecoSBND/blipreco_configs.fcl b/sbndcode/BlipRecoSBND/blipreco_configs.fcl index 48de2f0ee..16e0b6fcd 100644 --- a/sbndcode/BlipRecoSBND/blipreco_configs.fcl +++ b/sbndcode/BlipRecoSBND/blipreco_configs.fcl @@ -9,7 +9,7 @@ sbnd_blipalg: TrkProducer: "pandoraTrack" #// 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) - SimChanProducer: "simdrift" #// label for sim::SimChannels (getting drifted charge; optional) + 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 HitClustWireRange: 1 #// clustering wire width From 48e0f471ba051a9d6aca943da7fd3a99fb467d34 Mon Sep 17 00:00:00 2001 From: Jacob McLaughlin Date: Fri, 24 Oct 2025 15:09:26 -0500 Subject: [PATCH 3/5] Adjusted to only include collection plane --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 3 +++ sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 1 + 2 files changed, 4 insertions(+) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index ece1a9966..862e8a302 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -374,6 +374,9 @@ namespace blip { //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 Date: Tue, 4 Nov 2025 10:40:18 -0600 Subject: [PATCH 4/5] Removing debug --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc | 2 -- sbndcode/BlipRecoSBND/Utils/BlipUtils.cc | 5 ----- 2 files changed, 7 deletions(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc index 862e8a302..eb9a3b810 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.cc @@ -363,11 +363,9 @@ namespace blip { //if (evt.getByLabel(fSimDepProducer,sedHandle)){ // art::fill_ptr_vector(sedlist, sedHandle); // } - std::cout << " \n\n\n\n\n\n\n\n\n Look here \n\n\n\n\n " << std::endl; // -- SimChannels (usually dropped in reco) art::Handle > simchanHandle; std::vector > simchanlist; - std::cout << fSimChanProducer << " Look at my sim channel handle here " < Date: Tue, 4 Nov 2025 12:26:40 -0600 Subject: [PATCH 5/5] Outputing collection plane hit clusts --- sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h | 3 ++- sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc | 9 +++++++++ sbndcode/BlipRecoSBND/Utils/classes_def.xml | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h index 4ba2e61ad..96578e37b 100644 --- a/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h +++ b/sbndcode/BlipRecoSBND/Alg/BlipRecoAlg.h @@ -117,6 +117,7 @@ namespace blip { float kDriftVelocity; float kTickPeriod; int kNumChannels; + int fCaloPlane; private: @@ -172,7 +173,7 @@ namespace blip { bool fKeepAllClusts[kNplanes]; // --- Calorimetry configs --- - int fCaloPlane; + //int fCaloPlane; float fCalodEdx; float fESTAR_p0; float fESTAR_p1; diff --git a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc index f7f366b9a..962367af5 100644 --- a/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc +++ b/sbndcode/BlipRecoSBND/BlipRecoProducer_module.cc @@ -88,6 +88,7 @@ BlipRecoProducer::BlipRecoProducer(fhicl::ParameterSet const & pset) produces< std::vector< recob::SpacePoint > >(); produces< art::Assns < recob::Hit, recob::SpacePoint> >(); produces< std::vector< blip::Blip > >(); + produces< std::vector >(); //produces< art::Assns < blip::Blip, recob::SpacePoint > >(); produces< art::Assns < blip::Blip, recob::Hit> >(); @@ -124,6 +125,7 @@ void BlipRecoProducer::produce(art::Event & evt) std::unique_ptr< art::Assns > assn_blip_hit_v(std::make_unique >() ); std::unique_ptr< std::vector< recob::SpacePoint> > SpacePoint_v(std::make_unique>()); std::unique_ptr< art::Assns > assn_hit_sps_v(std::make_unique>() ); + std::unique_ptr< std::vector< blip::HitClust> > collection_hitclust(std::make_unique>()); art::PtrMaker makeBlipPtr(evt); @@ -180,6 +182,12 @@ void BlipRecoProducer::produce(art::Event & evt) } } + //adding all the collection hit clusters + for(int iclust=0; iclusthitclust.size()); iclust++) + { + if( (fBlipAlg->hitclust)[iclust].Plane != fBlipAlg->fCaloPlane) continue; + collection_hitclust->push_back((fBlipAlg->hitclust)[iclust]); + } //=========================================== // Put them on the event @@ -189,6 +197,7 @@ void BlipRecoProducer::produce(art::Event & evt) evt.put(std::move(blip_v)); //evt.put(std::move(assn_blip_sps_v)); evt.put(std::move(assn_blip_hit_v)); + evt.put(std::move(collection_hitclust)); }//END EVENT LOOP DEFINE_ART_MODULE(BlipRecoProducer) diff --git a/sbndcode/BlipRecoSBND/Utils/classes_def.xml b/sbndcode/BlipRecoSBND/Utils/classes_def.xml index c5492251c..f737c0046 100644 --- a/sbndcode/BlipRecoSBND/Utils/classes_def.xml +++ b/sbndcode/BlipRecoSBND/Utils/classes_def.xml @@ -3,6 +3,8 @@ + +