Skip to content
Merged
1 change: 1 addition & 0 deletions AnaProd/anaTupleDef.py
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,7 @@ def LegVar(var_name, var_expr, var_type=None, var_cond=None, default=0):
f"SelectedFatJet_{fatjetVar}",
f"Take(tmp_SelectedFatJet_{fatjetVar}, SelectedFatJet_idxSorted)",
)
dfw.Define("SelectedFatJet_isValid", "RVecB (SelectedFatJet_pt.size(), true)")
subjet_obs = []
subjet_obs.extend(SubJetObservables)
if not isData:
Expand Down
87 changes: 39 additions & 48 deletions Analysis/hh_bbww.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,12 @@ def defineLeptonPreselection(self):
"leadingleppT && subleadleppT && Single_lep_trg && tightlep && ( lep2_legType < 1 || diLep_mass > 12 )",
)

def defineJetSelections(self):
def defineJetSelections(self, isData):
self.df = self.df.Define("Njets", "centralJet_pt.size()")
self.df = self.df.Define("jet1_isvalid", "Njets > 0")
self.df = self.df.Define("jet2_isvalid", "Njets > 1")
self.df = self.df.Define("fatjet_isvalid", "SelectedFatJet_pt.size() > 0")
self.df = self.df.Define("fatbjet_isValid", "fatjet_isvalid")
self.df = self.df.Define(
"fatsubjet1_isvalid",
"(SelectedFatJet_SubJet1_isValid == 1 && SelectedFatJet_SubJet1_pt > 20 && abs(SelectedFatJet_SubJet1_eta) < 2.5)",
Expand All @@ -200,54 +201,44 @@ def defineJetSelections(self):
"(SelectedFatJet_SubJet2_isValid == 1 && SelectedFatJet_SubJet2_pt > 20 && abs(SelectedFatJet_SubJet2_eta) < 2.5)",
)

self.df = self.df.Define("bjet1_pt", "centralJet_pt[0]")
self.df = self.df.Define("bjet1_phi", "centralJet_phi[0]")
self.df = self.df.Define("bjet1_eta", "centralJet_eta[0]")
self.df = self.df.Define("bjet1_mass", "centralJet_mass[0]")
self.df = self.df.Define(
"bjet1_btagPNetB", "jet1_isvalid ? centralJet_btagPNetB[0] : -1.0"
)
self.df = self.df.Define(
"bjet1_idbtagPNetB", "jet1_isvalid ? centralJet_idbtagPNetB[0] : -1.0"
)

self.df = self.df.Define("bjet2_pt", "centralJet_pt[1]")
self.df = self.df.Define("bjet2_phi", "centralJet_phi[1]")
self.df = self.df.Define("bjet2_eta", "centralJet_eta[1]")
self.df = self.df.Define("bjet2_mass", "centralJet_mass[1]")
self.df = self.df.Define(
"bjet2_btagPNetB", "jet2_isvalid ? centralJet_btagPNetB[1] : -1.0"
)
self.df = self.df.Define(
"bjet2_idbtagPNetB", "jet2_isvalid ? centralJet_idbtagPNetB[1] : -1.0"
)
bjet_vars = ["pt", "phi", "eta", "mass", "btagPNetB", "idbtagPNetB"]
for var in bjet_vars:
self.df = self.df.Define(
f"bjet1_{var}", f"jet1_isvalid ? centralJet_{var}[0] : -1.0"
)
self.df = self.df.Define(
f"bjet2_{var}", f"jet2_isvalid ? centralJet_{var}[1] : -1.0"
)

self.df = self.df.Define("wjet1_pt", "Njets > 2 ? centralJet_pt[2] : -10.0")
self.df = self.df.Define("wjet1_phi", "Njets > 2 ? centralJet_phi[2] : -10.0")
self.df = self.df.Define("wjet1_eta", "Njets > 2 ? centralJet_eta[2] : -10.0")
self.df = self.df.Define("wjet1_mass", "Njets > 2 ? centralJet_mass[2] : -10.0")
wjet_vars = ["pt", "phi", "eta", "mass"]
for var in wjet_vars:

self.df = self.df.Define("wjet2_pt", "Njets > 3 ? centralJet_pt[3] : -10.0")
self.df = self.df.Define("wjet2_phi", "Njets > 3 ? centralJet_phi[3] : -10.0")
self.df = self.df.Define("wjet2_eta", "Njets > 3 ? centralJet_eta[3] : -10.0")
self.df = self.df.Define("wjet2_mass", "Njets > 3 ? centralJet_mass[3] : -10.0")
self.df = self.df.Define(
f"wjet1_{var}", f"Njets > 2 ? centralJet_{var}[2] : -10.0"
)
self.df = self.df.Define(
f"wjet2_{var}", f"Njets > 3 ? centralJet_{var}[3] : -10.0"
)

self.df = self.df.Define(
"fatbjet1_pt", "fatjet_isvalid ? SelectedFatJet_pt[0] : -10.0"
)
self.df = self.df.Define(
"fatbjet1_phi", "fatjet_isvalid ? SelectedFatJet_phi[0] : -10.0"
)
self.df = self.df.Define(
"fatbjet1_eta", "fatjet_isvalid ? SelectedFatJet_eta[0] : -10.0"
)
self.df = self.df.Define(
"fatbjet1_mass", "fatjet_isvalid ? SelectedFatJet_mass[0] : -10.0"
)
self.df = self.df.Define(
"fatbjet1_XbbVsQCD",
"fatjet_isvalid ? SelectedFatJet_particleNet_XbbVsQCD[0] : -10.0",
)
fatjet_vars = [
"pt",
"phi",
"eta",
"mass",
"particleNet_XbbVsQCD",
"particleNetWithMass_HbbvsQCD",
]
fatjet_mc_vars = ["hadronFlavour"]
for var in fatjet_vars:
self.df = self.df.Define(
f"fatbjet_{var}", f"fatjet_isvalid ? SelectedFatJet_{var}[0] : -10.0"
)
if not isData:
for var in fatjet_mc_vars:
self.df = self.df.Define(
f"fatbjet_{var}",
f"fatjet_isvalid ? SelectedFatJet_{var}[0] : -10.0",
)

self.df = self.df.Define(
"bsubjet1_btagDeepB",
Expand Down Expand Up @@ -525,12 +516,12 @@ def AddDNNVariables(df):
return df


def PrepareDfForHistograms(dfForHistograms):
def PrepareDfForHistograms(dfForHistograms, isData):
dfForHistograms.df = defineAllP4(dfForHistograms.df)
dfForHistograms.df = AddDNNVariables(dfForHistograms.df)
dfForHistograms.defineTriggers()
dfForHistograms.defineLeptonPreselection()
dfForHistograms.defineJetSelections()
dfForHistograms.defineJetSelections(isData)
dfForHistograms.defineQCDRegions()
dfForHistograms.defineControlRegions()
dfForHistograms.defineCategories()
Expand Down
7 changes: 5 additions & 2 deletions Analysis/histTupleDef.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from FLAF.Common.HistHelper import *
from Corrections.Corrections import Corrections
from Corrections.CorrectionsCore import getSystName, central
from FLAF.Common.Setup import Setup

if __name__ == "__main__":
sys.path.append(os.environ["ANALYSIS_PATH"])
Expand Down Expand Up @@ -31,10 +32,12 @@ def analysis_setup(setup):
analysis = importlib.import_module(f"{analysis_import}")


def GetDfw(df, global_params):
def GetDfw(df, setup, dataset_name):
global_params = setup.global_params
isData = dataset_name == "data"
period = global_params["era"]
dfw = analysis.DataFrameBuilderForHistograms(df, global_params, period)
new_dfw = analysis.PrepareDfForHistograms(dfw)
new_dfw = analysis.PrepareDfForHistograms(dfw, isData)
return new_dfw


Expand Down
28 changes: 25 additions & 3 deletions config/Run3_2022/processes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -484,8 +484,30 @@ QCD_PT:
# file: QCD_ABCD.py
# supress_negative_bins: true

custom_CI:
name: "custom for CI and test purposes"
color: "kAzure+10"
custom_CI_Background:
name: "CI -- Background"
color: "kGreen-3"
datasets:
- TTto2L2Nu

custom_CI_Signal:
name: "CI -- Signal"
color: "kBlack"
is_meta_process: true
meta_setup:
dataset_name_pattern: XtoYHto2B2Wto2B2L2Nu_MX_(\d+)_MY_125
parameters: [ MASS ]
process_name: XtoHHto2B2W_2L_${MASS}
name_pattern: Xto2B2W 2L ${MASS} GeV (x50)
to_plot:
- [ '300' ]
plot_color: [ "kBlack" ]
channels: [ "eE", "eMu", "muMu" ]
datasets:
- XtoYHto2B2Wto2B2L2Nu_MX_300_MY_125

custom_CI_Data:
name: "CI -- Data"
color: "kAzure+10"
datasets:
- Muon_Run2022C
28 changes: 25 additions & 3 deletions config/Run3_2022EE/processes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -468,8 +468,30 @@ QCD_PT:
- QCD_PT_2400to3200
- QCD_PT_3200

custom_CI:
name: "custom for CI and test purposes"
color: "kAzure+10"
custom_CI_Background:
name: "CI -- Background"
color: "kGreen-3"
datasets:
- TTto2L2Nu

custom_CI_Signal:
name: "CI -- Signal"
color: "kBlack"
is_meta_process: true
meta_setup:
dataset_name_pattern: XtoYHto2B2Wto2B2L2Nu_MX_(\d+)_MY_125
parameters: [ MASS ]
process_name: XtoHHto2B2W_2L_${MASS}
name_pattern: Xto2B2W 2L ${MASS} GeV (x50)
to_plot:
- [ '300' ]
plot_color: [ "kBlack" ]
channels: [ "eE", "eMu", "muMu" ]
datasets:
- XtoYHto2B2Wto2B2L2Nu_MX_300_MY_125

custom_CI_Data:
name: "CI -- Data"
color: "kAzure+10"
datasets:
- Muon_Run2022E
27 changes: 24 additions & 3 deletions config/Run3_2023/processes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -299,9 +299,30 @@ QCD_PT:
- QCD_PT_2400to3200
- QCD_PT_3200

custom_CI_Background:
name: "CI -- Background"
color: "kGreen-3"
datasets:
- TTto2L2Nu

custom_CI:
name: "custom for CI and test purposes"
color: "kAzure+10"
custom_CI_Signal:
name: "CI -- Signal"
color: "kBlack"
is_meta_process: true
meta_setup:
dataset_name_pattern: XtoYHto2B2Wto2B2L2Nu_MX_(\d+)_MY_125
parameters: [ MASS ]
process_name: XtoHHto2B2W_2L_${MASS}
name_pattern: Xto2B2W 2L ${MASS} GeV (x50)
to_plot:
- [ '300' ]
plot_color: [ "kBlack" ]
channels: [ "eE", "eMu", "muMu" ]
datasets:
- XtoYHto2B2Wto2B2L2Nu_MX_300_MY_125

custom_CI_Data:
name: "CI -- Data"
color: "kAzure+10"
datasets:
- Muon0_Run2023C_v1
27 changes: 24 additions & 3 deletions config/Run3_2023BPix/processes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -289,9 +289,30 @@ QCD_PT:
- QCD_PT_2400to3200
- QCD_PT_3200

custom_CI_Background:
name: "CI -- Background"
color: "kGreen-3"
datasets:
- TTto2L2Nu

custom_CI:
name: "custom for CI and test purposes"
color: "kAzure+10"
custom_CI_Signal:
name: "CI -- Signal"
color: "kBlack"
is_meta_process: true
meta_setup:
dataset_name_pattern: XtoYHto2B2Wto2B2L2Nu_MX_(\d+)_MY_125
parameters: [ MASS ]
process_name: XtoHHto2B2W_2L_${MASS}
name_pattern: Xto2B2W 2L ${MASS} GeV (x50)
to_plot:
- [ '300' ]
plot_color: [ "kBlack" ]
channels: [ "eE", "eMu", "muMu" ]
datasets:
- XtoYHto2B2Wto2B2L2Nu_MX_300_MY_125

custom_CI_Data:
name: "CI -- Data"
color: "kAzure+10"
datasets:
- Muon0_Run2023D_v1
10 changes: 10 additions & 0 deletions config/ci_custom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ compute_unc_variations: true
compute_unc_histograms: true
store_noncentral: true
phys_model: TestModel

QCDRegions:
- OS_Iso

variables:
- lep1_pt
- SingleLep_DeepHME_mass
Expand All @@ -16,3 +20,9 @@ variables:
- name: lep1_pt_vs_eta
vars: [ lep1_pt, lep1_eta ]
plot_task: False

- name: DL_DNN_m300_vs_HME
vars: [ DNNParametric_DL_NoHME_M300_Signal, DoubleLep_DeepHME_mass ]

- name: SL_DNN_m300_vs_HME
vars: [ DNNParametric_SL_NoHME_M300_Signal, SingleLep_DeepHME_mass ]
49 changes: 42 additions & 7 deletions config/global.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ corrections:
stage: HistTuple
mode: SF
ele: { stage: HistTuple }
fatjet:
stage: HistTuple # AnaTuple
ana: bbWW
tagger: particleNetWithMass_HbbvsQCD
fatJetName: fatbjet # SelectedFatJet
muScaRe: { stage: AnaTuple, mu_pt_for_ScaReApplication: "nano" }
eleES: { stage: AnaTuple }
MC_Lumi_pu: { stage: AnaTuple }
Expand Down Expand Up @@ -362,11 +367,11 @@ variables:
- bjet2_mass
- bjet2_btagPNetB

- fatbjet1_pt
- fatbjet1_eta
- fatbjet1_phi
- fatbjet1_mass
- fatbjet1_XbbVsQCD
- fatbjet_pt
- fatbjet_eta
- fatbjet_phi
- fatbjet_mass
- fatbjet_XbbVsQCD

- bb_mass_PNetRegPtRawCorr_PNetRegPtRawCorrNeutrino

Expand All @@ -392,11 +397,11 @@ variables:
- lep2_Electron_pfRelIso03_all
- mT_fix

# # High Level Single Lepton
# High Level Single Lepton
- SingleLep_DeepHME_mass
- SingleLep_DeepHME_mass_error

# # High Level Double Lepton
# High Level Double Lepton
- DoubleLep_DeepHME_mass
- DoubleLep_DeepHME_mass_error

Expand Down Expand Up @@ -429,3 +434,33 @@ variables:

- name: DL_DNN_m1000_vs_HME
vars: [ DNNParametric_DL_NoHME_M1000_Signal, DoubleLep_DeepHME_mass ]

- name: SL_DNN_m300_vs_HME
vars: [ DNNParametric_SL_NoHME_M300_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m400_vs_HME
vars: [ DNNParametric_SL_NoHME_M400_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m500_vs_HME
vars: [ DNNParametric_SL_NoHME_M500_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m550_vs_HME
vars: [ DNNParametric_SL_NoHME_M550_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m600_vs_HME
vars: [ DNNParametric_SL_NoHME_M600_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m650_vs_HME
vars: [ DNNParametric_SL_NoHME_M650_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m700_vs_HME
vars: [ DNNParametric_SL_NoHME_M700_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m800_vs_HME
vars: [ DNNParametric_SL_NoHME_M800_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m900_vs_HME
vars: [ DNNParametric_SL_NoHME_M900_Signal, SingleLep_DeepHME_mass ]

- name: SL_DNN_m1000_vs_HME
vars: [ DNNParametric_SL_NoHME_M1000_Signal, SingleLep_DeepHME_mass ]
Loading