Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Subdirectories for GEM-CSC LUTs #33677

Merged
merged 3 commits into from May 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
56 changes: 28 additions & 28 deletions L1Trigger/CSCTriggerPrimitives/python/params/gemcscParams.py
Expand Up @@ -15,61 +15,61 @@

## convert pad number to 1/2-strip in ME1a
padToHsME1aFiles = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_hs_ME1a_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_hs_ME1a_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_hs_ME1a_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_hs_ME1a_odd.txt",
),
## convert pad number to 1/2-strip in ME1b
padToHsME1bFiles = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_hs_ME1b_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_hs_ME1b_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_hs_ME1b_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_hs_ME1b_odd.txt",
),
## convert pad number to 1/2-strip in ME21
padToHsME21Files = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_hs_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_hs_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_hs_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_hs_ME21_odd.txt",
),
## convert pad number to 1/8-strip in ME1a
padToEsME1aFiles = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_es_ME1a_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_es_ME1a_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_es_ME1a_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_es_ME1a_odd.txt",
),
## convert pad number to 1/8-strip in ME1b
padToEsME1bFiles = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_es_ME1b_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_es_ME1b_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_es_ME1b_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_es_ME1b_odd.txt",
),
## convert pad number to 1/8-strip in ME21
padToEsME21Files = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_es_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_pad_es_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_es_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_pad_es_ME21_odd.txt",
),
## convert eta partition to minimum wiregroup in ME11
rollToMinWgME11Files = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_min_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_min_wg_ME11_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_min_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_min_wg_ME11_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_min_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_min_wg_ME11_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_min_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_min_wg_ME11_odd.txt",
),
## convert eta partition to maximum wiregroup in ME11
rollToMaxWgME11Files = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_max_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_max_wg_ME11_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_max_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_max_wg_ME11_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_max_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_max_wg_ME11_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_max_wg_ME11_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_max_wg_ME11_odd.txt",
),
## convert eta partition to minimum wiregroup in ME21
rollToMinWgME21Files = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_min_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_min_wg_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_min_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_min_wg_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_min_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_min_wg_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_min_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_min_wg_ME21_odd.txt",
),
## convert eta partition to maximum wiregroup in ME21
rollToMaxWgME21Files = cms.vstring(
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_max_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l1_max_wg_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_max_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/GEMCSCLUT_roll_l2_max_wg_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_max_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l1_max_wg_ME21_odd.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_max_wg_ME21_even.txt",
"L1Trigger/CSCTriggerPrimitives/data/GEMCSC/CoordinateConversion/GEMCSCLUT_roll_l2_max_wg_ME21_odd.txt",
),
)

Expand Down
64 changes: 63 additions & 1 deletion L1Trigger/CSCTriggerPrimitives/test/README.md
Expand Up @@ -30,4 +30,66 @@ Compare configuration from DB with Python for CSC trigger primitives. Typically
runGEMCSCLUTAnalyzer
--------------------

Makes the lookup tables for the GEM-CSC integrated local trigger in simulation and firmware. Current lookup tables can be found in https://github.com/cms-data/L1Trigger-CSCTriggerPrimitives/GEMCSC
Makes the lookup tables for the GEM-CSC integrated local trigger in simulation and firmware. Current lookup tables can be found at https://github.com/cms-data/L1Trigger-CSCTriggerPrimitives/GEMCSC

CCLUTLinearFitWriter
--------------------

The macro CCLUTLinearFitWriter.cpp produces look-up tables for the Run-3 CSC trigger using the comparator code logic.

* 10 LUTs will be created for CMSSW (5 for position offset, 5 for slope). 5 LUTs will be created for the Verilog firmware. 5 additional LUTs will be created that convert the Run-3 comparator code & pattern ID to a Run-1/2 pattern ID. The LUTs used in the simulation require at least 3 layers. The macro also produces fits with at least four layers.

<PRE>
mkdir output_3layers
mkdir output_4layers
mkdir figures_3layers
mkdir figures_4layers
root -l -q -b CCLUTLinearFitWriter.cpp++(3)
root -l -q -b CCLUTLinearFitWriter.cpp++(4)
</PRE>

* Convention for 4-bit position offset word:

| Value | Half-Strip Offset | Delta Half-Strip | Quarter-Strip Bit | Eighth-Strip Bit |
|-------|--------------------|-------------------|--------------------|------------------|
| 0 | -7/4 | -2 | 0 | 1 |
| 1 | -3/2 | -2 | 1 | 0 |
| 2 | -5/4 | -2 | 1 | 1 |
| 3 | -1 | -1 | 0 | 0 |
| 4 | -3/4 | -1 | 0 | 1 |
| 5 | -1/2 | -1 | 1 | 0 |
| 6 | -1/4 | -1 | 1 | 1 |
| 7 | 0 | 0 | 0 | 0 |
| 8 | 1/4 | 0 | 0 | 1 |
| 9 | 1/2 | 0 | 1 | 0 |
| 10 | 3/4 | 0 | 1 | 1 |
| 11 | 1 | 1 | 0 | 0 |
| 12 | 5/4 | 1 | 0 | 1 |
| 13 | 3/2 | 1 | 1 | 0 |
| 14 | 7/4 | 1 | 1 | 1 |
| 15 | 2 | 2 | 0 | 0 |

* Convention for 4-bit slope:

Slope is in units [half-strip offset/layer]. The sign of the bending is interpreted as in Run-1 and Run-2.

| Value | Slope |
|-------|-------|
| 0 | 1/8 |
| 1 | 2/8 |
| 2 | 3/8 |
| 3 | 4/8 |
| 4 | 5/8 |
| 5 | 6/8 |
| 6 | 7/8 |
| 7 | 1 |
| 8 | 9/8 |
| 9 | 10/8 |
| 10 | 11/8 |
| 11 | 12/8 |
| 12 | 13/8 |
| 13 | 14/8 |
| 14 | 2 |
| 15 | 20/8 |

The LUTs can be found at https://github.com/cms-data/L1Trigger-CSCTriggerPrimitives/CCLUT
38 changes: 0 additions & 38 deletions L1Trigger/CSCTriggerPrimitives/test/macros/README.md

This file was deleted.