Opticks Testing, Geocache Creation, Python setup

Testing Installation with opticks-t

The opticks-t function runs ctests for all the opticks packages:

N[blyth@localhost opticks]$ opticks-
N[blyth@localhost opticks]$ opticks-t
=== qudarap-check-installation : /home/blyth/.opticks/rngcache/RNG rc 0
=== qudarap-check-installation : /home/blyth/.opticks/rngcache/RNG/QCurandState_1000000_0_0.bin rc 0
=== qudarap-check-installation : /home/blyth/.opticks/rngcache/RNG/QCurandState_3000000_0_0.bin rc 0
=== qudarap-check-installation : /home/blyth/.opticks/rngcache/RNG/QCurandState_10000000_0_0.bin rc 0
=== opticks-check-installation : rc 0
=== om-env : normal running
...

  21 /30  Test #21 : U4Test.U4Material_MakePropertyFold_MakeTest   Passed                         2.10
  22 /30  Test #22 : U4Test.U4Material_MakePropertyFold_LoadTest   Passed                         0.16
  23 /30  Test #23 : U4Test.U4TouchableTest                        Passed                         0.15
  24 /30  Test #24 : U4Test.U4SurfaceTest                          Passed                         0.17
  25 /30  Test #25 : U4Test.U4SolidTest                            Passed                         0.16
  26 /30  Test #26 : U4Test.U4SensitiveDetectorTest                Passed                         0.16
  27 /30  Test #27 : U4Test.U4Debug_Test                           Passed                         0.15
  28 /30  Test #28 : U4Test.U4Hit_Debug_Test                       Passed                         0.16
  29 /30  Test #29 : U4Test.G4ThreeVectorTest                      Passed                         0.17
  30 /30  Test #30 : U4Test.U4PhysicsTableTest                     Passed                         0.16

CTestLog :             CSGOptiX :      0/     4 : 2024-02-01 11:03:06.513634 : /home/blyth/junotop/ExternalLibs/opticks/head/build/CSGOptiX/ctest.log
  1  /4   Test #1  : CSGOptiXTest.CSGOptiXVersion                  Passed                         0.05
  2  /4   Test #2  : CSGOptiXTest.CSGOptiXVersionTest              Passed                         0.04
  3  /4   Test #3  : CSGOptiXTest.CSGOptiXRenderTest               Passed                         1.47
  4  /4   Test #4  : CSGOptiXTest.ParamsTest                       Passed                         0.04

CTestLog :                 g4cx :      0/     2 : 2024-02-01 11:03:10.025646 : /home/blyth/junotop/ExternalLibs/opticks/head/build/g4cx/ctest.log
  1  /2   Test #1  : G4CXTest.G4CXRenderTest                       Passed                         1.49
  2  /2   Test #2  : G4CXTest.G4CXOpticks_setGeometry_Test         Passed                         1.86


LOGS:
CTestLog :               okconf :      0/     4 : 2024-02-01 11:02:10.441449 : /home/blyth/junotop/ExternalLibs/opticks/head/build/okconf/ctest.log
CTestLog :               sysrap :      0/   107 : 2024-02-01 11:02:18.513475 : /home/blyth/junotop/ExternalLibs/opticks/head/build/sysrap/ctest.log
CTestLog :                  ana :      0/     1 : 2024-02-01 11:02:18.682476 : /home/blyth/junotop/ExternalLibs/opticks/head/build/ana/ctest.log
CTestLog :             analytic :      0/     1 : 2024-02-01 11:02:18.853477 : /home/blyth/junotop/ExternalLibs/opticks/head/build/analytic/ctest.log
CTestLog :                  bin :      0/     1 : 2024-02-01 11:02:19.015477 : /home/blyth/junotop/ExternalLibs/opticks/head/build/bin/ctest.log
CTestLog :                  CSG :      0/    42 : 2024-02-01 11:02:41.095550 : /home/blyth/junotop/ExternalLibs/opticks/head/build/CSG/ctest.log
CTestLog :              qudarap :      0/    20 : 2024-02-01 11:02:50.496581 : /home/blyth/junotop/ExternalLibs/opticks/head/build/qudarap/ctest.log
CTestLog :                gdxml :      0/     1 : 2024-02-01 11:02:50.722582 : /home/blyth/junotop/ExternalLibs/opticks/head/build/gdxml/ctest.log
CTestLog :                   u4 :      0/    30 : 2024-02-01 11:03:04.775629 : /home/blyth/junotop/ExternalLibs/opticks/head/build/u4/ctest.log
CTestLog :             CSGOptiX :      0/     4 : 2024-02-01 11:03:06.513634 : /home/blyth/junotop/ExternalLibs/opticks/head/build/CSGOptiX/ctest.log
CTestLog :                 g4cx :      0/     2 : 2024-02-01 11:03:10.025646 : /home/blyth/junotop/ExternalLibs/opticks/head/build/g4cx/ctest.log


SLOW: tests taking longer that 15 seconds
...

FAILS:  0   / 213   :  Thu Feb  1 11:03:10 2024

Many tests will fail until you convert and configure a geometry

You will get many opticks-t test fails until you convert a geometry and configure the test executables to use the geometry. An example script to try to convert your detector GDML to an Opticks CSGFoundry geometry is:

~/opticks/g4cx/tests/G4CXOpticks_setGeometry_Test.sh

There is a long comment in this script explaining it and the standard config approach via your ~/.opticks/GEOM/GEOM.sh. You can also see forum threads like the below which explain doing this:

https://groups.io/g/opticks/topic/which_tests_should_i_run/103068306

If you succeed then you should get about 218 opticks-t tests to pass and no fails.

Opticks Analysis and Debugging using Python, IPython, NumPy and Matplotlib : manage with miniconda

Opticks uses the NumPy (NPY) buffer serialization format for geometry and event data, thus analysis and debugging requires python and ipython with numpy and matplotib extensions. Optionally pyvista/VTK is useful for fast 3D plotting of large datasets. For management of these and other python packages it is convenient to use miniconda.

Opticks is in the process of migrating scripts from python2 to python3, currently using Python 3.7.8. Please report problems from unmigrated scripts.

After installing miniconda the additional packages can be installed with commands such as:

conda install ipython
conda install numpy
conda install sympy
conda install matplotlib

In addition to your PATH you can also control which python Opticks uses with the optional OPTICKS_PYTHON envvar, for example:

export OPTICKS_PYTHON=python3