Thanks Rene, Do you have an example of a structure? .i.e. { TFile *f = new TFile("peter.root","recreate"); Int_t nPhot; struct PhotStr { Float_t E; Float_t Px; Float_t Py; Float_t Pz; Float_t Arm; Float_t PhotProb; } Phot[500]; TTree* nEmcPhotons = new TTree("nEmcPhotons","EMC Photons"); // // How would the branch creation code be modified below? // nEmcPhotons->Branch("nPhot",&nPhot,"nPhot/I"); nEmcPhotons->Branch("E",E,"E[nPhot]/F"); nEmcPhotons->Branch("Px",Px,"Px[nPhot]/F"); nEmcPhotons->Branch("Py",Py,"Py[nPhot]/F"); nEmcPhotons->Branch("Pz",Pz,"Pz[nPhot]/F"); nEmcPhotons->Branch("Arm", Arm,"Arm[nPhot]/F"); nEmcPhotons->Branch("PhotProb", PhotProb,"PhotProb[nPhot]/F"); for (Int_t i=0;i<1000;i++) { nPhot = 500*gRandom->Rndm(); for (Int_t j=0;j<nPhot;j++) { Phot[j].E = j; Phot[j].Px = j+1; Phot[j].Py = j+2; Phot[j].Pz = j+3; Phot[j].Arm = j+4; Phot[j].PhotProb = j+5; } nEmcPhotons->Fill(); } nEmcPhotons->Print(); nEmcPhotons->Write(); f->Close(); delete f; } On Oct 29, 10:05pm, Rene Brun wrote: > Subject: Re: [ROOT] variable length "arrays" > Hi Stephen, > You can find an example below > > Rene Brun > > > > { > TFile *f = new TFile("peter.root","recreate"); > Int_t nPhot; > Float_t E[500]; > Float_t Px[500]; > Float_t Py[500]; > Float_t Pz[500]; > Float_t Arm[500]; > Float_t PhotProb[500]; > > TTree* nEmcPhotons = new TTree("nEmcPhotons","EMC Photons"); > nEmcPhotons->Branch("nPhot",&nPhot,"nPhot/I"); > nEmcPhotons->Branch("E",E,"E[nPhot]/F"); > nEmcPhotons->Branch("Px",Px,"Px[nPhot]/F"); > nEmcPhotons->Branch("Py",Py,"Py[nPhot]/F"); > nEmcPhotons->Branch("Pz",Pz,"Pz[nPhot]/F"); > nEmcPhotons->Branch("Arm", Arm,"Arm[nPhot]/F"); > nEmcPhotons->Branch("PhotProb", PhotProb,"PhotProb[nPhot]/F"); > > for (Int_t i=0;i<1000;i++) { > nPhot = 500*gRandom->Rndm(); > for (Int_t j=0;j<nPhot;j++) { > E[j] = j; > Px[j] = j+1; > Py[j] = j+2; > Pz[j] = j+3; > Arm[j] = j+4; > PhotProb[j] = j+5; > } > nEmcPhotons->Fill(); > } > nEmcPhotons->Print(); > nEmcPhotons->Write(); > f->Close(); > delete f; > } > > On Sun, 29 Oct 2000, Stephen Adler wrote: > > > I'm trying to build a root tree with variable length arrays. In the > > old days of paw/ntuples, using column wise ntuples, one was able to > > define an array with a length as in > > > > alen[0:250],tracks[1:alen] > > > > or something like that. I can't remember the paw/ntuple columb-wise > > syntax becuase I haven't used it in years. In anycase, I want to do > > the same with a root tree. Do I define a branch inside a branch or > > something like that? > > > > Cheers. Steve. > > >-- End of excerpt from Rene Brun
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:36 MET