#include "TFile.h" #include "TTree.h" #include "TRandom.h" class Detector { Int_t fNhit; //Number of hits Double_t *fX; //[fNhit] array of x coordinates Double_t *fY; //[fNhit] array of y coordinates public: Detector() {fNhit=0; fX=0; fY=0;} void Fill() { fNhit = Int_t(gRandom->Uniform(0,50)); delete [] fX; delete [] fY; fX=fY=0; if (fNhit<=0) return; fX = new Double_t[fNhit]; fY = new Double_t[fNhit]; for (Int_t i=0;iGaus(0,1); fY[i] = gRandom->Gaus(0,1); } } virtual ~Detector() {delete [] fX; delete [] fY;} }; void dethit() { TFile f("dethit.root","recreate"); TTree *T = new TTree("T","Luiz tree"); const Int_t ndet = 10; Detector *det[ndet]; //create Tree branches char bname[20]; for (Int_t i=0;iBranch(bname,"Detector",&det[i]); } //create some events for (Int_t event=0;event<1000;event++) { for (Int_t i=0;iFill(); } T->Fill(); } T->Write(); T->Print(); delete T; }