PrimEx software meeting minutes for July 22, 2002


Present: Mark Ito, Rafael Hakobyan, Eugene Pasyuk, David Lawrence

PrimEx Database: There was a general consensus at the begining of the meeting that calibration constants and channel maps should be stored in a mysql database hosted by a JLab server. Currently, we plan to use the host clasdb.jlab.org.

Channel Map:
Dave proposed a definition for the translation table to map hardware channels (as will be encoded in the CODA data) to the names of physical detectors. Mark and Eugene pointed out that no primary keys were specified in the definition. It was recommended that all tables defined in the PrimEx database have primary keys defined as a matter of good coding policy.

Tags for constant sets:
Dave proposed a small table be defined to hold tags and datetime stamps for identifying constant sets in the database. A discussion ensued as to whether or not to allow copies of the "RunIndex" table. Dave argued that the risk of parallel development was not worth the added features of allowing such copies. Eugene and Mark argued the risks where minimal and controllable and that the features may be neccessary at some point.

Database gaps and run ranges:
Dave initiated a discussion of how to define run ranges in the calibration database. At issue were the following questions:

1.) Do we explicitly define the end of a calibration constant's valid run range, or do it implicitly via the next entry?
2.) If an end run is defined, what is it set to if the range is not yet well defined? (Do we allow "infinity"?)
3.) Do we allow gaps in between valid run ranges? Do we allow overlaps?
4.) What should the code do when it encounters a gap?

The discussion led to the following decisions:
1.) Yes, we define an end run field.
2.) "Infinity" is not forbidden, but strongly discouraged. Instead, reasonable (over-) estimates of the end run should be applied and correct when updated information becomes available.
3.) Gaps and overlaps are both allowed.
4.) If a gap is the result of zero rows being returned by a query, then the program should exit with an error message. Subtle gaps (filled by old constants whose range is set to large) should also be detected and warning messages printed when they are being used.

New meeting time:
A new meeting time of 11:00am Mondays was tenatively set for the software meetings. An announcement will be sent out once the room is reserved.

CVS repository:
Mark proposed a structure for the CVS repository. This separates code to be made into libraries (one for each major detector system) and code containing "main()" routines into different sections of the directory tree. There are also top level sections for docs, tools/utilities, and html. Those at the meeting agreed with the plan. The new structure will be implemented by Dave.