64 lines
1.6 KiB
Plaintext
64 lines
1.6 KiB
Plaintext
$Id$
|
|
|
|
///\file "geometry/transform/.README"
|
|
///\brief Extended example Transform README page
|
|
|
|
/*! \page ExampleTransform Example Transform
|
|
|
|
This extended example demonstrates various ways of definition of the
|
|
3D transformations for placing volumes. It is defined with use of classes
|
|
from the common examples repository.
|
|
|
|
The geometry setup consists of two trapezoid volumes which are placed
|
|
in a world so that their axial symmetry axis is in given theta and phi
|
|
polar angles. The various ways of placement are implemented in the
|
|
TrDetectorConstruction class in the following private functions:
|
|
- PlaceWithDirectMatrix()
|
|
- PlaceWithInverseMatrix()
|
|
- PlaceWithAxialRotations()
|
|
- PlaceWithEulerAngles()
|
|
- PlaceWithReflections()
|
|
which are then called from the TrDetectorConstruction::Construct() function.
|
|
All methods define exactly same geometry except for the placement
|
|
with reflection where trapezoids are placed with their symmetry axis
|
|
in parallel with z-axis in order to make easier to check reflection
|
|
visually.
|
|
|
|
The method of placement can be selected interactively via the command
|
|
(see TrDetectorConstructionMessenger):
|
|
\verbatim
|
|
/transform/setMethod method
|
|
\endverbatim
|
|
|
|
The example is defined with use of classes from the common examples repository,
|
|
that's why it has to be compiled in two steps (the first step has to be done
|
|
only once):
|
|
\verbatim
|
|
% cd $G4INSTALL/examples/extended/new/geometry/transform
|
|
% make setup
|
|
% make
|
|
\endverbatim
|
|
|
|
To run example:
|
|
\verbatim
|
|
% transform
|
|
PreInit> /transform/setMethod WithDirectMatrix
|
|
PreInit> /run/initialize
|
|
Init> /run/beamOn 1
|
|
\endverbatim
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|