120 likes | 131 Views
Comprehensive software for controlling & monitoring L1Cal system featuring GUI with Python & C++ program. Offers robustness, speed, & flexibility for ADF and TAB/GAB operations. Includes detailed documentation.
E N D
L1CAL Online Software Philippe Laurens 31-May-2005
Run IIb L1 Calorimeter Trigger Control Path … … L1Cal Expert Programs ADF Crate #1 of 4 VME-6U ADF Crate #4 of 4 VME-6U V.I. Slave ADF #20 ADF #20 V.I. Slave ADF #1 ADF #20 … L1Cal TCC L1Cal Comm. Crate VME-9U Bit3 VME/SCL (to TAB) Bit3 V.I. Master (to ADF) SCL Distributor(to ADF) V.I. Master (to VRB) TFW SCL L3 Ethernet COOR … … L1Cal Readout Crate VME-9U TAB #1 TAB #8 GAB V.I. Slave VRB VRB VRBC SBC TAB/GAB Crate Custom-9U Monitoring Clients L2 Optical Fiber Splitters to L2Cal Crate P. Laurens Rev: 31-May-05 (ALS, PAL)
L1CAL TCC Control Software L1CAL Comm. Crate Bit3 Expert (e.g. at MSU) L1Cal TCC Remote Console (Copy of Screen Output) L1Cal IIb Graphical User Interface L1Cal IIb Graphical User Interface (Python) L1Cal IIb Trigger Control Program (C++) L1Cal_IIb_Gui L1Cal_IIb_Gui L1Cal_IIb_Tcc XML over ITC XML over ITC ASCII over ITC Host Computers COOR Monitoring Applications Binary or XML over ITC ASCII commands over ITC 31-May-05
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