Genreflex, Geant4 and void*

Dear developers,

I would like to use ROOT reflection technique to store geometry in Geant4. Everything works fine until I intend to store sensitive detectors. I get the following message:

Error in TStreamerInfo::Build: G4HitsCollection, unknown type: void* theCollection

It looks ROOT does not know void* type. Is there a solution for this?

thanks,
Zoltan

Hi Zoltan,

it is not possible to stream a void* because behind it any type can be hidden. What is the actual type behind this type erasure? What is the class instance you are trying to persistify?

Dear Danilo,

I am not such a coding guru so I am not sure how to figure out what type is hidden behind void*. I have bumped into void* theCollection in a standard Geant4 file (G4HitsCollection) while I was trying to store sensitive detector information. Here is the link to G4HitsCollection on Geant4 page.

http://www-geant4.kek.jp/Reference/10.04.p02/classG4HitsCollection.html

Can you help me to understand?

Thanks,

Zoltan

Hi,

the problem here is to try and persistify something which is opaque to ROOT (and to anything: void* can be anything, by definition). The link is not particularly useful since the issue here is really the void*.
Is this class made to be persistent? Can you reach out to G4 developers?

Cheers,
D

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