From ce6df42cff83eee4e2afe8e005509816faf2c6a1 Mon Sep 17 00:00:00 2001 From: Yoann Kermaidic Date: Mon, 3 Nov 2025 09:52:25 +0100 Subject: [PATCH 1/4] Remove sipm from PDVD detsim products --- fcl/protodunevd/detsim/protodunevd_detsim.fcl | 7 ++++--- test/ci/ci_test_detsim_protoDUNEvd.fcl | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fcl/protodunevd/detsim/protodunevd_detsim.fcl b/fcl/protodunevd/detsim/protodunevd_detsim.fcl index 165dcd58..e9ed8ada 100644 --- a/fcl/protodunevd/detsim/protodunevd_detsim.fcl +++ b/fcl/protodunevd/detsim/protodunevd_detsim.fcl @@ -39,9 +39,10 @@ physics: simulate: [ rns, # TPC simulation tpcrawdecoder, - # OpDet and CRT simulation - sipmSim, opdigi, - crt + # OpDet simulation + opdigi, + # CRT simulation + crt ] stream1: [ out1 ] diff --git a/test/ci/ci_test_detsim_protoDUNEvd.fcl b/test/ci/ci_test_detsim_protoDUNEvd.fcl index 6b684a32..c572dc6e 100644 --- a/test/ci/ci_test_detsim_protoDUNEvd.fcl +++ b/test/ci/ci_test_detsim_protoDUNEvd.fcl @@ -7,7 +7,6 @@ services.NuRandomService.StuckBitAdcDistortionService: 1234 services.NuRandomService.ExponentialChannelNoiseService: 1234 services.NuRandomService.ProvidedPedestalAdditionService: 1234 services.NuRandomService.opdigi.waveformdigi: 1234 -services.NuRandomService.sipmSim.sipm: 1234 services.RandomNumberGenerator.restoreFrom: "DetSimRandomSeeds_Ref_protoDUNE.dat" services.RandomNumberGenerator.saveTo: "DetSimRandomSeeds.dat" From 69b7d24c13100f05f96a888e855143bf57e360aa Mon Sep 17 00:00:00 2001 From: Yoann Kermaidic Date: Mon, 3 Nov 2025 11:41:19 +0100 Subject: [PATCH 2/4] Update PDVD ci detsim cpu range --- test/ci/ci_tests.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/ci/ci_tests.cfg b/test/ci/ci_tests.cfg index ef7c0b54..a01db071 100755 --- a/test/ci/ci_tests.cfg +++ b/test/ci/ci_tests.cfg @@ -474,7 +474,7 @@ OUTPUT_STREAM=%(BASE_FILE_NAME)s_%(STAGE_NAME)s_%(CUR_DUNETPC)s.root REFERENCE_FILES=%(XROOTD_INPUTFILEDIR_DUNETPC)s/%(EXTRA_DIR)s/%(STAGE_NAME)s/%(BASE_FILE_NAME)s_%(STAGE_NAME)s_%(REF_DUNETPC)s.root args=%(STDARGS_DUNETPC)s --input-files-to-fetch %(INPUT_FILES_TO_FETCH)s --input-file %(INPUT_STREAM)s --reference-files %(REFERENCE_FILES)s parse_art_time_db=True -mem_usage_range=1050000:2000000 +mem_usage_range=500000:2000000 cpu_usage_range=50:400 output1=*.root From 251f243005c9fa7e855e86812e11ce04cf35a0f6 Mon Sep 17 00:00:00 2001 From: Yoann Kermaidic Date: Mon, 17 Nov 2025 16:45:52 +0100 Subject: [PATCH 3/4] Fix typo in nopds config --- fcl/protodunevd/detsim/protodunevd_detsim_nopds.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fcl/protodunevd/detsim/protodunevd_detsim_nopds.fcl b/fcl/protodunevd/detsim/protodunevd_detsim_nopds.fcl index 148c7f71..b5819e19 100644 --- a/fcl/protodunevd/detsim/protodunevd_detsim_nopds.fcl +++ b/fcl/protodunevd/detsim/protodunevd_detsim_nopds.fcl @@ -1,6 +1,6 @@ #include "protodunevd_detsim.fcl" -physics:.simulate: [ rns, +physics.simulate: [ rns, tpcrawdecoder, crt ] From c0b5a12ccc2c293a60c4e229e6d54f2d9704a155 Mon Sep 17 00:00:00 2001 From: Yoann Kermaidic Date: Fri, 28 Nov 2025 17:13:06 +0100 Subject: [PATCH 4/4] Add PDVD TDE DAQ data reco config --- .../reco/tde_reco_protodunevd_keepup.fcl | 194 ++++++++++++++++++ .../tde_reco_stage1_protodunevd_keepup.fcl | 60 ++++++ .../tde_reco_wcfilter_protodunevd_keepup.fcl | 53 +++++ 3 files changed, 307 insertions(+) create mode 100644 fcl/protodunevd/reco/tde_reco_protodunevd_keepup.fcl create mode 100644 fcl/protodunevd/reco/tde_reco_stage1_protodunevd_keepup.fcl create mode 100644 fcl/protodunevd/reco/tde_reco_wcfilter_protodunevd_keepup.fcl diff --git a/fcl/protodunevd/reco/tde_reco_protodunevd_keepup.fcl b/fcl/protodunevd/reco/tde_reco_protodunevd_keepup.fcl new file mode 100644 index 00000000..77892e73 --- /dev/null +++ b/fcl/protodunevd/reco/tde_reco_protodunevd_keepup.fcl @@ -0,0 +1,194 @@ +#include "wirecell_dune.fcl" +#include "hitfindermodules_dune.fcl" +#include "SpacePointSolver_dune.fcl" +#include "cluster_dune.fcl" +#include "trackfindermodules_dune.fcl" +#include "pandoramodules_dune.fcl" +#include "calorimetry_pdune.fcl" +#include "calibration_dune.fcl" +#include "featurelabelingmodules.fcl" +#include "particleid.fcl" +#include "mctrutht0matching.fcl" +#include "t0reco.fcl" +#include "opticaldetectormodules_dune.fcl" +#include "showerfindermodules_dune.fcl" +#include "emshower3d.fcl" +#include "ProtoDUNETriggerFilter.fcl" +#include "OpSlicer.fcl" +#include "CRT.fcl" +#include "T0RecoAnodePiercers.fcl" +#include "numberofhitsfilter.fcl" +#include "dataprep_dune.fcl" +#include "protodune_tools_dune.fcl" + +process_name: pdvdkeepupprocessing + +services:{ + TFileService: { fileName: "%ifb_reco_hist.root" } + TimeTracker: @local::dune_time_tracker + MemoryTracker: @local::dune_memory_tracker + RandomNumberGenerator: {} + FileCatalogMetadata: @local::art_file_catalog_data + @table::protodunevd_reco_services + message: @local::dune_message_services_prod + + IFDH: {} + DetectorPropertiesService: @local::protodunevd_detproperties + + RawDigitPrepService: { + CallgrindToolNames: [] + DoWires: true + LogLevel: 3 + ToolNames: [ + "digitReader" , + "vdcb_adcChannelRawRmsFiller", + "adcSampleFiller" + ] + service_provider: "ToolBasedRawDigitPrepService" + } + AdcWireBuildingService: @local::adcwire_std + + TPCChannelMapService: + { + FileName: "PD2VDTopTPCChannelMap_v2.txt" + } + DAPHNEChannelMapService: { + FileName: @local::protodunevd_wire_readout.PDMapTool.MappingFile + IgnoreLinks: true + } + IPhotonCalibrator: { + BadChannels: [] + service_provider: "PhotonCalibratorServiceProtoDUNESP" + } + OnlineChannelMapService: { + service_provider: "VDColdboxTDEChannelMapService" + MapName : "PD2VDTopTDEChannelMap_v2.txt" + LogLevel :0 + } + +} + +#source: @local::vdctdecoder_source +source:{ + module_type: VDColdboxTDERawInput + maxEvents: -1 + fileNames: [ "np02rawdata.dat" ] + LogLevel: 10 + SamplesPerChannel: 10000 + OutputLabelRawDigits: "tpcrawdecoder:daq" + OutputLabelRDTime: "timingrawdecoder:daq" + OutputLabelRDStatus: "daq" + InvertBaseline: [] + SelectCRPs: [0,1] +} + +outputs: { + out1: { + module_type: RootOutput + fileName: "%ifb_%tc_keepup.root" + outputCommands: [ "keep *", "drop raw::RawDigit*_*_*_*" ] + compressionLevel: 1 + dataTier: "full-reconstructed" + streamName: "proc_rootout" + } +} + +physics: { + filters: { + nhitsfilter: @local::pdvd_nhitsfilter + } + + producers: { + rns: { module_type: "RandomNumberSaver" } + #Decoders + tpcrawdecoder: @local::PDVDTPCReaderDefaults + triggerrawdecoder:@local::PDVDTriggerReader4Defaults + pdvddaphne: @local::protodunevd_daphne + #PDS reco + ophit: @local::protodunevd_ophit + opflash: @local::protodunevd_opflash + opslicer: @local::protodune_opslicer + + #CRP reco + wclsdatavd: @local::protodunevd_nfsp + gaushit: @local::dunevdfd_gaushitfinder + reco3d: @local::protodunespmc_spacepointsolver + + # actual disambiguation + hitpdune: @local::pdune_disambigfromsp + emtrkmichelid: @local::protodune_emtrkmichelid + + pandora: @local::protodune_pandora + pandoraTrack: @local::dune_pandoraTrackCreation + pandoraShower: @local::dunefdvd_pandoraModularShowerCreation + + pandoraWriter: @local::dune_pandorawriter + pandoraStdcalo: @local::pdune_vd_standard_calodata + pandoraGnocalo: @local::pdune_vd_gnocchi_calodata + + } + produce: [rns, + tpcrawdecoder, + pdvddaphne, + ophit, opflash, + # opslicer, + wclsdatavd, + gaushit, + nhitsfilter, + reco3d, + hitpdune, + pandora, + pandoraTrack, + pandoraShower, + pandoraStdcalo, + pandoraGnocalo #, + ] + + output : [ out1 ] + trigger_paths: [ produce ] + end_paths : [ output ] +} + + +physics.producers.opslicer.OpHitModuleLabel: "ophit" + +#CRP raw data decoder settings +physics.producers.tpcrawdecoder.DecoderToolParams.DebugLevel: 0 + +#WireCell signal processing settings +physics.producers.wclsdatavd.wcls_main.params.use_magnify: "false" +physics.producers.wclsdatavd.wcls_main.params.raw_input_label: "tpcrawdecoder:daq" +physics.producers.wclsdatavd.wcls_main.params.use_resampler: "true" + +#Hit finder settings +physics.producers.gaushit.HitFinderToolVec.CandidateHitsPlane0.RoiThreshold: 2 +physics.producers.gaushit.HitFinderToolVec.CandidateHitsPlane1.RoiThreshold: 2 +physics.producers.gaushit.HitFinderToolVec.CandidateHitsPlane2.RoiThreshold: 2 +physics.producers.gaushit.CalDataModuleLabel: "wclsdatavd:gauss" + +# CNN settings +physics.producers.emtrkmichelid.WireLabel: "wclsdatavd:gauss" + +# Pandora settings +physics.producers.pandora.ConfigFile: "PandoraSettings_Master_ProtoDUNE_VD.xml" +physics.producers.pandora.HitFinderModuleLabel: "hitpdune" +physics.producers.pandora.GeantModuleLabel: "tpcrawdecoder:simpleSC" +physics.producers.pandora.ShouldRunNeutrinoRecoOption: true +physics.producers.pandora.ShouldRunCosmicRecoOption: true +physics.producers.pandora.ShouldRunAllHitsCosmicReco: true +physics.producers.pandora.ShouldRunCosmicHitRemoval: true +physics.producers.pandora.ShouldRunSlicing: true +physics.producers.pandora.ShouldRunStitching: true +physics.producers.pandora.ShouldPerformSliceId: true + +physics.producers.pandoraWriter.GeantModuleLabel: "tpcrawdecoder:simpleSC" +physics.producers.pandoraWriter.HitFinderModuleLabel: "hitpdune" +physics.producers.pandoraWriter.GeneratorModuleLabel: "generator" +physics.producers.pandoraTrack.PFParticleLabel: "pandora" +physics.producers.pandoraShower.PFParticleLabel: "pandora" + +physics.producers.pandorapid.CalorimetryModuleLabel: "pandoracalo" +physics.producers.pandorapid.TrackModuleLabel: "pandoraTrack" + +physics.producers.pandoracalipid.CalorimetryModuleLabel: "pandoracali" +physics.producers.pandoracalipid.TrackModuleLabel: "pandoraTrack" diff --git a/fcl/protodunevd/reco/tde_reco_stage1_protodunevd_keepup.fcl b/fcl/protodunevd/reco/tde_reco_stage1_protodunevd_keepup.fcl new file mode 100644 index 00000000..33f79370 --- /dev/null +++ b/fcl/protodunevd/reco/tde_reco_stage1_protodunevd_keepup.fcl @@ -0,0 +1,60 @@ +#include "tde_reco_protodunevd_keepup.fcl" +#include "vdcb_dataprep_sequences.fcl" + +#physics.producers.wclsdatavd: @erase +physics.producers.wclsdatavdfilter: @local::protodunevd_nf + +physics.producers.caldata: { + BeamEventLabel: "" + ChannelGroups: [ + "cru" + ] + ChannelRanges: [] + DecoderTool: "" + DigitLabel: "tpcrawdecoder:daq" + DoAssns: true + DoGroups: true + IntermediateStates: [] + LogLevel: 1 + OnlineChannelMapTool: "" + OutputDigitName: "" + TimeStampName: "" + WireName: "dataprep" + module_type: "DataPrepModule" + } + +#Put all of the raw decoders here since they're quick + +physics.produce: [ + caldata, + wclsdatavd, + gaushit, + reco3d, + hitpdune, + pandora, + pandoraTrack, + pandoraGnocalo + ] + + +#don't need a timestamp here -- only intermittent +services.TFileService.fileName: "%ifb_reco_stage1_%tc_keepup_hists.root" + +services.DetectorClocksService.DefaultTrigTime: 2500 +services.DetectorClocksService.TriggerOffsetTPC: 2500 +#services.DetectorClocksService.ClockSpeedTPC: 1.953125 +services.DetectorClocksService.ClockSpeedTPC: 2 + +services.DetectorPropertiesService.Efield: [0.450,3.125, 5e-1, 3.125] +services.DetectorPropertiesService.NumberTimeSamples: 10000 +services.DetectorPropertiesService.ReadOutWindowSize: 10000 + +outputs.out1.fileName: "%ifb_reco_stage1_%tc_keepup.root" +outputs.out1.outputCommands: [ "keep *"] +process_name: pdvdkeepupstage1 + +#physics.producers.tpcrawdecoder.CrateList: [-1] +#physics.producers.tpcrawdecoder.DecoderToolParams: @local::PDVDDataInterfaceWIBEthDefaults + +#physics.producers.wclsdatavdfilter.wcls_main.loglevels: @erase +#physics.producers.wclsdatavdfilter.wcls_main.logsinks: @erase diff --git a/fcl/protodunevd/reco/tde_reco_wcfilter_protodunevd_keepup.fcl b/fcl/protodunevd/reco/tde_reco_wcfilter_protodunevd_keepup.fcl new file mode 100644 index 00000000..cea6f889 --- /dev/null +++ b/fcl/protodunevd/reco/tde_reco_wcfilter_protodunevd_keepup.fcl @@ -0,0 +1,53 @@ +#include "tde_reco_protodunevd_keepup.fcl" +#include "vdcb_dataprep_sequences.fcl" + +#physics.producers.wclsdatavd: @erase +physics.producers.wclsdatavdfilter: @local::protodunevd_nf + +physics.producers.caldata: { + BeamEventLabel: "" + ChannelGroups: [ + "cru" + ] + ChannelRanges: [] + DecoderTool: "" + DigitLabel: "tpcrawdecoder:daq" + DoAssns: true + DoGroups: true + IntermediateStates: [] + LogLevel: 1 + OnlineChannelMapTool: "" + OutputDigitName: "" + TimeStampName: "" + WireName: "dataprep" + module_type: "DataPrepModule" + } + +#Put all of the raw decoders here since they're quick + +physics.produce: [ + caldata, + wclsdatavdfilter + ] + +#don't need a timestamp here -- only intermittent +services.TFileService.fileName: "%ifb_reco_stage1_%tc_wcfilter_hists.root" + +services.DetectorClocksService.DefaultTrigTime: 2500 +services.DetectorClocksService.TriggerOffsetTPC: 2500 +#services.DetectorClocksService.ClockSpeedTPC: 1.953125 +services.DetectorClocksService.ClockSpeedTPC: 2 + +services.DetectorPropertiesService.Efield: [0.450,3.125, 5e-1, 3.125] +services.DetectorPropertiesService.NumberTimeSamples: 10000 +services.DetectorPropertiesService.ReadOutWindowSize: 10000 + +outputs.out1.fileName: "%ifb_reco_stage1_%tc_wcfilter.root" +outputs.out1.outputCommands: [ "keep *"] +process_name: pdvdkeepupstage1 + +#physics.producers.tpcrawdecoder.CrateList: [-1] +#physics.producers.tpcrawdecoder.DecoderToolParams: @local::PDVDDataInterfaceWIBEthDefaults + +#physics.producers.wclsdatavdfilter.wcls_main.loglevels: @erase +#physics.producers.wclsdatavdfilter.wcls_main.logsinks: @erase