LCIO
LCIO (Linear Collider I/O)
is a persistency framework and event data model for linear collider detector
studies. It is intended to be used in both simulation studies and analysis frameworks.
Its light weight and portability makes it also suitable for use in detector R&D testbeam
applications.
It provides a C++ and a Java implementation with a common interface (API) - a Fortran interface to
the C++ implementation also exists.
Using a common persistency format and event data model allows to easily share results
and compare reconstruction algorithms. LCIO is used by almost all groups involved in
linear collider detector studies and thus has become a de facto standard.
In particular it is used in the iLCSoft framework and
in org.lcsim.
Releases
Release version 2.00
The current version of LCIO is available via SVN checkout (v02-00). Please refer to the users
manual on how to get and build LCIO.
Or browse the complete documetation here.
New features in this release (wrt v01-60) :
v02-00
- added multiple TrackStates to Track
- Track::getTrackState(int location) returns one of AtIP, AtFirstHit, AtLastHit, AtCalorimeter, AtVertex, AtOther
- Track::getTrackState(loat x, float y, float z) returns the trackstate closest to the given location
- deprecated Track::isReferecePointPCA()
- added TrackerHitPlane and TrackerHitZCylinder for extending the TrackerHit interface
- added some useful definitions that are used in the ILD software framework, in particular for encoding and decoding cellIDs
- ...
See versions.readme for more changes and details.
older releases:
v01-60
- moved code to SVN repository -
see http://java.freehep.org/svn/repos/lcio/list/
- new methods in LCReader:
- LCReader::getNumberOfEvents()
- LCReader::getNumberOfRuns()
- LCReader::readRunHeader(int runNumber )
- added spin and color flow information to MCParticle
- added cellID0 and cellID1 to TrackerHit and SimTrackerHit
- added optional storing of the position where the energy deposition (step) occurred in SimCalorimeterHit
- added get/setEnergyError to Cluster
- added tool lcio_event_counter for counting events in slcio / stdhep files
v01-51
New features in this release:
v01-12-02
New features in this release:
- optionally build a ROOT dictionary for LCIO
- see: ./examples/cpp/rootDict/README for details
- added quality bit field for TrackerHit (issue LCIO-63)
- java/lcio: output directory in split command and Poisson distribution in merge command
v01-11
New features in this release:
- made direct (random) access mode in C++ optional
- bug fixes and improvements in C++ (build procedure, gcc4.x)
v01-10
New features in this release:
- new optional attribute CalorimeterHit::getEnergyError()
- optional linkage agains libdcap for dCache (C++)
- added PIDHandler to UTIL for convenient access to ParticleID objects (C++)
- restructured test programs for C++
- made compatible w/ gcc4.3 (C++)
v01-09
New features in this release:
- optionally set the compression level in LCWriter (C++)
- added event weight (LCEvent.getWeight())
- improved handling of stdhep files (conversion to LCIO)
- bug fixes
v01-08
New features in this release:
- C++ runtime (user) extensions and relations
- new Vertex class
- new Java lcio command line tool
- bug fixes
v01-07:
New features in this release:
- optional python binding (J. McCormick) - see README
- C++ utility code for encoding/decoding of cell ids in hit classes
(UTIL::CellIDEncoder and UTIL::CellIDDecoder)
- introduced additional pathLength in SimTrackerHit for silicon tracker digitization
- UTIL::LCSplitWriter to split large files in C++
- fixed files size limit (2GB) in SIO C++ implementation
v01-06: This release allows to optionally store the momentum for SimTrackerHits and to skip any number of events
when reading an LCIO file.
versions.readme for details.
-->
Files are downward compatible with v01-05.
v01-05: This release adds new classes for raw tracker data: TrackerRawData, TrackerData and TrackerPulse.
A number of improvements and bug fixes have been introduced. Some trivial changes might be necessary
in user code as the return type of 4-momentum attributes of MCParticle and ReconstructedParticle have
been changed to double.
Files are downward compatible with v01-04.
v01-04: This release introduces collections that hold subsets of objects in other collections,
transient and persistent. Multiple I/O streams are now also supported in C++.
LCGenericObjects now also in Java.
A small change in subclasses of LCGenericObject is needed (C++ only).
Files are downward compatible with v01-03.
v01-03-01: A few bugs have been fixed in this release. No changes in the file format or API.
.
v01-03: The new release contains the reconstruction data model, support for user extension classes
and relatioships between LCIO objects. Please refer to the manual for a detailed list of changes wrt. v01-00
and an introduction to the data model.
Due to restructuring of the software in some rare cases minor changes to user code might be necessary
eventhough we tried to keep the API compatible with v01-00.
v01-00: Eventhough the file format has changed with respect to v00-08 old files can still be read
with this new version of LCIO.
From now on the file format of LCIO releases will be downward compatible (schema evolution).
The API of MCParticle had to be changed in order to allow multiple parents (as used in the fragmentation
process by most generators) and an additional simulator status word has been addded.
Please switch to the new version soon.
v00-08: first public release. The file format is incompatible with older (test) releases.
Developer and User Documentation
This section holds the latest developer and users documentation. If you are new to LCIO you can find a
general introduction in the LC-Note LC-TOOL-2003-053
(pdf).
The users manual is a good starting point for writing applications based on LCIO.
User Questions and Bug reports
There is a discussions forum on LCIO for developers at the
Linear Collider Forum: http://forum.linearcollider.org.
Users are welcome to post in that forum any questions or comments related to LCIO.
To report a bug in LCIO or request a new feature please go to http://bugs.freehep.org and create a new issue.
Tools and Applications
Tools and Applications that support LCIO:
- Mokka simulation
- Brahms reconstruction - LCIO support under development
- JAS3 provides a plugin to
conveniently browse LCIO files
Documents
A collection of talks and minutes that document the design and development process of LCIO.
These documents are not kept up to date, so please refer to the current user documentation for
technical details.
- Talk given at the CHEP conference 03/25/2003 (pdf)
- Status report for the Miniworkshop at CERN 02/25/2003 (pdf)
- Minutes of Meeting at SLAC (pdf)
- Minutes of Meeting at LLR-Ecole Polytechnique (pdf)
- Considerations on the data model, by Ties Behnke (pdf).
- Simulation output data model: lcio.xml
- Reconstruction output data model (proposal): data.xml
- Design considerations for LCIO (pdf)
Last modified: Fri Sep 23 13:59:49 2011
by F r a n k . G a e d e @ d e s y . d e