#include "Map2D.h" #include void draw(Map2D *map) { TCanvas *c1 = (TCanvas*)gROOT->FindObject("c1"); if (c1 == 0) { c1 = new TCanvas("c1","c1",5,10,550,500); c1->SetRightMargin(0.20); } c1->cd(); map->GetXaxis()->SetTitle("u (mm)"); map->GetYaxis()->SetTitle("v (mm)"); map->GetZaxis()->SetTitle("#mu^{}rad"); map->GetZaxis()->SetTitleOffset(1.6); map->Normalize(); map->SetContour(100); map->Draw("colz"); } void cutX(Map2D *map, double xcut) { TCanvas *c1 = (TCanvas*)gROOT->FindObject("c1"); if (c1 == 0) { c1 = new TCanvas("c1","c1",5,10,550,500); c1->SetRightMargin(0.20); } c1->cd(); double xmin = map->GetXaxis()->GetXmin(); double xmax = map->GetXaxis()->GetXmax(); double ymin = map->GetYaxis()->GetXmin(); double ymax = map->GetYaxis()->GetXmax(); int nxbins = map->GetNbinsX(); int nybins = map->GetNbinsY(); int ix = (xcut-xmin)/(xmax-xmin)*nxbins + 1; TH1D *h1d = (TH1D*)gROOT->FindObject("cutx"); if (h1d) { delete h1d; } h1d = new TH1D("cutx","",nybins,ymin,ymax); for (int iy=1; iy < nybins; ++iy) { h1d->SetBinContent(iy,map->GetBinContent(ix,iy)); } h1d->Draw(); } void cutY(Map2D *map, double ycut) { TCanvas *c1 = (TCanvas*)gROOT->FindObject("c1"); if (c1 == 0) { c1 = new TCanvas("c1","c1",5,10,550,500); c1->SetRightMargin(0.20); } c1->cd(); double xmin = map->GetXaxis()->GetXmin(); double xmax = map->GetXaxis()->GetXmax(); double ymin = map->GetYaxis()->GetXmin(); double ymax = map->GetYaxis()->GetXmax(); int nxbins = map->GetNbinsX(); int nybins = map->GetNbinsY(); int iy = (ycut-ymin)/(ymax-ymin)*nybins + 1; TH1D *h1d = (TH1D*)gROOT->FindObject("cuty"); if (h1d) { delete h1d; } h1d = new TH1D("cuty","",nybins,ymin,ymax); for (int ix=1; ix < nxbins; ++ix) { h1d->SetBinContent(ix,map->GetBinContent(ix,iy)); } h1d->Draw(); }