trackfindermodules.fcl
Go to the documentation of this file.
1 #include "trackfinderalgorithms.fcl"
2 #include "clusteralgorithms.fcl"
3 #include "pmacosmictagalg.fcl"
4 #include "pmavertexalg.fcl"
5 #include "pmastitchalg.fcl"
6 
7 BEGIN_PROLOG
8 
9 # only save standard configuration, save experiment-specific configuration in experiment-specific fcl file
10 
11 standard_cctrackmaker:
12 {
13  module_type: "CCTrackMaker"
14  HitModuleLabel: "cccluster"
15  ClusterModuleLabel: "cccluster"
16  VertexModuleLabel: "cccluster"
17  MaxDAng: 0.6 # kink angle cut (radians)
18  ChainMaxdX: 1.0 # max dX for merging broken clusters
19  ChainVtxAng: 0.1 # kill 2-cluster US-DS vertices if angle diff < this cut
20  MergeChgAsym: 0.7 # charge asymmetry cut for merging clusters
21  # Order of algorithm calls (1 = vtx, 2 = pln)
22  # First find track matches using clusters associated with 3D vertices (neutrino interactions)
23  # Make tracks from the matches
24  # Next find long track matches (cosmic rays)
25  # Make tracks from the matches
26  # Last find track matches with looser cuts (garbage collection)
27  # Make tracks from the matches
28  MatchAlgs: [1, 2, 2]
29  XMatchErr: [0.2, 0.2, 2] # end X match uncertainty for alg
30  AngleMatchErr: [0.02, 0.02, 0.03] # end angle match uncertainty for alg
31  ChgAsymFactor: [1, 1, 1] # scale rms by charge asymmetry * this factor for alg
32  MatchMinLen: [2, 20, 5] # cluster match minimum length in 2/3 planes for alg
33  MakeAlgTracks: [true, true, true] # Sort track matches from alg and make tracks?
34  MakePFPs: true # make PFParticles
35  NVtxTrkHitsFit: 4 # number of hits/plane fitted to a vertex, 0 = no vertex fit
36  FiducialCut: 5 # cut (cm) for tagging cosmic rays
37  DeltaRayCut: 5 # cut (cm) for tagging delta-rays
38  HitFitErrFac: 0.1 # Factor applied to SigmaPeakTime for vertex fit
39  uBCode: true # uB code patches
40  DebugAlg: -1 # 1 = vtx, 2 = pln, 666 = MakeClusterChains
41  DebugPlane: -1 # -1 = none
42  DebugCluster: -1
43  PrintAllClusters: false # print clusters as well as cluster chains
44  errorOnFailureToPut: false
45 }
46 
47 # Does the full PMA job.
48 # Input: collection of unassociated clusters in 2D views.
49 # Output: 3D track-vertex structure.
50 # First, loops over clusters from each view in order to find/fit individual 3D tracks:
51 # - cluster pairs are processed from the largest, best matching by time, down to small
52 # clusters, new tracks are created and iteratively extended;
53 # - cluster are selected from any pair of views, and the 3rd view is used to validate
54 # the result (if available); all 3 views are used to fine-tune good track candidates;
55 # - track parts are stitched between TPCs;
56 # - vertex candidates are estimated from tracks, tracks connected in vtx are reoptimized
57 # - track-vertex structures are extended and finally PFParticle hierarchy is created,
58 # with tracks and vertices associated to PFPs.
59 standard_pmalgtrackmaker:
60 {
61  module_type: "PMAlgTrackMaker"
62  ProjectionMatchingAlg: @local::standard_projectionmatchingalg
63  PMAlgTracking: @local::standard_pmalgtracker
64  PMAlgCosmicTagging: @local::standard_pmalgtagger
65  PMAlgVertexing: @local::standard_pmavertexalg
66  PMAlgStitching: @local::standard_pmastitchalg
67  #
68  SaveOnlyBranchingVtx: false # use true to save only vertices interconnecting many tracks, otherwise
69  # vertex is added to the front of each track
70  SavePmaNodes: false # save track nodes (only for algorithm development purposes)
71  #
72  HitModuleLabel: "hits" # unclustered hits are used for tracks validation
73  WireModuleLabel: "caldata" # deconvoluted adc is also used for tracks validation
74 
75  ClusterModuleLabel: "cluster" # cluster module label, these clusters are used for track building
76  EmClusterModuleLabel: "" # EM-like clusters, will be excluded from tracking if provided
77 }
78 
79 # Trajectory fit using PMA.
80 # Input: clusters associated to PFParticles.
81 # Output: 3D trajectories associated to PFParticles.
82 # Simply use all clusters associated to each PFParticle and fit 3D trajectories (no pattern recognition at all,
83 # no corrections to input objects, etc). Resulting trajectories are associated to existing PFPs.
84 standard_pmalgtrajfitter:
85 {
86  module_type: "PMAlgTrajFitter"
87  ProjectionMatchingAlg: @local::standard_projectionmatchingalg
88  PMAlgFitting: @local::standard_pmalgfitter
89  PMAlgVertexing: @local::standard_pmavertexalg
90  #
91  SaveOnlyBranchingVtx: false # use true to save only vertices interconnecting many tracks, otherwise
92  # vertex is added to the front of each track
93  SavePmaNodes: false # save track nodes (only for algorithm development purposes)
94  #
95  HitModuleLabel: "hits" # tag of unclustered hits, which were used to produce PFPs and clusters
96  PfpModuleLabel: "pandora" # tag of the input PFParticles and associated clusters
97 }
98 
99 standard_featuretracker:
100 {
101  module_type: "FeatureTracker"
102  HitModuleLabel: "ffthit"
103  LineIntFraction: 0.90
104  LineIntThreshold: 3
105  CornerPset: @local::standard_cornerfinderalg
106  SpacepointPset: @local::microboone_spacepointalg
107 }
108 
109 standard_featuretracker.SpacepointPset.MinViews: 2
110 
111 
112 standard_seedfindermodule:
113 {
114  module_type: "SeedFinderModule"
115  InputSource: 1 # 1: use clusters
116  # 2: use hits
117  InputModuleLabel: "dbcluster"
118  SeedAlg: @local::standard_seedfinderalgorithm
119 }
120 
121 standard_beziertrackermodule:
122 {
123  module_type: "BezierTrackerModule"
124  SeedModuleLabel: "seedfinder"
125  HitModuleLabel: "ffthit"
126  ClusterModuleLabel: "dbcluster"
127  TrackMode: 3
128  MakeHitAssns: true
129  EnableCalo: false
130  BezierTrackerAlgorithm: @local::standard_beziertrackeralgorithm
131 }
132 
133 standard_trackcheater:
134 {
135  module_type: "TrackCheater"
136  CheatedClusterLabel: "cluster"
137  G4ModuleLabel: "largeant"
138 }
139 
140 standard_trackkalmancheater:
141 {
142  module_type: "TrackKalmanCheater"
143  Hist: false
144  UseClusterHits: true
145  HitModuleLabel: "ffthit"
146  ClusterModuleLabel: "dbcluster"
147  MaxTcut: 10. # Maximum delta ray energy in MeV for restricted dE/dx
148  KalmanFilterAlg: @local::standard_kalmanfilteralg
149  SpacePointAlg: @local::standard_spacepointalg
150 }
151 
152 standard_track3Dreco:
153 {
154  module_type: "Track3Dreco"
155  ClusterModuleLabel: "linemerger"
156  TMatch: 35
157  Chi2DOFmax: 10.0
158 }
159 
160 standard_cosmictracker:
161 {
162  module_type: "CosmicTracker"
163  ClusterModuleLabel: "linemerger"
164  SortDirection: "+z"
165  StitchTracks: false
166  DisCut: 20
167  AngCut: 0.1
168  TrajOnly: false
169  ClusterMatch: @local::standard_clustermatchtq
170  CTAlg: @local::standard_cosmictrackeralg
171 }
172 
173 standard_track3Dkalman:
174 {
175  module_type: "Track3DKalman"
176  SpacePtsModuleLabel: "spacepts"
177  GenieGenModuleLabel: "generator" # comment out for real data.
178  G4ModuleLabel: "largeant"
179  PosErr3: [0.02,0.02,0.02] # position resolution, cm.
180  MomErr3: [0.10,0.10,0.2] # momentum resolution, GeV/c.
181  MomStart3: [0.10,0.10,1.5] # GeV/c. Will *not* be Unit norm'd.
182  PerpLimit: 2.0
183  GenfPRINT: true
184 }
185 
186 standard_track3DkalmanSPS:
187 {
188  module_type: "Track3DKalmanSPS"
189  ClusterModuleLabel: "dbscan"
190  SpptModuleLabel: "spacepointfinder"
191  GenieGenModuleLabel: "generator" # comment out for real data.
192  G4ModuleLabel: "largeant"
193  PosErr3: [0.05,0.1,0.1] # position resolution, cm.
194  MomErr3: [0.5,0.5,1.8] # momentum resolution, GeV/c.
195  MomStart3: [0.10,0.10,1.5] # GeV/c. Will *not* be Unit norm'd.
196  PerpLimit: 50.0
197  PdgCode: -13 # mu+
198  ErrScaleSim: 0.
199  ErrScaleMeas: 500.
200  DecimateC: 1
201  MaxUpdateC: 0.1
202  DecimateU: 1 # on first pass. after that its increased.
203  DistanceU: 15.0
204  MaxUpdateU: 0.1
205  Chi2HitThresh: 1000000.0
206  SortDirection: "z"
207  SpacePointAlg: @local::standard_spacepointalg
208 }
209 
210 standard_pfpana:
211 {
212  module_type: "PFPAna"
213  HitsModuleLabel: "linecluster"
214  ClusterModuleLabel: "linecluster"
215  TrackModuleLabel: "cctrackmaker"
216  PFParticleModuleLabel: "cctrackmaker"
217  VertexModuleLabel: "cctrackmaker"
218  ElecKERange: [50, 10000] # Min, max KE (MeV) for matching Primary only
219  MuonKERange: [50, 10000] # Min, max KE (MeV) for matching
220  PionKERange: [50, 10000] # Min, max KE (MeV) for matching
221  KaonKERange: [50, 10000] # Min, max KE (MeV) for matching
222  ProtKERange: [50, 10000] # Min, max KE (MeV) for matching
223  TrackWeightOption: 1 # 0 = equal weighting, 1 = weight by kinetic energy
224  MergeDaughters: true # merge daughter MC particles with mothers (not electrons)
225  SkipCosmics: true # do not evaluate cosmic rays
226  PrintLevel: 0 # 0 = none, 1 = event summary, 2 += each MC particle, 3 += truth
227 }
228 
229 
230 standard_trackana:
231 {
232  module_type: "TrackAna"
233  TrackModuleLabel: "trackkalmanhit"
234  MCTrackModuleLabel: "mcreco"
235  SpacepointModuleLabel: "spacepointfinder"
236  StitchModuleLabel: "stitch"
237  TrkSpptAssocModuleLabel: "trackkalmanhit"
238  HitSpptAssocModuleLabel: "gaushit"
239  HitModuleLabel: "gaushit"
240  Dump: 10
241  MinMCKE: 0.02
242  MinMCLen: 10.
243  MatchColinearity: 0.98
244  MatchDisp: 2.0
245  WMatchDisp: 15.0
246  MatchLength: 0.8
247  IgnoreSign: true
248  StitchedAnalysis: false
249  MCTrackOrigin: "Any"
250  PrintLevel: 0
251 }
252 
253 
254 standard_seedana:
255 {
256  module_type: "SeedAna"
257  SeedModuleLabel: "seedfinder"
258  MCTrackModuleLabel: "mcreco"
259  Dump: 10
260  MinMCKE: 0.05
261  MinMCLen: 20.
262  MatchColinearity: 0.97
263  MatchDisp: 2.0
264  IgnoreSign: true
265 }
266 
267 standard_spacepts:
268 {
269  module_type: "SpacePts"
270  TicksOffset: 75.0
271  ClusterModuleLabel: "linemerger"
272  EndPoint2DModuleLabel: "vertex2d"
273  TMatch: 50.0
274  vertexclusterWindow: 100.
275 }
276 
277 standard_spacepointana:
278 {
279  module_type: "SpacePointAna"
280  HitModuleLabel: "ffthit"
281  UseClusterHits: true
282  ClusterModuleLabel: "dbcluster"
283  UseMC: false
284  SpacePointAlgTime: @local::standard_spacepointalg
285  SpacePointAlgSep: @local::standard_spacepointalg
286  SpacePointAlgDefault: @local::standard_spacepointalg
287 }
288 
289 standard_spacepointfinder:
290 {
291  module_type: "SpacePointFinder"
292  ClusterModuleLabel: "dbcluster"
293  MinHits: 10
294  ClusterAssns: true
295  SpacePointAlg: @local::standard_spacepointalg
296 }
297 
298 standard_spacepointcheater:
299 {
300  module_type: "SpacePointCheater"
301  ClusterModuleLabel: "dbcluster"
302  MinHits: 10
303  ClusterAssns: true
304  SpacePointAlg: @local::standard_spacepointalg
305 }
306 
307 development_beziertrackjoiner:
308 {
309  module_type: "BezierTrackJoiner"
310  TrackModuleLabel: "beziertracker"
311  JoinThreshold: 1
312  VertexAngle: 0.26
313  ExtrapDistance: 10
314 
315 }
316 
317 development_beziertrackana:
318 {
319  module_type: "BezierTrackAna"
320  BezierTrackModuleLabel: "beziertracker"
321 }
322 
323 standard_track3Dkalmanhit:
324 {
325  module_type: "Track3DKalmanHit"
326  Hist: false
327  UseClusterHits: true
328  UsePFParticleHits: false
329  UsePFParticleSeeds: false
330  HitModuleLabel: "ffthit"
331  ClusterModuleLabel: "dbcluster"
332  PFParticleModuleLabel: "pandora"
333  #MaxTcut: 10. # Maximum delta ray energy in MeV for restricted dE/dx
334  #DoDedx: false # dE/dx enable flag.
335  #SelfSeed: false # Generate seeds internally.
336  #LineSurface: false # Store hits on line surfaces.
337  #MinSeedHits: 12 # Minimum number of hits per track seed.
338  #MinSeedChopHits: 50 # Potentially chop seeds that exceed this length.
339  #MaxChopHits: 20 # Maximum number of hits to chop from each end of seed.
340  #MaxSeedChiDF: 20. # Maximum seed track chisquare/dof.
341  #MinSeedSlope: 0.0 # Minimum seed slope (dx/dz).
342  #InitialMomentum: 0.5 # Initial momentum (GeV/c).
343  #KalmanFilterAlg: @local::standard_kalmanfilteralg
344  #SeedFinderAlg: @local::standard_seedfinderalgorithm
345  Track3DKalmanHitAlg: @local::standard_track3Dkalmanhitalg
346  SpacePointAlg: @local::standard_spacepointalg
347 }
348 
349 standard_trackstitcher:
350 {
351  module_type: "TrackStitcher"
352  TrackModuleLabel: "trk3dsps"
353  SpptModuleLabel: "spacepts"
354  StitchAlg: @local::standard_trackstitcheralg
355 }
356 
357 standard_magdriftana:
358 {
359  module_type: "MagDriftAna"
360  HitsModuleLabel: "ffthit"
361  LArGeantModuleLabel: "largeant"
362 }
363 
364 standard_neutrinotrackingeff:
365 {
366  module_type: "NeutrinoTrackingEff"
367  MCTruthModuleLabel: "generator"
368  TrackModuleLabel: "pandora"
369  isNeutrinoInt: true
370  NeutrinoPDGcode: 14
371  LeptonPDGcode: 13
372  MaxNeutrinoE: 25.0
373  MaxLeptonP: 3.0
374  SaveMCTree: false
375  FidVolCutX: 10
376  FidVolCutY: 10
377  FidVolCutZ: 10
378 }
379 
380 standard_muontrackingeff:
381 {
382  module_type: "MuonTrackingEff"
383  MCTruthModuleLabel: "generator"
384  TrackModuleLabel: "pmtrack"
385  MuonPDGCode: 13
386  FidVolCutX: 0
387  FidVolCutY: 0
388  FidVolCutZ: 0
389 }
390 
391 END_PROLOG