QuadVtx vertex reconstruction DUNE FD sim/reco meeting 2 Sep, 2019 Chris Backhouse University College London 1 / 16
Introduction ◮ Independent vertex can be useful as input to other algorithms ◮ Presenting a very simple hit-based approach ◮ Using MCC11 FD ν µ files /pnfs/dune/tape backed/dunepro/mcc11/protodune/mc/full-reconstructed/*/nu dune10kt 1x2x6*gen g4 detsim reco.root (despite misleading directory name) ◮ Input is all hitfd RecoHits in the event (these are disambiguated with a real algorithm) 2 / 16
Algorithm I ◮ Inspired by two-point Hough Transform ◮ Two points define a line, four can define the intersection of two lines 3 / 16
Algorithm I ◮ Inspired by two-point Hough Transform ◮ Two points define a line, four can define the intersection of two lines 3 / 16
Algorithm I ◮ Inspired by two-point Hough Transform ◮ Two points define a line, four can define the intersection of two lines ◮ Permutations give different valid “votes” for the vertex position 3 / 16
Algorithm I ◮ Inspired by two-point Hough Transform ◮ Two points define a line, four can define the intersection of two lines ◮ Permutations give different valid “votes” for the vertex position ◮ Combinations that cause a “track” to straddle the vertex are skipped 3 / 16
Algorithm II ◮ Computationally intractable to try all combinations of four points ◮ Restrict to random subset of 10,000,000 quadruplets ◮ Fill map in each of the three views (dropped bins < 5% of peak here) ◮ Find 3D point with highest sum when projected into the three maps 300 250 200 150 100 50 0 500 600 700 800 900 1000 1100 1200 4 / 16
Algorithm II ◮ Computationally intractable to try all combinations of four points ◮ Restrict to random subset of 10,000,000 quadruplets ◮ Fill map in each of the three views (dropped bins < 5% of peak here) ◮ Find 3D point with highest sum when projected into the three maps ◮ Zoom in to mm resolution and repeat 183 182.5 182 181.5 181 180.5 180 179.5 179 178.5 604 604.5 605 605.5 606 606.5 607 607.5 608 608.5 4 / 16
FAQs Shouldn’t you do error propagation? ◮ Could take a ∼ 5mm error on each point, compute the error on the implied vertex, and fill a gaussian into the accumulation space ◮ That’s a lot more computation time per quadruplet ◮ If the points really do jitter around I should get the same aggregate smearing over my large ensemble Shouldn’t you weight by the energy of the hits? ◮ Has a nice property that splitting a hit into two smaller hits in the same place leaves the map unchanged. Better way to treat showers? ◮ I tried this and it didn’t work so well in practice, not sure why Some quadruplet topologies are unlikely to point to a vertex ◮ I didn’t want to introduce too much model dependence ◮ Open to exploring simple cuts for this if they help 5 / 16
Examples 300 300 300 250 250 250 200 200 200 150 150 150 100 100 100 50 50 50 0 0 0 500 600 700 800 900 1000 1100 1200 500 600 700 800 900 1000 1100 100 200 300 400 500 600 700 800 900 183 183 183 182.5 182.5 182.5 182 182 182 181.5 181.5 181.5 181 181 181 180.5 180.5 180.5 180 180 180 179.5 179.5 179.5 179 179 179 178.5 178.5 178.5 604 604.5 605 605.5 606 606.5 607 607.5 608 608.5 727.5 728 728.5 729 729.5 730 730.5 731 731.5 732 253 253.5 254 254.5 255 255.5 256 256.5 257 257.5 ◮ Same event as earlier, but in all three views 6 / 16
Examples 350 350 350 300 300 300 250 250 250 200 200 200 150 150 150 200 400 600 800 1000 1200 1400 0 200 400 600 800 200 400 600 800 1000 1200 1400 378 378 378 377.5 377.5 377.5 377 377 377 376.5 376.5 376.5 376 376 376 375.5 375.5 375.5 375 375 375 374.5 374.5 374.5 374 374 374 373.5 373.5 373.5 160 160.5 161 161.5 162 162.5 163 163.5 164 164.5 − 17 − 16 − 15 − 14 − 13 276 276.5 277 277.5 278 278.5 279 279.5 280 280.5 ◮ Vertex separated from tracks is well-reconstructed 7 / 16
Examples 160 160 160 140 140 140 120 120 120 100 100 100 80 80 80 60 60 60 40 40 40 20 20 20 − 0 200 400 600 800 1000 1200 200 400 600 800 1000 1200 200 0 200 400 600 800 70 70 70 69.5 69.5 69.5 69 69 69 68.5 68.5 68.5 68 68 68 67.5 67.5 67.5 67 67 67 66.5 66.5 66.5 66 66 66 65.5 65.5 65.5 1014 1014.5 1015 1015.5 1016 1016.5 1017 1017.5 1018 1018.5 1031 1031.5 1032 1032.5 1033 1033.5 1034 1034.5 1035 1035.5 614.5 615 615.5 616 616.5 617 617.5 618 618.5 619 ◮ Longer track segments point here than to the true vertex :( 8 / 16
Examples 150 150 150 100 100 100 50 50 50 0 0 0 − 50 − 50 − 50 350 400 450 500 550 600 650 700 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 73.5 73.5 73.5 73 73 73 72.5 72.5 72.5 72 72 72 71.5 71.5 71.5 71 71 71 70.5 70.5 70.5 70 70 70 69.5 69.5 69.5 69 69 69 499 499.5 500 500.5 501 501.5 502 502.5 503 503.5 238.5 239 239.5 240 240.5 241 241.5 242 242.5 243 571.5 572 572.5 573 573.5 574 574.5 575 575.5 576 ◮ Find a secondary vertex. I now require the vertex to be in the upstream 1/4 of the event. This is the only directional bias anywhere 9 / 16
Examples 300 300 300 200 200 200 100 100 100 0 0 0 − − − 100 100 100 − 200 − 200 − 200 0 200 400 600 800 1000 1200 1400 − 200 0 200 400 600 800 1000 200 400 600 800 1000 1200 1400 226.5 226.5 226.5 226 226 226 225.5 225.5 225.5 225 225 225 224.5 224.5 224.5 224 224 224 223.5 223.5 223.5 223 223 223 222.5 222.5 222.5 222 222 222 41 41.5 42 42.5 43 43.5 44 44.5 45 45.5 − 119.5 − 119 − 118.5 − 118 − 117.5 − 117 − 116.5 − 116 − 115.5 − 115 185 185.5 186 186.5 187 187.5 188 188.5 189 189.5 ◮ More complex event – almost right 10 / 16
Examples 200 200 200 150 150 150 100 100 100 50 50 50 0 0 0 − − − 50 50 50 0 100 200 300 400 500 600 700 0 200 400 600 800 − 300 − 200 − 100 0 100 200 300 82.5 82.5 82.5 82 82 82 81.5 81.5 81.5 81 81 81 80.5 80.5 80.5 80 80 80 79.5 79.5 79.5 79 79 79 78.5 78.5 78.5 78 78 78 138 138.5 139 139.5 140 140.5 141 141.5 142 142.5 340 340.5 341 341.5 342 342.5 343 343.5 344 344.5 − 116.5 − 116 − 115.5 − 115 − 114.5 − 114 − 113.5 − 113 − 112.5 − 112 ◮ More complex event – good, avoids secondary vertex 11 / 16
Examples 300 300 300 200 200 200 100 100 100 0 0 0 − − − 100 100 100 100 200 300 400 500 600 700 200 300 400 500 600 700 − 100 0 100 200 300 400 500 600 223 223 223 222.5 222.5 222.5 222 222 222 221.5 221.5 221.5 221 221 221 220.5 220.5 220.5 220 220 220 219.5 219.5 219.5 219 219 219 218.5 218.5 218.5 302 302.5 303 303.5 304 304.5 305 305.5 306 306.5 431 431.5 432 432.5 433 433.5 434 434.5 435 435.5 58 58.5 59 59.5 60 60.5 61 61.5 62 62.5 ◮ Very busy events can also work well 12 / 16
Examples 300 300 300 200 200 200 100 100 100 0 0 0 − − − 100 100 100 − − − 200 200 200 − 300 − 300 − 300 200 400 600 800 1000 1200 1400 200 400 600 800 1000 1200 1400 0 200 400 600 800 1000 − 46 − 46 − 46 − 46.5 − 46.5 − 46.5 − − − 47 47 47 − − − 47.5 47.5 47.5 − − − 48 48 48 − − − 48.5 48.5 48.5 − − − 49 49 49 − − − 49.5 49.5 49.5 − − − 50 50 50 − 50.5 − 50.5 − 50.5 376.5 377 377.5 378 378.5 379 379.5 380 380.5 381 576 576.5 577 577.5 578 578.5 579 579.5 580 580.5 35 35.5 36 36.5 37 37.5 38 38.5 39 39.5 ◮ Very busy events can also work well 13 / 16
Examples 300 300 300 200 200 200 100 100 100 0 0 0 − − − 100 100 100 − − − 200 200 200 − − − 300 300 300 200 400 600 800 1000 1200 1400 − 200 0 200 400 600 800 1000 1200 1400 0 200 400 600 800 1000 1200 − − − 83.5 83.5 83.5 − − − 84 84 84 − − − 84.5 84.5 84.5 − − − 85 85 85 − − − 85.5 85.5 85.5 − − − 86 86 86 − − − 86.5 86.5 86.5 − 87 − 87 − 87 − 87.5 − 87.5 − 87.5 − − − 88 88 88 521.5 522 522.5 523 523.5 524 524.5 525 525.5 526 413.5 414 414.5 415 415.5 416 416.5 417 417.5 418 432.5 433 433.5 434 434.5 435 435.5 436 436.5 437 ◮ Very busy events can also work well – this one is a bit downstream 14 / 16
Performance 2000 5000 Pandora Pandora QuadVtx QuadVtx 4000 1500 Events Events 3000 1000 2000 500 1000 0 0 − − − − 4 2 0 2 4 4 2 0 2 4 y -y (cm) x -x (cm) reco true reco true 1 2000 Pandora Cumulative fraction of events QuadVtx 0.8 1500 0.6 Events 1000 0.4 Pandora 500 0.2 QuadVtx 0 0 − − 4 2 0 2 4 0 200 400 600 800 1000 z -z (cm) Distance from true vertex (cm) reco true 15 / 16
Recommend
More recommend