2 questions about TH1 class

Diego Casadei (Diego.Casadei@bo.infn.it)
Sat, 30 May 1998 22:06:33 +0200 (MET DST)


Hello Rooters,
I'd like to have a 2-index array of pointers to TH1 objects.

I write:

static TH1* (histvec[12][6]);

for(int i=0;i<6;i++){// don't worry about the sprintf: it does work
sprintf(string,"h%d",startvec[i]+30*(ilay-1)+ibar-1+14*isid);
histvec[max%12][i]=new TH1*((TH1*)gAMSDisplay->GetRootFile()->Get(string));
if(histvec[max%12][i]){
// do something
}
}

but I get an error:

cxx: Error: AMSTOFHist.cxx, line 667: In this statement, the referenced
type of the pointer value
"new TH1 ...((TH1 ...)gAMSDisplay->GetRootFile()->Get(string))" is
"pointer to TH1", which is not compatible with "TH1".
histvec[max%12][i]=new
TH1*((TH1*)gAMSDisplay->GetRootFile()->Get(string));
----^

Another question.
If I understand, each TH1 object has a unique string identifier.
I create with "new" many TH1 objects, within different calls of a static
function. I guess that if I create an object of TH1 with the same name
(string) as an existing one, I will not allocate additional space with
"new" but I will overwrite the existing one. At least I hope... if not my
application will use more and more memory...

Thanks

Diego Casadei
casadei@bo.infn.it
casadei@cern.ch
AMS-BO lab: tel. +39 51 630 5044
fax +39 51 630 5040