GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » General » Shared libs for EvtGenModels -- "No memory for static"
Shared libs for EvtGenModels -- "No memory for static" [message #9806] Sat, 28 November 2009 00:08 Go to next message
mpeliz is currently offline  mpeliz
Messages: 51
Registered: February 2008
Location: Ruhr-Universitaet Bochum
continuous participant
From: *dip.t-dialin.net
Hello,

I would like to interface EvtGen to PandaROOT. Therefore
I need shared libraries for the EvtGenBase and EvtGenModels packages. Compiling the first one within PandaROOT using cmake works fine. For the EvtGenModels
I got a strange error when compiling, which seems to be related to CINT. At least the error message shown below is pointing in this direction.

The error comes from EvtIntervalDecayAmp.hh line 112
which says

static EvtId B0=EvtPDL::getId("B0");

I think a static is appropriate in the given context and
removing the static woudld be a workarround rather than
a solution for the problem. Let me emphasize that there are several occurences of this construct in the package.

A GOOGLE search for the error message points me only to threads in ROOT talk, where workarrounds are given which could not be applied in our case (http://root.cern.ch/root/roottalk/roottalk08/0865.html), i.e. we could not change the ordering of the statements as proposed there (and I am in doubt if this would help).

Has someone an idea how I can solve this issue?
Best regards,
Marc



------ Error message from make ----------

Error: No memory for static commands\5\0 /data/puru2/marc/proot/trunk/pgenerators/EvtGen/EvtGenModels/EvtInterval DecayAmp.hh:112:
Error: No memory for static commands\5\0 /data/puru2/marc/proot/trunk/pgenerators/EvtGen/EvtGenModels/EvtInterval DecayAmp.hh:113:
Warning: Error occurred during reading source files
Warning: Error occurred during dictionary source generation
!!!Removing /data/puru2/marc/proot/build/pgenerators/EvtGen/EvtGenDict.cxx /data/puru2/marc/proot/build/pgenerators/EvtGen/EvtGenDict.h !!!
Error: /data/puru2/marc/proot/fairsoft/tools/root/bin/rootcint: error loading headers...
make[2]: *** [pgenerators/EvtGen/EvtGenDict.cxx] Error 1
make[1]: *** [pgenerators/EvtGen/CMakeFiles/evtgen.dir/all] Error 2
Re: Shared libs for EvtGenModels -- "No memory for static" [message #9813 is a reply to message #9806] Mon, 30 November 2009 15:08 Go to previous messageGo to next message
mpeliz is currently offline  mpeliz
Messages: 51
Registered: February 2008
Location: Ruhr-Universitaet Bochum
continuous participant
From: *ep1.ruhr-uni-bochum.de
Hello,

further investigation of the problem strengthen my initial
guess that rootcint causes the problem.

Adding a #ifndef __ROOTCINT__ to the EvtIntervalDecayAmp.hh header file prevents this file to be "parsed/processed" by cint.

Therefore my question now is: Is it possible to disable the usage of cint for this package, e.g. in the CMake file of the package?

For all your efforts many thanks in advance.
Best regards,
Marc


Re: Shared libs for EvtGenModels -- "No memory for static" [message #9814 is a reply to message #9813] Mon, 30 November 2009 15:28 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *gsi.de
Hallo Marc,

In principle yes, in the CMakeList.txt you have to remove the lines:

set(XXX_LINKDEF XXXLinkDef.h)
set(XXX_DICTIONARY ${CMAKE_CURRENT_BINARY_DIR}/XXXDict.cxx)
ROOT_GENERATE_DICTIONARY("${XXX_HEADERS}" "${XXX_LINKDEF}" "${XXX_DICTIONARY}" "${INCLUDE_DIRECTORIES}")
SET(XXX_SRCS ${XXX_SRCS} ${XXX_DICTIONARY})

but I think also you have to modify the CMakeList.txt at other places a, this I can not really judge without taking a look to the file.

but if you do this then you will not be able to call or to use these classes from within CINT, So can you tell me what is the goal of this? What do you mean by interfacing the EvtGen to PandaRoot? is it meant to be something like the DpmDirect stuff or something else?

regards

Mohammad
Re: Shared libs for EvtGenModels -- "No memory for static" [message #9817 is a reply to message #9814] Tue, 01 December 2009 12:47 Go to previous messageGo to next message
mpeliz is currently offline  mpeliz
Messages: 51
Registered: February 2008
Location: Ruhr-Universitaet Bochum
continuous participant
From: *ep1.ruhr-uni-bochum.de
Hi Mohammad,

thanks for pointing me to this. Actually I used a CMakefile file from another package, where this stuff was in. Maybe this was not a good choice for my purposes.

In the first place the interface should make the production of
intermediate output files between the event generation and the
simulation obsolete. So this is something similar you have applied for the DPM generator. More generalized the interface should be able to handle different generators (cosmics, DPM, UrQMD, ...), but this would be the next step.

However, together with Bertram I managed to start the generator from rootcint. Now the problem is that a symbol from the static
cernlib is missing.

I am aware that this topic was discussed several times before
but I think we never get a final conclusion. Is it possible to make shared libs of the cernlib or use the static libs in rootcint? Or is there a limitation?

Best regards,
Marc


Re: Shared libs for EvtGenModels -- "No memory for static" [message #9819 is a reply to message #9817] Tue, 01 December 2009 14:26 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *gsi.de
Hi Marc,
Quote:


I am aware that this topic was discussed several times before
but I think we never get a final conclusion. Is it possible to make shared libs of the cernlib or use the static libs in rootcint? Or is there a limitation?


Yes, there is also the so called UNIGEN developed by CBM, HADES, CERES and ALICE which cover most generators, but in PANDA we never really get to a conclusion.

About the shared library it is possible, and there is no limitation. my question is do you use gfortran or g77 to compile CERNLIB, as far as I remember there are some problems with gfortran.

anyway maybe we can discuss this directly next week.


Mohammad

Re: Shared libs for EvtGenModels -- "No memory for static" [message #9823 is a reply to message #9819] Tue, 01 December 2009 14:52 Go to previous messageGo to next message
mpeliz is currently offline  mpeliz
Messages: 51
Registered: February 2008
Location: Ruhr-Universitaet Bochum
continuous participant
From: *ep1.ruhr-uni-bochum.de
Hi Mohammad,

for the compilation of EvtGen fortran code I used g77.

Do you have the cernlib sources with a working Makefile
to produce the shared libs? Maybe I can use this to generate some
libs for SL4?

If that works, the easiest way would be to include the cernlib as an external package in the future. But we can discuss this issue further on next week.

Best regards,
Marc

Re: Shared libs for EvtGenModels -- "No memory for static" [message #9829 is a reply to message #9823] Tue, 01 December 2009 19:40 Go to previous message
Johan Messchendorp is currently offline  Johan Messchendorp
Messages: 693
Registered: April 2007
Location: University of Groningen
first-grade participant

From: *xs4all.nl
Hi Marc,

You can take a look at the following Wiki site:

http://wiki.gsi.de/cgi-bin/view/Personalpages/UnitedGenerators

Well, whatever you use as interface, the real "problem" is to deal with gfortran/g77 and the cernlib stuff. At some point in time, we have to make it all work with gfortran. This might be a big struggle... dont know.

Greetings,

Johan.
Previous Topic: /macro/run is open for rw to all panda developer
Next Topic: Pnddsk?
Goto Forum:
  


Current Time: Sun Nov 24 05:05:45 CET 2024

Total time taken to generate the page: 0.00733 seconds