Thank you!
So, when I need to see distributions of second element, I am making:
Draw("MUO.T0[][0]","MUO.nt0>0")
and instead of making plot, it "forget" all tree:
root [2] csx->Draw("MUO.T0[][0]","MUO.nt0>0")
*** Break *** segmentation violation
Root >
root [3] csx->Print()
Error: Symbol csx is not defined in current scope
FILE:/tmp/fileXYV5Oe_cint LINE:1
Error: Failed to evaluate csx->Print()Possible
candidates are...
filename line:size busy function type and name
*** Interpreter error recovered ***
root [4]
root [5] .ls
TFile** JPSI.root Simple ROOT Ntuple
TFile* JPSI.root Simple ROOT Ntuple
OBJ: TTree csx cmx-csx analysis : 0
KEY: TList StreamerInfo;1 Doubly linked list
KEY: TTree csx;723 cmx-csx analysis
root [6] csx->Print("Mu*")
Error: Symbol csx is not defined in current scope
FILE:/tmp/file6njLq0_cint LINE:1
Error: Failed to evaluate csx->Print("Mu*")Possible candidates are...
filename line:size busy function type and name
*** Interpreter error recovered ***
What is all it about?
Elena
On Thu, 18 Apr 2002, Philippe Canal wrote:
> > 1. TBrowser not able to manipulate this arrays any more
> > ( with older version it was fine)
>
> I will investigate the problem. You should still be able to use the
> TBrowser when you do NOT load the MakeClass generate file
>
> > tree->Draw("MUO.T0[0]") -> draws all T0 for the first muon, but if I need
> > to compare first and second elements in array?
>
> What you have is a 1 dimension array stored into another 1 dimension array
> (the TClonesArray). So you can use:
>
> tree->Draw("MUO.T0[0][0]-MUO.T0[0][1]");
>
> Cheers,
> Philippe.
>
>
> -----Original Message-----
> From: Elena Vataga [mailto:vataga@fnal.gov]
> Sent: Thursday, April 18, 2002 8:09 AM
> To: Philippe Canal
> Cc: roottalk@pcroot.cern.ch
> Subject: RE: [ROOT] aceess to array elements from TObject
>
>
>
>
> Hello!
>
> Thanks a lot for your reply!
>
> I took CVS version and MakeClass produced correct code:
>
> Int_t MUO_nt0[kMaxMUO]; //[MUO_]
> Int_t MUO_nt1[kMaxMUO]; //[MUO_]
> Int_t *MUO_mT0[kMaxMUO]; //[MUO_nt0]
> Int_t *MUO_mT1[kMaxMUO]; //[MUO_nt1]
> Int_t *MUO_C0[kMaxMUO]; //[MUO_nt0]
> Int_t *MUO_C1[kMaxMUO]; //[MUO_nt1]
> Float_t *MUO_T0[kMaxMUO]; //[MUO_nt0]
> Float_t *MUO_T1[kMaxMUO]; //[MUO_nt1]
>
> But:
>
> 1. TBrowser not able to manipulate this arrays any more
> ( with older version it was fine)
>
> 2. I still do not understand how to access array elements in tree->Draw:
>
> *Br 76 :MUO.T0 : T0[MUO_] *
> *Entries : 6971 : Total Size= 49626 bytes File Size = 18920 *
> *Baskets : 1 : Basket Size= 64000 bytes Compression= 2.62 *
> *............................................................................*
>
> tree->Draw("MUO.T0[0]") -> draws all T0 for the first muon, but if I need
> to compare first and second elements in array?
>
>
> Will be grateful for your reply,
> regards,
> Elena
>
>
> On Wed, 17 Apr 2002, Philippe Canal wrote:
>
> > 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