rawhitfinding_reco_protodunedp.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 "cluster_dune.fcl"
5 #include "trackfindermodules_dune.fcl"
6 #include "pandoramodules_dune.fcl"
7 #include "calorimetry_dune10kt.fcl"
8 #include "mctrutht0matching.fcl"
9 #include "t0reco.fcl"
10 #include "particleid.fcl"
11 #include "showerfindermodules_dune.fcl"
12 
13 #include "tools_dune.fcl"
14 
15 process_name: Reco
16 
17 services:
18 {
19  # Load the service that manages root files for histograms.
20  TFileService: { fileName: "hist.root" }
21  TimeTracker: {}
22  MemoryTracker: {}
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
27 }
28 
29 services.Geometry: @local::protodunedphase_geo
30 services.DetectorPropertiesService: @local::protodunedphase_detproperties
31 services.DetectorPropertiesService.Electronlifetime: 1000.0e3 #in us
32 
33 services.RawDigitPrepService.DoDeconvolution: false
34 
35 # services.message.destinations.LogStandardOut.threshold: "INFO"
36 
37 #source is now a root file
38 source:
39 {
40  module_type: RootInput
41  maxEvents: -1
42  fileNames: ["detsim.root"]
43 }
44 
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.
48 physics:
49 {
50  producers:
51  {
52 # random number saver
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
68  }
69 
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 ]
73 
74 
75 
76  analyzers:
77  {
78  }
79 
80  analyzeIt: [ ]
81 
82  #define the output stream, there could be more than one if using filters
83  stream1: [ out1 ]
84 
85  #trigger_paths is a keyword and contains the paths that modify the art::event,
86  #ie filters and producers
87  trigger_paths: [reco]
88 
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
91  end_paths: [stream1]
92 }
93 
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)
97 outputs:
98 {
99  out1:
100  {
101  module_type: RootOutput
102  fileName: "%ifb_reco.root"
103  dataTier: "full-reconstructed"
104  compressionLevel: 1
105  }
106 }
107 ### Here, we overwrite ALL module labels with the ones defined above.
108 
109 physics.producers.caldata.DoGroups: false
110 
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.
114 
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)
130 
131 
132 #PMAlg configuration
133 
134 physics.producers.trajcluster.TrajClusterAlg.HitFinderModuleLabel: "dprawhit"
135 physics.producers.trajcluster.TrajClusterAlg.HitErrFac: 0.2
136 physics.producers.trajcluster.TrajClusterAlg.MakeNewHits: false
137 
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"
144 
145 physics.producers.pmtrack.HitModuleLabel: "trajcluster"
146 physics.producers.pmtrack.ClusterModuleLabel: "trajcluster"
147 
148 physics.producers.pmtrajfit.HitModuleLabel: "trajcluster"
149 physics.producers.pmtrajfit.PfpModuleLabel: "pandora"
150 
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"
158 
159 physics.producers.emshower.ClusterModuleLabel: "blurredcluster"
160 physics.producers.emshower.HitsModuleLabel: "trajcluster"
161 physics.producers.emshower.TrackModuleLabel: "pmtrack"
162 
163 
164 #Pandora configurations
165 
166 #Optical detector configuration
167