Hi, I have a class similar to Event.h with an array of Float_t as a member. I want the dimension of the array to be a non-const parameter (as it will be read from an input file). The parameter is a static member of an inherited class, but this can change. The important thing is I don't want to hardcode the value of the parameter, because it is read from a file. The solution I found in the documentation is to allocate it dynamically via a pointer and tell the streamer the size of the array in the commentary field : //[fSize] . However, fSize needs to be a data member of the class. Obviously, I don't want to save this data member to file because it is constant for all the events. If I use fSize //! to avoid writing it, I get an Error in <TStreamerInfo::Build>. Below is a short example which reproduces the problem. Is there a way around this? ROOT 3.03/08 on a RH 7.2 File: class.C ______________________________________________________ #include "TObject.h" class TEvent : public TObject { private : Int_t fSize; //! Float_t* fBlocks; //[fSize] ClassDef(TEvent,1) }; _______________________________________________ Result: CINT/ROOT C/C++ Interpreter version 5.15.53, Aug 15 2002 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] .L class.C+ Info in <TUnixSystem::ACLiC>: creating shared library /dsm/phnpcd232/local/home/cmunoz/./class_C.so root [1] TEvent *ev=new TEvent(); root [2] TTree t("t","My tree"); root [3] t.Branch("event","TEvent",&ev,16000,99); Error in <TStreamerInfo::Build>: TEvent, discarding: Float_t* fBlocks, illegal [fSize] Carlos Munoz Camacho SPhN/CEA-Saclay
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET