1 #include "services_dune.fcl"
2 #include "caldata_dune.fcl"
3 #include "hitfindermodules_dune.fcl"
4 #include "cluster_dune.fcl"
5 #include "trackfindermodules_dune.fcl"
6 #include "pandoramodules_dune.fcl"
7 #include "calorimetry_dune10kt.fcl"
8 #include "mctrutht0matching.fcl"
10 #include "particleid.fcl"
11 #include "showerfindermodules_dune.fcl"
13 #include "tools_dune.fcl"
19 # Load the service that manages root files for histograms.
20 TFileService: { fileName: "hist.root" }
23 RandomNumberGenerator: {} #ART native random number generator
24 message: @local::dune_message_services_prod_debug
25 FileCatalogMetadata: @local::art_file_catalog_mc
26 @table::dunefddphase_reco_services_legacy
29 services.Geometry: @local::protodunedphase_geo
30 services.DetectorPropertiesService: @local::protodunedphase_detproperties
31 services.DetectorPropertiesService.Electronlifetime: 1000.0e3 #in us
33 services.RawDigitPrepService.DoDeconvolution: false
35 # services.message.destinations.LogStandardOut.threshold: "INFO"
37 #source is now a root file
40 module_type: RootInput
42 fileNames: ["detsim.root"]
45 # Define and configure some modules to do work on each event.
46 # First modules are defined; they are scheduled later.
47 # Modules are grouped by type.
53 rns: { module_type: RandomNumberSaver }
54 # convert raw::RawDigit to recob::wire
55 caldata: @local::producer_adcprep
56 # actual hit finder and recconstruction
57 dprawhit: @local::dunefddphase_dprawhitfinder
58 fasthit: @local::dunefd_fasthitfinder
59 trajcluster: @local::dunefdmc_trajcluster
60 calo: @local::dune10kt_calomc
61 pandora: @local::dunefd_pandora
62 pmtrack: @local::dunefd_pmalgtrackmaker
63 pmtrajfit: @local::dunefd_pmalgtrajfitter
64 pmtrackcalo: @local::dune10kt_calomc
65 pmtrackpid: @local::standard_chi2pid
66 blurredcluster: @local::dune10kt_blurredcluster
67 emshower: @local::dune10kt_emshower
70 #define the producer and filter modules for this path, order matters,
71 #filters reject all following items. see lines starting physics.producers below
72 reco: [ rns, caldata, fasthit, dprawhit, trajcluster, pmtrack, pmtrackcalo, pmtrackpid, blurredcluster, emshower ]
82 #define the output stream, there could be more than one if using filters
85 #trigger_paths is a keyword and contains the paths that modify the art::event,
86 #ie filters and producers
89 #end_paths is a keyword and contains the paths that do not modify the art::Event,
90 #ie analyzers and output streams. these all run simultaneously
94 #block to define where the output goes. if you defined a filter in the physics
95 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
96 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
101 module_type: RootOutput
102 fileName: "%ifb_reco.root"
103 dataTier: "full-reconstructed"
107 ### Here, we overwrite ALL module labels with the ones defined above.
109 physics.producers.caldata.DoGroups: false
111 ### Hit finding parameters ###
112 services.AdcRoiBuildingService.NSigmaStart: 1.25 # only pulses with ADC >= NSigmaStart*8 are considered for hit finding. Should correspond to MinSig.
113 services.AdcRoiBuildingService.NSigmaEnd: 1.25 # only pulses with ADC >= NSigmaStart*8 are considered for hit finding. Should correspond to MinSig.
115 physics.producers.dprawhit.MinSig: 10 # threshold for raw hit fitting algorithm in ADC. No peak with lower amplitude is fitted.
116 physics.producers.dprawhit.TicksToStopPeakFinder: 4 # when walking along waveform to find start and end points of a peak, stop when current tick is followed by minimum "TicksToStopPeakFinder" ticks
117 # with equal or higher ADC counts (stop anyway if ADC count of a tick is <= 0)
118 physics.producers.dprawhit.MinWidth: 10 # threshold for single pulses in ticks (= 400 ns), reduces noise hits
119 physics.producers.dprawhit.MinADCSumOverWidth: 4.8 # threshold for ADC sum over width (ADC per ticks). Peaks with smaller values are neither fitted nor stored.
120 physics.producers.dprawhit.MaxMultiHit: 6
121 physics.producers.dprawhit.TryNplus1Fits: true # true: will try to re-fit poorly modeled hits (chi2PerNDF>Chi2NDFRetry) with n+1 exponentials
122 # false will NOT try to re-fit poorly modled hits
123 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)
124 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)
125 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.)
126 physics.producers.dprawhit.GroupMaxDistance: 5 # max distance between two peaks for grouping. grouped hits are fitted together.
127 physics.producers.dprawhit.DoMergePeaks: true # true: peak merging (merge two peaks into one) before fitting enabled
128 physics.producers.dprawhit.MergeADCSumThreshold: 0.2 # merge two peaks only if (ADC sum of the smaller peak) < MergeADCSumThreshold*(ADC sum of the bigger peak)
129 physics.producers.dprawhit.MergeMaxADCThreshold: 0.2 # merge two peaks only if (height of the smaller peak) < MergeADCSumThreshold*(height sum of the bigger peak)
134 physics.producers.trajcluster.TrajClusterAlg.HitFinderModuleLabel: "dprawhit"
135 physics.producers.trajcluster.TrajClusterAlg.HitErrFac: 0.2
136 physics.producers.trajcluster.TrajClusterAlg.MakeNewHits: false
138 physics.producers.pmtrackcalo.TrackModuleLabel: "pmtrack"
139 physics.producers.pmtrackcalo.SpacePointModuleLabel: "pmtrack"
140 physics.producers.pmtrackcalo.T0ModuleLabel: ""
141 physics.producers.pmtrackcalo.CaloAlg.CalAreaConstants: [ 4.966e-2, 4.966e-2 ]
142 physics.producers.pmtrackpid.CalorimetryModuleLabel: "pmtrackcalo"
143 physics.producers.pmtrackpid.TrackModuleLabel: "pmtrack"
145 physics.producers.pmtrack.HitModuleLabel: "trajcluster"
146 physics.producers.pmtrack.ClusterModuleLabel: "trajcluster"
148 physics.producers.pmtrajfit.HitModuleLabel: "trajcluster"
149 physics.producers.pmtrajfit.PfpModuleLabel: "pandora"
151 physics.producers.blurredcluster.HitsModuleLabel: "trajcluster"
152 physics.producers.blurredcluster.TrackModuleLabel: "pmtrack"
153 physics.producers.blurredcluster.CreateDebugPDF: false
154 physics.producers.blurredcluster.MergeClusters: false
155 physics.producers.blurredcluster.GlobalTPCRecon: true
156 physics.producers.blurredcluster.ShowerReconOnly: false
157 physics.producers.blurredcluster.VertexModuleLabel: "trajcluster"
159 physics.producers.emshower.ClusterModuleLabel: "blurredcluster"
160 physics.producers.emshower.HitsModuleLabel: "trajcluster"
161 physics.producers.emshower.TrackModuleLabel: "pmtrack"
164 #Pandora configurations
166 #Optical detector configuration