Hi Glen,
Multi-dimensional arrays are supported but only one variable dimension
is allowed.
Rene Brun
On Thu, 6 Sep 2001, Glen R. Salo wrote:
> Hello,
>
> I don't understand why the following scripts fail (I patterned it off of
> tree3.C). If the statements which refer to px2 are removed, it runs just
> fine. But I want to be able to have multiple 2 dimensional branches
> within the same tree. Is this possible? I'm running version 3.02/00 (as
> of August 29th) on an updated RedHat 7.1 x86 machine.
>
> Thanks,
>
> Glen
>
> void twodw() {
>
> const Int_t kMaxDim = 50;
> Int_t nx;
> Int_t ny;
> Double_t px1[kMaxDim][kMaxDim];
> Double_t px2[kMaxDim][kMaxDim];
>
> TFile f("twod.root","recreate");
> TTree *twod = new TTree("twod","Reconst ntuple");
> twod->Branch("nx",&nx,"nx/I");
> twod->Branch("ny",&ny,"ny/I");
> twod->Branch("px1",px1,"px1[nx][ny]/D");
> twod->Branch("px2",px2,"px2[nx][ny]/D");
>
> nx = gRandom->Rndm()*(kMaxDim-1);
> ny = gRandom->Rndm()*(kMaxDim-1);
> for (Int_t i=0;i<100;i++) {
> for (Int_t j=0;j<nx;j++) {
> for (Int_t k=0;k<ny;k++) {
> px1[j][k] = gRandom->Gaus(0,1);
> px2[j][k] = gRandom->Gaus(0,1);
> }
> }
> twod->Fill();
> }
> twod->Print();
> f.cd();
> twod->Write();
> }
>
> void twodr()
> {
> TFile *f = new TFile("twod.root");
> TTree *twod = (TTree*)f->Get("twod");
> twod->Draw("px1");
> }
>
> void twod()
> {
> twodw();
> twodr();
> }
>
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:59 MET