Logo ROOT   6.10/09
Reference Guide
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
gtime.C File Reference

Detailed Description

View in nbviewer Open in SWAN Example of TGraphTime.

pict1_gtime.C.png
#include "TCanvas.h"
#include "TRandom3.h"
#include "TMath.h"
#include "TText.h"
#include "TArrow.h"
#include "TGraphTime.h"
#include "TROOT.h"
void gtime(Int_t nsteps = 500, Int_t np=100) {
if (np > 1000) np = 1000;
Int_t color[1000];
Double_t rr[1000], phi[1000], dr[1000], size[1000];
Double_t xmin = -10, xmax = 10, ymin = -10, ymax = 10;
TGraphTime *g = new TGraphTime(nsteps,xmin,ymin,xmax,ymax);
g->SetTitle("TGraphTime demo;X domain;Y domain");
Int_t i,s;
for (i=0;i<np;i++) { //calculate some object parameters
rr[i] = r.Uniform(0.1*xmax,0.2*xmax);
phi[i] = r.Uniform(0,2*TMath::Pi());
dr[i] = r.Uniform(0,1)*0.9*xmax/Double_t(nsteps);
Double_t rc = r.Rndm();
color[i] = kRed;
if (rc > 0.3) color[i] = kBlue;
if (rc > 0.7) color[i] = kYellow;
size[i] = r.Uniform(0.5,6);
}
for (s=0;s<nsteps;s++) { //fill the TGraphTime step by step
for (i=0;i<np;i++) {
Double_t newr = rr[i]+dr[i]*s;
Double_t newsize = 0.2+size[i]*TMath::Abs(TMath::Sin(newr+10));
Double_t newphi = phi[i] + 0.01*s;
Double_t xx = newr*TMath::Cos(newphi);
Double_t yy = newr*TMath::Sin(newphi);
TMarker *m = new TMarker(xx,yy,20);
m->SetMarkerColor(color[i]);
m->SetMarkerSize(newsize);
g->Add(m,s);
if (i==np-1) g->Add(new TArrow(xmin,ymax,xx,yy,0.02,"-|>"), s);
}
g->Add(new TPaveLabel(.90,.92,.98,.97,Form("%d",s+1),"brNDC"),s);
}
g->Draw();
//save object to a file
TFile f("gtime.root","recreate");
g->Write("g");
//to view this object in another session do
// TFile f("gtime.root");
// g.Draw();
}
Author
Rene Brun

Definition in file gtime.C.