iceberg_dataprep_sequences.fcl
Go to the documentation of this file.
1 # iceberg_dataprep_sequences.fcl
2 #
3 # David Adams
4 # March 2021
5 #
6 # Dataprep sequences.
7 #
8 # Standard sequences for reconxtruction of Iceberg data are defined here.
9 #
10 # Example of use selecting Iceberg 5 reconstruction through mitigatio:
11 #
12 # data.dataprep_tools: []
13 # data.dataprep_seqs: @local::data.ib5_datprep_seqs
14 # data.dataprep_tools: @local::data.dataprep_seqs.calib_mit
15 # physics.services.RawDigitPrepService.ToolNames: @local::data.dataprep_tools
16 
17 ###################################################################################
18 # Iceberg 3.
19 ###################################################################################
20 
21 # No calibration, no noise removal.
22 data.ib3_dataprep_seqs.nocal_tail: [
23  "digitReader",
24  "ibrun3_sticky_codes_ped",
25  "ib3_adcPedestalFit",
26  "adcSampleFiller",
27  "ib_adcMitigate"
28  #"adcCorrectUndershootAdc" # correct undershoot
29 ]
30 
31 # Charge calibration; no mitigation or tail or noise removal.
32 data.ib3_dataprep_seqs.calib_only: [
33  "digitReader", # Read RawDigit
34  "ibrun3_sticky_codes_ped", # Read in sticky codes
35  "ib3_adcPedestalFit", # Find pedestal
36  "ib3SampleCalibration" # Subtract pedestal and apply charge calibration
37 ]
38 
39 # Charge calibration and mitigation, no tail or noise removal.
40 data.ib3_dataprep_seqs.calib_mit: [
41  @sequence::data.ib3_dataprep_seqs.calib_only
42  , "ib_adcMitigate" # Mitigate sticky codes
43  #,"pdsp_timingMitigate" # Mitigate FEMB302 timing
44 ]
45 
46 # Charge calibration, mitigation, tail removal, no noise removal.
47 data.ib3_dataprep_seqs.calib_tail: [
48  @sequence::data.ib3_dataprep_seqs.calib_mit
49  , "ib3TailRemovalKe" # correct undershoot
50 ]
51 
52 # Charge calibration, noise removal.
53 data.ib3_dataprep_seqs.calib_noiserem: [
54  @sequence::data.ib3_dataprep_seqs.calib_tail
55  , "ibNoiseRemovalKe" # Remove coherent noise
56 ]
57 
58 # Drop ROIs, scale back to ADC and zero bad/noisy channels for wirecell processing.
59 data.ib3_dataprep_seqs.wirecell: [
60  @sequence::data.ib3_dataprep_seqs.calib_noiserem
61  , "adcKeepAllSignalFinder" # Keep all signal (no ROIs)
62  , "adcScaleKeToAdc" # Scale samples to nominal ADC counts
63  , "pdsp_RemoveBadChannels" # Set bad channels to 0 ADC
64 ]
65 
66 ###################################################################################
67 # Iceberg 4.
68 ###################################################################################
69 
70 # No calibration, no noise removal.
71 data.ib4_dataprep_seqs.nocal_tail: [
72  "digitReader",
73  "ib3_adcPedestalFit",
74  "adcSampleFiller",
75  "ib_adcMitigate"
76  #"adcCorrectUndershootAdc" # correct undershoot
77 ]
78 
79 # Charge calibration; no mitigation or tail or noise removal.
80 data.ib4_dataprep_seqs.calib_only: [
81  "digitReader", # Read RawDigit
82  "ib4_adcPedestalFit", # Find pedestal
83  "ib4SampleCalibration" # Subtract pedestal and apply charge calibration
84 ]
85 
86 # Charge calibration, mitigation, tail removal, no noise removal.
87 data.ib4_dataprep_seqs.calib_tailonly: [
88  @sequence::data.ib4_dataprep_seqs.calib_only
89  , "ib3TailRemovalKe" # correct undershoot
90 ]
91 
92 # Charge calibration, mitigation, tail+ped removal, no noise removal.
93 data.ib4_dataprep_seqs.calib_tailped: [
94  @sequence::data.ib4_dataprep_seqs.calib_only
95  , "ib4TailPedRemovalZKe" # Remove collection tail and linear pedestal
96  , "ib4PedRemovalIKe" # Remove induction linear pedestal
97 ]
98 
99 # Charge calibration, noise removal.
100 data.ib4_dataprep_seqs.calib_noiserem: [
101  @sequence::data.ib4_dataprep_seqs.calib_tailped
102  , "ibNoiseRemovalKe" # Remove coherent noise
103 ]
104 
105 # Drop ROIs, scale back to ADC and zero bad/noisy channels for wirecell processing.
106 data.ib4_dataprep_seqs.wirecell: [
107  @sequence::data.ib4_dataprep_seqs.calib_noiserem
108  , "adcKeepAllSignalFinder" # Keep all signal (no ROIs)
109  , "adcScaleKeToAdc" # Scale samples to nominal ADC counts
110  , "pdsp_RemoveBadChannels" # Set bad channels to 0 ADC
111 ]
112 
113 ###################################################################################
114 # Iceberg 5.
115 ###################################################################################
116 
117 # No calibration, no noise removal.
118 data.ib5_dataprep_seqs.nocal: [
119  "digitReader",
120  "ib5_adcPedestalFit",
121  "adcSampleFiller"
122 ]
123 
124 # Charge calibration; no mitigation or tail or noise removal.
125 data.ib5_dataprep_seqs.calib_only: [
126  "digitReader", # Read RawDigit
127  "ib5_adcPedestalFit", # Find pedestal
128  "ib5SampleCalibration" # Subtract pedestal and apply charge calibration
129 ]
130 
131 # Charge calibration, mitigation, ped removal, no noise removal.
132 # A conditions-based tools.ib5PedRemoval is defined in iceberg_datatprep_tools.fcl.
133 data.ib5_dataprep_seqs.calib_ped: [
134  @sequence::data.ib5_dataprep_seqs.calib_only
135  , "ib5PedRemoval" # re-evaluate pedestal
136 ]
137 
138 # Charge calibration, noise removal.
139 data.ib5_dataprep_seqs.calib_noiserem: [
140  @sequence::data.ib5_dataprep_seqs.calib_only
141  , "ibNoiseRemovalKe" # Remove coherent noise
142 ]
143 
144 # Charge calibration, ped removal, noise removal.
145 data.ib5_dataprep_seqs.calib_ped_noiserem: [
146  @sequence::data.ib5_dataprep_seqs.calib_ped
147  , "ibNoiseRemovalKe" # Remove coherent noise
148 ]
149 
150 # Drop ROIs, scale back to ADC and zero bad/noisy channels for wirecell processing.
151 # DLA 2021-03-21: No tail or noise removal for now.
152 data.ib5_dataprep_seqs.wirecell: [
153  @sequence::data.ib5_dataprep_seqs.calib_only
154  , "adcKeepAllSignalFinder" # Keep all signal (no ROIs)
155  , "adcScaleKeToAdc" # Scale samples to nominal ADC counts
156  , "pdsp_RemoveBadChannels" # Set bad channels to 0 ADC
157 ]
158 
159 ###################################################################################