Print

Print


Hi,

There are a few changes I would like to make to lcsim/hps-java at some point, which I would like to run by everyone first:

1) I want to deprecate the EventMarkerDriver and instead provide options on the job manager for printing out event by event information.

Every steering file should not need to have this Driver in order for event number information to print out, and having this in the steering file also means the print interval can't be easily changed without modifying steering files and recompiling, especially if you are working with resources in the jar file.  So I think the current way to print this information is pretty clunky.

I would add a command line option to the job manager with a specifiable print interval, and if the option was not present I would not have this information print at all (so that a "silent" mode is more easily configured if you don't' want to see a lot of print outs as the job runs).

2) I would like to remove the ConditionsDriver and instead provide command line options for optionally setting the detector name and run number via the job manager.

The problem I'm seeing with this Driver (which was really kind of a hack anyways) is that in all cases I have seen in our steering files, it is being used with external variables as follows.

<driver name="ConditionsDriver" type="org.hps.conditions.ConditionsDriver">
    <detectorName>${detector}</detectorName>
    <runNumber>${run}</runNumber>
    <freeze>true</freeze>
</driver>

This means that every MC steering file must have this information set externally for it to work at all, when typically at least the detector name will already be present in the input file.  It also prevents the run number from the LCIO file from being used automatically.  We had typically in the past made "run 0" conditions at least basically compatible with MC, and I believe that should be revisited so that a run number need not be supplied when running jobs on MC LCIO files.

I would propose using something like this from the command line...

org.hps.job.JobManager -d MyDetector -R 1234 [...]

which would replace

org.hps.job.JobManager -Ddetector=MyDetector -Drun=1234 [...]

Then the JobManager can do the proper conditions system initialization independently from the steering file Drivers, which I think is more flexible and the right way to handle overriding this information.

3) I would like to make various, minor changes to the job manager in lcsim to simplify it.  This includes removal of various control options for printing out the Driver list, etc., instead replacing them with logger calls that could be modified via level settings for the job.  This is not a major change, and I have already removed these control settings from all steering files in hps-java and lcsim.

For issues #1 and #2 (both in JIRA currently), my proposal is deprecating the existing Drivers for a time, and then eventually removing them, so the system would be backward compatible for awhile and would still handle the deprecated Drivers correctly if they are present in the job.  I would probably also update myself all relevant steering files with these changes, which basically means EventMarkerDriver and ConditionsDriver would be removed entirely from them.

Speak now if you have a problem with these proposed improvements!

--Jeremy

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1