Hi Ole,
On Mon, 16 Sep 2002, Ole Streicher wrote:
> Hi!
>
> I am looking for a good way to store meta information in ROOT files.
>
> My design up to now consists of one ROOT tree per file. Each tree is
> produced by an "Algorithm", which itself may produce more than one
> tree (and thus, its results may be stored in more than one file).
>
> For logging reasons, I want to store the parameters and the static
> meta information of the algorithms, too. What I am thinking about is
> something like:
>
> class Algorithm: public MyObject {
> static const string VersionInfo;
> int Par1;
> TTree *ResultTree1; //!
> TTree *ResultTree2; //!
> //...
> ClassDef(Algorithm, 1)
> };
>
> where the definition of VersionInfo is done with the help of CVS tags
> in the C++ file.
>
> But, there are now some problems with that:
> - rootcint doesn't like "const" (see my other mail)
support for const (as above) was added by Philippe last week. take the
current CVS version.
> - the streamer seems not to store "static" members
(why?)
Now it does
> - how can I ensure that the algorithm goes into all files that it has
> created? Can I just use "ResultTree1->GetCurrentFile()->Add(this);"?
> before calling "Write()" to all files?
do "ResultTree1->GetCurrentFile()->AutoSave();
This will automatically cjange to teh right directory and will restore
the current dir after the operation, then you can do:
myAlgorithm.Write() into the current file or in as many files as you
want.
>
> Is there another recommended way to store these meta information?
as shown above. Use the Write function.
>
> BTW, Why do "inline" functions never have a documentation within root?
> They always point me to the "inline functions" section of the man page
> where they link to the source code. For example, I couldn't see from
> that what the difference between the "Add()" and the "Append()" member
> functions of TDirectory is.
Yes, we know. A limitation of THtml.
Rene Brun
>
> Ole
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:10 MET