Geant4 VMC TMCtls.h fatal error

Dear all,

I appeal to those familiar with ROOT and VMC, as I am having difficulty with the installation. It appears that a header file TMCtls.h is posing an issue, seemingly by its absence.

Output copied below, with fatal error in bold. Further errors are present lower down. Your assistance is greatly appreciated!

Many thanks in advance,
Jim

jh@jh-ThinkPad-T450s:~/apps/vmc/geant4_vmc_build$ source ~/apps/root/root-6.18.00_build/bin/thisroot.sh
jh@jh-ThinkPad-T450s:~/apps/vmc/geant4_vmc_build$ source ~/apps/Geant4/geant4.10.05-install/bin/geant4.sh
jh@jh-ThinkPad-T450s:~/apps/vmc/geant4_vmc_build$ cmake -DCMAKE_INSTALL_PREFIX=/~/apps/vmc/geant4_vmc_install ~/apps/vmc/geant4_vmc
– Found ROOT 6.18/00 in /home/jh/apps/root/root-6.18.00_build
– Found Geant4 CMake configuration in /home/jh/apps/Geant4/geant4.10.05-install/bin/…/lib/Geant4-10.5.0
– Found Geant4 CMake configuration in /home/jh/apps/Geant4/geant4.10.05-install/bin/…/lib/Geant4-10.5.0
– Found ROOT 6.18/00 in /home/jh/apps/root/root-6.18.00_build
– VMC Examples: Garfield package not found.
– ExGarfield example disabled
– Configuring done
– Generating done
– Build files have been written to: /home/jh/apps/vmc/geant4_vmc_build
jh@jh-ThinkPad-T450s:~/apps/vmc/geant4_vmc_build$ make -j2 VERBOSE=1
/opt/cmake-3.15.0-Linux-x86_64/bin/cmake -S/home/jh/apps/vmc/geant4_vmc -B/home/jh/apps/vmc/geant4_vmc_build --check-build-system CMakeFiles/Makefile.cmake 0
/opt/cmake-3.15.0-Linux-x86_64/bin/cmake -E cmake_progress_start /home/jh/apps/vmc/geant4_vmc_build/CMakeFiles /home/jh/apps/vmc/geant4_vmc_build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory ‘/home/jh/apps/vmc/geant4_vmc_build’
make -f g4root/CMakeFiles/g4root.dir/build.make g4root/CMakeFiles/g4root.dir/depend
make -f mtroot/CMakeFiles/mtroot.dir/build.make mtroot/CMakeFiles/mtroot.dir/depend
make[2]: Entering directory ‘/home/jh/apps/vmc/geant4_vmc_build’
cd /home/jh/apps/vmc/geant4_vmc_build && /opt/cmake-3.15.0-Linux-x86_64/bin/cmake -E cmake_depends “Unix Makefiles” /home/jh/apps/vmc/geant4_vmc /home/jh/apps/vmc/geant4_vmc/mtroot /home/jh/apps/vmc/geant4_vmc_build /home/jh/apps/vmc/geant4_vmc_build/mtroot /home/jh/apps/vmc/geant4_vmc_build/mtroot/CMakeFiles/mtroot.dir/DependInfo.cmake --color=
make[2]: Entering directory ‘/home/jh/apps/vmc/geant4_vmc_build’
cd /home/jh/apps/vmc/geant4_vmc_build && /opt/cmake-3.15.0-Linux-x86_64/bin/cmake -E cmake_depends “Unix Makefiles” /home/jh/apps/vmc/geant4_vmc /home/jh/apps/vmc/geant4_vmc/g4root /home/jh/apps/vmc/geant4_vmc_build /home/jh/apps/vmc/geant4_vmc_build/g4root /home/jh/apps/vmc/geant4_vmc_build/g4root/CMakeFiles/g4root.dir/DependInfo.cmake --color=
Dependee “/home/jh/apps/vmc/geant4_vmc_build/mtroot/CMakeFiles/mtroot.dir/DependInfo.cmake” is newer than depender “/home/jh/apps/vmc/geant4_vmc_build/mtroot/CMakeFiles/mtroot.dir/depend.internal”.
Dependee “/home/jh/apps/vmc/geant4_vmc_build/mtroot/CMakeFiles/CMakeDirectoryInformation.cmake” is newer than depender “/home/jh/apps/vmc/geant4_vmc_build/mtroot/CMakeFiles/mtroot.dir/depend.internal”.
Dependee “/home/jh/apps/vmc/geant4_vmc_build/g4root/CMakeFiles/g4root.dir/DependInfo.cmake” is newer than depender “/home/jh/apps/vmc/geant4_vmc_build/g4root/CMakeFiles/g4root.dir/depend.internal”.
Scanning dependencies of target mtroot
Dependee “/home/jh/apps/vmc/geant4_vmc_build/g4root/CMakeFiles/CMakeDirectoryInformation.cmake” is newer than depender “/home/jh/apps/vmc/geant4_vmc_build/g4root/CMakeFiles/g4root.dir/depend.internal”.
Scanning dependencies of target g4root
make[2]: Leaving directory ‘/home/jh/apps/vmc/geant4_vmc_build’
make -f mtroot/CMakeFiles/mtroot.dir/build.make mtroot/CMakeFiles/mtroot.dir/build
make[2]: Entering directory ‘/home/jh/apps/vmc/geant4_vmc_build’
[ 0%] Building CXX object mtroot/CMakeFiles/mtroot.dir/src/TMCRootManager.cxx.o
cd /home/jh/apps/vmc/geant4_vmc_build/mtroot && /usr/bin/c++ -Dmtroot_EXPORTS -I/home/jh/apps/root/root-6.18.00_build/include -I/home/jh/apps/vmc/geant4_vmc/mtroot/include -I/home/jh/apps/vmc/geant4_vmc_build/mtroot -std=c++11 -O2 -g -DNDEBUG -fPIC -o CMakeFiles/mtroot.dir/src/TMCRootManager.cxx.o -c /home/jh/apps/vmc/geant4_vmc/mtroot/src/TMCRootManager.cxx
In file included from /home/jh/apps/vmc/geant4_vmc/mtroot/src/TMCRootManager.cxx:15:0:
/home/jh/apps/vmc/geant4_vmc/mtroot/include/TMCRootManager.h:18:10: fatal error: TMCtls.h: No such file or directory
** #include “TMCtls.h”**
** ^~~~~~~~~~**
compilation terminated.
mtroot/CMakeFiles/mtroot.dir/build.make:62: recipe for target ‘mtroot/CMakeFiles/mtroot.dir/src/TMCRootManager.cxx.o’ failed
make[2]: *** [mtroot/CMakeFiles/mtroot.dir/src/TMCRootManager.cxx.o] Error 1
make[2]: Leaving directory ‘/home/jh/apps/vmc/geant4_vmc_build’
CMakeFiles/Makefile2:212: recipe for target ‘mtroot/CMakeFiles/mtroot.dir/all’ failed
make[1]: *** [mtroot/CMakeFiles/mtroot.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
make[2]: Leaving directory ‘/home/jh/apps/vmc/geant4_vmc_build’
make -f g4root/CMakeFiles/g4root.dir/build.make g4root/CMakeFiles/g4root.dir/build
make[2]: Entering directory ‘/home/jh/apps/vmc/geant4_vmc_build’
[ 0%] Building CXX object g4root/CMakeFiles/g4root.dir/src/TG4RootDetectorConstruction.cxx.o
cd /home/jh/apps/vmc/geant4_vmc_build/g4root && /usr/bin/c++ -DG4INTY_USE_XT -DG4LIB_BUILD_DLL -DG4MULTITHREADED -DG4UI_USE -DG4UI_USE_TCSH -DG4VERBOSE -DG4VIS_USE -DG4VIS_USE_OPENGL -DG4VIS_USE_OPENGLX -DG4VIS_USE_RAYTRACERX -DG4_STORE_TRAJECTORY -Dg4root_EXPORTS -I/home/jh/apps/root/root-6.18.00_build/include -I/home/jh/apps/Geant4/geant4.10.05-install/include/Geant4 -I/home/jh/apps/vmc/geant4_vmc/g4root/include -I/home/jh/apps/vmc/geant4_vmc_build/g4root -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -DG4USE_STD11 -pthread -ftls-model=initial-exec -std=c++11 -std=c++11 -O2 -g -O2 -g -DNDEBUG -fPIC -o CMakeFiles/g4root.dir/src/TG4RootDetectorConstruction.cxx.o -c /home/jh/apps/vmc/geant4_vmc/g4root/src/TG4RootDetectorConstruction.cxx
[ 0%] Building CXX object g4root/CMakeFiles/g4root.dir/src/TG4RootNavMgr.cxx.o
cd /home/jh/apps/vmc/geant4_vmc_build/g4root && /usr/bin/c++ -DG4INTY_USE_XT -DG4LIB_BUILD_DLL -DG4MULTITHREADED -DG4UI_USE -DG4UI_USE_TCSH -DG4VERBOSE -DG4VIS_USE -DG4VIS_USE_OPENGL -DG4VIS_USE_OPENGLX -DG4VIS_USE_RAYTRACERX -DG4_STORE_TRAJECTORY -Dg4root_EXPORTS -I/home/jh/apps/root/root-6.18.00_build/include -I/home/jh/apps/Geant4/geant4.10.05-install/include/Geant4 -I/home/jh/apps/vmc/geant4_vmc/g4root/include -I/home/jh/apps/vmc/geant4_vmc_build/g4root -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -DG4USE_STD11 -pthread -ftls-model=initial-exec -std=c++11 -std=c++11 -O2 -g -O2 -g -DNDEBUG -fPIC -o CMakeFiles/g4root.dir/src/TG4RootNavMgr.cxx.o -c /home/jh/apps/vmc/geant4_vmc/g4root/src/TG4RootNavMgr.cxx
[ 1%] Building CXX object g4root/CMakeFiles/g4root.dir/src/TG4RootNavigator.cxx.o
cd /home/jh/apps/vmc/geant4_vmc_build/g4root && /usr/bin/c++ -DG4INTY_USE_XT -DG4LIB_BUILD_DLL -DG4MULTITHREADED -DG4UI_USE -DG4UI_USE_TCSH -DG4VERBOSE -DG4VIS_USE -DG4VIS_USE_OPENGL -DG4VIS_USE_OPENGLX -DG4VIS_USE_RAYTRACERX -DG4_STORE_TRAJECTORY -Dg4root_EXPORTS -I/home/jh/apps/root/root-6.18.00_build/include -I/home/jh/apps/Geant4/geant4.10.05-install/include/Geant4 -I/home/jh/apps/vmc/geant4_vmc/g4root/include -I/home/jh/apps/vmc/geant4_vmc_build/g4root -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -DG4USE_STD11 -pthread -ftls-model=initial-exec -std=c++11 -std=c++11 -O2 -g -O2 -g -DNDEBUG -fPIC -o CMakeFiles/g4root.dir/src/TG4RootNavigator.cxx.o -c /home/jh/apps/vmc/geant4_vmc/g4root/src/TG4RootNavigator.cxx
[ 1%] Building CXX object g4root/CMakeFiles/g4root.dir/src/TG4RootSolid.cxx.o
cd /home/jh/apps/vmc/geant4_vmc_build/g4root && /usr/bin/c++ -DG4INTY_USE_XT -DG4LIB_BUILD_DLL -DG4MULTITHREADED -DG4UI_USE -DG4UI_USE_TCSH -DG4VERBOSE -DG4VIS_USE -DG4VIS_USE_OPENGL -DG4VIS_USE_OPENGLX -DG4VIS_USE_RAYTRACERX -DG4_STORE_TRAJECTORY -Dg4root_EXPORTS -I/home/jh/apps/root/root-6.18.00_build/include -I/home/jh/apps/Geant4/geant4.10.05-install/include/Geant4 -I/home/jh/apps/vmc/geant4_vmc/g4root/include -I/home/jh/apps/vmc/geant4_vmc_build/g4root -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -DG4USE_STD11 -pthread -ftls-model=initial-exec -std=c++11 -std=c++11 -O2 -g -O2 -g -DNDEBUG -fPIC -o CMakeFiles/g4root.dir/src/TG4RootSolid.cxx.o -c /home/jh/apps/vmc/geant4_vmc/g4root/src/TG4RootSolid.cxx
[ 1%] Linking CXX shared library libg4root.so
cd /home/jh/apps/vmc/geant4_vmc_build/g4root && /opt/cmake-3.15.0-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/g4root.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wno-variadic-macros -Wshadow -pipe -DG4USE_STD11 -pthread -ftls-model=initial-exec -std=c++11 -std=c++11 -O2 -g -O2 -g -DNDEBUG -shared -Wl,-soname,libg4root.so -o libg4root.so CMakeFiles/g4root.dir/src/TG4RootDetectorConstruction.cxx.o CMakeFiles/g4root.dir/src/TG4RootNavMgr.cxx.o CMakeFiles/g4root.dir/src/TG4RootNavigator.cxx.o CMakeFiles/g4root.dir/src/TG4RootSolid.cxx.o -Wl,-rpath,/home/jh/apps/Geant4/geant4.10.05-install/lib:/usr/local/lib: /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4Tree.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4GMocren.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4visHepRep.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4RayTracer.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4VRML.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4OpenGL.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4gl2ps.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4interfaces.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4persistency.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4error_propagation.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4readout.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4physicslists.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4parmodels.so -L/home/jh/apps/root/root-6.18.00_build/lib -lCore -lImt -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lROOTVecOps -lTree -lTreePlayer -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -lMultiProc -lROOTDataFrame -pthread -lm -ldl -rdynamic -lGeom -lVMC -lEG /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4FR.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4vis_management.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4modeling.so /usr/lib/x86_64-linux-gnu/libSM.so /usr/lib/x86_64-linux-gnu/libICE.so /usr/lib/x86_64-linux-gnu/libX11.so /usr/lib/x86_64-linux-gnu/libXext.so /usr/lib/x86_64-linux-gnu/libGLU.so /usr/lib/x86_64-linux-gnu/libGL.so /usr/lib/x86_64-linux-gnu/libXmu.so /usr/local/lib/libxerces-c.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4run.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4event.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4tracking.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4processes.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4analysis.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4expat.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4zlib.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4digits_hits.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4track.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4particles.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4geometry.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4materials.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4graphics_reps.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4intercoms.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4global.so /home/jh/apps/Geant4/geant4.10.05-install/lib/libG4clhep.so
/usr/bin/ld: cannot find -lVMC
collect2: error: ld returned 1 exit status
g4root/CMakeFiles/g4root.dir/build.make:168: recipe for target ‘g4root/libg4root.so’ failed
make[2]: *** [g4root/libg4root.so] Error 1
make[2]: Leaving directory ‘/home/jh/apps/vmc/geant4_vmc_build’
CMakeFiles/Makefile2:104: recipe for target ‘g4root/CMakeFiles/g4root.dir/all’ failed
make[1]: *** [g4root/CMakeFiles/g4root.dir/all] Error 2
make[1]: Leaving directory ‘/home/jh/apps/vmc/geant4_vmc_build’
Makefile:151: recipe for target ‘all’ failed
make: *** [all] Error 2
jh@jh-ThinkPad-T450s:~/apps/vmc/geant4_vmc_build$


_ROOT Version:6.18/00
_Platform:Linux Mint 19.1
_Compiler:cmake


I have installed everything fresh, latest version of Geant4 and ROOT, and cloned the git repository for VMC from http://github.com/vmc-project/geant4_vmc.git

Still the same error. Commenting out the #include “TMCtls.h” in the TMCRootManager.h only leads to further errors. It really seems like something is missing?

Any help appreciated. Thanks!

Hi,

You ar using not the VMC from ROOT but from an external source. It is probably a configuration problem and you should contact the maintainer of that GitHub repository for the support

Best

Lorenzo

Hi Lorenzo,

That does sound like it could be the issue. Unfortunately the .tar file for the latest version (given here: https://root.cern.ch/download-vmc) does not appear to be available.

I will contact the maintainer of the GitHub.

Many thanks,
Jim

SOLVED:

I contacted Ivana at CERN, who provided the following advice, which solved my problem:

"Do you build Geant4 VMC against Root 6.18/00?
Since this Root version, the vmc building is optional. So you need to set the cmake option
-Dvmc=ON
to get the VMC library and includes installed.

We plan to move VMC out of ROOT, and to host it at
https://github.com/vmc-project/vmc - where it will continue to be
maintained and evolve independently of ROOT.

We are now finalizing the stand-alone version of vmc in the vmc-project
github; so for the time being, the “production” tags of both geant3 and
geant4_vmc need to be built with Root built with the vmc option (added
to ROOT cmake options in v 6.18.99):
-Dvmc=ON

When the production version of VMC in vmc-project is tagged, there will
be provided the new versions of both geant3 and geant4_vmc packages with
the updated cmake files to take into account the VMC stand-alone. We will do our best to make this transition smooth for users. "

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.