#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void analysis(){ const int run = 25; TH1D* geu1 = new TH1D("geu1","ene in det U1", 4096, 0, 4096); TH1D* geu2 = new TH1D("geu2","ene in det U2", 4096, 0, 4096); TH1D* ged1 = new TH1D("ged1","ene in det D1", 4096, 0, 4096); TH1D* ged2 = new TH1D("ged2","ene in det D2", 4096, 0, 4096); TH1D* gpu1 = new TH1D("gpu1","pos in det U1", 4096, 0, 4096); TH1D* gpu2 = new TH1D("gpu2","pos in det U2", 4096, 0, 4096); TH1D* gpd1 = new TH1D("gpd1","pos in det D1", 4096, 0, 4096); TH1D* gpd2 = new TH1D("gpd2","pos in det D2", 4096, 0, 4096); TH2D* ged1eu1 = new TH2D("ged1eu1","ed1:eu1", 2500, 0, 2500, 2500, 0, 2500); TH2D* ged2eu2 = new TH2D("ged2eu2","ed2:eu2", 2500, 0, 2500, 2500, 0, 2500); TH2D* gpeu1 = new TH2D("gpeu1","pu1:eu1", 4096, 0, 4096, 4096, 0, 4096); TH2D* gpeu2 = new TH2D("gpeu2","pu2:eu2", 4096, 0, 4096, 4096, 0, 4096); TH2D* gped1 = new TH2D("gped1","pd1:ed1", 4096, 0, 4096, 4096, 0, 4096); TH2D* gped2 = new TH2D("gped2","pd2:ed2", 4096, 0, 4096, 4096, 0, 4096); TString fpath_in;//path for input txt files TString fpath_out;//path for output root files fpath_in.Form("/home/alexsandra/Untitled_Folder"); fpath_out.Form("/home/alexsandra/zagreb2017_runs"); TChain *t = new TChain("T","T"); TString f_in; f_in.Form("%s/r%i.root", fpath_in.Data(), run);//input data t->Add(f_in);//add the tree to the chain short wm; short wadc[10], wampl[10]; t->SetBranchAddress("wm", &wm); t->SetBranchAddress("wampl", &wampl); t->SetBranchAddress("wadc", &wadc); int N = t->GetEntries(); for(int i=0; iGetEntry(i); for(int j=0; jFill(eu1); } if( wadc[j]==34 ){ eu2=wampl[j]; geu2->Fill(eu2); } if( wadc[j]==35 ){ ed1=wampl[j]; ged1->Fill(ed1); } if( wadc[j]==36 ){ ed2=wampl[j]; ged2->Fill(ed2); } if( wadc[j]==49 ){ pu1=wampl[j]; gpu1->Fill(pu1); } if( wadc[j]==50 ){ pu2=wampl[j]; gpu2->Fill(pu2); } if( wadc[j]==51 ){ pd1=wampl[j]; gpd1->Fill(pd1); } if( wadc[j]==52 ){ pd2=wampl[j]; gpd2->Fill(pd2); } } if(eu1!=0 && ed1!=0){ ged1eu1->Fill(eu1,ed1); } if(eu2!=0 && ed2!=0){ ged2eu2->Fill(eu2,ed2); } if(pu1!=0 && eu1!=0){ gpeu1->Fill(eu1,pu1); } if(pu2!=0 && eu2!=0){ gpeu2->Fill(eu2,pu2); } if(pd1!=0 && ed1!=0){ gped1->Fill(ed1,pd1); } if(pd2!=0 && eu2!=0){ gped2->Fill(ed2,pd2); } } TCanvas *cane = new TCanvas("cane","energy 1D",1200,800); cane->Divide(2,2); TCanvas *canp = new TCanvas("canp","position 1D",1200,800); canp->Divide(2,2); TCanvas *canee = new TCanvas("canee","energy vs energy 2D",600,800); canee->Divide(1,2); TCanvas *canpe = new TCanvas("canpe","position vs energy 2D",1200,800); canpe->Divide(2,2); cane->cd(1); // g1->SetStats(0); geu1->Draw(); cane->cd(2); geu2->Draw(); cane->cd(3); ged1->Draw(); cane->cd(4); ged2->Draw(); canp->cd(1); gpu1->Draw(); canp->cd(2); gpu2->Draw(); canp->cd(3); gpd1->Draw(); canp->cd(4); gpd2->Draw(); canee->cd(1); // g1->SetStats(0); ged1eu1->Draw(); canee->cd(2); ged2eu2->Draw(); canpe->cd(1); gpeu1->Draw(); canpe->cd(2); gpeu2->Draw(); canpe->cd(3); gped1->Draw(); canpe->cd(4); gped2->Draw(); TString fname_out; fname_out.Form("%s/histos_%i.root", fpath_out.Data(), run);//input data TFile *fdata_write = new TFile(fname_out.Data(), "RECREATE");//open out_data for writing fdata_write->cd(); if (fdata_write->IsOpen()){ cout<<"\n\nRoot file opened for writing\n\n"<Write(); geu2->Write(); ged1->Write(); ged2->Write(); gpu1->Write(); gpu2->Write(); gpd1->Write(); gpd2->Write(); ged1eu1->Write(); ged2eu2->Write(); gpeu1->Write(); gpeu2->Write(); gped1->Write(); gped2->Write(); cout<<"Something should've been written in da ROOT:\n"<