void BestResAlignConsts(){ TString pathG="/home/karavdin/datastorage/AlignmentLMDpixel/"; //TString pathGb=pathG+"/RECdataAUG2014/BOX/mom_15/DOF110001/"; TString pathGb=pathG+"/RECdataAUG2014/BOX/mom_15/DOF111111/"; // const int nAS1=5; // number of misalignment consts samples const int nAS1=10; // number of misalignment consts samples const int nAS2=10; // number of misalignment consts samples const int nS=100; // number of data samples for each misalignment consts sample const int nParDt=11; double v_Dt[nParDt]={0, 10, 50, 100,200,300,400,500,600,700,800}; // const int nParDt=10; // double v_Dt[nParDt]={0, 50, 100,200,300,400,500,600,700,800}; // const int nParDt=12; // double v_Dt[nParDt]={0, 10, 50, 100,200,300,400,500,600,700,800,1000}; // const int nParDt=10; // double v_Dt[nParDt]={0, 10, 50, 100,200,300,400,500,600,700}; // const int nParDt=1; // double v_Dt[nParDt]={0}; // const int nParDa=5; // double v_Da[nParDa]={0,0.2,1,3,5}; // TString strv_Da[nParDa]={"0","0_2","1","3","5"}; // TString strv_Da_leg[nParDa]={"0","0.2","1","3","5"}; const int nParDa=1; double v_Da[nParDa]={5}; TString strv_Da[nParDa]={"5"}; TString strv_Da_leg[nParDa]={"5"}; // const int nParDa=4; // double v_Da[nParDa]={0,1,3,5}; // TString strv_Da[nParDa]={"0","1","3","5"}; // const int nParDa=2; // double v_Da[nParDa]={0, 0.20}; // TString strv_Da[nParDa]={"0","0_2"}; // TString strv_Da_leg[nParDa]={"0","0.2"}; double Xval[nParDa][nParDt]; double Yval[nParDa][nParDt]; double Zval[nParDa][nParDt]; double Aval[nParDa][nParDt]; double Bval[nParDa][nParDt]; double Gval[nParDa][nParDt]; double err_Xval[nParDa][nParDt]; double err_Yval[nParDa][nParDt]; double err_Zval[nParDa][nParDt]; double err_Aval[nParDa][nParDt]; double err_Bval[nParDa][nParDt]; double err_Gval[nParDa][nParDt]; double Xval_b[nParDa][nParDt]; double Yval_b[nParDa][nParDt]; double Zval_b[nParDa][nParDt]; double Aval_b[nParDa][nParDt]; double Bval_b[nParDa][nParDt]; double Gval_b[nParDa][nParDt]; double err_Xval_b[nParDa][nParDt]; double err_Yval_b[nParDa][nParDt]; double err_Zval_b[nParDa][nParDt]; double err_Aval_b[nParDa][nParDt];double err_Bval_b[nParDa][nParDt]; double err_Gval_b[nParDa][nParDt]; for(int iDt=0;iDt599.) nAS = nAS2; else{ if(tr_sc>499. && rt_sc>1) nAS = nAS2; else{ if(rt_sc>3) nAS = nAS2; } } TString inmane= pathGb+"/ResultsSamplesSummary_Av_"; inmane += nAS; inmane += "AlignSamples_"; inmane += nS; inmane += "DataSamples_"; inmane+=tr_sc; inmane+="um_"; inmane+=strrt_sc; inmane+="mrad.root"; TFile *fin = new TFile(inmane,"READ"); TGraphErrors *misX_a = (TGraphErrors *)fin->Get("dX_a"); TGraphErrors *misY_a = (TGraphErrors *)fin->Get("dY_a"); TGraphErrors *misZ_a = (TGraphErrors *)fin->Get("dZ_a"); TGraphErrors *misA_a = (TGraphErrors *)fin->Get("dA_a"); TGraphErrors *misB_a = (TGraphErrors *)fin->Get("dB_a"); TGraphErrors *misG_a = (TGraphErrors *)fin->Get("dG_a"); int Npoints = misX_a->GetN(); Double_t *xval = misX_a->GetY(); Xval[iDa][iDt] = xval[Npoints-1]; Double_t *errxval = misX_a->GetEY(); err_Xval[iDa][iDt] = errxval[Npoints-1]; Double_t *yval = misY_a->GetY(); Yval[iDa][iDt] = yval[Npoints-1]; Double_t *erryval = misY_a->GetEY(); err_Yval[iDa][iDt] = erryval[Npoints-1]; Double_t *zval = misZ_a->GetY(); Zval[iDa][iDt] = zval[Npoints-1]; Double_t *errzval = misZ_a->GetEY(); err_Zval[iDa][iDt] = errzval[Npoints-1]; Double_t *gval = misG_a->GetY(); Gval[iDa][iDt] = gval[Npoints-1]; Double_t *errgval = misG_a->GetEY(); err_Gval[iDa][iDt] = errgval[Npoints-1]; Double_t *aval = misA_a->GetY(); Aval[iDa][iDt] = aval[Npoints-1]; Double_t *erraval = misA_a->GetEY(); err_Aval[iDa][iDt] = erraval[Npoints-1]; Double_t *bval = misB_a->GetY(); Bval[iDa][iDt] = bval[Npoints-1]; Double_t *errbval = misB_a->GetEY(); err_Bval[iDa][iDt] = errbval[Npoints-1]; TGraphErrors *misX_b = (TGraphErrors *)fin->Get("dX_b"); TGraphErrors *misY_b = (TGraphErrors *)fin->Get("dY_b"); TGraphErrors *misZ_b = (TGraphErrors *)fin->Get("dZ_b"); TGraphErrors *misA_b = (TGraphErrors *)fin->Get("dA_b"); TGraphErrors *misB_b = (TGraphErrors *)fin->Get("dB_b"); TGraphErrors *misG_b = (TGraphErrors *)fin->Get("dG_b"); Double_t *xval_b = misX_b->GetY(); Xval_b[iDa][iDt] = xval_b[Npoints-1]; Double_t *errxval_b = misX_b->GetEY(); err_Xval_b[iDa][iDt] = errxval_b[Npoints-1]; // cout<<"Xval["<GetY(); Yval_b[iDa][iDt] = yval_b[Npoints-1]; Double_t *erryval_b = misY_b->GetEY(); err_Yval_b[iDa][iDt] = erryval_b[Npoints-1]; Double_t *zval_b = misZ_b->GetY(); Zval_b[iDa][iDt] = zval_b[Npoints-1]; Double_t *errzval_b = misZ_b->GetEY(); err_Zval_b[iDa][iDt] = errzval_b[Npoints-1]; Double_t *gval_b = misG_b->GetY(); Gval_b[iDa][iDt] = gval_b[Npoints-1]; Double_t *errgval_b = misG_b->GetEY(); err_Gval_b[iDa][iDt] = errgval_b[Npoints-1]; Double_t *aval_b = misA_b->GetY(); Aval_b[iDa][iDt] = aval_b[Npoints-1]; Double_t *erraval_b = misA_b->GetEY(); err_Aval_b[iDa][iDt] = erraval_b[Npoints-1]; Double_t *bval_b = misB_b->GetY(); Bval_b[iDa][iDt] = bval_b[Npoints-1]; Double_t *errbval_b = misB_b->GetEY(); err_Bval_b[iDa][iDt] = errbval_b[Npoints-1]; } // loop over dA [rotation] }// loop over dT [translation] //Draw resutls const int colors_a[5] = {kViolet-6,kOrange+7,kGreen+3,kRed+1,kBlue+1}; const int colors[5] = {28,kAzure+2,46,8,kGreen+8}; TLegend *leg_a = new TLegend(0.73,0.15,0.87,0.37); leg_a->SetFillColor(0); TLegend *leg_b = new TLegend(0.73,0.15,0.87,0.37); leg_b->SetFillColor(0); leg_b->SetHeader("BEFORE"); TMultiGraph *mgr_X = new TMultiGraph(); TMultiGraph *mgr_Y = new TMultiGraph(); TMultiGraph *mgr_Z = new TMultiGraph(); TMultiGraph *mgr_A = new TMultiGraph(); TMultiGraph *mgr_B = new TMultiGraph(); TMultiGraph *mgr_G = new TMultiGraph(); TGraphErrors *gr_X[nParDa]; TGraphErrors *gr_Y[nParDa]; TGraphErrors *gr_Z[nParDa]; TGraphErrors *gr_A[nParDa]; TGraphErrors *gr_B[nParDa]; TGraphErrors *gr_G[nParDa]; TMultiGraph *mgr_X_b = new TMultiGraph(); TMultiGraph *mgr_Y_b = new TMultiGraph(); TMultiGraph *mgr_Z_b = new TMultiGraph(); TMultiGraph *mgr_A_b = new TMultiGraph(); TMultiGraph *mgr_B_b = new TMultiGraph(); TMultiGraph *mgr_G_b = new TMultiGraph(); TGraphErrors *gr_X_b[nParDa]; TGraphErrors *gr_Y_b[nParDa]; TGraphErrors *gr_Z_b[nParDa]; TGraphErrors *gr_A_b[nParDa]; TGraphErrors *gr_B_b[nParDa]; TGraphErrors *gr_G_b[nParDa]; for(int iDa=0;iDaSetMarkerSize(2.5); gr_X[iDa]->SetMarkerStyle(29); gr_X[iDa]->SetMarkerColor(colors_a[iDa]); mgr_X->Add(gr_X[iDa]); gr_Y[iDa] = new TGraphErrors(nParDt,v_Dt,Yval[iDa],0,err_Yval[iDa]); gr_Y[iDa]->SetMarkerSize(2.5); gr_Y[iDa]->SetMarkerStyle(29); gr_Y[iDa]->SetMarkerColor(colors_a[iDa]); mgr_Y->Add(gr_Y[iDa]); gr_Z[iDa] = new TGraphErrors(nParDt,v_Dt,Zval[iDa],0,err_Zval[iDa]); gr_Z[iDa]->SetMarkerSize(2.5); gr_Z[iDa]->SetMarkerStyle(29); gr_Z[iDa]->SetMarkerColor(colors_a[iDa]); mgr_Z->Add(gr_Z[iDa]); gr_G[iDa] = new TGraphErrors(nParDt,v_Dt,Gval[iDa],0,err_Gval[iDa]); gr_G[iDa]->SetMarkerSize(2.5); gr_G[iDa]->SetMarkerStyle(29); gr_G[iDa]->SetMarkerColor(colors_a[iDa]); mgr_G->Add(gr_G[iDa]); gr_A[iDa] = new TGraphErrors(nParDt,v_Dt,Aval[iDa],0,err_Aval[iDa]); gr_A[iDa]->SetMarkerSize(2.5); gr_A[iDa]->SetMarkerStyle(29); gr_A[iDa]->SetMarkerColor(colors_a[iDa]); mgr_A->Add(gr_A[iDa]); gr_B[iDa] = new TGraphErrors(nParDt,v_Dt,Bval[iDa],0,err_Bval[iDa]); gr_B[iDa]->SetMarkerSize(2.5); gr_B[iDa]->SetMarkerStyle(29); gr_B[iDa]->SetMarkerColor(colors_a[iDa]); mgr_B->Add(gr_B[iDa]); gr_X_b[iDa] = new TGraphErrors(nParDt,v_Dt,Xval_b[iDa],0,err_Xval_b[iDa]); gr_X_b[iDa]->SetMarkerSize(2.5); gr_X_b[iDa]->SetMarkerStyle(29); gr_X_b[iDa]->SetMarkerColor(colors[iDa]); mgr_X_b->Add(gr_X_b[iDa]); gr_Y_b[iDa] = new TGraphErrors(nParDt,v_Dt,Yval_b[iDa],0,err_Yval_b[iDa]); gr_Y_b[iDa]->SetMarkerSize(2.5); gr_Y_b[iDa]->SetMarkerStyle(29); gr_Y_b[iDa]->SetMarkerColor(colors[iDa]); mgr_Y_b->Add(gr_Y_b[iDa]); gr_Z_b[iDa] = new TGraphErrors(nParDt,v_Dt,Zval_b[iDa],0,err_Zval_b[iDa]); gr_Z_b[iDa]->SetMarkerSize(2.5); gr_Z_b[iDa]->SetMarkerStyle(29); gr_Z_b[iDa]->SetMarkerColor(colors[iDa]); mgr_Z_b->Add(gr_Z_b[iDa]); gr_G_b[iDa] = new TGraphErrors(nParDt,v_Dt,Gval_b[iDa],0,err_Gval_b[iDa]); gr_G_b[iDa]->SetMarkerSize(2.5); gr_G_b[iDa]->SetMarkerStyle(29); gr_G_b[iDa]->SetMarkerColor(colors[iDa]); mgr_G_b->Add(gr_G_b[iDa]); gr_A_b[iDa] = new TGraphErrors(nParDt,v_Dt,Aval_b[iDa],0,err_Aval_b[iDa]); gr_A_b[iDa]->SetMarkerSize(2.5); gr_A_b[iDa]->SetMarkerStyle(29); gr_A_b[iDa]->SetMarkerColor(colors[iDa]); mgr_A_b->Add(gr_A_b[iDa]); gr_B_b[iDa] = new TGraphErrors(nParDt,v_Dt,Bval_b[iDa],0,err_Bval_b[iDa]); gr_B_b[iDa]->SetMarkerSize(2.5); gr_B_b[iDa]->SetMarkerStyle(29); gr_B_b[iDa]->SetMarkerColor(colors[iDa]); mgr_B_b->Add(gr_B_b[iDa]); TString dRName = "#Delta_{r} = "; // dRName +=v_Da[iDa]; dRName +=strv_Da_leg[iDa]; leg_a->AddEntry(gr_X[iDa],dRName,"lep"); leg_b->AddEntry(gr_X_b[iDa],dRName,"lep"); } // loop over dA [rotation] //mgr_G->Draw("AP"); //Save plots TString resname= pathGb+"/ResultsKnossos_"; resname += nAS; resname += "AlignSamples_"; resname += nS; resname += "DataSamples"; TString resname_pdf = resname+".pdf"; TString resname_pdf_o = resname_pdf+"("; TString resname_pdf_c = resname_pdf+")"; TCanvas c1; c1.SetLogy(); mgr_X->Draw("AP"); mgr_X->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_X->GetYaxis()->SetTitle("#Delta_{x}, #mum"); leg_a->Draw(); mgr_X->SetName("dX"); c1.Print(resname_pdf_o); c1.Clear(); mgr_Y->Draw("AP"); mgr_Y->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_Y->GetYaxis()->SetTitle("#Delta_{y}, #mum"); leg_a->Draw(); mgr_Y->SetName("dY"); c1.Print(resname_pdf_o); c1.Clear(); mgr_Z->Draw("AP"); mgr_Z->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_Z->GetYaxis()->SetTitle("#Delta_{z}, #mum"); leg_a->Draw(); mgr_Z->SetName("dZ"); c1.Print(resname_pdf_o); c1.Clear(); mgr_A->Draw("AP"); mgr_A->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_A->GetYaxis()->SetTitle("#Delta_{#alpha}, mrad"); leg_a->Draw(); mgr_A->SetName("dA"); c1.Print(resname_pdf_o); c1.Clear(); mgr_B->Draw("AP"); mgr_B->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_B->GetYaxis()->SetTitle("#Delta_{#beta}, mrad"); leg_a->Draw(); mgr_B->SetName("dB"); c1.Print(resname_pdf_o); c1.Clear(); mgr_G->Draw("AP"); mgr_G->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_G->GetYaxis()->SetTitle("#Delta_{#gamma}, mrad"); leg_a->Draw(); mgr_G->SetName("dG"); c1.Print(resname_pdf_o); c1.Clear(); mgr_X_b->Draw("AP"); mgr_X_b->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_X_b->GetYaxis()->SetTitle("#Delta_{x}, #mum"); leg_b->Draw(); mgr_X_b->SetName("dX_b"); c1.Print(resname_pdf_o); c1.Clear(); mgr_Y_b->Draw("AP"); mgr_Y_b->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_Y_b->GetYaxis()->SetTitle("#Delta_{y}, #mum"); leg_b->Draw(); mgr_Y_b->SetName("dY_b"); c1.Print(resname_pdf_o); c1.Clear(); mgr_Z_b->Draw("AP"); mgr_Z_b->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_Z_b->GetYaxis()->SetTitle("#Delta_{z}, #mum"); leg_b->Draw(); mgr_Z_b->SetName("dZ_b"); c1.Print(resname_pdf_o); c1.Clear(); mgr_A_b->Draw("AP"); mgr_A_b->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_A_b->GetYaxis()->SetTitle("#Delta_{#alpha}, #mum"); leg_b->Draw(); mgr_A_b->SetName("dA_b"); c1.Print(resname_pdf_o); c1.Clear(); mgr_B_b->Draw("AP"); mgr_B_b->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_B_b->GetYaxis()->SetTitle("#Delta_{#beta}, #mum"); leg_b->Draw(); mgr_B_b->SetName("dB_b"); c1.Print(resname_pdf_o); c1.Clear(); mgr_G_b->Draw("AP"); mgr_G_b->GetXaxis()->SetTitle("#Delta_{t}, #mum"); mgr_G_b->GetYaxis()->SetTitle("#Delta_{#gamma}, mrad"); leg_b->Draw(); mgr_G->SetName("dG_b"); c1.Print(resname_pdf_c); TString out = resname+".root"; TFile *f = new TFile(out,"RECREATE"); mgr_X->Write(); mgr_Y->Write(); mgr_Z->Write(); mgr_A->Write(); mgr_B->Write(); mgr_G->Write(); mgr_X_b->Write(); mgr_Y_b->Write(); mgr_Z_b->Write(); mgr_B_b->Write(); mgr_A_b->Write(); mgr_G_b->Write(); leg_a->SetName("leg_a"); leg_b->SetName("leg_b"); leg_a->Write(); leg_b->Write(); f->Write(); f->Close(); }