dataprep_tools.fcl
Go to the documentation of this file.
1 # dataprep_tools.fcl
2 
3 # David Adams
4 # July 2017
5 
6 # Some example tools for use in data prep.
7 #
8 # April 2018. Some protoDUNE-specific tools are moved to protodune_dataprep_tools.fcl
9 
10 ################################################################################
11 # Job ranges.
12 ################################################################################
13 
14 tools.jobRanges: {
15  tool_type: FclIndexRangeTool
16  LogLevel: 1
17  events: { begin:0 end:0 labels: [] } # Event range for selection and plotting.
18 }
19 
20 ################################################################################
21 # Ranges for channel-tick plots.
22 ################################################################################
23 
24 # tools.tickRanges is defined in DuneCommon/fcl/dunecommon_tools.fcl
25 
26 tools.tickRanges.plotTicks: { begin:3000 end:4000 labels:["Plot ticks"] }
27 tools.tickRanges.plotAllTicks: { begin:0 end:0 labels:["All ticks"] }
28 
29 ################################################################################
30 # DUNE default clock data.
31 ################################################################################
32 
33 data.dune_ClockUnit: "Mtick"
34 data.dune_TriggerClockRate: 50000000.0
35 
36 ################################################################################
37 # Dumpers.
38 ################################################################################
39 
40 # Dump ADC channel contents to the log file.
41 tools.adcChannelDumper: {
42  tool_type: AdcChannelDumper
43  FileName: ""
44  Prefix: "ADC dump: "
45  NewFile: false
46  MaxSample: 0
47 }
48 
49 # Write all ROIs to a TTree.
50 tools.adcRoiTreeMaker: {
51  tool_type: AdcRoiToTree
52  LogLevel: 1
53  OutFile: "adcrois.root"
54  MetadataFields: []
55 }
56 
57 ################################################################################
58 # Event metrics.
59 ################################################################################
60 
61 # FEMB multiplicity for a single-APA detector.
62 tools.apa_evtviewNfemb: {
63  tool_type: AdcEventViewer
64  LogLevel: 2
65  EventHists: ["hnfemb:21:0:21"]
66  EventGraphs: ["event:events:1:nfemb:0:21"]
67  ChannelRanges: []
68  ChannelRangeLabel: ""
69  ClockUnit: @local::data.dune_ClockUnit
70  ClockRate: @local::data.dune_TriggerClockRate
71 }
72 
73 ################################################################################
74 # Event displays.
75 ################################################################################
76 
77 # Add ADC info to names and titles, e.g.
78 # MyTitle = "Run %RUN%-%SUBRUN% event %EVENT% channel %CHAN%"
79 # MyFileName = "run%0RUN%-%0SUBRUN%_evt%0EVENT%_cha%0CHAN%"
80 tools.adcStringBuilder: {
81  tool_type: StandardAdcChannelStringTool
82  LogLevel: 1
83  RunWidth: 6
84  SubRunWidth: 4
85  EventWidth: 6
86  ChannelWidth: 5
87  CountWidth: 4
88  FembWidth: 3
89  TriggerWidth: 2
90  TrigNames: [ "flag 0", "flag 1", "flag 2", "flag 3", "flag 4",
91  "flag 5", "flag 6", "flag 7", "random", "flag 9",
92  "flag 10", "flag 11", "beam", "CRT", "NGT"]
93 }
94 
95 # Dump raw ADC channel waveform to a histogram.
96 tools.adcPlotRaw: {
97  tool_type: AdcChannelPlotter
98  LogLevel: 1
99  HistTypes: ["raw"]
100  HistName: "adc_%TYPE%_ev%EVENT%_ch%CHAN%"
101  HistTitle: "ADC %TYPE% run %RUN% event %EVENT% channel %CHAN%"
102  RootFileName: ""
103  PlotFileName: ""
104  PlotSamMin: 0
105  PlotSamMax: 1000
106  PlotSigOpt: pedestal
107  PlotSigMin: 100
108  PlotSigMax: 0
109  PlotDistMin: 0
110  PlotDistMax: 0
111  ColorBad: 633
112  ColorNoisy: 636
113  LabelSize: 0.01
114  SkipFlags: []
115 }
116 
117 # Dump prepared ADC channel waveform to a histogram.
118 tools.adcPlotPrepared: {
119  tool_type: AdcChannelPlotter
120  LogLevel: 1
121  HistTypes: ["prepared"]
122  HistName: "adc_%TYPE%_ev%EVENT%_ch%CHAN%"
123  HistTitle: "ADC %TYPE% run %RUN% event %EVENT% channel %CHAN%"
124  RootFileName: ""
125  PlotFileName: ""
126  PlotSamMin: 0
127  PlotSamMax: 1000
128  PlotSigOpt: full
129  PlotSigMin: 0
130  PlotSigMax: 0
131  PlotDistMin: 0
132  PlotDistMax: 0
133  ColorBad: 633
134  ColorNoisy: 636
135  LabelSize: 0.01
136  SkipFlags: []
137 }
138 
139 # Dump ADC channel distribution to a histogram.
140 tools.adcPlotRawDist: {
141  tool_type: AdcChannelPlotter
142  LogLevel: 1
143  HistTypes: ["rawdist"]
144  HistName: "adc_%TYPE%_ev%EVENT%_ch%CHAN%"
145  HistTitle: "ADC %TYPE% run %RUN% event %EVENT% channel %CHAN%"
146  RootFileName: ""
147  PlotFileName: ""
148  PlotSamMin: 0
149  PlotSamMax: 1000
150  PlotSigOpt: full
151  PlotSigMin: 0
152  PlotSigMax: 0
153  PlotDistMin: 0
154  PlotDistMax: 0
155  ColorBad: 633
156  ColorNoisy: 636
157  LabelSize: 0.01
158  SkipFlags: []
159 }
160 
161 # Fit ADC distribution to get pedestal.
162 tools.def_adcPedestalFit: {
163  tool_type: AdcPedestalFitter
164  LogLevel: 1
165  AdcRange: 4096
166  FitOpt: 0
167  FitPrecision: 1.0
168  SkipFlags: []
169  AdcFitRange: 100
170  FitRmsMin: 1.0
171  FitRmsMax: 20.0
172  RemoveStickyCode: false
173  HistName: "adcped_ev%0EVENT%_ch%0CHAN%"
174  HistTitle: "ADC pedestal fit for run %RUN% event %EVENT% channel %CHAN%"
175  PlotFileName: ""
176  RootFileName: ""
177  HistManager: ""
178  PlotSizeX: 1400
179  PlotSizeY: 1000
180  PlotSplitX: 4
181  PlotSplitY: 4
182  PlotShowFit: 1
183 }
184 
185 # Dump ADC map raw contents to the log file.
186 tools.adcRawDumper: {
187  tool_type: AdcDataDumper
188  FileName: ""
189  Prefix: "ADC raw dump for "
190  NewFile: false
191  ShowChannelCount: true
192  ShowTickCounts: false
193  ShowRaw: true
194  ShowPrepared: false
195  ShowFirst: 0
196  ShowRebin: 0
197  ShowMax: 20
198  ShowThreshold: 10
199  ShowOpt: 1
200 }
201 
202 # Dump ADC map contents to the log file.
203 tools.adcDumper: {
204  tool_type: AdcDataDumper
205  FileName: ""
206  Prefix: "ADC dump for "
207  NewFile: false
208  ShowChannelCount: true
209  ShowTickCounts: false
210  ShowRaw: false
211  ShowPrepared: true
212  ShowFirst: 10
213  ShowRebin: 5
214  ShowMax: 30
215  ShowThreshold: 10
216  ShowOpt: 2
217 }
218 
219 # Create png files showing ADC contents (ADC vs. channel vs. time).
220 tools.preparedAdcPlotter: {
221  tool_type: AdcDataPlotter
222  LogLevel: 1
223  DataType: 0 # 0 for prepared, 1 for raw-pedestal
224  DataView: ""
225  TickRange: plotTicks
226  TickRebin: 1
227  ChannelRanges: []
228  ClockFactor: 0.0
229  ClockOffset: 0.0
230  FembTickOffsets: []
231  MaxSignal: 200
232  SkipChannelStatus: []
233  EmptyColor: 18
234  ChannelLineModulus: 2560
235  ChannelLinePattern: [0, 800, 1600, 2080]
236  ChannelLinePatternSolid: []
237  Palette: 2020
238  HistName: "hadcprp_evt%EVENT%_ch_%CHAN1%"
239  HistTitle: "Prepared ADC for run %RUN% event %EVENT%"
240  PlotTitle: ""
241  PlotSizeX: 1400
242  PlotSizeY: 1000
243  PlotFileName: "adcprep_evt%EVENT%_ch%CHAN1%-%CHAN2%.png"
244  RootFileName: "" # or "adc_evt%EVENT%.root"
245 }
246 tools.signalAdcPlotter: {
247  tool_type: AdcDataPlotter
248  LogLevel: 1
249  DataType: 2 # 0 for prepared, 1 for raw-pedestal
250  DataView: ""
251  TickRange: plotTicks
252  TickRebin: 1
253  ChannelRanges: []
254  ClockFactor: 0.0
255  ClockOffset: 0.0
256  FembTickOffsets: []
257  MaxSignal: 200
258  SkipChannelStatus: []
259  EmptyColor: 18
260  ChannelLineModulus: 2560
261  ChannelLinePattern: [0, 800, 1600, 2080]
262  ChannelLinePatternSolid: []
263  Palette: 2020
264  HistName: "hadcsig_evt%EVENT%_ch_%CHAN1%"
265  HistTitle: "Signal ADC for run %RUN% event %EVENT%"
266  PlotTitle: ""
267  PlotSizeX: 1400
268  PlotSizeY: 1000
269  PlotFileName: "adcsig_evt%EVENT%_ch%CHAN1%-%CHAN2%.png"
270  RootFileName: "" # or "adc_evt%EVENT%.root"
271 }
272 tools.rawAdcPlotter: {
273  tool_type: AdcDataPlotter
274  LogLevel: 1
275  DataType: 1 # 0 for prepared, 1 for raw-pedestal
276  DataView: ""
277  TickRange: plotTicks
278  TickRebin: 1
279  ChannelRanges: []
280  ClockFactor: 0.0
281  ClockOffset: 0.0
282  FembTickOffsets: []
283  MaxSignal: 200
284  SkipChannelStatus: []
285  EmptyColor: 18
286  ChannelLineModulus: 2560
287  ChannelLinePattern: [0, 800, 1600, 2080]
288  ChannelLinePatternSolid: []
289  Palette: 2020
290  HistName: "hadcraw_evt%EVENT%_ch_%CHAN1%"
291  HistTitle: "Raw ADC for run %RUN% event %EVENT%"
292  PlotTitle: ""
293  PlotSizeX: 1400
294  PlotSizeY: 1000
295  PlotFileName: "adcrawRun%0RUN%Event%0EVENT%Chan%CHAN1%-%CHAN2%.png"
296  RootFileName: "" # or "adc_evt%EVENT%.root"
297 }
298 
299 ################################################################################
300 # Metric plotters.
301 ################################################################################
302 
303 # Pedestal for each channel.
304 tools.adcChannelPedestalPlotter: {
305  tool_type: AdcChannelMetric
306  LogLevel: 1
307  DataView: ""
308  Metric: pedestal
309  PedestalReference: ""
310  MetricSummaryView: ""
311  MetricMin: 0
312  MetricMax: 4096
313  MetricBins: 0
314  MetricLabel: "Pedestal"
315  PlotUsesStatus: 0
316  ChannelRanges: []
317  ChannelLineModulus: 0
318  ChannelLinePattern: []
319  ChannelLinePatternSolid: []
320  HistName: "hchped_%0RUN%_%0EVENT%_%0CHAN1%_%0CHAN2%"
321  HistTitle: "ADC pedestals for run %RUN% event %EVENT%"
322  PlotSizeX: 1400
323  PlotSizeY: 500
324  PlotFileName: "hchped_run%0RUN%_evt%0EVENT%_chans%0CHAN1%-%0CHAN2%.png"
325  RootFileName: ""
326  MetadataFlags: []
327 }
328 
329 # Pedestal RMS for each channel.
330 tools.adcChannelPedestalRmsPlotter: {
331  tool_type: AdcChannelMetric
332  LogLevel: 1
333  DataView: ""
334  Metric: pedestalRms
335  PedestalReference: ""
336  MetricSummaryView: ""
337  MetricMin: 0
338  MetricMax: 11
339  MetricBins: 0
340  MetricLabel: "RMS"
341  PlotUsesStatus: 0
342  ChannelRanges: []
343  ChannelLineModulus: 0
344  ChannelLinePattern: []
345  ChannelLinePatternSolid: []
346  HistName: "hchpedrms_%0RUN%_%0EVENT%_%0CHAN1%_%0CHAN2%"
347  HistTitle: "ADC pedestal RMS for run %RUN% event %EVENT%"
348  PlotSizeX: 1400
349  PlotSizeY: 500
350  PlotFileName: "hchpedrms_run%0RUN%_evt%0EVENT%_chans%0CHAN1%-%0CHAN2%.png"
351  RootFileName: ""
352  MetadataFlags: []
353 }
354 
355 # Sample RMS
356 tools.adcChannelSamplelRmsPlotter: @local::tools.adcChannelPedestalRmsPlotter
357 tools.adcChannelSamplelRmsPlotter.Metric: samRms
358 tools.adcChannelSamplelRmsPlotter.MetricLabel: "RMS [ke]"
359 tools.adcChannelSamplelRmsPlotter.HistName: "hchsamrms_%0RUN%_%0EVENT%_%0CHAN1%_%0CHAN2%"
360 tools.adcChannelSamplelRmsPlotter.HistTitle: "ADC sample RMS for run %RUN% event %EVENT%"
361 tools.adcChannelSamplelRmsPlotter.PlotFileName: "hchsamrms_run%0RUN%_evt%0EVENT%_chans%0CHAN1%-%0CHAN2%.png"
362 
363 # Signal RMS
364 tools.adcChannelSignalRmsPlotter: @local::tools.adcChannelPedestalRmsPlotter
365 tools.adcChannelSignalRmsPlotter.Metric: sigRms
366 tools.adcChannelSignalRmsPlotter.MetricLabel: "RMS [ke]"
367 tools.adcChannelSignalRmsPlotter.HistName: "hchsigrms_%0RUN%_%0EVENT%_%0CHAN1%_%0CHAN2%"
368 tools.adcChannelSignalRmsPlotter.HistTitle: "ADC signal RMS for run %RUN% event %EVENT%"
369 tools.adcChannelSignalRmsPlotter.PlotFileName: "hchsigrms_run%0RUN%_evt%0EVENT%_chans%0CHAN1%-%0CHAN2%.png"
370 
371 # Not-signal RMS
372 tools.adcChannelNotSignalRmsPlotter: @local::tools.adcChannelPedestalRmsPlotter
373 tools.adcChannelNotSignalRmsPlotter.Metric: nsgRms
374 tools.adcChannelNotSignalRmsPlotter.MetricLabel: "RMS [ke]"
375 tools.adcChannelNotSignalRmsPlotter.HistName: "hchnsgrms_%0RUN%_%0EVENT%_%0CHAN1%_%0CHAN2%"
376 tools.adcChannelNotSignalRmsPlotter.HistTitle: "ADC not-signal RMS for run %RUN% event %EVENT%"
377 tools.adcChannelNotSignalRmsPlotter.PlotFileName: "hchnsgrms_run%0RUN%_evt%0EVENT%_chans%0CHAN1%-%0CHAN2%.png"
378 
379 adcSampleFreq: 2000
380 adcPlotDftTemplate: {
381  tool_type: AdcChannelDftPlotter
382  LogLevel: 1
383  PlotDataView: ""
384  ChannelStatusFlag: 0
385  ChannelSelection: ""
386  SampleFreq: @local::adcSampleFreq
387  PlotName: ""
388  PlotSummaryNames: []
389  HistSummaryTitle: ""
390  XMin: 0.0
391  XMax: 0.0
392  YMinLog: 0.0
393  PlotChannelRanges: [] # Empty makes one plot for each channel
394  PlotChannelGroups: [] # Empty makes one plot for each channel
395  PlotOverlayGroups: 1 # Rnages in a group are drawn on the same pad.
396  PlotSizeX: 1400
397  PlotSizeY: 1000
398  PlotSplitX: 4
399  PlotSplitY: 4
400 }
401 
402 # DFT amplitudes
403 tools.adcPlotDftMag: @local::adcPlotDftTemplate
404 tools.adcPlotDftMag.Variable: magnitude
405 tools.adcPlotDftMag.SampleFreq: @local::adcSampleFreq
406 tools.adcPlotDftMag.YMax: 50
407 tools.adcPlotDftMag.HistName: "hdftmags_run%0RUN%_evt%0EVENT%_ch%0CHAN%"
408 tools.adcPlotDftMag.HistTitle: "DFT amplitudes for run %RUN% event %EVENT% channel %CHAN%"
409 tools.adcPlotDftMag.PlotName: "dftmag_run%0RUN%_evt%0EVENT%_ch%0CHAN%.png"
410 
411 # DFT Phases
412 tools.adcPlotDftPhase: @local::adcPlotDftTemplate
413 tools.adcPlotDftPhase.Variable: phase
414 tools.adcPlotDftPhase.HistName: "hdftphas_run%0RUN%_evt%0EVENT%_ch%0CHAN%"
415 tools.adcPlotDftPhase.HistTitle: "DFT phases for run %RUN% event %EVENT% channel %CHAN%"
416 tools.adcPlotDftPhase.PlotName: "dftpha_run%0RUN%_evt%0EVENT%_ch%0CHAN%.png"
417 
418 # DFT power
419 tools.adcPlotDftPower: @local::adcPlotDftTemplate
420 tools.adcPlotDftPower.Variable: power
421 tools.adcPlotDftPower.YMax: 10000
422 tools.adcPlotDftPower.NBinX: 50
423 tools.adcPlotDftPower.HistName: "hdftpower_run%0RUN%_evt%0EVENT%_ch%0CHAN%"
424 tools.adcPlotDftPower.HistTitle: "DFT power for run %RUN% event %EVENT% channel %CHAN%"
425 tools.adcPlotDftPower.HistSummaryTitles:["DFT power for run %RUN%", "DFT power for run %RUN% event %EVENT%"]
426 tools.adcPlotDftPower.PlotName: "dftpower_run%0RUN%_evt%0EVENT%_ch%0CHAN%.png"
427 tools.adcPlotDftPower.PlotSummaryNames: ["dftpowtlog_run%0RUN%.{png,tpad}", ""]
428 
429 
430 # DFT power/tick
431 tools.adcPlotDftTickPower: @local::tools.adcPlotDftPower
432 tools.adcPlotDftTickPower.Variable: "power/tick"
433 tools.adcPlotDftTickPower.YMax: -2.0
434 tools.adcPlotDftTickPower.NBinX: 50
435 tools.adcPlotDftTickPower.HistName: "hdftpowt_run%0RUN%_evt%0EVENT%_ch%0CHAN%"
436 tools.adcPlotDftTickPower.HistTitle: "DFT power for run %RUN% event %EVENT% channel %CHAN%"
437 tools.adcPlotDftTickPower.PlotName: "dftpowt_run%0RUN%_evt%0EVENT%_ch%0CHAN%.png"
438 tools.adcPlotDftPower.PlotSummaryNames: []
439 
440 # DFT power/tick with log scale.
441 tools.adcPlotDftTickPowerLog: @local::tools.adcPlotDftTickPower
442 tools.adcPlotDftTickPowerLog.YMinLog: 0.01
443 tools.adcPlotDftTickPowerLog.YMax: 100.0
444 tools.adcPlotDftTickPowerLog.HistName: "hdftpowtlog_run%0RUN%_evt%0EVENT%_ch%0CHAN%"
445 tools.adcPlotDftTickPowerLog.PlotName: "dftpowtlog_run%0RUN%_evt%0EVENT%_ch%0CHAN%.png"
446 tools.adcPlotDftPower.PlotSummaryNames: []
447 
448 ################################################################################
449 # Data prep reconstruction tools.
450 ################################################################################
451 
452 # Extract raw data from a digit.
453 tools.digitReader: {
454  tool_type: AcdDigitReader
455  LogLevel: 1
456 }
457 
458 # Fill sample from 12-bit ADC data.
459 tools.adcSampleFiller: {
460  tool_type: AdcSampleFiller
461  LogLevel: 1
462  AdcUnderflow: 0
463  AdcOverflow: 4095
464 }
465 
466 # Fill sample and apply calibration.
467 # May 2020: Switch to fix01 of calib based on 2018-dec data.
468 tools.adcSampleCalibration: {
469  tool_type: FloatArrayGainCalibration
470  LogLevel: 1
471  Unit: "ke/tick"
472  GainDefault: 0.0
473  AdcUnderflowDefault: 0
474  AdcOverflowDefault: 4095
475  GainTool: "areaGain_calib20191213_dec18ext"
476  ScaleFactor: 1.0
477 }
478 
479 # Perform deconvolution with SignalShapingService.
480 tools.adcVintageDeconvoluter: {
481  tool_type: VintageDeconvoluter
482  LogLevel: 1
483 }
484 
485 # Subtract baseline after deconvolution
486 tools.adcSubtractBaseline: {
487  tool_type: SubtractBaseline
488  LogLevel: 1
489  BaseSampleBins: 32
490  BaseVarCut: 5.
491 }
492 
493 # Find one ROI signals that includes all samples.
494 tools.adcKeepAllSignalFinder: {
495  tool_type: AdcKeepAllSignalFinder
496  LogLevel: 1
497  DataPath: ""
498 }
499 
500 # Scale samples from ke to ADC count.
501 tools.adcScaleKeToAdc: {
502  tool_type: AdcSampleScaler
503  LogLevel: 1
504  ScaleFactor: 40.0
505  InputUnit: "ke/tick"
506  OutputUnit: "ADC count"
507 }
508 
509 # Scale samples from ke to ADC count.
510 tools.adcScaleAdcToKe: {
511  tool_type: AdcSampleScaler
512  LogLevel: 1
513  ScaleFactor: 0.025
514  InputUnit: "ADC count"
515  OutputUnit: "ke/tick"
516 }
517 
518 # Find ADC signals with simple threshold algorithm.
519 tools.adcThresholdSignalFinder: {
520  tool_type: AdcThresholdSignalFinder
521  LogLevel: 1
522  Threshold: "3.0" # Works for MC may2018
523  BinsBefore: 10
524  BinsAfter: 20
525  FlagPositive: true
526  FlagNegative: true
527 }
528 
529 # Find calibrated signals with simple threshold algorithm.
530 tools.calibThresholdSignalFinder: @local::tools.adcThresholdSignalFinder
531 tools.calibThresholdSignalFinder.Threshold: 0.5
532 
533 # Find ADC signals with Dune 35t algorithm.
534 tools.adcDuneSignalFinder: {
535  tool_type: DuneAdcSignalFinder
536  LogLevel: 1
537  NoiseSigma: 0.0
538  NSigmaStart: 3.0
539  NSigmaEnd: 1.0
540  TicksBefore: 50
541  TicksAfter: 50
542 }
543 
544 # Dynamic signal finder.
545 tools.adcNoiseSignalFinder: {
546  tool_type: AdcNoiseSignalFinder
547  LogLevel: 1
548  SigFracMax: 0.80
549  ThresholdMin: 20.0
550  ThresholdRatio: 4.0
551  ThresholdRatioTol: 0.1
552  MaxLoop: 20.0
553  BinsBefore: 10
554  BinsAfter: 20
555  FlagPositive: true
556  FlagNegative: true
557 }
558 tools.calibNoiseSignalFinder: @local::tools.adcNoiseSignalFinder
559 tools.calibNoiseSignalFinder.ThresholdMin: 0.2
560 
561 # Do FFT.
562 tools.adcFFT: {
563  tool_type: AdcChannelFFT
564  LogLevel: 1
565  FirstTick: 0
566  NTick: 0
567  NormOpt: 1
568  Action: 3
569  ReturnOpt: 1
570  DataView: ""
571 }
572 
573 # Undo FFT.
574 tools.adcFFTinv: {
575  tool_type: AdcChannelFFT
576  LogLevel: 1
577  FirstTick: 0
578  NTick: 0
579  NormOpt: 1
580  Action: 13
581  ReturnOpt: 10
582  DataView: ""
583 }
584 
585 # Fetch ROI info and hists.
586 tools.adcRoiViewer: {
587  tool_type: AdcRoiViewer
588  LogLevel: 1
589  SigThresh: 0.0
590  TickBorder: 0
591  RoiHistOpt: 1
592  FitOpt: 0
593  RoiPlotOpt: 2
594  StartTime: 0
595  PulserStepCharge: 0.0
596  PulserDacOffset: 0.0
597  PulserChargeUnit: ""
598  RunDataTool: ""
599  TickOffsetTool: ""
600  MaxRoiPlots: 1000
601  RoiPlotPadX: 4
602  RoiPlotPadY: 4
603  SumPlotPadX: 4
604  SumPlotPadY: 4
605  ChannelLineModulus: 0
606  ChannelLinePattern: []
607  ChannelLinePatternSolid: []
608  SumNegate: false
609  SumHists: []
610  ChanSumHists: []
611  ChannelRanges: []
612  RoiRootFileName: ""
613  SumRootFileName: ""
614  ChanSumRootFileName: ""
615  PlotLabels: []
616 }
617 tools.adcRoiFitter: {
618  tool_type: AdcRoiViewer
619  SigThresh: 0.0
620  TickBorder: 0
621  LogLevel: 1
622  RoiHistOpt: 1
623  FitOpt: 1
624  RoiPlotOpt: 2
625  StartTime: 0
626  PulserStepCharge: 0.0
627  PulserDacOffset: 0.0
628  PulserChargeUnit: ""
629  RunDataTool: ""
630  TickOffsetTool: ""
631  MaxRoiPlots: 1000
632  RoiPlotPadX: 4
633  RoiPlotPadY: 4
634  SumPlotPadX: 4
635  SumPlotPadY: 4
636  ChannelLineModulus: 0
637  ChannelLinePattern: []
638  ChannelLinePatternSolid: []
639  SumNegate: false
640  SumHists: []
641  ChanSumHists: []
642  ChannelRanges: []
643  RoiRootFileName: ""
644  SumRootFileName: ""
645  ChanSumRootFileName: ""
646  PlotLabels: []
647 }
648 
649 # Build ROI w.r.t. local baseline
650 tools.adcDPhase3x1x1LocalRoiBuilder: {
651  tool_type: AdcDPhase3x1x1LocalRoiBuilder
652  LogLevel: 1
653  BinsToAverageForPedestal: 100
654  BinsToSkip: 2
655  UseStandardDeviation: true
656  NConsecBinsAboveThreshold1: 9
657  NSigmaStart1: 0.5
658  NSigmaEnd1: 0.0
659  NConsecBinsAboveThreshold2: 4
660  NSigmaStart2: 1.8
661  NSigmaMax: 5
662  PadLow: 10
663  PadHigh: 30
664 }
665 
666 # Build ROI w.r.t 0
667 tools.adcDPhase3x1x1RoiBuilder: {
668  tool_type: AdcDPhase3x1x1RoiBuilder
669  LogLevel: 1
670  BinsToAverageForRMS: 100
671  BinsToSkip: 0
672  UseStandardDeviation: false
673  NConsecBinsAboveThreshold1: 30
674  NSigmaStart1: 1.0
675  NSigmaEnd1: 0.0
676  NConsecBinsAboveThreshold2: 10
677  NSigmaStart2: 2.0
678  NSigmaMax: 7.0
679  PadLow: 20
680  PadHigh: 50
681 }
682 
683 # Split data keeping ROIs.
684 tools.adcSliceRoi: {
685  tool_type: AdcRoiSlicer
686  LogLevel: 1
687  OutViewName: rois
688  SliceOpt: 1
689  CopyRaw: false
690 }
691 
692 # Split data keeping not ROIs.
693 tools.adcSliceNotRoi: {
694  tool_type: AdcRoiSlicer
695  LogLevel: 1
696  OutViewName: notrois
697  SliceOpt: 2
698  CopyRaw: false
699 }
700