Big PR about using uT as fit axis, and developments to fit the W boson width (partially based on the other changes)#678
Conversation
… analysis bins of specific axes (e.g. utAngleSign) which have identically zero yield in the A-Ax-B-Bx regions (cherry picked from commit 773c1d9)
… analysis bins of specific axes (e.g. utAngleSign) which have identically zero yield in the A-Ax-B-Bx regions
…current version of Rabbit, it will be probably reverted when the definitions of poi/noi/nuisanceNotConstrained are fixed
…ion on uT>0 with an hardcoded factor (normalization)
…ream_cherrypick
Merge from WMass/main
…th a pT dependent shape
…ream_cherrypick
Merge from WMass/main
…herrypick
Merge from my branch
…ream_cherrypick
Merge from Wmass/main
…herrypick
Merge from cippy/main_mergeUpstream_testRuben
…ream_cherrypick
Merge from WMass/main
…herrypick
Merge from cippy/main_mergeUpstream_testRuben
…ream_cherrypick
Merge from WMass/main
…ream_cherrypick
Merge from WMass/main
…ream_cherrypick
Merging from WMass/Main
…ream_devel_150326
Merging from WMass/main
| if args.fakeTransferAxis in args.fakerateAxes | ||
| else "" | ||
| ), | ||
| fakeTransferCorrFileName=args.fakeTransferCorrFileName, |
There was a problem hiding this comment.
What does this actually do? It reads another file that used a looser selection, or something?
There was a problem hiding this comment.
fakeTransferCorrFileName contains the correction needed for the prediction of the fakes with negative uT based on the one from high uT. It is needed because right now the low mT region for negative uT has no events because of kinematics, so the ABCD method cannot predict the background in the high mT region there. The correction is basically the ratio of the data yields between the two uT regions as obtained from the secondary vertices control region, subtracting the small prompt component. Then we also propagate uncertainties based on non closures between control and signal region, and data and QCD MC. It is essentially what Ruben presented during the workshop in Pisa.
scripts/rabbit/setupRabbit.py
Outdated
| systAxes=["width"], | ||
| systNameReplace=[["2p09053GeV", "Down"], ["2p09173GeV", "Up"]], | ||
| passToFakes=passSystToFakes, | ||
| widthVarTag = "" |
There was a problem hiding this comment.
Maybe the width related stuff should go in rabbit_helpers since it's gotten so long
There was a problem hiding this comment.
Yes, I can try to move there as many things as possible
scripts/rabbit/setupRabbit.py
Outdated
| labelsByAxis=["varTF", "downUpVar"], | ||
| ) | ||
|
|
||
| ## syst for transfer factor difference between data and QCD MC in control region |
There was a problem hiding this comment.
Delete commented out stuff (here and other places)
There was a problem hiding this comment.
This particular item is one thing we are still finalising, but I guess I can remove it for now.
Other places with commented code were in some cases non added by this PR, so I am not sure what to do with them.
There was a problem hiding this comment.
Done for now, it will be added back in the near future
| actionArgs=dict( | ||
| altHistName="fakeCorr_closQCDsignal", | ||
| varIdxs=[], | ||
| correctionFile=f"{common.data_dir}/fakesWmass/{args.fakeTransferCorrFileName}.pkl.lz4", |
There was a problem hiding this comment.
Can this not be computed on the fly? Where does it come from?
There was a problem hiding this comment.
Right now it cannot, because it makes use of the control region, so it is supposed to be produced in advance (the files will need to be stored in wremnants-data).
However, we are considering modifying the procedure so to derive the correction directly from the signal region using the QCD MC, rather than from data from the control region, to avoid depending too much on the latter. However, systematic uncertainties would still need to be produced using the control region where everything is validated, so they should be available as external inputs anyway.
|
What actually needed to be changed to fit the W width? This was in principle already working. |
I made the choice of the prefit variation more flexible, through options. Then I also added new options to perform the same studies as we did for mW, such as decorrelation by variable or fitting the width difference between charges. |
|
Last commit moved the definition of the mass and width systs from setupRabbit.py to rabbit_helpers.py, also fixing a couple of bugs/inconsistencies in their definition. |
…ream_devel_150326
Merging from WMass/main
This PR is supposed to supersede the previous PR #643
It does many things, but doesn't modify the default analysis behaviour. A short executive summary is the following