protoDUNE_refactored_reco.fcl
Go to the documentation of this file.
1 ## same as protoDUNE_refactored_reco_stage1.fcl, no sce; no lifetime correction; no yz, x, t correction; *calinoxyzt<->*cali; *calipidnoxyzt<->*calipid
2 ## this fcl is currently kept; we use two stage recos once we have calibration done: protoDUNE_refactored_reco_stage1.fcl and protoDUNE_refactored_reco_stage2.fcl
3 
4 ##include "services_dune.fcl"
5 #include "services_refactored_pdune.fcl"
6 #include "caldata_dune.fcl"
7 #include "wirecell_dune.fcl"
8 #include "hitfindermodules_dune.fcl"
9 #include "SpacePointSolver_dune.fcl"
10 #include "cluster_dune.fcl"
11 #include "trackfindermodules_dune.fcl"
12 #include "pandoramodules_dune.fcl"
13 #include "calorimetry_pdune.fcl"
14 #include "calibration_dune.fcl"
15 #include "featurelabelingmodules.fcl"
16 #include "particleid.fcl"
17 #include "mctrutht0matching.fcl"
18 #include "t0reco.fcl"
19 #include "opticaldetectormodules_dune.fcl"
20 #include "showerfindermodules_dune.fcl"
21 #include "emshower3d.fcl"
22 #include "ProtoDUNETriggerFilter.fcl"
23 #include "OpSlicer.fcl"
24 #include "CRT.fcl"
25 #include "T0RecoAnodePiercers.fcl"
26 #include "numberofhitsfilter.fcl"
27 #include "protodune_tools_dune.fcl"
28 
29 process_name: Reco
30 
31 services:
32 {
33  # Load the service that manages root files for histograms.
34  TFileService: { fileName: "reco_protoDUNE_hist.root" }
35  TimeTracker: @local::dune_time_tracker
36  MemoryTracker: @local::dune_memory_tracker
37  RandomNumberGenerator: {} #ART native random number generator
38  message: @local::dune_message_services_prod
39  FileCatalogMetadata: @local::art_file_catalog_mc
40  @table::protodune_reco_services
41 # ChannelStatusService: @local::pdsp_channel_status
42  IFDH: {}
43 }
44 
45 services.Geometry.SortingParameters.ChannelsPerOpDet: 12
46 services.Geometry.GDML: "protodune_v7.gdml"
47 services.Geometry.ROOT: "protodune_v7.gdml"
48 
49 #BackTracker Module labels
50 services.BackTrackerService.BackTracker.G4ModuleLabel: "largeant"
51 services.BackTrackerService.BackTracker.SimChannelModuleLabel: "tpcrawdecoder:simpleSC"
52 services.DetectorPropertiesService: @local::protodunesp_detproperties
53 services.DetectorPropertiesService.GetHVDriftfromSamweb: false
54 services.DetectorPropertiesService.GetReadOutWindowSizefromSamweb: false
55 services.DetectorPropertiesService.UseRunDependentTemperature: false
56 
57 services.RawDigitPrepService.ToolNames: @local::pdsim_dataprep_tools_wirecell
58 
59 #source is now a root file
60 source:
61 {
62  module_type: RootInput
63  maxEvents: -1
64  saveMemoryObjectThreshold: 10485760
65  fileNames: ["detsim_single_protoDUNE.root"]
66 }
67 
68 # Define and configure some modules to do work on each event.
69 # First modules are defined; they are scheduled later.
70 # Modules are grouped by type.
71 physics: {
72 
73  filters: {
74  trigfilter: @local::pdsp_trigfilter_all
75  nhitsfilter: @local::standard_numberofhitsfilter
76  }
77 
78  producers: {
79  # TPC wire signals
80  caldata: @local::producer_adcprep_notool
81  # WireCell
82  wclsdatasp: @local::protodunespdata_wctsp
83  # Hit finder
84  gaushit: @local::protodunespmc_gaushitfinder
85  # space point solver
86  reco3d: @local::protodunespmc_spacepointsolver
87  # actual disambiguation
88  hitpdune: @local::pdune_disambigfromsp
89  # event feature labeling
90  emtrkmichelid: @local::protodune_emtrkmichelid
91  # reconstruction using disambiguated hits
92  pandora: @local::protodune_pandora
93  pandoraWriter: @local::dune_pandorawriter
94  pandoraTrack: @local::dune_pandoraTrackCreation
95  pandoraShower: @local::dune_pandoraShowerCreation
96  pandoracalo: @local::pdune_sp_calomcnosce
97  pandoracalonosce: @local::pdune_sp_calomcnosce
98  pandorapid: @local::standard_chi2pid
99  pandoracali: @local::protodunespmcnosce_calibrationdedx
100  pandoracalipid: @local::standard_chi2pid
101  pandoraShowercalo: @local::pdune_sp_showercalomcnosce
102  pandoraShowercalonosce: @local::pdune_sp_showercalomcnosce
103 # photon detector reconstruction
104  ophit: @local::protodune_ophit
105  opflash: @local::protodune_opflash
106  opslicer: @local::protodune_opslicer
107  crtreco: @local::TwoCRTMatching_producer
108  crttag: @local::SingleCRTMatching_producer
109 # Anode piercing tracks t0 reconstruction
110  anodepiercerst0: @local::T0RecoAnodePiercers
111 
112  ##Producers for forcing pandora to create track or shower objects
113  ##for each PFParticle
114  pandora2Track: @local::dune_pandoraTrackCreation
115  pandora2calo: @local::pdune_sp_alltrackcalomcnosce
116  pandora2calonosce: @local::pdune_sp_alltrackcalomcnosce
117  pandora2pid: @local::standard_chi2pid
118  pandora2cali: @local::protodunespmcnosce_calibrationdedx
119  pandora2calipid: @local::standard_chi2pid
120 
121  pandora2Shower: @local::dune_pandoraShowerCreation
122  pandora2Showercalo: @local::pdune_sp_allshowercalomcnosce
123  pandora2Showercalonosce: @local::pdune_sp_allshowercalomcnosce
124 
125  }
126 
127 
128  #define the producer and filter modules for this path, order matters,
129 #filters reject all following items. see lines starting physics.producers below
130 reco: [ ophit,
131  opflash,
132  opslicer,
133  caldata,
134  wclsdatasp,
135  gaushit,
136  nhitsfilter,
137  reco3d,
138  hitpdune,
139  pandora,
140  pandoraWriter,
141  pandoraTrack,
142  pandoraShower,
143  pandoracalo,
144  pandoracalonosce,
145  pandorapid,
146  pandoracali,
147  pandoracalipid,
148  pandoraShowercalo,
149  pandoraShowercalonosce,
150  emtrkmichelid,
151  crttag,
152  crtreco,
153  anodepiercerst0,
154  pandora2Track,
155  pandora2calo,
156  pandora2calonosce,
157  pandora2pid,
158  pandora2cali,
159  pandora2calipid,
160  pandora2Shower,
161  pandora2Showercalo,
162  pandora2Showercalonosce
163  ]
164 
165  #define the output stream, there could be more than one if using filters
166  stream1: [ out1 ]
167 
168  #trigger_paths is a keyword and contains the paths that modify the art::event,
169  #ie filters and producers
170  trigger_paths: [reco]
171 
172  #end_paths is a keyword and contains the paths that do not modify the art::Event,
173  #ie analyzers and output streams. these all run simultaneously
174  end_paths: [stream1]
175 }
176 
177 #block to define where the output goes. if you defined a filter in the physics
178 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
179 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
180 outputs:
181 {
182  out1:
183  {
184  module_type: RootOutput
185  fileName: "%ifb_reco.root"
186  dataTier: "full-reconstructed"
187  outputCommands: [ "keep *", "drop raw::RawDigit*_*_*_*", "drop recob::Wires_caldata_dataprep_*", "drop *_wclsdatasp_wiener_*", "drop *_reco3d_noreg_*", "drop *_reco3d_pre_*" ]
188  #outputCommands: [ "keep *", "drop *_reco3d_noreg_*", "drop *_reco3d_pre_*" ]
189  compressionLevel: 1 #zlib argument (0-9)
190  fastCloning: true
191  #basketSize: 8192 #[Byte] buffer size at 8k
192  #splitLevel: 0 #reduces number of buffers
193  #treeMaxVirtualSize: 1 #[Byte] limits number of buffers/branch to 1 (default is 10)
194  }
195 }
196 
197 physics.producers.caldata.DigitLabel: "tpcrawdecoder:daq"
198 physics.producers.caldata.WireName: "dataprep"
199 
200 physics.producers.gaushit.CalDataModuleLabel: "wclsdatasp:gauss"
201 
202 physics.producers.pandora.HitFinderModuleLabel: "hitpdune"
203 physics.producers.pandora.GeantModuleLabel: "tpcrawdecoder:simpleSC"
204 physics.producers.pandoraWriter.GeantModuleLabel: "tpcrawdecoder:simpleSC"
205 physics.producers.pandoraWriter.HitFinderModuleLabel: "hitpdune"
206 physics.producers.pandoraWriter.GeneratorModuleLabel: "generator"
207 physics.producers.pandoraTrack.PFParticleLabel: "pandora"
208 physics.producers.pandoraShower.PFParticleLabel: "pandora"
209 
210 physics.producers.pandorapid.CalorimetryModuleLabel: "pandoracalo"
211 physics.producers.pandorapid.TrackModuleLabel: "pandoraTrack"
212 
213 physics.producers.pandoracalipid.CalorimetryModuleLabel: "pandoracali"
214 physics.producers.pandoracalipid.TrackModuleLabel: "pandoraTrack"
215 
216 ##Optical detector configuration
217 physics.producers.ophit.InputModule: "opdigi"
218 physics.producers.opflash.InputModule: "ophit"
219 physics.producers.opslicer.OpHitModuleLabel: "ophit"
220 
221 # Use channel map service for data
222 services.PdspChannelMapService: @local::pdspchannelmap
223 
224 #Forcing Pandora to create either all tracks or all showers on each PFParticle object
225 physics.producers.pandora2Track.PFParticleLabel: "pandora"
226 physics.producers.pandora2Track.UseAllParticles: true
227 ####The above line forces pandora to fit a track to all PFParticles
228 
229 physics.producers.pandora2pid.CalorimetryModuleLabel: "pandora2calo"
230 physics.producers.pandora2pid.TrackModuleLabel: "pandora2Track"
231 
232 physics.producers.pandora2cali.TrackModuleLabel: "pandora2Track"
233 physics.producers.pandora2cali.CalorimetryModuleLabel: "pandora2calo"
234 
235 physics.producers.pandora2calipid.CalorimetryModuleLabel: "pandora2cali"
236 physics.producers.pandora2calipid.TrackModuleLabel: "pandora2Track"
237 
238 physics.producers.pandora2Shower.PFParticleLabel: "pandora"
239 physics.producers.pandora2Shower.UseAllParticles: true