Upload
gloria-merritt
View
216
Download
2
Embed Size (px)
Citation preview
Java Analysis Studio - Java Analysis Studio - StatusStatus
CHEP 98 - September 1998CHEP 98 - September 1998
Tony Johnson - SLAC Tony Johnson - SLAC
Jonas Gifford + Kevin Jonas Gifford + Kevin Garwood - University of Garwood - University of VictoriaVictoria
ContentsContents
What is Java Analysis StudioWhat is Java Analysis Studio Java Analysis Studio FeaturesJava Analysis Studio Features Implementation + Java Pro’s and Con’sImplementation + Java Pro’s and Con’s Beta Release InformationBeta Release Information DemoDemo FutureFuture Opportunities for CollaborationOpportunities for Collaboration ConclusionConclusion
What is Java Analysis What is Java Analysis Studio?Studio?
HEP Data Analysis ApplicationHEP Data Analysis Application Easy to use + powerful GUI Easy to use + powerful GUI Support Analysis Modules written in JavaSupport Analysis Modules written in Java Experiment and Data Format IndependentExperiment and Data Format Independent Supports n-tuple or Structured (object) DataSupports n-tuple or Structured (object) Data Data Location Independent (Local or Remote)Data Location Independent (Local or Remote) Extensible (via Plug-ins and Data Interface Modules Extensible (via Plug-ins and Data Interface Modules
(DIMS))(DIMS)) Web + Internet compatibleWeb + Internet compatible Combination of custom and Commercial Combination of custom and Commercial
components (but no runtime license fees)components (but no runtime license fees) Based on Industry StandardsBased on Industry Standards
Java Analysis Studio Java Analysis Studio FeaturesFeatures
Rich, easy to use GUI Rich, easy to use GUI
Java Analysis Studio Java Analysis Studio FeaturesFeatures
Data Format IndependentData Format Independent• Currently SupportCurrently Support
– PAWPAW n-tuples, n-tuples, HippoHippo n-tuples, any n-tuples, any SQLSQL database, database, flat-fileflat-file n-tuples, n-tuples, StdHepStdHep MC events MC events
– Any data format via user supplied Data Interface Any data format via user supplied Data Interface Module (DIM)Module (DIM)
• Experimenting withExperimenting with– Object databases (Object databases (ObjectstoreObjectstore, , ObjectivityObjectivity))– Random access Java based IO (similar to root IO]Random access Java based IO (similar to root IO]
• FutureFuture– XMLXML, , RootRoot, CDF/HDF , CDF/HDF
Java Analysis Studio Java Analysis Studio FeaturesFeatures
Supports Supports bothboth n-tuplesn-tuples and and Structured Structured DataData• n-tuples are fast and allow for simplifications in GUIn-tuples are fast and allow for simplifications in GUI
– Simple Interactive cutsSimple Interactive cuts– Simple plot generationSimple plot generation
but n-tuples ultimately limitingbut n-tuples ultimately limiting• Arbitrarily Structured Data provides ultimate Arbitrarily Structured Data provides ultimate
flexibilityflexibility– Requires slightly more work from end-userRequires slightly more work from end-user– Complete Object Oriented Analysis EnvironmentComplete Object Oriented Analysis Environment– Flexible enough to write (or prototype) Flexible enough to write (or prototype)
reconstruction codereconstruction code
Java Analysis Studio Java Analysis Studio FeaturesFeatures
Histogram/ScatterPlot DisplayHistogram/ScatterPlot Display• Commercial plot package used in earlier Commercial plot package used in earlier
versions replaced with custom plot packageversions replaced with custom plot package– Supports strings, dates, multiple axes, direct Supports strings, dates, multiple axes, direct
user interaction, overlays, fitting, scatter user interaction, overlays, fitting, scatter plots plots
Java Analysis Studio Java Analysis Studio FeaturesFeatures
User analysis modules written in JavaUser analysis modules written in Java• Java Excellent Language for Physics Java Excellent Language for Physics
AnalysisAnalysis– Easy to learnEasy to learn yet very yet very powerfulpowerful, fully , fully OOOO
languagelanguage– FastFast (and getting faster] (and getting faster]– Very fast code, load, test, fix cycleVery fast code, load, test, fix cycle
• JAS provides JAS provides built-in editor, compilerbuilt-in editor, compiler, plus:, plus:– hep.analysis package hep.analysis package
– for creating/filling/manipulating histogramsfor creating/filling/manipulating histograms
– hep.physics packagehep.physics package– simple particle, track manipulation packagesimple particle, track manipulation package
hep.analysis packagehep.analysis package
Histogram delegates binning to:Histogram delegates binning to: • ““partition classespartition classes” [idea stolen from LHC++ at last ” [idea stolen from LHC++ at last
CHEP]CHEP] – Map from X, Y to bin numberMap from X, Y to bin number
– supports real, integer, string, date’s etc.supports real, integer, string, date’s etc.
– Calculation of contents, errors in binCalculation of contents, errors in bin– allows efficiency plots, mean/rms plots etcallows efficiency plots, mean/rms plots etc
– Data storage method Data storage method – immediate binning (c.f. Hbook)immediate binning (c.f. Hbook)– delayed binning, allows rebinning, axis changes via GUIdelayed binning, allows rebinning, axis changes via GUI
• Many standard partitions provided.Many standard partitions provided.• User can provide own partition functionsUser can provide own partition functions
Java Analysis Studio Java Analysis Studio FeaturesFeatures
User Extensible, viaUser Extensible, via• Analysis ModulesAnalysis Modules• Data Interface ModulesData Interface Modules
– Access to experiment specific data, Access to experiment specific data, native language modulesnative language modules
• Plug In’sPlug In’s (c.f. Web Applets] (c.f. Web Applets]– Event Displays, etc.Event Displays, etc.
• FitterFitter, , FunctionsFunctions, , PartitionsPartitions
Java Analysis Studio Java Analysis Studio FeaturesFeatures
Analyze local or remote data Analyze local or remote data
• User interface independent of Data LocationUser interface independent of Data Location• Does not assume fast network (works well at 28.8 bps]Does not assume fast network (works well at 28.8 bps]• Analysis code moves (transparently) to dataAnalysis code moves (transparently) to data
Desktop Client DIM
Local Data
Network Data Server DIM
Remote Data
JAS ImplementationJAS Implementation
““100% Java100% Java” Application” Application• Uses Sun’s Java Foundation Classes (Uses Sun’s Java Foundation Classes (SwingSwing) for GUI) for GUI• [optional] interfaces to legacy data (PAW, hippo, [optional] interfaces to legacy data (PAW, hippo,
StdHep) uses StdHep) uses Java Native InterfaceJava Native Interface [JNI] [JNI]
Leverage Commercial ComponentsLeverage Commercial Components• Java itselfJava itself
– compiler, GUI, debugger, networking, Remote compiler, GUI, debugger, networking, Remote Method InvocationMethod Invocation
• Help system from OracleHelp system from Oracle• Plot component (not currently used]Plot component (not currently used]• Object databases, SQL databasesObject databases, SQL databases• No runtime license feesNo runtime license fees
Java Pro’s and Con’sJava Pro’s and Con’s
Pro’sPro’s• Very ProductiveVery Productive
– No memory leaksNo memory leaks– No subtle c++ problemsNo subtle c++ problems– fun to writefun to write
• Cross Platform EasyCross Platform Easy– Develop under NT,Develop under NT,
– It just works elsewhere!It just works elsewhere!
• Getting faster all the time:Getting faster all the time:– Swing 1.1 Swing 1.1 – Faster Java Virtual MachinesFaster Java Virtual Machines– Hot-SpotHot-Spot
• Great tools availableGreat tools available– IDE’s IDE’s – code optimizerscode optimizers– object modeling toolsobject modeling tools
Con’sCon’s• Sun slow to fix Sun slow to fix bugsbugs
– printingprinting– image handlingimage handling
• No control over No control over memory allocationmemory allocation
Java Pro’s and Con’sJava Pro’s and Con’s
Is Java Fast Enough for HEP Is Java Fast Enough for HEP reconstruction??reconstruction??
1.0 Beta Release now 1.0 Beta Release now availableavailable
Windows (Windows (NTNT, , 9595, , 9898] self extracting ] self extracting executableexecutable
Unix (Unix (SolarisSolaris++LinuxLinux) binary distribution ) binary distribution availableavailable
Should be easy to port to other Unix, Mac etc.Should be easy to port to other Unix, Mac etc. LimitationsLimitations
• Detailed documentation still under developmentDetailed documentation still under development• May still be some changes to user APIMay still be some changes to user API
Download from: Download from: • http://www-sldnt.slac.stanford.edu/jashttp://www-sldnt.slac.stanford.edu/jas
DemoDemo
FutureFuture
More Data Interface ModulesMore Data Interface Modules More types of plots (lego plots etc.)More types of plots (lego plots etc.) Built in debugger, code profilerBuilt in debugger, code profiler More n-tuple handling tools (c.f. More n-tuple handling tools (c.f.
HippoDraw]HippoDraw]
CollaborationCollaboration
Integrate Wired event display as “Plug Integrate Wired event display as “Plug In”In”
Working with FLCD, BabarWorking with FLCD, Babar Looking for collaborators onLooking for collaborators on
• hep.analysishep.analysis• hep.physics packages (c.f. CLHEP)hep.physics packages (c.f. CLHEP)
Looking for other experiments Looking for other experiments interested in trying Java Analysis Studio interested in trying Java Analysis Studio outout
ConclusionsConclusions
Please try it:Please try it:• http://www-sldnt.slac.stanford.edu/jashttp://www-sldnt.slac.stanford.edu/jas
Please give us feedbackPlease give us feedback• [email protected]@sld-mail.slac.stanford.edu
Mailing List:Mailing List:• http://www.slac.stanford.edu/cgi-bin/lwgate/JAS-L/http://www.slac.stanford.edu/cgi-bin/lwgate/JAS-L/
Also general mailing list for Java in Also general mailing list for Java in HEP:HEP:• http://www.slac.stanford.edu/cgi-bin/lwgate/HEP-JAVA/http://www.slac.stanford.edu/cgi-bin/lwgate/HEP-JAVA/