G4AnalysisManager Issues

I made the mistake of trying to migrate both G4 libraries and OS at the same time. I’m on a Mac (M4 Max), running Sequoia 15.4.1, clang 17.0.0, cmake 4.0.1 and geant4 v11.3.2.

While I’m able to build example basic/B4d which uses G4AnalysisManager.hh, I’m getting a long set of errors, see below, when I try to build my own code. One distinction is that I use a set of base classes, creatively named Base, that is shared across many of my applications. The error appears to where I include “G4AnalysisManager.hh” in the RunAction.cc file for the base class. Below are the a couple of examples of the 20 errors. Any help figuring out what I’m doing wrong would be appreciated.

In file included from /Users/d3m222/geant4/projects/base/src/BaseRunAction.cc:7:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4AnalysisManager.hh:32:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4GenericAnalysisManager.hh:35:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4ToolsAnalysisManager.hh:34:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4VAnalysisManager.hh:40:
/usr/local/geant4-v11.3.2/install/include/Geant4/G4AnalysisManagerState.hh:80:39: error: constexpr variable 'fkClass' must be initialized by a constant expression
   80 |     static constexpr std::string_view fkClass { "G4AnalysisManagerState" };
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/string_view:270:10: note: non-constexpr function 'length' cannot be used in a constant expression
  270 |          _Traits::length(__s);
      |          ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/string_view:346:31: note: in call to '__char_traits_length_checked<std::char_traits<char>>(&"G4AnalysisManagerState"[0])'
  346 |       : __data_(__s), __size_(std::__char_traits_length_checked<_Traits>(__s)) {}
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/geant4-v11.3.2/install/include/Geant4/G4AnalysisManagerState.hh:80:39: note: in call to 'basic_string_view(&"G4AnalysisManagerState"[0])'
   80 |     static constexpr std::string_view fkClass { "G4AnalysisManagerState" };
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__string/char_traits.h:128:76: note: declared here
  128 |   static inline _LIBCPP_HIDE_FROM_ABI size_t _LIBCPP_CONSTEXPR_SINCE_CXX17 length(const char_type* __s) _NOEXCEPT {
      |                                                                            ^
In file included from /Users/d3m222/geant4/projects/base/src/BaseRunAction.cc:7:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4AnalysisManager.hh:32:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4GenericAnalysisManager.hh:35:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4ToolsAnalysisManager.hh:34:
In file included from /usr/local/geant4-v11.3.2/install/include/Geant4/G4VAnalysisManager.hh:41:
/usr/local/geant4-v11.3.2/install/include/Geant4/G4AnalysisUtilities.hh:69:28: error: constexpr variable 'kNamespaceName' must be initialized by a constant expression
   69 | constexpr std::string_view kNamespaceName { "G4Analysis" };
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/string_view:270:10: note: non-constexpr function 'length' cannot be used in a constant expression
  270 |          _Traits::length(__s);
      |          ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/string_view:346:31: note: in call to '__char_traits_length_checked<std::char_traits<char>>(&"G4Analysis"[0])'
  346 |       : __data_(__s), __size_(std::__char_traits_length_checked<_Traits>(__s)) {}
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/geant4-v11.3.2/install/include/Geant4/G4AnalysisUtilities.hh:69:28: note: in call to 'basic_string_view(&"G4Analysis"[0])'
   69 | constexpr std::string_view kNamespaceName { "G4Analysis" };
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__string/char_traits.h:128:76: note: declared here
  128 |   static inline _LIBCPP_HIDE_FROM_ABI size_t _LIBCPP_CONSTEXPR_SINCE_CXX17 length(const char_type* __s) _NOEXCEPT {
      |                                                                

Geant4 Version: 11.3.2
Operating System: MacOS Sequoia 15.4.1
Compiler/Version:. clang 17.0.0
CMake Version: cmake 4.0.1


Could you share/post the BaseRunAction.cc (and header) code please? Also pinging @ivana in case I’m missing something obvious here.

Hello,

I have the same Mac OS and clang versions and everything compile fine. As @bmorgan suggests, could you post your code, and maybe also your cmake configuration options ?

Here are the BaseRunAction.cc file and the CMakeCache.txt file.

BaseRunAction.cc (8.7 KB)
CMakeCache.txt (18.6 KB)

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