/* FakePhysicist.com admin@fakephysicist.com 16 April 2017 Compile with: g++ transformation.cpp -o transformation `root-config --cflags --libs` */ #include #include #include #include #include #include /****** Include the required ROOT Classes *****/ #include "TMath.h" #include "TH1.h" #include "TRandom.h" #include "TStyle.h" #include "TPad.h" #include "TCanvas.h" #include "TPostScript.h" #include "TGaxis.h" #include "TAxis.h" using namespace std; int main() { gStyle->SetPadBottomMargin(0.14); gStyle->SetPadTopMargin(0.09); gStyle->SetPadLeftMargin(0.14); gStyle->SetPadRightMargin(0.14); gStyle->SetOptFit(1111); gStyle->SetOptStat(0); TGaxis::SetMaxDigits(3); double t_tau = 5.; TH1F * h1 = new TH1F("h1","h1",1000,0.,1.); // 1-D histogram with float // Arguments: name, title, bin no, xmin, xmax TH1F * h2 = new TH1F("h2","h2",1000,0.,70.); // 1-D histogram with float TCanvas *c1 = new TCanvas("c1","c1",900,1200); c1->Divide(1,2); // Divide into 1x2 pads TPostScript *pss = new TPostScript("histograms.ps",111); pss->NewPage(); for(int ij=0;ij<1000000;ij++) { // Filling the histograms with 10000000 no of Gaussian Distribution double unifromR = gRandom->Uniform(); // Inform random number x h1->Fill(unifromR); // Filling Uniform] h2->Fill(-t_tau*TMath::Log(unifromR)); // Filling t = -t_tau*ln(x) } h1->SetTitle("Uniform Random No"); h1->GetXaxis()->SetTitle("X"); h1->GetXaxis()->SetTitleOffset(1.4); h1->GetXaxis()->CenterTitle(); h2->SetTitle("Radio Active Decay"); h2->GetXaxis()->SetTitle("Time"); h2->GetXaxis()->SetTitleOffset(1.4); h2->GetXaxis()->CenterTitle(); pss->NewPage(); c1->cd(1); h1->Draw(); h1->Fit("pol1","SQ"); c1->cd(2); h2->Draw(); gPad->SetLogy(1); h2->Fit("expo","SQ"); c1->Update(); pss->Close(); return 0; }