protoDUNE_reco.fcl
Go to the documentation of this file.
1 #include "services_dune.fcl"
2 #include "caldata_dune.fcl"
3 #include "hitfindermodules_dune.fcl"
4 #include "SpacePointSolver_dune.fcl"
5 #include "cluster_dune.fcl"
6 #include "trackfindermodules_dune.fcl"
7 #include "pandoramodules_dune.fcl"
8 #include "calorimetry_pdune.fcl"
9 #include "calibration_dune.fcl"
10 #include "featurelabelingmodules.fcl"
11 #include "particleid.fcl"
12 #include "mctrutht0matching.fcl"
13 #include "t0reco.fcl"
14 #include "opticaldetectormodules_dune.fcl"
15 #include "showerfindermodules_dune.fcl"
16 #include "emshower3d.fcl"
17 #include "ProtoDUNETriggerFilter.fcl"
18 #include "OpSlicer.fcl"
19 #include "CRT.fcl"
20 #include "T0RecoAnodePiercers.fcl"
21 #include "numberofhitsfilter.fcl"
22 #include "protodune_tools_dune.fcl"
23 
24 process_name: Reco
25 
26 services:
27 {
28  # Load the service that manages root files for histograms.
29  TFileService: { fileName: "reco_protoDUNE_hist.root" }
30  TimeTracker: @local::dune_time_tracker
31  MemoryTracker: @local::dune_memory_tracker
32  RandomNumberGenerator: {} #ART native random number generator
33  message: @local::dune_message_services_prod
34  FileCatalogMetadata: @local::art_file_catalog_mc
35  @table::protodune_reco_services
36 # ChannelStatusService: @local::pdsp_channel_status
37 }
38 
39 services.Geometry.SortingParameters.ChannelsPerOpDet: 12
40 
41 #source is now a root file
42 source:
43 {
44  module_type: RootInput
45  maxEvents: -1
46  saveMemoryObjectThreshold: 10485760
47  fileNames: ["detsim_single_protoDUNE.root"]
48 }
49 
50 # Define and configure some modules to do work on each event.
51 # First modules are defined; they are scheduled later.
52 # Modules are grouped by type.
53 physics: {
54 
55  filters: {
56  trigfilter: @local::pdsp_trigfilter_all
57  nhitsfilter: @local::standard_numberofhitsfilter
58  }
59 
60  producers: {
61  # random number saver
62  rns: { module_type: RandomNumberSaver }
63  # convert raw::RawDigit to recob::wire
64  caldata: @local::producer_adcprep
65  # actual hit finder
66  gaushit: @local::protodunespmc_gaushitfinder
67  fasthit: @local::dunefd_fasthitfinder
68  # space point solver
69  reco3d: @local::protodunespmc_spacepointsolver
70  # actual disambiguation
71  hitfd: @local::dunefd_hitfinderfd
72  hitpdune: @local::pdune_disambigfromsp
73  # 3d dbscan
74  dbcluster: @local::protodunespmc_dbcluster3d
75  # event feature labeling
76  emtrkmichelid: @local::protodune_emtrkmichelid
77  # reconstruction using disambiguated hits
78  linecluster: @local::protodunespmc_linecluster
79  calo: @local::dune35t_calomc
80  pandora: @local::protodune_pandora
81  pandoraWriter: @local::dune_pandorawriter
82  pandoraTrack: @local::dune_pandoraTrackCreation
83  pandoraShower: @local::dune_pandoraShowerCreation
84  pandoracalo: @local::pdune_sp_calomc
85  pandorapid: @local::standard_chi2pid
86  pandoracali: @local::protodunespmc_calibrationdedx
87  pandoracalipid: @local::standard_chi2pid
88  pandoracaloSCE: @local::pdune_sp_calomc
89  pandorapidSCE: @local::standard_chi2pid
90  pandoraShowercalo: @local::pdune_sp_showercalomc
91  pandoraShowercaloSCE: @local::pdune_sp_showercalomc
92  pandoracaliSCE: @local::protodunespmc_calibrationdedx
93  pandoracalipidSCE: @local::standard_chi2pid
94  pmtrack: @local::dunefd_pmalgtrackmaker
95  pmtrackcalo: @local::pdune_sp_calomc
96  pmtrackpid: @local::standard_chi2pid
97  pmtrackcali: @local::protodunespmc_calibrationdedx
98  pmtrackcalipid: @local::standard_chi2pid
99  pmtrajfit: @local::dunefd_pmalgtrajfitter
100  pmtrajfitcalo: @local::pdune_sp_calomc
101  pmtrajfitpid: @local::standard_chi2pid
102 # photon detector reconstruction
103  ophit: @local::protodune_ophit
104  opflash: @local::protodune_opflash
105  opslicer: @local::protodune_opslicer
106  crtreco: @local::TwoCRTMatching_producer
107  crttag: @local::SingleCRTMatching_producer
108 # Anode piercing tracks t0 reconstruction
109  anodepiercerst0: @local::T0RecoAnodePiercers
110 
111  ##Producers for forcing pandora to create track or shower objects
112  ##for each PFParticle
113  pandora2Track: @local::dune_pandoraTrackCreation
114  pandora2calo: @local::pdune_sp_calomc
115  pandora2caloSCE: @local::pdune_sp_calomc
116  pandora2pid: @local::standard_chi2pid
117  pandoracalipidSCE: @local::standard_chi2pid
118 
119  pandora2Shower: @local::dune_pandoraShowerCreation
120  pandora2Showercalo: @local::pdune_sp_showercalomc
121  pandora2ShowercaloSCE: @local::pdune_sp_showercalomc
122 
123  }
124 
125  #define the producer and filter modules for this path, order matters,
126  #filters reject all following items. see lines starting physics.producers below
127  reco: [ rns,
128  #optical hits and flashes
129  ophit, opflash, opslicer,
130  #TPC wire signals
131  caldata,
132  #hit reconstruction
133  gaushit, #fasthit,
134  # filter out events with too many hits for timely reconstruction
135  nhitsfilter,
136  #space point solver
137  reco3d,
138  #real disambiguation
139  hitpdune,
140  # 3d dbcluster
141  #dbcluster,
142  #cluster reco
143  #linecluster,
144  #pandora
145  pandora, pandoraWriter, pandoraTrack, pandoraShower,
146  pandoracalo, pandorapid, #pandoracali, pandoracalipid,
147  pandoracaloSCE, pandorapidSCE, #pandoracaliSCE, pandoracalipidSCE,
148  pandoraShowercalo, pandoraShowercaloSCE,
149  #feature labeling
150  emtrkmichelid,
151  #pmatrack
152  #pmtrack, pmtrackcalo, pmtrackpid, pmtrackcali, pmtrackcalipid
153  #pmtrajfit, pmtrajfitcalo, pmtrajfitpid
154  #shower reconstruction
155  #blurredcluster, emshower, emshower3d, mergeemshower3d
156  crttag,crtreco,
157  anodepiercerst0,
158 
159  pandora2Track, pandora2calo, pandora2caloSCE, pandora2pid,
160  pandora2Shower, pandora2Showercalo, pandora2ShowercaloSCE
161  ]
162 
163  #define the output stream, there could be more than one if using filters
164  stream1: [ out1 ]
165 
166  #trigger_paths is a keyword and contains the paths that modify the art::event,
167  #ie filters and producers
168  trigger_paths: [reco]
169 
170  #end_paths is a keyword and contains the paths that do not modify the art::Event,
171  #ie analyzers and output streams. these all run simultaneously
172  end_paths: [stream1]
173 }
174 
175 #block to define where the output goes. if you defined a filter in the physics
176 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
177 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
178 outputs:
179 {
180  out1:
181  {
182  module_type: RootOutput
183  fileName: "%ifb_reco.root"
184  dataTier: "full-reconstructed"
185  outputCommands: [ "keep *", "drop raw::RawDigit*_*_*_*", "drop *_reco3d_noreg_*", "drop *_reco3d_pre_*" ]
186  compressionLevel: 1
187  }
188 }
189 
190 ### Here, we overwrite ALL module labels with the ones defined above.
191 services.DetectorPropertiesService.Electronlifetime: 35000
192 
193 physics.producers.linecluster.HitFinderModuleLabel: "hitpdune"
194 
195 physics.producers.pmtrack.HitModuleLabel: "linecluster"
196 physics.producers.pmtrack.ClusterModuleLabel: "emtrkmichelid:emtrkmichel"
197 physics.producers.pmtrack.PMAlgTracking.TrackLikeThreshold: 0.63
198 physics.producers.pmtrack.PMAlgTracking.MinSeedSize2ndPass: 3
199 physics.producers.pmtrack.PMAlgTracking.Validation: "adc"
200 physics.producers.pmtrack.PMAlgTracking.AdcValidationThr: [0.8, 0.8, 1.0]
201 physics.producers.pmtrack.PMAlgTracking.RunVertexing: true
202 physics.producers.pmtrack.PMAlgTracking.FlipToBeam: true
203 physics.producers.pmtrack.PMAlgTracking.MatchT0inCPACrossing: true
204 physics.producers.pmtrack.PMAlgCosmicTagging.TagOutOfDriftTracks: true
205 physics.producers.pmtrack.PMAlgCosmicTagging.TagFullHeightTracks: true
206 physics.producers.pmtrack.PMAlgCosmicTagging.TagNonBeamT0Tracks: true
207 
208 physics.producers.pmtrajfit.HitModuleLabel: "linecluster"
209 physics.producers.pmtrajfit.PfpModuleLabel: "pandora"
210 
211 physics.producers.pmtrackcalo.TrackModuleLabel: "pmtrack"
212 physics.producers.pmtrackcalo.SpacePointModuleLabel: "pmtrack"
213 physics.producers.pmtrackcalo.T0ModuleLabel: ""
214 physics.producers.pmtrackcalo.MakeTree: false
215 physics.producers.pmtrackpid.CalorimetryModuleLabel: "pmtrackcalo"
216 physics.producers.pmtrackpid.TrackModuleLabel: "pmtrack"
217 physics.producers.pmtrackcali.CalorimetryModuleLabel: "pmtrackcalo"
218 physics.producers.pmtrackcali.TrackModuleLabel: "pmtrack"
219 physics.producers.pmtrackcalipid.CalorimetryModuleLabel: "pmtrackcali"
220 physics.producers.pmtrackcalipid.TrackModuleLabel: "pmtrack"
221 
222 physics.producers.pmtrajfitcalo.TrackModuleLabel: "pmtrajfit"
223 physics.producers.pmtrajfitcalo.SpacePointModuleLabel: "pmtrajfit"
224 physics.producers.pmtrajfitcalo.T0ModuleLabel: ""
225 physics.producers.pmtrajfitcalo.MakeTree: false
226 physics.producers.pmtrajfitpid.CalorimetryModuleLabel: "pmtrajfitcalo"
227 physics.producers.pmtrajfitpid.TrackModuleLabel: "pmtrajfit"
228 
229 physics.producers.calo.TrackModuleLabel: "costrk"
230 physics.producers.calo.SpacePointModuleLabel: "costrk"
231 #physics.producers.kalmanhit.HitModuleLabel: "hitfd"
232 #physics.producers.kalmanhit.ClusterModuleLabel: "fuzzy"
233 
234 #Pandora configurations
235 physics.producers.pandora.HitFinderModuleLabel: "hitpdune"
236 physics.producers.pandoraWriter.HitFinderModuleLabel: "hitpdune"
237 physics.producers.pandoraWriter.GeneratorModuleLabel: "generator"
238 physics.producers.pandoraTrack.PFParticleLabel: "pandora"
239 physics.producers.pandoraShower.PFParticleLabel: "pandora"
240 
241 physics.producers.pandoracalo.TrackModuleLabel: "pandoraTrack"
242 physics.producers.pandoracalo.SpacePointModuleLabel: "pandora"
243 physics.producers.pandoracalo.T0ModuleLabel: ""
244 physics.producers.pandoracalo.MakeTree: false
245 physics.producers.pandorapid.CalorimetryModuleLabel: "pandoracalo"
246 physics.producers.pandorapid.TrackModuleLabel: "pandoraTrack"
247 physics.producers.pandoracali.CalorimetryModuleLabel: "pandoracalo"
248 physics.producers.pandoracali.TrackModuleLabel: "pandoraTrack"
249 physics.producers.pandoracalipid.CalorimetryModuleLabel: "pandoracali"
250 physics.producers.pandoracalipid.TrackModuleLabel: "pandoraTrack"
251 
252 physics.producers.pandoracaloSCE.TrackModuleLabel: "pandoraTrack"
253 physics.producers.pandoracaloSCE.SpacePointModuleLabel: "pandora"
254 physics.producers.pandoracaloSCE.T0ModuleLabel: ""
255 physics.producers.pandoracaloSCE.MakeTree: false
256 physics.producers.pandoracaloSCE.CorrectSCE: true
257 physics.producers.pandorapidSCE.CalorimetryModuleLabel: "pandoracaloSCE"
258 physics.producers.pandorapidSCE.TrackModuleLabel: "pandoraTrack"
259 physics.producers.pandoracaliSCE.CalorimetryModuleLabel: "pandoracaloSCE"
260 physics.producers.pandoracaliSCE.TrackModuleLabel: "pandoraTrack"
261 physics.producers.pandoracalipidSCE.CalorimetryModuleLabel: "pandoracaliSCE"
262 physics.producers.pandoracalipidSCE.TrackModuleLabel: "pandoraTrack"
263 physics.producers.pandoracaliSCE.CorrectSCE: true
264 physics.producers.pandoraShowercaloSCE.CorrectSCE: true
265 #Optical detector configuration
266 physics.producers.ophit.InputModule: "opdigi"
267 physics.producers.opflash.InputModule: "ophit"
268 physics.producers.opslicer.OpHitModuleLabel: "ophit"
269 
270 # Use channel map service for data
271 services.PdspChannelMapService: @local::pdspchannelmap
272 
273 
274 #Forcing Pandora to create either all tracks or all showers on each PFParticle object
275 physics.producers.pandora2Track.PFParticleLabel: "pandora"
276 physics.producers.pandora2Track.UseAllParticles: true
277 ####The above line forces pandora to fit a track to all PFParticles
278 
279 physics.producers.pandora2calo.TrackModuleLabel: "pandora2Track"
280 physics.producers.pandora2calo.SpacePointModuleLabel: "pandora"
281 physics.producers.pandora2calo.T0ModuleLabel: ""
282 physics.producers.pandora2calo.MakeTree: false
283 physics.producers.pandora2calo.CorrectSCE: false
284 
285 physics.producers.pandora2caloSCE.TrackModuleLabel: "pandora2Track"
286 physics.producers.pandora2caloSCE.SpacePointModuleLabel: "pandora"
287 physics.producers.pandora2caloSCE.T0ModuleLabel: ""
288 physics.producers.pandora2caloSCE.MakeTree: false
289 physics.producers.pandora2caloSCE.CorrectSCE: true
290 
291 physics.producers.pandora2pid.CalorimetryModuleLabel: "pandora2calo"
292 physics.producers.pandora2pid.TrackModuleLabel: "pandora2Track"
293 
294 physics.producers.pandora2pid.CalorimetryModuleLabel: "pandora2caloSCE"
295 physics.producers.pandora2pid.TrackModuleLabel: "pandora2Track"
296 
297 
298 physics.producers.pandora2Shower.PFParticleLabel: "pandora"
299 physics.producers.pandora2Shower.UseAllParticles: true
300 physics.producers.pandora2Showercalo.ShowerTag: "pandora2Shower"
301 physics.producers.pandora2ShowercaloSCE.ShowerTag: "pandora2Shower"
302 physics.producers.pandora2ShowercaloSCE.CorrectSCE: true