From 00c7d00d2610b62a2e6c1d8a170e80d86f7246ed Mon Sep 17 00:00:00 2001 From: Iuri Oksuzian Date: Fri, 6 Mar 2026 12:36:30 -0600 Subject: [PATCH] STM fcls for resampling --- JobConfig/pileup/STM/BeamTo2VD.fcl | 35 +++++++++++++++++ JobConfig/pileup/STM/BeamTo2VD1809.fcl | 35 +++++++++++++++++ JobConfig/pileup/STM/NeutralsTo2VD.fcl | 52 ++++++++++++++++++++++++++ 3 files changed, 122 insertions(+) create mode 100644 JobConfig/pileup/STM/BeamTo2VD.fcl create mode 100644 JobConfig/pileup/STM/BeamTo2VD1809.fcl create mode 100644 JobConfig/pileup/STM/NeutralsTo2VD.fcl diff --git a/JobConfig/pileup/STM/BeamTo2VD.fcl b/JobConfig/pileup/STM/BeamTo2VD.fcl new file mode 100644 index 00000000..f9e5cc25 --- /dev/null +++ b/JobConfig/pileup/STM/BeamTo2VD.fcl @@ -0,0 +1,35 @@ +# Propagate beam to both VD101 and VD116 for STM studies +# Extends BeamToVD.fcl with a second virtual detector path +#include "Production/JobConfig/pileup/STM/BeamToVD.fcl" + +process_name: BeamTo2VD + +# Add VD116 extraction, compression, and filtering +physics.producers.extractVirtualDetectorSteps116 : { + module_type : STMResamplingProducer + StepPointMCsTag : @local::ResamplingProducer.StepPointMCsTag + VirtualDetectorID : 116 +} +physics.producers.compressDetStepMCsSTM116 : @local::physics.producers.compressDetStepMCsSTM +physics.producers.compressDetStepMCsSTM116.stepPointMCTags : ["extractVirtualDetectorSteps116"] + +physics.filters.filterVirtualDetectorSteps116 : { + module_type: STMResamplingFilter + StepPointMCsTag : "compressDetStepMCsSTM116" +} + +physics.analyzers.countVirtualDetectorHits.virtualDetectorIDs : [88, 89, 90, 100, 101, 116] + +# Add second trigger path +physics.STMCompressedPath116 : [@sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, extractVirtualDetectorSteps116, compressDetStepMCsSTM116, filterVirtualDetectorSteps116] +physics.trigger_paths : [STMCompressedPath, STMCompressedPath116] + +# Rename VD101 output to compressedOutput101 and add VD116 output +outputs.compressedOutput101 : @local::outputs.compressedOutput +outputs.compressedOutput101.SelectEvents : [STMCompressedPath] +outputs.compressedOutput101.fileName : "dts.owner.BeamToVD101.version.sequencer.art" +outputs.compressedOutput116 : @local::outputs.compressedOutput +outputs.compressedOutput116.SelectEvents : [STMCompressedPath116] +outputs.compressedOutput116.fileName : "dts.owner.BeamToVD116.version.sequencer.art" + +physics.outPathCompressed : [genCountLogger, countVirtualDetectorHits, compressedOutput101, compressedOutput116] diff --git a/JobConfig/pileup/STM/BeamTo2VD1809.fcl b/JobConfig/pileup/STM/BeamTo2VD1809.fcl new file mode 100644 index 00000000..20557a34 --- /dev/null +++ b/JobConfig/pileup/STM/BeamTo2VD1809.fcl @@ -0,0 +1,35 @@ +# Propagate 1809 keV muon capture gammas to both VD101 and VD116 for STM studies +# Extends BeamToVD1809.fcl with a second virtual detector path +#include "Production/JobConfig/pileup/STM/BeamToVD1809.fcl" + +process_name: BeamTo2VD1809 + +# Add VD116 extraction, compression, and filtering +physics.producers.extractVirtualDetectorSteps116 : { + module_type : STMResamplingProducer + StepPointMCsTag : @local::ResamplingProducer.StepPointMCsTag + VirtualDetectorID : 116 +} +physics.producers.compressDetStepMCsSTM116 : @local::physics.producers.compressDetStepMCsSTM +physics.producers.compressDetStepMCsSTM116.stepPointMCTags : ["extractVirtualDetectorSteps116"] + +physics.filters.filterVirtualDetectorSteps116 : { + module_type: STMResamplingFilter + StepPointMCsTag : "compressDetStepMCsSTM116" +} + +physics.analyzers.countVirtualDetectorHits.virtualDetectorIDs : [88, 89, 90, 100, 101, 116] + +# Add second trigger path +physics.PileupPath116 : [TargetStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, extractVirtualDetectorSteps116, compressDetStepMCsSTM116, filterVirtualDetectorSteps116] +physics.trigger_paths : [PileupPath, PileupPath116] + +# Rename VD101 output to compressedOutput101 and add VD116 output +outputs.compressedOutput101 : @local::outputs.compressedOutput +outputs.compressedOutput101.SelectEvents : [PileupPath] +outputs.compressedOutput101.fileName : "dts.owner.BeamToVD101.version.sequencer.art" +outputs.compressedOutput116 : @local::outputs.compressedOutput +outputs.compressedOutput116.SelectEvents : [PileupPath116] +outputs.compressedOutput116.fileName : "dts.owner.BeamToVD116.version.sequencer.art" + +physics.outPathCompressed : [genCountLogger, countVirtualDetectorHits, compressedOutput101, compressedOutput116] diff --git a/JobConfig/pileup/STM/NeutralsTo2VD.fcl b/JobConfig/pileup/STM/NeutralsTo2VD.fcl new file mode 100644 index 00000000..9724aa80 --- /dev/null +++ b/JobConfig/pileup/STM/NeutralsTo2VD.fcl @@ -0,0 +1,52 @@ +# Propagate neutrals to both VD101 and VD116 for STM studies +# Based on BeamToVD.fcl with neutrals resampler instead of beam resampler +#include "Production/JobConfig/pileup/STM/BeamToVD.fcl" + +process_name: NeutralsToVD + +# Override paths to use neutrals resampler +physics.STMCompressedPath : [@sequence::Pileup.neutralsResamplerSequence, @sequence::Common.g4Sequence, extractVirtualDetectorSteps, compressDetStepMCsSTM, filterVirtualDetectorSteps] + +# Add VD116 extraction, compression, and filtering +physics.producers.extractVirtualDetectorSteps116 : { + module_type : STMResamplingProducer + StepPointMCsTag : @local::ResamplingProducer.StepPointMCsTag + VirtualDetectorID : 116 +} +physics.producers.compressDetStepMCsSTM116 : @local::physics.producers.compressDetStepMCsSTM +physics.producers.compressDetStepMCsSTM116.stepPointMCTags : ["extractVirtualDetectorSteps116"] + +physics.filters.filterVirtualDetectorSteps116 : { + module_type: STMResamplingFilter + StepPointMCsTag : "compressDetStepMCsSTM116" +} + +physics.analyzers.countVirtualDetectorHits.virtualDetectorIDs : [88, 89, 90, 100, 101, 116] + +# Add second trigger path +physics.STMCompressedPath116 : [@sequence::Pileup.neutralsResamplerSequence, @sequence::Common.g4Sequence, extractVirtualDetectorSteps116, compressDetStepMCsSTM116, filterVirtualDetectorSteps116] +physics.trigger_paths : [STMCompressedPath, STMCompressedPath116] + +# Rename VD101 output to compressedOutput101 and add VD116 output +outputs.compressedOutput101 : @local::outputs.compressedOutput +outputs.compressedOutput101.SelectEvents : [STMCompressedPath] +outputs.compressedOutput101.fileName : "dts.owner.NeutralsToVD101.version.sequencer.art" +outputs.compressedOutput116 : @local::outputs.compressedOutput +outputs.compressedOutput116.SelectEvents : [STMCompressedPath116] +outputs.compressedOutput116.fileName : "dts.owner.NeutralsToVD116.version.sequencer.art" + +physics.outPathCompressed : [genCountLogger, countVirtualDetectorHits, compressedOutput101, compressedOutput116] + +# Override g4run inputs for neutrals +physics.producers.g4run.inputs.primaryTag: "neutralsResampler:Neutrals" +physics.producers.g4run.inputs.inputPhysVolumeMultiInfo: "neutralsResampler" +physics.producers.g4run.inputs.updateEventLevelVolumeInfos.input: "neutralsResampler:eventlevel" +physics.producers.g4run.SDConfig.preSimulatedHits: ["neutralsResampler:virtualdetector"] + +# Override neutrals resampler mixing map to include virtualdetector hits +physics.filters.neutralsResampler.mu2e.products.stepPointMCMixer: { + mixingMap: [ + [ "NeutralsFilter:virtualdetector", ":" ], + [ "NeutralsFilter:Neutrals", ":" ] + ] +}