addnoise_runsum_snanas.fcl
Go to the documentation of this file.
1 # addnoise_findprim_daqsimanas.fcl
2 
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.
6 
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
11 
12 #include "SNAna.fcl"
13 #include "RunningSum.fcl"
14 BEGIN_PROLOG
15 runsum_snana: {
16  @table::standard_snana
17  SaveNeighbourADCs: false
18  SaveTruth: true
19 }
20 END_PROLOG
21 #include "opticaldetectormodules_dune.fcl"
22 #include "standard_detsim_dune10kt_1x2x6.fcl"
23 
24 
25 process_name: PrimSim
26 
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
36 source: {
37  module_type: RootInput
38  maxEvents: -1 # 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  simwire: {
47  module_type: "SimWireDUNE"
48  SimChannelLabel: "largeant"
49  NoiseOn: true
50  PedestalOn: true
51  DistortOn: false
52  SuppressOn: false
53  KeepEmptyChannels: true
54  AdcSimulator: "adcsim_ideal"
55  UseRawDigitInput: true
56  RawDigitInputLabel: "daq"
57  }
58 
59  ophit: @local::dune35t_ophit
60 
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
71 
72  rns: { module_type: "RandomNumberSaver" }
73  }
74 
75  analyzers: {
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
84 
85  }
86 
87  simulate: [rns, simwire, ophit,
88  runsum20,
89  runsum40,
90  runsum60,
91  runsum80,
92  runsum100,
93  runsum200]
94 
95  ana : [snanarunsum20,
96  snanarunsum40,
97  snanarunsum60,
98  snanarunsum80,
99  snanarunsum100,
100  snanarunsum200]
101 
102 
103 
104  trigger_paths: [ simulate ]
105  end_paths: [ ana ]
106 
107 }
108 
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
124 
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
135 
136 # =====================================================================
137 # You probably won't need to change anything below here
138 
139 # Shut up the backtracker
140 services.message.destinations.LogStandardOut.categories.BackTracker.limit: 0
141 services.message.destinations.LogStandardError.categories.BackTracker.limit: 0
142 
143 # Display all the INFO message for SNAna_module
144 services.message.destinations.LogStandardOut.categories.SNAna_module.limit:-1
145 
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
150 
151 
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
161 
162 #Optical detector configuration
163 physics.producers.ophit.InputModule: "opdigi"