// Example of a circular Tree // Circular Trees are interesting in online real time environments // to store the results of the last maxEntries events. // for more info, see TTree::SetCircular // Author: Rene Brun void circular() { gROOT->cd(); //make sure that the Tree is memory resident TTree *T = new TTree("T","test circular buffers"); TRandom r; Float_t px,py,pz; Double_t random; UShort_t i; T->Branch("px",&px,"px/F"); T->Branch("py",&py,"px/F"); T->Branch("pz",&pz,"px/F"); T->Branch("random",&random,"random/D"); T->Branch("i",&i,"i/s"); T->SetCircular(20); //keep a maximum of 20000 entries in memory for (i = 0; i < 65; i++) { //r.Rannor(px,py); //pz = px*px + py*py; px = py = pz = i; //random = r.Rndm(); random = px + py + pz; T->Fill(); cout<GetEntries()<Print(); T->SetBranchAddress("px",&px); T->SetBranchAddress("py",&py); T->SetBranchAddress("pz",&pz); T->SetBranchAddress("random",&random); unsigned int nentries = T->GetEntries(); for(unsigned int j=0; jGetEntry(j); cout<