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

Detailed Description

View in nbviewer Open in SWAN
Example to illustrate high resolution peak searching function (class TSpectrum2).

Found 5 candidate peaks
posx= 216, posy= 69, value=1502
posx= 191, posy= 188, value=1404
posx= 66, posy= 51, value=1555
posx= 109, posy= 100, value=1260
posx= 40, posy= 222, value=978
#include <TSpectrum2.h>
void Src2()
{
const Int_t nbinsx = 256;
const Int_t nbinsy = 256;
std::vector<Double_t *> source(nbinsx), dest(nbinsx);
for (Int_t i = 0; i < nbinsx; i++) {
source[i] = new Double_t[nbinsy];
dest[i] = new Double_t[nbinsy];
}
TString dir = gROOT->GetTutorialDir();
TString file = dir + "/spectrum/TSpectrum2.root";
TFile *f = TFile::Open(file.Data());
auto search = (TH2F *)f->Get("back3");
for (Int_t i = 0; i < nbinsx; i++) {
for (Int_t j = 0; j < nbinsy; j++) {
source[i][j] = search->GetBinContent(i + 1, j + 1);
}
}
Int_t nfound = s.SearchHighRes(source.data(), dest.data(), nbinsx, nbinsy, 2, 10, kTRUE, 10, kFALSE, 3);
printf("Found %d candidate peaks\n", nfound);
Double_t *PositionX = s.GetPositionX();
Double_t *PositionY = s.GetPositionY();
search->Draw("COL");
for (Int_t i = 0; i < nfound; i++) {
printf("posx= %d, posy= %d, value=%d\n", (Int_t)(PositionX[i] + 0.5), (Int_t)(PositionY[i] + 0.5),
(Int_t)source[(Int_t)(PositionX[i] + 0.5)][(Int_t)(PositionY[i] + 0.5)]);
m.DrawMarker(PositionX[i], PositionY[i]);
}
for (Int_t i = 0; i < nbinsx; i++) {
delete[] source[i];
delete[] dest[i];
}
}
#define f(i)
Definition RSha256.hxx:104
int Int_t
Definition RtypesCore.h:45
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
double Double_t
Definition RtypesCore.h:59
constexpr Bool_t kTRUE
Definition RtypesCore.h:100
@ kRed
Definition Rtypes.h:66
#define gROOT
Definition TROOT.h:407
R__EXTERN TStyle * gStyle
Definition TStyle.h:433
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 composed of a header, followed by consecutive data records (TKey instances) with a wel...
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:4075
2-D histogram with a float per channel (see TH1 documentation)}
Definition TH2.h:258
Manages Markers.
Definition TMarker.h:22
virtual TMarker * DrawMarker(Double_t x, Double_t y)
Draw this marker with new coordinates.
Definition TMarker.cxx:204
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
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:1636
Definition file.py:1
TMarker m
Definition textangle.C:8
#define dest(otri, vertexptr)
Definition triangle.c:1041
Authors
Miroslav Morhac, Olivier Couet

Definition in file Src2.C.