Hello Root,
I seem to be running into a problem with ClassDef (and ClassImp) increasing
the size of my class's storage area by about 4 bytes. I am *not* deriving
from TObject, so the extra bytes are not from there.
Is there a way around this which will still give me all the nice features
(streamer, showmember etc) of ROOT but keep my class the exact same size as
the data members I defined?
The reason that the extra bytes are a problem is because I am setting
pointers into an already existing array with data (which is created by a
FORTRAN package called BOS), in order to read it's contends. The extra bytes
causes the next pointer to be 4 bytes off.
Maurik
---------------------------------------------------------------------------------
Sample code:
The following code will have a "sizeof()" of 56 instead of the expected 52:
class TPARTData {
public:
Int_t pid; /* particle id
(GEANT) */
Float_t x; /* vector3_t vert; Vertex position
{x,y,z} */
Float_t y; /*
y */
Float_t z; /*
z */
Float_t e; /* vector4_t p;
Energy */
Float_t px; /* momentum
{x,y,z} */
Float_t py; /*
py */
Float_t pz; /*
pz */
Float_t q; /*
charge */
Int_t trkid; /* index to TBID bank, counting from
1 */
Float_t qpid; /* quality factor for the
pid */
Float_t qtrk; /* quality factor for the
trk */
Int_t flags; /* set of flags defining track (ie,
BEAM) */
ClassDef(TPARTData,1)
};
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:33 MET