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