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