Skip to content

Commit

Permalink
merge master
Browse files Browse the repository at this point in the history
  • Loading branch information
aalvesan committed Feb 13, 2025
2 parents 33c0c86 + 6a914e5 commit a209c3b
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 32 deletions.
44 changes: 40 additions & 4 deletions hbt/config/configs_hbt.py
Original file line number Diff line number Diff line change
Expand Up @@ -979,6 +979,44 @@ def if_not_era(*, values: list[str | None] | None = None, **kwargs) -> list[str]
discriminator="btagPNetB",
)

################################################################################################
# dataset / process specific methods
################################################################################################

# top pt reweighting
# https://twiki.cern.ch/twiki/bin/view/CMS/TopPtReweighting?rev=31
from columnflow.production.cms.top_pt_weight import TopPtWeightConfig
cfg.x.top_pt_weight = TopPtWeightConfig(
params={
"a": 0.0615,
"a_up": 0.0615 * 1.5,
"a_down": 0.0615 * 0.5,
"b": -0.0005,
"b_up": -0.0005 * 1.5,
"b_down": -0.0005 * 0.5,
},
pt_max=500.0,
)

################################################################################################
# dataset / process specific methods
################################################################################################

# top pt reweighting
# https://twiki.cern.ch/twiki/bin/view/CMS/TopPtReweighting?rev=31
from columnflow.production.cms.top_pt_weight import TopPtWeightConfig
cfg.x.top_pt_weight = TopPtWeightConfig(
params={
"a": 0.0615,
"a_up": 0.0615 * 1.5,
"a_down": 0.0615 * 0.5,
"b": -0.0005,
"b_up": -0.0005 * 1.5,
"b_down": -0.0005 * 0.5,
},
pt_max=500.0,
)

################################################################################################
# shifts
################################################################################################
Expand Down Expand Up @@ -1347,12 +1385,10 @@ def add_external(name, value):

# define per-dataset event weights
for dataset in cfg.datasets:
# skipped for now
# if dataset.has_tag("ttbar"):
# dataset.x.event_weights = {"top_pt_weight": get_shifts("top_pt")}
if dataset.has_tag("has_top"):
dataset.x.event_weights = {"top_pt_weight": get_shifts("top_pt")}
if dataset.has_tag("dy"):
dataset.x.event_weights = {"dy_weight": []}
pass

cfg.x.shift_groups = {
"jec": [
Expand Down
9 changes: 9 additions & 0 deletions hbt/config/variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,15 @@ def build_ht(events):
x_title="DY weight",
)

add_variable(
config,
name="gen_dilepton_pt",
expression="gen_dilepton.pt",
binning=(40, 0.0, 400.0),
unit="GeV",
x_title=r"$p_{T,ll}$",
)

# cutflow variables
add_variable(
config,
Expand Down
9 changes: 9 additions & 0 deletions hbt/production/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from columnflow.production.categories import category_ids
from columnflow.production.cms.electron import electron_weights
from columnflow.production.cms.muon import muon_weights
from columnflow.production.cms.top_pt_weight import top_pt_weight
from columnflow.production.cms.dy import dy_weights
from columnflow.util import maybe_import

Expand Down Expand Up @@ -79,6 +80,10 @@ def default(self: Producer, events: ak.Array, **kwargs) -> ak.Array:
if self.has_dep(trigger_weights):
events = self[trigger_weights](events, **kwargs)

# top pt weight
if self.has_dep(top_pt_weight):
events = self[top_pt_weight](events, **kwargs)

# Drell-Yan weights
if self.has_dep(dy_weights):
events = self[dy_weights](events, **kwargs)
Expand All @@ -93,6 +98,10 @@ def default_init(self: Producer) -> None:
tau_weights, electron_weights, muon_weights, trigger_weights,
IF_DATASET_IS_RUN3_DY(dy_weights),
}

if (dataset_inst := getattr(self, "dataset_inst", None)) and dataset_inst.has_tag("ttbar"):
weight_producers.add(top_pt_weight)

self.uses |= weight_producers
self.produces |= weight_producers

Expand Down
5 changes: 5 additions & 0 deletions hbt/selection/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from columnflow.production.cms.dy import gen_dilepton
from columnflow.production.cms.pdf import pdf_weights
from columnflow.production.cms.scale import murmuf_weights
from columnflow.production.cms.top_pt_weight import gen_parton_top
from columnflow.production.util import attach_coffea_behavior
from columnflow.columnar_util import full_like
from columnflow.util import maybe_import
Expand Down Expand Up @@ -269,6 +270,10 @@ def default_init(self: Selector) -> None:
# save it as an attribute
setattr(self, prod_name, prod)

if self.dataset_inst.has_tag("ttbar"):
self.uses.add(gen_parton_top)
self.produces.add(gen_parton_top)


empty = default.derive("empty", cls_dict={})

Expand Down
66 changes: 38 additions & 28 deletions law_outputs.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -20,44 +20,49 @@ lfn_sources: wlcg_fs_desy_store, wlcg_fs_infn_redirector, wlcg_fs_global_redirec
# specific locations
; 22pre
22pre_fs_dcache: wlcg_mirrored, local_fs_desy_nprouvos, wlcg_fs_desy_nprouvos
22pre_fs_dust: local, local_fs_dust_nprouvos
22pre_fs_local: local, local_fs_dust_nprouvos
22pre_v1?__cf.{Calibrate,Select,Reduce}Events: &::22pre_fs_dcache
22pre_v1?__cf.MergeReducedEvents: &::22pre_fs_dust
22pre_v1?__cf.Merge{Reduction,Selection}Stats: &::22pre_fs_dust
22pre_v1?__cf.{Produce,Unite}Columns: &::22pre_fs_dust
22pre_v1?__cf.*ML*: &::22pre_fs_dust
22pre_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::22pre_fs_dust
22pre_v1?__cf.CreateDatacards: &::22pre_fs_dust
22pre_v1?__cf.MergeReducedEvents: &::22pre_fs_local
22pre_v1?__cf.Merge{Reduction,Selection}Stats: &::22pre_fs_local
22pre_v1?__cf.{Produce,Unite}Columns: &::22pre_fs_local
22pre_v1?__cf.*ML*: &::22pre_fs_local
22pre_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::22pre_fs_local
22pre_v1?__cf.CreateDatacards: &::22pre_fs_local
; 22post
22post_fs_dcache: wlcg_mirrored, local_fs_desy_aalvesan, wlcg_fs_desy_aalvesan
22post_fs_dust: local, local_fs_dust_aalvesan
22post_fs_local: local, local_fs_dust_aalvesan
22post_v1?__cf.{Calibrate,Select,Reduce}Events: &::22post_fs_dcache
22post_v1?__cf.MergeReducedEvents: &::22post_fs_dust
22post_v1?__cf.Merge{Reduction,Selection}Stats: &::22post_fs_dust
22post_v1?__cf.{Produce,Unite}Columns: &::22post_fs_dust
22post_v1?__cf.*ML*: &::22post_fs_dust
22post_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::22post_fs_dust
22post_v1?__cf.CreateDatacards: &::22post_fs_dust
22post_v1?__cf.MergeReducedEvents: &::22post_fs_local
22post_v1?__cf.Merge{Reduction,Selection}Stats: &::22post_fs_local
22post_v1?__cf.{Produce,Unite}Columns: &::22post_fs_local
22post_v1?__cf.*ML*: &::22post_fs_local
22post_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::22post_fs_local
22post_v1?__cf.CreateDatacards: &::22post_fs_local
; 23pre
23pre_fs_dcache: wlcg_mirrored, local_fs_desy_bwieders, wlcg_fs_desy_bwieders
23pre_fs_dust: local, local_fs_dust_bwieders
23pre_fs_local: local, local_fs_dust_bwieders
23pre_v1?__cf.{Calibrate,Select,Reduce}Events: &::23pre_fs_dcache
23pre_v1?__cf.MergeReducedEvents: &::23pre_fs_dust
23pre_v1?__cf.Merge{Reduction,Selection}Stats: &::23pre_fs_dust
23pre_v1?__cf.{Produce,Unite}Columns: &::23pre_fs_dust
23pre_v1?__cf.*ML*: &::23pre_fs_dust
23pre_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::23pre_fs_dust
23pre_v1?__cf.CreateDatacards: &::23pre_fs_dust
23pre_v1?__cf.MergeReducedEvents: &::23pre_fs_local
23pre_v1?__cf.Merge{Reduction,Selection}Stats: &::23pre_fs_local
23pre_v1?__cf.{Produce,Unite}Columns: &::23pre_fs_local
23pre_v1?__cf.*ML*: &::23pre_fs_local
23pre_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::23pre_fs_local
23pre_v1?__cf.CreateDatacards: &::23pre_fs_local
; 23post
<<<<<<< Updated upstream
23post_fs_dcache: wlcg_mirrored, local_fs_desy_roward, wlcg_fs_desy_roward
23post_fs_dust: local, local_fs_dust_mrieger
23post_fs_local: local, local_fs_dust_mrieger
=======
23post_fs_dcache: wlcg_mirrored, local_fs_desy_aalvesan, wlcg_fs_desy_aalvesan
23post_fs_dust: local, local_fs_desy_aalvesan
>>>>>>> Stashed changes
23post_v1?__cf.{Calibrate,Select,Reduce}Events: &::23post_fs_dcache
23post_v1?__cf.MergeReducedEvents: &::23post_fs_dust
23post_v1?__cf.Merge{Reduction,Selection}Stats: &::23post_fs_dust
23post_v1?__cf.{Produce,Unite}Columns: &::23post_fs_dust
23post_v1?__cf.*ML*: &::23post_fs_dust
23post_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::23post_fs_dust
23post_v1?__cf.CreateDatacards: &::23post_fs_dust
23post_v1?__cf.MergeReducedEvents: &::23post_fs_local
23post_v1?__cf.Merge{Reduction,Selection}Stats: &::23post_fs_local
23post_v1?__cf.{Produce,Unite}Columns: &::23post_fs_local
23post_v1?__cf.*ML*: &::23post_fs_local
23post_v1?__cf.{Create,Merge,MergeShifted}Histograms: &::23post_fs_local
23post_v1?__cf.CreateDatacards: &::23post_fs_local

; syncronization
22pre_v12_sync: local, local_fs_dust_bwieders
Expand Down Expand Up @@ -88,6 +93,11 @@ cf.CreateSyncFile: local

[versions]

# for dy reweighting testing
{22,23}{pre,post}_v14__cf.{SelectEvents}__dy*: test_dy_masks
{22,23}{pre,post}_v14__cf.{MergeSelectionStats,ReduceEvents,MergeReductionStats,ProvideReducedEvents}__dy*: test_dy
{22,23}{pre,post}_v14__cf.ProduceColumns__prod_default__dy*: test_dy_unc

# updated categorization in default producer
{22,23}{pre,post}_v14__cf.ProduceColumns__prod_default: prod6

Expand Down

0 comments on commit a209c3b

Please sign in to comment.