GeomConverter

The GeomConverter is designed to read Compact Geometry files and to be able to convert them into other formats, such as LCDD, GODL, HepRep etc. It is also designed to read CompactGeometry files and be able to convert them into objects used by the org.lcsim reconstruction and analysis package. GeomConverter has been designed to make it possible to add new output formats, and new types of detectors reasonably easily.

Major Packages

Many changes have been made to the GeomConverter, but since there was no design document the original design has become confused. This section attempts to add some explanation of the major packages and their relation ships so that we can clean up the code and make maintainance easier.

org.lcsim.geometry.converter

This package contains the core of the GeomConverter. It provides the basic parsing of compact geometry files. It is designed to be extended by packages which perform more specialized functions, such as converting to org.lcsim API, or converting to different file formats.

Classes in this package should not depend on any other geom converter packages.

Although this package can read compact geometry files it does not do anything useful with them. To convert compact files to some useful format you must extend GeometryReader and provide additional ElementFactories that do something more useful.

org.lcsim.geometry

This is the geometry API for org.lcsim. This package should contain only the interfaces (for the most part not classes) used by the org.lcsim program to access geometry information.

org.lcsim.geometry.[field,segmentation,subdetector]

These packages contain classes created by the org.lcsim.geometry ElementFactories for satisfying the org.lcsim.geometry API. In general the classes in these packages should not be public. Users should access the information only via the API in org.lcsim.geometry

org.lcsim.geometry.compact.converter

Main routines for converting files into other file formats. This package contains both a line mode main routine, and a GUI main routine.

Problems with current design

  • Many of the guides listed above have been violated by recent changes
  • There should be some base classes which deal with the majority of parsing elements, which each of the function specific ElementFactorys can extend.
  • No labels