[ROOT] GEANT4 + ROOT

From: Jacek M. Holeczek (holeczek@us.edu.pl)
Date: Thu Nov 18 2004 - 17:48:27 MET


Hi,
I have finally been able to get everything running ... (again :-)

Please find attached the file :
	geant4.6.2.p02.ROOT.fix.tar.gz
which is prepared for the "current" G4 release (and Linux-g++), but it
should be very easy to "back-port" it to any G4 release one uses (no
ROOT specific modifications at all, no dependency on ROOT at all).
The best would be to make a fresh G4 installation, copy the changed files
from the attached archive and make a new "Configure -install" in G4.
All the source code will then be recompiled with "-pthread" option on.
(Note that ... these fixes are prepared for Linux-g++, a similar fix is
needed for the MacOS specific "gmk" file ... you'll need to do it
yourself : just in the end of this file add "-pthread" options to all
relevant compiler flags, as it is done in "Linux-g++.gmk". Most probably,
no other systems are affected.)

After the G4 is recompiled with the provided fixes, try the novice example
N03 (geant4.6.2.p02/examples/novice/N03). Just "cd" to its subdirectory,
do "make" and start the executable "$G4WORKDIR/bin/$G4SYSTEM/exampleN03".
If it starts and works, everything is fine ...
If it starts, opens two windows (one G4UIXm, the other one OGLIX) and
suddenly both windows get frozen/grey and you cannot work any more ...
then you have a problem with your GL libraries.
See the recent roottalk mail :
	http://root.cern.ch/root/roottalk/roottalk04/3152.html
Follow the advice present there and install the current Mesa GL 6.2.
Then, destroy the previously created G4 objects and libraries and make a
new "Configure -install" in G4 (giving it the new GL "home").
This should cure the problem with novice example N03 ... (and many more :-)

Finally ... up to now ... one was advised NOT to use threads in ROOT
together with G4. From now on .... it seems we NEED them, at least on two
systems, i.e. Linux and MacOS.
As a consequence, one should carefully inspect ones makefiles and/or
scripts that make/create ones libraries/applications.
I'm sure there are lines in form :
	ROOTLIBS := $(filter-out -lThread,$(ROOTLIBS))
	ROOTLIBS := $(filter-out -lpthread,$(ROOTLIBS))
These lines should now be REMOVED (or at least commented out)!

(Note also ... instead of compiling G4 with "-pthread", you could also try
to compile ROOT WITHOUT thread support on these two systems. This solution
has not been tried by me, though. I believe there are good reasons to
follow the ROOT's team decision to use threads on Linux and MacOS.)

Last, but not least ... I should explicitly thank Rene, Fons, Guy
Barrand, Ivana and Peter Gumplinger for their help in getting all this
stuff running again (I hope I didn't forget anybody's name in this list).

Hope it helps,
Best regards,
Jacek.




This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET