16 const Int_t nbinsx = 64;
17 const Int_t nbinsy = 64;
19 Double_t xmax = (Double_t)nbinsx;
21 Double_t ymax = (Double_t)nbinsy;
22 Double_t** source =
new Double_t*[nbinsx];
23 for (i=0;i<nbinsx;i++)
24 source[i]=
new Double_t[nbinsy];
25 Double_t** dest =
new Double_t*[nbinsx];
26 for (i=0;i<nbinsx;i++)
27 dest[i]=
new Double_t[nbinsy];
28 TString dir = gROOT->GetTutorialDir();
29 TString file = dir+
"/spectrum/TSpectrum2.root";
30 TFile *f =
new TFile(file.Data());
31 gStyle->SetOptStat(0);
32 auto search = (TH2F*) f->Get(
"search4");
33 auto *s =
new TSpectrum2();
34 for (i = 0; i < nbinsx; i++){
35 for (j = 0; j < nbinsy; j++){
36 source[i][j] = search->GetBinContent(i + 1,j + 1);
39 nfound = s->SearchHighRes(source, dest, nbinsx, nbinsy, 2, 5, kTRUE, 3, kFALSE, 3);
40 printf(
"Found %d candidate peaks\n",nfound);
41 Double_t *PositionX = s->GetPositionX();
42 Double_t *PositionY = s->GetPositionY();
44 auto m =
new TMarker();
45 m->SetMarkerStyle(23);
46 m->SetMarkerColor(kRed);
47 for (i=0;i<nfound;i++) {
48 printf(
"posx= %d, posy= %d, value=%d\n",(Int_t)(PositionX[i]+0.5), (Int_t)(PositionY[i]+0.5),
49 (Int_t)source[(Int_t)(PositionX[i]+0.5)][(Int_t)(PositionY[i]+0.5)]);
50 m->DrawMarker(PositionX[i],PositionY[i]);