ROOT logo

From $ROOTSYS/tutorials/fit/fitslicesy.C

void fitslicesy() {
//
// Illustrates how to use the TH1::FitSlicesY function
// To see the output of this macro, click begin_html <a href="gif/fitslicesy.gif" >here</a> end_html
//    It uses the TH2F histogram generated in macro hsimple.C
//    It invokes FitSlicesY and draw the fitted "mean" and "sigma"
//    in 2 sepate pads.
//    This macro shows also how to annotate a picture, change
//    some pad parameters.
//Author: Rene Brun
   
// Change some default parameters in the current style
   gStyle->SetLabelSize(0.06,"x");
   gStyle->SetLabelSize(0.06,"y");
   gStyle->SetFrameFillColor(38);
   gStyle->SetTitleW(0.6);
   gStyle->SetTitleH(0.1);

// Connect the input file and get the 2-d histogram in memory
   TFile* hsimple = TFile::Open("hsimple.root");
   if (!hsimple) return;
   TH2F *hpxpy = (TH2F*)hsimple->Get("hpxpy");

// Create a canvas and divide it
   TCanvas *c1 = new TCanvas("c1","c1",700,500);
   c1->SetFillColor(42);
   c1->Divide(2,1);
   TPad *left = c1->cd(1);
   left->Divide(1,2);

// Draw 2-d original histogram
   left->cd(1);
   gPad->SetTopMargin(0.12);
   gPad->SetFillColor(33);
   hpxpy->Draw();
   hpxpy->GetXaxis()->SetLabelSize(0.06);
   hpxpy->GetYaxis()->SetLabelSize(0.06);
   hpxpy->SetMarkerColor(kYellow);

// Fit slices projected along Y fron bins in X [7,32] with more than 20 bins  in Y filled
   hpxpy->FitSlicesY(0,7,32,20);

// Show fitted "mean" for each slice
   left->cd(2);
   gPad->SetFillColor(33);
   hpxpy_0->Draw();
   TPad *right = c1->cd(2);;
   right->Divide(1,2);
   right->cd(1);
   gPad->SetTopMargin(0.12);
   gPad->SetLeftMargin(0.15);
   gPad->SetFillColor(33);
   hpxpy_1->Draw();

// Show fitted "sigma" for each slice
   right->cd(2);
   gPad->SetTopMargin(0.12);
   gPad->SetLeftMargin(0.15);
   gPad->SetFillColor(33);
   hpxpy_2->SetMinimum(0.8);
   hpxpy_2->Draw();

//attributes
   hpxpy_0->SetLineColor(kYellow);
   hpxpy_1->SetLineColor(kYellow);
   hpxpy_2->SetLineColor(kYellow);
   hpxpy_0->SetMarkerColor(kRed);
   hpxpy_1->SetMarkerColor(kRed);
   hpxpy_2->SetMarkerColor(kRed);
   hpxpy_0->SetMarkerStyle(21);
   hpxpy_1->SetMarkerStyle(21);
   hpxpy_2->SetMarkerStyle(21);
   hpxpy_0->SetMarkerSize(0.6);
   hpxpy_1->SetMarkerSize(0.6);
   hpxpy_2->SetMarkerSize(0.6);
}
 fitslicesy.C:1
 fitslicesy.C:2
 fitslicesy.C:3
 fitslicesy.C:4
 fitslicesy.C:5
 fitslicesy.C:6
 fitslicesy.C:7
 fitslicesy.C:8
 fitslicesy.C:9
 fitslicesy.C:10
 fitslicesy.C:11
 fitslicesy.C:12
 fitslicesy.C:13
 fitslicesy.C:14
 fitslicesy.C:15
 fitslicesy.C:16
 fitslicesy.C:17
 fitslicesy.C:18
 fitslicesy.C:19
 fitslicesy.C:20
 fitslicesy.C:21
 fitslicesy.C:22
 fitslicesy.C:23
 fitslicesy.C:24
 fitslicesy.C:25
 fitslicesy.C:26
 fitslicesy.C:27
 fitslicesy.C:28
 fitslicesy.C:29
 fitslicesy.C:30
 fitslicesy.C:31
 fitslicesy.C:32
 fitslicesy.C:33
 fitslicesy.C:34
 fitslicesy.C:35
 fitslicesy.C:36
 fitslicesy.C:37
 fitslicesy.C:38
 fitslicesy.C:39
 fitslicesy.C:40
 fitslicesy.C:41
 fitslicesy.C:42
 fitslicesy.C:43
 fitslicesy.C:44
 fitslicesy.C:45
 fitslicesy.C:46
 fitslicesy.C:47
 fitslicesy.C:48
 fitslicesy.C:49
 fitslicesy.C:50
 fitslicesy.C:51
 fitslicesy.C:52
 fitslicesy.C:53
 fitslicesy.C:54
 fitslicesy.C:55
 fitslicesy.C:56
 fitslicesy.C:57
 fitslicesy.C:58
 fitslicesy.C:59
 fitslicesy.C:60
 fitslicesy.C:61
 fitslicesy.C:62
 fitslicesy.C:63
 fitslicesy.C:64
 fitslicesy.C:65
 fitslicesy.C:66
 fitslicesy.C:67
 fitslicesy.C:68
 fitslicesy.C:69
 fitslicesy.C:70
 fitslicesy.C:71
 fitslicesy.C:72
 fitslicesy.C:73
 fitslicesy.C:74
 fitslicesy.C:75
 fitslicesy.C:76
 fitslicesy.C:77