From 0a19c2fea487fb752197e4d012b76794b6a90ec1 Mon Sep 17 00:00:00 2001 From: michaelmackenzie Date: Fri, 1 May 2026 09:04:48 -0500 Subject: [PATCH] Add muon stop output for COL5 muon stops, for RMC/DIO background resampling --- JobConfig/pileup/MuBeamResampler.fcl | 19 +++++++++++++---- JobConfig/pileup/prolog.fcl | 32 ++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/JobConfig/pileup/MuBeamResampler.fcl b/JobConfig/pileup/MuBeamResampler.fcl index 2e1595c7..c6a389f1 100644 --- a/JobConfig/pileup/MuBeamResampler.fcl +++ b/JobConfig/pileup/MuBeamResampler.fcl @@ -33,11 +33,12 @@ physics: { } # setup paths targetStopPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, TargetStopPrescaleFilter, TargetMuonFinder, TargetStopFilter, compressPVTargetStops] + polyStopPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, PolyStopPrescaleFilter, PolyMuonFinder, PolyStopFilter, compressPVPolyStops] IPAStopPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, IPAMuonFinder, IPAStopFilter, compressPVIPAStops] flashPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.flashSequence, @sequence::Pileup.DetStepSequence ] earlyFlashPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.flashSequence, @sequence::Pileup.EarlyDetStepSequence ] - trigger_paths: [ flashPath, earlyFlashPath, targetStopPath, IPAStopPath ] - outPath : [ FlashOutput, EarlyFlashOutput, TargetStopOutput, IPAStopOutput ] + trigger_paths: [ flashPath, earlyFlashPath, targetStopPath, polyStopPath, IPAStopPath ] + outPath : [ FlashOutput, EarlyFlashOutput, TargetStopOutput, PolyStopOutput, IPAStopOutput ] end_paths: [outPath] } @@ -51,6 +52,15 @@ outputs: { fileName : "sim.owner.TargetStops.version.sequencer.art" } + PolyStopOutput : { + module_type: RootOutput + outputCommands: [ "drop *_*_*_*", + @sequence::Pileup.SimKeptProducts + ] + SelectEvents: [polyStopPath] + fileName : "sim.owner.PolyStops.version.sequencer.art" + } + IPAStopOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", @@ -79,8 +89,9 @@ outputs: { } } # set prescale factors -physics.filters.TargetStopPrescaleFilter.nPrescale : @local::Pileup.MuminusTargetStopPrescale -physics.filters.EarlyPrescaleFilter.nPrescale : @local::Pileup.EarlyMuBeamFlashPrescale +physics.filters.TargetStopPrescaleFilter.nPrescale : @local::Pileup.MuminusTargetStopPrescale +physics.filters.PolyStopPrescaleFilter.nPrescale : @local::Pileup.PolyStopPrescale +physics.filters.EarlyPrescaleFilter.nPrescale : @local::Pileup.EarlyMuBeamFlashPrescale # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { diff --git a/JobConfig/pileup/prolog.fcl b/JobConfig/pileup/prolog.fcl index 95f94b46..29b0076a 100644 --- a/JobConfig/pileup/prolog.fcl +++ b/JobConfig/pileup/prolog.fcl @@ -44,6 +44,15 @@ Pileup: { stoppingMaterial: "StoppingTarget_Al" verbosityLevel: 1 } + PolyMuonFinder: { + module_type: "StoppedParticlesFinder" + particleInput: "g4run" + particleTypes: [ 13, -13 ] + physVolInfoInput: "g4run:eventlevel" + useEventLevelVolumeInfo: true + stoppingMaterial: "COL5Poly" + verbosityLevel: 1 + } WireGammaFinder: { module_type: "StoppedParticlesFinder" particleInput: "g4run" @@ -81,12 +90,25 @@ Pileup: { processes: [ "DIO", "NuclearCapture" ] //TODO } + stoppedPolyMuonDaughters: { + module_type: SimParticleDaughterSelector + particleInput: "PolyMuonFinder" + # EMCascade should not be vetoed because we do not re-simulate it + processes: [ "DIO", "NuclearCapture" ] //TODO + } + compressPVTargetStops: { module_type: CompressPhysicalVolumes volumesInput : "g4run" hitInputs : [] particleInputs : [ "TargetStopFilter" ] } + compressPVPolyStops: { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "PolyStopFilter" ] + } compressPVWireStops: { module_type: CompressPhysicalVolumes volumesInput : "g4run" @@ -135,6 +157,12 @@ Pileup: { extraHitInputs: [ "g4run:virtualdetector" ] mainSPPtrInputs: [ "TargetMuonFinder" ] } + PolyStopFilter: { + module_type: FilterG4Out + mainHitInputs: [] + extraHitInputs: [ "g4run:virtualdetector" ] + mainSPPtrInputs: [ "PolyMuonFinder" ] + } WireStopFilter: { module_type: FilterG4Out mainHitInputs: [] @@ -166,6 +194,9 @@ Pileup: { TargetStopPrescaleFilter : { module_type : RandomPrescaleFilter } + PolyStopPrescaleFilter : { + module_type : RandomPrescaleFilter + } EarlyPrescaleFilter : { module_type : RandomPrescaleFilter } @@ -333,6 +364,7 @@ Pileup: { EarlyMuBeamFlashPrescale : 30 EarlyNeutralsFlashPrescale : 20 MuminusTargetStopPrescale : 1000 + PolyStopPrescale : 1000 } # DetctorStepFilter instance to select DetSteps outside the flash Pileup.filters.DetStepFilter : {