Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
9bae573
TriggerSimulationOnGates: added fixed configurable trigger delay
PetrilloAtWork May 29, 2024
a7c6058
Update after TimeIntervalConfig breaking change
PetrilloAtWork Apr 16, 2026
e2abd1e
SimPMTIcarus: reworked internals
PetrilloAtWork Apr 16, 2026
e6e991f
SimPMTIcarus: produce baseline data products and associations
PetrilloAtWork Apr 16, 2026
2c130c3
PMTsimulationAlg: changed waveform superposition rounding, and defaul…
PetrilloAtWork Apr 16, 2026
c4f9564
Maintenance commit
PetrilloAtWork Apr 16, 2026
9f0d129
OverlayPMTwaveforms: dedicated PMT waveform overlay module
PetrilloAtWork Apr 16, 2026
c615077
Simulation timescale changed to the "shifted" time
PetrilloAtWork Apr 20, 2026
2fc396c
Trigger configuration maintenance
PetrilloAtWork Apr 20, 2026
26f162d
MC trigger simulation baselines now read from a data product.
PetrilloAtWork Apr 20, 2026
1687c57
Trigger simulation gate now refers to simulation time instead of beam…
PetrilloAtWork Apr 20, 2026
b882b59
TriggerSimulationOnGates: fix beam gate output
PetrilloAtWork Apr 22, 2026
161a00f
Added trigger time delay to the trigger simulation
PetrilloAtWork Apr 20, 2026
3405d4c
Filtering disables in Stage0 MC to allow for fast cloning
PetrilloAtWork Apr 21, 2026
69fd9da
Retuned trigger-flash delay in TPC-PMT matching
PetrilloAtWork May 4, 2026
5ed9b80
Tuned beam gates to Run2 data
PetrilloAtWork May 7, 2026
5d252df
Using SBN (shared) GENIE configuration for BNB and NuMI
PetrilloAtWork Dec 5, 2024
561a35c
Tuned BNB gate again (after enabling neutrino propagation time)
PetrilloAtWork May 8, 2026
9bf5b41
manageDataRunDefinitions.py version 1.1
PetrilloAtWork May 13, 2026
bb9475e
Merge remote-tracking branch 'upstream/feature/pmtsim_gain' into feat…
PetrilloAtWork May 14, 2026
1d5e3e9
Removed configuration override used in development
PetrilloAtWork May 14, 2026
efe9ffa
Indentation fix
PetrilloAtWork May 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions fcl/SkipTesting.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ services_compat_no_overburden_icarus_v3.fcl
services_compat_overburden_icarus_v3.fcl
set_caf_calconst.fcl

override_services_for_simulation.fcl


################################################################################
# broken, won't fix
Expand Down
2 changes: 2 additions & 0 deletions fcl/caf/cafmakerjob_icarus.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ services:
SpaceChargeService: @local::icarus_spacecharge
}

#include "override_services_for_simulation.fcl"

outputs:
{
outpid:
Expand Down
46 changes: 28 additions & 18 deletions fcl/gen/genie/genie_icarus_bnb.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@
#
#

#include "genie.fcl"
#include "beamspilltimings.fcl"
#include "genie_beam_settings.fcl"

BEGIN_PROLOG

Expand All @@ -45,46 +44,57 @@ BEGIN_PROLOG
###
### icarus_genie_BNB_base
###
#
# Based on SBN shared BNB configuration, it adds:
# * flux
# * simulation volume: detector enclosure (includes both cryostats)
# * event dump in the log
#
#
icarus_genie_BNB_base: {

@table::sbn_genie_BNB_base # from genie_beam_settings.fcl

@table::standard_genie # from genie.fcl

#
# flux
#
FluxType: "simple_flux"
GenFlavors: [12, 14, -12, -14]
# TopVolume: "volTPCActive"
# TopVolume: "volCryostat"
BeamName: "booster"
EventGeneratorList: "Default"
# FluxCopyMethod: "IFDH"
FluxSearchPaths: "/cvmfs/sbn.osgstorage.org/pnfs/fnal.gov/usr/sbn/persistent/stash/physics/beam/GENIE/BNB/standard/v01_00/"
FluxFiles: ["converted_beammc_icarus_*.root"]
GHepPrintLevel: 13
POTPerSpill: 5.0e12
EventsPerSpill: @erase


GlobalTimeOffset: 0.0 # [ns]
RandomTimeOffset: 1600.0 # [ns]
#
# generation volume
#
# TopVolume: "volTPCActive"
# TopVolume: "volCryostat"
TopVolume: "volDetEnclosure"

#
# GENIE event vdump verbosity
#
GHepPrintLevel: 13

} # icarus_genie_BNB_base


#
# legacy alias
#
icarus_genie_simple: @local::icarus_genie_BNB_base


###
### icarus_genie_BNB
###
#
# Adds BnB time structure.
# Just as the default.
#
icarus_genie_BNB: {

@table::icarus_genie_BNB_base

SpillTimeConfig: @local::FNAL_BnB_default # from beamspilltimings.fcl
RandomTimeOffset: 0.0 # ns; it's ignored anyway when `SpillTimeConfig` is set

} # icarus_genie_BNB


Expand Down
23 changes: 14 additions & 9 deletions fcl/gen/numi/genie_icarus_numioffaxis.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
# updated NuMI POT to 6+6 batches configuration
#

#include "genie_icarus_bnb.fcl"
#include "genie_beam_settings.fcl"
#include "beamspilltimings.fcl"


Expand All @@ -49,7 +49,7 @@ BEGIN_PROLOG
###
icarus_genie_NuMI_base: {

@table::icarus_genie_BNB_base # from genie_icarus_bnb.fcl
@table::sbn_genie_NuMI_base # from genie_beam_settings.fcl

#
# flux
Expand All @@ -60,10 +60,18 @@ icarus_genie_NuMI_base: {
FluxSearchPaths: "/cvmfs/sbn.osgstorage.org/pnfs/fnal.gov/usr/sbn/persistent/stash/physics/beam/GENIE/NuMI/standard/v03_02/"
FluxFiles: ["g4numi*.root"]

POTPerSpill: 6.0e13 # same as BnB per batch, but 6 batches in spill

RandomTimeOffset: 9600.0 # same batch as BnB, but 6 batches in spill [ns]
#
# generation volume
#
# TopVolume: "volTPCActive"
# TopVolume: "volCryostat"
TopVolume: "volDetEnclosure"

#
# GENIE event vdump verbosity
#
GHepPrintLevel: 13

} # icarus_genie_NuMI_base


Expand All @@ -75,15 +83,12 @@ icarus_genienumi_simple: @local::icarus_genie_NuMI_base
### icarus_genie_NuMI
###
#
# Adds NuMI beam time structure.
# Just as the default.
#
icarus_genie_NuMI: {

@table::icarus_genie_NuMI_base

SpillTimeConfig: @local::FNAL_NuMI_default # from beamspilltimings.fcl
RandomTimeOffset: 0.0 # ns; it's ignored anyway when `SpillTimeConfig` is set

} # icarus_genie_NuMI

# Rock config
Expand Down
163 changes: 83 additions & 80 deletions fcl/overlays/overlay_waveforms.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -7,99 +7,102 @@

process_name: Overlay

#include "override_services_for_simulation.fcl"

## Add the MC module to the list of producers
physics.producers: {
mccrthit: @local::standard_crtsimhitproducer
overlayTPCRawEE:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCEERAW", "daq:TPCEE"]
}
overlayTPCRawEW:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCEWRAW", "daq:TPCEW"]
}
overlayTPCRawWE:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCWERAW", "daq:TPCWE"]
}
overlayTPCRawWW:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCWWRAW", "daq:TPCWW"]
}

overlayOpWaveforms:
{
module_type: "OverlayProducts"
TPCOverlayRaw: false
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: true
PMTOverlayHits: false
CRTOverlayHits: false
PMTWaveDataLabel: "daqPMT"
PMTWaveSimLabel: "shifted"
PMTWaveBaseLabel: "pmtbaselines"
}
mccrthit: @local::standard_crtsimhitproducer
overlayTPCRawEE:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCEERAW", "daq:TPCEE"]
}
overlayTPCRawEW:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCEWRAW", "daq:TPCEW"]
}
overlayTPCRawWE:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCWERAW", "daq:TPCWE"]
}
overlayTPCRawWW:
{
module_type: "OverlayProducts"
TPCOverlayRaw: true
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: false
TPCRawInputLabels: ["daqTPCROI:PHYSCRATEDATATPCWWRAW", "daq:TPCWW"]
}

overlayCRTHit:
{
module_type: "OverlayProducts"
TPCOverlayRaw: false
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: true
CRTHitInputLabels: ["crthit","mccrthit"]
}
}
overlayOpWaveforms:
{
module_type: OverlayPMTwaveforms

DataWaveformTag: "daqPMT"
DataBaselineAssns: "pmtbaselines"
SimWaveformTag: "shifted" # also their baselines

# produce a baseline collection
# (trigger modules use one directly rather than going through associations)
DuplicateBaselines: true

# check that no noise is in PMT waveform simulation: we require that at least
# >50% of the PMT waveforms lie flat on the baseline for their first 500 ns
BaselineCheck: { Length: "0.5 us" ForgivenessFraction: 0.5 }
}

overlayCRTHit:
{
module_type: "OverlayProducts"
TPCOverlayRaw: false
TPCOverlayHits: false
TPCHitsWireAssn: false
TPCOverlayROI: false
PMTOverlayRaw: false
PMTOverlayHits: false
CRTOverlayHits: true
CRTHitInputLabels: ["crthit","mccrthit"]
}
}

## Use the following to run the full defined stage0 set of modules
physics.reco: [ mccrthit, overlayTPCRawWW, overlayTPCRawWE, overlayTPCRawEW, overlayTPCRawEE, overlayOpWaveforms, overlayCRTHit]

## boiler plate...
physics.outana: [ ]
physics.trigger_paths: [ reco ]
physics.end_paths: [ outana, streamROOT ]
physics.end_paths: [ streamROOT ]

## Note that for output we hijack the "rootOutput" definition (but change the naming convention to make more generic for MC)
outputs.rootOutput.fileName: "%ifb_%tc-%p.root"
outputs.rootOutput.dataTier: "reconstructed"
outputs.rootOutput.SelectEvents: ["reco"]
outputs.rootOutput.SelectEvents: @erase

# Drop the artdaq format files on output
outputs.rootOutput.outputCommands: ["keep *_*_*_*",
Expand Down
8 changes: 6 additions & 2 deletions fcl/reco/Definitions/enable_overlay_sp.fcl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# add timing corrections to optical path by ovveriding ophit
# add timing corrections to optical path by overriding ophit
physics.producers.ophit: @local::icarus_ophit_timing_correction

# Exclude crthit from path -- not needed since it's included at overlay stage
Expand All @@ -12,8 +12,12 @@ physics.path: [ @sequence::icarus_stage0_overlay_PMT,
physics.producers.MCDecodeTPCROI.FragmentsLabelVec: ["overlayTPCRawWW", "overlayTPCRawWE", "overlayTPCRawEW", "overlayTPCRawEE"]
physics.producers.pmtbaselines.OpticalWaveforms: "overlayOpWaveforms"
physics.producers.pmtfixedthr.OpticalWaveforms: "overlayOpWaveforms"
physics.producers.opdetonbeam.OpticalWaveforms: "overlayOpWaveforms"
physics.producers.pmtfixedthr.Baselines: "overlayOpWaveforms"
physics.producers.opdetonbeam.Waveforms: "overlayOpWaveforms"
physics.producers.opdetonbeam.WaveformBaselineAssns: "overlayOpWaveforms"
physics.producers.ophituncorrected.InputModule: "overlayOpWaveforms"
physics.producers.ophit.InputLabels: [ "ophituncorrected" ]
physics.producers.crttrack.DataLabelHits: "overlayCRTHit"
physics.producers.crtpmt.CrtHitModuleLabel: "overlayCRTHit"
physics.producers.emuTrigger:
@local::icarus_shifting_triggersim.producers.emuTrigger # from trigger_emulation_icarus.fcl
3 changes: 2 additions & 1 deletion fcl/reco/Definitions/stage0_icarus_mc_defs.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,12 @@ icarus_stage0_mc_crtreco: [crttrack, crtpmt]

# adapt input labels
icarus_stage0_mc_producers.emuTrigger.BeamGates: shifted
icarus_stage0_mc_producers.emuTrigger.BeamGateReference: Trigger # see `icarus_standard_triggersim` in `trigger_emulation_icarus.fcl`
icarus_stage0_mc_producers.triggersimgates.module_type: DummyProducer # Don't rerun. We have already adjusted the BeamGate
icarus_stage0_mc_producers.mcophit.SimPhotonsProducer: shifted
icarus_stage0_mc_producers.ophit.InputModule: shifted
icarus_stage0_mc_producers.opdetonbeam.Waveforms: shifted
icarus_stage0_mc_producers.opdetonbeam.WaveformBaselineAssns: pmtbaselines
icarus_stage0_mc_producers.opdetonbeam.WaveformBaselineAssns: shifted
icarus_stage0_mc_producers.pmtbaselines.OpticalWaveforms: shifted
icarus_stage0_mc_producers.pmtfixedthr.OpticalWaveforms: shifted

Expand Down
Loading