A Java Graphical User Interface to the SCT Database

Version 10.05 is available since 04/03/2005 Authors: Dave Robinson, and (for ASIC reporting and ASIC shipments) Bill Murray.

This software is an easy-to-use graphical user interface that enables you to submit SQL queries to the SCT database located in Geneva. Its written in pure Java, and therefore runs on virtually anything (Windows, Linux, Mac, Sun etc). In its current form, the program generates reports in either spreadsheet, html or Tree format, and displays test images and lists of raw data. The GUI provides comprehensive reporting for detectors, ASICS, asic Wafers, modules and hybrids in the SCT. If you have any special requests for new features, then let me know.

If you have problems or find a bug, then please let me know, but FIRST check out the list of known problems and solutions

The 'look and feel' of the gui has changed somewhat since this guide was written. However, it remains useful as a general guide on how to use sctdb/gui.

User Guide

  1.  Installation
  2.  General Introduction
  3.  Stocks Tab
  4.  Items Tab
  5.  Detector Tests Tab
  6.  Shipments Tab
  7.  Wafers
  8.  SCTDAQ Tests
  9.  Release Notes
  10.  Some common problems (and their solutions?)
  11.  Source Code

Installation Instructions

1. Non-Macintosh Platforms

  1. Make sure you have the Java RunTime Environment (JRE) or full Java Developers Kit (JDK) on your system, version 1.4 or greater. Important - the application will not work if the java version is 1.3 or less. If you haven't already got them, they are free to download from Sun at www.javasoft.com.
  2. Download the JDBC classes. This is a single file called 'classes12.zip'. Do not unzip this file.
  3. Download the Geneva 'scttests' jar file. This is a single file called 'SCTTEST_3_nn_P.zip', where nn is a version number (20 at the time of writing this). After downloading it, unzip the file to produce a file 'SCTTEST_3_nn_P.jar'.
  4. Download the Database Reporter program from Cambridge. This is a winzip file (.ZIP), which unzipped gives a single java archive ('jDBUtils.jar') file, size ~1MBytes. If you want to be informed of future upgrades/improvements, then please leave me your email address on the form provided.
  5. Make sure you have unzipped the two files above called 'SCTTEST_3_nn_P.zip' and 'jDBUtils.zip' to create two new files called 'SCTTEST_3_nn_P.jar' and 'jDBUtils.jar'.
  6. Set your CLASSPATH environment variable to include the three files:
    • classes12.zip
    • SCTTEST_3_nn_P.jar
    • jSCTDB.jar
    To do this first go into 'Settings', then 'Control Panel' then doubles click on the 'Systems' folder. click on the 'Environment' tab and find the 'classpath' variable. Set this variable to include the three files mentioned above. (Hint: use a semi-colon to separate the files and remember to change the 'nn' in 'SCTTEST_3_nn_P.jar' to a number)                                                                                                    Eg this is how I have defined the classpath on my Windows NT, Windows XP and Linux systems here, with all the above 3 files in located in the my_root_dir directory:
    • Windows NT/XP system -
      In the environments dialogue box launched from the control panel->Systems folder, I have set 'ClassPath' to my_root_dir\classes12.zip;my_root_dir\SCTTEST_3_20_P.jar;my_root_dir\jSCTDB.jar
    • Linux system
      >From the terminal, I typed 'setenv CLASSPATH my_root_dir/classes12.zip:my_root_dir/SCTTEST_3_18_P.jar:my_root_dir/jSCTDB.jar'.
  7. And thats it! From the 'Start' button on Windows, select 'Run' and enter 'java sctdb/gui', OR from your DOS window (or equivalent, depending on your platform!) enter 'java sctdb/gui'
2. Macintosh Platforms

Many thanks to Nobu for this installation procedure for Mac platforms. This procedure has worked for Mac OS 9.2.2.

Please note only GUI version 5.1 is currently available for Macintosh
  1. Make sure you have the latest Macintosh RunTime Environment for Java (MRJ) on your macintosh, or alternatively the full Java Software Developers Kit (MRJ SDK). If you don't already have it, download it from Apple. You will need Stuffit Expander 5.5 if you don't already have it.

  2. Since the "Mac OS Runtime for Java" (Mac OS 9.2.2) is only compatible with JDK 1.1.8, it requires to insall "Swing" components which is a graphical user interface component kit and permits a customizable look and feel without relying on any specific windowing system. The kit, "JFC 1.1 with Swing-1.1.1" can be downloaded from Sun.

    After downloaded and unstuffed, a folder, Swing-1.1.1, will be created. Copy "swingall.jar" (and "mac.jar") into "System folder" -> "Extensions" -> "MRJLibraries" -> "MRJClasses".
    ("Mac OS Runtime for Java" (Mac OS X) is compatible with JDK 2 and no need to install because Swing is already incorporated in the Java 2 platform.)
  3. Install the JDBC classes. This is a single file called 'classes12.zip'. Download it from the Geneva web server. Do not attempt to unzip this file! Install it in the appropriate MRJclasses folder ('System/Extentions/MRJLibraries/MRJClasses/'), so that the java application can find it.
  4. Install the Geneva 'scttests' jar file. This is a single file called 'SCTTEST_3_nn_P.zip', where nn is a version number (18 at the time of writing this). Download it from the Geneva web server. Unzip this file to produce a file 'SCTTEST_3_nn_P.jar'. Install it in the appropriate MRJclasses folder ('System/Extentions/MRJLibraries/MRJClasses/'), so that the java application can find it.
  5. Download the Database Reporter program from Cambridge, unzip it and put the file 'jSCTDB.jar' in your MRJclasses folder.
  6. Download the DBTableInterface application icon zip file, and unzip it.
  7. To run the application, double-click on the DBTableInterface icon.

General Introduction

There are basically 4 categories of database queries,

  • Stocks - details of devices that are stored at a given location, or devices that have been produced by a given manufacturer. There are two tabs under this category: 'Local Stocks' and 'ASIC Summary', this is because the ASIC's need their own summary as there is too many of them to list them all.
    • Local Stocks - This can be used to find out information about several different devices such as current location, the manufacturer, assembly status and diced status for wafers.
    • ASIC Summary - This can be used to find out information about a particular lot for example it can be used to find out the current location/assembly site, the test machine name, the assembly status and the diced status for lot number 40801. When you submit a 'Database Query' you get a spreadsheet which has headings along the side and the top.
                     Along the side you should get:
      • 'All' - this should be the total of the four headings below but can be less as if there is a wafer which is assembled but not-diced the wafer will be counted twice by the database.
      • 'Reject est.' - this is where 10% of the chips on the wafer are not acceptable and so the wafer has been rejected. These chips have been removed and so will not appear in the rows below.
      • 'Assembled' - these are wafers that have been assembled.
      • 'Available' - these are wafers which are available for use.
      • 'Not-Diced' - these are wafers which have not yet been diced.
                     Along the top you should get:
      • 'Perfect' - these are chips that are perfect.
      • 'AA1' - these are chips with one bad analogue channel.
      • 'AD1' - these are chips with one bad digital channel.
      • 'Irr Perfect, Irr AA1 and Irr AD1' - these are chips which have been irradiated.
      • 'Tra Perfect, Tra AA1 and Tra AD1' - these are chips which have been trashed as they are damaged.
      • 'OK Perfect, OK AA1 and OK AD1' - these are chips which have not been irradiated or damaged.
  • Items - retrieve information about a particular device, eg its current location and assembly status, its shipment history, and the test results. 
  • Shipments Retrieve shipment information from any institute or manufacturer to any another institute or manufacturer, for shipments containing any type of component you specify. You can also retrieve comprehensive reports of all the items in any shipment (eg test results, test status and item status).
    You can also easily create a new shipment for any number of items, and upload them to the database. In the 'Create New Shipment' category there are three different types of devices that you can ship: ASIC Wafers, ASIC GelPaks and non-ASICs.
  • Test Data You can retrieve comprehensive reports of test data for sensors, ASICS, asic Wafers and modules/hybrids. Your options range from the retrieval of specific data for a particular device, to spreadsheets of data from all devices in the SCT.
    • Sensors - Spreadsheets of any test parameters from both ATLAS and the manufacturer, plus images, raw data and web summary reports.
    • Wafers - You can generate spreadsheet reports of ABCD calibrate correction factors, and all wafer test parameters. You can also use this category to bring up a picture of the whole wafer which you can then use to check for damaged or irradated chips on that wafer.
    • ASICs - You can generate spreadsheet reports of any ASIC parameters
    • Module/Hybrid SCTDAQ data - You can generate spreadsheets of any SCTDAQ test parameter, view web reports, download rawdata and plots.

Starting the Application
To start the application, enter 'java sctdb/gui', and the GUI should appear within a few seconds (though with slower machines, it may take several seconds). If it doesn't work, then its most likely that your classpath and/or path variables are not set up. Please look again at the Installation guide and perhaps the Common Problems section. If all is well, you are immediately prompted for a password that will give you read access to all data within the SCT database. Ask me if you don't know it, as you cannot even look at the GUI properly without the password.

Introduction to the GUI
The Database Reporter consists of a Graphical User Interface (GUI) written in Java.

There are seven basic categories of query currently implemented, and you can switch between queries by selecting the appropriate tabs. In general, the top half of the GUI is used to define the query (which can be very general or very specific), and the bottom half displays the result of that query. Results are presented in 4 ways:

  • As a spreadsheet format - in which case the GUI behaves like a normal speadsheet (ie you can resize columns by putting the mouse over column title boundaries etc, and scroll). If there are too many columns all squeezed up, you can enlarge the overall GUI (make it wider) by selecting the bottom right-hand corner, and draggin the mouse across the page. You can save the result in a 'semicolon' delimited text file, or directly as an Excel file (to choose the format, select the appropriate FileType menu item).
  • Raw data listings - simple lists of raw data that you can browse through and/or save to disk
  • Test images (jpg format) - browse and/or save to disk
  • HTML reports - these html files are saved to disk, from which you can browse them using this GUI or via any browser over the web
For more information, and examples of how to retrieve various data, please browse through the User Guide topics.

Quitting the Application

To quit the application, click on the 'Close' box at the top right-hand corner. Indeed, to close any window, just click on the 'Close' box of that window. In the newer version of the Java SCT Database Interface (version  7.14) there is a 'Quit' box in the bottom right-hand corner which is used the quit the application.

Monitoring the Progress of your Query

When you submit a query to the database, you can view the progress of a query during execution by viewing the DOS window (or console window), as shown below. The query is usually fast (a second or two to retrieve several hundred records) but may take time for a slow internet connection or a complex query returning several thousand records.


You should configure the GUI when you open it for the first time, so that default menus and file directories are set correctly for your institute and your PC. For example, you will typically be interested mainly in detectors/devices from a certain manufacturer and of a given type, associated with your own institute. You will typically always save your spreadsheet data and html reports in certain directories on your machine. You can set these defaults (and make the GUI remember them for later sessions) by setting the Configuration:

Click on 'Preferences' in the top right corner of the GUI.

You will see various menu options to define your local configuration:

  • Your institute The default (ie YOUR!) institute.
  • Your Cluster If your work is related to particular barrel cluster, select it here (if you are working on endcap modules, leave this menu set to anything)
  • Device Type The default device type that you are involved with.
  • Spreadsheet Directory The default directory that spreadsheet reports are saved to.
  • Scratch Directory The application sometimes needs to generate temporary files which are deleted when the application is closed. These temporary files will be generated in this scratch directory (by default, this will be your 'home' directory).
  • Upload Directory The directory that database upload files are stored in.
  • Postscript Viewer The application may wish to launch a postscript viewer (like Ghostview) if (for example) you download a ps file. Click on the 'Select PS Viewer' button if it indicated 'None Selected'.
  • Browser To confirm the creation of new shipments, and to receive shipments, the application will launch a browser to take you directly to the appropriate Geneva database web page. Please click this button to select the executable file of your preferred browser (eg iexplorer, netscape, konquerer etc
Unless you modify your preferences, your directories will all be set to your HOME directory (eg in the case of my PC the home directory is C:/WINNT/Profiles/silicon), so please modify your preferences to something sensible.

When you set your preferences, all menus will by default be set to your preference when you first select a tab.
(Note: when you save preferences, you create a small text file called javagui.dat in your home directory, and the GUI will check for this the next time it is invoked so you don't have to change the preferences again).

Release Notes

  • Version 8.0, Released 08-01-2004
    • Add barrel module signoff spreadsheets
    • Add barrel visual insepction spreadsheets
    • Add new module 'all data' report - generates web-style report showing all module data, including assembly info, asics, links to sensors, sctdaq, metrology, visual reports
    • Spreadsheet of gain/noise for every channel, comparing module and asic data (code from Bill)
  • Version 7.17, Released 13-11-2003
    • Bug fix for barrels module shipments - if clicking 'Remove selected items' from shipment list, remove bmHASICs too
  • Version 7.16, Released 04-11-2003
    • Various ASIC reporting updates from Bill
  • Version 7.15, Released 24-10-2003
    • Various ASIC reporting updates from Bill
  • Version 7.14, Released 30-09-2003
    • Bug fixes/updates from Bill:
    • Remove irradiadated ASICs from Hybrid SA files
    • Correct format for Chip lists from Birmingham
    • Suppress reject <10% Wafers from summary tables
    • Report latest, not earliest, data in summary tables.
    • New selection options in ASIC summary tables
  • Version 7.13, Released 12-09-2003
    • Further ASIC updates
  • Version 7.12, Released 04-09-2003
    • Irradiation can be checked/selected in ASIC Tests pane
    • Trashed flag can be checked/selected in ASIC test pane
    • Select on AA1/AD1 possible in ASIC test pane
    • Shipping removes trashed ASICs be default (switchable)
    • Bug which meant asking for ASICs from Wafer 1 gave 1, 10, 11 etc fixed.
    • ASIC wafer data can be found by Manufacturer number as well as DB no.
    • Wafer probing results picture available in 'Test Data'-> 'ASIC Wafers'->'Manufacturer No.'
  • Version 7.11, Released 26-08-2003
    • Minor bug fixes to 7.10
  • Version 7.10, Released 20-08-2003
    • Updates from Bill Murray:
    • Stocks tab allows reporting by assembled or diced status. Dicing status is shown for wafers.
    • Shipments tab has whole new section when shipping Gel Paks This can also be used to print Gel-pak labels, pick maps and create files for Hybrid SA. Selection of ASICs by perfect/1 ana/1digi quality is possible.
    • Tests data -> ASICs allows monitoring of current location.
  • Version 7.09, Released 15-07-2003
    • Insert calibrate correction factors into module xml files during download.
    • Now compiled with Java 1.4 - you must now run the application using v1.4 or later.
  • Version 7.08, Released 04-07-2003
    • Change of web links to send and receive shipments.
    • Smaller font for table listings
  • Version 7.06, Released 16-06-2003
    • Bug fix to shipment reporting
  • Version 7.05, Released 13-06-2003
    • Improved filtering for viewing past shipments
  • Version 7.04, Released 10-06-2003
    • Bug fix - automatically unzip raw data if zipped (relied in ending in .zip before!)
    • Reporting of uploaded datasheets
    • Add &module=serialno to end of RAL server URLs with getfile.pl
  • Version 7.0, Released 13-05-2003
    • Update for compatibility with Geneva database upgrade to ORACLE 9i
  • Version 6.9b, Released 25-04-2003
    • Various updates/improvements to ASIC reporting (by Bill Murray)
    • In 'stocks' tab, only list barrel modules, sensor-baseboards and asic-hybrids if they physically exist (before, all registered serial numbers were listed regardless of whether they have been assembled or not)
  • Version 6.9, Released 10-04-2003
    • SCTDAQ Redundancy tests now queryable
    • downloaded postscript files now deleted at end of the session
    • resolve relative pathnames (if remote URL is a cgi script returning relative pathname) for download of postscripts
    • Inner, outer and middle spines now separately queryable
    • Updates to EndCap Module tab:
      > You can now enter the flex serial number (ie visible barcode number on hybrid/module flex) to retrieve module or hybrid data, so long as the flex has been assembled in the database (like in sctdaq uploader application)
      > added 'Device' selection menu (Modules/Hybrids)
      > if entered serial number(s) correspond to a Flex then serial numbers of the corresponding module (or hybrid, depending on Device selection menu) is automatically substituted by lookup from the assembly tables.
      > if entered serial numbers are those of a hybrid or module, the Device selection menu is ignored.
      > if no serial numbers are entered (the 'From:' serial number box left blank), then tests of ALL modules (or hybrids, depending on Device selection menu) are listed, optionally filtered by the test location and the current location.
  • Version 6.8, Released 01-04-2003
    • Allow selection of 'preferred web browser' in preferences.
    • Automatically open shipment confirmation page at Geneva database website after creation of new shipment
    • Automatically open shipment receive page at Geneva database website for receiving shipment>/li>
  • Version 6.7, Released 07-03-2003
    • Bug fix. If there are no persons registered at a sending (or receiving) institute, list all persons in the database in the person selection menu.
    • Minor updates to ASIC reporting (Bill Murray)
  • Version 6.6, Released 03-03-2003
    • Re-organise layout of modules/hybrids reporting
    • Assembly reports added to module/hybrid test panes
  • Version 6.5, Released 24-02-2003
    • Additions to ASIC reporting (by Bill Murray)
  • Version 6.4, Released 14-02-2003
    • Full assembly tree reports for individual items - launched from Items tab
    • Add ROD config file listings
    • Some improvements to sctdaq test listings (add comments, more info on report-browser)
    • Important bug fix for shipment uploads (potential thread synchronisation problem)
  • Version 6.2, Released 24-01-2003
    • Create package name 'sctdb' to avoid possible conflict of classnames with other applications. Now start by 'java sctdb/gui'.
    • Extensive reporting utilities for SCTDAQ data
    • SCTDAQ spreadsheets, web reports, rawdata viewer, postscript viewing etc
    • New components, gelPack, Barrel Module, ASIC-hybrid, base-hybrid, forward Module etc
  • Version 6.1, Released 06-12-2002
    • New ASIC reporting - code by Bill Murray
    • You can now save spreadsheet files now directly into Excel format (using Andy Khan's Java Excel API).
  • Version 6.0, Released 22-11-2002
    • New Upload capability - new shipments now uploaded directly to database, after prompting the user for institute username and password. IMPORTANT: you must include the appropriate SCTTEST_3_nn_P.jar file in your classpath.
    • New ASIC shipment utility - code by Bill Murray
    • Only allow web reports for detectors (for the moment..)
    • Add sensor and sensor-baseboard components, and update institute list.
    • Re-organise GUI for future expansion of non-detector reporting
  • Version 5.2, Released 08-11-2002
    • Bug fix to new shipments - allow one or more items in a shipment.
    • Bug fix to new shipments - correct date format in database upload file
    • Add option to remove selected item(s) in new shipment list.
  • Version 5.1, Released 31-10-2002
    • Remove some java1.2 specific methods to allow to run on MacOS9 (java 1.1.8 with Swing patch)
    • Add ABCD3T and ABCDWafer to list of components in stocks, items and shipments reports
    • Add 'Wafers' tab, with reporting on ABCDWafer tests, and ABCD CALIBRATE CORRECTION FACTORS
    • Look and Feel now set by default to local system (ie 'Windows' on Windows, 'Java' on Linux etc)
  • Version 5, Released 12-07-2002
    • Add reporting for non-detector SCT components in 'Stocks' and 'Shipments'
    • Add filter option for Shipments, so you can request shipments that only contain certain components
    • Add utility to register new shipments
    • Numerous cosmetic changes
  • Version 4, Released 30-11-2001
    • Add summary reports
    • Add items category
    • Add selections category and assignments to baseboards
    • Add menu options to order result lists.
    • Add image viewer.
    • Add raw data viewer.
    • Fix bug to allow shipments from 'Anywhere' to 'Anywhere'
    • Fix bug - only enable shipment info buttons if mouse selects a shipment row! Previous check not robust enough!
  • Version 3, released 8/11/2001
    • If network or Geneva server is down, connection attempt times out after 30secs
    • Shipment lists exclude shipments with zero items or only non-detector components
    • More info in lookup table, eg type, mfr serial no
    • Result lists now include test comments, and status flags.
    • Introduce visual test reports
    • Introduce test status reports
    • Update and expand shipments reporting, including test status, test results, and item list in each shipment (and separate windows for shipment reports).
    • Add option of shipment dates in shipment selections.
  • Version 2, released 26-10-2001
    • Require password at launch of GUI
    • Allow selection of shipments from any manufacturer/institute to any manufacturer/institute.
    • Allow choice of detector shape in look-up table reporting
  • Version 1, released 19-10-2001

Common problems (and their solutions?)

  • Shrinking text boxes
    Sometimes, if running the application under Linux with Java v1.4, the text-boxes might shrink so that you cannot see what text you enter! If this happens, slightly increase the size of the window by selecting the bottom right window corner and dragging diagonally.
  • Corrupt html
    Occasionally the html does not get rendered properly when using the 'html browser'. I've only seen this on Linux platforms with Java v1.4. If you repeat the query once or twice it should get rendered properly.
  • Shipments don't upload
    Make sure you have the latest SCTTESTS_3_20_P.jar file declared in your Classpath env variable.
  • PATH variable not set
    You see 'java : bad cmd' or something similar.
    Solution: The java directory containing the executables is not set in your PATH variable, or perhaps there is a spelling mistake in your PATH declaration
  • NoClassDefFoundError
    'NoClassDefFoundError' - you have not included both 'classes12.zip' and 'jSCTDB.jar' in your classpath variable, or perhaps there is a spelling mistake in your Classpath declaration
  • Corrupt Graphics
    Funny (corrupt) graphics.
    Change the colour resolution for your monitor - select 'Settings' then 'Control Panel' then 'Display', then change to something like 'High color (16-bit)' or better, and try again.
  • ...any others?

Source Code

If you are a software developer in the SCT community and want to use this application as a template for reporting on non-detector aspects from the SCT database, you are welcome to view the source code:

  • Ask me for the password if you don't already know it
  • Click here to download a zip file with all the source code.