FPGA Helix Tracking Algorithm for PANDA Yutie Liang, Martin Galuska, Thomas Geßler, Jifeng Hu, Wolfgang Kühn, Jens Sören Lange, David Münchow, Björn Spruck, Milan Wagner II. Physikalisches Institut, JUSTUS-LIEBIG-UNIVERSITÄT GIESSEN
2 Outline 1. Introduction to the PANDA Straw Tube Tracker (STT) 2. Road finding and momentum calculation 3. Performance study with C++ 4. Implementation with VHDL 5. Summary and outlook
3 Straw Tube Tracker(STT) 4636 Straw tubes planar layers axial layers(green) in beam direction 4 stereo double-layers for 3D reconstruction, with ±2.89 skew angle(blue/red) From STT : Wire position + drift time
4 Road Finding Hit Tube_ID Layer_ID Hit: Seg_ID(3 bits) + LayerID(4 bits) + Tube_ID (6 bits) + Arrival time 1: Start from inner layer 2: Attach neighbour hit to tracklet layer by layer Boundary between two segments. Number of neighbor: 2 4
x y Known : x i, y i, r i Question: To determine a circle, x 2 + y 2 + ax + by + c = 0 Method: Minimize the equation E 2 = ∑(x i 2 + y i 2 + a x i + b y i + c) 2 (1/di) 2 S x = ∑x i … S xx = ∑x i x i … S xxx = ∑x i x i x i … Calculation of circle parameters 5 1) Circle para. 2) Track quality.
To Improve the Momentum Resolution -- using a 2 nd iteration x y x c, y c, R Pt(input) 1 st iteration 2 nd iteration 0.2GeV/c : ± ± GeV/c : 0.5 ± ± GeV/c : 0.99 ± ± GeV/c : 1.85 ± ± Pt(GeV/c) 1 st iteration2 nd iteration
Multi-track 7 Performance Study -- single/multi-track x(cm) y(cm) x(cm) y(cm) Single track, 0.2GeV
8 20 MHz 2000 ns revolution time 200 ns gap T Mean between 2 events: 50 ns Drift time: ~200 ns Event Structure -- pile-up Wrong T0 Wrong drift circle bad track quality Event pile-up
Event #4 Black dashed line: track by MC truth Red line: recon. track Blue: recon. using outer layers drift circles belong to current event (Red) or other events (Green) T 0 information: current event(Red) or other events(Green) 9 Performance study -- Dpm events, time-based
15 GeV/c DPM events with 50 ns mean time Input: STT Timestamps and Straw numbers (220 ns window) Running t 0i window Color code of isochrone: Black: Isochrone too large Red: Isochrone too small Green: Isochrone Color code in upper panel: Black: Hit position in timestamp Red: t 0 from MC truth Blue: Running χ 2 of tracking 10 Hitstream and tracking Display
11
1: Number of hits in the track 2: χ 2 of the track Assign a track to the correct event 12 χ2χ2
Event #1 Black dashed line: track by MC truth Red line: recon. track Blue: recon. using outer layers drift circles belong to current event (Red) or other events (Green) T 0 information: current event(Red) or other events(Green) 13 Assign a track to the correct event
Event #2 Black dashed line: track by MC truth Red line: recon. track Blue: recon. using outer layers drift circles belong to current event (Red) or other events (Green) T 0 information: current event(Red) or other events(Green) 14 Assign a track to the correct event
Event #3 Black dashed line: track by MC truth Red line: recon. track Blue: recon. using outer layers drift circles belong to current event (Red) or other events (Green) T 0 information: current event(Red) or other events(Green) 15 Assign a track to the correct event
Event #4 Black dashed line: track by MC truth Red line: recon. track Blue: recon. using outer layers drift circles belong to current event (Red) or other events (Green) T 0 information: current event(Red) or other events(Green) Assign a track to the correct event
VHDL implementation 2D Mapping Hit ToT T0 Ring Buffer Input Interface T0 Tracking module Calc Mom Form tracklet Index 17
Hit ToT T0 T0+200 Tube_ID Layer_ID Initialization of the 2D Map 18
19 PC as data source and receiver. Ethernet. Optical link (UDP by Grzegorz Korcyl ) (not integrated yet) FPGA FIFO Tracking algorithm Ethernet via Optical Link Setup and Test FIFO
Performance at FPGA 20 2: Timing Expectation: For event with 4 tracks : 200 cc+300 cc 300 to 500 cc (clock cycle) 3 to 5 μs/event, Agrees to the test with 1M events. Only 1 st iteration is implemented in VHDL 1: Device Utilization Summary:
21 Summary and Outlook 2D map is used in road finding. Boundary between two segments. Four neighbour hits considered. Momentum and χ 2 calculated. Momentum resolution ~6%(1 st iteration) ~3% (2 nd iteration). Next to do: Study on the disentangle of pile-up event Include MVD points
22 Thank you
Performance study -- Dpm events, time-based Event #1 Black dashed line: track by MC truth Red line: recon. track Blue: recon. using outer layers drift circles belong to current event (Red) or other events (Green) T 0 information: current event(Red) or other events(Green) 24
VHDL implementation 1: Road finding: Using status machine to control the following procedures. 1)Hit sorting: fill hit into array_layer_id according to layer ID 2)Combine hits from two adjacent layers 3)Form a tracklet by attaching hit layer by layer tracklet_inner : layer 0-7 tracklet_outer: layer ) Combine tracklet_inner and tracklet_outer. For one event with 100 hits (6 tracks): 1) 100 clock cycles (cc) 2) ~ cc 3) ~200cc several us (if FPGA running at 100MHz) 26
xi yi xi_1cc xx xx_1cc xxx Sxxx += xxx_1cc a = Syy*(-Sxxx-Sxyy) - Sxy*(-Sxxy-Syyy); yy yy_1cc Syy+=yy_1cc Syy_1cc Syy*Sxxx 27 VHDL implementation 2: Momentum calculation 3: χ 2 calculation 24X24 bit not precise enough 32X32 bit
28 PC as data source and receiver. Ethernet. Optical link (UDP by Grzegorz Korcyl ) (not integrated yet) FPGA FIFO Tracking algorithm Ethernet via Optical Link Setup and test FIFO
Simulation with ISim and test at FPGA 29 Track #1 #2 #3 #4 Xr (cm): Yr (cm): R(cm): χ 2 : Timing Expectation(4 tracks per event): 200cc+300cc 300~500cc 3~5 us/event, agrees to the test with 1M events.
30
Device utilization Summary 31
2*10 7 events/second 1 event: ~3 tracks/event * ~16 hits/track * ~ 2 (overlap factor) ~100 hits/event When dividing STT into 16 layers, ~6 hits/layers. 6*6*15 = 540 combinations ~1~2 clock cycles/combination. 500~1000 clock cycles/event If FPGA running at 100MHz, (500~1000)*10ns/ 50ns 100~200 FPGA 25~50 CN
0.2GeV 0.5GeV 2GeV1GeV 33 Performance study – single track x(cm) y(cm) x(cm) y(cm) x(cm) y(cm) x(cm) y(cm)
DPM background – Event # 1
To improve the momentum resolution x y x c, y c, R 0.2GeV/c : ± ± GeV/c : 0.5 ± ± GeV/c : 0.99 ± ± GeV/c : 1.85 ± ± Pt(GeV/c)
2**(-16) =