Logo ROOT   6.14/05
Reference Guide
circular.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_tree
3 /// \notebook -nodraw
4 /// Example of a circular Tree
5 ///
6 /// Circular Trees are interesting in online real time environments
7 /// to store the results of the last maxEntries events.
8 /// for more info, see TTree::SetCircular.
9 /// Circular trees must be memory resident.
10 ///
11 /// \macro_code
12 ///
13 /// \author Rene Brun
14 
15 void circular() {
16  auto T = new TTree("T","test circular buffers");
17  TRandom r;
18  Float_t px,py,pz;
19  Double_t randomNum;
20  UShort_t i;
21  T->Branch("px",&px,"px/F");
22  T->Branch("py",&py,"px/F");
23  T->Branch("pz",&pz,"px/F");
24  T->Branch("random",&randomNum,"random/D");
25  T->Branch("i",&i,"i/s");
26  T->SetCircular(20000); //keep a maximum of 20000 entries in memory
27  for (i = 0; i < 65000; i++) {
28  r.Rannor(px,py);
29  pz = px*px + py*py;
30  randomNum = r.Rndm();
31  T->Fill();
32  }
33  T->Print();
34 }
35 
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
Definition: TRandom.cxx:481
float Float_t
Definition: RtypesCore.h:53
double T(double x)
Definition: ChebyshevPol.h:34
unsigned short UShort_t
Definition: RtypesCore.h:36
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:27
virtual Double_t Rndm()
Machine independent random number generator.
Definition: TRandom.cxx:533
ROOT::R::TRInterface & r
Definition: Object.C:4
double Double_t
Definition: RtypesCore.h:55
A TTree object has a header with a name and a title.
Definition: TTree.h:70