Print

Print


Hi,

I have deprecated these classes and moved them out of the standard monitoring package:

AIDAFrame
RunControlDialog
RunControlDriver

They have nothing to do with monitoring really, but I put them under monitoring.deprecated for now.  Eventually I would like to see them go away.

Unfortunately, it seems to me that AIDAFrame is used all over the place, but this class is a mess in terms of our architecture.  It causes conflicts when running things in JAS.  Embedding the plots inside the monitoring app is also made impossible by this class because plots are placed in an external frame rather than being left in a panel that is then embeddable.  I only took the AIDAFrame usage out of classes (in a commit from months ago) that are used in monitoring.  I left it for the others (for now).

The RunControlDriver and RunControlDialog I’m not sure about but isn’t this same functionality available inside JAS itself?  What is this supposed to do?

We can definitely discuss suitable replacements for them.  

Instead of having an AIDAFrame class, a more proper way of augmenting the default behavior of the AIDA plotter and related classes is creating custom AnalysisFactory and PlotterFactory implementations.  This is how I’m able to embed plots in the monitoring app without making any changes to how each plotter is setup.  Essentially using the factories you can implement whatever behavior is desired when the plotters are created.  On the other hand, every plotter must be configured to use AIDAFrame so you get a lot of boilerplate code, and incompatibilities are introduced.  Please do not use this class in any future work and think about removing it from existing code.

I understand that the default behavior behavior of AIDA which pops up a ton of independent frames is not ideal and difficult to work with when running jobs in which you want to monitor the filling of histograms.  We can also talk with the AIDA team at SLAC about having an alternative factory that would place all the plots in a top-level GUI element.  It is not at all difficult to implement.

In the monitoring app I introduced the following convention:

PlotterFactory(factoryName) => Top-level tab called “factoryName”.

Plotter(plotterName) => Sub-tab under its PlotterFactory called “plotterName”.

PlotterRegion() => Appears in its plotter’s panel in the standard fashion.

This seems to work pretty well.  If this seems like a reasonable convention, then I propose we come up with a PlotterFactory replacement that can be used in place of AIDAFrame.  Using it would amount to having one line of configuration code in your job.

—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