Version 1.3.1
Add MC Particle Table to LCDPlugin
Version 1.3
Important Note
This release contains several changes that are not backward compatible, in
particular the definition of getStatusCode() in MCParticle has changed, and the
handling of detector geometry, in particular calorimeter cell objects, has been
changed. See the notes below for more details.
The reconstruction code has not been completely tested under this release,
and should be treated with some suspicion. The RadialClusterFinder does not work
in this release (the SimpleClusterFinder should be OK).
Changes
- MCPrint.getStatusCode() changed to return
StdHEP status for generator particles, DOCUMENTATION for particles created by
Gismo.
- L2 and S2 Detector.ini files updated to correspond to
XML detector definitions.
- New resolution files from Bruce Schumm for Fast MC.
- Two new methods have been added to LCDEvent:
- Detector getDetector();
- CalorimeterCell getCalorimeterCell();
- For full simulation events these return the Detector and CalorimeterCell
geometry respectively for which the event was simulated. In the next release
we will support combining multiple calorimeter cells into one, allowing the
CalorimeterCell to be overriden.
- CalorimeterCell is now an interface, instead of new
CalorimeterCell you should get it from the event. Similarly for the Detector,
you should not use Detector.instance() anymore, but instead get the current
detector from the event.
- A new setDetector() method in Processor marks a convenient place to set-up
detector dependent geometry. It is called at least once, before the first call
to process(), and subsequently each time the detector geometry
changes.
Version 1.2
- New MCFast tracking package from Wolfgang:
- Includes now the full error matrix for smearing of the track parameters.
This means, that it only works together with the detector types 'S2' and 'L2'!
Use Detector.setCurrentDetector(new Detector("name")) before calling add(new MCFast()) to select one.
MCFast may now be called with an optional argument for
the use of the beamspot constraint error matrix lookup tables.
- new Interface TrackParameters and concrete implementation in DocaTrackParameters. DocaTrackParameters calculates the 2-dim DOCA from a MCParticle and provides methods to access locations and momenta along the (ideal) helical track.
(Note
that the old class TrackParameters has been renamed to
TrackResolutionTables.)
- SmearTrack provides the static Method smearTrack to
smear TrackParameters according to a given full covariance matrix.
- Note, that this package relies on new methods in
hep.physics.VecOp and statistical functions coded in
hep.lcd.utils.statistics.StatTools.
- The error matrix lookup tables are kept in hep/lcd/detector/s2 and hep/lcd/detector/l2. Note, that these currently contain Detector.ini files which are copies of the ones for the small/large detector specifications, ie these descriptions are incorrect for the S2/L2 design. However,
the fast simulation makes no use of the parameters specified there so far.
- All classes in package hep.lcd.physics have now been removed, since they all have equivalents in the hep.physics package which is part of JAS. Note: This means this release requires JAS 2.2 or greater. This change may effect user code, note in particular
the following changes:
- hep.lcd.physics.IHep3Vector (interface) --
hep.physics.Hep3Vectorhep.
- lcd.physics.IHepLorentzVector (interface) --
hep.physics.HepLorentzVectorhep.
- lcd.physics.Hep3Vector --
hep.physics.BasicHep3Vectorhep.
- lcd.physics.HepLorentzVector --
hep.physics.BasicHepLorentzVector
- All of the jet finding routines have moved to hep.physics.jets.
Version 1.11
- Fix bug in class which convert stdhep events to LCD events (null parent)
Version 1.1
- Add new DIM for reading SIO files.
Version 1.0!
- Changes and additions to hep.lcd.physics package to support Gary Bower's new Diagnostic Generator (currently distributed separately, contact Gary for details)
Version 0.992
Changes
- New jet finding algorithms from Gary Bower
- Small enhancements to support Wired Event Display (distributed separately)
Version 0.991
Changes
Event Structure
- New state added to MCParticle: MAXSTEPS
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