I’m working on a Mandriva 2006 64 bits Linux box. GCC version is 4.0.1 and in order to build ROOT I had to modify the Makefile.linuxx8664gcc file in order to use gfortan instead of g77.
I was working on 5.14/00b version and everything was fine. When I moved to 5.15/02 version and tried to run the tutorials/geom/geomAtlas.C script, I had the following error message:
accessing atlas.root file from root.cern.ch/files
Info: TGeoManager::Import : Reading geometry from file: root.cern.ch/files/atlas.root
Error in TGeoManager::Import: Cannot open file
Error: illegal pointer to class object gGeoManager 0x0 1170 geomAtlas.C:16:
*** Interpreter error recovered ***
It looks like TGeoManager::Import failed. I have the same problem with the geomAlice.C script
I built 5.14/00b exactly the same way than 5.15/02 and had no trouble with 5.14/00b
If you installed from source yourself, did you run “make map” ?
It looks like the plugin manager cannot find teh class TGeoManager.
Also try
gSystem->Load(“libGeom”);
before calling TGeoManager.
I tried the 2 methods you suugested me and both failed.
make map. I rebuilt from scratch (untaring and everything) and issued the following commands after the configure and its arguments.
gmake
gmake map
gmake install
before I used to do (and it worked on version 5.14)
gmake
gmake cintdlls
gmake install
By the way, what is the difference between “gmake map” and “gmake cintdlls”?
loading “by hand” the library before executing the script. I received the same error message I told in the previous post when trying to execute the script.
Some elements are quite strange. If, before loading the library using gSystem->Load(“libGeom”), I type gGeo and use “tab” for autocompletion, I receive only one suggestion “gGeometry”. After loading the library, I have the 3 suggestions “gGeometry” “gGeoIdentity” and “gGeoManager”. So it seems like the library is indeed correctly loaded.
However the pointer gGeoManager is null:
cout << gGeoManager << endl;
returns 0
(other pointers on global variables, for instance gSystem, return a correct answer)
Another test:
starting root
type gGeo + “tab” returns gGeometry (fine, the library is not loaded),
.x geomAlice.C failed with the message I described in my previous post
type gGeo + “tab” returns gGeometry, gGeoManager and gGeoIdentity
So it looks like the plugin manager worked (since nowhere in the script there is an explicit call to load the libGeom), it is just that the pointer gGeoManager is null.
LAST MINUTE: I may have found the bug looking at the Import method in TGeoManager.cxx. The instruction:
failed (f returns a null pointer) and as a side effect gGeoManager remains to 0. I switched to the version 5.14 and the same instructions TFile *f … worked. This is probably due to the new I/O directory sheme as mentionned in the development note?
Yes, I just typed this one line session. And “f” is set to 0.
So this is not related to “TGeoManager”. My system is described in the first post:
Mandriva 2006 64 bits, gcc 4.01, Xeon 560.
I do have network connection, that is why the single session line worked on root 5.14 (f is not 0). I built root using the same script for 5.14 and 5.15 (except the directory for finale installation changed) and on the same machine. Since it may be a side effect due to all modules I build, I join the script in the attachment.
I tested this statement on several systems with gcc4.01
on 32 or 64 bits machines. I do not see any problem when accessing
this file. I suspect a network authorization problem on your system.
Could you import the file on your machine and simply do
TFile::Open("atlast.root");
If it succeeds, it will be an authorization problem.
I would like to know if other people see the problem too,
or to be more positive, if you succeed with a simple session like
I tried using different methods to download on my machine the file root.cern.ch/files/atlas.root but I failed each time.
For instance using konqueror, I have the messge “Problème interne du serveur root.cern.ch/files/atlas.root”. I guessed Apache would not let me download the file.
Is there another way to get the file so that I can try your test?
Thanks