All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
triggersim_icarus_data.fcl
Go to the documentation of this file.
1 #
2 # File: triggersim_icarus_data.fcl
3 # Purpose: Runs a chain to simulate ICARUS trigger primitives on ICARUS data.
4 # Author: Gianluca Petrillo (petrillo@slac.stanford.edu)
5 # Date: May 17, 2021
6 # Version: 1.0
7 #
8 # This is a top-level configuration that can be run directly.
9 #
10 # Assumptions:
11 #
12 # * pre-trigger: 9 us ( = (buffer length) x (1 - post_trigger_fraction) = 30 us x (1 - 70%))
13 # * beam gate: 1.6 us opening at trigger time (centered with a 25% margin)
14 #
15 #
16 # Required inputs
17 # ----------------
18 #
19 # * optical detector readout: `daqPMT`
20 # * PMT configuration: `pmtconfig` (run data product)
21 #
22 #
23 # Changes
24 # --------
25 #
26 # 20210517 (petrillo@slac.stanford.edu) [v1.0]
27 # : original version based on `triggersim_singlemodule_icarus.fcl` v1.0
28 # 20210721 (petrillo@slac.stanford.edu) [v1.1]
29 # : rely on `pmtconfig` from decoding (by now it's "standard")
30 #
31 
33 
34 
35 BEGIN_PROLOG
36 
37 BeamGateDuration @protect_ignore: "1.70 us" # a bit of margin to hit the beam
38 BeamGateStart @protect_ignore: "-0.05 us"
39 
40 END_PROLOG
41 
42 
43 #include "triggersim_icarus.fcl"
44 
45 #
46 # We can set the beam gate and trigger time according to the decoded trigger;
47 # for a minimum bias run, trigger and beam gate opening happen at the same time;
48 # while for a run with active trigger logic, trigger time is fixed while the
49 # beam gate opening time varies event by event and is expressed with respect to
50 # the trigger. Note that in simulation the opposite happens: beam gate time is
51 # fixed and triggers can be simulated relative to it.
52 #
53 services.DetectorClocksService.TrigModuleName: "daqTrigger"
54 
55 
56 #
57 # different input labels
58 #
59 physics.producers.discrimopdaq.OpticalWaveforms: "daqPMT"
60 physics.producers.pmtbaselines.OpticalWaveforms: "daqPMT"
61 
62 #
63 # additional modules:
64 # * PMT configuration from data product
65 # * baseline from PMT configuration
66 # * discrimination from PMT configuration
67 #
68 services.IICARUSChannelMap: @local::icarus_channelmappinggservice
69 
70 
71 physics.producers.pmtconfigbaselines: {
72 
73  module_type: PMTWaveformBaselinesFromReadoutConfiguration
74 
75  # label of input digitized optical waveform data product
76  OpticalWaveforms: "daqPMT"
77 
78  # label of PMT configuration
79  PMTconfigurationTag: "pmtconfig"
80 
81  # produce plots on the extracted baseline
82  PlotBaselines: true # default
83 
84  # print on screen the baselines (good for debugging)
85  PrintBaselines: true
86 
87  # tag of the module output to console via message facility
88  OutputCategory: "PMTWaveformBaselines" # default
89 
90 } # physics.producers.pmtconfigbaselines
91 
92 
93 physics.producers.pmtthr: {
94 
95  module_type: DiscriminatePMTwaveformsByChannel
96 
97  # input optical waveform data product tag:
98  OpticalWaveforms: "daqPMT"
99 
100  # PMT baselines
101  Baselines: "pmtconfigbaselines" # from data products
102 
103  # threshold configuration
104  ThresholdsFromPMTconfig: "pmtconfig"
105  NChannels: 360 # to be safe...
106 
107  #
108  # choosing the discrimination algorithm: fixed length gates
109  #
110  TriggerGateBuilder: {
111  @table::icarus_fixedtriggergate # from trigger_icarus.fcl
112 
113  ChannelThresholds: @local::PMTthresholds # ignored: overridden by module
114 
116 
117  } # TriggerGateBuilder
118 
119 
120  # message facility stream
121  OutputCategory: "DiscriminatePMTwaveforms"
122 
123 } # physics.producers.pmtthr
124 
125 
126 physics.producers.lvdsgatesOR.Thresholds: [ "pmtthr:" ]
127 
128 physics.producers.trigtilewindowOR.Thresholds: [ pmtthr ]
129 physics.producers.trigtilewindowORE.Thresholds: [ pmtthr ]
130 physics.producers.trigtilewindowORW.Thresholds: [ pmtthr ]
131 physics.producers.trigslidewindowOR.Thresholds: [ pmtthr ]
132 physics.producers.trigslidewindowORE.Thresholds: [ pmtthr ]
133 physics.producers.trigslidewindowORW.Thresholds: [ pmtthr ]
134 
135 physics.producers.simTiledORM1.Thresholds: [ pmtthr ]
136 physics.producers.simTiledORM2.Thresholds: [ pmtthr ]
137 physics.producers.simTiledORM3.Thresholds: [ pmtthr ]
138 physics.producers.simTiledORM4.Thresholds: [ pmtthr ]
139 physics.producers.simTiledORM5.Thresholds: [ pmtthr ]
140 physics.producers.simTiledORM6.Thresholds: [ pmtthr ]
141 physics.producers.simTiledORM3O3.Thresholds: [ pmtthr ]
142 physics.producers.simTiledORM4O4.Thresholds: [ pmtthr ]
143 physics.producers.simTiledORM5O5.Thresholds: [ pmtthr ]
144 physics.producers.simTiledORM6O6.Thresholds: [ pmtthr ]
145 physics.producers.simTiledORS3.Thresholds: [ pmtthr ]
146 physics.producers.simTiledORS5.Thresholds: [ pmtthr ]
147 physics.producers.simTiledORS8.Thresholds: [ pmtthr ]
148 physics.producers.simTiledORS10.Thresholds: [ pmtthr ]
149 physics.producers.simTiledORS15.Thresholds: [ pmtthr ]
150 physics.producers.simSlidingORM1.Thresholds: [ pmtthr ]
151 physics.producers.simSlidingORM2.Thresholds: [ pmtthr ]
152 physics.producers.simSlidingORM3.Thresholds: [ pmtthr ]
153 physics.producers.simSlidingORM4.Thresholds: [ pmtthr ]
154 physics.producers.simSlidingORM5.Thresholds: [ pmtthr ]
155 physics.producers.simSlidingORM6.Thresholds: [ pmtthr ]
156 physics.producers.simSlidingORM3O3.Thresholds: [ pmtthr ]
157 physics.producers.simSlidingORM4O4.Thresholds: [ pmtthr ]
158 physics.producers.simSlidingORM5O5.Thresholds: [ pmtthr ]
159 physics.producers.simSlidingORM6O6.Thresholds: [ pmtthr ]
160 physics.producers.simSlidingORS3.Thresholds: [ pmtthr ]
161 physics.producers.simSlidingORS5.Thresholds: [ pmtthr ]
162 physics.producers.simSlidingORS8.Thresholds: [ pmtthr ]
163 physics.producers.simSlidingORS10.Thresholds: [ pmtthr ]
164 physics.producers.simSlidingORS15.Thresholds: [ pmtthr ]
165 
166 
167 physics.analyzers.effTiledOR.Thresholds: @local::physics.producers.trigtilewindowOR.Thresholds
168 physics.analyzers.effTiledORE.Thresholds: @local::physics.producers.trigtilewindowORE.Thresholds
169 physics.analyzers.effTiledORW.Thresholds: @local::physics.producers.trigtilewindowORW.Thresholds
170 physics.analyzers.effSlidingOR.Thresholds: @local::physics.producers.trigslidewindowOR.Thresholds
171 physics.analyzers.effSlidingORE.Thresholds: @local::physics.producers.trigslidewindowORE.Thresholds
172 physics.analyzers.effSlidingORW.Thresholds: @local::physics.producers.trigslidewindowORW.Thresholds
173 
174 physics.producers.discrimopdaq: @erase
175 physics.producers.pmtbaselines: @erase
176 
177 physics.triggerOR: [
179 
180  lvdsgatesOR,
181 
182  # tiling
184  # sliding
186 
187  # trigger simulation: tiling
191  # trigger simulation: sliding
195 ]
196 
197 
198 #
199 # disable truth information
200 #
201 physics.analyzers.effTiledOR.OnlyPlotCategories: [ "All" ]
202 physics.analyzers.effTiledOR.GeneratorTags: []
203 physics.analyzers.effTiledOR.DetectorParticleTag: @erase
204 physics.analyzers.effTiledOR.EnergyDeposits: []
205 
206 physics.analyzers.effTiledORE.OnlyPlotCategories: [ "All" ]
207 physics.analyzers.effTiledORE.GeneratorTags: []
208 physics.analyzers.effTiledORE.DetectorParticleTag: @erase
209 physics.analyzers.effTiledORE.EnergyDeposits: []
210 
211 physics.analyzers.effTiledORW.OnlyPlotCategories: [ "All" ]
212 physics.analyzers.effTiledORW.GeneratorTags: []
213 physics.analyzers.effTiledORW.DetectorParticleTag: @erase
214 physics.analyzers.effTiledORW.EnergyDeposits: []
215 
216 physics.analyzers.effSlidingOR.OnlyPlotCategories: [ "All" ]
217 physics.analyzers.effSlidingOR.GeneratorTags: []
218 physics.analyzers.effSlidingOR.DetectorParticleTag: @erase
219 physics.analyzers.effSlidingOR.EnergyDeposits: []
220 
221 physics.analyzers.effSlidingORE.OnlyPlotCategories: [ "All" ]
222 physics.analyzers.effSlidingORE.GeneratorTags: []
223 physics.analyzers.effSlidingORE.DetectorParticleTag: @erase
224 physics.analyzers.effSlidingORE.EnergyDeposits: []
225 
226 physics.analyzers.effSlidingORW.OnlyPlotCategories: [ "All" ]
227 physics.analyzers.effSlidingORW.GeneratorTags: []
228 physics.analyzers.effSlidingORW.DetectorParticleTag: @erase
229 physics.analyzers.effSlidingORW.EnergyDeposits: []
230 
231 
232 
233 # ------------------------------------------------------------------------------
234 # --- Configuration override guide
235 # ------------------------------------------------------------------------------
236 #
237 # The default values of the trigger configuration are in one way or the other
238 # coming from `trigger_icarus.fcl`.
239 #
240 
241 
242 # ------------------------------------------------------------------------------
243 
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 caloskimCalorimetryCryoE physics caloskimCalorimetryCryoW physics sequence::physics pathW services
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM5O5
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM1
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simTiledORS3
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM3
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM5O5
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simSlidingORS8
process_name drop raw::OpDetWaveforms_DataApr2016RecoStage1_saturation_ * physics
BEGIN_PROLOG LVDSsignalWidth
#define the
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simSlidingORS3
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM2
process_name hit
Definition: cheaterreco.fcl:51
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG lvdsgatesOR
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM2
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM4O4
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM3
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG trigtilewindowORW
process_name gaushit a
BEGIN_PROLOG BeamGateDuration pmtthr
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM3O3
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simTiledORS10
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simTiledORS5
BEGIN_PROLOG GateDuration
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG trigslidewindowORW
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM6
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG trigslidewindowORE
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simSlidingORS10
BEGIN_PROLOG BeamGateDuration protect_ignore
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM5
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM4
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simSlidingORM6O6
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM6
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG trigtilewindowOR
physics producers discrimopdaq OpticalWaveforms
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 module_type
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM3O3
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simSlidingORS5
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG trigslidewindowOR
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM1
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simTiledORS8
BEGIN_PROLOG BeamGateDuration pmtthr physics producers trigtilewindowORS pmtthr physics producers trigtilewindowORC pmtthr physics producers trigtilewindowORN pmtthr physics producers trigtilewindowORE pmtthr physics producers trigtilewindowORSE pmtthr physics producers trigtilewindowORCE pmtthr physics producers trigtilewindowORNE pmtthr physics producers trigtilewindowORW pmtthr physics producers trigtilewindowORSW pmtthr physics producers trigtilewindowORCW pmtthr physics producers trigtilewindowORNW pmtthr physics producers trigslidewindowOR pmtthr physics producers trigslidewindowORE pmtthr physics producers trigslidewindowORW pmtthr physics analyzers effTiledOR pmtconfigbaselines
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM4O4
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG trigtilewindowORE
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM4
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simTiledORM6O6
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG simTiledORS15
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM5