The tests are based on those from SCTDAQ - see [Peter's writeup]
The purpose of the test is two-fold
- Evaluate the performance of the module under certain conditions
- Optional - modify some parameters, particularly those of the ASIC to improve calibration or performance.
Examples of test are found on the FunctionalOverview page.
The various software classes associated with a test are as follows:
- holds the result of the test, including any new optimised parameters which can be set.
- a sub-class of streamer is probably needed to do the IO.
- (optional) writes the database-style output for the test.
- a script-like object detailing what actions the SctApi needs to perform to run the test.
- (A little bit optional) allows the GUI and humans to read the output
- (Optional) modifies the ASIC parameters according to the result of the test.
A Test consists of one or more Scans. The typical life-cycle of a Test is as follows:
- User pushes button on SctGui
- IPC request made by SctGui to CalibrationController to execute doTest
- CalibrationController publishes in IS a which contains information about the test.
- CalibrationController creates of the correct type, and creates one or more Scans to be done by the SctApi.
- each module produces one object per scan which may be fitted by the FittingService to produce a .
- the AnalysisService collects together the scan results for each module, does the analyisis and publishes the . Also if possible writes to file using the .
- the CalibrationController has the option of waiting for the result of the test, and using it to update the ASIC configuration, using the .