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 "trigprim.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 services.Geometry: @local::dune10kt_1x2x6_geo
36 #source is now a root file
38 module_type: RootInput
39 maxEvents: -1 # Number of events to create
42 # Define and configure some modules to do work on each event.
43 # First modules are defined; they are scheduled later.
44 # Modules are grouped by type.
48 module_type: "SimWireDUNE"
49 SimChannelLabel: "largeant"
54 KeepEmptyChannels: true
55 AdcSimulator: "adcsim_ideal"
56 UseRawDigitInput: true
57 RawDigitInputLabel: "daq"
60 ophit: @local::dune35t_ophit
62 # You can add any number of trigger primitive finders here. Make
63 # sure each one has a distinct name, and has a corresponding
64 # daqsimana analyzer otherwise you won't get a corresponding
65 # TTree in the output file. Also make sure to add it to the "simulate" list below
66 trigprim12: @local::trigprimpass1
67 trigprim13: @local::trigprimpass1
68 trigprim14: @local::trigprimpass1
69 trigprim15: @local::trigprimpass1
70 trigprim16: @local::trigprimpass1
72 trigprim30sig: @local::trigprimpass2
73 trigprim40sig: @local::trigprimpass2
74 trigprim45sig: @local::trigprimpass2
75 trigprim50sig: @local::trigprimpass2
76 trigprim55sig: @local::trigprimpass2
77 trigprim60sig: @local::trigprimpass2
79 rns: { module_type: "RandomNumberSaver" }
83 # Create an SNAna for each trigger primitive finders. Make
84 # sure to add each one to the "ana" list below
85 snanatrigprim12: @local::trigprim_snana
86 snanatrigprim13: @local::trigprim_snana
87 snanatrigprim14: @local::trigprim_snana
88 snanatrigprim15: @local::trigprim_snana
89 snanatrigprim16: @local::trigprim_snana
91 snanatrigprim30sig: @local::trigprim_snana
92 snanatrigprim40sig: @local::trigprim_snana
93 snanatrigprim45sig: @local::trigprim_snana
94 snanatrigprim50sig: @local::trigprim_snana
95 snanatrigprim55sig: @local::trigprim_snana
96 snanatrigprim60sig: @local::trigprim_snana
99 simulate: [rns, simwire, ophit,
100 trigprim12, trigprim13, trigprim14, trigprim15, trigprim16,
101 trigprim30sig, trigprim40sig, trigprim45sig, trigprim50sig, trigprim55sig, trigprim60sig]
102 ana : [snanatrigprim12, snanatrigprim13, snanatrigprim14, snanatrigprim15, snanatrigprim16,
103 snanatrigprim30sig, snanatrigprim40sig, snanatrigprim45sig, snanatrigprim50sig, snanatrigprim55sig, snanatrigprim60sig]
105 trigger_paths: [ simulate ]
110 # Modify the settings of each of the trigger primitive finders. If you
111 # want to use a different trigger primitive finder class, set
112 # "physics.producers.<itemname>.finder.tool_type: MyNewTriggerPrimitiveFinderTool"
113 physics.producers.trigprim12.finder.Threshold: 1200
114 physics.producers.trigprim13.finder.Threshold: 1300
115 physics.producers.trigprim14.finder.Threshold: 1400
116 physics.producers.trigprim15.finder.Threshold: 1500
117 physics.producers.trigprim16.finder.Threshold: 1600
118 physics.producers.trigprim30sig.finder.ThresholdInSigma: 300
119 physics.producers.trigprim40sig.finder.ThresholdInSigma: 400
120 physics.producers.trigprim45sig.finder.ThresholdInSigma: 450
121 physics.producers.trigprim50sig.finder.ThresholdInSigma: 500
122 physics.producers.trigprim55sig.finder.ThresholdInSigma: 550
123 physics.producers.trigprim60sig.finder.ThresholdInSigma: 600
126 # Set the HitLabel to make sure each DaqAnaSim reads hits from its
127 # corresponding TriggerPrimitiveFinder
128 physics.analyzers.snanatrigprim12.HitLabel: "trigprim12"
129 physics.analyzers.snanatrigprim13.HitLabel: "trigprim13"
130 physics.analyzers.snanatrigprim14.HitLabel: "trigprim14"
131 physics.analyzers.snanatrigprim15.HitLabel: "trigprim15"
132 physics.analyzers.snanatrigprim16.HitLabel: "trigprim16"
133 physics.analyzers.snanatrigprim30sig.HitLabel: "trigprim30sig"
134 physics.analyzers.snanatrigprim40sig.HitLabel: "trigprim40sig"
135 physics.analyzers.snanatrigprim45sig.HitLabel: "trigprim45sig"
136 physics.analyzers.snanatrigprim50sig.HitLabel: "trigprim50sig"
137 physics.analyzers.snanatrigprim55sig.HitLabel: "trigprim55sig"
138 physics.analyzers.snanatrigprim60sig.HitLabel: "trigprim60sig"
140 # Only save IDEs in one of the output trees, since they're always the same and will only take up space otherwise
141 # physics.analyzers.snanatrigprim800.SaveIDEs: true
143 # =====================================================================
144 # You probably won't need to change anything below here
146 # Shut up the backtracker
147 services.message.destinations.LogStandardOut.categories.BackTracker.limit: 0
148 services.message.destinations.LogStandardError.categories.BackTracker.limit: 0
150 # Display all the INFO message for SNAna_module
151 services.message.destinations.LogStandardOut.categories.SNAna_module.limit:-1
153 # If you want to have the mf::LogDebug() messages, uncomment the following:
154 # services.message.destinations.LogStandardOut.threshold:"DEBUG"
155 # services.message.destinations.LogStandardOut.categories.SNAna_module.limit:-1
156 # services.message.destinations.LogStandardOut.categories.default.limit:0
159 # DetSim services. These are used by SimWire to add noise and
160 # pedestals to the incoming (noise-free) waveforms
161 services.SimChannelExtractService: @local::scxgeneric
162 services.ChannelNoiseService: @local::chnoiseold
163 services.PedestalAdditionService: @local::padprovided
164 services.AdcDistortService: @local::stuckbits
165 services.AdcSuppressService: @local::zsnone
166 services.AdcCompressService: @local::cmpreplace
167 services.DetPedestalService: @local::dune_fixedpeds
169 #Optical detector configuration
170 physics.producers.ophit.InputModule: "opdigi"