|Message: Re: Saving data on .root File using ParGeant4 (Geant4 4.9.6p01 + TOP-C)||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
I just tried the solution proposed by Mr. Dotti, and It worked just great. But anyway, there are some things that I would like to mention:
As I said before, I'm not working with the Geant4 Multi-thread version, but with Geant4 Version 9.5.1 (the standard one) with a local installation of marshalgen and top-c. So I copied the files for the G4MTGetTid class (in fact it just contains a the function gettid() that return the pid of the running process) for implementing the given solution.
The other interesting thing is that with this set-up you have no problem using non thread-safe methods of ROOT at all; I just used methods of TNtuple and TFile that are non thread-safe and they worked properly on multi-thread, so I recommend the people using multi-thread to give a try of this solution (explained in detail on the ParN02 and ParN03 examples of geant4, and in this link as well http://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/ForApplicationDeveloper/html/Examples/parallel.html)
At last, for the merging of the different files generated (in my case 12, as the number of slaves processes that I implemented on my simulation) I used a program on the bin directory of ROOT (hadd).