pddp_data_reco.fcl
Go to the documentation of this file.
1 #include "pddp_sam.fcl"
2 #include "services_dune.fcl"
3 #include "caldata_dune.fcl"
4 #include "hitfindermodules_dune.fcl"
5 #include "cluster_dune.fcl"
6 #include "trackfindermodules_dune.fcl"
7 #include "pandoramodules_dune.fcl"
8 #include "calorimetry_dune10kt.fcl"
9 #include "mctrutht0matching.fcl"
10 #include "t0reco.fcl"
11 #include "particleid.fcl"
12 #include "showerfindermodules_dune.fcl"
13 #include "channelstatus_pddp.fcl"
14 #include "calorimetry_pdune.fcl"
15 
16 #include "tools_dune.fcl"
17 
18 process_name: Reco
19 
20 services:
21 {
22  # Load the service that manages root files for histograms.
23  TFileService: { fileName: "hist.root" }
24  TimeTracker: {}
25  MemoryTracker: {}
26  RandomNumberGenerator: {} #ART native random number generator
27  message: @local::dune_message_services_prod_debug
28  PDDPChannelMappings:
29  {
30  service_provider: PDDPChannelMap
31  MapName: "pddp2crp"
32  }
33  FileCatalogMetadata: @local::pddp_art_file_catalog
34  @table::protodunedphase_reco_services_legacy
35 }
36 
37 #services.FileCatalogMetadata.applicationVersion: "v08_54_00"
38 
39 services.Geometry: @local::protodunedphase_geo
40 services.DetectorPropertiesService: @local::protodunedphase_detproperties
41 services.RawDigitPrepService: @local::adcprep_with_tools_data
42 services.ChannelStatusService: @local::pddp_channel_status_lemblind
43 
44 # shape and filter parameters
45 services.SignalShapingServiceDUNEDPhase.ShapeFunc: "1/([0]-[1]) * ( exp(-(x)/[0]) - exp(-(x)/[1]) )"
46 services.SignalShapingServiceDUNEDPhase.ShapeFuncParams: [0.5, 4.0]
47 services.SignalShapingServiceDUNEDPhase.ColFilterParams: [ 1.0, 0.0, 0.1 ]
48 
49 # electric field configuration
50 services.DetectorPropertiesService.Efield: [0.166, 4.0, 0.0]
51 
52 ### to add to common
53 tools.pddp_adcMultiThreshSignalFinder: {
54  tool_type: AdcMultiThreshSignalFinder
55  LogLevel: 1
56  UseStandardDeviation: true
57  Threshold1: 2
58  SamplesAboveThreshold1: 10
59  Threshold2: 2
60  SamplesAboveThreshold2: 10
61  ThresholdMax: 3
62  ThresholdMin: 0
63  BinsBefore: 20
64  BinsAfter: 20
65 }
66 
67 ###
68 tools.pddp_RemoveBadChannels: {
69  tool_type: RemoveBadChannels
70  LogLevel: 1
71  RemoveBadChs: true
72  RemoveNoisyChs: false
73 }
74 
75 ### baseline detrending
76 tools.pddp_BaselineDetrend: {
77  tool_type: BaselineDetrend
78  LogLevel: 1
79  UseBasicROI: true
80  Thresh: 10
81  Pad: 50
82  MinFrac: 0.5
83  Span: 0.04
84 }
85 
86 ### coherent noise filtering
87 tools.pddp_NoiseRemovalAdc: {
88  tool_type: PdspNoiseRemoval
89  LogLevel: 1
90  RemoveHighFrequency: true
91  RemoveCoherent: true
92  CutoffFrequency: 400 # cutoff frequency in kHz for Butterworth low-pass filter
93  CorrMode: "median" # mean or median waveform for coherent noise determination
94  CoherentOffline16: true # remove coherent noise for every 16 offline channels
95  CoherentOffline16Groups: [] # remove coherent noise for all groups if list is empty
96  CoherentDaq8: false # remove coherent noise for every 8 online DAQ channels on the same ASIC
97  CoherentDaq8Groups: [] # remove coherent noise for all groups if list is empty
98  CoherentDaq16: false # remove coherent noise for every 16 online DAQ channels on the same chip
99  CoherentDaq16Groups: [] # remove coherent noise for all groups if list is empty
100  CoherentFEMB128: false # remove coherent noise for every 128 online DAQ channels on the same FEMB
101  CoherentFEMB128Groups: [] # remove coherent noise for all groups if list is empty
102  UseBasicROIForCNR: true # use simple threshold ROI finder
103  RoiStartThreshold: 6 # threshold on the leading edge
104  RoiEndThreshold: 6 # threshold on the trailing edge
105  RoiPadLow: 8 # low bin extension
106  RoiPadHigh: 20 # high bin extension
107 }
108 
109 ### Perform deconvolution with SignalShapingService.
110 tools.pddp_adcVintageDeconvoluter: {
111  tool_type: PddpVintageDeconvoluter
112  LogLevel: 1
113 }
114 
115 ### list tools
116 dataprep_tool_list: [ "digitReader",
117  "def_adcPedestalFit",
118  "adcSampleFiller",
119  "pddp_RemoveBadChannels",
120  "pddp_BaselineDetrend",
121  #"pddp_NoiseRemovalAdc",
122  "pddp_adcMultiThreshSignalFinder",
123  "pddp_adcVintageDeconvoluter" ]
124 
125 services.RawDigitPrepService.ToolNames: @local::dataprep_tool_list
126 services.AdcWireBuildingService.SaveChanPedRMS: false
127 tools.def_adcPedestalFit.FitRmsMin: 0.1
128 tools.def_adcPedestalFit.FitRmsMax: 5.0
129 tools.def_adcPedestalFit.FitOpt: 1
130 tools.def_adcPedestalFit.FitPrecision: 1.0
131 
132 #source is DAQ raw data
133 source:
134 {
135  module_type: PDDPRawInput
136  maxEvents: -1
137  fileNames: ["np02daqdata.dat"]
138  LogLevel: 1
139  OutputLabelRawDigits: "daq"
140  OutputLabelRDTime: "timingrawdecoder:daq"
141  OutputLabelRDStatus: "daq"
142  InvertBaseline: [[2, 300]]
143  SelectCRPs: []
144 }
145 
146 # Define and configure some modules to do work on each event.
147 # First modules are defined; they are scheduled later.
148 # Modules are grouped by type.
149 physics:
150 {
151  producers:
152  {
153 ### random number saver
154  rns: { module_type: RandomNumberSaver }
155 
156 ### convert raw::RawDigit to recob::wire
157  caldata: @local::producer_adcprep
158 
159 ### hit finder
160  gaushit: @local::dunefddphase_gaushitfinder
161 
162 ### reconstruction
163  pandora: @local::protodune_dp_pandora
164  pandoraTrack: @local::dune_pandoraTrackCreation
165  pandoraShower: @local::dune_pandoraShowerCreation
166 
167 ### calorimetry
168  calo: @local::pdune_dp_calodata
169  }
170 
171  #define the producer and filter modules for this path, order matters,
172  #filters reject all following items. see lines starting physics.producers below
173  reco: [ rns, caldata, gaushit, pandora, pandoraTrack, pandoraShower, calo ]
174 
175  #define the output stream, there could be more than one if using filters
176  stream1: [ out1 ]
177 
178  #trigger_paths is a keyword and contains the paths that modify the art::event,
179  #ie filters and producers
180  trigger_paths: [reco]
181 
182  #end_paths is a keyword and contains the paths that do not modify the art::Event,
183  #ie analyzers and output streams. these all run simultaneously
184  end_paths: [stream1]
185 }
186 
187 #block to define where the output goes. if you defined a filter in the physics
188 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
189 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
190 outputs:
191 {
192  out1:
193  {
194  module_type: RootOutput
195  fileName: "%ifb_reco.root"
196  dataTier: "full-reconstructed"
197  #outputCommands: [ "keep *", "drop raw::RawDigit*_*_*_*" ]
198  streamName: "cosmics"
199  compressionLevel: 1
200  }
201 }
202 
203 ################################################################################
204 ##
205 ################################################################################
206 physics.producers.caldata.DoGroups: false
207 physics.producers.caldata.OnlineChannelMapTool: ""
208 
209 
210 ################################################################################
211 # GausHit finder configuration
212 ################################################################################
213 
214 physics.producers.gaushit.LongMaxHits: [5, 5]
215 physics.producers.gaushit.LongPulseWidth: [ 20, 20 ]
216 physics.producers.gaushit.PulseHeightCuts: [4.0, 4.0]
217 physics.producers.gaushit.PulseWidthCuts: [2.0, 2.0]
218 physics.producers.gaushit.PulseRatioCuts: [0.4, 0.4]
219 
220 ################################################################################
221 ## Pandora
222 ################################################################################
223 
224 physics.producers.pandora.ConfigFile: "PandoraSettings_Master_ProtoDUNE_DP.xml"
225 physics.producers.pandora.EnableLineGaps: true
226 physics.producers.pandora.EnableMCParticles: false
227 physics.producers.pandora.EnableProduction: true
228 physics.producers.pandora.GeantModuleLabel: "largeant"
229 physics.producers.pandora.HitFinderModuleLabel: "gaushit"
230 physics.producers.pandora.PrintOverallRecoStatus: false
231 physics.producers.pandora.ShouldPerformSliceId: false
232 physics.producers.pandora.ShouldRunAllHitsCosmicReco: true
233 physics.producers.pandora.ShouldRunCosmicHitRemoval: false
234 physics.producers.pandora.ShouldRunCosmicRecoOption: false
235 physics.producers.pandora.ShouldRunNeutrinoRecoOption: false
236 physics.producers.pandora.ShouldRunSlicing: false
237 physics.producers.pandora.ShouldRunStitching: false
238 physics.producers.pandora.UseGlobalCoordinates: false
239 physics.producers.pandora.UseHitWidths: true
240 physics.producers.pandoraTrack.PFParticleLabel: "pandora"
241 physics.producers.pandoraShower.PFParticleLabel: "pandora"
242 
243 #Optical detector configuration