Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
Src4.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_spectrum
3/// Example to illustrate high resolution peak searching function (class TSpectrum2).
4///
5/// \macro_image
6/// \macro_output
7/// \macro_code
8///
9/// \authors Miroslav Morhac, Olivier Couet
10
11#include <TSpectrum2.h>
12
13void Src4()
14{
15 const Int_t nbinsx = 64;
16 const Int_t nbinsy = 64;
17 std::vector<Double_t *> source(nbinsx), dest(nbinsx);
18 for (Int_t i = 0; i < nbinsx; i++) {
19 source[i] = new Double_t[nbinsy];
20 dest[i] = new Double_t[nbinsy];
21 }
22 TString dir = gROOT->GetTutorialDir();
23 TString file = dir + "/legacy/spectrum/TSpectrum2.root";
24 TFile *f = TFile::Open(file.Data());
25 gStyle->SetOptStat(0);
26 auto search = (TH2F *)f->Get("search2");
27 TSpectrum2 s;
28 for (Int_t i = 0; i < nbinsx; i++) {
29 for (Int_t j = 0; j < nbinsy; j++) {
30 source[i][j] = search->GetBinContent(i + 1, j + 1);
31 }
32 }
33 Int_t nfound = s.SearchHighRes(source.data(), dest.data(), nbinsx, nbinsy, 3, 5, kFALSE, 10, kTRUE, 3);
34 printf("Found %d candidate peaks\n", nfound);
35 Double_t *PositionX = s.GetPositionX();
36 Double_t *PositionY = s.GetPositionY();
37 search->Draw("CONT");
38 TMarker m;
39 m.SetMarkerStyle(23);
40 m.SetMarkerColor(kRed);
41 for (Int_t i = 0; i < nfound; i++) {
42 printf("posx= %d, posy= %d, value=%d\n", (Int_t)(PositionX[i] + 0.5), (Int_t)(PositionY[i] + 0.5),
43 (Int_t)source[(Int_t)(PositionX[i] + 0.5)][(Int_t)(PositionY[i] + 0.5)]);
44 m.DrawMarker(PositionX[i], PositionY[i]);
45 }
46
47 for (Int_t i = 0; i < nbinsx; i++) {
48 delete[] source[i];
49 delete[] dest[i];
50 }
51}
#define f(i)
Definition RSha256.hxx:104
int Int_t
Signed integer 4 bytes (int).
Definition RtypesCore.h:59
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
double Double_t
Double 8 bytes.
Definition RtypesCore.h:73
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
@ kRed
Definition Rtypes.h:67
#define gROOT
Definition TROOT.h:417
externTStyle * gStyle
Definition TStyle.h:442
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
Definition TFile.h:130
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
Definition TFile.cxx:3787
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:345
Manages Markers.
Definition TMarker.h:22
Advanced 2-dimensional spectra processing.
Definition TSpectrum2.h:18
Double_t * GetPositionY() const
Definition TSpectrum2.h:45
Int_t SearchHighRes(Double_t **source, Double_t **dest, Int_t ssizex, Int_t ssizey, Double_t sigma, Double_t threshold, Bool_t backgroundRemove, Int_t deconIterations, Bool_t markov, Int_t averWindow)
Double_t * GetPositionX() const
Definition TSpectrum2.h:44
Basic string class.
Definition TString.h:138
const char * Data() const
Definition TString.h:384
TMarker m
Definition textangle.C:8