diff --git a/macros/CCEScan/deplVphiN_normalized.C b/macros/CCEScan/deplVphiN_normalized.C index 99ab388..2ee030c 100644 --- a/macros/CCEScan/deplVphiN_normalized.C +++ b/macros/CCEScan/deplVphiN_normalized.C @@ -136,11 +136,12 @@ TVectorD v_lumi7 = *vp_lumi7; TVectorD v_lumi8 = *vp_lumi8; TVectorD v_lumi13 = *vp_lumi13; - // Get numbers of available read-out sectors and corresponding initial depletion voltage values + + // Get vector of read-out sectors numbers and corresponding initial depletion voltage values TVectorD* vp_sector = (TVectorD*)f_deplV->Get(Form("v_sector_%s",lay.Data())); TVectorD* vp_vdepl = (TVectorD*)f_deplV->Get(Form("v_vdepl_%s",lay.Data())); if (!vp_sector || !vp_vdepl) { - Error("deplVphiN","Depletion Voltage vectors are not available"); + Error("deplVphiN","Initial depletion voltage vector or sector number vector not available"); return EXIT_FAILURE; } TVectorD v_sector = *vp_sector; @@ -239,18 +240,20 @@ std::vector v_phiN_e_r_mid; std::vector v_phiN_e_r_high; // Boundaries for sectors sets - double vTop = 280.0; double vBottom = 125.0; double v1Bound = 160.0; double v2Bound = 220.0; + double vTop = 280.0; if (det.EqualTo("IT")) { - vTop = 250.0; vBottom = 75.0; v1Bound = 150.0; v2Bound = 220.0; + vTop = 250.0; } - double vMax = vTop; - double vMin = vBottom; + double vMax = vTop; + double vMin = vBottom; + + // Select range according to the chosen set if (set==1) { vMax = v1Bound; }else if(set==2){ @@ -282,6 +285,7 @@ TString vn_data(Form("%s/%s/%d/%d/v_volt_val%d", det.Data(),lay.Data(),sector,fill,val)); // Add radius postfix + // NB: Wwth k=0 it takes the whole sector! if (rTT[k]>0.0) { s_rad = Form("%d",(int)rTT[k]); vn_sector_flux += "_r"+s_rad; @@ -300,9 +304,9 @@ TVectorD* vp_flux8_err = (TVectorD*)f_sector->Get(vn_flux8_err.Data()); TVectorD* vp_flux13_err = (TVectorD*)f_sector->Get(vn_flux13_err.Data()); if (!vp_sector_flux || - !vp_flux7_val || !vp_flux7_err || + !vp_flux7_val || !vp_flux7_err || !vp_flux13_val || !vp_flux13_err || - !vp_flux8_val || !vp_flux8_err) { + !vp_flux8_val || !vp_flux8_err) { Error("deplVphiN","Missing flux information for radius = %6.2f mm",rTT[k]>0.0?rTT[k]:2000.0); continue; } @@ -321,22 +325,22 @@ TVectorD v_flux13_err = *vp_flux13_err; TVectorD v_data = *vp_data; int i_flux = getClosestIndex(v_sector_flux,(double)sector); - double flux7_val = v_flux7_val(i_flux); - double flux7_err = v_flux7_err(i_flux); - double flux8_val = v_flux8_val(i_flux); - double flux8_err = v_flux8_err(i_flux); + double flux7_val = v_flux7_val(i_flux); + double flux7_err = v_flux7_err(i_flux); + double flux8_val = v_flux8_val(i_flux); + double flux8_err = v_flux8_err(i_flux); double flux13_val = v_flux13_val(i_flux); double flux13_err = v_flux13_err(i_flux); - double lumi7 = v_lumi7(i); - double lumi8 = v_lumi8(i); - double lumi13 = v_lumi13(i); + double lumi7 = v_lumi7(i); + double lumi8 = v_lumi8(i); + double lumi13 = v_lumi13(i); double vdepl_prod = v_vdepl(j); - double vdepl_val = v_data(0); - double vdepl_err = v_data(1); - double vdepl_sys = v_data(2); - double vdepl_tot = vdepl_err; - double phiN_val = STTool::FLUKAConvFac; - double phiN_err = STTool::FLUKAConvFac; + double vdepl_val = v_data(0); + double vdepl_err = v_data(1); + double vdepl_sys = v_data(2); + double vdepl_tot = vdepl_err; + double phiN_val = STTool::FLUKAConvFac; + double phiN_err = STTool::FLUKAConvFac; phiN_val *= (flux7_val*lumi7 + flux8_val*lumi8 + flux13_val*lumi13); phiN_err *= (flux7_err*lumi7 + flux8_err*lumi8 + flux13_err*lumi13); // Define maximal and minimal Vdepl values to be drawn @@ -350,10 +354,12 @@ Warning("deplVphiN","Too high or low uncertainty on V_depl"); continue; } + // Remove points outside the plot range if (vdepl_val>plotMax || vdepl_valvMax || vdepl_prod<=vMin) { continue; } @@ -374,51 +380,57 @@ vdepl_val,vdepl_err,vdepl_sys); Printf(" V_depl,prod = %6.2f V", vdepl_prod); + //// 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 + + //----------------------------------------- for TT if (det.EqualTo("TT")) { - if (vdepl_prod>v2Bound) { - if (rTT[k]>0.0) { + if (vdepl_prod>v2Bound) { // Sectors with higher Vdepl after production + if (rTT[k]>0.0) { // Inner circles 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{ + }else{ // Whole sectors 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) { + }else if(vdepl_prod>v1Bound) { // Sectors with lower Vdepl after production + if (rTT[k]>0.0) { // Inner circles 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{ + }else{ // Whole sectors 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) { + }else{ // Sectors with lowest Vdepl after production + if (rTT[k]>0.0) { // Inner circles 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{ + }else{ // Whole sectors 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); } } + + //----------------------------------------- for IT }else{ if (vdepl_prod>v2Bound) { // Sectors with higher Vdepl after production if (rIT[k]>0.0) { // Inner circles