Run IIb L1CAL TCC Philippe Laurens MSU 9-Feb-2006

advertisement
Run IIb L1CAL TCC
Philippe Laurens
MSU
9-Feb-2006
Run IIb L1Cal System (slide by Hal Evans)
Framework Interfaces
Timing (SCL)
BLS
2 EM + 2 H
EM
H
1280
Existing
BLS
Trigger
Cables BLS-to-ADF


1280 Existing
BLS Cards
2560 EM +HAD TT
0.2x0.2
ADF Timing
Fanout
VME Interface
& SCL Interface
timing/ctrl
L2 & L3
timing/ctrl/vme
Jets
Transition System
Patch Panel Cards (x80)
Pleated Foil Cables (x160)
Paddle Cards (x80)
Control (TCC)
16 EM
16 H
ADC +
DigitalFilter
(ADF)
x 80
8-bit TT
Et
TT Signal
Processing
Signals from
L1 Track
Trig
Algo’s
(TAB)
x8
Sliding
Windows
clusters
sums
encoded
clusters
Cal-Trk Match
Global
+
Control
(GAB)
x1
Global
Sums
F
r
EM
a
Tau
m
Et,Mpt e
w
o
r
k
Run IIb L1Cal System
10 racks in MCH1 M103-M112
Replace 25x Run IIa crates
With 6x Run IIb crates and 40x patch panels
4x ADF Crates
1x TAB/GAB Crate
1x Communication Crate
cf. http://www.nevis.columbia.edu/~evans/l1cal/install/M100-M113.pdf
L1CAL IIb TCC … another TCC???
Currently fir Run IIa:
– L1 TCC (aka d0tcc1.fnal.gov) interface to
• L1 Framework
• L2 Framework
• L1Cal (Run IIa)
– L2 TCC (aka d0tcc2.fnal.gov) interface to
• L2 Preprocessors
• L2 Global
L1CAL IIb TCC … another TCC!!!
For Run IIb:
– L1 TCC (aka d0tcc1.fnal.gov) interface to
• L1 Framework
• L2 Framework
– L2 TCC (aka d0tcc2.fnal.gov) interface to
• L2 Preprocessors
• L2 Global
– L1Cal TCC (aka d0tcc3.fnal.gov) interface to
• L1Cal (Run IIb)
TFW
…
…
ADF #20
VME-6U
ADF #1
#1 of 4
V.I. Slave
SCL Distributor (to ADF)
Bit3
ADF Crate
V.I. Master (to VRB)
V.I. Master (to ADF)
L1Cal TCC
ADF #20
ADF #20
…
VME/SCL (to TAB)
V.I. Slave
L1Cal Expert
Programs
Bit3
Run IIb L1 Calorimeter Trigger Control Path
ADF Crate
#4 of 4
VME-6U
L1Cal
Comm.
Crate
VME-9U
SCL
Crate
Custom-9U
SBC
VRBC
…
VRB
VRB
TAB/GAB
V.I. Slave
GAB
…
TAB #8
Ethernet
Monitoring
Clients
TAB #1
COOR
L3
L1Cal
Readout
Crate
VME-9U
Optical Fiber Splitters to L2Cal Crate
P. Laurens
Rev: 31-May-05 (ALS, PAL)
L2
Run IIb L1Cal System
(slide by Hal Evans)
VME/SCL
Framework Interfaces
Timing (SCL)
1280
Existing BLS
Trigger
Cables
Patch
Panels
SCLD
Serial Command
Link Distributor
Control (TCC)
VME Interface &
SCL Interface
timing/ctrl
BLS
EM
H


2 EM + 2 H
BLS
Cables
1152 Existing BLS
Rat’sCards
Nest
[2560 EM + HAD]
TT: 0.2 x 0.2
BLS-ADF Transition System
Patch Panels x40
Patch Panel Cards x80
Pleated Foil Cables x160
ADF Transition Cards x80
ADFv2
16 EM
16 H
ADC +
DigitalFilter
L2 & L3
timing/ctrl/vme
Trigger
Algorithm
8-bit TT
Et
(TAB)
x8
(ADF)
x 80
TT Signal
Processing
Sliding
Windows
Signals from L1
Track
clusters
sums
encoded
clusters
Jets
Global
+
Control
(GAB)
x1
EM
Tau
Et,MET
Global
Sums
k
Cal-Trk Match
TAB
F
r
a
m
e
w
o
r
GAB
L1CAL IIb TCC -- Functionality
Same functionality for L1, L2, L1Cal TCC
TCC = Trigger Control Computer
– Control
• Interface to COOR
– Monitoring
• Collect Information from hardware
• Serve Information to Monitoring Client(s)
– Tests
• Calibrations, Tests, Diagnostics, etc; for expert
L1Cal IIb Control Software
• Partitioned
– Control Code
vs.
GUI
• Operating System Independent
–
–
–
Windows & Linux
Python & C++
Use D0 products ITC and Thread_Util
L1CAL TCC Control Software
Expert (e.g. at MSU)
L1Cal IIb
Remote
Console
(Copy of
Screen
Output)
L1Cal TCC
L1Cal IIb
Graphical
User
Interface
L1Cal IIb
Graphical
User
Interface
(Python)
XML over ITC
XML over ITC
ASCII over ITC
Host
Computers
COOR
Monitoring
Applications
Binary over ITC
ASCII commands over ITC
8-Feb-06
L1CAL
Comm. Crate
Bit3
L1Cal IIb
Control
Software
(C++)
L1Cal IIb Control Software
• L1Cal_IIb_TCS Trigger Control Software
–
–
–
–
–
–
–
Use C++ for robustness and execution speed
Control and monitor both ADF and TAB/GAB
Only software actually performing VME IOs
Interface presenting one L1CAL system to DZero
Ported in large part from current L1FW+L1CAL TCC
Allow local command files for flexibility
Keep a Logfile of all actions with time stamps
L1Cal IIb Control Software
• L1Cal_IIb_GUI (User Interface to L1CAL_IIb_TCS)
–
–
–
–
–
–
Different for Run IIb (not microsoft Visual C++)
Use Python with Tkinter for portability
Zero, One, or more GUI connected at given time
Not needed for COOR control nor monitoring
Run on TCC or from Remote computer
*Greatly* extendable with external
python command files (of arbitrary complexity)
L1Cal_IIb_GUI
L1Cal_IIb_TCS– Run Control
Interface to COOR
– Hide hardware complexity
– Present one unified L1CAL = ADF+TAB+GAB
– Initialize the System to defined state
– Translate high level COOR commands
(ASCII ) into (a few or thousands of) VME IOs
L1Cal_IIb_TCS– Run Control
How does it happen?
A quick example run-through:
– 1) User/Trigger Meister
– 2) Trigger Database
– 3) COOR (via Taker)
– 4) L1Cal TCC
L1Cal_IIb_TCS– Run Control
1) User (or Trigger Meister)
•
•
Would like to analyze events which
"Require at least 1 jet with Et at least
10 GeV within |eta| of 3.2“
cf. available Run IIb trigger resources
http://www.nevis.columbia.edu/~evans/l1cal/algos/algos.html
L1Cal_IIb_TCS – Run Control
2) Trigger Database
• Input (in part):
– User (or Trigger List) defines a requirement for "CSWJT(1,10.,3.2)"
– plus other filtering L1 requirements, L2, L3)
– cf. http://d0db-prd.fnal.gov/trigdb/cgi/tdb_report_element.py?
function=L1Script&insname=CSWJT(1,10.,3.2)_ncu&insversion=1
– cf. http://d0db-prd.fnal.gov/trigdb/cgi/tdb_report_element.py?
function=Trigger_List&intlname=First_Run2b_list&intlversion=2.00
•
Actions:
– Generate XML files defining these triggering requirements to COOR
– cf. http://www.nevis.columbia.edu/~evans/l1cal/algos/coor/coor_syntax.html
L1Cal_IIb_TCS– Run Control
3) COOR (via Taker)
• Input (in part):
•
•
•
•
•
•
•
•
•
–
•
[...]
<l1trigger name='CSWJT(1,10.,3.2)_ncu' prescale='0'>
<l1termlist>
<run2b.l1jet count='1' maxeta='3.2' thresh='10.'/>
[... other andor term requirements ...]
</l1termlist>
[... L2 and L3 requirements ...]
</l1trigger>
[... other Specific Triggers…]
cf. http://www-d0online.fnal.gov/www/groups/trigger/official/special/
Run2b/First_Run2b_list-2.00.xml
Actions (in part):
–
Send messages to L1Cal TCC to program the L1Cal resources
•
•
•
•
•
–
Send messages to L1FW TCC
•
•
•
–
Allocate one of the 7 TAB Jet Reference Sets for this request
Program this reference set with a threshold of 10 GeV and an eta coverage of 3.2
Allocate one GAB CSWJT Terms to listen to this RefSet and require at least one jet
cf. http://www.nevis.columbia.edu/~evans/l1cal/algos/trig_terms/trig_terms.html
cf. http://www.nevis.columbia.edu/~evans/l1cal/algos/trig_terms/coor_params.html
Allocate one L1 Specific Trigger to implement this request
Program this SpTrg to require the matching L1Cal andor term (among others)
Specify which crates need reading out any time this Specific Trigger Fires
Start a new Run Number with this Specific Trigger Requirement
L1Cal_IIb_TCS– Run Control
4) L1Cal TCC
•
Input:
– "L1CAL_Ref_Set Jet_Et_Ref_Set 1 TT_Eta(-16:16) Energy_Threshold 10.0"
– "L1CAL_to_L1FW Jet_All_Term 0 Use_Ref_Set 1 Count_Threshold 1"
– cf. http://www.pa.msu.edu/hep/d0/ftp/run2b/l1cal/tcc/coor/
coor_to_l1caltcc_message_syntax.txt
•
Actions:
–
–
–
–
L1Cal_IIb_TCS server receives these messages from COOR
Parser understands the message syntax and extracts the request
Dispatcher calls corresponding executer routine with corresponding arguments
Executer routine
• loop over all TABs within TT_Eta/TT_Phi coverage (or single GAB)
• Program the TAB and/or GAB control registers via the VME/SCL
• keep track of overall success
– Server sends acknowledgement message (Ok/Bad) back to COOR
for each command message received
L1Cal_IIb_TCS– Run Control
Cf. Expanded version of this run-through
Including event processing by L1Cal,
L1 FW, L2, etc:
http://www.pa.msu.edu/hep/d0/ftp/run2b/l1cal/
tcc/coor/using_l1cal2b.txt
Download