Java Reconstruction and Analysis for a Linear Collider Detector
Tony Johnson
Fermilab/Cornell Tutorial
January 2000

Contents
The Java hep.lcd framework for LC physics studies
Overview
Why Java?
Fast MC
Tracking Reconstruction
Cluster Finding
Java Analysis Studio
Distributed Physics Analysis
Java Performance
Conclusions  - How to try it out!

Slide 3

What is hep.lcd?
A Java Framework for
Running Reconstruction and/or FastMC
Analysis of LCD data from Stdhep, Gismo, FastMC
A Tool for
Rapid Development of Reconstruction Algorithms
A Suite of Physics Analysis Tools
Histograming, Event Display, Jet Finding, etc.
Emphasis on Flexibility and Extensibility
Typically provide multiple reconstruction algorithms
Support for Large + Small + ... Detectors
Can be used standalone or inside Java Analysis Studio

Why Java?
Modern Object-Oriented language
Easy to learn and use
No need for backwards compatibility with C etc.
No pointers, memory leaks
Syntax very similar to C++, but without many of the more obscure, less useful features
Very Suitable for Rapid Prototyping
Powerful built-in utility libraries
Fast compiler, no link step, dynamic loading
No problems with porting code to new platforms
Can use Java Analysis Studio for interactive analysis
Bottom Line
If you know C++ Java will be familiar and a refreshing change
If you don’t yet know C++ Java is an excellent stepping stone
Either way you’ll have fun doing physics, not debugging crashes!

Java package hep.lcd
Reconstruction Processors
Track finder +  track fitter
Several clustering algorithms
Parameterized MC Processors
Can read generator output (StdHEP) or Gismo output
Track and Cluster smearing
Analysis Utilities
Event Shape + Thrust utilities
Jet finders [Jade, Durham]
Histograming
Event Display
Simple 2D Event display currently

Track Finding/Fitting
Track Reconstruction
Track Finding uses M.Ronan’s (TPC) pattern finding
Tuned for Large + Small detector
Track Fitters:
SLD Weight Matrix Fitter
Can do Single Detector or Combined fit (e.g. VTX+TPC)
Kalman Filter (using FNAL MCFast fitter) coming soon(ish)
Fortran not Java, will need native library for each platform
Hit Smearing/Efficiency (since Gismo gives “perfect” hits)
Random Background overlay
What’s still needed:
More Track Finding Algorithms (Cheater, Projective Geometry)
End Cap tracking, Hit Merging, Realistic background overlays

Cluster Finding
Three Clustering Algorithms Currently Implemented
Cluster Cheater (uses MC truth to “cheat”)
Simple Cluster Builder (Touching Cells)
Radial Cluster Builder
All algorithms tend to produce many very low energy clusters - important to set sensible thresholds
Still Needed - Cluster Refinement Stage
Combine HAD + EM clusters
Endcap + Barrel overlap region
In Progress - Track Cluster Association
Initial Implementation Done by Mike Ronan
Output Format defined by Gary Bower
Need to Extend Definition of Clusters
Directionality, Entry point to calorimeter

Fast MC
Simple parameterized MC
Allows analysis directly from generator output without using full Gismo simulation
Produces same event format as Gismo
same analysis can be run with FastMC or Gismo. Can read StdHEP (generator files) or Gismo output
Produces tracks from MC particles based on parameters provided by Bruce Schumm
Produces Tracks + Error Matrices
Output compatible with Output from Full Recon
No Calorimeter Simulation at Present

Physics Utilities
Physics Utilities
4-vector, 3-vector classes
Event shape/Thrust finder
Jet Finder
Jade and Durham algorithms implemented
Extensible to allow implementation of other algorithms
Histograming (from Java Analysis Studio)
Event Display
Suitable for debugging reconstruction and analysis
Plan to use Wired for full 3D support in future
Particle Hierarchy Display
Contrib Area
Analysis Utilities and sample analyses provided by users

Event Display

Event Display

Event Display

Event Display

Documentation and Tutorial
http://www-sldnt.slac.stanford.edu/jas/documentation/lcd/

Access to Code - CVS
Code recently moved to CVS for universal access
Browse CVS repository on Web
Connect with you favorite CVS client
protocol: pserver
server: sldl1.slac.stanford.edu
cvsroot: /nfs/slac/g/jas/lcdroot
userid: anoncvs
password: jascvs
module: lcd
Platform independent make (jmk) now used.
Most development currently done on NT
Now Unix development should be easy too

Java Analysis Studio
Set of experiment independent analysis tools for event oriented (High Energy Physics) data
Data Access classes provide access to many common HEP data formats
Histogram/Scatterplot Accumulation + Manipulation Classes
Plot Display classes
Lightweight framework for users to create physics analysis applications in Java.
Tools work alone, in combination, or within
Java Analysis Studio GUI which gives:
Integrated editor and compiler
Efficient access to local and remote data
Extensibility via Plug-ins, Fitters, Functions etc

GUI makes getting started easy
“Wizards” guide beginners

Built in Editor and Compiler
for writing analysis code

Histogram and Scatterplot display
Interactive Fitting and Rebinning

GUI can be extended to add
experiment specific features

Distributed Data Analysis with JAS
With many different simulated detectors and many physics processes, total MC data sample is large
JAS has built in support for  efficient distributed physics analysis

Data Repository at Penn
LCD has set up central data repository at University of Pennsylvania (Don Benton), accessible from anywhere

Is Java fast Enough for HEP offline?
Current (266Mhz PII, JDK 1.1.7)
Clustering .6 secs/event
13.5 Million Calorimeter Cells
Fast MC 6 ms/event
Track Finding + Fitting ~5secs/event
Very competitive with C++/Root implementation (where they exist)
Will get even better!!!
JDK 1.2, HotSpot - Run-time optimization
In real life may be faster than C++
Better, cheaper performance analysis tools
Java encourages lightweight, module interfaces which promote efficient coding styles
People time is what really matters

Reconstruction Speed

Example of Using Track Recon.

Full Scale Analysis Possible (M. Ronan)

To Do List
Finish integration of MCFast Kalman filter
Support for merging signal/backgrounds
Additional Track Finders (projective, “cheater”)
Improved Cluster Description
Track/Cluster Association
Cluster Refinement
Vertex Finding code (based on ZVTop?)
WIRED Event Display
Support for SIO format reading/writing
Switch to XML based geometry description
Small Angle Tracking
Reference Analyses

Try it out!
Come to the tutorial this afternoon
Works on Windows (95/98/NT] or Unix (Linux, Solaris,…) or Other
Online tutorial available
Suitable for complete beginners:
no knowledge of Java or JAS assumed
starts with instructions on downloading and installing
Shows simple sample analysis jobs
http://www-sldnt.slac.stanford.edu/jas/documentation/lcd/
JAS Home Page
http://www-sldnt.slac.stanford.edu/jas

New Features in JAS 2.0
Many bug fixes - Printing Works - Save Histograms as GIF’s
Easier to install LCD extensions
no need to edit jas.ini
Support for logging output to a file
Supports 2D Binned Histograms (in addition to 1D Histograms and Scatter Plots)
Standalone jobs can save histograms (for later viewing in JAS)
Local jobs can append multiple datasets
Built-in LCD documentation/help
Gotcha’s for LCD users
Must use JAS 20 version of lcd.jar (in lcd download area)
Cannot connect to old servers (SLDNT0 OK)

JAS 2.0 – Now available from JAS website