FullSimLight does not build against latest Geant4 master branch
I have been using FullSimLight to profile/benchmark Geant4 and noticed that it does not compile against Geant4 master branch anymore. FWIW, below is the error I get. It doesn't look like it would be a big change to port (get Ntuple by id vs string), but I thought I'd let you know in any case.
[ 63%] Linking CXX executable ../bin/fillHistogramExample
[ 63%] Building CXX object GeoModelG4/GeoModel2G4/CMakeFiles/GeoModel2G4.dir/src/LArWheelSolidTests.cxx.o
[ 63%] Built target fillHistogramExample
/srv/geant4/src/GeoModel/FullSimLight/MagneticField/MagFieldServices/src/AtlasFieldSvc.cxx: In member function ‘bool MagField::AtlasFieldSvc::readMapRoot(std::string)’:
/srv/geant4/src/GeoModel/FullSimLight/MagneticField/MagFieldServices/src/AtlasFieldSvc.cxx:1270:45: error: invalid conversion from ‘const char*’ to ‘G4int’ {aka ‘int’} [-fpermissive]
1270 | int ntupleId =analysisReader->GetNtuple("BFieldMap");
| ^~~~~~~~~~~
| |
| const char*
In file included from /srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/G4RootAnalysisReader.hh:84,
from /srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/g4root_defs.hh:35,
from /srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/g4root.hh:32,
from /srv/geant4/src/GeoModel/FullSimLight/MagneticField/MagFieldServices/src/AtlasFieldSvc.cxx:39:
/srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/G4RootAnalysisReader.icc:38:61: note: initializing argument 1 of ‘tools::rroot::ntuple* G4RootAnalysisReader::GetNtuple(G4int) const’
38 | tools::rroot::ntuple* G4RootAnalysisReader::GetNtuple(G4int ntupleId) const
| ~~~~~~^~~~~~~~
/srv/geant4/src/GeoModel/FullSimLight/MagneticField/MagFieldServices/src/AtlasFieldSvc.cxx:1270:44: error: invalid conversion from ‘tools::rroot::ntuple*’ to ‘int’ [-fpermissive]
1270 | int ntupleId =analysisReader->GetNtuple("BFieldMap");
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
| |
| tools::rroot::ntuple*
/srv/geant4/src/GeoModel/FullSimLight/MagneticField/MagFieldServices/src/AtlasFieldSvc.cxx:1311:46: error: invalid conversion from ‘const char*’ to ‘G4int’ {aka ‘int’} [-fpermissive]
1311 | int ntupleId2 =analysisReader->GetNtuple("BFieldMapSize");
| ^~~~~~~~~~~~~~~
| |
| const char*
In file included from /srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/G4RootAnalysisReader.hh:84,
from /srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/g4root_defs.hh:35,
from /srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/g4root.hh:32,
from /srv/geant4/src/GeoModel/FullSimLight/MagneticField/MagFieldServices/src/AtlasFieldSvc.cxx:39:
/srv/geant4/install/gcc-11.2.0/master-MT/include/Geant4/G4RootAnalysisReader.icc:38:61: note: initializing argument 1 of ‘tools::rroot::ntuple* G4RootAnalysisReader::GetNtuple(G4int) const’
38 | tools::rroot::ntuple* G4RootAnalysisReader::GetNtuple(G4int ntupleId) const
| ~~~~~~^~~~~~~~
/srv/geant4/src/GeoModel/FullSimLight/MagneticField/MagFieldServices/src/AtlasFieldSvc.cxx:1311:45: error: invalid conversion from ‘tools::rroot::ntuple*’ to ‘int’ [-fpermissive]
1311 | int ntupleId2 =analysisReader->GetNtuple("BFieldMapSize");
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
| |
| tools::rroot::ntuple*
gmake[2]: *** [FullSimLight/MagneticField/MagFieldServices/CMakeFiles/MagFieldServices.dir/build.make:76: FullSimLight/MagneticField/MagFieldServices/CMakeFiles/MagFieldServices.dir/src/AtlasFieldSvc.cxx.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1548: FullSimLight/MagneticField/MagFieldServices/CMakeFiles/MagFieldServices.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 63%] Linking CXX shared library libGeoModel2G4.so
[ 63%] Built target GeoModel2G4
gmake: *** [Makefile:166: all] Error 2