RE: [ROOT] aceess to array elements from TObject

From: Philippe Canal (pcanal@fnal.gov)
Date: Wed Apr 17 2002 - 17:55:16 MEST


Hi,

( In our usual pre-planning :) ), this has been fixed 5 days ago
and the fix is available in the head of the CVS repository.

The problem was that MakeClass was not creating the correct code
in the case of a TClonesArray containing object of a class that has
variable size array.  As you pointed out it should have had a '*' in
the date member definition.  However this is not sufficient since the
reading part also needed to be fixed.

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Elena Vataga
Sent: Wednesday, April 17, 2002 7:23 AM
To: Rene Brun
Cc: roottalk@pcroot.cern.ch
Subject: [ROOT] aceess to array elements from TObject




	Hello rooters!


I used the following arrays in my TObject:

class TCMXmuon: public TObject {

protected:
//---------------------------------------------------------------
//  data members
//---------------------------------------------------------------
  TLorentzVector  lvec;

  Int_t           DetCode;     // (1)CMU (2)CMP (3)CMU+CMP (4)CMX (5)BMU
....

  Int_t           nt0;          // number of  inner times

  Int_t*          mT0;          //[nt0]  Mean Time in inner layer
  Int_t*          C0;           //[nt0]  Counter in inner layer
  Float_t*        T0;           //[nt0]   Time in inner layer

...
  Int_t           nt1;          // number of  outer times
  Float_t*        T1;           //[nt1]   Time in outer layer


My question is: how can I access first, second etc member of
my array variables (T0[0], T0[1] etc) inside root - they look like flat
numbers and not array?

*............................................................................*
*Br   70 :MUO.nt0   : nt0[MUO_]                                              *
*Entries :     4971 : Total  Size=      47305 bytes  File Size  =      12009 *
*Baskets :        1 : Basket Size=      64000 bytes  Compression=   3.94     *
*............................................................................*
*Br   71 :MUO.nt1   : nt1[MUO_]                                              *
*Entries :     4971 : Total  Size=      47305 bytes  File Size  =      11753 *
*Baskets :        1 : Basket Size=      64000 bytes  Compression=   4.02     *
*............................................................................*
*Br   72 :MUO.mT0   : mT0[MUO_]                                              *
*Entries :     4971 : Total  Size=      49127 bytes  File Size  =      13721 *
*Baskets :        1 : Basket Size=      64000 bytes  Compression=   3.58     *
*............................................................................*
*Br   73 :MUO.mT1   : mT1[MUO_]                                              *
*Entries :     4971 : Total  Size=      48567 bytes  File Size  =      13918 *
*Baskets :        1 : Basket Size=      64000 bytes  Compression=   3.49     *
*............................................................................*
*Br   74 :MUO.C0    : C0[MUO_]                                               *
*Entries :     4971 : Total  Size=      49126 bytes  File Size  =      18567 *
*Baskets :        1 : Basket Size=      64000 bytes  Compression=   2.65     *
*............................................................................*



I tried to MakeClass from my tree and I am getting in the header:
   Int_t           MUO_nt0[kMaxMUO];   //[MUO_]
   Int_t           MUO_nt1[kMaxMUO];   //[MUO_]
   Int_t           MUO_mT0[kMaxMUO];   //[MUO_]
   Int_t           MUO_mT1[kMaxMUO];   //[MUO_]
   Int_t           MUO_C0[kMaxMUO];   //[MUO_]
   Int_t           MUO_C1[kMaxMUO];   //[MUO_]
   Float_t         MUO_T0[kMaxMUO];   //[MUO_]
   Float_t         MUO_T1[kMaxMUO];   //[MUO_]

so it is not an array?


	Will be most grateful for any advice,
					regards,
						Elena



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:50 MET