1 #include "services_dune.fcl"
2 #include "detsimmodules_dune.fcl"
3 #include "tools_dune.fcl"
8 services: @local::protodunedphase_simulation_services_legacy
9 services.TFileService: { fileName: "cosmics_corsika_rotation_hist.root" }
10 services.TimeTracker: {}
11 services.MemoryTracker: {} # default is one
12 services.RandomNumberGenerator: {} #ART native random number generator
13 services.FileCatalogMetadata: @local::art_file_catalog_mc
14 services.NuRandomService: @local::random_NuRandomService # seedservice.fcl
15 services.Geometry: @local::protodunedphase_geo
16 services.DetectorPropertiesService: @local::protodunedphase_detproperties
18 #source is now a root file
20 module_type: RootInput
21 maxEvents: 100 # Number of events to create
25 # Define and configure some modules to do work on each event.
26 # First modules are defined; they are scheduled later.
27 # Modules are grouped by type.
33 rns: { module_type: "RandomNumberSaver" }
34 daq: @local::dune_detsim
37 #define the producer and filter modules for this path, order matters,
38 #filters reject all following items. see lines starting physics.producers below
43 #define the output stream, there could be more than one if using filters
46 #trigger_paths is a keyword and contains the paths that modify the art::event,
47 #ie filters and producers
48 trigger_paths: [simulate]
50 #end_paths is a keyword and contains the paths that do not modify the art::Event,
51 #ie analyzers and output streams. these all run simultaneously
55 #block to define where the output goes. if you defined a filter in the physics
56 #block and put it in the trigger_paths then you need to put a
57 SelectEvents: {SelectEvents: [XXX]}
58 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
63 module_type: RootOutput
64 fileName: "%ifb_detsim.root"
65 dataTier: "detector-simulated"
71 # Use fixed values instead of DB for pedestals.
72 services.DetPedestalService: @local::dunedp_fixedpeds
75 physics.producers.daq.NoiseOn: true
76 physics.producers.daq.PedestalOn: true
77 physics.producers.daq.DistortOn: false
78 physics.producers.daq.SuppressOn: false #false when noise on!
79 physics.producers.daq.KeepEmptyChannels: true
82 services.ChannelNoiseService: @local::chnoiseold
83 services.PedestalAdditionService: @local::padprovided
85 services.DetPedestalService: @local::dunedp_fixedpeds
86 services.DetPedestalService.FixedDetPedestal.PedMeanErrY: 0
87 services.DetPedestalService.FixedDetPedestal.PedMeanErrZ: 0
88 services.DetPedestalService.FixedDetPedestal.PedMeanY: 60
89 services.DetPedestalService.FixedDetPedestal.PedMeanZ: 60
90 services.DetPedestalService.FixedDetPedestal.PedRmsErrY: 0
91 services.DetPedestalService.FixedDetPedestal.PedRmsErrZ: 0
92 services.DetPedestalService.FixedDetPedestal.PedRmsY: 0
93 services.DetPedestalService.FixedDetPedestal.PedRmsZ: 0
95 services.AdcDistortService: @local::stuckbits
96 services.AdcSuppressService: @local::zsonline
97 services.AdcCompressService: @local::cmpreplace
99 #===================New noise module ===========================================
100 #Configure realistic noise service for DP detectors based on the 311 data
101 #NB: Hardcoded unrotated geometry:
103 services.ChannelNoiseService:{
104 service_provider: DPhaseRealisticNoiseService
105 NoiseModel: "$MRB_SOURCE/dunetpc/dune/DetSim/NoiseModels/729-0_fft_mirror.root" #path to the noise model root file
106 RandomizeX: 15. #0.002
107 RandomizeY: 15. #0.002
110 SetBaseline: false #if true sum baseline to real noise model
111 NoiseArrayPoints: 1000
112 OldNoiseIndex: false #From ExponentialChannelNoiseService. Keep false