void tickfix1(){ //universal size values double canvasW = 704; double marginL = 95; double marginR = 35; double marginB = 65; double marginT = 35; double marginM = 13; double sizeTick = 12; double canvasH = 728; TCanvas* can = new TCanvas("tickfix1","tickfix1",canvasW,canvasH); //setup histo and ratio areas for canvas TPad* pad1 = new TPad("graph","",0,2./7.,1.0,1.0); double pad1W = pad1->GetWw()*pad1->GetAbsWNDC(); double pad1H = pad1->GetWh()*pad1->GetAbsHNDC(); pad1->SetMargin(marginL/pad1W,marginR/pad1W,marginM/pad1H,marginT/pad1H); pad1->SetTicks(1,1); pad1->SetLogy(); TPad* pad2 = new TPad("dmc","",0,0,1.0,2./7.); double pad2W = pad2->GetWw()*pad2->GetAbsWNDC(); double pad2H = pad2->GetWh()*pad2->GetAbsHNDC(); pad2->SetMargin(marginL/pad2W,marginR/pad2W,marginB/pad2H,marginM/pad2H); pad2->SetTicks(1,1); //create histo TH1F* histo = new TH1F("test","",50,0,500); histo->GetXaxis()->SetTitle("M_{#mu#tau} [GeV]"); histo->GetYaxis()->SetTitle("number of events / 10 GeV"); histo->GetYaxis()->SetRangeUser(1,1e4); //format ratio histo TH1F* ratio = (TH1F*)histo->Clone(); ratio->GetYaxis()->SetRangeUser(0.45,1.55); can->cd(); pad1->Draw(); pad1->cd(); histo->Draw("hist"); pad1->Update(); double tickScaleX = (pad1->GetUxmax() - pad1->GetUxmin())/(pad1->GetX2()-pad1->GetX1())*pad1H; double tickScaleY = (pad1->GetUymax() - pad1->GetUymin())/(pad1->GetY2()-pad1->GetY1())*pad1W; histo->GetXaxis()->SetTickLength(sizeTick/tickScaleX); histo->GetYaxis()->SetTickLength(sizeTick/tickScaleY); histo->Draw("hist"); can->cd(); pad2->Draw(); pad2->cd(); ratio->Draw("hist"); pad2->Update(); tickScaleX = (pad2->GetUxmax() - pad2->GetUxmin())/(pad2->GetX2()-pad2->GetX1())*pad2H; tickScaleY = (pad2->GetUymax() - pad2->GetUymin())/(pad2->GetY2()-pad2->GetY1())*pad2W; ratio->GetXaxis()->SetTickLength(sizeTick/tickScaleX); ratio->GetYaxis()->SetTickLength(sizeTick/tickScaleY); ratio->Draw("hist"); }