Don, I have my latest particle identification code in my examples directory at SLAC ~ronan/jas/examples/lcd and off my home page http:://obsidian.lbl.gov/~ronan *** WARNING *** This code uses a non-standard tracking package and orthogonal objects (called XXX) in place of ReconstructedTrack's. In the reconstruction these objects replace standard tracks to allow running on remote servers. Their list, XXXList, is written to the event and read back in doing the track-cluster association. Lines using standard tracking are commented out. The various classes are: XXXParticleID - Ties into Monte Carlo analysis and drives different identification processes, just the TrackClusterAssociator for now. XXXTrackClusterAssociator - Uses space angle difference between clusters and extrapolated track points in deciding to perform helical extrapolation to cluster (Note: You could remove the test and extrapolate each track for each cluster). It presently uses the weighted cluster position (called "Interact" in the code) in making associations. Code for testing associations based on inner radial location of clusters (called "Found" in code) is presently commented out. Associations are made based on dRTheta and dRPhi cuts of 2-5-10 cm depending on EM or HAD, see "Assoc" folder histograms. XXXSimpleAnlParticleID - Has comparisons of reconstruction with Monte Carlo truth. *** WARNING *** This code is NOT well designed and has many quick and dirty implementations. Mike P.S. The non-standard tracking classes are in XTrackReco.tar off my home page.