@@ -99,10 +99,12 @@ def __init__(
9999 self .v_is_antipart = datap ["bitmap_sel" ].get ("var_is_antipart" , "" )
100100 self .v_issel_part = datap ["bitmap_sel" ].get ("var_issel_part" , "" )
101101 self .v_issel_antipart = datap ["bitmap_sel" ].get ("var_issel_antipart" , "" )
102+ self .v_is_corrbkg = datap ["bitmap_sel" ].get ("var_is_corrbkg" , "" )
102103 self .v_invmass = datap ["variables" ].get ("var_inv_mass" , "fM" )
103104 self .p_mass_fit_lim = datap ["analysis" ][self .typean ]["mass_fit_lim" ]
104105 self .p_bin_width = datap ["analysis" ][self .typean ]["bin_width" ]
105106 self .reflections = datap ["analysis" ][self .typean ].get ("reflections" , False )
107+ self .corr_bkg = datap ["analysis" ][self .typean ].get ("corr_bkg" , False )
106108 self .binarray_pthf = np .asarray (self .cfg ("sel_an_binmin" , []) + self .cfg ("sel_an_binmax" , [])[- 1 :], "d" )
107109 limits_mass = datap ["analysis" ][self .typean ]["mass_fit_lim" ]
108110 nbins_mass = int (round ((limits_mass [1 ] - limits_mass [0 ]) / self .p_bin_width ))
@@ -246,7 +248,13 @@ def process_histomass_single(self, index):
246248 df_bin = seldf_singlevar_inclusive (
247249 df , self .v_var2_binning , self .lvar2_binmin [ibin2 ], self .lvar2_binmax [ibin2 ]
248250 )
249- fill_hist (h_invmass , df_bin [self .v_invmass ])
251+
252+ if self .mcordata == "mc" and self .corr_bkg :
253+ df_bin_mc = df_bin [(df_bin [self .v_ismcsignal ] == 1 ) | (df_bin [self .v_is_corrbkg ] == 1 )]
254+ fill_hist (h_invmass , df_bin_mc [self .v_invmass ])
255+ else :
256+ fill_hist (h_invmass , df_bin [self .v_invmass ])
257+
250258 myfile .cd ()
251259 h_invmass .Write ()
252260
@@ -282,6 +290,18 @@ def process_histomass_single(self, index):
282290 fill_hist (h_invmass_refl , df_bin_refl [self .v_invmass ])
283291 h_invmass_refl .Write ()
284292
293+ if self .corr_bkg :
294+ df_bin_corrbkg = df_bin [df_bin [self .v_is_corrbkg ] == 1 ]
295+ h_invmass_corrbkg = TH1F (
296+ "hmass_mcbkgcorr_" + suffix ,
297+ "" ,
298+ self .p_num_bins ,
299+ self .p_mass_fit_lim [0 ],
300+ self .p_mass_fit_lim [1 ],
301+ )
302+ fill_hist (h_invmass_corrbkg , df_bin_corrbkg [self .v_invmass ])
303+ h_invmass_corrbkg .Write ()
304+
285305 if self .event_cand_validation is True :
286306 label = "h%s" % self .v_var2_binning
287307 histomult = TH1F (label , label , self .nbinshisto , self .minvaluehisto , self .maxvaluehisto )
@@ -506,6 +526,9 @@ def process_efficiency(self):
506526
507527 create_folder_struc (self .d_results , self .l_path )
508528 arguments = [(i ,) for i in range (len (self .l_root ))]
529+ # tmp_merged = f"/data2/ldellost/hadd/{self.case}_{self.typean}/histoeff_{self.period}/{get_timestamp_string()}/"
530+ # os.makedirs(tmp_merged, exist_ok=True)
531+
509532 self .parallelizer (self .process_efficiency_single , arguments , self .p_chunksizeunp )
510533 tmp_merged = f"/data/tmp/hadd/{ self .case } _{ self .typean } /histoeff_{ self .period } /{ get_timestamp_string ()} /"
511534 mergerootfiles (self .l_histoeff , self .n_fileeff , tmp_merged )
0 commit comments