h2. Requesting Bug Fixes and Improvements
The [ILC Jira|http://jira.slac.stanford.edu/] tracks bugs, feature requests, and possible improvements to existing software packages. Everyone is encouraged to add an item into the Jira when a bug is found in ILC software.
These Jira projects are specific to ILC simulations.
* [org.lcsim|http://jira.slac.stanford.edu/browse/LCSIM] - Java reconstruction and analysis package
* [Geometry Converter|http://jira.slac.stanford.edu/browse/GC] - Java geometry conversion for org.lcsim
* [LCIO|http://jira.slac.stanford.edu/browse/LCIO] - Linear Collider object model and persistency framework in C++, Java, and FORTRAN
* [SLIC|http://jira.slac.stanford.edu/browse/SLIC] - C++ simulator package in Geant4 framework
* [LCDD|http://jira.slac.stanford.edu/browse/LCDD] - C++ geometry description in Geant4 framework using [GDML|http://gdml.web.cern.ch/GDML/gdml.html]
Several other software packages are of more general interest.
* [JAS3|http://bugs.freehep.org/browse/JAS] - Java-based HEP integrated development environment
* [AIDA|http://bugs.freehep.org/browse/AIDA] - plotting interfaces
* [JAIDA|http://bugs.freehep.org/browse/JAIDA] - Java plotting implementation
* [WIRED|http://bugs.freehep.org/browse/WIRED] - event display using [HepRep|http://www.slac.stanford.edu/~perl/heprep/index.html]
h2. Becoming a Developer
Before making any changes to ILC software, you need an account at the SLAC CVS.
{tip:title=CVS Account}
Email [mailto:tony_johnson@slac.stanford.edu] to request a SLAC CVS account.
{tip}
Follow the [CVS Instructions|cvs] to checkout the software projects of interest.
The reconstruction software is based on the [Java language|http://java.sun.org], which you'll need to learn if you want to contribute. [Sun's Java Tutorial Book|http://java.sun.com/docs/books/tutorial/] is an excellent place to start if you are new to this language.
{tip:title=Python, Too}
Scripts can also be written in the [Python|http://www.python.org] language using the [Jython|http://www.jython.org] interpretter.
{tip}
Read over the [development tools section|Development tools] to learn about the tools we use to build and development the software.
Work through the [Getting Started Tutorial|lcsim Developer Tutorial] to learn about the basic concepts.
h2. Lists of Project Ideas
A [list of specific issues|Issues] was compiled at the [ALCPG Simulation and Reconstruction Workshop].
[Jeremy McCormick|Jeremy McCormick] maintains a [list of project ideas|TODO List]. (Real bugs and feature requests go into the Jira.)
h2. Some Example Projects
* Geometry System in Reconstruction
** allow geometries to come from multiple input files
** improve interoperability
*** access Mokka or JUPITER geometry data
*** ID decoding for detectors not run with SLIC
* Reconstruction
** process LCIO files using both org.lcsim and MARLIN
* Simulation Software
** support for putting GDML data in multiple input files
** additional calorimeter readout types to the LCDD package or improve on existing readouts
** CAD interface
*** use case - LAPP ECAL for SiD
* Simulation Validation
** investigate and characterize effects of range cuts and physics limits on Geant4 simulation
** comparison of different physics lists (preferarably with real data, too)
*** single particle response of h0, in particular
* Event Generation
** python wrapper to the different generators used at ILC, e.g. Pythia, Isajet, etc.
** SUSY StdHep files for benchmarks
* Testbeam
** use JAS3 and org.lcsim to create a data analysis application for the Calorimeter testbeam
** do some analysis on real ECAL data
* AIDA (+ Plotting)
** binary data format in order to store Ntuples
** 3D plotting
h2. Links
[A University Program of Accelerator and Detector Research for the International Linear Collider (vol. III)|http://www.hep.uiuc.edu/LCRD/LCRD_UCLC_proposal_FY05/]