Configuring systematic variations?
Note: related to #35 (closed) and !32 (merged).
It's currently not obvious to me how one configures systematic variations for things that are already available in a Tree (as opposed to e.g. automatically generated by bamboo using get_scalefactors
). For instance:
- for the pileup weight I do
noSel = noSel.refine("puWeight", weight=[tree.puWeight])
. The up/down variations are available aspuWeightDown
andpuWeightUp
, but how do I tell bamboo to use these? - for the b-tag weight I do:
bTagWeight = [ op.rng_product(cleanedJets, lambda jet: jet.btagSF_shape) ]
bTagSel = sel.refine("btag", cut=bTagDef, weight=bTagWeight)
The SF variations are available as jet.bTagSF_shape_{var}_{syst}
where var
is up
/down
and syst
is one of the six available variations. Again, how do I define a systematic for the weight that would pick up these variations?
I realise that this goes against the philosophy you have in mind for the use at CP3, where everything is computed on-the-fly by bamboo instead of being done once-and-for-all by nanoAOD-tools when pre-processing the nanoAOD datasets... so I can try to implement stuff myself in bamboo, but a few pointers would be nice :)