Print

Print


Hi,

So I am pretty sure that things can work now in the monitoring app with the old and new conditions systems side by side.  At least, I have just tested that it works successfully.

I have an example steering file here that plots some database conditions info from within the monitoring app:

steering-files/src/main/resources/org/hps/steering/monitoring/MonitoringTest.lcsim

You will need to include this Driver configuration to get it working in your lcsim XML file:

<driver name="ConditionsDriver" type="org.hps.conditions.ConditionsDriver">
    <conditionsReaderClass>org.hps.conditions.deprecated.TestRunConditionsReader</conditionsReaderClass>
    <defaultRunNumber>1351</defaultRunNumber>
</driver>

This setup requires some explanation, as it is possibly non-obvious.

The driver will activate the loading of conditions onto the Detector so they are accessible via the geometry objects, and it will also setup and configure the DatabaseConditionsManager.  It should be all that is needed to get the new database conditions system functioning properly in your job.

Firstly, you must set the base conditions reader to be the TestRunConditionsReader via the "conditionsReaderClass" argument, if you want to access the old Test Run 2012 conditions through the text files alongside the database conditions.  If you don't need those text conditions, then this setting is not needed. 

Secondly, there is an unfortunate side effect of the way the org.lcsim and HPS conditions system works, which is that the concept of the run number is not at all well-integrated.  But the new conditions system absolutely requires valid run numbers in order to function properly.  So for now, a default starting run number must be set here to pre-load a set of valid conditions for the job.  Subsequent updates to the run should properly trigger conditions updates, though I need to double check that this works properly.  I intend to properly fix this but it requires some fairly major changes to the framework that involve adding hooks for automatically catching the start of new runs via a Driver etc.  But this should work for now.

Also, I have added users as a dependency of the monitoring-app so you can access your personal Drivers from there.  This is intended to allow easy testing of new Driver code in the monitoring app.  But let's not go crazy with this.  The "official" plot Drivers should still be kept in monitoring-drivers.

I know you had stated that you are running the MonitoringApplication through the distribution, but please do not do this.  It isn't the supported way, and you need to make sure you are only using classes that are accessible via the monitoring-app's dependencies (which are not necessarily the same as the distribution).  You should instead use the -bin jar in trunk/monitoring-app/target/ which you can run with 'java -jar'.  In the future, I may actually remove the monitoring-app from the distribution, but for now it is left as it pulls in a bunch of dependencies that would otherwise need to each be listed manually.

Finally, you should 'svn up' and rebuild the whole trunk to get everything working, as some other configuration throughout the project was touched.

Good luck! Let me know if you get it working.

--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