6 # This holds all the prolog for dataprep.
10 #***********************************************************************
12 # AdcChannelDataCopyService copies AdcChannelData.
15 service_provider: ConfigurableAdcChannelDataCopyService
29 #***********************************************************************
31 # RawDigitExtractService pulls ADC signals (raw:RawDigit) out of the lar
32 # container, converts to float, flags bad channels and subtracts pedestals.
35 service_provider: StandardRawDigitExtractService
37 DigitReadTool: digitReader
44 service_provider: StandardRawDigitExtractService
46 DigitReadTool: digitReader
52 #***********************************************************************
54 # AdcMitigationService is used to mitigate ADC signals, e.g.
55 # interpolate between good values to deal with stuck bits.
58 service_provider: InterpolatingAdcMitigationService
62 MaxConsecutiveSamples: 5
66 #***********************************************************************
68 # AdcSuppressService is used by AdcSuppressSignalFindingService (below).
70 adcsuppress_legacy35t: {
71 service_provider: Legacy35tZeroSuppressService
75 SuppressStickyBits: false
78 #***********************************************************************
80 # AdcSuppressSignalFindingService is used to remove noise from ADC signals.
82 # This implementation uses AdcSuppressService.
83 adcsigfind_suppress: {
84 service_provider: AdcSuppressSignalFindingService
87 #***********************************************************************
89 # AdcNoiseRemovalService is used to remove noise from ADC signals.
91 adcnr_dune35tlegacy: {
94 adcnr_dunedphase3x1x1: {
95 service_provider: DuneDPhase3x1x1NoiseRemovalService
96 CorrMode: "median" # mean or median
97 DoTwoPassFilter: false
100 Coherent32Groups: [] # do all groups if empty list
102 Coherent16Groups: [6, 7, 16, 17, 18, 19] # do all groups if empty list
103 UseBasicROIForCNR: true
109 FlattenExtrapolate: false
111 LowPassFltSecondPass: false
116 #***********************************************************************
118 # PedestalEvaluationService is used to evaluate pedestals from the
122 service_provider: MedianPedestalService
125 SkipFlaggedSamples: true
130 service_provider: MedianPedestalService
133 SkipFlaggedSamples: true
137 #***********************************************************************
139 # AdcDeconvolutionService is used to deconvolute the ADC signals.
142 service_provider: DuneDeconvolutionService
146 adcdco_dunefd: @local::adcdco_dune35t
148 adcdco_dunefddphase: {
149 service_provider: DuneDPhaseDeconvolutionService
153 #***********************************************************************
155 # AdcRoiBuildingService is used to define ROIs for the ADC signals.
158 service_provider: DuneRoiBuildingService
166 adcroi_dunefd: @local::adcroi_dune35t
168 adcroi_dunefddphase: {
169 service_provider: DuneDPhaseRoiBuildingService
171 FltCoeffs: [0.1, 0.75, 0.95]
180 service_provider: KeepAllRoiBuildingService
184 #***********************************************************************
186 # AdcWireBuildingService constructs lar outputs (recob::Wire) from ADC
190 service_provider: StandardAdcWireBuildingService
194 #***********************************************************************
196 # RawDigitPrepService is the high level service that uses the above
197 # services to prepare ADC signals including the conversion of
198 # raw::RawDigit to recob::Wire.
200 # Read raw data and subtract pedestals without any other preparation.
202 service_provider: StandardRawDigitPrepService
207 DoEarlySignalFinding: false
208 DoNoiseRemoval: false
209 DoPedestalAdjustment: false
210 DoDeconvolution: false
213 DoIntermediateStates: false
217 # Process simulation using service-based dataprep.
218 adcprep_with_services_sim: {
219 service_provider: StandardRawDigitPrepService
224 DoEarlySignalFinding: false
225 DoNoiseRemoval: false
226 DoPedestalAdjustment: false
227 DoDeconvolution: true
230 DoIntermediateStates: false
234 # Process simulation using tool-based dataprep.
235 adcprep_with_tools_sim: {
236 service_provider: ToolBasedRawDigitPrepService
242 "adcVintageDeconvoluter",
243 "adcThresholdSignalFinder"
245 CallgrindToolNames: []
248 # Process simulation using tool-based dataprep
249 # followed by wirecell service.
250 # Default tool sequence here writes the digits out as wires.
251 adcprep_with_tools_simwc: {
252 service_provider: ToolBasedRawDigitPrepService
258 "adcKeepAllSignalFinder"
260 CallgrindToolNames: []
263 # Process data using tool-based dataprep.
264 adcprep_with_tools_data: {
265 service_provider: ToolBasedRawDigitPrepService
271 "adcVintageDeconvoluter",
272 "adcThresholdSignalFinder"
274 CallgrindToolNames: []
277 # Process DP 3x1x1 data.
278 adcprep_dunedphase3x1x1: {
279 service_provider: StandardRawDigitPrepService
284 DoEarlySignalFinding: false
286 DoPedestalAdjustment: false
287 DoDeconvolution: true
290 DoIntermediateStates: false
294 # Process 35-ton data
295 adcprep_dune35tdata: {
296 service_provider: StandardRawDigitPrepService
301 DoEarlySignalFinding: true
303 DoPedestalAdjustment: false
304 DoDeconvolution: true
307 DoIntermediateStates: false
311 #***********************************************************************
315 # Process by APA keeping all ROPs.
316 changroup_apa_keepall: {
317 service_provider: GeoApaChannelGroupService
322 # Process by APA dropping the protoDUNE cryostat-side collection plane.
323 changroup_apa_pd_drop_outer: {
324 service_provider: GeoApaChannelGroupService
329 # Process by APA keeping only the protoDUNE TPC-side collection plane.
330 changroup_apa_pd_tpccoll: {
331 service_provider: GeoApaChannelGroupService
337 service_provider: GeoRopChannelGroupService
340 #***********************************************************************
342 # DataPrepModule is the producer that calls RawDigitPrepService
344 # This configuration does not make use of the decoding tool.
345 # Input is raw::RawDigit vector DigitLabel in the event data store.
346 # Use with MC. Can be used with data if the decoder module is called first.
347 producer_adcprep_notool: {
348 module_type: "DataPrepModule"
350 DecoderTool: "" # Non-blank reads digits with named tool.
351 DigitLabel: "daq" # Label for input digits if decoder tool is not used
352 TimeStampName: "" # Non-blank writes RDTimeStamps if decoder tool is used
353 OutputDigitName: "" # Non-blank writes digits if decoder tool is used
359 IntermediateStates: []
360 OnlineChannelMapTool: pd_onlineChannelMapByFemb
363 # This configuration uses the decoding tool and the old module.
364 # All APAs are decoded in one call to the tool.
365 # Obsolete. Use the byAPA module instead.
366 producer_adcprep_tool_old: {
367 module_type: "DataPrepModule"
369 DecoderTool: "pdsp_decoder" # Non-blank reads digits with named tool.
370 DigitLabel: "" # Label for input digits if decoder tool is not used
371 TimeStampName: "dataprep" # Non-blank writes RDTimeStamps if decoder tool is used
372 OutputDigitName: "" # Non-blank writes digits if decoder tool is used
378 IntermediateStates: []
379 OnlineChannelMapTool: pd_onlineChannelMapByFemb
382 # This configuration uses the decoding tool and the new byAPA module.
383 # All APAs are decoded in one call to the tool if ChannelGroups = ["all"]
384 # Use ChannelGroups = ["apas"] to process one APA at a time.
385 producer_adcprep_byapa: {
386 module_type: "DataPrepByApaModule"
388 DecoderTool: "pdsp_decoder" # Tool that reads digits.
389 OutputTimeStampName: "dataprep" # Non-blank writes digit RDTimeStamps
390 OutputDigitName: "" # Non-blank writes digits
391 OutputWireName: "dataprep" # Non-blank writes wires (processed digits)
392 ChannelGroups: ["apas"]
394 KeepChannels: [] # Channels to keep (all if empty).
395 SkipChannels: [] # Channels to skip.
396 SkipEmptyChannels: true # If true, empty channels are not processed and do not produce wires
397 DeltaTickCount: 0.005 # If true, empty channels are not processed and do not produce wires
398 ApaChannelCounts: [2560] # # of channels in each APA. Last value used for later values.
399 OnlineChannelMapTool: pd_onlineChannelMapByFemb
402 producer_adcprep: @local::producer_adcprep_notool
404 #***********************************************************************