clusterfinder_dune.fcl
Go to the documentation of this file.
1 #include "clusteralgorithms_dune35t.fcl"
2 #include "cluster3dalgorithms_dune35t.fcl"
3 #include "clustermodules.fcl"
4 #include "calorimetry_dune10kt.fcl"
5 
6 BEGIN_PROLOG
7 
8 dune35t_cluster3d:
9 {
10  module_type: "Cluster3DDUNE35t"
11  HitFinderModuleLabel: "hitrepeater"
12  EnableMonitoring: true
13  EnableProduction: false
14  DBScanAlg: @local::dune35t_cluster3ddbscanalg
15  PrincipalComponentsAlg: @local::dune35t_cluster3dprincipalcomponentsalg
16  SkeletonAlg: @local::dune35t_cluster3dskeletonalg
17  SeedFinderAlg: @local::dune35t_cluster3dhoughseedfinderalg
18  PCASeedFinderAlg: @local::dune35t_cluster3dpcaseedfinderalg
19  ParallelHitsAlg: @local::dune35t_cluster3dparallelhitsseedfinderalg
20 
21  EpsilonHoughBins: 5
22  HoughSpikeThreshold: 20
23  NumBinsPhi: 300
24  NumBinsRho: 300
25  HoughScaleFactor: 10
26 }
27 
28 dune_dbscanalg: @local::standard_dbscanalg_fast
29 dune_houghbasealg: @local::standard_houghbasealg
30 dune_endpointalg: @local::standard_endpointalg
31 
32 dune10kt_blurredcluster: @local::standard_blurredcluster
33 dune10kt_blurredcluster.BlurredClusterAlg.Detector: "dunefd"
34 dunefd_dbcluster: @local::standard_dbcluster
35 dunefd_dbcluster.DBScanAlg: @local::dunefd_dbscanalg
36 dunefd_dbclusterana: @local::standard_dbclusterana
37 dunefd_fuzzycluster: @local::standard_fuzzycluster
38 dunefd_fuzzycluster.HitsModuleLabel: "gaushit"
39 dunefd_houghlinefinder: @local::standard_houghlinefinder
40 dunefd_houghlinefinder.HoughBaseAlg: @local::dunefd_houghbasealg
41 dunefd_houghlinefinderana: @local::standard_houghlinefinderana
42 dunefd_linemerger: @local::standard_linemerger
43 dunefd_endpointmod: @local::standard_endpointmod
44 dunefd_endpointmod.EndPointAlg: @local::dunefd_endpointalg
45 dunefd_clustercheater: @local::standard_clustercheater
46 dunefd_linecluster: @local::standard_linecluster
47 dunefd_linecluster.ClusterCrawlerAlg: @local::dunefd_clustercrawleralg
48 
49 dune35t_blurredcluster: @local::standard_blurredcluster
50 dune35t_blurredcluster.BlurredClusterAlg.Detector: "dune35t"
51 dune35t_dbcluster: @local::standard_dbcluster
52 dune35t_dbcluster.DBScanAlg: @local::dune35t_dbscanalg
53 dune35t_dbclusterana: @local::standard_dbclusterana
54 dune35t_fuzzycluster: @local::standard_fuzzycluster
55 dune35t_fuzzycluster.fuzzyClusterAlg: @local::dune35t_fuzzyclusteralg
56 dune35t_fuzzycluster.HitsModuleLabel: "gaushit"
57 dune35t_houghlinefinder: @local::standard_houghlinefinder
58 dune35t_houghlinefinder.HoughBaseAlg: @local::dune35t_houghbasealg
59 dune35t_houghlinefinderana: @local::standard_houghlinefinderana
60 dune35t_linemerger: @local::standard_linemerger
61 dune35t_endpointmod: @local::standard_endpointmod
62 dune35t_endpointmod.EndPointAlg: @local::dune35t_endpointalg
63 dune35t_clustercheater: @local::standard_clustercheater
64 dune35t_linecluster: @local::standard_linecluster
65 dune35t_linecluster.ClusterCrawlerAlg: @local::dune35t_clustercrawleralg
66 
67 dune35tdata_linecluster: @local::dune35t_linecluster
68 dune35tdata_linecluster.HitFinderModuleLabel: "hit35t"
69 dune35tdata_linecluster.ClusterCrawlerAlg.NumPass: 3 # number of passes through the hit list. 0 = no cluster reco
70 dune35tdata_linecluster.ClusterCrawlerAlg.MaxHitsFit: [ 100, 8, 4] # number of hits fitted to a line
71 dune35tdata_linecluster.ClusterCrawlerAlg.MinHits: [ 50, 8, 3] # minimum size of a cluster
72 dune35tdata_linecluster.ClusterCrawlerAlg.NHitsAve: [ 20, 8, 2] # number of hits to find the average charge and width
73 dune35tdata_linecluster.ClusterCrawlerAlg.ChgCut: [ .8, .8, .8] # max fractional hit charge difference for adding hits
74 dune35tdata_linecluster.ClusterCrawlerAlg.ChiCut: [ 4, 8, 10] # stop adding hits to clusters if ChiCut is reached
75 dune35tdata_linecluster.ClusterCrawlerAlg.MaxWirSkip: [100, 100, 2] # max number of wires to skip without adding a hit
76 dune35tdata_linecluster.ClusterCrawlerAlg.MinWirAfterSkip: [2, 2, 1] # min reqd number of consecutive wires with a hit after a skip
77 dune35tdata_linecluster.ClusterCrawlerAlg.KinkChiRat: [1.2, 1.2, 0.] # Max consecutive chisq increase for the last 3 hits on the cluster
78 dune35tdata_linecluster.ClusterCrawlerAlg.KinkAngCut: [0.4, 0.4, 0.4] # kink angle cut (radians) used to follow or merge
79 dune35tdata_linecluster.ClusterCrawlerAlg.DoMerge: [false, true, true] # run cluster merging code?
80 dune35tdata_linecluster.ClusterCrawlerAlg.TimeDelta: [10., 10., 10.] # max time difference for cluster merging
81 dune35tdata_linecluster.ClusterCrawlerAlg.MergeChgCut: [0.8, 0.8, 0.8] # max charge ratio for cluster merging
82 dune35tdata_linecluster.ClusterCrawlerAlg.FindVertices: [true, true, true] # make 2D vertices after clustering?
83 dune35tdata_linecluster.ClusterCrawlerAlg.LACrawl: [true, true, true] # crawl Large Angle clusters?
84 dune35tdata_linecluster.ClusterCrawlerAlg.LAClusAngleCut: 60 # Large cluster angle cut (0 < 90 degrees). <0 to turn off
85 dune35tdata_linecluster.ClusterCrawlerAlg.LAClusMaxHitsFit: 4 # Max hits fit on Large Angle clusters
86 dune35tdata_linecluster.ClusterCrawlerAlg.MinHitFrac: 0.5 # Drop clusters having < (#hits/#wires)
87 dune35tdata_linecluster.ClusterCrawlerAlg.MinAmp: [5, 1, 5] # Min hit signal amplitude for merging per plane
88 dune35tdata_linecluster.ClusterCrawlerAlg.HitMergeChiCut: 4 # Merge cluster hit-multiplets if the separation chisq
89 dune35tdata_linecluster.ClusterCrawlerAlg.MergeAllHits: true # merge all hits before reconstructing clusters
90 dune35tdata_linecluster.ClusterCrawlerAlg.MergeOverlapAngCut: 0.1 # Set <= 0 to turn off overlapping cluster merging
91 dune35tdata_linecluster.ClusterCrawlerAlg.ChkClusterDS: true # Check reconstruction at DS end of clusters?
92 dune35tdata_linecluster.ClusterCrawlerAlg.KillGarbageClusters: 0.1 # Kill ghost clusters, etc
93 dune35tdata_linecluster.ClusterCrawlerAlg.VtxClusterSplit: true # Split clusters that cross vertices
94 dune35tdata_linecluster.ClusterCrawlerAlg.FindStarVertices: false # Find vertices with a star topology
95 dune35tdata_linecluster.ClusterCrawlerAlg.HitErrFac: 0.8 # hit time error for fitting = fHitErrFac * (hit width)
96 dune35tdata_linecluster.ClusterCrawlerAlg.HitMinAmp: 2 # ignore hits with PH < this value (seed clusters)
97 dune35tdata_linecluster.ClusterCrawlerAlg.ClProjErrFac: 3 # cluster projection error factor
98 dune35tdata_linecluster.ClusterCrawlerAlg.AllowNoHitWire: 5 # Allow skipping N wires w no hits
99 dune35tdata_linecluster.ClusterCrawlerAlg.Vertex2DCut: 20 # Max equiv dTick cut for attaching a cluster to a vtx
100 dune35tdata_linecluster.ClusterCrawlerAlg.fVertex2DWireErrCut: 3 # Max wire error on the fitted vertex position
101 dune35tdata_linecluster.ClusterCrawlerAlg.Vertex3DCut: 10 # 2D vtx -> 3D vtx matching cut (chisq)
102 dune35tdata_linecluster.ClusterCrawlerAlg.FindHammerClusters: false # look for hammer type clusters
103 dune35tdata_linecluster.ClusterCrawlerAlg.RefineVertexClusters: false
104 
105 dunefdmc_trajclusteralg: @local::standard_trajclusteralg
106 dunefdmc_trajclusteralg.CaloAlg: @local::dune10kt_calorimetryalgmc
107 dunefdmc_trajcluster: @local::standard_trajcluster
108 dunefdmc_trajcluster.TrajClusterAlg: @local::dunefdmc_trajclusteralg
109 dunefdmc_trajcluster.HitModuleLabel: "hitfd"
110 
111 protodunespmc_trajclusteralg: @local::standard_trajclusteralg
112 protodunespmc_trajclusteralg.NeutrinoMode: false
113 protodunespmc_trajclusteralg.HitErrFac: 0.5
114 protodunespmc_trajclusteralg.MaxWireSkipNoSignal: 5
115 protodunespmc_trajclusteralg.MultHitSep: 3
116 protodunespmc_trajclusteralg.AveHitRMS: [ 4.0, 4.7, 4.0 ] # RMS in ticks
117 protodunespmc_trajclusteralg.Match3DCuts: [ 0.5, 10000, 0, 2, 2.0, 2.5, 1000 ]
118 # 0 dx (cm) matching cut
119 # 1 max number of 3-plane matches for any Tj
120 # 2 Attempt 2-view match?
121 # 3 min number of TP3Ds in at least 2 planes to fit in each PFP section
122 # 4 max pull for adding/rejecting TP3Ds in sections
123 # 5 suggested max ChiDOF for a SectionFit
124 # 6 don't attempt 3D matching of shower-like Tjs if too many shower-like TPs exist in a slice
125 
126 protodunespmc_trajclusteralg.AngleRanges: [ 50, 85, 90 ]
127 protodunespmc_trajclusteralg.VertexScoreWeights: [1, 2, 10, 2]
128 # 0 = Vertex error weight (<= turn off vertex scoring)
129 # 1 = 3D match weight
130 # 2 = Charge fraction of vertex Tjs near the vertex weight
131 # 3 = Tj MCSMom, ChgRMS, Angle difference significance between Tjs weight
132 # 0 1 2 3 4 5 6 7 8 9
133 protodunespmc_trajclusteralg.Vertex2DCuts: [ 6, 8, 45, 3, 3, 50, 0.6, 10, 0.8, 0.8]
134 # 0 User definition of a short Tj => max number of Tj points
135 # 1 max separation between a vertex and the start of a trajectory for a user-defined short Tj
136 # 2 max separation for a user-defined long Tj
137 # 3 max position pull when attaching a Tj to a vertex
138 # 4 max position error for creating a Tj or attaching Tjs to an existing vertex
139 # 5 Min MCSMom of Tjs that can be used to create a vertex
140 # 6 min frac of Points/Wire between a vtx and a Tj. Ideally one if the efficiency is good
141 # 7 min Score (when scoring is enabled)
142 # 8 Min charge fraction near a merge point (not a vertex)
143 # 9 max MCSmom asymmetry for a merge
144 protodunespmc_trajclusteralg.ChargeCuts: [4, 0.15, 0.25]
145 protodunespmc_trajclusteralg.SkipAlgs: [ ]
146 protodunespmc_trajclusteralg.JTMaxHitSep: 5
147 
148 protodunespmc_trajcluster: @local::standard_trajcluster
149 protodunespmc_trajcluster.TrajClusterAlg: @local::protodunespmc_trajclusteralg
150 protodunespmc_trajcluster.HitModuleLabel: "hitpdune"
151 
152 protodunespmc_dbcluster3d: @local::standard_dbcluster3d
153 protodunespmc_dbcluster3d.DBScan3DAlg.epsilon: 10
154 protodunespmc_dbcluster3d.DBScan3DAlg.minpts: 2
155 protodunespmc_dbcluster3d.MinHitDis: 1000
156 
157 protodunespmc_linecluster: @local::standard_linecluster
158 protodunespmc_linecluster.DoRawDigitAssns: true
159 protodunespmc_linecluster.ClusterCrawlerAlg.KinkAngCut: [0.2, 0.2, 0.2] # Max kink angle
160 END_PROLOG