@@ -83,14 +83,18 @@ def main(config):
8383
8484 hist_corry_prompt = hist_rawy [0 ].Clone ("hCorrYieldsPrompt" )
8585 hist_corry_nonprompt = hist_rawy [0 ].Clone ("hCorrYieldsNonPrompt" )
86- hist_covariance = hist_rawy [0 ].Clone ("hCovPromptNonPrompt" )
86+ hist_covariance_pnp = hist_rawy [0 ].Clone ("hCovPromptNonPrompt" )
87+ hist_covariance_pp = hist_rawy [0 ].Clone ("hCovPromptPrompt" )
88+ hist_covariance_npnp = hist_rawy [0 ].Clone ("hCovNonPromptNonPrompt" )
8789 hist_corrfrac_prompt = hist_rawy [0 ].Clone ("hCorrFracPrompt" )
8890 hist_corrfrac_nonprompt = hist_rawy [0 ].Clone ("hCorrFracNonPrompt" )
89- for histo in hist_corry_prompt , hist_corry_nonprompt , hist_covariance , hist_corrfrac_prompt , hist_corrfrac_nonprompt :
91+ for histo in hist_corry_prompt , hist_corry_nonprompt , hist_covariance_pnp , hist_covariance_pp , hist_covariance_npnp , hist_corrfrac_prompt , hist_corrfrac_nonprompt :
9092 histo .Reset ()
9193 hist_corry_prompt .GetYaxis ().SetTitle ("corrected yields prompt" )
9294 hist_corry_nonprompt .GetYaxis ().SetTitle ("corrected yields non-prompt" )
93- hist_covariance .GetYaxis ().SetTitle ("#sigma(prompt, non-prompt)" )
95+ hist_covariance_pnp .GetYaxis ().SetTitle ("#sigma(prompt, non-prompt)" )
96+ hist_covariance_pp .GetYaxis ().SetTitle ("#sigma(prompt, prompt)" )
97+ hist_covariance_npnp .GetYaxis ().SetTitle ("#sigma(non-prompt, non-prompt)" )
9498 hist_corrfrac_prompt .GetYaxis ().SetTitle ("corrected fraction prompt" )
9599 hist_corrfrac_nonprompt .GetYaxis ().SetTitle ("corrected fraction non-prompt" )
96100 set_object_style (
@@ -105,7 +109,9 @@ def main(config):
105109 fillstyle = 0 ,
106110 markerstyle = ROOT .kFullSquare ,
107111 )
108- set_object_style (hist_covariance )
112+ set_object_style (hist_covariance_pnp )
113+ set_object_style (hist_covariance_pp )
114+ set_object_style (hist_covariance_npnp )
109115 set_object_style (
110116 hist_corrfrac_prompt ,
111117 color = ROOT .kRed + 1 ,
@@ -172,62 +178,73 @@ def main(config):
172178 print (f"raw yield uncertainties vector elements = { unc_rawy } \n " )
173179
174180 minimiser = CutVarMinimiser (rawy , effp , effnp , unc_rawy , unc_effp , unc_effnp )
175- minimiser .minimise_system (cfg ["minimisation" ]["correlated" ])
176-
177- hist_corry_prompt .SetBinContent (ipt + 1 , minimiser .get_prompt_yield_and_error ()[0 ])
178- hist_corry_prompt .SetBinError (ipt + 1 , minimiser .get_prompt_yield_and_error ()[1 ])
179- hist_corry_nonprompt .SetBinContent (ipt + 1 , minimiser .get_nonprompt_yield_and_error ()[0 ])
180- hist_corry_nonprompt .SetBinError (ipt + 1 , minimiser .get_nonprompt_yield_and_error ()[1 ])
181- hist_covariance .SetBinContent (ipt + 1 , minimiser .get_prompt_nonprompt_cov ())
182- hist_covariance .SetBinError (ipt + 1 , 0 )
183- corr_frac_prompt = minimiser .get_corr_prompt_fraction ()
184- corr_frac_nonprompt = minimiser .get_corr_nonprompt_fraction ()
185- hist_corrfrac_prompt .SetBinContent (ipt + 1 , corr_frac_prompt [0 ])
186- hist_corrfrac_prompt .SetBinError (ipt + 1 , corr_frac_prompt [1 ])
187- hist_corrfrac_nonprompt .SetBinContent (ipt + 1 , corr_frac_nonprompt [0 ])
188- hist_corrfrac_nonprompt .SetBinError (ipt + 1 , corr_frac_nonprompt [1 ])
189- if cfg ["central_efficiency" ]["computerawfrac" ]:
190- raw_frac_prompt = minimiser .get_raw_prompt_fraction (
191- hist_central_effp .GetBinContent (ipt + 1 ), hist_central_effnp .GetBinContent (ipt + 1 )
192- )
193- raw_frac_nonprompt = minimiser .get_raw_nonprompt_fraction (
194- hist_central_effp .GetBinContent (ipt + 1 ), hist_central_effnp .GetBinContent (ipt + 1 )
195- )
196- hist_frac_raw_prompt .SetBinContent (ipt + 1 , raw_frac_prompt [0 ])
197- hist_frac_raw_prompt .SetBinError (ipt + 1 , raw_frac_prompt [1 ])
198- hist_frac_raw_nonprompt .SetBinContent (ipt + 1 , raw_frac_nonprompt [0 ])
199- hist_frac_raw_nonprompt .SetBinError (ipt + 1 , raw_frac_nonprompt [1 ])
200-
201- hist_bin_title = f"bin # { ipt + 1 } ; { pt_axis_title } #in ({ pt_min } ; { pt_max } )"
202-
203- canv_rawy , histos_rawy , leg_r = minimiser .plot_result (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
204- output .cd ()
205- canv_rawy .Write ()
206- for _ , hist in histos_rawy .items ():
207- hist .Write ()
208-
209- canv_unc , histos_unc , leg_unc = minimiser .plot_uncertainties (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
210- output .cd ()
211- canv_unc .Write ()
212- for _ , hist in histos_unc .items ():
213- hist .Write ()
214-
215- canv_eff , histos_eff , leg_e = minimiser .plot_efficiencies (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
216- output .cd ()
217- canv_eff .Write ()
218- for _ , hist in histos_eff .items ():
219- hist .Write ()
220-
221- canv_frac , histos_frac , leg_f = minimiser .plot_fractions (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
222- output .cd ()
223- canv_frac .Write ()
224- for _ , hist in histos_frac .items ():
225- hist .Write ()
226-
227- canv_cov , histo_cov = minimiser .plot_cov_matrix (True , f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
228- output .cd ()
229- canv_cov .Write ()
230- histo_cov .Write ()
181+ status = minimiser .minimise_system (cfg ["minimisation" ]["correlated" ])
182+
183+ if status :
184+ hist_corry_prompt .SetBinContent (ipt + 1 , minimiser .get_prompt_yield_and_error ()[0 ])
185+ hist_corry_prompt .SetBinError (ipt + 1 , minimiser .get_prompt_yield_and_error ()[1 ])
186+ hist_corry_nonprompt .SetBinContent (ipt + 1 , minimiser .get_nonprompt_yield_and_error ()[0 ])
187+ hist_corry_nonprompt .SetBinError (ipt + 1 , minimiser .get_nonprompt_yield_and_error ()[1 ])
188+ hist_covariance_pnp .SetBinContent (ipt + 1 , minimiser .get_prompt_nonprompt_cov ())
189+ hist_covariance_pnp .SetBinError (ipt + 1 , 0 )
190+ hist_covariance_pp .SetBinContent (ipt + 1 , minimiser .get_prompt_prompt_cov ())
191+ hist_covariance_pp .SetBinError (ipt + 1 , 0 )
192+ hist_covariance_npnp .SetBinContent (ipt + 1 , minimiser .get_nonprompt_nonprompt_cov ())
193+ hist_covariance_npnp .SetBinError (ipt + 1 , 0 )
194+ corr_frac_prompt = minimiser .get_corr_prompt_fraction ()
195+ corr_frac_nonprompt = minimiser .get_corr_nonprompt_fraction ()
196+ hist_corrfrac_prompt .SetBinContent (ipt + 1 , corr_frac_prompt [0 ])
197+ hist_corrfrac_prompt .SetBinError (ipt + 1 , corr_frac_prompt [1 ])
198+ hist_corrfrac_nonprompt .SetBinContent (ipt + 1 , corr_frac_nonprompt [0 ])
199+ hist_corrfrac_nonprompt .SetBinError (ipt + 1 , corr_frac_nonprompt [1 ])
200+ if cfg ["central_efficiency" ]["computerawfrac" ]:
201+ raw_frac_prompt = minimiser .get_raw_prompt_fraction (
202+ hist_central_effp .GetBinContent (ipt + 1 ), hist_central_effnp .GetBinContent (ipt + 1 )
203+ )
204+ raw_frac_nonprompt = minimiser .get_raw_nonprompt_fraction (
205+ hist_central_effp .GetBinContent (ipt + 1 ), hist_central_effnp .GetBinContent (ipt + 1 )
206+ )
207+ hist_frac_raw_prompt .SetBinContent (ipt + 1 , raw_frac_prompt [0 ])
208+ hist_frac_raw_prompt .SetBinError (ipt + 1 , raw_frac_prompt [1 ])
209+ hist_frac_raw_nonprompt .SetBinContent (ipt + 1 , raw_frac_nonprompt [0 ])
210+ hist_frac_raw_nonprompt .SetBinError (ipt + 1 , raw_frac_nonprompt [1 ])
211+
212+ hist_bin_title = f"bin # { ipt + 1 } ; { pt_axis_title } #in ({ pt_min } ; { pt_max } )"
213+
214+ canv_rawy , histos_rawy , leg_r = minimiser .plot_result (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
215+ output .cd ()
216+ canv_rawy .Write ()
217+ for _ , hist in histos_rawy .items ():
218+ hist .Write ()
219+
220+ canv_unc , histos_unc , leg_unc = minimiser .plot_uncertainties (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
221+ output .cd ()
222+ canv_unc .Write ()
223+ for _ , hist in histos_unc .items ():
224+ hist .Write ()
225+
226+ canv_eff , histos_eff , leg_e = minimiser .plot_efficiencies (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
227+ output .cd ()
228+ canv_eff .Write ()
229+ for _ , hist in histos_eff .items ():
230+ hist .Write ()
231+
232+ canv_frac , histos_frac , leg_f = minimiser .plot_fractions (f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
233+ output .cd ()
234+ canv_frac .Write ()
235+ for _ , hist in histos_frac .items ():
236+ hist .Write ()
237+
238+ canv_cov , histo_cov = minimiser .plot_cov_matrix (True , f"_pt{ pt_min } _{ pt_max } " , hist_bin_title )
239+ output .cd ()
240+ canv_cov .Write ()
241+ histo_cov .Write ()
242+ else :
243+ print (f"Minimization for pT { pt_min } , { pt_max } not successful" )
244+ canv_rawy = ROOT .TCanvas ("c_rawy_minimization_error" , "Minimization error" , 500 , 500 )
245+ canv_eff = ROOT .TCanvas ("c_eff_minimization_error" , "Minimization error" , 500 , 500 )
246+ canv_frac = ROOT .TCanvas ("c_frac_minimization_error" , "Minimization error" , 500 , 500 )
247+ canv_cov = ROOT .TCanvas ("c_conv_minimization_error" , "Minimization error" , 500 , 500 )
231248
232249 canv_combined = ROOT .TCanvas (f"canv_combined_{ ipt } " , "" , 1000 , 1000 )
233250 canv_combined .Divide (2 , 2 )
@@ -267,7 +284,9 @@ def main(config):
267284 output .cd ()
268285 hist_corry_prompt .Write ()
269286 hist_corry_nonprompt .Write ()
270- hist_covariance .Write ()
287+ hist_covariance_pnp .Write ()
288+ hist_covariance_pp .Write ()
289+ hist_covariance_npnp .Write ()
271290 hist_corrfrac_prompt .Write ()
272291 hist_corrfrac_nonprompt .Write ()
273292 if cfg ["central_efficiency" ]["computerawfrac" ]:
0 commit comments