#include #include "TCanvas.h" #include "TH1.h" #include "TF1.h" #include "TRandom.h" #include "TSpectrum.h" #include "TVirtualFitter.h" #include "TMath.h" #include #include "Riostream.h" using namespace std; void drawgaus() { // old sigma / new sigma = new sigma range / old sigma range. // i.e. 43.75/70 = 500/800 // use code "div.C" to set Divisions. TCanvas *c1 = new TCanvas("c1", "c1", 800, 400); TCanvas *c2 = new TCanvas("c2", "c2", 800, 400); TH1F* decon= new TH1F("decon","Deconvolution through rebinning",160,5750,6250); TH1F* gaus2= new TH1F("gaus2","One Dimensional Gaussian",800, 5600, 6400); TH1F* gaus1= new TH1F("gaus1","One Dimensional Gaussian",800, 5600, 6400); gaus1->SetXTitle("Sigma"); gaus1->SetYTitle("Counts per 0.1 sigma"); for (int i=0; i<1000000; ++i) { double x = gRandom->Gaus(6000,70); double y = gRandom->Gaus(6000,43.75); gaus2->Fill(y); gaus1->Fill(x); } c1->cd(); gaus2->SetLineColor(3); gaus2->Draw(); gaus1->SetLineColor(2); gaus1->Draw("same"); for(i=0;i<800;i++) { //Divisions if(i>0&&i<5)decon->AddBinContent(1,gaus1->GetBinContent(i)); if(i>5&&i<10)decon->AddBinContent(2,gaus1->GetBinContent(i)); if(i>10&&i<15)decon->AddBinContent(3,gaus1->GetBinContent(i)); if(i>15&&i<20)decon->AddBinContent(4,gaus1->GetBinContent(i)); if(i>20&&i<25)decon->AddBinContent(5,gaus1->GetBinContent(i)); if(i>25&&i<30)decon->AddBinContent(6,gaus1->GetBinContent(i)); if(i>30&&i<35)decon->AddBinContent(7,gaus1->GetBinContent(i)); if(i>35&&i<40)decon->AddBinContent(8,gaus1->GetBinContent(i)); if(i>40&&i<45)decon->AddBinContent(9,gaus1->GetBinContent(i)); if(i>45&&i<50)decon->AddBinContent(10,gaus1->GetBinContent(i)); if(i>50&&i<55)decon->AddBinContent(11,gaus1->GetBinContent(i)); if(i>55&&i<60)decon->AddBinContent(12,gaus1->GetBinContent(i)); if(i>60&&i<65)decon->AddBinContent(13,gaus1->GetBinContent(i)); if(i>65&&i<70)decon->AddBinContent(14,gaus1->GetBinContent(i)); if(i>70&&i<75)decon->AddBinContent(15,gaus1->GetBinContent(i)); if(i>75&&i<80)decon->AddBinContent(16,gaus1->GetBinContent(i)); if(i>80&&i<85)decon->AddBinContent(17,gaus1->GetBinContent(i)); if(i>85&&i<90)decon->AddBinContent(18,gaus1->GetBinContent(i)); if(i>90&&i<95)decon->AddBinContent(19,gaus1->GetBinContent(i)); if(i>95&&i<100)decon->AddBinContent(20,gaus1->GetBinContent(i)); if(i>100&&i<105)decon->AddBinContent(21,gaus1->GetBinContent(i)); if(i>105&&i<110)decon->AddBinContent(22,gaus1->GetBinContent(i)); if(i>110&&i<115)decon->AddBinContent(23,gaus1->GetBinContent(i)); if(i>115&&i<120)decon->AddBinContent(24,gaus1->GetBinContent(i)); if(i>120&&i<125)decon->AddBinContent(25,gaus1->GetBinContent(i)); if(i>125&&i<130)decon->AddBinContent(26,gaus1->GetBinContent(i)); if(i>130&&i<135)decon->AddBinContent(27,gaus1->GetBinContent(i)); if(i>135&&i<140)decon->AddBinContent(28,gaus1->GetBinContent(i)); if(i>140&&i<145)decon->AddBinContent(29,gaus1->GetBinContent(i)); if(i>145&&i<150)decon->AddBinContent(30,gaus1->GetBinContent(i)); if(i>150&&i<155)decon->AddBinContent(31,gaus1->GetBinContent(i)); if(i>155&&i<160)decon->AddBinContent(32,gaus1->GetBinContent(i)); if(i>160&&i<165)decon->AddBinContent(33,gaus1->GetBinContent(i)); if(i>165&&i<170)decon->AddBinContent(34,gaus1->GetBinContent(i)); if(i>170&&i<175)decon->AddBinContent(35,gaus1->GetBinContent(i)); if(i>175&&i<180)decon->AddBinContent(36,gaus1->GetBinContent(i)); if(i>180&&i<185)decon->AddBinContent(37,gaus1->GetBinContent(i)); if(i>185&&i<190)decon->AddBinContent(38,gaus1->GetBinContent(i)); if(i>190&&i<195)decon->AddBinContent(39,gaus1->GetBinContent(i)); if(i>195&&i<200)decon->AddBinContent(40,gaus1->GetBinContent(i)); if(i>200&&i<205)decon->AddBinContent(41,gaus1->GetBinContent(i)); if(i>205&&i<210)decon->AddBinContent(42,gaus1->GetBinContent(i)); if(i>210&&i<215)decon->AddBinContent(43,gaus1->GetBinContent(i)); if(i>215&&i<220)decon->AddBinContent(44,gaus1->GetBinContent(i)); if(i>220&&i<225)decon->AddBinContent(45,gaus1->GetBinContent(i)); if(i>225&&i<230)decon->AddBinContent(46,gaus1->GetBinContent(i)); if(i>230&&i<235)decon->AddBinContent(47,gaus1->GetBinContent(i)); if(i>235&&i<240)decon->AddBinContent(48,gaus1->GetBinContent(i)); if(i>240&&i<245)decon->AddBinContent(49,gaus1->GetBinContent(i)); if(i>245&&i<250)decon->AddBinContent(50,gaus1->GetBinContent(i)); if(i>250&&i<255)decon->AddBinContent(51,gaus1->GetBinContent(i)); if(i>255&&i<260)decon->AddBinContent(52,gaus1->GetBinContent(i)); if(i>260&&i<265)decon->AddBinContent(53,gaus1->GetBinContent(i)); if(i>265&&i<270)decon->AddBinContent(54,gaus1->GetBinContent(i)); if(i>270&&i<275)decon->AddBinContent(55,gaus1->GetBinContent(i)); if(i>275&&i<280)decon->AddBinContent(56,gaus1->GetBinContent(i)); if(i>280&&i<285)decon->AddBinContent(57,gaus1->GetBinContent(i)); if(i>285&&i<290)decon->AddBinContent(58,gaus1->GetBinContent(i)); if(i>290&&i<295)decon->AddBinContent(59,gaus1->GetBinContent(i)); if(i>295&&i<300)decon->AddBinContent(60,gaus1->GetBinContent(i)); if(i>300&&i<305)decon->AddBinContent(61,gaus1->GetBinContent(i)); if(i>305&&i<310)decon->AddBinContent(62,gaus1->GetBinContent(i)); if(i>310&&i<315)decon->AddBinContent(63,gaus1->GetBinContent(i)); if(i>315&&i<320)decon->AddBinContent(64,gaus1->GetBinContent(i)); if(i>320&&i<325)decon->AddBinContent(65,gaus1->GetBinContent(i)); if(i>325&&i<330)decon->AddBinContent(66,gaus1->GetBinContent(i)); if(i>330&&i<335)decon->AddBinContent(67,gaus1->GetBinContent(i)); if(i>335&&i<340)decon->AddBinContent(68,gaus1->GetBinContent(i)); if(i>340&&i<345)decon->AddBinContent(69,gaus1->GetBinContent(i)); if(i>345&&i<350)decon->AddBinContent(70,gaus1->GetBinContent(i)); if(i>350&&i<355)decon->AddBinContent(71,gaus1->GetBinContent(i)); if(i>355&&i<360)decon->AddBinContent(72,gaus1->GetBinContent(i)); if(i>360&&i<365)decon->AddBinContent(73,gaus1->GetBinContent(i)); if(i>365&&i<370)decon->AddBinContent(74,gaus1->GetBinContent(i)); if(i>370&&i<375)decon->AddBinContent(75,gaus1->GetBinContent(i)); if(i>375&&i<380)decon->AddBinContent(76,gaus1->GetBinContent(i)); if(i>380&&i<385)decon->AddBinContent(77,gaus1->GetBinContent(i)); if(i>385&&i<390)decon->AddBinContent(78,gaus1->GetBinContent(i)); if(i>390&&i<395)decon->AddBinContent(79,gaus1->GetBinContent(i)); if(i>395&&i<400)decon->AddBinContent(80,gaus1->GetBinContent(i)); if(i>400&&i<405)decon->AddBinContent(81,gaus1->GetBinContent(i)); if(i>405&&i<410)decon->AddBinContent(82,gaus1->GetBinContent(i)); if(i>410&&i<415)decon->AddBinContent(83,gaus1->GetBinContent(i)); if(i>415&&i<420)decon->AddBinContent(84,gaus1->GetBinContent(i)); if(i>420&&i<425)decon->AddBinContent(85,gaus1->GetBinContent(i)); if(i>425&&i<430)decon->AddBinContent(86,gaus1->GetBinContent(i)); if(i>430&&i<435)decon->AddBinContent(87,gaus1->GetBinContent(i)); if(i>435&&i<440)decon->AddBinContent(88,gaus1->GetBinContent(i)); if(i>440&&i<445)decon->AddBinContent(89,gaus1->GetBinContent(i)); if(i>445&&i<450)decon->AddBinContent(90,gaus1->GetBinContent(i)); if(i>450&&i<455)decon->AddBinContent(91,gaus1->GetBinContent(i)); if(i>455&&i<460)decon->AddBinContent(92,gaus1->GetBinContent(i)); if(i>460&&i<465)decon->AddBinContent(93,gaus1->GetBinContent(i)); if(i>465&&i<470)decon->AddBinContent(94,gaus1->GetBinContent(i)); if(i>470&&i<475)decon->AddBinContent(95,gaus1->GetBinContent(i)); if(i>475&&i<480)decon->AddBinContent(96,gaus1->GetBinContent(i)); if(i>480&&i<485)decon->AddBinContent(97,gaus1->GetBinContent(i)); if(i>485&&i<490)decon->AddBinContent(98,gaus1->GetBinContent(i)); if(i>490&&i<495)decon->AddBinContent(99,gaus1->GetBinContent(i)); if(i>495&&i<500)decon->AddBinContent(100,gaus1->GetBinContent(i)); if(i>500&&i<505)decon->AddBinContent(101,gaus1->GetBinContent(i)); if(i>505&&i<510)decon->AddBinContent(102,gaus1->GetBinContent(i)); if(i>510&&i<515)decon->AddBinContent(103,gaus1->GetBinContent(i)); if(i>515&&i<520)decon->AddBinContent(104,gaus1->GetBinContent(i)); if(i>520&&i<525)decon->AddBinContent(105,gaus1->GetBinContent(i)); if(i>525&&i<530)decon->AddBinContent(106,gaus1->GetBinContent(i)); if(i>530&&i<535)decon->AddBinContent(107,gaus1->GetBinContent(i)); if(i>535&&i<540)decon->AddBinContent(108,gaus1->GetBinContent(i)); if(i>540&&i<545)decon->AddBinContent(109,gaus1->GetBinContent(i)); if(i>545&&i<550)decon->AddBinContent(110,gaus1->GetBinContent(i)); if(i>550&&i<555)decon->AddBinContent(111,gaus1->GetBinContent(i)); if(i>555&&i<560)decon->AddBinContent(112,gaus1->GetBinContent(i)); if(i>560&&i<565)decon->AddBinContent(113,gaus1->GetBinContent(i)); if(i>565&&i<570)decon->AddBinContent(114,gaus1->GetBinContent(i)); if(i>570&&i<575)decon->AddBinContent(115,gaus1->GetBinContent(i)); if(i>575&&i<580)decon->AddBinContent(116,gaus1->GetBinContent(i)); if(i>580&&i<585)decon->AddBinContent(117,gaus1->GetBinContent(i)); if(i>585&&i<590)decon->AddBinContent(118,gaus1->GetBinContent(i)); if(i>590&&i<595)decon->AddBinContent(119,gaus1->GetBinContent(i)); if(i>595&&i<600)decon->AddBinContent(120,gaus1->GetBinContent(i)); if(i>600&&i<605)decon->AddBinContent(121,gaus1->GetBinContent(i)); if(i>605&&i<610)decon->AddBinContent(122,gaus1->GetBinContent(i)); if(i>610&&i<615)decon->AddBinContent(123,gaus1->GetBinContent(i)); if(i>615&&i<620)decon->AddBinContent(124,gaus1->GetBinContent(i)); if(i>620&&i<625)decon->AddBinContent(125,gaus1->GetBinContent(i)); if(i>625&&i<630)decon->AddBinContent(126,gaus1->GetBinContent(i)); if(i>630&&i<635)decon->AddBinContent(127,gaus1->GetBinContent(i)); if(i>635&&i<640)decon->AddBinContent(128,gaus1->GetBinContent(i)); if(i>640&&i<645)decon->AddBinContent(129,gaus1->GetBinContent(i)); if(i>645&&i<650)decon->AddBinContent(130,gaus1->GetBinContent(i)); if(i>650&&i<655)decon->AddBinContent(131,gaus1->GetBinContent(i)); if(i>655&&i<660)decon->AddBinContent(132,gaus1->GetBinContent(i)); if(i>660&&i<665)decon->AddBinContent(133,gaus1->GetBinContent(i)); if(i>665&&i<670)decon->AddBinContent(134,gaus1->GetBinContent(i)); if(i>670&&i<675)decon->AddBinContent(135,gaus1->GetBinContent(i)); if(i>675&&i<680)decon->AddBinContent(136,gaus1->GetBinContent(i)); if(i>680&&i<685)decon->AddBinContent(137,gaus1->GetBinContent(i)); if(i>685&&i<690)decon->AddBinContent(138,gaus1->GetBinContent(i)); if(i>690&&i<695)decon->AddBinContent(139,gaus1->GetBinContent(i)); if(i>695&&i<700)decon->AddBinContent(140,gaus1->GetBinContent(i)); if(i>700&&i<705)decon->AddBinContent(141,gaus1->GetBinContent(i)); if(i>705&&i<710)decon->AddBinContent(142,gaus1->GetBinContent(i)); if(i>710&&i<715)decon->AddBinContent(143,gaus1->GetBinContent(i)); if(i>715&&i<720)decon->AddBinContent(144,gaus1->GetBinContent(i)); if(i>720&&i<725)decon->AddBinContent(145,gaus1->GetBinContent(i)); if(i>725&&i<730)decon->AddBinContent(146,gaus1->GetBinContent(i)); if(i>730&&i<735)decon->AddBinContent(147,gaus1->GetBinContent(i)); if(i>735&&i<740)decon->AddBinContent(148,gaus1->GetBinContent(i)); if(i>740&&i<745)decon->AddBinContent(149,gaus1->GetBinContent(i)); if(i>745&&i<750)decon->AddBinContent(150,gaus1->GetBinContent(i)); if(i>750&&i<755)decon->AddBinContent(151,gaus1->GetBinContent(i)); if(i>755&&i<760)decon->AddBinContent(152,gaus1->GetBinContent(i)); if(i>760&&i<765)decon->AddBinContent(153,gaus1->GetBinContent(i)); if(i>765&&i<770)decon->AddBinContent(154,gaus1->GetBinContent(i)); if(i>770&&i<775)decon->AddBinContent(155,gaus1->GetBinContent(i)); if(i>775&&i<780)decon->AddBinContent(156,gaus1->GetBinContent(i)); if(i>780&&i<785)decon->AddBinContent(157,gaus1->GetBinContent(i)); if(i>785&&i<790)decon->AddBinContent(158,gaus1->GetBinContent(i)); if(i>790&&i<795)decon->AddBinContent(159,gaus1->GetBinContent(i)); if(i>795&&i<800)decon->AddBinContent(160,gaus1->GetBinContent(i)); // -> so decon has 160 bins. } c2->cd(); decon->SetLineColor(2); decon->Draw(); decon->Fit("gaus"); }