Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
gtime2.C File Reference

Detailed Description

View in nbviewer Open in SWAN
Example of TGraphTime showing how the class could be used to visualize a set of particles with their time stamp in a MonteCarlo program.

#include "TRandom3.h"
#include "TMath.h"
#include "TMarker.h"
#include "TPaveLabel.h"
#include "TArrow.h"
#include "TGraphTime.h"
#include <vector>
void gtime2(Int_t nsteps = 200, Int_t np = 5000)
{
if (np > 5000) np = 5000;
std::vector<Int_t> color(np);
std::vector<Double_t> cosphi(np), sinphi(np), speed(np);
Double_t xmin = 0, xmax = 10, ymin = -10, ymax = 10;
g->SetTitle("TGraphTime demo 2;X;Y");
Double_t fact = xmax/Double_t(nsteps);
for (Int_t i = 0; i < np; i++) { // calculate some object parameters
speed[i] = r.Uniform(0.5, 1);
Double_t phi = r.Gaus(0, TMath::Pi() / 6.);
cosphi[i] = fact * speed[i] * TMath::Cos(phi);
sinphi[i] = fact * speed[i] * TMath::Sin(phi);
Double_t rc = r.Rndm();
color[i] = kRed;
if (rc > 0.3) color[i] = kBlue;
if (rc > 0.7) color[i] = kYellow;
}
for (Int_t s = 0; s < nsteps; s++) { // fill the TGraphTime step by step
for (Int_t i = 0; i < np; i++) {
Double_t xx = s*cosphi[i];
if (xx < xmin) continue;
Double_t yy = s*sinphi[i];
TMarker *m = new TMarker(xx,yy,25);
m->SetMarkerColor(color[i]);
m->SetMarkerSize(1.5 -s/(speed[i]*nsteps));
g->Add(m, s);
}
g->Add(new TPaveLabel(.70,.92,.98,.99,TString::Format("shower at %5.3f nsec",3.*s/nsteps),"brNDC"),s);
}
g->Draw();
// store object as animated gif
// g->SaveAnimatedGif("gtime2.gif");
// start animation, can be stopped with g->Animate(kFALSE);
// g->Animate();
}
#define g(i)
Definition RSha256.hxx:105
int Int_t
Definition RtypesCore.h:45
double Double_t
Definition RtypesCore.h:59
@ kRed
Definition Rtypes.h:66
@ kBlue
Definition Rtypes.h:66
@ kYellow
Definition Rtypes.h:66
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
float xmin
float ymin
float xmax
float ymax
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
Definition TAttMarker.h:38
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Definition TAttMarker.h:45
TGraphTime is used to draw a set of objects evolving with nsteps in time between tmin and tmax.
Definition TGraphTime.h:30
Manages Markers.
Definition TMarker.h:22
A Pave (see TPave) with a text centered in the Pave.
Definition TPaveLabel.h:20
Random number generator class based on M.
Definition TRandom3.h:27
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Definition TString.cxx:2378
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
Definition TMath.h:594
constexpr Double_t Pi()
Definition TMath.h:37
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
Definition TMath.h:588
TMarker m
Definition textangle.C:8
Author
Rene Brun

Definition in file gtime2.C.