Hi,
I am trying to develop an interface for my python program and i face the problem below :
*** Break *** segmentation violation
Generating stack trace...
0x00007f8aa2fbc3c6 in TGeoPainter::PaintVolume(TGeoVolume*, char const*, TGeoMatrix*) + 0x456 from /usr/lib/root/libGeomPainter.so
0x00007f8aa2fba5f3 in TGeoPainter::Paint(char const*) + 0xd3 from /usr/lib/root/libGeomPainter.so
0x00007f8aa2fb7863 in TGeoPainter::DrawVolume(TGeoVolume*, char const*) + 0x143 from /usr/lib/root/libGeomPainter.so
0x00007f8ab4105fe3 in FastCall(long, void*, void*, void*) + 0xa73 from /usr/lib/root/libPyROOT.so
0x00007f8ab4109541 in PyROOT::TVoidExecutor::Execute(long, void*, PyROOT::TCallContext*) + 0x71 from /usr/lib/root/libPyROOT.so
0x00007f8ab412cb76 in PyROOT::TMethodHolder::CallSafe(void*, long, PyROOT::TCallContext*) + 0x86 from /usr/lib/root/libPyROOT.so
0x00007f8ab412c6ea in PyROOT::TMethodHolder::Execute(void*, long, PyROOT::TCallContext*) + 0x3a from /usr/lib/root/libPyROOT.so
0x00007f8ab412aab2 in PyROOT::TMethodHolder::Call(PyROOT::ObjectProxy*&, _object*, _object*, PyROOT::TCallContext*) + 0x102 from /usr/lib/root/libPyROOT.so
0x00007f8ab410fa10 in <unknown> from /usr/lib/root/libPyROOT.so
0x00007f8ab517cbf4 in _PyObject_FastCallDict + 0x94 from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b995d in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51572ea in _PyEval_EvalFrameDefault + 0x2fa from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b934a in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b98ee in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51572ea in _PyEval_EvalFrameDefault + 0x2fa from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b9da7 in PyEval_EvalCodeEx + 0x2e7 from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab5156feb in PyEval_EvalCode + 0x1b from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab5228682 in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab522acdd in PyRun_FileExFlags + 0x9d from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab522aec7 in PyRun_SimpleFileExFlags + 0x1b7 from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab5220e3c in Py_Main + 0x67c from /usr/lib/libpython3.6m.so.1.0
0x0000560bc9eabcb8 in main + 0x1e8 from /usr/bin/python3.6
0x00007f8ab55bef6a in __libc_start_main + 0xea from /usr/lib/libc.so.6
0x0000560bc9eabe2a in _start + 0x2a from /usr/bin/python3.6
*** Break *** segmentation violation
Generating stack trace...
0x00007f8aa2fbc3c6 in TGeoPainter::PaintVolume(TGeoVolume*, char const*, TGeoMatrix*) + 0x456 from /usr/lib/root/libGeomPainter.so
0x00007f8aa2fba5f3 in TGeoPainter::Paint(char const*) + 0xd3 from /usr/lib/root/libGeomPainter.so
0x00007f8aa2a93e2c in TPad::PaintModified() + 0x23c from /usr/lib/root/libGpad.so
0x00007f8aa2a4f226 in TCanvas::Update() + 0x126 from /usr/lib/root/libGpad.so
0x00007f8a9baf8d48 in TRootCanvas::HandleContainerConfigure(Event_t*) + 0x38 from /usr/lib/root/libGui.so
0x00007f8a9ba1cb34 in TGFrame::HandleEvent(Event_t*) + 0xf4 from /usr/lib/root/libGui.so
0x00007f8a9b9c791a in TGClient::HandleEvent(Event_t*) + 0x4a from /usr/lib/root/libGui.so
0x00007f8a9b9c7c46 in TGClient::ProcessOneEvent() + 0xc6 from /usr/lib/root/libGui.so
0x00007f8a9b9c7cab in TGClient::HandleInput() + 0x1b from /usr/lib/root/libGui.so
0x00007f8ab3564b38 in TUnixSystem::DispatchOneEvent(bool) + 0x58 from /usr/lib/root/libCore.so
0x00007f8ab34a3d72 in TSystem::ProcessEvents() + 0x72 from /usr/lib/root/libCore.so
0x00007f8ab5d78012 in <unknown function>
0x00007f8ab4105fe3 in FastCall(long, void*, void*, void*) + 0xa73 from /usr/lib/root/libPyROOT.so
0x00007f8ab410688d in Cppyy::CallB(long, void*, void*) + 0x2d from /usr/lib/root/libPyROOT.so
0x00007f8ab4109de9 in PyROOT::TBoolExecutor::Execute(long, void*, PyROOT::TCallContext*) + 0x79 from /usr/lib/root/libPyROOT.so
0x00007f8ab412cb76 in PyROOT::TMethodHolder::CallSafe(void*, long, PyROOT::TCallContext*) + 0x86 from /usr/lib/root/libPyROOT.so
0x00007f8ab412c6ea in PyROOT::TMethodHolder::Execute(void*, long, PyROOT::TCallContext*) + 0x3a from /usr/lib/root/libPyROOT.so
0x00007f8ab412aab2 in PyROOT::TMethodHolder::Call(PyROOT::ObjectProxy*&, _object*, _object*, PyROOT::TCallContext*) + 0x102 from /usr/lib/root/libPyROOT.so
0x00007f8ab410fa10 in <unknown> from /usr/lib/root/libPyROOT.so
0x00007f8ab517cbf4 in _PyObject_FastCallDict + 0x94 from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b995d in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51572ea in _PyEval_EvalFrameDefault + 0x2fa from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b9da7 in PyEval_EvalCodeEx + 0x2e7 from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51f0d96 in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab517dabb in PyObject_Call + 0x4b from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab5158891 in _PyEval_EvalFrameDefault + 0x18a1 from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b934a in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b98ee in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51572ea in _PyEval_EvalFrameDefault + 0x2fa from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b934a in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b98ee in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51572ea in _PyEval_EvalFrameDefault + 0x2fa from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab51b8dba in _PyFunction_FastCallDict + 0x11a from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab517cdce in _PyObject_FastCallDict + 0x26e from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab517d9d1 in _PyObject_Call_Prepend + 0x61 from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab517dabb in PyObject_Call + 0x4b from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab521f862 in <unknown> from /usr/lib/libpython3.6m.so.1.0
0x00007f8ab595c08a in <unknown> from /usr/lib/libpthread.so.0
0x00007f8ab56941bf in clone at :? from /usr/lib/libc.so.6
Traceback (most recent call last):
File "/home/johann/home-these/SVN-LPSC/Geometry/src/msfr/jm/geometry/runtest/PyrootToto.py", line 33, in <module>
pygeom.draw(world)
File "/home/johann/home-these/SVN-LPSC/Geometry/src/msfr/jm/geometry/runtest/PyrootToto.py", line 26, in draw
world.Draw()
SystemError: void TGeoVolume::Draw(const char* option = "") =>
problem in C++; program state has been reset
When the canvas is created i got this kind of message :
Info in <TGeoManager::TGeoManager>: Geometry geoManager, Geometry created
Info in <TGeoManager::SetTopVolume>: Top volume is toto. Master volume is toto
Info in <TGeoNavigator::BuildCache>: --- Maximum geometry depth set to 100
Info in <TGeoManager::CheckGeometry>: Fixing runtime shapes...
Info in <TGeoManager::CheckGeometry>: ...Nothing to fix
TGeoManager::CheckGeometry:0: RuntimeWarning: Volume "toto" has no medium: assigned dummy medium and material
Info in <TGeoManager::CloseGeometry>: Counting nodes...
Info in <TGeoManager::Voxelize>: Voxelizing...
Error in <TGeoVolume::SortNodes>: Bounding box not valid
Error in <TGeoVolume::Voxelize>: Bounding box not valid
Error in <TGeoVolume::FindOverlaps>: Bounding box not valid
Info in <TGeoManager::CloseGeometry>: Building cache...
Info in <TGeoManager::CountLevels>: max level = 1, max placements = 0
Info in <TGeoManager::CloseGeometry>: 1 nodes/ 1 volume UID's in Geometry
Info in <TGeoManager::CloseGeometry>: ----------------modeler ready----------------
Info in <TGeoManager::SetVisLevel>: Automatic visible depth disabled
Info in <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
It seems there is a problem with bounding box.
I put a minimal working example of my program :
import time
import ROOT
class PyrootGeometry():
def __init__(self):
self.geoManager = ROOT.TGeoManager("geoManager","Geometry")
def createWorld(self):
cylinderName = "toto"
cylinderHalfLength = 2.5
cylinderRadius = 2.0
worldShape = ROOT.TGeoTube(0.,cylinderRadius, cylinderHalfLength)
world = ROOT.TGeoVolume(cylinderName, worldShape)
return world
def configureGeoManager(self,world):
self.geoManager.SetTopVolume(world)
self.geoManager.CloseGeometry()
world.SetLineColor(8)
self.geoManager.SetVisLevel(3)
self.geoManager.SetVisOption(0)
self.geoManager.SetTopVisible()
def draw(self,world):
world.Draw()
time.sleep(1000)
if __name__ =='__main__':
pygeom = PyrootGeometry()
world = pygeom.createWorld()
pygeom.configureGeoManager(world)
pygeom.draw(world)
Can you help me figure out where i did a mistake ?
Thanks
Regards
Johann