opdet_multidetsim_refactored_dune10kt_1x2x6.fcl
Go to the documentation of this file.
1 # opdet_multidetsim_dune10kt_1x2x6
2 
3 # Alex Himmel
4 # March 2019
5 #
6 # Job fhicl for running multiple variants of the photon detector simulation simulatneously
7 # Runs a single variant of TPC detsim as well
8 
9 #include "services_refactored_pdune.fcl"
10 #include "services_dune.fcl"
11 #include "detsimmodules_dune.fcl"
12 #include "opticaldetectormodules_dune.fcl"
13 #include "OpDetMultisim.fcl"
14 
15 #include "tools_dune.fcl"
16 
17 process_name: detsim
18 
19 
20 services:
21 {
22  @table::dunefd_simulation_services
23  TFileService: { fileName: "%ifb_detsim_hist.root" }
24  TimeTracker: {}
25  MemoryTracker: { } # default is one
26  RandomNumberGenerator: {} #ART native random number generator
27  FileCatalogMetadata: @local::art_file_catalog_mc
28  NuRandomService: @local::random_NuRandomService # seedservice.fcl
29  message: @local::dune_message_services_prod
30 }
31 
32 ### Use the 1x2x6 geometry ###
33 services.Geometry: @local::dune10kt_1x2x6_geo
34 
35 #source is now a root file
36 source: {
37  module_type: RootInput
38  maxEvents: 10 # Number of events to create
39 }
40 
41 # Define and configure some modules to do work on each event.
42 # First modules are defined; they are scheduled later.
43 # Modules are grouped by type.
44 physics: {
45  producers: {
46 # daq: @local::dune_detsim
47 tpcrawdecoder : {
48  module_type : WireCellToolkit
49  wcls_main: {
50  tool_type: WCLS
51  apps: ["Pgrapher"]
52 
53  plugins: ["WireCellPgraph", "WireCellGen","WireCellSio","WireCellLarsoft"]
54 
55  # needs to be found via your WIRECELL_PATH
56  #configs: ["pgrapher/experiment/pdsp/wcls-sim-drift-simchannel.jsonnet"]
57  configs: ["pgrapher/experiment/dune10kt-1x2x6/wcls-sim-drift-simchannel.jsonnet"]
58 
59  # Contract note: these exact "type:name" must be used to identify
60  # the configuration data structures for these components in the Jsonnet.
61 
62  inputers: ["wclsSimDepoSource:"]
63  outputers: [
64  "wclsSimChannelSink:postdrift",
65  "wclsFrameSaver:simdigits"
66  ]
67 
68  # Make available parameters via Jsonnet's std.extVar()
69  params: {
70  }
71  structs: {
72  # Longitudinal diffusion constant [cm2/s]
73  DL: 4.0
74  # Transverse diffusion constant [cm2/s]
75  DT: 8.8
76  # Electron lifetime [ms]
77  lifetime: 10.4
78  # Electron drift speed, assumes a certain applied E-field [mm/us]
79  driftSpeed: 1.565
80  }
81  }
82  }
83 
84  @table::pd_detsim_modules
85  rns: { module_type: "RandomNumberSaver" }
86  }
87 # simulate: [ rns, daq, @sequence::pd_detsim_path ]
88  simulate: [ rns, tpcrawdecoder, @sequence::pd_detsim_path ]
89  stream1: [ out1 ]
90  trigger_paths: [simulate]
91  end_paths: [stream1]
92 }
93 
94 outputs: {
95  out1: {
96  module_type: RootOutput
97  fileName: "%ifb_detsim.root"
98  dataTier: "detector-simulated"
99  compressionLevel: 1
100  }
101 }
102 
103 # Use fixed values instead of DB for pedestals.
104 services.DetPedestalService: @local::dune_fixedpeds
105 
106 # DetSim flags.
107 physics.producers.daq.NoiseOn: true
108 physics.producers.daq.PedestalOn: true
109 physics.producers.daq.DistortOn: false
110 physics.producers.daq.SuppressOn: true
111 
112 # DetSim services.
113 services.SimChannelExtractService: @local::scxgeneric
114 services.ChannelNoiseService: @local::chnoiseold
115 services.PedestalAdditionService: @local::padprovided
116 services.AdcDistortService: @local::stuckbits
117 services.AdcSuppressService: @local::zslegacy
118 services.AdcCompressService: @local::cmpblock
119 
120 # Disable bad channels.
121 #services.IChannelStatusService.BadChannels: [ ]
122 
123 ### Supernova detsim noise levels ###
124 ### What value do I want for the Noise Level?
125 services.ChannelNoiseService.NoiseNormU: 5.75
126 services.ChannelNoiseService.NoiseNormV: 5.75
127 services.ChannelNoiseService.NoiseNormZ: 4.5
128 
129 #configs: ["pgrapher/experiment/pdsp/wcls-sim-drift-simchannel.jsonnet"]
130 #=> configs: ["pgrapher/experiment/dune10kt-1x2x6/wcls-sim-drift-simchannel.jsonnet"]