Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
seism.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_graphs
3 /// \notebook -js
4 /// Strip chart example.
5 ///
6 /// \macro_image
7 /// \macro_code
8 ///
9 /// \author Rene Brun
10 
11 #include "TStopwatch.h"
12 #include "TDatime.h"
13 #include "TStyle.h"
14 #include "TH1F.h"
15 #include "TCanvas.h"
16 #include "TSystem.h"
17 #include "TRandom.h"
18 #include <stdio.h>
19 
20 void seism() {
21 
22  TStopwatch sw; sw.Start();
23  //set time offset
24  TDatime dtime;
25  gStyle->SetTimeOffset(dtime.Convert());
26 
27  TCanvas *c1 = new TCanvas("c1","Time on axis",10,10,1000,500);
28  c1->SetGrid();
29 
30  Float_t bintime = 1; //one bin = 1 second. change it to set the time scale
31  TH1F *ht = new TH1F("ht","The ROOT seism",10,0,10*bintime);
32  Float_t signalval = 1000;
33  ht->SetMaximum( signalval);
34  ht->SetMinimum(-signalval);
35  ht->SetStats(0);
36  ht->SetLineColor(2);
37  ht->GetXaxis()->SetTimeDisplay(1);
38  ht->GetYaxis()->SetNdivisions(520);
39  ht->Draw();
40 
41  for (Int_t i=1;i<2300;i++) {
42  //======= Build a signal : noisy damped sine ======
43  Float_t noise = gRandom->Gaus(0,120);
44  if (i > 700) noise += signalval*sin((i-700.)*6.28/30)*exp((700.-i)/300.);
45  ht->SetBinContent(i,noise);
46  c1->Modified();
47  c1->Update();
48  gSystem->ProcessEvents(); //canvas can be edited during the loop
49  }
50  printf("Real Time = %8.3fs, Cpu Time = %8.3fs\n",sw.RealTime(),sw.CpuTime());
51 }