1 # addnoise_findprim_frugalped_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
22 #include "standard_detsim_dune10kt_1x2x6.fcl"
27 services: @local::dunefd_simulation_services
28 services.TFileService: { fileName: "SNAna_plus_trigprim_frugalped_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 # You can add any number of trigger primitive finders here. Make
60 # sure each one has a distinct name, and has a corresponding
61 # daqsimana analyzer (otherwise you won't get a corresponding
62 # TTree in the output file. Also make sure to add it to the "simulate" list below
63 trigprim800: @local::trigprimpass1frugal
64 trigprim1000: @local::trigprimpass1frugal
65 trigprim1200: @local::trigprimpass1frugal
66 trigprim1400: @local::trigprimpass1frugal
67 trigprim1600: @local::trigprimpass1frugal
68 trigprim1800: @local::trigprimpass1frugal
69 trigprim2000: @local::trigprimpass1frugal
70 trigprim2400: @local::trigprimpass1frugal
72 rns: { module_type: "RandomNumberSaver" }
77 # Create an SNAna for each trigger primitive finders. Make
78 # sure to add each one to the "ana" list below
79 snanatrigprim800: @local::trigprim_snana
80 snanatrigprim1000: @local::trigprim_snana
81 snanatrigprim1200: @local::trigprim_snana
82 snanatrigprim1400: @local::trigprim_snana
83 snanatrigprim1600: @local::trigprim_snana
84 snanatrigprim1800: @local::trigprim_snana
85 snanatrigprim2000: @local::trigprim_snana
86 snanatrigprim2400: @local::trigprim_snana
88 module_type: "WaveformsToTree"
94 simulate: [ rns, simwire, trigprim800, trigprim1000, trigprim1200, trigprim1400, trigprim1600, trigprim1800, trigprim2000, trigprim2400 ]
95 ana: [ snanatrigprim800, snanatrigprim1000, snanatrigprim1200, snanatrigprim1400, snanatrigprim1600, snanatrigprim1800, snanatrigprim2000, snanatrigprim2400, waveformstotree ]
97 trigger_paths: [simulate]
102 # Modify the settings of each of the trigger primitive finders. If you
103 # want to use a different trigger primitive finder class, set
104 # "physics.producers.<itemname>.finder.tool_type: MyNewTriggerPrimitiveFinderTool"
105 physics.producers.trigprim800.finder.Threshold: 800
106 physics.producers.trigprim1000.finder.Threshold: 1000
107 physics.producers.trigprim1200.finder.Threshold: 1200
108 physics.producers.trigprim1400.finder.Threshold: 1400
109 physics.producers.trigprim1600.finder.Threshold: 1600
110 physics.producers.trigprim1800.finder.Threshold: 1800
111 physics.producers.trigprim2000.finder.Threshold: 2000
112 physics.producers.trigprim2400.finder.Threshold: 2400
114 # Set the HitLabel to make sure each DaqAnaSim reads hits from its
115 # corresponding TriggerPrimitiveFinder
116 physics.analyzers.snanatrigprim800.HitLabel: "trigprim800"
117 physics.analyzers.snanatrigprim1000.HitLabel: "trigprim1000"
118 physics.analyzers.snanatrigprim1200.HitLabel: "trigprim1200"
119 physics.analyzers.snanatrigprim1400.HitLabel: "trigprim1400"
120 physics.analyzers.snanatrigprim1600.HitLabel: "trigprim1600"
121 physics.analyzers.snanatrigprim1800.HitLabel: "trigprim1800"
122 physics.analyzers.snanatrigprim2000.HitLabel: "trigprim2000"
123 physics.analyzers.snanatrigprim2400.HitLabel: "trigprim2400"
125 # =====================================================================
126 # You probably won't need to change anything below here
128 # Shut up the backtracker
129 services.message.destinations.LogStandardOut.categories.BackTracker.limit: 0
130 services.message.destinations.LogStandardError.categories.BackTracker.limit: 0
132 # DetSim services. These are used by SimWire to add noise and
133 # pedestals to the incoming (noise-free) waveforms
134 services.SimChannelExtractService: @local::scxgeneric
135 services.ChannelNoiseService: @local::chnoiseold
136 services.PedestalAdditionService: @local::padprovided
137 services.AdcDistortService: @local::stuckbits
138 services.AdcSuppressService: @local::zsnone
139 services.AdcCompressService: @local::cmpreplace
140 services.DetPedestalService: @local::dune_fixedpeds