?: iterate in TClonesArray

Dirk Meier (Dirk.Meier@cern.ch)
Tue, 17 Mar 1998 22:41:11 +0100 (MET)


Hi,

I want to create a TClonesArray with pointers to histograms.
Later I need to fill these histograms in a loop from a tree
with the >> .
First I excersided this

root [0] TH1F* b = new TH1F("bname","btitle",40,-20.,200);
root [1] b->Draw();
Warning in <MakeDefCanvas>: creating a default canvas with name c1

o.k. this worked, but now

root [2] TClonesArray* tps = new TClonesArray("TH1F",5);
root [3] dummy = new(tps[0]) TH1F("bname0","btitle0",40,-20.,200);
root [4] tps[0]->Draw();
Warning in <MakeDefCanvas>: creating a default canvas with name c1

*** Break *** segmentation violation

( 0) 0xc14f5d40 StackTrace__11TUnixSystemFv + 0x28
[/afs/cern.ch/na49/library/local/ROOT/hpux10aCC/root/lib/libUnix.sl]

this did not work.
Also bname0->Draw() does not work.
(I do not know exactly why the new operator with placement requires
a syntax like `dummy new() ..', I use it in other programs
without `dummy', but CINT would complain..).
Later I want to iterate over the histogram objects in the
TClonesArray like

Float_t tEntries[5];
Char_t tWhat[30];
for(Int_t s = 0; s < 5; s++) {
sprintf(tWhat,"fTPS%d>>bname%d",s); // fTPS is leave in my TTree T
T->Draw(tWhat,"");
tEntries[s] = tps[s]->GetIntegral(); // also access other properties
here
}

.. which did not work so far.
Is there an example how to iterate through a TClonesArray
with histograms and fill them from e.g. a TTree or TNtuple?
I also need to access the histograms like in tps[s]->GetIntegral()

thanks for any help
Dirk