Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[geom] Extended TGeoVGShape with extra solids #12315

Merged
merged 1 commit into from
Feb 15, 2023

Conversation

agheata
Copy link
Member

@agheata agheata commented Feb 14, 2023

Added support for tesselated, ellipsoid, hyperboloid and cut tube in the ROOT to VecGeom converter. Added the macro tutorials/geom/tessellatedNav.C importing and raytracing a tessellated solid.

This Pull request:

Completes solid conversion to VecGeom support

Changes or fixes:

Adding the macro tutorials/geom/tessellatedNav.C

Checklist:

  • tested changes locally
  • updated the docs (if necessary)

This PR fixes #11271

@agheata agheata requested a review from pcanal February 14, 2023 16:41
@agheata agheata self-assigned this Feb 14, 2023
@agheata agheata requested a review from couet as a code owner February 14, 2023 16:41
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on ROOT-performance-centos8-multicore/cxx17.
Running on olbdw-01.cern.ch:/data/sftnight/workspace/root-pullrequests-build
See console output.

Failing tests:

@pcanal
Copy link
Member

pcanal commented Feb 14, 2023

@agheata What do we need to do to solve:

Error in <TVirtualGeoConverter::Instance()>: 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
It appears that you are missing or having outdated support for VecGeom package. To enable it, configure ROOT with:
   -Dvecgeom -DCMAKE_PREFIX_PATH=<vecgeom_prefix_path>/lib/CMake/VecGeom

@phsft-bot
Copy link
Collaborator

Build failed on mac11/cxx14.
Running on macphsft23.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build
See console output.

Failing tests:

@agheata
Copy link
Member Author

agheata commented Feb 15, 2023

@agheata What do we need to do to solve:

Error in <TVirtualGeoConverter::Instance()>: 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
It appears that you are missing or having outdated support for VecGeom package. To enable it, configure ROOT with:
   -Dvecgeom -DCMAKE_PREFIX_PATH=<vecgeom_prefix_path>/lib/CMake/VecGeom

This is the intended behavior for this macro, i.e. it cannot work as intended if the VecGeom converter cannot be instantiated. However, I can make it issue a warning instead, and do raytracing using the unconverted shape.

@agheata
Copy link
Member Author

agheata commented Feb 15, 2023

@pcanal actually my idea to transform the error into a warning does not work: without VecGeom support, the plugin mechanism already issues errors if I do:

root [1] gROOT->GetPluginManager()->FindHandler("TVirtualGeoConverter")->LoadPlugin()
Module ConverterVG not found.
Error in <TCling::LoadPCM>: ROOT PCM /Users/agheata/root/root_install/lib/libConverterVG_rdict.pcm file does not exist
... long list of PCM's tried by LoadPCM
(int) 0

The return value looks wrong by the way, I would expect -1 in this case. Is there a way to check if a module was compiled without issuing errors?

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

Added support for tesselated, ellipsoid, hyperboloid and cut tube. Added the macro tutorials/geom/tessellatedNav.C importing and raytracing a tessellated solid.
@phsft-bot
Copy link
Collaborator

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Collaborator

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See console output.

Errors:

  • [2023-02-15T09:35:51.773Z] CMake Error at C:/build/workspace/root-pullrequests-build/rootspi/jenkins/root-build.cmake:1138 (message):

@agheata
Copy link
Member Author

agheata commented Feb 15, 2023

@phsft-bot build just on windows10/cxx14

@phsft-bot
Copy link
Collaborator

Starting build on windows10/cxx14
How to customize builds

@agheata
Copy link
Member Author

agheata commented Feb 15, 2023

@phsft-bot build just on ROOT-performance-centos8-multicore/cxx17

@phsft-bot
Copy link
Collaborator

Starting build on ROOT-performance-centos8-multicore/cxx17
How to customize builds

@pcanal
Copy link
Member

pcanal commented Feb 15, 2023

This is the intended behavior for this macro, i.e. it cannot work as intended if the VecGeom converter cannot be instantiated. However, I can make it issue a warning instead, and do raytracing using the unconverted shape.

Are you trying to test the failure mode or should we just not run the test if the build does not support it?

@agheata
Copy link
Member Author

agheata commented Feb 15, 2023

Are you trying to test the failure mode or should we just not run the test if the build does not support it?

The test should not run in inappropriate builds, @Axel-Naumann told me how to veto out the test if vecgeom is not enabled, and it seems to work, so we can merge this

@pcanal pcanal merged commit 07e2f5c into root-project:master Feb 15, 2023
guitargeek added a commit to guitargeek/root that referenced this pull request Sep 28, 2023
The `-fabi-version=6` flag was added to the compilation of
`geom/vecgeom` in ded69d0 without any explanation. But recently, it
caused some compilation problems with `std::unique-ptr` in newer GCC
versions.

Since it's not clear why this flag is there to begin with, I suggest to
remove it so it doesn't cause further problems.

Closes root-project#12315.
guitargeek added a commit to guitargeek/root that referenced this pull request Sep 28, 2023
The `-fabi-version=6` flag was added to the compilation of
`geom/vecgeom` in ded69d0 without any explanation.

But recently, it caused some compilation problems with `std::unique-ptr`
in newer GCC versions.

Simple reproducer:
```c++
  #include <memory>

 int main() { std::unique_ptr<int>(nullptr); }
```
Compile with `g++ -fabi-version=6 -o test test.cpp`, using GCC 13.2.

So the implementation of `std::unique_ptr` in the standard library
version that comes with gcc 13.2.1 is incompatible with that (super old)
gcc abi version.

Since it's not clear why this flag is there to begin with, I suggest to
remove it so it doesn't cause further problems.

The ABI version 6 is very old anyway (it came with GCC 4.7 in 2012).

Closes root-project#12315.
agheata pushed a commit that referenced this pull request Sep 29, 2023
…CC (#13751)

The `-fabi-version=6` flag was added to the compilation of
`geom/vecgeom` in ded69d0 without any explanation.

But recently, it caused some compilation problems with `std::unique-ptr`
in newer GCC versions.

Simple reproducer:
```c++
  #include <memory>

 int main() { std::unique_ptr<int>(nullptr); }
```
Compile with `g++ -fabi-version=6 -o test test.cpp`, using GCC 13.2.

So the implementation of `std::unique_ptr` in the standard library
version that comes with gcc 13.2.1 is incompatible with that (super old)
gcc abi version.

Since it's not clear why this flag is there to begin with, I suggest to
remove it so it doesn't cause further problems.

The ABI version 6 is very old anyway (it came with GCC 4.7 in 2012).

Closes #12315.
maksgraczyk pushed a commit to maksgraczyk/root that referenced this pull request Jan 12, 2024
…CC (root-project#13751)

The `-fabi-version=6` flag was added to the compilation of
`geom/vecgeom` in ded69d0 without any explanation.

But recently, it caused some compilation problems with `std::unique-ptr`
in newer GCC versions.

Simple reproducer:
```c++
  #include <memory>

 int main() { std::unique_ptr<int>(nullptr); }
```
Compile with `g++ -fabi-version=6 -o test test.cpp`, using GCC 13.2.

So the implementation of `std::unique_ptr` in the standard library
version that comes with gcc 13.2.1 is incompatible with that (super old)
gcc abi version.

Since it's not clear why this flag is there to begin with, I suggest to
remove it so it doesn't cause further problems.

The ABI version 6 is very old anyway (it came with GCC 4.7 in 2012).

Closes root-project#12315.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ROOT fails to compile with current VecGeom
3 participants