diff --git a/macros/CCEScan/deplVphiN_normalized.C b/macros/CCEScan/deplVphiN_normalized.C index ba3dfdc..92c56f0 100644 --- a/macros/CCEScan/deplVphiN_normalized.C +++ b/macros/CCEScan/deplVphiN_normalized.C @@ -350,8 +350,8 @@ Warning("deplVphiN","Sector excluded"); continue; } - // Add systematic uncertainty to get mean value of all uncertainties - mean_sys += vdepl_sys; + // Add systematic uncertainty to get mean value of all uncertainties. Normalize + mean_sys += vdepl_sys/vdepl_prod; nMeas++; // Print data Info("deplVphiN","Result for %s/%s sector %d, fill %d, radius %7.2f mm:", @@ -362,65 +362,65 @@ vdepl_val,vdepl_err,vdepl_sys); Printf(" V_depl,prod = %6.2f V", vdepl_prod); - // Define data point in plot - TMarker* m_res = new TMarker(phiN_val,vdepl_val,20); - TLine* l_hor = new TLine(phiN_val-phiN_err,vdepl_val, - phiN_val+phiN_err,vdepl_val); - TLine* l_ver = new TLine(phiN_val,vdepl_val-vdepl_err, - phiN_val,vdepl_val+vdepl_err); - // Add them to the proper vector + //// Define data point in plot (NOT NEEDED) + //TMarker* m_res = new TMarker(phiN_val,vdepl_val,20); + //TLine* l_hor = new TLine(phiN_val-phiN_err,vdepl_val, + // phiN_val+phiN_err,vdepl_val); + //TLine* l_ver = new TLine(phiN_val,vdepl_val-vdepl_err, + // phiN_val,vdepl_val+vdepl_err); + // Add data to the proper vectors and normalize if (det.EqualTo("TT")) { if (vdepl_prod>v2Bound) { if (rTT[k]>0.0) { - v_vdepl_v_r_high.push_back(vdepl_val); - v_vdepl_e_r_high.push_back(vdepl_tot); + v_vdepl_v_r_high.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_r_high.push_back(vdepl_tot/vdepl_prod); v_phiN_v_r_high.push_back(phiN_val); v_phiN_e_r_high.push_back(phiN_err); }else{ - v_vdepl_v_norm_high.push_back(vdepl_val); - v_vdepl_e_norm_high.push_back(vdepl_tot); + v_vdepl_v_norm_high.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_norm_high.push_back(vdepl_tot/vdepl_prod); v_phiN_v_norm_high.push_back(phiN_val); v_phiN_e_norm_high.push_back(phiN_err); } }else if(vdepl_prod>v1Bound) { if (rTT[k]>0.0) { - v_vdepl_v_r_mid.push_back(vdepl_val); - v_vdepl_e_r_mid.push_back(vdepl_tot); + v_vdepl_v_r_mid.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_r_mid.push_back(vdepl_tot/vdepl_prod); v_phiN_v_r_mid.push_back(phiN_val); v_phiN_e_r_mid.push_back(phiN_err); }else{ - v_vdepl_v_norm_mid.push_back(vdepl_val); - v_vdepl_e_norm_mid.push_back(vdepl_tot); + v_vdepl_v_norm_mid.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_norm_mid.push_back(vdepl_tot/vdepl_prod); v_phiN_v_norm_mid.push_back(phiN_val); v_phiN_e_norm_mid.push_back(phiN_err); } }else{ if (rTT[k]>0.0) { - v_vdepl_v_r_low.push_back(vdepl_val); - v_vdepl_e_r_low.push_back(vdepl_tot); + v_vdepl_v_r_low.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_r_low.push_back(vdepl_tot/vdepl_prod); v_phiN_v_r_low.push_back(phiN_val); v_phiN_e_r_low.push_back(phiN_err); }else{ - v_vdepl_v_norm_low.push_back(vdepl_val); - v_vdepl_e_norm_low.push_back(vdepl_tot); + v_vdepl_v_norm_low.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_norm_low.push_back(vdepl_tot/vdepl_prod); v_phiN_v_norm_low.push_back(phiN_val); v_phiN_e_norm_low.push_back(phiN_err); } } }else{ if (vdepl_prod>v2Bound) { - v_vdepl_v_norm_high.push_back(vdepl_val); - v_vdepl_e_norm_high.push_back(vdepl_tot); + v_vdepl_v_norm_high.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_norm_high.push_back(vdepl_tot/vdepl_prod); v_phiN_v_norm_high.push_back(phiN_val); v_phiN_e_norm_high.push_back(phiN_err); }else if(vdepl_prod>v1Bound) { - v_vdepl_v_norm_mid.push_back(vdepl_val); - v_vdepl_e_norm_mid.push_back(vdepl_tot); + v_vdepl_v_norm_mid.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_norm_mid.push_back(vdepl_tot/vdepl_prod); v_phiN_v_norm_mid.push_back(phiN_val); v_phiN_e_norm_mid.push_back(phiN_err); }else{ - v_vdepl_v_norm_low.push_back(vdepl_val); - v_vdepl_e_norm_low.push_back(vdepl_tot); + v_vdepl_v_norm_low.push_back(vdepl_val/vdepl_prod); + v_vdepl_e_norm_low.push_back(vdepl_tot/vdepl_prod); v_phiN_v_norm_low.push_back(phiN_val); v_phiN_e_norm_low.push_back(phiN_err); } @@ -433,29 +433,23 @@ if (nMeas>0) { mean_sys /= nMeas; } - - // Add systmatic uncertainty from the extraction procedure of the depletion voltage + // Wait, what constant is this one?! + // Add systmatic uncertainty from the extraction procedure of the depletion voltage. Normalize if (det.EqualTo("IT")) { - mean_sys = TMath::Sqrt(mean_sys*mean_sys+STTool::voltSyst_IT*STTool::voltSyst_IT); + mean_sys = TMath::Sqrt(mean_sys*mean_sys + (STTool::voltSyst_IT*STTool::voltSyst_IT / (startV*startV))); } if (det.EqualTo("TT")) { - mean_sys = TMath::Sqrt(mean_sys*mean_sys+STTool::voltSyst_TT*STTool::voltSyst_TT); + mean_sys = TMath::Sqrt(mean_sys*mean_sys + (STTool::voltSyst_TT*STTool::voltSyst_TT / (startV*startV))); } - - + // We are summing systematics from the data to systematics from the predictions!!!! + // Drawing prediction limits vr_vdepl_v_theo+=mean_sys; - - TGraph* ge_theo_high = new TGraph(vr_phiN_v_theo, - vr_vdepl_v_theo); + TGraph* ge_theo_high = new TGraph(vr_phiN_v_theo, vr_vdepl_v_theo); ge_theo_high->SetLineStyle(9); - vr_vdepl_v_theo-=2*mean_sys; - - TGraph* ge_theo_low = new TGraph(vr_phiN_v_theo, - vr_vdepl_v_theo); + TGraph* ge_theo_low = new TGraph(vr_phiN_v_theo, vr_vdepl_v_theo); ge_theo_low->SetLineStyle(9); - - + // Transfrom STL vectors to ROOT vectors TVectorD vr_vdepl_v_norm_low = getROOTVector(v_vdepl_v_norm_low); TVectorD vr_vdepl_v_norm_mid = getROOTVector(v_vdepl_v_norm_mid); @@ -481,67 +475,56 @@ TVectorD vr_phiN_e_r_low = getROOTVector(v_phiN_e_r_low); TVectorD vr_phiN_e_r_mid = getROOTVector(v_phiN_e_r_mid); TVectorD vr_phiN_e_r_high = getROOTVector(v_phiN_e_r_high); - - - // Generate graphs double markerSize = 1.0; - TGraphErrors* ge_norm_low = new TGraphErrors(vr_phiN_v_norm_low, - vr_vdepl_v_norm_low, - vr_phiN_e_norm_low, - vr_vdepl_e_norm_low); + vr_vdepl_v_norm_low, + vr_phiN_e_norm_low, + vr_vdepl_e_norm_low); ge_norm_low->SetMarkerSize(markerSize); ge_norm_low->SetMarkerStyle(23); ge_norm_low->SetMarkerColor(kGreen+3); ge_norm_low->SetLineColor(kGreen+3); - TGraphErrors* ge_norm_mid = new TGraphErrors(vr_phiN_v_norm_mid, - vr_vdepl_v_norm_mid, - vr_phiN_e_norm_mid, - vr_vdepl_e_norm_mid); + vr_vdepl_v_norm_mid, + vr_phiN_e_norm_mid, + vr_vdepl_e_norm_mid); ge_norm_mid->SetMarkerSize(markerSize); ge_norm_mid->SetMarkerStyle(22); ge_norm_mid->SetMarkerColor(kBlue); ge_norm_mid->SetLineColor(kBlue); - TGraphErrors* ge_norm_high = new TGraphErrors(vr_phiN_v_norm_high, - vr_vdepl_v_norm_high, - vr_phiN_e_norm_high, - vr_vdepl_e_norm_high); + vr_vdepl_v_norm_high, + vr_phiN_e_norm_high, + vr_vdepl_e_norm_high); ge_norm_high->SetMarkerSize(markerSize); ge_norm_high->SetMarkerStyle(20); ge_norm_high->SetMarkerColor(kRed); ge_norm_high->SetLineColor(kRed); - - TGraphErrors* ge_r_low = new TGraphErrors(vr_phiN_v_r_low, - vr_vdepl_v_r_low, - vr_phiN_e_r_low, - vr_vdepl_e_r_low); + vr_vdepl_v_r_low, + vr_phiN_e_r_low, + vr_vdepl_e_r_low); ge_r_low->SetMarkerSize(markerSize); ge_r_low->SetMarkerStyle(32); ge_r_low->SetMarkerColor(kGreen+3); ge_r_low->SetLineColor(kGreen+3); - TGraphErrors* ge_r_mid = new TGraphErrors(vr_phiN_v_r_mid, - vr_vdepl_v_r_mid, - vr_phiN_e_r_mid, - vr_vdepl_e_r_mid); + vr_vdepl_v_r_mid, + vr_phiN_e_r_mid, + vr_vdepl_e_r_mid); ge_r_mid->SetMarkerSize(markerSize); ge_r_mid->SetMarkerStyle(26); ge_r_mid->SetMarkerColor(kBlue); ge_r_mid->SetLineColor(kBlue); - TGraphErrors* ge_r_high = new TGraphErrors(vr_phiN_v_r_high, - vr_vdepl_v_r_high, - vr_phiN_e_r_high, - vr_vdepl_e_r_high); + vr_vdepl_v_r_high, + vr_phiN_e_r_high, + vr_vdepl_e_r_high); ge_r_high->SetMarkerSize(markerSize); ge_r_high->SetMarkerStyle(24); ge_r_high->SetMarkerColor(kRed); ge_r_high->SetLineColor(kRed); - mg_frame->Add(ge_theo,"E3"); mg_frame->Add(ge_theo_noerr,"L"); mg_frame->Add(ge_theo_high,"L"); @@ -552,36 +535,28 @@ mg_frame->Add(ge_r_low,"p"); mg_frame->Add(ge_r_mid,"p"); mg_frame->Add(ge_r_high,"p"); - mg_frame->Draw("a"); - // Plot graphs - + mg_frame->Draw("a"); mg_frame->GetXaxis()->SetTitle("#phi_{1 MeV-n,eq} [cm^{-2}]"); - mg_frame->GetYaxis()->SetTitle("#it{V}_{depl} [V]"); + // Normalize + mg_frame->GetYaxis()->SetTitle("#it{V}_{depl}/#it{V}_{depl, production}"); mg_frame->GetXaxis()->SetLimits(1e+8,1e+14); mg_frame->GetXaxis()->SetLabelOffset(-0.005); mg_frame->GetXaxis()->SetTitleOffset(1.2); - mg_frame->SetMaximum(300.0); + // Normalize + mg_frame->SetMaximum(300.0 / startV); mg_frame->SetMinimum(0.0); - - - // Draw legend - double baseY = 0.30; if (det.EqualTo("IT")) { baseY = 0.90; } - - - TMarker* m_leg = new TMarker(0.25,baseY,20); TLatex* t_leg = new TLatex(0.27,baseY,"#it{V}_{depl} > 225 V"); t_leg->SetTextSize(0.04); t_leg->SetTextAlign(12); t_leg->SetNDC(); m_leg->SetNDC(); - if (det.EqualTo("TT") && (set==3 || set==0)) { m_leg->SetX(0.25); m_leg->SetY(baseY); @@ -599,7 +574,6 @@ } baseY -= 0.05; } - if (det.EqualTo("TT") && (set==2 || set==0)) { m_leg->SetX(0.25); m_leg->SetY(baseY); @@ -617,7 +591,6 @@ } baseY -= 0.05; } - if (det.EqualTo("IT") && (set==1 || set==0)) { m_leg->SetX(0.25); m_leg->SetY(baseY); @@ -635,19 +608,11 @@ } baseY -= 0.05; } - - - TLine* l_line = new TLine(0.20,baseY,0.25,baseY); l_line->DrawLineNDC(0.23,baseY,0.27,baseY); t_leg->DrawLatex(0.30,baseY,Form("Hamburg Model (#it{V}_{depl} = %3.0f V)",startV)); - mg_frame->GetHistogram()->Draw("axissame"); - - - Printf("=========================================\n"); - return EXIT_SUCCESS; }