pddp_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 
15 #include "tools_dune.fcl"
16 
17 process_name: Reco
18 
19 services:
20 {
21  # Load the service that manages root files for histograms.
22  TFileService: { fileName: "hist.root" }
23  TimeTracker: {}
24  MemoryTracker: {}
25  RandomNumberGenerator: {} #ART native random number generator
26  message: @local::dune_message_services_prod_debug
27  FileCatalogMetadata: @local::pddp_art_file_catalog
28  @table::protodunedphase_reco_services_legacy
29 }
30 
31 #services.FileCatalogMetadata.applicationVersion: "v08_32_01"
32 
33 services.Geometry: @local::protodunedphase_geo
34 services.DetectorPropertiesService: @local::protodunedphase_detproperties
35 services.RawDigitPrepService: @local::adcprep_with_tools_data
36 services.ChannelStatusService: @local::pddp_channel_status_lemblind
37 services.DetectorPropertiesService.Efield: [0.166, 4.0, 0.0]
38 
39 ### to add to common
40 tools.pddp_adcMultiThreshSignalFinder: {
41  tool_type: AdcMultiThreshSignalFinder
42  LogLevel: 1
43  UseStandardDeviation: true
44  Threshold1: 2
45  SamplesAboveThreshold1: 10
46  Threshold2: 2
47  SamplesAboveThreshold2: 10
48  ThresholdMax: 3
49  ThresholdMin: 0
50  BinsBefore: 10
51  BinsAfter: 50
52 }
53 
54 tools.pddp_RemoveBadChannels: {
55  tool_type: RemoveBadChannels
56  LogLevel: 1
57  RemoveBadChs: true
58  RemoveNoisyChs: false
59 }
60 
61 
62 dataprep_tool_list: [ "digitReader",
63  "def_adcPedestalFit",
64  "adcSampleFiller",
65  "pddp_RemoveBadChannels",
66  "pddp_adcMultiThreshSignalFinder" ]
67 services.RawDigitPrepService.ToolNames: @local::dataprep_tool_list
68 services.AdcWireBuildingService.SaveChanPedRMS: false
69 tools.def_adcPedestalFit.FitRmsMin: 0.1
70 tools.def_adcPedestalFit.FitRmsMax: 5.0
71 tools.def_adcPedestalFit.FitOpt: 1
72 tools.def_adcPedestalFit.FitPrecision: 1.0
73 
74 #source is now a root file
75 source:
76 {
77  module_type: RootInput
78  maxEvents: -1
79  fileNames: ["detsim.root"]
80 }
81 
82 # Define and configure some modules to do work on each event.
83 # First modules are defined; they are scheduled later.
84 # Modules are grouped by type.
85 physics:
86 {
87  producers:
88  {
89 ### random number saver
90  rns: { module_type: RandomNumberSaver }
91 
92 ### convert raw::RawDigit to recob::wire
93  caldata: @local::producer_adcprep
94 
95 ### hit finder
96  dprawhit: @local::dunefddphase_dprawhitfinder
97  gaushit: @local::dunefddphase_gaushitfinder
98 
99 ### reconstruction
100  pandora: @local::protodune_dp_pandora
101  pandoraTrack: @local::dune_pandoraTrackCreation
102  pandoraShower: @local::dune_pandoraShowerCreation
103 
104  trajcluster: @local::dunefdmc_trajcluster
105 
106 ## calo: @local::dune10kt_calomc
107 ## linecluster: @local::dunefd_linecluster
108 ## pmtrack: @local::dunefd_pmalgtrackmaker
109 ## pmtrajfit: @local::dunefd_pmalgtrajfitter
110 ## pmtrackcalo: @local::dune10kt_calomc
111 ## pmtrackpid: @local::standard_chi2pid
112  }
113 
114  #define the producer and filter modules for this path, order matters,
115  #filters reject all following items. see lines starting physics.producers below
116  reco: [ rns, caldata, gaushit, pandora, pandoraTrack, pandoraShower ]
117 
118 
119 
120 
121  analyzers:
122  {
123  }
124 
125  analyzeIt: [ ]
126 
127  #define the output stream, there could be more than one if using filters
128  stream1: [ out1 ]
129 
130  #trigger_paths is a keyword and contains the paths that modify the art::event,
131  #ie filters and producers
132  trigger_paths: [reco]
133 
134  #end_paths is a keyword and contains the paths that do not modify the art::Event,
135  #ie analyzers and output streams. these all run simultaneously
136  end_paths: [stream1]
137 }
138 
139 #block to define where the output goes. if you defined a filter in the physics
140 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
141 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
142 outputs:
143 {
144  out1:
145  {
146  module_type: RootOutput
147  fileName: "%ifb_reco.root"
148  dataTier: "hit-reconstructed"
149  streamName: "cosmics"
150  compressionLevel: 1
151  }
152 }
153 ################################################################################
154 ## Noise
155 ################################################################################
156 
157 services.RawDigitPrepService.DoNoiseRemoval: false
158 services.RawDigitPrepService.DoDeconvolution: true
159 services.RawDigitPrepService.DoEarlySignalFinding: false
160 services.RawDigitPrepService.DoMitigation: false
161 services.RawDigitPrepService.SkipBad: false
162 services.RawDigitPrepService.SkipNoisy: false
163 services.RawDigitPrepService.DoROI: true
164 
165 physics.producers.caldata.DoGroups: false
166 physics.producers.caldata.OnlineChannelMapTool: ""
167 
168 
169 ################################################################################
170 # GausHit finder configuration
171 ################################################################################
172 
173 physics.producers.gaushit.AreaNorm: 35.64 # in units (ADC x us) / fC
174 physics.producers.gaushit.ADCpermV: 1.0 # ADC conversion factor (not used at the moment)
175 physics.producers.gaushit.AmpENC: 1000.0 # noise in electrons from TDR
176 physics.producers.gaushit.DeconNorm: 70
177 physics.producers.gaushit.ShapeFunc: "[0]/([0]-[1]) * ( exp(-(x)/[0]) - exp(-(x)/[1]) )"
178 physics.producers.gaushit.ShapeFuncParams: [1.0, 4.5]
179 physics.producers.gaushit.RespSamplingPeriod: 400. # in nano second
180 physics.producers.gaushit.AddFieldFunction: false
181 physics.producers.gaushit.ColFieldFunction: "x*[0]"
182 physics.producers.gaushit.ColFieldFunctionParams: [1.0]
183 physics.producers.gaushit.ColFieldRespAmp: 1.0
184 physics.producers.gaushit.ColFilter: "(x>0.0)*gaus"
185 physics.producers.gaushit.ColFilterParams: [ 1.0, 0.0, 0.13 ]
186 #physics.producers.gaushit.FieldFunctionParameters: [1.0, 1.0, 1.0, 1.0] #0 step width #1 step height #2 slow/fast (could be taken from E field) #Tau (could be taken from field and temperature). 0 and Tau in us
187 
188 ################################################################################
189 ## DPRawHit
190 ################################################################################
191 
192 physics.producers.dprawhit.MinSig: 2 # threshold for raw hit fitting algorithm in ADC. No peak with lower amplitude is fitted.
193 physics.producers.dprawhit.TicksToStopPeakFinder: 50 # when walking along waveform to find start and end points of a peak, stop when current tick is followed by minimum "TicksToStopPeakFinder" ticks
194  # with equal or higher ADC counts (stop anyway if ADC count of a tick is <= 0)
195 physics.producers.dprawhit.MinWidth: 5 # threshold for single pulses in ticks (= 400 ns), reduces noise hits
196 physics.producers.dprawhit.MinADCSumOverWidth: 2.0 # threshold for ADC sum over width (ADC per ticks). Peaks with smaller values are neither fitted nor stored.
197 physics.producers.dprawhit.MaxMultiHit: 3
198 physics.producers.dprawhit.TryNplus1Fits: true # true: will try to re-fit poorly modeled hits (chi2PerNDF>Chi2NDFRetry) with n+1 exponentials
199  # false will NOT try to re-fit poorly modled hits
200 physics.producers.dprawhit.Chi2NDFRetry: 25 # fits with chi2/ndf above this value will be refitted with an additional peak (if TryNplus1Fits is set to true)
201 physics.producers.dprawhit.MinTau: 0.01 # mainimum value of the rising and falling time constants of the fit, in ticks. Sets a minimum width for the fit (~ width the elec.shaping function)
202 physics.producers.dprawhit.MaxTau: 5 # maximum value of the rising and falling time constants of the fit, in ticks. Limits the max. width of the fit (depends on drift distance etc.)
203 physics.producers.dprawhit.GroupMaxDistance: 5 # max distance between two peaks for grouping. grouped hits are fitted together.
204 physics.producers.dprawhit.DoMergePeaks: true # true: peak merging (merge two peaks into one) before fitting enabled
205 physics.producers.dprawhit.MergeADCSumThreshold: 0.2 # merge two peaks only if (ADC sum of the smaller peak) < MergeADCSumThreshold*(ADC sum of the bigger peak)
206 physics.producers.dprawhit.MergeMaxADCThreshold: 0.2 # merge two peaks only if (height of the smaller peak) < MergeADCSumThreshold*(height sum of the bigger peak)
207 
208 
209 ################################################################################
210 ## TrajCluster
211 ################################################################################
212 
213 physics.producers.trajcluster.HitModuleLabel: "dprawhit"
214 #physics.producers.trajcluster.TrajClusterAlg.HitErrFac: 0.2
215 #physics.producers.trajcluster.TrajClusterAlg.MakeNewHits: false
216 
217 #physics.producers.pmtrack.HitModuleLabel: "trajcluster"
218 #physics.producers.pmtrack.ClusterModuleLabel: "trajcluster"
219 
220 #physics.producers.pmtrajfit.HitModuleLabel: "trajcluster"
221 #physics.producers.pmtrajfit.PfpModuleLabel: "trajcluster"
222 
223 ################################################################################
224 ## Pandora
225 ################################################################################
226 
227 physics.producers.pandora.ConfigFile: "PandoraSettings_Master_ProtoDUNE_DP.xml"
228 physics.producers.pandora.EnableLineGaps: true
229 physics.producers.pandora.EnableMCParticles: false
230 physics.producers.pandora.EnableProduction: true
231 physics.producers.pandora.GeantModuleLabel: "largeant"
232 physics.producers.pandora.HitFinderModuleLabel: "gaushit"
233 physics.producers.pandora.PrintOverallRecoStatus: false
234 physics.producers.pandora.ShouldPerformSliceId: false
235 physics.producers.pandora.ShouldRunAllHitsCosmicReco: true
236 physics.producers.pandora.ShouldRunCosmicHitRemoval: false
237 physics.producers.pandora.ShouldRunCosmicRecoOption: false
238 physics.producers.pandora.ShouldRunNeutrinoRecoOption: false
239 physics.producers.pandora.ShouldRunSlicing: false
240 physics.producers.pandora.ShouldRunStitching: false
241 physics.producers.pandora.UseGlobalCoordinates: false
242 physics.producers.pandora.UseHitWidths: true
243 physics.producers.pandoraTrack.PFParticleLabel: "pandora"
244 physics.producers.pandoraShower.PFParticleLabel: "pandora"
245 
246 #Optical detector configuration