Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
Src3.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_spectrum
3/// \notebook
4/// Example to illustrate high resolution peak searching function (class TSpectrum2).
5///
6/// \macro_image
7/// \macro_output
8/// \macro_code
9///
10/// \authors Miroslav Morhac, Olivier Couet
11
12#include <TSpectrum2.h>
13
14void Src3()
15{
16 const Int_t nbinsx = 64;
17 const Int_t nbinsy = 64;
18 std::vector<Double_t *> source(nbinsx), dest(nbinsx);
19 for (Int_t i = 0; i < nbinsx; i++) {
20 source[i] = new Double_t[nbinsy];
21 dest[i] = new Double_t[nbinsy];
22 }
23 TString dir = gROOT->GetTutorialDir();
24 TString file = dir + "/spectrum/TSpectrum2.root";
25 TFile *f = TFile::Open(file.Data());
27 auto search = (TH2F *)f->Get("search1");
28 TSpectrum2 s;
29 for (Int_t i = 0; i < nbinsx; i++) {
30 for (Int_t j = 0; j < nbinsy; j++) {
31 source[i][j] = search->GetBinContent(i + 1, j + 1);
32 }
33 }
34 Int_t nfound = s.SearchHighRes(source.data(), dest.data(), nbinsx, nbinsy, 2, 2, kFALSE, 3, kFALSE, 1); // 3, 10, 100
35 printf("Found %d candidate peaks\n", nfound);
36 Double_t *PositionX = s.GetPositionX();
37 Double_t *PositionY = s.GetPositionY();
38 search->Draw("CONT");
39 TMarker m;
40 m.SetMarkerStyle(23);
42 for (Int_t i = 0; i < nfound; i++) {
43 printf("posx= %d, posy= %d, value=%d\n", (Int_t)(PositionX[i] + 0.5), (Int_t)(PositionY[i] + 0.5),
44 (Int_t)source[(Int_t)(PositionX[i] + 0.5)][(Int_t)(PositionY[i] + 0.5)]);
45 m.DrawMarker(PositionX[i], PositionY[i]);
46 }
47
48 for (Int_t i = 0; i < nbinsx; i++) {
49 delete[] source[i];
50 delete[] dest[i];
51 }
52}
#define f(i)
Definition RSha256.hxx:104
int Int_t
Definition RtypesCore.h:45
constexpr Bool_t kFALSE
Definition RtypesCore.h:94
double Double_t
Definition RtypesCore.h:59
@ kRed
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 dest
#define gROOT
Definition TROOT.h:406
R__EXTERN TStyle * gStyle
Definition TStyle.h:436
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
Definition TAttMarker.h:38
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
Definition TAttMarker.h:40
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Definition TFile.h:53
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:4089
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:307
Manages Markers.
Definition TMarker.h:22
virtual TMarker * DrawMarker(Double_t x, Double_t y)
Draw this marker with new coordinates.
Definition TMarker.cxx:208
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)
This function searches for peaks in source spectrum It is based on deconvolution method.
Double_t * GetPositionX() const
Definition TSpectrum2.h:44
Basic string class.
Definition TString.h:139
const char * Data() const
Definition TString.h:376
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
Definition TStyle.cxx:1640
TMarker m
Definition textangle.C:8