Skip to content

Commit 8c7df63

Browse files
author
Nick Manganelli
committed
WIP GTT docs
1 parent f71ff4c commit 8c7df63

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

L1Trigger/L1TTrackMatch/Readme.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Global Track Trigger
2+
This section describes several componenets of the Global Track Trigger, the CMS subsystem downstream of Level-1 Track Finding, which performs Level-1 vertex-finding for the L1 Correlator Layer 1 (for PF Candidate / PUPPI reconstruction) and globally builds track-only objects such as Jets, HT, MET, mesons (including phi and rho), etc.
3+
4+
## Data Flow Overview
5+
6+
The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R} to $p_T$ and $tan(\lambda)$ to $\eta$. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterwards, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W\rarrow~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weight either with track $p_T$ or a Neural Net score. Downstream, multiple modules of TrackVertexAssociation (TVA) are run, taking selected tracks from one of the TS modules, the PV from VF, and they output vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and others.
7+
8+
### GTT Input Conversion
9+
FIXME
10+
LibHLS [$\eta$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionEta?ref_type=heads) and [$p_T$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionPt?ref_type=heads)
11+
12+
### Vertex Finder (VF)
13+
#### FastHisto (FH) - Baseline Algorithm
14+
FIXME
15+
LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/Vertex?ref_type=heads)
16+
#### End-to-end Neural Network (E2E) - Extended Algorithm
17+
FIXME
18+
19+
#### Status
20+
The FastHisto algorithm has bit-level agreement with the firmware using several thousand events from $t\bar{t}$ simulation (200 PileUp).
21+
22+
### Track Selection (TS)
23+
24+
In CMSSW GTT emulation the plugin is defined [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackSelectionProducer.cc) and configured with default settings [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackSelectionProducer_cfi.py). In firmware, the HLS code is concentrated in this LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/TrackSelection?ref_type=heads)
25+
26+
#### Status
27+
The TrackSelection is mostly synchronized with the Firmware at HLS level. The firmware currently runs 3 duplicates of TS for VF, JF, and MET. The emulation default is not necessarily synchronized.
28+
29+
### Track Vertex Association (TVA)
30+
FIXME
31+
LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/TrackVertexAssociation?ref_type=heads)
32+
33+
### Jet Finding (JF)
34+
FIXME
35+
36+
### HT and Missing HT (HT)
37+
FIXME
38+
39+
### MET
40+
FIXME
41+
LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/MET?ref_type=heads)
42+
43+
### Phi and Rho Meson Finding
44+
FIXME
45+
46+
### $W\rarrow 3\pi$ (W3pi)
47+
FIXME
48+
LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/WtoThreePi?ref_type=heads)
49+
50+
## Emulation Pattern (Buffer) Files
51+
52+
A git [submodule](https://gitlab.cern.ch/GTT/Data) stores fixed copies of the emulation buffer / pattern files for use in [LibHLS](https://gitlab.cern.ch/GTT/LibHLS/), using git [LFS](https://git-lfs.com/)
53+
54+
### Generating pattern files
55+
FIXME
56+
### Loading tracks and vertices from pattern files
57+
FIXME

0 commit comments

Comments
 (0)