The L1 Calorimteter (DIRAC)  trigger simulation












you can start looking at the following notes to get familiar with DIRAC:
CDF/DOC/TRIGGER/CDFR/4231 - Anatomy of DIRAC
CDF/DOC/TRIGGER/CDFR/4225 - Dirac final specification
They describe the way L1 forms electron triggers.
 
 

There are 96 DIRAC boards, each of them corresponding to one phi value and 6 eta values ( eta and phi of the Trigger Towers):
 
 

This is a cartoon of the DIRAC trigger map ( c goes from 0 to 5)

phi= 3 +4*c |              12    |                13   |                   14  |                       15    |
--------------------------------------------------------
phi= 2 +4*c |              8      |               9      |                   10  |                      11     |
--------------------------------------------------------
phi= 1 +4*c |              4      |               5      |                    6   |                    7         |
--------------------------------------------------------
phi= 0 +4*c | East plug  0  |East Cent 1     |West Cen 2     |W plug  3               |
--------------------------------------------------------
eta =                   23.....18   |       17...12      |       11...6         |          5.....0
 
 

In the TC1D bank ( produced by the simulation or real bank) there are 12 blocks corresponding each to 2 phi wedges: each half block contains 4 subblocks ( corresponding to the phi index ) of 3 words for each wedge.
( see cartoon above that would represent 2 blocks)
 

The three words contain the DIRAC trigger summary for the 6 channels corresponding to eta:

                 bits(31:24)    bits(23:16)  bits(15:8)        bits(7:0)
word 1          ch1 TOT    ch1 EM     ch0 TOT         ch0 EM
word 2          ch3 TOT    ch3 EM     ch2 TOT         ch2 EM
word 3          ch5 TOT    ch5 EM     ch4 TOT         ch4 EM
 
 

each channel is a tower and the word tells  you which of the possible 8 EM trigger and 8 TOT triggers the tower passed.
An EM trigger is a photon or and electron,  a TOT trigger is a jet or a tau ( below Dirac_EM_trigger, Dirac_Jet_trigger)

For each trigger table  Memory patterns  ( or lookup tables)  are generated with all the final decisions  words corresponding to all the possible tower configurations in energy, tracking and had/Em ratio.
A tower configuration information  is contained in a 15 bits word, where bits 0-7 give the energy ( Transverse EM for EM triggers, transverse EM + had for TOT triggers), bits 8-11 give the tracking information( if a track is associated to the tower) and bits 12-14 the had/Em info .  The maximum value of this word is 0x7fff, or 32767.
So the  15 bits words represent the offset needed to apply to a predefined pointer in the decision words list in order to find the decision word for that particualr tower configuration.

When running TRGSim++  all the possible decision words are written in the 2 files of type:
ttcentral.ascii
ttplug.ascii
which are lists of  32767  decision words corresponding to all the possible tower configurations.
 

The mapping information for the tracking triggers are loaded in the files:
trcentral.ascii
trplug.ascii
which are lists of (6 towers x 256 x 4 bits) words
 
 
 

Given a trigger table TRGSim++ emulates all these steps:
1) memory pattern are generated given the TriggerTable parameters:
CalTrigger/src/CalTriggerPatterns.cc and
CalTrigger/src/CalTriggerPatterns2.cc
2) the dirac trigger words are simulated in :
CalTrigger/src/CalTriggerData.cc method dirac_sim
3)and written out to TC1D : CalTrigger/src/CalTriggerEvent.cc
 
 
 

----

Some words on option and TriggerDB

An option of ELECTRON corresponds to some
specific_option ( one of the 8 possible EM trigger): the parameter
DIRAC_MEMORY_BIT_NO in the Trigger Table should give you the index for the
bit to look at in the ch* EM part of the DIRAC decision word.
There are 4 Dirac options:
ELECTRON
JET
TAU
PHOTON

The following  is an example of db query for OPTION_NAME = JET:

dbquery " select DISTINCT SPECIFIC_OPTION_NAME from DOWNLOADS where
PHYSICS_TABLE_NAME = 'PHYSICS_1_01' and PHYSICS_TABLE_TAG = '1' and
OPTION_NAME = 'JET'"

L1_JET10
L1_JET5
L1_TWO_CJET8

as you can see there are 3 corresponding specific option names . Each of them is associated a value of DIRAC_MEMORY_BIT_NO, one of the possible 8 bits for EM or TOT triggers.

dbquery " select CUT_OR_PARAMETER_NAME from DOWNLOADS where
PHYSICS_TABLE_NAME = 'PHYSICS_1_01' and PHYSICS_TABLE_TAG = '1' and
OPTION_NAME = 'JET' and SPECIFIC_OPTION_NAME='L1_JET10'"
DIRAC_CRATESUM_BIT_CONTENT
DIRAC_CRATESUM_BIT_NO
DIRAC_CRATESUM_WIRE_NO
DIRAC_MEMORY_BIT_NO <<<<<=======================
ET_CENTRAL
ET_PLUG
FRED_INPUT_BIT
NUMBER
PREFRED_INPUT_BIT
PREFRED_OUTPUT_BIT
DIRAC_CRATESUM_BIT_CONTENT
DIRAC_CRATESUM_BIT_NO
DIRAC_CRATESUM_WIRE_NO
DIRAC_MEMORY_BIT_NO <<<<<=============================
ET_CENTRAL
ET_PLUG
FRED_INPUT_BIT
NUMBER
PREFRED_INPUT_BIT
PREFRED_OUTPUT_BIT
DIRAC_CRATESUM_BIT_CONTENT
DIRAC_CRATESUM_BIT_NO
DIRAC_CRATESUM_WIRE_NO
DIRAC_MEMORY_BIT_NO <<<<<===================================
ET_CENTRAL
ET_PLUG
FRED_INPUT_BIT
NUMBER
PREFRED_INPUT_BIT
PREFRED_OUTPUT_BIT
 
 

===========================================================================
Here it's the list of EM and JET Trigger for physics_table_name = PHYSICS_1_01-v10:
===========================================================================
 
 

CENTRAL

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_CEM8_PT8
 EM_Thresh = 8
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = 1
 EM_trig_number = 0
 csum_register_bit = 0
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +TRACK + HAD_EM trigger
End of EM+Track + HAD_EMtrig trig : 0

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_CEM2_PT2_MINUS
 EM_Thresh = 2
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = 2
 EM_trig_number = 1
 csum_register_bit = 1
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +TRACK + HAD_EM trigger
 End of EM+Track + HAD_EMtrig trig : 1
 
 

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_CEM2_PT2_PLUS
 EM_Thresh = 2
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = 3
 EM_trig_number = 2
 csum_register_bit = 2
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +TRACK + HAD_EM trigger
End of EM+Track + HAD_EMtrig trig : 2

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_EM8
 EM_Thresh = 8
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = -1
 EM_trig_number = 3
 csum_register_bit = 3
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
End of EM + HAD_EMtrig trig : 3

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_TWO_CEM4_PT4
 EM_Thresh = 4
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 2
 track_number = 0
 EM_trig_number = 5
 csum_register_bit = 14
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +TRACK + HAD_EM trigger
End of EM+Track + HAD_EMtrig trig : 5

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_TWO_CEM2
 EM_Thresh = 2
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 2
 track_number = -1
 EM_trig_number = 6
 csum_register_bit = 15
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
End of EM + HAD_EMtrig trig : 6

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_TAU0_PT4
 jet_Thresh = 0
 two_bit_trig = 1
 track_number = 0
 jet_trig_number = 4
 csum_register_bit = 4
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a jet +TRACK trigger
 End of jet+Track  trig : 4

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_JET10
 jet_Thresh = 10
 two_bit_trig = 1
 track_number = -1
 jet_trig_number = 5
 csum_register_bit = 5
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a simple jet trigger
 End of simple jet  trig : 5

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_JET5
 jet_Thresh = 5
 two_bit_trig = 1
 track_number = -1
 jet_trig_number = 6
 csum_register_bit = 6
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a simple jet trigger
 End of simple jet  trig : 6

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_TWO_CJET5
 jet_Thresh = 5
 two_bit_trig = 2
 track_number = -1
 jet_trig_number = 7
 csum_register_bit = 16
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a simple jet trigger
End of simple jet  trig : 7

=======================================
End of constructing  memories
=======================================
 
 

PLUG

NB: the triggers are  the same as before, since there are no plug triggers. But the energy thresholds  are infinite (999) for plug, with the exception of  L1_EM8, L1_JET10, L1_JET5
 

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_CEM8_PT8
 EM_Thresh = 999
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = -1
 EM_trig_number = 0
 csum_register_bit = 0
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
 End of EM + HAD_EMtrig trig : 0

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_CEM2_PT2_MINUS
 EM_Thresh = 999
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = -1
 EM_trig_number = 1
 csum_register_bit = 1
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
 End of EM + HAD_EMtrig trig : 1
 

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_CEM2_PT2_PLUS
 EM_Thresh = 999
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = -1
 EM_trig_number = 2
 csum_register_bit = 2
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
 End of EM + HAD_EMtrig trig : 2
 

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_EM8
 EM_Thresh = 8
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 1
 track_number = -1
 EM_trig_number = 3
 csum_register_bit = 3
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
 End of EM + HAD_EMtrig trig : 3
 

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_TWO_CEM4_PT4
 EM_Thresh = 999
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 2
 track_number = -1
 EM_trig_number = 5
 csum_register_bit = 14
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
 End of EM + HAD_EMtrig trig : 5
 

=======================================
 printing parameters for Dirac_EM_Trig
=======================================
 id_name = L1_TWO_CEM2
 EM_Thresh = 999
 HAD_EM_ratio = 0.125
 HAD_EM_max_had = 0
 two_bit_trig = 2
 track_number = -1
 EM_trig_number = 6
 csum_register_bit = 15
 csum_bit_content = 0
 realtrigger = 1
=======================================
It's a EM +HAD_EM trigger
 End of EM + HAD_EMtrig trig : 6
 

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_TAU0_PT4
 jet_Thresh = 999
 two_bit_trig = 1
 track_number = -1
 jet_trig_number = 4
 csum_register_bit = 4
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a simple jet trigger
 End of simple jet  trig : 4
 

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_JET10
 jet_Thresh = 10
 two_bit_trig = 1
 track_number = -1
 jet_trig_number = 5
 csum_register_bit = 5
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a simple jet trigger
 End of simple jet  trig : 5
 

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_JET5
 jet_Thresh = 5
 two_bit_trig = 1
 track_number = -1
 jet_trig_number = 6
 csum_register_bit = 6
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a simple jet trigger
 End of simple jet  trig : 6
 

=======================================
 printing parameters for Dirac_JET_Trig
=======================================
 id_name = L1_TWO_CJET5
 jet_Thresh = 999
 two_bit_trig = 2
 track_number = -1
 jet_trig_number = 7
 csum_register_bit = 16
 csum_bit_content = 1
 realtrigger = 1
=======================================
It's a simple jet trigger
 End of simple jet  trig : 7
 End of constructing  memories
 
 
 
 

Last updated  Jul 11 2002; Simona Rolli