How to write Macros with newest trunk code [message #21440] |
Thu, 14 September 2017 18:11 |
Stefan Pflueger
Messages: 99 Registered: February 2012
|
continuous participant |
From: *specf.him.uni-mainz.de
|
|
Hello,
I updated to the newest FairRoot (17.03) and pandaroot code (trunk), and cannot get the lmd macros to work (or also the macros in macro/run). Our lmd macros seem not to be compatible with the current development trunk as the all create double free corruption errors. Is there any macros that should work and have been tested with this development setup? Then I have some guideline on how to steer the whole simulation and reconstruction chain and adapt our macros to the new FairRoot. Thanks in advance
Stefan
|
|
|
|
|
|
|
|
|
|
Re: How to write Macros with newest trunk code [message #21465 is a reply to message #21460] |
Fri, 15 September 2017 15:37 |
Stefan Pflueger
Messages: 99 Registered: February 2012
|
continuous participant |
From: *specf.him.uni-mainz.de
|
|
Hi Florian,
your code snippet indeed fixes the double free crash at the end of the macro. However the lmd uses a special backtracking task, more precisely FairGeane & FairGeaneApplication. I still get the same double free crash report in the geant3 initialization phase (see log below). It crashes in the Geant3 vmc InitMC() function. From the stack trace it looks like that the problem is the same as before, something inside the TGeoManager getting deleted again that was deleted before.
Quote:
*** glibc detected *** /software/fairsoft/fairsoft_may16p1_root6/bin/root.exe: double free or corruption (!prev): 0x00000000096bb140 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x75f4e)[0x2b0192deff4e]
/lib64/libc.so.6(+0x78cf0)[0x2b0192df2cf0]
/software/fairsoft/fairsoft_may16p1_root6/lib/root/libCore.so.6.08(_ZN9T ObjArray6DeleteEPKc+0x10c)[0x2b0191f5c7ec]
/software/fairsoft/fairsoft_may16p1_root6/lib/root/libGeom.so.6.08(_ZN11 TGeoManagerD1Ev+0x29e)[0x2b019fc6501e]
/software/fairsoft/fairsoft_may16p1_root6/lib/root/libGeom.so.6.08(_ZN11 TGeoManagerD0Ev+0x9)[0x2b019fc65239]
/software/fairsoft/fairsoft_may16p1_root6/lib/root/libCore.so.6.08(_ZN5T List6DeleteEPKc+0x205)[0x2b0191f55445]
/software/fairsoft/fairsoft_may16p1_root6/lib/root/libCore.so.6.08(_ZN5T ROOT20EndOfProcessCleanupsEv+0x4c)[0x2b0191e57c8c]
/lib64/libc.so.6(exit+0xe2)[0x2b0192dafb22]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(+0x2719de)[ 0x2b01b43639de]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(zabend_+0x3 f)[0x2b01b42eecaf]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(zfatal_+0x7 92)[0x2b01b42f3b42]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(mztabc_+0x2 1a)[0x2b01b42e4b7a]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(mztabr_+0x1 55)[0x2b01b42e1645]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(mzgar1_+0x2 10)[0x2b01b42f2480]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(mzlift_+0x3 df)[0x2b01b42f459f]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(mzbook_+0xf b)[0x2b01b42f07db]
/software/fairsoft/fairsoft_may16p1_root6/lib/libgeant321.so(g3physi_+0x 1f7d)[0x2b01b42058dd]
/home/pflueger/FairRoot_install/lib/libBase.so.17.03.00(_ZN20FairGeaneAp plication6InitMCEPKcS1_+0x26)[0x2b019e9feff6]
/home/pflueger/FairRoot_install/lib/libGeane.so.17.03.00(_ZN9FairGeane4I nitEv+0x502)[0x2b01a52e0d12]
/home/pflueger/FairRoot_install/lib/libBase.so.17.03.00(_ZN8FairTask8Ini tTaskEv+0x55)[0x2b019e9f66a5]
/home/pflueger/FairRoot_install/lib/libBase.so.17.03.00(_ZN8FairTask9Ini tTasksEv+0x5b)[0x2b019e9f660b]
/home/pflueger/FairRoot_install/lib/libBase.so.17.03.00(_ZN10FairRunAna4 InitEv+0x3be)[0x2b019e9ea77e]
[0x2b01a98bd5f5]
[0x2b01a98ba0b2]
/software/fairsoft/fairsoft_may16p1_root6/lib/root/libCling.so(_ZN5cling 11Interpreter11RunFunctionEPKN5clang12FunctionDeclEPNS_5ValueE+0x24a)[0x 2b01940cd3ea]
I managed to overcome this problem, by adding the first two lines of your code snipped in the FairGeaneApplication. However I need to verify that the physics results are meaningful once i have the simulation macro running...
void FairGeaneApplication::ConstructGeometry()
{
TVirtualMC::GetMC()->SetRootGeometry(); // notify VMC about Root geometry
gGeoManager->GetListOfVolumes()->Delete();
gGeoManager->GetListOfShapes()->Delete();
}
Thx for the help.
Stefan
[Updated on: Fri, 15 September 2017 15:46] Report message to a moderator
|
|
|