...
Core Framework
a Java main program framework has to be set up that
- builds under Java 1.4 (Maven, ant,....)
...
optionally some wrapping C++ code should be provided that allows to use LCGO in a C++ programm w/o having to rely on references to Java libraries, e.g. for the properties interface
- need to understand garbage collection for java and C++ objects allocated on the stack and on the heap and passing object between java and c++
- java objects are objects inheriting from java::lang::Object
- C++ are all other objects
- Possibly interesting article http://gcc.gnu.org/ml/java/2004-03/msg00159.html
Material Database
a material data base is needed that
...
LCGO drivers need to provide an implementation of an interface to query cellIDs, positions and neighbors:
- cellId <-> position
- cellid range (noise simulation)
- cell sizes
- neighbors
Geometry Elements
we need a full set of geometry classes that allow
...
- averaged material (see material, dEdx)
- simple shapes only:
- boxes - planes
?
- tubes - cylinders
?
- boxes - planes
this tracking geometry should allow to compute:
...
it is probably desirable to have a well defined system of units a la Geant4, so that every quantity comes in the properly defined unit. So that one can write code, such as:
cout << " length of TPC \[cm\]: " << cout << " length of TPC [cm]: " << lcgo->getTPCParameters()->getLength() / cm << endl ; / cm << endl ; Wiki Markup
Vectors and Matrices
need to define classes for vectors and matrices (symmetric) that are used throughout LCGO (and LCIO !?)
- 3d vectors
- rotations 3d
- translations (3d vectors)
- 4 vectors (in LCGO ?)
- matrix
- symmatrix
- ...