/* Program reading data prodused by KNOSSOS and produce the root file with results */ #include #include #include #include // // For ROOT #include "TFile.h" #include "TH1F.h" #include "TH2F.h" #include "TF1.h" #include "TCanvas.h" #include "constantsLMD.h" using namespace std; int main(int __argc,char *__argv[]) { std::string inputpar="", outputpar="",outputrootpar="", resnewconst=""; // decode arguments if( __argc>1 && ( strcmp( __argv[1], "-help" ) == 0 || strcmp( __argv[1], "--help" ) == 0 ) ){ std::cout << "This is script for reading data produced by KNOSSOS\n" <<"-in input [*.par] file, used in simulation \n" <<"-out output [*.txt] file after KNOSSOS \n" <<"-outroot output [*.root] file after KNOSSOS \n" <<"-new [*.par] file to write new constatn \n" <<"Have fun! \n" << std::endl; return 0; } while ((optind < (__argc-1) ) && (__argv[optind][0]=='-')) { bool found=false; std::string sw = __argv[optind]; if (sw=="-in") { optind++; inputpar = __argv[optind]; found=true; } if (sw=="-out"){ optind++; outputpar = __argv[optind]; found=true; } if (sw=="-outroot"){ optind++; outputrootpar = __argv[optind]; found=true; } if (sw=="-new"){ optind++; resnewconst = __argv[optind]; found=true; } if (!found){ std::cout<< "Unknown switch: " << __argv[optind] <>dxout[ih][ip][im]>>tmp>>dxerrout[ih][ip][im]>>dxpullout[ih][ip][im]; output>>dyout[ih][ip][im]>>tmp>>dyerrout[ih][ip][im]>>dypullout[ih][ip][im]; output>>dzout[ih][ip][im]>>tmp>>dzerrout[ih][ip][im]>>dzpullout[ih][ip][im]; output>>dalphaout[ih][ip][im]>>tmp>>dalphaerrout[ih][ip][im]>>dalphapullout[ih][ip][im]; output>>dbetaout[ih][ip][im]>>tmp>>dbetaerrout[ih][ip][im]>>dbetapullout[ih][ip][im]; output>>dgammaout[ih][ip][im]>>tmp>>dgammaerrout[ih][ip][im]>>dgammapullout[ih][ip][im]; // output>>tmp; cout<<"dxout["<>tmptxt; if(tmptxt[3]==stopletters[0] && tmptxt[4]==stopletters[1] && tmptxt[5]==stopletters[2]){ input>>tmptxt; stopreadcrap = false; } // cout<<"tmptxt = "<>tmptxt>>dxin[ih][ip][im]>>tmptxt>>dyin[ih][ip][im]>>tmptxt>>dzin[ih][ip][im]>>tmptxt>>dalphain[ih][ip][im]>>tmptxt>>dbetain[ih][ip][im]>>tmptxt>>dgammain[ih][ip][im]; // cout<<"h,p,m:"<Add(aHisto); // sprintf(histoName2, "mis_after_%d",histID); // TH1F* aHisto2 = new TH1F(histoName2, histoName2, 100, -misal_scales[histID], misal_scales[histID]); // m_mis_aft->Add(aHisto2); // sprintf(histoName3, "pullHisto%d",histID); // TH1F* aHisto3 = new TH1F(histoName3, histoName3, 40, -5, 5); // m_pullHistos->Add(aHisto3); sprintf(histoName, "mis_before_%d",histID); TH2F* aHisto = new TH2F(histoName, histoName, 20,0,20,1e4, -misal_scales[histID], misal_scales[histID]); m_mis_bef->Add(aHisto); sprintf(histoName2, "mis_after_%d",histID); // TH2F* aHisto2 = new TH2F(histoName2, histoName2, 20,0,32, 100, -0.05*misal_scales[histID], 0.05*misal_scales[histID]); TH2F* aHisto2 = new TH2F(histoName2, histoName2, 20,0,20, 1e4, -misal_scales[histID], misal_scales[histID]); m_mis_aft->Add(aHisto2); sprintf(histoName4, "mis_diff_%d",histID); TH2F* aHisto4 = new TH2F(histoName4, histoName4, 20,0,20, 1e4, -misal_scales[histID], misal_scales[histID]); m_mis_diff->Add(aHisto4); sprintf(histoName3, "pullHisto%d",histID); TH1F* aHisto3 = new TH1F(histoName3, histoName3, 40, -5, 5); m_pullHistos->Add(aHisto3); } for(int jh=0;jhAt(0))->Fill(sensorID,dxin[jh][jp][jm]); ((TH2F*)m_mis_bef->At(1))->Fill(sensorID,dyin[jh][jp][jm]); ((TH2F*)m_mis_bef->At(2))->Fill(sensorID,dzin[jh][jp][jm]); ((TH2F*)m_mis_bef->At(3))->Fill(sensorID,dalphain[jh][jp][jm]); ((TH2F*)m_mis_bef->At(4))->Fill(sensorID,dbetain[jh][jp][jm]); ((TH2F*)m_mis_bef->At(5))->Fill(sensorID,dgammain[jh][jp][jm]); ((TH2F*)m_mis_aft->At(0))->Fill(sensorID,dxout[jh][jp][jm]); ((TH2F*)m_mis_aft->At(1))->Fill(sensorID,dyout[jh][jp][jm]); ((TH2F*)m_mis_aft->At(2))->Fill(sensorID,dzout[jh][jp][jm]); ((TH2F*)m_mis_aft->At(3))->Fill(sensorID,dalphaout[jh][jp][jm]); ((TH2F*)m_mis_aft->At(4))->Fill(sensorID,dbetaout[jh][jp][jm]); ((TH2F*)m_mis_aft->At(5))->Fill(sensorID,dgammaout[jh][jp][jm]); ((TH2F*)m_mis_diff->At(0))->Fill(sensorID,-dxout[jh][jp][jm]+dxin[jh][jp][jm]); ((TH2F*)m_mis_diff->At(1))->Fill(sensorID,-dyout[jh][jp][jm]+dyin[jh][jp][jm]); ((TH2F*)m_mis_diff->At(2))->Fill(sensorID,-dzout[jh][jp][jm]+dzin[jh][jp][jm]); ((TH2F*)m_mis_diff->At(3))->Fill(sensorID,-dalphaout[jh][jp][jm]+dalphain[jh][jp][jm]); ((TH2F*)m_mis_diff->At(4))->Fill(sensorID,-dbetaout[jh][jp][jm]+dbetain[jh][jp][jm]); ((TH2F*)m_mis_diff->At(5))->Fill(sensorID,-dgammaout[jh][jp][jm]+dgammain[jh][jp][jm]); // ((TH2F*)m_mis_diff->At(0))->Fill(sensorID,dxout[jh][jp][jm]+dxin[jh][jp][jm]); // ((TH2F*)m_mis_diff->At(1))->Fill(sensorID,dyout[jh][jp][jm]+dyin[jh][jp][jm]); // ((TH2F*)m_mis_diff->At(2))->Fill(sensorID,dzout[jh][jp][jm]+dzin[jh][jp][jm]); // ((TH2F*)m_mis_diff->At(3))->Fill(sensorID,dalphaout[jh][jp][jm]+dalphain[jh][jp][jm]); // ((TH2F*)m_mis_diff->At(4))->Fill(sensorID,dbetaout[jh][jp][jm]+dbetain[jh][jp][jm]); // ((TH2F*)m_mis_diff->At(5))->Fill(sensorID,dgammaout[jh][jp][jm]+dgammain[jh][jp][jm]); // cout<<"dxout["<SetFillColor(0); c0->SetBorderMode(0); c0->Divide(2,3); c0->cd(1); ((TH2F*)m_mis_bef->At(0))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{X}"); ((TH2F*)m_mis_bef->At(0))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(0))->SetMarkerStyle(20); ((TH2F*)m_mis_bef->At(0))->Draw(); ((TH2F*)m_mis_diff->At(0))->SetMarkerColor(2); ((TH2F*)m_mis_diff->At(0))->SetMarkerStyle(30); ((TH2F*)m_mis_diff->At(0))->Draw("same"); ((TH2F*)m_mis_aft->At(0))->SetMarkerColor(3); ((TH2F*)m_mis_aft->At(0))->SetMarkerStyle(28); ((TH2F*)m_mis_aft->At(0))->Draw("same"); c0->cd(2); ((TH2F*)m_mis_bef->At(3))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#alpha}"); ((TH2F*)m_mis_bef->At(3))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(3))->SetMarkerStyle(20); ((TH2F*)m_mis_bef->At(3))->Draw(); ((TH2F*)m_mis_diff->At(3))->SetMarkerColor(2); ((TH2F*)m_mis_diff->At(3))->SetMarkerStyle(30); ((TH2F*)m_mis_diff->At(3))->Draw("same"); ((TH2F*)m_mis_aft->At(3))->SetMarkerColor(3); ((TH2F*)m_mis_aft->At(3))->SetMarkerStyle(28); ((TH2F*)m_mis_aft->At(3))->Draw("same"); c0->cd(3); ((TH2F*)m_mis_bef->At(1))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{Y}"); ((TH2F*)m_mis_bef->At(1))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(1))->SetMarkerStyle(20); ((TH2F*)m_mis_bef->At(1))->Draw(); ((TH2F*)m_mis_diff->At(1))->SetMarkerColor(2); ((TH2F*)m_mis_diff->At(1))->SetMarkerStyle(30); ((TH2F*)m_mis_diff->At(1))->Draw("same"); ((TH2F*)m_mis_aft->At(1))->SetMarkerColor(3); ((TH2F*)m_mis_aft->At(1))->SetMarkerStyle(28); ((TH2F*)m_mis_aft->At(1))->Draw("same"); c0->cd(4); ((TH2F*)m_mis_bef->At(4))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#beta}"); ((TH2F*)m_mis_bef->At(4))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(4))->SetMarkerStyle(20); ((TH2F*)m_mis_bef->At(4))->Draw(); ((TH2F*)m_mis_diff->At(4))->SetMarkerColor(2); ((TH2F*)m_mis_diff->At(4))->SetMarkerStyle(30); ((TH2F*)m_mis_diff->At(4))->Draw("same"); ((TH2F*)m_mis_aft->At(4))->SetMarkerColor(3); ((TH2F*)m_mis_aft->At(4))->SetMarkerStyle(28); ((TH2F*)m_mis_aft->At(4))->Draw("same"); c0->cd(5); ((TH2F*)m_mis_bef->At(2))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{Z}"); ((TH2F*)m_mis_bef->At(2))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(2))->SetMarkerStyle(20); ((TH2F*)m_mis_bef->At(2))->Draw(); ((TH2F*)m_mis_diff->At(2))->SetMarkerColor(2); ((TH2F*)m_mis_diff->At(2))->SetMarkerStyle(30); ((TH2F*)m_mis_diff->At(2))->Draw("same"); ((TH2F*)m_mis_aft->At(2))->SetMarkerColor(3); ((TH2F*)m_mis_aft->At(2))->SetMarkerStyle(28); ((TH2F*)m_mis_aft->At(2))->Draw("same"); c0->cd(6); ((TH2F*)m_mis_bef->At(5))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#gamma}"); ((TH2F*)m_mis_bef->At(5))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(5))->SetMarkerStyle(20); ((TH2F*)m_mis_bef->At(5))->Draw(); ((TH2F*)m_mis_diff->At(5))->SetMarkerColor(2); ((TH2F*)m_mis_diff->At(5))->SetMarkerStyle(30); ((TH2F*)m_mis_diff->At(5))->Draw("same"); ((TH2F*)m_mis_aft->At(5))->SetMarkerColor(3); ((TH2F*)m_mis_aft->At(5))->SetMarkerStyle(28); ((TH2F*)m_mis_aft->At(5))->Draw("same"); c0->Update(); TCanvas* c1 = new TCanvas("c1","Misalignments before correction",200,500,700,800); c1->SetFillColor(0); c1->SetBorderMode(0); c1->Divide(2,3); c1->cd(1); ((TH2F*)m_mis_bef->At(0))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{X}"); ((TH2F*)m_mis_bef->At(0))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(0))->Draw(); c1->cd(2); ((TH2F*)m_mis_bef->At(3))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#alpha}"); ((TH2F*)m_mis_bef->At(3))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(3))->Draw(); c1->cd(3); ((TH2F*)m_mis_bef->At(1))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{Y}"); ((TH2F*)m_mis_bef->At(1))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(1))->Draw(); c1->cd(4); ((TH2F*)m_mis_bef->At(4))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#beta}"); ((TH2F*)m_mis_bef->At(4))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(4))->Draw(); c1->cd(5); ((TH1F*)m_mis_bef->At(2))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{Z}"); ((TH1F*)m_mis_bef->At(2))->GetYaxis()->SetTitleSize(0.05); ((TH1F*)m_mis_bef->At(2))->Draw(); c1->cd(6); ((TH2F*)m_mis_bef->At(5))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#gamma}"); ((TH2F*)m_mis_bef->At(5))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_bef->At(5))->Draw(); c1->Update(); TCanvas* c2 = new TCanvas("c2","Misalignments after correction",200,500,700,800); c2->SetFillColor(0); c2->SetBorderMode(0); c2->Divide(2,3); c2->cd(1); ((TH2F*)m_mis_aft->At(0))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{X}"); ((TH2F*)m_mis_aft->At(0))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_aft->At(0))->Draw(); c2->cd(2); ((TH2F*)m_mis_aft->At(3))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#alpha}"); ((TH2F*)m_mis_aft->At(3))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_aft->At(3))->Draw(); c2->cd(3); ((TH2F*)m_mis_aft->At(1))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{Y}"); ((TH2F*)m_mis_aft->At(1))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_aft->At(1))->Draw(); c2->cd(4); ((TH2F*)m_mis_aft->At(4))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#beta}"); ((TH2F*)m_mis_aft->At(4))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_aft->At(4))->Draw(); c2->cd(5); ((TH2F*)m_mis_aft->At(2))->GetYaxis()->SetTitle("Misalignment (in cm): #Delta_{Z}"); ((TH2F*)m_mis_aft->At(2))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_aft->At(2))->Draw(); c2->cd(6); ((TH2F*)m_mis_aft->At(5))->GetYaxis()->SetTitle("Misalignment (in rad): #Delta_{#gamma}"); ((TH2F*)m_mis_aft->At(5))->GetYaxis()->SetTitleSize(0.05); ((TH2F*)m_mis_aft->At(5))->Draw(); c2->Update(); TCanvas* c3 = new TCanvas("c3","Pulls",200,500,700,800); c3->SetFillColor(0); c3->SetBorderMode(0); c3->Divide(2,3); c3->cd(1); ((TH1F*)m_pullHistos->At(0))->GetXaxis()->SetTitle("Pull value: #Delta_{X}"); ((TH1F*)m_pullHistos->At(0))->GetXaxis()->SetTitleSize(0.05); ((TH1F*)m_pullHistos->At(0))->Draw(); c3->cd(2); ((TH1F*)m_pullHistos->At(3))->GetXaxis()->SetTitle("Pull value: #Delta_{#alpha}"); ((TH1F*)m_pullHistos->At(3))->GetXaxis()->SetTitleSize(0.05); ((TH1F*)m_pullHistos->At(3))->Draw(); c3->cd(3); ((TH1F*)m_pullHistos->At(1))->GetXaxis()->SetTitle("Pull value: #Delta_{Y}"); ((TH1F*)m_pullHistos->At(1))->GetXaxis()->SetTitleSize(0.05); ((TH1F*)m_pullHistos->At(1))->Draw(); c3->cd(4); ((TH1F*)m_pullHistos->At(4))->GetXaxis()->SetTitle("Pull value: #Delta_{#beta}"); ((TH1F*)m_pullHistos->At(4))->GetXaxis()->SetTitleSize(0.05); ((TH1F*)m_pullHistos->At(4))->Draw(); c3->cd(5); ((TH1F*)m_pullHistos->At(2))->GetXaxis()->SetTitle("Pull value: #Delta_{Z}"); ((TH1F*)m_pullHistos->At(2))->GetXaxis()->SetTitleSize(0.05); ((TH1F*)m_pullHistos->At(2))->Draw(); c3->cd(6); ((TH1F*)m_pullHistos->At(5))->GetXaxis()->SetTitle("Pull value: #Delta_{#gamma}"); ((TH1F*)m_pullHistos->At(5))->GetXaxis()->SetTitleSize(0.05); ((TH1F*)m_pullHistos->At(5))->Draw(); c3->Update(); c0->Write(); c1->Write(); c2->Write(); c3->Write(); fi->Close(); cout<<"Now we'll write file for LUMI rec"<