Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
8fe5470
minor fix to avoid crashes
NTrevisani Aug 7, 2025
6bea79e
Fake rates using cone pt 2018
NTrevisani Aug 12, 2025
0d1a990
Fake rates using cone pt 2017
NTrevisani Aug 12, 2025
74141f0
Fake rates using cone pt 2016noHIPM
NTrevisani Aug 12, 2025
7ed024e
Fake rates using cone pt 2016HIPM
NTrevisani Aug 12, 2025
c37ecf7
updating scripts and instructions for fake rate vs cone pt
NTrevisani Aug 12, 2025
6131e87
same-sign CR 2018
NTrevisani Aug 14, 2025
77ed614
same-sign CR 2017
NTrevisani Aug 14, 2025
b51e778
same-sign CR 2016noHIPM
NTrevisani Aug 14, 2025
275d359
same-sign CR 2016HIPM
NTrevisani Aug 14, 2025
fae1d70
supporting macros for BDT evaluation
NTrevisani Aug 14, 2025
cf3a183
3l control region 2018
NTrevisani Aug 14, 2025
b33aebc
3l control region 2017
NTrevisani Aug 14, 2025
f4c690d
3l control region 2016noHIPM
NTrevisani Aug 14, 2025
9b23322
3l control region 2016HIPM
NTrevisani Aug 14, 2025
3829c4a
renaming 2016 directories
NTrevisani Aug 15, 2025
9a4e5f0
fixing samples to plot DY and removing 3l cuts
NTrevisani Aug 15, 2025
c3bee74
changing names
NTrevisani Aug 15, 2025
189dc01
Updated fake rates
NTrevisani Aug 19, 2025
91ee6d1
update cfg to use new fake rate
NTrevisani Aug 19, 2025
b9e208f
fake rate evaluation macro to use cone pT and the same recoiling jet …
NTrevisani Aug 19, 2025
863dc90
Removing unused fake CR configs
NTrevisani Aug 28, 2025
4a79f67
WHSS 2018 working using new fake rates
NTrevisani Aug 28, 2025
4caf35f
WH3l 2018 working using new fake rates
NTrevisani Aug 28, 2025
12869a4
WHSS DY_OS_CR 2018 working using new fake rates
NTrevisani Aug 28, 2025
8f25aee
WHSS 2018 working using new fake rates
NTrevisani Aug 28, 2025
83b6b39
WH3l 2018 working using new fake rates
NTrevisani Aug 28, 2025
f86fbf2
removing unused fake CR configurations
NTrevisani Aug 28, 2025
e69d59c
WHSS 2017 working using new fake rates
NTrevisani Aug 28, 2025
4588a1b
WHSS 2017 working using new fake rates
NTrevisani Aug 28, 2025
62dd223
WH3l 2017 working using new fake rates
NTrevisani Aug 28, 2025
4e0744f
fake rates reader macro adapted to new format
NTrevisani Aug 28, 2025
f314898
removing unused fake CR configurations
NTrevisani Aug 28, 2025
2609a40
WH3l 2016noHIPM using new fake rates
NTrevisani Aug 28, 2025
aafba45
WH3l 2016noHIPM using new fake rates
NTrevisani Aug 28, 2025
4aeae7b
removing unused fake CR configs
NTrevisani Aug 29, 2025
410592d
2016HIPM WHSS working with new fake rates
NTrevisani Aug 29, 2025
d7b2eeb
2016HIPM WH3l working with new fake rates
NTrevisani Aug 29, 2025
7cf44d3
new Hgg analysis
amassiro Sep 10, 2025
1e5df34
2018 version
amassiro Oct 16, 2025
35a5041
up
amassiro Oct 20, 2025
c3c67f2
limit
amassiro Nov 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
117 changes: 117 additions & 0 deletions ControlRegions/3l/2016HIPM_v9/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# Three leptons control region

This configuration plots control distributions for the three-leptons phase space

The instructions to run the analysis follow.

### Load the mkShapesRDF environment

Here, we assume `PlotsConfigurationsRun3` was installed in the same directory as `mkShapesRDF`. E.g., let's assume we have a `Run3` directory where we installed both `mkShapesRDF` and `PlotsConfigurationsRun3`.

Then, we can source the `mkShapesRDF` environment using these commands:

cd ../../../mkShapesRDF/

source start.sh

cd -

### Produce distributions using mkShapesMulti.py in batch mode

Compile the configuration. Do it after every change to any file in this directory:

mkShapesRDF -c 1

Produce histograms using batch:

mkShapesRDF -c 1 -o 0 -f . -b 1

Check jobs status:

mkShapesRDF -o 1 -f .

Resubmit failed jobs:

mkShapesRDF -o 1 -f . -r 1

Merge rootfiles:

mkShapesRDF -o 2 -f .

Plot distributions:

mkPlot --onlyPlot cratio --showIntegralLegend 1 --fileFormats png

### Perform goodness of fit test

Create datacards:

mkDatacards

Produce workspaces:

mkdir -p GoF

cd GoF/

VARIABLE=mjj
FINAL_STATE=mm_2j_SS_CR_plus
OUT_NAME=_${FINAL_STATE}_${VARIABLE}

combineTool.py -M T2W -m 125 \
-o datacard.root \
-i ../datacards/hww2l2v_13TeV_WH_SS_${FINAL_STATE}_pt2ge20/${VARIABLE}/datacard.txt \
--channel-masks \
-P HiggsAnalysis.CombinedLimit.PhysicsModel:multiSignalModel \
--PO 'map=.*/WH_h.*_plus:r_WH[1,-10.0,10.0]' \
--PO 'map=.*/WH_h.*_minus:r_WH[1,-10.0,10.0]'

Perform fit on real data:

combineTool.py -M GoodnessOfFit ../datacards/hww2l2v_13TeV_WH_SS_${FINAL_STATE}_pt2ge20/${VARIABLE}/datacard.root \
--algo=saturated \
--setParameters r_WH=1 \
--setParameterRanges r_WH=-5,5 \
--redefineSignalPOIs r_WH \
-n ${OUT_NAME}

Produce toys based on the predictions:

combineTool.py -M GoodnessOfFit ../datacards/hww2l2v_13TeV_WH_SS_${FINAL_STATE}_pt2ge20/${VARIABLE}/datacard.root \
--algo=saturated \
-t 1 \
-s 0:10:1 \
--dry-run \
--job-mode=condor \
--setParameters r_WH=1 \
--setParameterRanges r_WH=-5,5 \
--redefineSignalPOIs r_WH \
-n ${OUT_NAME}

Modify the sh file in order to submit 10 jobs running the 100 toys

sed -i 's/-t 1/-t 10/g' condor_combine_task.sh

If you run on the KIT machines, remember to adapt the submission file to the HTCondor requirements, by adding these lines to the top of `condor_combine_task.sub`:

text_to_add=$'universe = container\ncontainer_image = /cvmfs/unpacked.cern.ch/registry.hub.docker.com/cverstege/alma9-gridjob:latest'

printf "%s\n" "$text_to_add" | cat - condor_combine_task.sub > temp && mv temp condor_combine_task.sub

Submit the jobs to condor

condor_submit condor_combine_task.sub

Once all jobs are done, merge the output and plot the results:

hadd -f higgsCombine_${OUT_NAME}.GoodnessOfFit.mH120.toys.root higgsCombine${OUT_NAME}.GoodnessOfFit.mH120.*.root

combineTool.py -M CollectGoodnessOfFit --input higgsCombine${OUT_NAME}.GoodnessOfFit.mH120.root higgsCombine_${OUT_NAME}.GoodnessOfFit.mH120.toys.root -m 125 -o GoF_${OUT_NAME}.json

plotGof.py GoF_${OUT_NAME}.json --statistic saturated --mass 120.0 -o GoF_${OUT_NAME} --title-right=${OUT_NAME} --range 0 200

Clean the mess:

rm combine*
rm condor*
rm higgsCombine*
Loading