Re: Re: ROOT-5.24.00 vs ROOT-5.22.00 with reflex dictionary

From: Xinchun Tian <tianxc_at_fnal.gov>
Date: Thu, 19 Nov 2009 15:12:48 -0500


Hi Alex,

I will look into this when we get to the IO stage.

Thanks,
Xinchun

On Wed, Nov 18, 2009 at 3:09 AM, Axel Naumann <Axel.Naumann_at_cern.ch> wrote:

    Hi Xinchun,

    Xinchun Tian wrote on 11/18/2009 02:32 AM:

        Thanks, I will live with ROOT 5.22.00 for a while.

    OK fine, *but* remember that the I/O of your class will most probably be only partial. Only those parts that are in the base class without a reflex dictionary (in short: "in ROOT") will be saved if you don't provide the ClassDef() macro. What you discovered is not a problem with v5.24 but with the code you use: TObject requires ClassDef(). v5.22 simply didn't complain about it yet.

    Cheers, Axel.

        On Tue, Nov 17, 2009 at 4:06 AM, Axel Naumann <Axel.Naumann_at_cern.ch> wrote:

           Hi Xinchun,

           you need to tell CMT to link the dictionary with your library, at least for those classes deriving from TObject. Please talk to your CMT expert for that or see <https://savannah.cern.ch/bugs/index.php?52581>.

           Cheers, Axel.

           Xinchun Tian wrote on 11/17/2009 05:23 AM:

               Hi Roel,

               On Mon, Nov 16, 2009 at 8:09 AM, Roel Aaij <Roel.Aaij_at_cern.ch> wrote:

                  Hi Xinchun,

                  > Following your suggestions, the compile fails with the following errors which are the same between v5.22.00 and v5.24.00.

                  How are you doing, have you managed to solve the problem?

               Unfortunately, I did not. I even have not had a chance to try Brett's suggestion.

                  The undefined references listed usually imply that a generated
                  dictionary is not linked into the library. I'm not an expert on the
                  differences between rootcint and genreflex, so there might also be a
                  cause there.

                  How are object persisted? Do you use the ROOT IO system exclusively or
                  is another method used? The generated streamers are needed to persist
                  objects in root files. Again, I don't know if only rootcint generates
                  these, of if they can be generated with genreflex too.

               I have not looked into the details of FMWK which is used as the framework for NOvA offline. I believe ROOT IO is used for object persistent. genreflex should also generate these, I think.

                  > Any ideas?

                  I wanted to take a look at your code, but I cannot find the svn
                  repository that you referred to in an earlier mail. Is it still at:
                  /afs/fnal.gov/files/home/room3/tianxc/repos/svn/nova/installation/trunk/novainst/novainst?

               Sorry about this, the above repos. is just a temp. one for development purpose, and has been removed after Fermilab setup the official SVN repository for NOvA offline,  but you may not be able to access it without Kerberos principle, so I recover my svn repository, you can get the code following the previous mail, and I put them down here:
               shell> svn export file:///afs/fnal.gov/files/home/room3/tianxc/repos/svn/nova/installation/trunk/novainst/novainst
               shell> ./novainst trunk all

               The above will help you to install, cmake, gccxml, ROOT 5.24.00 and FMWK. you will notice the following errors: --->> genreflex: INFO: Parsing file /home/tianxc/offline/nova-trunk/fmwk/EventDataModel/dict/dict.h with GCC_XML OK

--->> genreflex: INFO: Generating Reflex Dictionary
--->> genreflex: ERROR: class edm::EventHeader derives from TObject but does not use ClassDef!
--->> You MUST put ClassDef(edm::EventHeader, 1); into the class definition.
--->> genreflex: ERROR: class edm::Event derives from TObject but does not use ClassDef!
--->> You MUST put ClassDef(edm::Event, 1); into the class definition.
After uncomment ClassDef & ClassImp, the compile will fail as the last mail said. Thanks for any help. Xinchun
Received on Thu Nov 19 2009 - 21:12:52 CET

This archive was generated by hypermail 2.2.0 : Fri Nov 20 2009 - 05:50:05 CET