This example is a variant of hsimple.C but using a TTree instead of a TNtuple. 
It shows:
- how to fill a Tree with a few simple variables.
 
- how to read this Tree
 
- how to browse and analyze the Tree via the TBrowser and TTreeViewer This example can be run in many different ways:
 
- Using the Cling interpreter 
 
- Using the automatic compiler interface 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
  One can also run the write and read parts in two separate sessions. For example following one of the sessions above, one can start the session:   
 
{
   
 
   
   TFile f(
"tree1.root",
"recreate");
 
   TTree t1(
"t1",
"a simple Tree with simple variables");
 
   t1.Branch(
"px",&px,
"px/F");
 
   t1.Branch(
"py",&py,
"py/F");
 
   t1.Branch(
"pz",&pz,
"pz/F");
 
   t1.Branch(
"ev",&
ev,
"ev/I");
 
 
   
   for (
Int_t i=0;i<10000;i++) {
 
     pz = px*px + py*py;
  }
 
  
  
}
 
{
   
 
   
   
   t1->SetBranchAddress(
"px",&px);
 
   t1->SetBranchAddress(
"py",&py);
 
   t1->SetBranchAddress(
"pz",&pz);
 
   t1->SetBranchAddress(
"ev",&
ev);
 
 
   
   TH1F *
hpx   = 
new TH1F(
"hpx",
"px distribution",100,-3,3);
 
 
   
  }
 
  
  
  if (
gROOT->IsBatch()) 
return;
 
  
  
  
 
  
  t1->ResetBranchAddresses();
 
}
 
}
R__EXTERN TRandom * gRandom
 
Using a TBrowser one can browse all ROOT objects.
 
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
 
1-D histogram with a float per channel (see TH1 documentation)
 
2-D histogram with a float per channel (see TH1 documentation)
 
Double_t Rndm() override
Machine independent random number generator.
 
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
 
A TTree represents a columnar dataset.
 
 
- Author
 - Rene Brun 
 
Definition in file tree1.C.