Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
Smooth.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_spectrum
3 /// \notebook
4 /// Example to illustrate the Markov smoothing (class TSpectrum2).
5 ///
6 /// \macro_image
7 /// \macro_code
8 ///
9 /// \authors Miroslav Morhac, Olivier Couet
10 
11 #include <TSpectrum2.h>
12 
13 void Smooth() {
14  Int_t i, j;
15  const Int_t nbinsx = 256;
16  const Int_t nbinsy = 256;
17  Double_t xmin = 0;
18  Double_t xmax = (Double_t)nbinsx;
19  Double_t ymin = 0;
20  Double_t ymax = (Double_t)nbinsy;
21  Double_t** source = new Double_t*[nbinsx];
22  for (i=0;i<nbinsx;i++)
23  source[i] = new Double_t[nbinsy];
24  TString dir = gROOT->GetTutorialDir();
25  TString file = dir+"/spectrum/TSpectrum2.root";
26  TFile *f = new TFile(file.Data());
27  auto smooth = (TH2F*) f->Get("smooth1");
28  gStyle->SetOptStat(0);
29  auto *s = new TSpectrum2();
30  for (i = 0; i < nbinsx; i++){
31  for (j = 0; j < nbinsy; j++){
32  source[i][j] = smooth->GetBinContent(i + 1,j + 1);
33  }
34  }
35  s->SmoothMarkov(source,nbinsx,nbinsx,3); //5,7
36  for (i = 0; i < nbinsx; i++){
37  for (j = 0; j < nbinsy; j++)
38  smooth->SetBinContent(i + 1,j + 1, source[i][j]);
39  }
40  smooth->Draw("SURF2");
41 }