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