All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
trigger_icarus.fcl
Go to the documentation of this file.
1 #
2 # File: trigger_icarus.fcl
3 # Purpose: Configurations of ICARUS trigger related algorithm.
4 # Author: Gianluca Petrillo (petrillo@slac.stanford.edu)
5 # Date: April 2, 2019
6 #
7 # Configurations are provided for algorithms related to triggering.
8 #
9 # Current offer includes:
10 #
11 # * trigger gate builder tool configurations: tools to create discriminated
12 # waveforms out of full PMT waveforms
13 #
14 # Changes:
15 # 20210727 (petrillo@slac.stanford.edu)
16 # updated the selection of thresholds
17 #
18 #
19 
20 #include "pmtsimulation_icarus.fcl"
21 
22 BEGIN_PROLOG
23 
24 ################################################################################
25 ### Beam settings
26 ################################################################################
27 
28 BNB_settings: {
29 
30  spill_duration: "1.6 us"
31 
32  batches_per_spill: 1
33 
34  POT_per_batch: 5e12 # to be checked
35 
36  trigger_bits: 0x10
37 
38 } # BNB_settings
39 
40 #--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
41 
42 NuMI_settings: {
43 
44  spill_duration: "9.5 us"
45 
46  batches_per_spill: 12
47 
48  POT_per_batch: 5e12 # to be checked
49 
50  trigger_bits: 0x20
51 
52 } # NuMI_settings
53 
54 
55 ################################################################################
56 ### Trigger gate builders
57 ################################################################################
58 ###
59 ### A "trigger gate" is a gate signal (i.e. open or closed vs. time) related
60 ### to a PMT channel and typically used for triggering.
61 ###
62 ### We have a few algorithms available, and these are their standard
63 ### configurations.
64 ### Note that some of the parameters here are very hard to call "standard" in
65 ### that they are just a matter of choice: see e.g. the discrimination
66 ### thresholds.
67 ###
68 ###
69 ###
70 #
71 # icarus_triggergate_basic: basic configuration to be included in the full
72 # algorithm configuration
73 #
74 # It includes the threshold and a single "universal" baseline level.
75 #
76 icarus_triggergate_basic: {
77 
78  # waveform baseline [ADC counts]
79 # Baseline: 15000
80 
81  # thresholds for channel trigger gate opening [ADC counts]
82  # roughly equivalent to the amplitudes of
83  # [ 0.5, 4.0, 7.0, 12.0 ] photoelectrons or
84  # [ 3.5, 25.0, 50.0, 75.0 ] mV
85  ChannelThresholds: [ 30, 200, 400, 600 ]
86 
87 } # icarus_triggergate_basic
88 
89 #
90 # the pairing scheme is:
91 #
92 # ~50 ~50 ~50 ~50 ~50 ~50 ~50 ~50 ~50 ~50 ~50
93 # | cm| cm| cm| cm| cm| cm| cm| cm| cm| cm| cm|
94 # | | | | | | | | | | | |
95 # ' ' ' ' ' ' ' ' ' ' ' '
96 # ,O O. ,O O. ,O O. ---------.
97 # / \ / \ / \ `~52 cm
98 # O' `O O' `O O' `O ---------<
99 # `~52 cm
100 # O---O (O) (O) O---O ---------<'
101 # `~52 cm
102 # O. ,O O. ,O O. ,O ---------<'
103 # \ / \ / \ / `~52 cm
104 # `O O' `O O' `O O' ----------'
105 #
106 # replicated thrice per side per module;
107 # three rows below represent each of these units.
108 #
109 # The channel numbering scheme is:
110 #
111 #
112 # y
113 # /\
114 # ||
115 # || | | |
116 # || | 4 7 14 | 17 24 27 |
117 # || | 1 9 11 | 19 21 29 |
118 # || | 3 6 13 | 16 23 26 |
119 # || | 0 8 10 | 18 20 28 |
120 # || | 2 5 12 | 15 22 25 |
121 # || | | |
122 # ||
123 # ##=====================================================================> z
124 #
125 #
126 # (patterns can be generated with the `LVDSpatterns.py` script distributed
127 # in `icaruscode`)
128 #
130 
131  # behind C:0 S:0
132  [ 0, 2 ], [ 1, 4 ], [ 3, 6 ], [ 5, 8 ], [ 7, 9 ], [ 10, 12 ], [ 11, 14 ], [ 13 ],
133  [ 15, 18 ], [ 16 ], [ 17, 19 ], [ 20, 22 ], [ 21, 24 ], [ 23, 26 ], [ 25, 28 ], [ 27, 29 ],
134  [ 30, 32 ], [ 31, 34 ], [ 33, 36 ], [ 35, 38 ], [ 37, 39 ], [ 40, 42 ], [ 41, 44 ], [ 43 ],
135  [ 45, 48 ], [ 46 ], [ 47, 49 ], [ 50, 52 ], [ 51, 54 ], [ 53, 56 ], [ 55, 58 ], [ 57, 59 ],
136  [ 60, 62 ], [ 61, 64 ], [ 63, 66 ], [ 65, 68 ], [ 67, 69 ], [ 70, 72 ], [ 71, 74 ], [ 73 ],
137  [ 75, 78 ], [ 76 ], [ 77, 79 ], [ 80, 82 ], [ 81, 84 ], [ 83, 86 ], [ 85, 88 ], [ 87, 89 ],
138 
139  # behind C:0 S:1
140  [ 90, 92 ], [ 91, 94 ], [ 93, 96 ], [ 95, 98 ], [ 97, 99 ], [ 100,102 ], [ 101,104 ], [ 103 ],
141  [ 105,108 ], [ 106 ], [ 107,109 ], [ 110,112 ], [ 111,114 ], [ 113,116 ], [ 115,118 ], [ 117,119 ],
142  [ 120,122 ], [ 121,124 ], [ 123,126 ], [ 125,128 ], [ 127,129 ], [ 130,132 ], [ 131,134 ], [ 133 ],
143  [ 135,138 ], [ 136 ], [ 137,139 ], [ 140,142 ], [ 141,144 ], [ 143,146 ], [ 145,148 ], [ 147,149 ],
144  [ 150,152 ], [ 151,154 ], [ 153,156 ], [ 155,158 ], [ 157,159 ], [ 160,162 ], [ 161,164 ], [ 163 ],
145  [ 165,168 ], [ 166 ], [ 167,169 ], [ 170,172 ], [ 171,174 ], [ 173,176 ], [ 175,178 ], [ 177,179 ],
146 
147  # behind C:1 S:0
148  [ 180,182 ], [ 181,184 ], [ 183,186 ], [ 185,188 ], [ 187,189 ], [ 190,192 ], [ 191,194 ], [ 193 ],
149  [ 195,198 ], [ 196 ], [ 197,199 ], [ 200,202 ], [ 201,204 ], [ 203,206 ], [ 205,208 ], [ 207,209 ],
150  [ 210,212 ], [ 211,214 ], [ 213,216 ], [ 215,218 ], [ 217,219 ], [ 220,222 ], [ 221,224 ], [ 223 ],
151  [ 225,228 ], [ 226 ], [ 227,229 ], [ 230,232 ], [ 231,234 ], [ 233,236 ], [ 235,238 ], [ 237,239 ],
152  [ 240,242 ], [ 241,244 ], [ 243,246 ], [ 245,248 ], [ 247,249 ], [ 250,252 ], [ 251,254 ], [ 253 ],
153  [ 255,258 ], [ 256 ], [ 257,259 ], [ 260,262 ], [ 261,264 ], [ 263,266 ], [ 265,268 ], [ 267,269 ],
154 
155  # behind C:1 S:1
156  [ 270,272 ], [ 271,274 ], [ 273,276 ], [ 275,278 ], [ 277,279 ], [ 280,282 ], [ 281,284 ], [ 283 ],
157  [ 285,288 ], [ 286 ], [ 287,289 ], [ 290,292 ], [ 291,294 ], [ 293,296 ], [ 295,298 ], [ 297,299 ],
158  [ 300,302 ], [ 301,304 ], [ 303,306 ], [ 305,308 ], [ 307,309 ], [ 310,312 ], [ 311,314 ], [ 313 ],
159  [ 315,318 ], [ 316 ], [ 317,319 ], [ 320,322 ], [ 321,324 ], [ 323,326 ], [ 325,328 ], [ 327,329 ],
160  [ 330,332 ], [ 331,334 ], [ 333,336 ], [ 335,338 ], [ 337,339 ], [ 340,342 ], [ 341,344 ], [ 343 ],
161  [ 345,348 ], [ 346 ], [ 347,349 ], [ 350,352 ], [ 351,354 ], [ 353,356 ], [ 355,358 ], [ 357,359 ]
162 
163  ]
164 
165 
166 ################################################################################
167 ### PMT channels with issues
168 ###
169 #
170 # the following PMT were found to have issues during commissioning
171 # on January 2021 (or earlier).
172 # See e.g. SBN DocDB 20696 (see plots on slide 7).
173 #
175  70, 106, 217, # PMT not working [SBN DocDB 20696]
176  54, 58, 67, 98, 112, 153, 254 # hot channels [SBN DocDB 20696]
177 ]
178 
179 # default selection of PMT channels to ignore
181 
182 
183 ################################################################################
184 ###
185 ### icarus_dynamictriggergate: variable length gates
186 ###
187 icarus_dynamictriggergate: {
188 
189  tool_type: DynamicTriggerGateBuilderTool
190 
191  @table::icarus_triggergate_basic
192 
193 } # icarus_dynamictriggergate
194 
195 
196 ################################################################################
197 ###
198 ### icarus_dynamictriggergate: fixed length gates
199 ###
200 icarus_fixedtriggergate: {
201 
202  tool_type: FixedTriggerGateBuilderTool
203 
204  @table::icarus_triggergate_basic
205 
206  # minimum duration of a trigger gate
207  GateDuration: "200 ns"
208 
209 } # icarus_fixedtriggergate
210 
211 
212 
213 ################################################################################
214 icarus_region_finder: {
215 
216  # waveform baseline [ADC counts]
217  Baseline: 15000
218 
219  # minimum sampled value for a region to start
220  EnablingThreshold: @local::icarus_triggergate_basic.ChannelThresholds[0]
221 
222  # sampled value below which a region ends (default: as `EnablingThreshold`)
223  # DisablingThreshold: 5
224 
225  # how many samples above threshold for a region to start
226  MinSamplesAboveThreshold: 3 # default
227 
228  # how many samples below threshold for a region to end
229  # (default: as `MinSamplesAboveThreshold`)
230  # MinSamplesBelowThreshold: 3
231 
232 } # icarus_region_finder
233 
234 
235 ################################################################################
236 ### Legacy configurations
237 ################################################################################
238 ###
239 ### this pairing scheme is equivalent to the one in
240 ### `icarus_trigger_channel_pairings` but coded with the old PMT mapping
241 ###
242 #
243 # The channel numbering scheme is:
244 #
245 # 50 44 30 24 10 4
246 #
247 # 56 40 36 20 16 0
248 #
249 # 52 46 32 26 12 6
250 #
251 # 58 42 38 22 18 2
252 #
253 # 54 48 34 28 14 8
254 #
255 icarus_trigger_channel_pairings_single_wire_geo: [
256 
257  # behind C:0 S:0
258  [ 0, 4 ], [ 2, 8 ], [ 12, 6 ], [ 10, 16 ], [ 14, 18 ], [ 20, 24 ], [ 22, 28 ], [ 26 ],
259  [ 30, 36 ], [ 32 ], [ 34, 38 ], [ 40, 44 ], [ 42, 48 ], [ 46, 52 ], [ 50, 56 ], [ 54, 58 ],
260  [ 60, 64 ], [ 62, 68 ], [ 66, 72 ], [ 70, 76 ], [ 74, 78 ], [ 80, 84 ], [ 82, 88 ], [ 86 ],
261  [ 90, 96 ], [ 92 ], [ 94, 98 ], [ 100,104 ], [ 106,112 ], [ 102,108 ], [ 110,116 ], [ 114,118 ],
262  [ 120,124 ], [ 122,128 ], [ 126,132 ], [ 130,136 ], [ 134,138 ], [ 140,144 ], [ 142,148 ], [ 146 ],
263  [ 150,156 ], [ 152 ], [ 154,158 ], [ 160,164 ], [ 162,168 ], [ 166,172 ], [ 170,176 ], [ 174,178 ],
264 
265  # behind C:0 S:1
266  [ 1, 5 ], [ 3, 9 ], [ 13, 7 ], [ 11, 17 ], [ 15, 19 ], [ 21, 25 ], [ 23, 29 ], [ 27 ],
267  [ 31, 37 ], [ 33 ], [ 35, 39 ], [ 41, 45 ], [ 43, 49 ], [ 47, 53 ], [ 51, 57 ], [ 55, 59 ],
268  [ 61, 65 ], [ 63, 69 ], [ 67, 73 ], [ 71, 77 ], [ 75, 79 ], [ 81, 85 ], [ 83, 89 ], [ 87 ],
269  [ 91, 97 ], [ 93 ], [ 95, 99 ], [ 101,105 ], [ 107,113 ], [ 103,109 ], [ 111,117 ], [ 115,119 ],
270  [ 121,125 ], [ 123,129 ], [ 127,133 ], [ 131,137 ], [ 135,139 ], [ 141,145 ], [ 143,149 ], [ 147 ],
271  [ 151,157 ], [ 153 ], [ 155,159 ], [ 161,165 ], [ 163,169 ], [ 167,173 ], [ 171,177 ], [ 175,179 ],
272 
273  # behind C:1 S:0
274  [ 180,184 ], [ 182,188 ], [ 192,186 ], [ 190,196 ], [ 194,198 ], [ 200,204 ], [ 202,208 ], [ 206 ],
275  [ 210,216 ], [ 212 ], [ 214,218 ], [ 220,224 ], [ 222,228 ], [ 226,232 ], [ 230,236 ], [ 234,238 ],
276  [ 240,244 ], [ 242,248 ], [ 246,252 ], [ 250,256 ], [ 254,258 ], [ 260,264 ], [ 262,268 ], [ 266 ],
277  [ 270,276 ], [ 272 ], [ 274,278 ], [ 280,284 ], [ 286,292 ], [ 282,288 ], [ 290,296 ], [ 294,298 ],
278  [ 300,304 ], [ 302,308 ], [ 306,312 ], [ 310,316 ], [ 314,318 ], [ 320,324 ], [ 322,328 ], [ 326 ],
279  [ 330,336 ], [ 332 ], [ 334,338 ], [ 340,344 ], [ 342,348 ], [ 346,352 ], [ 350,356 ], [ 354,358 ],
280 
281  # behind C:1 S:1
282  [ 181,185 ], [ 183,189 ], [ 193,187 ], [ 191,197 ], [ 195,199 ], [ 201,205 ], [ 203,209 ], [ 207 ],
283  [ 211,217 ], [ 213 ], [ 215,219 ], [ 221,225 ], [ 223,229 ], [ 227,233 ], [ 231,237 ], [ 235,239 ],
284  [ 241,245 ], [ 243,249 ], [ 247,253 ], [ 251,257 ], [ 255,259 ], [ 261,265 ], [ 263,269 ], [ 267 ],
285  [ 271,277 ], [ 273 ], [ 275,279 ], [ 281,285 ], [ 287,293 ], [ 283,289 ], [ 291,297 ], [ 295,299 ],
286  [ 301,305 ], [ 303,309 ], [ 307,313 ], [ 311,317 ], [ 315,319 ], [ 321,325 ], [ 323,329 ], [ 327 ],
287  [ 331,337 ], [ 333 ], [ 335,339 ], [ 341,345 ], [ 343,349 ], [ 347,353 ], [ 351,357 ], [ 355,359 ]
288 
289 ] # icarus_trigger_channel_pairings_single_wire_geo
290 
291 
292 ################################################################################
293 
294 END_PROLOG
BEGIN_PROLOG icarus_trigger_channel_ignore
#define PMT
Definition: NestAlg.cxx:19
BEGIN_PROLOG icarus_trigger_channel_pairings
BEGIN_PROLOG GateDuration
BEGIN_PROLOG BNB_settings
BEGIN_PROLOG icarus_trigger_channel_ignore_202101