Hi Tom,
Tom Roberts wrote:
> I am implementing the ability to read and write a TNtuple into my
> Geant4 simulation program. I found that I need to link with libTree,
> libCint, and libCore. When I try to use a TNtuple, I get the error
> message:
> Error: cannot open file "bool.h" :0:
> But the TNtuple file can be written and read correctly. I'm guessing
> that Cint is unhappy, but for a simple TNtuple it is not needed.
I do not understand why yo get this error message. We need more info
about the line/function
producing this error.
I include below a trivial main program creating a ntuple into a ROOT
file and showing (one line) how
to compile & link this program
see also: http://root.cern.ch/root/HowtoMC.html
>
> I want to distribute a binary version of the program to users who
> probably don't have Root installed, and who are physicists but not C++
> programmers. That error message will be confusing, especially to
> people who never use Root....
>
> What files and directories do I need to include in my distribution,
> beyond those 3 shared objects? Is there any simple way to reduce what
> is needed?
>
This would be BADLY wrong! Installing ROOT is so simple. It is much
better if people download
the binary tar file from http://root.cern.ch or install from source in
the unlikely case that one
of our binary distributions is not appropriate for their case.
Example of main program tom.cxx
#include "TNtupleD.h" #include "TFile.h" #include "TRandom3.h"
int main() {
TFile *file = TFile::Open("tom.root","recreate");
TNtupleD *ntuple = new TNtupleD("ntuple","example","x:y:z");
TRandom3 r;
for (int i=0;i<10000;i++) {
double x = r.Gaus(0,2); double y = r.Gaus(-2,1); double z = r.Uniform(-3,3); ntuple->Fill(x,y,z);
Procedure to compile & link
where ROOTSYS is an environment variable pointing to the directory where ROOT is installed.
Rene Brun Received on Tue Dec 19 2006 - 11:36:16 MET
This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:32:02 MET