All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
trigger_emulation_icarus.fcl
Go to the documentation of this file.
1 #
2 # File: trigger_emulation_icarus.fcl
3 # Purpose: Configurations for steps of ICARUS trigger emulation.
4 # Authors: Gianluca Petrillo (petrillo@slac.stanford.edu)
5 # Date: March 15, 2022
6 #
7 # Currently included:
8 # * PMT configured baseline extraction (data)
9 # * PMT discrimination with readout-configured thresholds (data)
10 # * PMT discrimination with fixed thresholds
11 #
12 #
13 #
14 # Changes
15 # --------
16 #
17 # 20220315 (petrillo@slac.stanford.edu) [v1.0]
18 # : original version
19 #
20 
21 #include "trigger_icarus.fcl"
22 
23 
24 BEGIN_PROLOG
25 
26 # ------------------------------------------------------------------------------
27 #
28 # [DATA] Extracts channel baselines from the run configuration.
29 #
30 # This step is necessary to discriminate PMT waveforms with the baseline
31 # set by the PMT readout. It writes `icarus::WaveformBaseline` objects.
32 # Note that the readout uses an absolute number for the threshold,
33 # that is set by the configuration at the start of the run.
34 # Therefore even if the baseline changes, the threshold will be still the same
35 # (and still represented by the nominal threshold over this baseline).
36 #
37 # This module does not require any service.
38 #
39 # This module should be run only once; standard label: "pmtconfigbaselines":
40 #
41 # physics.producers.pmtconfigbaselines: @local::icarus_pmtconfigbaselines
42 #
43 #
45 
46  module_type: PMTWaveformBaselinesFromReadoutConfiguration
47 
48  # label of input digitized optical waveform data product
49  OpticalWaveforms: "daqPMT"
50 
51  # label of PMT configuration
52  PMTconfigurationTag: "pmtconfig"
53 
54  # produce plots on the extracted baseline
55  PlotBaselines: false # default
56 
57  # print on screen the baselines (good for debugging)
58  PrintBaselines: false
59 
60  # tag of the module output to console via message facility
61  OutputCategory: "PMTWaveformBaselines"
62 
64 
65 
66 # ------------------------------------------------------------------------------
67 #
68 # [DATA] Discrimination of PMT waveforms with channel-by-channel thresholds.
69 #
70 # This module applies discrimination based on the hardware thresholds
71 # (described in `pmtconfig` and presumably originating from the PMT readout
72 # board configuration).
73 # It produces discriminated waveforms ("ReadoutTriggerGate" objects)
74 # and complimentary waveform summary data (all the waveform information that
75 # is not sample values: `sbn::OpDetWaveformMeta` objects).
76 #
77 # This module does requires `Geometry` and `DetectorClocksService` services.
78 #
79 # Usually this module is run only once; standard label: "pmtthr":
80 #
81 # physics.producers.pmtthr: @local::icarus_pmtdiscriminatethr
82 #
83 #
84 icarus_pmtdiscriminatethr: {
85 
86  module_type: DiscriminatePMTwaveformsByChannel
87 
88  # input optical waveform data product tag:
89  OpticalWaveforms: "daqPMT"
90 
91  # PMT baselines
92  Baselines: "pmtconfigbaselines" # from data products
93 
94  # threshold configuration
95  ThresholdsFromPMTconfig: "pmtconfig"
96  NChannels: 360 # to be safe...
97 
98  #
99  # choosing the discrimination algorithm: fixed length gates
100  #
101  TriggerGateBuilder: {
102  @table::icarus_fixedtriggergate # from trigger_icarus.fcl
103 
104  ChannelThresholds: [ 0 ] # ignored: overridden by module
105 
106  GateDuration: "160 ns"
107 
108  } # TriggerGateBuilder
109 
110  # message facility stream
111  OutputCategory: "DiscriminatePMTwaveforms"
112 
113 } # icarus_pmtdiscriminatethr
114 
115 
116 # ------------------------------------------------------------------------------
117 #
118 # [DATA] Discrimination of PMT waveforms with fixed thresholds.
119 #
120 # This module applies discrimination based on fixed threshold specified in the
121 # configuration.
122 # The baseline is learnt from the readout configuration.
123 # It produces discriminated waveforms ("ReadoutTriggerGate" objects)
124 # and complimentary waveform summary data (all the waveform information that
125 # is not sample values: `sbn::OpDetWaveformMeta` objects).
126 #
127 # This module does requires `Geometry` and `DetectorClocksService` services.
128 #
129 # Usually this module is usually run only once; standard label: "pmtfixedthr":
130 #
131 # physics.producers.pmtfixedthr: @local::icarus_pmtdiscriminatethr_fixed
132 #
133 #
134 icarus_pmtdiscriminatethr_fixed: {
135 
136  module_type: DiscriminatePMTwaveforms
137 
138  # input optical waveform data product tag:
139  OpticalWaveforms: "daqPMT"
140 
141  # PMT baselines
142  Baselines: "pmtconfigbaselines" # from data products
143 
144  NChannels: 360 # to be safe...
145 
146  #
147  # choosing the discrimination algorithm: fixed length gates
148  #
149  TriggerGateBuilder: {
150  @table::icarus_fixedtriggergate # from trigger_icarus.fcl
151 
152  ChannelThresholds: [ 100, 200, 300, 400, 500, 600 ] # ADC
153 
154  GateDuration: "160 ns"
155 
156  } # TriggerGateBuilder
157 
158 
159  # message facility stream
160  OutputCategory: "DiscriminatePMTwaveforms"
161 
162 } # icarus_pmtdiscriminatethr_fixed
163 
164 
165 # ------------------------------------------------------------------------------
166 #
167 # [MC] Discrimination of PMT waveforms with fixed thresholds.
168 #
169 # This module applies discrimination based on fixed threshold specified in the
170 # configuration.
171 # The baseline is fixed.
172 # It produces discriminated waveforms ("ReadoutTriggerGate" objects)
173 # and complimentary waveform summary data (all the waveform information that
174 # is not sample values: `sbn::OpDetWaveformMeta` objects).
175 #
176 # This module does requires `Geometry` and `DetectorClocksService` services.
177 #
178 # Usually this module is usually run only once; standard label: "pmtfixedthr":
179 #
180 # physics.producers.pmtfixedthr: @local::icarus_pmtdiscriminatethr_fixed_MC
181 #
182 #
183 icarus_pmtdiscriminatethr_fixed_MC: {
184 
185  @table::icarus_pmtdiscriminatethr_fixed
186 
187  # input optical waveform data product tag:
188  OpticalWaveforms: "opdaq"
189 
190  # PMT baseline (from standard simulation configuration)
191  Baselines: @erase
192  Baseline: @local::icarus_pmtsimulationalg_standard.Baseline
193 
194  #
195  # choosing the discrimination algorithm: fixed length gates
196  #
197  TriggerGateBuilder: {
198  @table::icarus_pmtdiscriminatethr_fixed.TriggerGateBuilder # as above
199 
200  ChannelThresholds: [ 100, 200, 300, 400, 500, 600 ] # ADC
201 
202  } # TriggerGateBuilder
203 
204 } # icarus_pmtdiscriminatethr_fixed_MC
205 
206 
207 # ------------------------------------------------------------------------------
208 
209 END_PROLOG
BEGIN_PROLOG GateDuration
BEGIN_PROLOG icarus_pmtconfigbaselines
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