From 416981f8d7a2a02893f879172d0f476d93070478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20S=C3=A1nchez=20Castillo?= Date: Wed, 26 Feb 2025 04:09:08 -0600 Subject: [PATCH 1/3] Add compatibility with OpDetWaveform --- duneopdet/OpticalDetector/AlgoSSPLeadingEdge.cc | 4 ++-- duneopdet/OpticalDetector/AlgoSSPLeadingEdge.h | 4 +++- duneopdet/OpticalDetector/CMakeLists.txt | 1 + .../OpticalDetector/OpDetDigitizerDUNEDP_module.cc | 4 +++- .../OpticalDetector/OpDetDigitizerDUNE_module.cc | 12 +++++++----- .../OpDetDigitizerProtoDUNE_module.cc | 5 ++++- .../OpticalDetector/OpHitFinder/OpHitAlg_deco.cxx | 6 ++++-- 7 files changed, 24 insertions(+), 12 deletions(-) diff --git a/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.cc b/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.cc index a41efc5b..5efe2908 100644 --- a/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.cc +++ b/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.cc @@ -55,7 +55,7 @@ namespace pmtana { } //--------------------------------------------------------------------------- - bool AlgoSSPLeadingEdge::RecoPulse( const pmtana::Waveform_t& wf, + bool AlgoSSPLeadingEdge::RecoPulse( const raw::OpDetWaveform& wf, const pmtana::PedestalMean_t& ped_mean, const pmtana::PedestalSigma_t& ped_rms ) { @@ -141,4 +141,4 @@ namespace pmtana { } -} +} \ No newline at end of file diff --git a/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.h b/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.h index d6fed9c2..21d850da 100644 --- a/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.h +++ b/duneopdet/OpticalDetector/AlgoSSPLeadingEdge.h @@ -13,6 +13,7 @@ #define AlgoSSPLeadingEdge_H 1 #include "fhiclcpp/ParameterSet.h" +#include "lardataobj/RawData/OpDetWaveform.h" #include "larana/OpticalDetector/OpHitFinder/PMTPulseRecoBase.h" #include @@ -34,9 +35,10 @@ namespace pmtana { void Reset(); protected: - bool RecoPulse( const pmtana::Waveform_t&, + bool RecoPulse( const raw::OpDetWaveform&, const pmtana::PedestalMean_t&, const pmtana::PedestalSigma_t& ); + // A variable holder for a user-defined absolute ADC threshold value double _adc_thres; diff --git a/duneopdet/OpticalDetector/CMakeLists.txt b/duneopdet/OpticalDetector/CMakeLists.txt index 0354cb55..727556ba 100644 --- a/duneopdet/OpticalDetector/CMakeLists.txt +++ b/duneopdet/OpticalDetector/CMakeLists.txt @@ -33,6 +33,7 @@ art_make( BASENAME_ONLY ALLOW_UNDERSCORES dunecore::DuneObj lardataalg::DetectorInfo lardataobj::RecoBase + lardataobj::RawData lardata::headers larana::OpticalDetector larana::OpticalDetector_OpHitFinder diff --git a/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc index d7d0142a..253293c8 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc @@ -858,8 +858,10 @@ namespace opdet { ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); + raw::OpDetWaveform myWaveform(-1, 1,std::vector (waveform.begin(), waveform.end()) ); - fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma); + + fThreshAlg->Reconstruct(myWaveform,ped_mean,ped_sigma); std::vector< pmtana::pulse_param > pulses; for (size_t pulseCounter = 0; pulseCounter < fThreshAlg->GetNPulse(); diff --git a/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc index 44bf1f3f..af0d0dda 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc @@ -469,8 +469,10 @@ namespace opdet { // functions below take a begin()/end() pair. const std::vector sub(pdWaveforms[hardwareChannel].begin()+p.first, pdWaveforms[hardwareChannel].begin()+p.second+1); - - std::vector< short > waveformOfShorts = VectorOfDoublesToVectorOfShorts(sub); + + unsigned int opChannel = wireReadout.OpChannel(opDet, hardwareChannel); + std::vector< short > _waveformOfShorts = VectorOfDoublesToVectorOfShorts(sub); + raw::OpDetWaveform waveformOfShorts(opChannel, -99999.,std::vector (_waveformOfShorts.begin(), _waveformOfShorts.end())) std::map< size_t, std::vector < short > > mapTickWaveform = (!fFullWaveformOutput) ? @@ -478,8 +480,6 @@ namespace opdet { std::map< size_t, std::vector< short > >{ std::make_pair(0, waveformOfShorts) }; - unsigned int opChannel = wireReadout.OpChannel(opDet, hardwareChannel); - for (auto const& pairTickWaveform : mapTickWaveform) { double timeStamp = @@ -758,7 +758,9 @@ namespace opdet { ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); - fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma); + raw::OpDetWaveform myWaveform(-1, 1,std::vector (waveform.begin(), waveform.end()) ); + + fThreshAlg->Reconstruct(myWaveform,ped_mean,ped_sigma); std::vector< pmtana::pulse_param > pulses; for (size_t pulseCounter = 0; pulseCounter < fThreshAlg->GetNPulse(); diff --git a/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc index 2a915aef..f3015c49 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc @@ -738,7 +738,10 @@ namespace opdet { ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); - fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma); + raw::OpDetWaveform myWaveform(-1, 1,std::vector (waveform.begin(), waveform.end()) ); + + + fThreshAlg->Reconstruct(myWaveform,ped_mean,ped_sigma); std::vector< pmtana::pulse_param > pulses; for (size_t pulseCounter = 0; pulseCounter < fThreshAlg->GetNPulse(); diff --git a/duneopdet/OpticalDetector/OpHitFinder/OpHitAlg_deco.cxx b/duneopdet/OpticalDetector/OpHitFinder/OpHitAlg_deco.cxx index 3ff8d20e..e05bbd31 100644 --- a/duneopdet/OpticalDetector/OpHitFinder/OpHitAlg_deco.cxx +++ b/duneopdet/OpticalDetector/OpHitFinder/OpHitAlg_deco.cxx @@ -95,10 +95,12 @@ namespace opdet { std::vector short_deco_waveform; //vector used to convert from float to short. for (unsigned int i_tick=0; i_tick < deco_waveform.Signal().size(); ++i_tick) { - short_deco_waveform.emplace_back(static_cast(scale*deco_waveform.Signal().at(i_tick))); + short_deco_waveform.emplace_back(static_cast(scale*deco_waveform.Signal().at(i_tick))); } - pulseRecoMgr.Reconstruct(short_deco_waveform); + raw::OpDetWaveform short_deco_waveform_reconstruct(timeStamp, channel,std::vector (short_deco_waveform.begin(), short_deco_waveform.end()) ); + + pulseRecoMgr.Reconstruct(short_deco_waveform_reconstruct); // Get the result auto const& pulses = threshAlg.GetPulses(); From 2a4ef9bf8162a36f3686976f7a903ba03b4fba06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20S=C3=A1nchez=20Castillo?= Date: Wed, 26 Feb 2025 04:23:36 -0600 Subject: [PATCH 2/3] Fix naming --- duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc | 7 +++---- .../OpticalDetector/OpDetDigitizerProtoDUNE_module.cc | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc index 253293c8..6790d568 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc @@ -849,7 +849,7 @@ namespace opdet { //--------------------------------------------------------------------------- std::map< size_t, std::vector< short > > OpDetDigitizerDUNEDP:: - SplitWaveform(std::vector< short > const& waveform, + SplitWaveform(std::vector< short > const& waveform_short, const FocusList& fls) { @@ -858,10 +858,9 @@ namespace opdet { ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); - raw::OpDetWaveform myWaveform(-1, 1,std::vector (waveform.begin(), waveform.end()) ); + raw::OpDetWaveform waveform(-1, -99999.,std::vector (waveform_short.begin(), waveform_short.end()) ); - - fThreshAlg->Reconstruct(myWaveform,ped_mean,ped_sigma); + fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma); std::vector< pmtana::pulse_param > pulses; for (size_t pulseCounter = 0; pulseCounter < fThreshAlg->GetNPulse(); diff --git a/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc index f3015c49..6a6b96d2 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc @@ -729,7 +729,7 @@ namespace opdet { //--------------------------------------------------------------------------- std::map< size_t, std::vector< short > > OpDetDigitizerProtoDUNE:: - SplitWaveform(std::vector< short > const& waveform, + SplitWaveform(std::vector< short > const& waveform_short, const FocusList& fls) { @@ -738,10 +738,9 @@ namespace opdet { ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); - raw::OpDetWaveform myWaveform(-1, 1,std::vector (waveform.begin(), waveform.end()) ); + raw::OpDetWaveform waveform(-1, -99999.,std::vector (waveform_short.begin(), waveform_short.end()) ); - - fThreshAlg->Reconstruct(myWaveform,ped_mean,ped_sigma); + fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma); std::vector< pmtana::pulse_param > pulses; for (size_t pulseCounter = 0; pulseCounter < fThreshAlg->GetNPulse(); From 0ddd4a39935b6620d299a9500dfa68a66ae49a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20S=C3=A1nchez=20Castillo?= Date: Thu, 27 Feb 2025 04:40:43 -0600 Subject: [PATCH 3/3] Fix syntax --- .../OpticalDetector/OpDetDigitizerDUNEDP_module.cc | 6 +++--- .../OpticalDetector/OpDetDigitizerDUNE_module.cc | 12 ++++++------ .../OpDetDigitizerProtoDUNE_module.cc | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc index 6790d568..f4b7bbc5 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerDUNEDP_module.cc @@ -855,10 +855,10 @@ namespace opdet { std::map< size_t, std::vector< short > > mapTickWaveform; - ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); - ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); + ::pmtana::PedestalMean_t ped_mean (waveform_short.size(),0); + ::pmtana::PedestalSigma_t ped_sigma(waveform_short.size(),0); - raw::OpDetWaveform waveform(-1, -99999.,std::vector (waveform_short.begin(), waveform_short.end()) ); + raw::OpDetWaveform waveform(-99999., 0,std::vector (waveform_short.begin(), waveform_short.end()) ); fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma); diff --git a/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc index af0d0dda..383dbcd0 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerDUNE_module.cc @@ -472,7 +472,7 @@ namespace opdet { unsigned int opChannel = wireReadout.OpChannel(opDet, hardwareChannel); std::vector< short > _waveformOfShorts = VectorOfDoublesToVectorOfShorts(sub); - raw::OpDetWaveform waveformOfShorts(opChannel, -99999.,std::vector (_waveformOfShorts.begin(), _waveformOfShorts.end())) + raw::OpDetWaveform waveformOfShorts(-99999., opChannel, std::vector (_waveformOfShorts.begin(), _waveformOfShorts.end())); std::map< size_t, std::vector < short > > mapTickWaveform = (!fFullWaveformOutput) ? @@ -749,18 +749,18 @@ namespace opdet { //--------------------------------------------------------------------------- std::map< size_t, std::vector< short > > OpDetDigitizerDUNE:: - SplitWaveform(std::vector< short > const& waveform, + SplitWaveform(std::vector< short > const& waveform_short, const FocusList& fls) { std::map< size_t, std::vector< short > > mapTickWaveform; - ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); - ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); + ::pmtana::PedestalMean_t ped_mean (waveform_short.size(),0); + ::pmtana::PedestalSigma_t ped_sigma(waveform_short.size(),0); - raw::OpDetWaveform myWaveform(-1, 1,std::vector (waveform.begin(), waveform.end()) ); + raw::OpDetWaveform waveform(-99999., 0,std::vector (waveform_short.begin(), waveform_short.end()) ); - fThreshAlg->Reconstruct(myWaveform,ped_mean,ped_sigma); + fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma); std::vector< pmtana::pulse_param > pulses; for (size_t pulseCounter = 0; pulseCounter < fThreshAlg->GetNPulse(); diff --git a/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc b/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc index 6a6b96d2..2d050444 100644 --- a/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc +++ b/duneopdet/OpticalDetector/OpDetDigitizerProtoDUNE_module.cc @@ -735,10 +735,10 @@ namespace opdet { std::map< size_t, std::vector< short > > mapTickWaveform; - ::pmtana::PedestalMean_t ped_mean (waveform.size(),0); - ::pmtana::PedestalSigma_t ped_sigma(waveform.size(),0); + ::pmtana::PedestalMean_t ped_mean (waveform_short.size(),0); + ::pmtana::PedestalSigma_t ped_sigma(waveform_short.size(),0); - raw::OpDetWaveform waveform(-1, -99999.,std::vector (waveform_short.begin(), waveform_short.end()) ); + raw::OpDetWaveform waveform(-99999., 0,std::vector (waveform_short.begin(), waveform_short.end()) ); fThreshAlg->Reconstruct(waveform,ped_mean,ped_sigma);