3 gROOT->LoadMacro(
"$VMCWORKDIR/macro/run/Tools.C");
6 gStyle->SetOptTitle(1);
10 gStyle->SetTextSize(0.10);
11 gStyle->SetLabelSize(0.07,
"x");
12 gStyle->SetTitleSize(0.07,
"x");
13 gStyle->SetLabelSize(0.07,
"y");
14 gStyle->SetTitleSize(0.07,
"y");
15 gStyle->SetLabelSize(0.07,
"z");
16 gStyle->SetTitleSize(0.07,
"z");
17 gStyle->SetPadBottomMargin(0.17);
19 TFile *canvasfile =
new TFile(
"Residuals.root",
"READ");
21 TCanvas *canne = (TCanvas*)canvasfile->Get(
"VtxPlots;1");
22 TList *canlist = canne->GetListOfPrimitives();
24 TList *histolisto =
new TList();
26 if (!canlist) {cout<<
"List not there..."<<endl;
return;}
28 for(
int i=0;
i<canlist->GetEntries();
i++)
30 TPad *apad = (TPad*)canlist->At(
i);
32 TList *padlist = apad->GetListOfPrimitives();
33 if (!padlist)
continue;
40 TH1D *his = (TH1D*)padlist->At(1);
45 TFile *histosfile =
new TFile(
"Histos.root",
"RECREATE");
46 for(
int j=0;j<histolisto->GetEntries();j++)
48 TH1D *his=(TH1D*)histolisto->At(j);
66 if (!file) {cout<<
"File \""<<
filename.Data()<<
"\" is not there..."<<endl;
return;}
67 TCanvas* can =
new TCanvas();
69 Int_t pixy = ceil(0.8*pix);
70 can->SetCanvasSize(pixx,pixy);
71 can->Divide(divx, divy);
74 ext.ReplaceAll(
"..",
".");
75 picname.ReplaceAll(
".root",
ext);
77 cout <<
"opening: " << pic.Data()<<endl;
81 TList* list = file->GetListOfKeys();
82 if (!list) {cout<<
"List not there..."<<endl;
return;}
85 for(
int i=0;
i<list->GetEntries();
i++)
87 if(padcount > divx*divy)
89 can->Print(pic.Data());
91 can->SetCanvasSize(pixx,pixy);
92 can->Divide(divx, divy);
96 TKey*
key = (TKey*)list->At(
i);
97 keyclass = key->GetClassName();
99 if(keyclass.Contains(
"TH1"))
102 TH1* his = (TH1*)key->ReadObj();
103 TString titleO = his->GetTitle();
105 TString titel =
"Vertex Resolution - ";
106 if(titleO.Contains(
"Poca")) titel+=
"POCA";
107 else if(titleO.Contains(
"PRG")) titel+=
"PRG";
108 else if(titleO.Contains(
"Kin")) titel+=
"KINVTX";
109 his->SetTitle(titel.Data());
110 his->GetXaxis()->SetNoExponent();
111 his->GetYaxis()->SetNoExponent();
118 can->Print(pic.Data());
120 can->Print(pic.Data());
121 cout <<
"closed: " << pic.Data()<<endl;
133 TF1* fitted =
new TF1(fitname.Data(),
"gaus",-
range,
range);
135 cout<<
" --- Fitting Gaussian to histogram "<<his->GetName()<<
" \""<<his->GetTitle()<<
"\" ---"<<endl;
136 fitted->SetLineColor(4);
137 fitted->SetLineWidth(3);
138 fitted->SetLineStyle(2);
139 his->Fit(fitted,
"",
"",-range,range);
140 fitted->GetParameters(par);
145 DrawText( 0.18, 0.75, str.Data(),0.07,1);
146 str=Form(
"#mu = %.3g #mum",mean);
147 DrawText( 0.18, 0.65, str.Data(),0.07,1);
148 str=Form(
"#sigma = %.3g #mum",sigma);
149 DrawText( 0.18, 0.55, str.Data(),0.07,1);
plotandfithistosfromfile(TString filename="histos.root", TString ext=".pdf", Int_t divx=3, Int_t divy=3, Int_t pix=1200)
void GaussFitPlot(TH1 *his)