L1CAL Online Software Philippe Laurens 31-May-2005 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 Monitoring Clients Crate Custom-9U SBC VRBC … VRB VRB TAB/GAB V.I. Slave GAB … TAB #8 COOR L3 TAB #1 Ethernet SCL L1Cal Readout Crate VME-9U Optical Fiber Splitters to L2Cal Crate P. Laurens Rev: 31-May-05 (ALS, PAL) L2 L1CAL TCC Control Software Expert (e.g. at MSU) Remote Console (Copy of Screen Output) L1Cal TCC L1Cal IIb Graphical User Interface (Python) L1Cal IIb Trigger Control Program (C++) L1Cal_IIb_Gui L1Cal_IIb_Gui L1Cal_IIb_Tcc XML over ITC ASCII over ITC COOR Monitoring Applications Binary or XML over ITC ASCII commands over ITC 31-May-05 Bit3 L1Cal IIb Graphical User Interface XML over ITC Host Computers L1CAL Comm. Crate L1Cal IIb Control Software • Split – Control Code vs. GUI • Operating System Independent – – – Windows -> Linux Python (GUI) & C++ (Control) Use D0 products ITC and Thread_Util also ACE (under ITC) and Xerces (for XML) L1Cal IIb Control Software • L1Cal_IIb_TCC Control Program – – – – – – – – 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 COOR Serve L1CAL Monitoring Info to Host Monit Clients Leveraged current L1FW+L1CAL TCC code Allow local command files (python scripts from GUI) Keeps a Logfile of all actions L1Cal IIb Control Software • L1Cal_IIb_Gui – – – – – – – New for run IIb Use Python with Tkinter Zero, One, or more GUI connected at a given time Not in the path of data taking, COOR control, etc Not in the path of monitoring operation Run GUI on L1Cal TCC and/or remote computer GUI plus extensions with external python command files (arbitrary complex, e.g. ADF-2 production test) L1Cal IIb Control Software • Extensions with Python Command Files – Call functions to perform any action the GUI supports: R/W, Config FPGA, program DAC,... – Receive reply from Control Program (e.g. value read) – Recursive call to lower level command files while passing parameters (e.g. card address) – MSU Test Stand: Control Waveform Generator and Multiplexer – Allow interactive user input (e.g. enter card S/N) – Write test logfiles, or any other files e.g. plot files – Execute OS commands, e.g. view plots Control of TAB/GAB Hardware/Software For Commissioning/Tests • Current and future Nevis Test programs can be used for tests or diagnostics (only) For Physics Running • Call the same C code used by Test programs to configure, initialize, program the TAB/GAB under COOR control • Work under way… Interface to COOR • Need to define the syntax to program run dependent resources (references, parameters, thresholds, etc) • Most/All such resources are in TAB/GAB • Philippe can work with Mike (or?) to produce a document defining the outside view of the system to COOR/Scott Interface to COOR • Ref. current L1Cal System: http://www.pa.msu.edu/hep/d0/ftp/tcc/coor/ coor_to_tcc_l1ct_message_syntax.txt • E.g. How COOR sets a reference set “L1CT_Ref_Set EM_Et_Ref_Set 0 TT_Eta(-20:20) TT_Phi(1:32) Value 10.0” Monitoring • Trigger Towers (ADF-2) – Output to TAB • L1Cal objects (TAB/GAB) – What is useful, desirable, doable? – Base idea: read event data every ~5 s • Oversampled data (ADF-2) – ADF-2 raw oversampled data For special studies and calibration/verification Appendix: Example L1Cal GUI dialogs