How does Web Start version of WIRED access data?

Web Start

The web start version of WIRED can be started from the WIRED page on the data portal:

http://glast-ground.slac.stanford.edu/DataPortalWired/?tab=Wired

or from the "Browse Events with WIRED" link on some data catalog pages, e.g.:

http://glast-ground.slac.stanford.edu/DataCatalog/

In all cases a data catalog folder is passed to WIRED at start up, and this folder is subsequently used to search for run/events. The ability of a particular data catalog folder to be used as a source of events for WIRED is flagged by the existence of a eventComponents meta-data item on the folder. The value of this meta-data tells WIRED which groups hold the different event components, for example:

Name

Value

Type

eventComponents

digi=digi,reco=recon,mc=mc

STRING

When WIRED is started it is via a link of the form:

http://glast-ground.slac.stanford.edu/DataPortalWired/wired4.jnlp?folder=11628535

Node that the folder's primary key is explicitly passed as part of the URL. This URL is routed to the wired4.jsp file in the DataPortalWired web application, which dynamically creates the JNLP file to be used to start WIRED. For example the JNLP file created for the above link is:

<jnlp spec="1.0" codebase="http://glast-ground.slac.stanford.edu/DataPortalWired/" version="0.8.3.2">
   <information>
      <title>GLAST WIRED4</title>
      <vendor>JAS 3 Team</vendor>
      <homepage href="http://jas.freehep.org"/>
      <description>JAS3 Data Analysis Studio - WIRED4/GLAST configuration</description>
      <description kind="short">A framework for data analysis and event visualization.</description>
      <icon href="jas3.png"/>
      <offline-allowed />
      <shortcut>
         <desktop/>
         <menu submenu="GLAST"/>
      </shortcut>
   </information>
   <security>
      <all-permissions />
   </security>
   <resources>
      <j2se version="1.4+" max-heap-size="256m" />
      <property name="jnlp.jas3" value="true" />
      <property name="freehep.app.title" value="JAS3: GLAST-WIRED4"/>
      <property name="freehep.app.userPrefDir" value="{user.home}/.Glast-Wired4/4.1/user.properties"/>
      <property name="freehep.app.org.freehep.application.studio.user.extensions" value="{user.home}/.Glast-Wired4/extensions"/>
      <property name="freehep.app.hep.wired.heprep.plugin.new.view" value="true"/>
      <property name="freehep.app.hep.wired.glast.plugin.open" value="true"/>
      <property name="freehep.app.showWelcomePageAtStart" value="false"/>
      <property name="freehep.app.hep.wired.glast.gleam.defaultRunEventServer" value="http://glast-ground.slac.stanford.edu/DataPortalWired//EventFinder"/>
      <property name="freehep.app.hep.wired.glast.gleam.defaultDatasetFinderServer" value="http://glast-ground.slac.stanford.edu/DataPortalWired//DatasetFinder"/>

           <property name="freehep.app.hep.wired.glast.gleam.runEventServer.folder" value="11628535"/>

      <property name="freehep.app.hep.wired.glast.gleam.defaultScript" value="/u/gl/glast/heprepserver/4.1/ssh_gleam_server"/>
      <property name="freehep.user.hep.wired.heprep.heprepPanel" value="hep.wired.heprep.projection.ParallelProjection$XZ"/>
      <property name="hep.wired.corbaheprep.cacheable" value="Geometry3D"/>
      <jar href="jars/aida-dev.jar" />
      <jar href="jars/aida.jar" />
      <jar href="jars/BrowserLauncher2.jar" />
      <jar href="jars/freehep-base-2.1-SNAPSHOT.jar" />
      <jar href="jars/freehep-graphics2d.jar" />
      <jar href="jars/freehep-graphicsio-cgm.jar" />
      <jar href="jars/freehep-graphicsio-emf.jar" />
      <jar href="jars/freehep-graphicsio-gif.jar" />
      <jar href="jars/freehep-graphicsio-pdf.jar" />
      <jar href="jars/freehep-graphicsio-ppm.jar" />
      <jar href="jars/freehep-graphicsio-ps.jar" />
      <jar href="jars/freehep-graphicsio-svg.jar" />
      <jar href="jars/freehep-graphicsio-swf.jar" />
      <jar href="jars/freehep-graphicsio.jar" />
      <jar href="jars/freehep-hep.jar" />
      <jar href="jars/freehep-heprep.jar" />
      <jar href="jars/freehep-heprep1.jar" />
      <jar href="jars/freehep-jheprep.jar" />
      <jar href="jars/freehep-jheprep1-adapter.jar" />
      <jar href="jars/freehep-jheprep1.jar" />
      <jar href="jars/HepRep.jar" />
      <jar href="jars/jas-plotter.jar" />
      <jar href="jars/jas3.jar" main="true" />
      <jar href="jars/jc.jar" />
      <jar href="jars/jdom.jar" />
      <jar href="jars/jel.jar" />
      <jar href="jars/jlfgr.jar" />
      <jar href="jars/jsch.jar" />
      <jar href="jars/jxl.jar" />
      <jar href="jars/kxml2.jar" />
      <jar href="jars/openide-lookup.jar" />
      <jar href="jars/optimizers.jar" />
      <jar href="jars/RecordLoop.jar" />
      <jar href="jars/wired-glast-1.1-SNAPSHOT.jar" />
      <jar href="jars/wired-hepeventserver.jar" />
      <jar href="jars/wired-base-4.1-SNAPSHOT.jar" />
      <jar href="jars/wired-corbaheprepclient-1.0.4-SNAPSHOT.jar" />
      <jar href="jars/jprocman.jar" />
      <jar href="jars/WiredPlugin.jar" />
   </resources>
   <resources os="Mac OS X">
      <jar href="jars/macosx/MacOSXPlugin.jar" />
      <property name="apple.laf.useScreenMenuBar" value="true" />
      <property name="apple.awt.showGrowBox" value="true" />
      <property name="apple.awt.brushMetalLook" value="false" />
   </resources>
   <application-desc main-class="org.freehep.jas.JAS3"/>
</jnlp>

Note in particular several properties are passed to WIRED:

Property

Value

Comment

freehep.app.hep.wired.glast.gleam.defaultRunEventServer

http://glast-ground.slac.stanford.edu/DataPortalWired//EventFinder

Tells WIRED what web service to use to look for events

freehep.app.hep.wired.glast.gleam.defaultDatasetFinderServer

http://glast-ground.slac.stanford.edu/DataPortalWired//DatasetFinder

Tells WIRED what web service to use to look for datasets

freehep.app.hep.wired.glast.gleam.runEventServer.folder

11628535

The primary key of the data catalog folder

freehep.app.hep.wired.glast.gleam.defaultScript

/u/gl/glast/heprepserver/4.1/ssh_gleam_server

The script used to start Gleam

Web Services

org.glast.dataportal.wired.DatasetFinderServlet

This servlet is used by WIRED to find which data catalog folders have an eventComponents meta-data, and the value of that meta-data. It queries the data catalog and returns the available event components for each folder. Example:

http://glast-ground.slac.stanford.edu/DataPortalWired//DatasetFinder

returns a list of all folders which contain browseable events with 3 components per line:

  • Folder primary key
  • Folder path in data catalog
  • Value of eventComponents meta-data

An example return line:

11655378 /MC-Tasks/ServiceChallenge/GRBgrid-GR-v13r9p20/runs digi=digi,reco=recon,mc=mc

org.glast.dataportal.wired.EventFinderServlet

This servlet is used to look up specific files to open, given a folder, the eventComponents and the run and event number. (Note that the event number is not currently used, the data catalog just assumes that all events for a given run live in the same file). Example:

http://glast-ground.slac.stanford.edu/DataPortalWired//EventFinder?run=0&event=111&folder=11641713&components=digi=digi,reco=recon,mc=mc

returns the following:

#Results for run=0 event=111 folder=11641713
#Wed Sep 07 17:08:25 PDT 2011
reco=root\://glast-rdr//glast/mc/ServiceChallenge/allGamma-GR-v14r8/recon/allGamma-GR-v14r8-000000-recon.root
event=111
digi=root\://glast-rdr//glast/mc/ServiceChallenge/allGamma-GR-v14r8/digi/allGamma-GR-v14r8-000000-digi.root
mc=root\://glast-rdr//glast/mc/ServiceChallenge/allGamma-GR-v14r8/mc/allGamma-GR-v14r8-000000-mc.root
run=0

Gleam Interface

WIRED uses the information it was passed via the JNLP file, and the web services described above, to find which files should be opened to access a particular event. It then communicates this information to Gleam via the HEPREP Corba service. In particular it sends the following command to open files:

open:rootfilename:root://glast-rdr//glast/mc/ServiceChallenge/allGamma-GR-v14r8/mc/allGamma-GR-v14r8-000000-mc.root;root://glast-rdr//glast/mc/ServiceChallenge/allGamma-GR-v14r8/digi/allGamma-GR-v14r8-000000-digi.root;root://glast-rdr//glast/mc/ServiceChallenge/allGamma-GR-v14r8/recon/allGamma-GR-v14r8-000000-recon.root;

And then the following command to ask for a specific event:

eventId:0-111
next

This is all done in hep.wired.glast.HepEventServerRecordSource

Outstanding Issues

  1. WIRED does handle rel files, but most of the eventComponents in the data catalog do not point to the rel event component (51306242 /MC-Tasks/ServiceChallenge/backgnd-GR-v17r16-53Day-OVRLY/runs digi=digi,reco=recon,mc=mc,rel=relation is an exception).
  2. WIRED does not seem to be able to open MERIT files when run in this mode. The web service does return the merit file if it is pointed to by eventComponents, but it is ignored by HepEventServerRecordSource. This should be easy to fix, except that I do not remember how to pass the MERIT file to gleam (an extra ;merit-file-location seems like a good guess).
  3. Random access to events is not supported when running in this mode, the list of run/events must be created when connecting to the server, and only these events can be viewed.
  4. When Gleam fails to open the files passed to it for any reason the end user just gets an obscure message saying "no such event".
  5. The version of Gleam run is hardwired into /u/gl/glast/heprepserver/4.1/ssh_gleam_server. The user can specify an alternative script, but this is very obtuse and not many people know how to do it.
  • No labels