addnoise_findprim_daqsimanas.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 BEGIN_PROLOG
13 
14 # This is the generic trigger primitive finder call. To make your own,
15 # add another call to "@local::trigprimpass1" to the producers list,
16 # and modify its settings later on
17 
18 trigprimpass1: {
19  module_type: "TriggerPrimitiveFinder"
20  InputTag: "simwire"
21  finder: {
22  tool_type: "TriggerPrimitiveFinderPass1"
23  }
24 }
25 END_PROLOG
26 
27 #include "DAQSimAna.fcl"
28 #include "standard_detsim_dune10kt_1x2x6.fcl"
29 
30 process_name: PrimSim
31 
32 services: @local::dunefd_simulation_services
33 services.TFileService: { fileName: "DAQSimAna_plus_trigprim_multithreshold.root" }
34 services.TimeTracker: {}
35 services.MemoryTracker: { } # default is one
36 services.RandomNumberGenerator: {} #ART native random number generator
37 // services.FileCatalogMetadata: @local::art_file_catalog_mc
38 services.NuRandomService: @local::per_event_NuRandomService # seedservice.fcl
39 services.message: @local::dune_message_services_prod
40 #source is now a root file
41 source: {
42  module_type: RootInput
43  maxEvents: -1 # Number of events to create
44 }
45 
46 # Define and configure some modules to do work on each event.
47 # First modules are defined; they are scheduled later.
48 # Modules are grouped by type.
49 physics: {
50  producers: {
51  simwire: {
52  module_type: "SimWireDUNE"
53  SimChannelLabel: "largeant"
54  NoiseOn: true
55  PedestalOn: true
56  DistortOn: false
57  SuppressOn: false
58  KeepEmptyChannels: true
59  AdcSimulator: "adcsim_ideal"
60  UseRawDigitInput: true
61  RawDigitInputLabel: "daq"
62  }
63 
64  # You can add any number of trigger primitive finders here. Make
65  # sure each one has a distinct name, and has a corresponding
66  # daqsimana analyzer (otherwise you won't get a corresponding
67  # TTree in the output file. Also make sure to add it to the "simulate" list below
68  trigprim600: @local::trigprimpass1
69  trigprim800: @local::trigprimpass1
70  trigprim1000: @local::trigprimpass1
71  trigprim1200: @local::trigprimpass1
72  trigprim1400: @local::trigprimpass1
73  trigprim1600: @local::trigprimpass1
74  trigprim1800: @local::trigprimpass1
75 
76  rns: { module_type: "RandomNumberSaver" }
77  }
78 
79  analyzers:
80  {
81  # Create a DAQSimAna for each trigger primitive finders. Make
82  # sure to add each one to the "ana" list below
83  daqanatrigprim600: @local::standard_daqsimana
84  daqanatrigprim800: @local::standard_daqsimana
85  daqanatrigprim1000: @local::standard_daqsimana
86  daqanatrigprim1200: @local::standard_daqsimana
87  daqanatrigprim1400: @local::standard_daqsimana
88  daqanatrigprim1600: @local::standard_daqsimana
89  daqanatrigprim1800: @local::standard_daqsimana
90  waveformstotree: {
91  module_type: "WaveformsToTree"
92  InputTag: "simwire"
93  MaxChannels: 10
94  }
95  }
96 
97  simulate: [ rns, simwire, trigprim600, trigprim800, trigprim1000, trigprim1200, trigprim1400, trigprim1600, trigprim1800 ]
98  ana: [ daqanatrigprim600, daqanatrigprim800, daqanatrigprim1000, daqanatrigprim1200, daqanatrigprim1400, daqanatrigprim1600, daqanatrigprim1800, waveformstotree ]
99 
100  trigger_paths: [simulate]
101  end_paths: [ ana ]
102 
103 }
104 
105 # Modify the settings of each of the trigger primitive finders. If you
106 # want to use a different trigger primitive finder class, set
107 # "physics.producers.<itemname>.finder.tool_type: MyNewTriggerPrimitiveFinderTool"
108 physics.producers.trigprim600.finder.Threshold: 600
109 physics.producers.trigprim800.finder.Threshold: 800
110 physics.producers.trigprim1000.finder.Threshold: 1000
111 physics.producers.trigprim1200.finder.Threshold: 1200
112 physics.producers.trigprim1400.finder.Threshold: 1400
113 physics.producers.trigprim1600.finder.Threshold: 1600
114 physics.producers.trigprim1800.finder.Threshold: 1800
115 
116 # Set the HitLabel to make sure each DaqAnaSim reads hits from its
117 # corresponding TriggerPrimitiveFinder
118 physics.analyzers.daqanatrigprim600.HitLabel: "trigprim600"
119 physics.analyzers.daqanatrigprim600.MARLEYLabel: "marley"
120 
121 physics.analyzers.daqanatrigprim800.HitLabel: "trigprim800"
122 physics.analyzers.daqanatrigprim800.MARLEYLabel: "marley"
123 
124 physics.analyzers.daqanatrigprim1000.HitLabel: "trigprim1000"
125 physics.analyzers.daqanatrigprim1000.MARLEYLabel: "marley"
126 
127 physics.analyzers.daqanatrigprim1200.HitLabel: "trigprim1200"
128 physics.analyzers.daqanatrigprim1200.MARLEYLabel: "marley"
129 
130 physics.analyzers.daqanatrigprim1400.HitLabel: "trigprim1400"
131 physics.analyzers.daqanatrigprim1400.MARLEYLabel: "marley"
132 
133 physics.analyzers.daqanatrigprim1600.HitLabel: "trigprim1600"
134 physics.analyzers.daqanatrigprim1600.MARLEYLabel: "marley"
135 
136 physics.analyzers.daqanatrigprim1800.HitLabel: "trigprim1800"
137 physics.analyzers.daqanatrigprim1800.MARLEYLabel: "marley"
138 
139 # =====================================================================
140 # You probably won't need to change anything below here
141 
142 # Shut up the backtracker
143 services.message.destinations.LogStandardOut.categories.BackTracker.limit: 0
144 services.message.destinations.LogStandardError.categories.BackTracker.limit: 0
145 
146 # DetSim services. These are used by SimWire to add noise and
147 # pedestals to the incoming (noise-free) waveforms
148 services.SimChannelExtractService: @local::scxgeneric
149 services.ChannelNoiseService: @local::chnoiseold
150 services.PedestalAdditionService: @local::padprovided
151 services.AdcDistortService: @local::stuckbits
152 services.AdcSuppressService: @local::zsnone
153 services.AdcCompressService: @local::cmpreplace
154 services.DetPedestalService: @local::dune_fixedpeds
155