1 # addnoise_findprim_daqsimanas.fcl
3 # Read in (presumably noise-free) waveforms, add noise and pedestals,
4 # then find trigger primitives on the (now noisy) waveforms, and save
5 # the trigger primitives (as "Hits") to an output TTree.
7 # Any number of trigger primitive finders can be run: useful for
8 # running the same finder with multiple parameter settings, for
9 # example. The output of each trigger primitive finder should be
10 # connected to a DaqSimAna analyzer
13 #include "RunningSum.fcl"
16 @table::standard_snana
17 SaveNeighbourADCs: false
21 #include "opticaldetectormodules_dune.fcl"
22 #include "standard_detsim_dune10kt_1x2x6.fcl"
27 services: @local::dunefd_simulation_services
28 services.TFileService: { fileName: "SNAna_plus_trigprim_multithreshold.root" }
29 services.TimeTracker: {}
30 services.MemoryTracker: { } # default is one
31 services.RandomNumberGenerator: {} #ART native random number generator
32 // services.FileCatalogMetadata: @local::art_file_catalog_mc
33 services.NuRandomService: @local::per_event_NuRandomService # seedservice.fcl
34 services.message: @local::dune_message_services_prod
35 #source is now a root file
37 module_type: RootInput
38 maxEvents: -1 # Number of events to create
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.
47 module_type: "SimWireDUNE"
48 SimChannelLabel: "largeant"
53 KeepEmptyChannels: true
54 AdcSimulator: "adcsim_ideal"
55 UseRawDigitInput: true
56 RawDigitInputLabel: "daq"
59 ophit: @local::dune35t_ophit
61 # You can add any number of trigger primitive finders here. Make
62 # sure each one has a distinct name, and has a corresponding
63 # daqsimana analyzer otherwise you won't get a corresponding
64 # TTree in the output file. Also make sure to add it to the "simulate" list below
65 runsum20: @local::runningsumtppass1
66 runsum40: @local::runningsumtppass1
67 runsum60: @local::runningsumtppass1
68 runsum80: @local::runningsumtppass1
69 runsum100: @local::runningsumtppass1
70 runsum200: @local::runningsumtppass1
72 rns: { module_type: "RandomNumberSaver" }
76 # Create an SNAna for each trigger primitive finders. Make
77 # sure to add each one to the "ana" list below
78 snanarunsum20: @local::runsum_snana
79 snanarunsum40: @local::runsum_snana
80 snanarunsum60: @local::runsum_snana
81 snanarunsum80: @local::runsum_snana
82 snanarunsum100: @local::runsum_snana
83 snanarunsum200: @local::runsum_snana
87 simulate: [rns, simwire, ophit,
104 trigger_paths: [ simulate ]
109 # Modify the settings of each of the trigger primitive finders. If you
110 # want to use a different trigger primitive finder class, set
111 # "physics.producers.<itemname>.finder.tool_type: MyNewTriggerPrimitiveFinderTool"
112 physics.producers.runsum20 .finder1.Threshold: 20
113 physics.producers.runsum40 .finder1.Threshold: 40
114 physics.producers.runsum60 .finder1.Threshold: 60
115 physics.producers.runsum80 .finder1.Threshold: 80
116 physics.producers.runsum100.finder1.Threshold: 100
117 physics.producers.runsum200.finder1.Threshold: 200
118 physics.producers.runsum20 .finder2.Threshold: 160
119 physics.producers.runsum40 .finder2.Threshold: 160
120 physics.producers.runsum60 .finder2.Threshold: 160
121 physics.producers.runsum80 .finder2.Threshold: 160
122 physics.producers.runsum100.finder2.Threshold: 160
123 physics.producers.runsum200.finder2.Threshold: 160
125 # Set the HitLabel to make sure each DaqAnaSim reads hits from its
126 # corresponding TriggerPrimitiveFinder
127 physics.analyzers.snanarunsum20 .HitLabel: "runsum20"
128 physics.analyzers.snanarunsum40 .HitLabel: "runsum40"
129 physics.analyzers.snanarunsum60 .HitLabel: "runsum60"
130 physics.analyzers.snanarunsum80 .HitLabel: "runsum80"
131 physics.analyzers.snanarunsum100.HitLabel: "runsum100"
132 physics.analyzers.snanarunsum200.HitLabel: "runsum200"
133 # Only save IDEs in one of the output trees, since they're always the same and will only take up space otherwise
134 # physics.analyzers.snanatrigprim800.SaveIDEs: true
136 # =====================================================================
137 # You probably won't need to change anything below here
139 # Shut up the backtracker
140 services.message.destinations.LogStandardOut.categories.BackTracker.limit: 0
141 services.message.destinations.LogStandardError.categories.BackTracker.limit: 0
143 # Display all the INFO message for SNAna_module
144 services.message.destinations.LogStandardOut.categories.SNAna_module.limit:-1
146 # If you want to have the mf::LogDebug() messages, uncomment the following:
147 # services.message.destinations.LogStandardOut.threshold:"DEBUG"
148 # services.message.destinations.LogStandardOut.categories.SNAna_module.limit:-1
149 # services.message.destinations.LogStandardOut.categories.default.limit:0
152 # DetSim services. These are used by SimWire to add noise and
153 # pedestals to the incoming (noise-free) waveforms
154 services.SimChannelExtractService: @local::scxgeneric
155 services.ChannelNoiseService: @local::chnoiseold
156 services.PedestalAdditionService: @local::padprovided
157 services.AdcDistortService: @local::stuckbits
158 services.AdcSuppressService: @local::zsnone
159 services.AdcCompressService: @local::cmpreplace
160 services.DetPedestalService: @local::dune_fixedpeds
162 #Optical detector configuration
163 physics.producers.ophit.InputModule: "opdigi"