Version 0.99
Changes
Event Structure
- Extra methods added to TrackerHit to return the the system # and flags for
Endcap hits
Tracking
- Removed inconsistency in 2D impact parameter signing
convention between track finder and helical swimmer. Because track finder uses
helical swimmer for calculating expected hit positions, this inconsistency
caused some inefficiency in track finding (about 5%).
- A lot of efforts were made to optimise track finder
parameters and algorithms for increasing track finding efficiency. This
problem of inefficiency is more severe for small detector, where there are too
few hits available for reconstruction of the tracks. Test with ttbar events
indicates that after all this efforts track finder finds about 99.5% of all
tracks satisfying finder cuts (minimum curvature radius, number of hits on
track and so on). For small detector this number is about 99% for the same
events.
- The best performance of the track finding-fitting is achived with usage
not only external tracker but also vertex detector for track finding (combined
finder). This method is used in recommended track reconstruction class
TrackReco. However, if for any reason somebody wants to use only TPC (or
external Silicon Microstrip Tracker in the case of small detector) as a sole
tracking device for track finding, he may use TrackRecoTPC class. This option
was not available in previous release. This class intentionally left with it's
original algorithms, (as inherited from BaBar track finder). Result is that it
is slower and less efficient (especially for small detector). We can modify it
later to use the same algorithms as in combined finder. Of course,
TrackRecoTPC includes vertex detector information for track fitting.
Jet Finder
- A new method setAssumedMassFor3Vectors() in AbstractJetFinder gives the
user control over the default mass used for 3-vectors passed to the jet
finder.
New Contributed Classes (from David Wagner)
- Two new classes for dealing with "Gaussian Boxes" in package
hep.lcd.contrib.util.function
- GaussianBoxFunction fits to a box function that has been convoluted with
a Gaussian resolution function (i.e. it can be used to fit to the energy of
particles in a calorimeter, where the particles come from a two-body decay
of a particle with a unique energy in the lab frame, such as the spectrum of
electron energies from selectron decays).
- GaussianBoxRandom is a function that I used to test the above function;
it will generate random numbers sampled from a box distribution that has
been convoluted with a Gaussian resolution function
Version 0.98
Changes
Cluster Finding
- The JRBClusterFinder has been renamed RadialClusterBuilder, and a number
of bugs have been fixed.
Tracking
- Fixed bug in reconstruction, which affected
reconstruction efficiency (hits in TPC were marked as used at the first attemt
to build track, even if track building was not successfull. This quickly
depleted pool of hits for track building and lead to low efficiency).
- Track finding and fitting is completely independent
now. There is no need to worry about track finding efficiency if there is
anything wrong in fitting code. If tracks are reconstructed but don't pass fit
they still will be recorded in the track list. Method boolean fitSuccess() of
Track interface can be used to see if fit was succesfull.
- MC particle assigning to the reconstructed tracks is
implemented.
- Assigning hits in vertex detector to track is made
differently now - it is based on building vectors composed from vxd hits and
comparison of direction of this vectors with direction of track in this area.
Because of high hits density in VXD and large spacial error in the track
extrapolation from TPC into VXD, this metod is much more efficient than just
assigning hits based on their distance from extrapolated track
- Few bugs in track fitting related to calculation of
weight matrix for the fit were removed.It lead to greatly improved fitting
efficiency - about 95% of all good tracks have good fit now.
- After fixing bug in reconstruction (see 1) speed of
recon decreased dramatically. Some changes were made to recover from this -
more efficient selection of candidate points and so on. It gave some gain of
factor of 3-5 in speed, however it is still slower than it was before (with
bug in place). Events with large background hit density still may take pretty
long time to reconstruct, and this may become serious problem with realistic
background added to simulation. This problem should have farther attention.
- TrkMCTruth class is added. It builds the table of MC
particle which are seen in tracking system and estimates their
reconstructability from the known criteria of tracking reconstruction. This
estimation does not take into account such effects as hits scattering away
from their expected positions - if track has hits in one of the triplets of
the layers used in pattern recognition and if it has curvature passing
curvature cut and has enough hits to pass required number of hits cut it is
considered reconstructable. This class was useful for debugging track
reconstruction.
- Some cleanup in the code organisation took place, which is transparent for
users and have only effect for code developing.
Event Display
- Bug which prevented event display from working fixed
New Contributed Classes (from David Wagner)
- hep.lcd.contrib.physics.TransMassReco (two body mass
reconstruction)
- hep.lcd.contrib.util.EventScan (print out interesting quantities from the
event)
Note: A few routines now contain conditional compilation
directives to allow the hep.lcd code to be targeted to either JAS 1.0 or JAS2.0.
These conditional compilation directives are microsoft specific (boo hiss) so
they will make it harder to compile the code with non-microsoft compilers. These
directives will be removed as soon as the transition to JAS 2.0 is complete.
Version 0.97
Changes
Event Structure
- Track now has new methods for fitted tracks, and for getting raw
track parameters and error matrix elements
Track Reconstruction
- Track fitting has now been implemented by Nic Sinev,
and is turned on by default.
- Some changes to default track finding parameters from small detector to
improve efficiency
FastMc
- FastMC now fills diagonal elements into error matrix
- FastMC now parameterizes tracks in terms of tanLambda rather than
lambda
JrbClustering
- Several bugs fixed, plus improved documentation (and more coming
soon)
Fixed Bugs
- Bug in FastMC track origin smearing fixed (thanks to Bruce Schumm for finding
this bug).
- Bug in EventShape routine fixed by Gary (details??)
- Helical swimmer fixed to use B field properly
- Added Constructionors to AddReconTrks for case where
no Vertex detector is available
- Thresholds for SimpleClusterBuilder changed to double
from int (thanks to David Wagner for finding this bug).
- Hit Smearing package now correctly sets parameters for small and large
detector.
Version 0.96
Non-Backwards compatible changes:
- in class
hep.lcd.event.Track getMomentumX -> getPX etc. for compatibility
with MCParticle
- getMomentumX etc. is still available for backwards compatibility for the
time being
- in class hep.lcd.event.Cluster the
return type of getClusterStartDepth is now double (was int)
Other Changes
- hep.lcd.util.driver.Driver now implements Processor
to allow Drivers to drive other Drivers
- Track now implements 3 vector, to allow it to be
passed to the JetFinder
- Improvements to tracking from Nic Sinev
- Tracking now takes
geometry from detector geometry
- Tracking now works for
small & large detectors
- Workaround for VTX layer bug
- New hit smearing package hep.lcd.mc.smear,
written by Nic Sinev
- JRB cluster builder
now compiles (& works?)
- More fixes to tracking from Mike Ronan
- Possible to get magnetic field, coil geometry and
materials from detector info
- New hep.lcd.contrib package for example analysis
software. First items from Mike Ronan include:
- hep.lcd.contrib.recon.tracking.analysis - Sample
tracking analysis
- hep.lcd.contrib.mc.analysis - Some useful routines
for classifing MC events
Changes Promised but not actually ready in time
- Cluster now implements 3 vector, to allow it to be
passed to the JetFinder
- New Function for concatenating lcd files
Fixed
Bugs
- Bug in boost routine fixed
- Cluster theta was being calculated incorrectly
Known Bugs
- Masses returned by MCParticle.getMass are in MeV not
GeV
- Smearing/Calorimetry not correctly changing geometry!
- BinaryReader isnt working.
- Event Display doesn't work properly under Windows 95/98