Skip to content

Commit e5cedee

Browse files
committed
Synchronise variables with the analyzer.
1 parent 2cdb7cb commit e5cedee

File tree

1 file changed

+37
-28
lines changed

1 file changed

+37
-28
lines changed

machine_learning_hep/processerdhadrons_jet.py

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
main script for doing data processing, machine learning and analysis
1717
"""
1818
import math
19-
import array
19+
from array import array
2020
import pickle
2121
import pandas as pd
2222
import numpy as np
@@ -54,46 +54,55 @@ def __init__(self, case, datap, run_param, mcordata, p_maxfiles,
5454
self.l_selml = ["y_test_prob%s>%s" % (self.p_modelname, self.lpt_probcutfin[ipt]) \
5555
for ipt in range(self.p_nptbins)]
5656

57+
# first variable (hadron pt)
58+
self.v_var_binning = datap["var_binning"] # name
59+
self.lpt_finbinmin = datap["analysis"][self.typean]["sel_an_binmin"]
60+
self.lpt_finbinmax = datap["analysis"][self.typean]["sel_an_binmax"]
61+
self.p_nptfinbins = len(self.lpt_finbinmin) # number of bins
62+
self.bin_matching = datap["analysis"][self.typean]["binning_matching"]
63+
self.var1ranges = self.lpt_finbinmin.copy()
64+
self.var1ranges.append(self.lpt_finbinmax[-1])
65+
self.var1binarray = array("d", self.var1ranges) # array of bin edges to use in histogram constructors
66+
5767
# second variable (jet pt)
5868
self.v_var2_binning = datap["analysis"][self.typean]["var_binning2"] # name
5969
self.lvar2_binmin_reco = datap["analysis"][self.typean].get("sel_binmin2_reco", None)
6070
self.lvar2_binmax_reco = datap["analysis"][self.typean].get("sel_binmax2_reco", None)
61-
self.p_nbin2_reco = len(self.lvar2_binmin_reco)
71+
self.p_nbin2_reco = len(self.lvar2_binmin_reco) # number of reco bins
6272
self.lvar2_binmin_gen = datap["analysis"][self.typean].get("sel_binmin2_gen", None)
6373
self.lvar2_binmax_gen = datap["analysis"][self.typean].get("sel_binmax2_gen", None)
64-
self.p_nbin2_gen = len(self.lvar2_binmin_gen)
74+
self.p_nbin2_gen = len(self.lvar2_binmin_gen) # number of gen bins
75+
self.var2ranges_reco = self.lvar2_binmin_reco.copy()
76+
self.var2ranges_reco.append(self.lvar2_binmax_reco[-1])
77+
self.var2binarray_reco = array("d", self.var2ranges_reco) # array of bin edges to use in histogram constructors
78+
self.var2ranges_gen = self.lvar2_binmin_gen.copy()
79+
self.var2ranges_gen.append(self.lvar2_binmax_gen[-1])
80+
self.var2binarray_gen = array("d", self.var2ranges_gen) # array of bin edges to use in histogram constructors
6581

6682
# observable (z, shape,...)
6783
self.v_varshape_binning = datap["analysis"][self.typean]["var_binningshape"] # name (reco)
6884
self.v_varshape_binning_gen = datap["analysis"][self.typean]["var_binningshape_gen"] # name (gen)
69-
self.v_varshape_latex = datap["analysis"][self.typean]["var_shape_latex"] # LaTeX name
7085
self.lvarshape_binmin_reco = \
7186
datap["analysis"][self.typean].get("sel_binminshape_reco", None)
7287
self.lvarshape_binmax_reco = \
7388
datap["analysis"][self.typean].get("sel_binmaxshape_reco", None)
74-
self.p_nbinshape_reco = len(self.lvarshape_binmin_reco)
75-
self.lvarshape_binmin_gen = datap["analysis"][self.typean].get("sel_binminshape_gen", None)
76-
self.lvarshape_binmax_gen = datap["analysis"][self.typean].get("sel_binmaxshape_gen", None)
77-
self.p_nbinshape_gen = len(self.lvarshape_binmin_gen)
78-
79-
self.closure_frac = datap["analysis"][self.typean].get("sel_closure_frac", None)
80-
81-
self.var2ranges_reco = self.lvar2_binmin_reco.copy()
82-
self.var2ranges_reco.append(self.lvar2_binmax_reco[-1])
83-
self.var2ranges_gen = self.lvar2_binmin_gen.copy()
84-
self.var2ranges_gen.append(self.lvar2_binmax_gen[-1])
89+
self.p_nbinshape_reco = len(self.lvarshape_binmin_reco) # number of reco bins
90+
self.lvarshape_binmin_gen = \
91+
datap["analysis"][self.typean].get("sel_binminshape_gen", None)
92+
self.lvarshape_binmax_gen = \
93+
datap["analysis"][self.typean].get("sel_binmaxshape_gen", None)
94+
self.p_nbinshape_gen = len(self.lvarshape_binmin_gen) # number of gen bins
8595
self.varshaperanges_reco = self.lvarshape_binmin_reco.copy()
8696
self.varshaperanges_reco.append(self.lvarshape_binmax_reco[-1])
97+
self.varshapebinarray_reco = array("d", self.varshaperanges_reco) # array of bin edges to use in histogram constructors
8798
self.varshaperanges_gen = self.lvarshape_binmin_gen.copy()
8899
self.varshaperanges_gen.append(self.lvarshape_binmax_gen[-1])
100+
self.varshapebinarray_gen = array("d", self.varshaperanges_gen) # array of bin edges to use in histogram constructors
89101

102+
self.closure_frac = datap["analysis"][self.typean].get("sel_closure_frac", None)
90103
self.doprior = datap["analysis"][self.typean]["doprior"]
91104

92-
self.lpt_finbinmin = datap["analysis"][self.typean]["sel_an_binmin"]
93-
self.lpt_finbinmax = datap["analysis"][self.typean]["sel_an_binmax"]
94-
self.p_nptfinbins = len(self.lpt_finbinmin)
95-
self.bin_matching = datap["analysis"][self.typean]["binning_matching"]
96-
#self.sel_final_fineptbins = datap["analysis"][self.typean]["sel_final_fineptbins"]
105+
# selection
97106
self.s_evtsel = datap["analysis"][self.typean]["evtsel"]
98107
self.s_jetsel_gen = datap["analysis"][self.typean]["jetsel_gen"]
99108
self.s_jetsel_reco = datap["analysis"][self.typean]["jetsel_reco"]
@@ -163,8 +172,8 @@ def process_histomass_single(self, index):
163172
h_invmass.Write()
164173

165174
massarray = [1.0 + i * (5.0 / 5000.0) for i in range(5001)] # 5000 bins in range 1.0-6.0
166-
massarray_reco = array.array('d', massarray)
167-
zarray_reco = array.array('d', self.varshaperanges_reco)
175+
massarray_reco = array('d', massarray)
176+
zarray_reco = array('d', self.varshaperanges_reco)
168177
h_zvsinvmass = TH2F("hzvsmass" + suffix, "", \
169178
5000, massarray_reco, self.p_nbinshape_reco, zarray_reco)
170179
h_zvsinvmass.Sumw2()
@@ -197,7 +206,7 @@ def process_efficiency_single(self, index):
197206
n_bins = self.p_nptfinbins
198207
analysis_bin_lims_temp = self.lpt_finbinmin.copy()
199208
analysis_bin_lims_temp.append(self.lpt_finbinmax[n_bins-1])
200-
analysis_bin_lims = array.array('f', analysis_bin_lims_temp)
209+
analysis_bin_lims = array('f', analysis_bin_lims_temp)
201210
h_gen_pr = TH1F("h_gen_pr" + stringbin2, "Prompt Generated in acceptance |y|<0.5", \
202211
n_bins, analysis_bin_lims)
203212
h_presel_pr = TH1F("h_presel_pr" + stringbin2, "Prompt Reco in acc |#eta|<0.8 and sel", \
@@ -338,27 +347,27 @@ def process_response_single(self, index): # pylint: disable=too-many-locals
338347
zbin_reco = []
339348
nzbin_reco = self.p_nbinshape_reco
340349
zbin_reco = self.varshaperanges_reco
341-
zbinarray_reco = array.array('d', zbin_reco)
350+
zbinarray_reco = array('d', zbin_reco)
342351

343352
zbin_gen = []
344353
nzbin_gen = self.p_nbinshape_gen
345354
zbin_gen = self.varshaperanges_gen
346-
zbinarray_gen = array.array('d', zbin_gen)
355+
zbinarray_gen = array('d', zbin_gen)
347356

348357
jetptbin_reco = []
349358
njetptbin_reco = self.p_nbin2_reco
350359
jetptbin_reco = self.var2ranges_reco
351-
jetptbinarray_reco = array.array('d', jetptbin_reco)
360+
jetptbinarray_reco = array('d', jetptbin_reco)
352361

353362
jetptbin_gen = []
354363
njetptbin_gen = self.p_nbin2_gen
355364
jetptbin_gen = self.var2ranges_gen
356-
jetptbinarray_gen = array.array('d', jetptbin_gen)
365+
jetptbinarray_gen = array('d', jetptbin_gen)
357366

358367
candptbin = []
359368
candptbin = self.lpt_finbinmin.copy()
360369
candptbin.append(self.lpt_finbinmax[-1])
361-
candptbinarray = array.array('d', candptbin)
370+
candptbinarray = array('d', candptbin)
362371

363372
out_file = TFile.Open(self.l_historesp[index], "recreate")
364373
list_df_mc_reco = []

0 commit comments

Comments
 (0)