This is the framework for NUHM2 SR optimization.
yt_optimization.h
:- Add three variables
pTl1
,pTl2
, andmee
- Add three set functions for new variables.
- Add three variables
yt_optimization.cxx
: Add mee and pT requirements.ytEventSelection.cxx
: passpTl1
,pTl2
, andmee
tom_optimization
yt_optimization.h
: Removevec_signal_jets_with_pt_cut
andvec_signal_bjet_with_pt_cut
.yt_optimization.cxx
:- Comment the cout
- Change the constant values
- Define new constant
met_over_meff_cut
- Remove unused code.
ytOptimization_plots.C
:- Change the constant values
- Change the bin of the histograms
- Add the grid on the plots.
yt_optimization.h
: Change thejet_pt_cuts
value to 1yt_optimization.cxx
: Modify method 1, it is similar toapply_signal_region_cuts()
now.ytOptimization_plots.C
: Correctbin
tobin + 1
ytOptimization_plots.C
:- Change the constant arraies.
- Change the input path
- Change the value of
background_files
array - Use m1/2=500 as input
signal_file
- Remove unused
derivation_stat_weights
andcross_section_kfactor_efficiency
histograms - Add unweighted signal yields and background yields
- Add new histogram names.
- Modify the
n_xbin
andn_ybin
to correct values. - Add 4 new histograms to keep signal and background yields and unyields.
- Use the correct x and y labels for the historams.
- Correct the type of the weighted yields for signal and background.
- weighted signal yields need to multiply the
signal_cross_section_kfactor_efficiency
- Use the weighted yields to calculate the significance.
- set significance to 0.02 and 0.01 when
n_signal_weighted < 2
andn_background_weighted < 1
, respectively.
ytOptimization_plots_method2.C
- Change the constant arraies and constant values.
- Change the input path
- Change the value of
background_files
array - Use m1/2=500 as input
signal_file
- Modify the
n_xbin
andn_ybin
to correct values. - Add 4 new histograms to keep signal and background yields and unyields.
- Use the correct x and y labels for the historams.
- Correct the type of the weighted yields for signal and background.
- weighted signal yields need to multiply the
signal_cross_section_kfactor_efficiency
- Use the weighted yields to calculate the significance.
- set significance to 0.02 and 0.01 when
n_signal_weighted < 2
andn_background_weighted < 1
, respectively.
yt_optimization.h
:- Comment
vec_signal_jets_with_pt_cut
andvec_signal_bjet_with_pt_cut
. - Remove
fill_Nbjets_pT()
- Change the return type of
fill_vec_jets_with_pT_cut()
to int. - Change the number of elements for
N_lept_cuts
,N_bjet_cuts
,N_jets_cuts
, andbjet_pt_cuts
.
- Comment
yt_optimization.cxx
:- Change the constant arraies
- Modify method 1
- Modify method 2
- Modify the parts use vec_signal_jets_with_pt_cut
and
vec_signal_bjet_with_pt_cut`.
yt_optimization.cxx
- Change the meff_cuts values
- Change the constants' value
- Comment the output tree
- Comment the
debug_print()
- Modifyt the method 1
- Comment the cout in method 2
- Add the SR regions for applying
apply_signal_region_cuts()
ytOptimization_plots_method2.C
- Change the input path
- Add histograms to keep number of signal and number of backround w/ and w/o weighted.
ytOptimization_plots_method2.C
- Change the input path
- Uncomment the NUHM2
signal_cross_section_kfactor_efficiency
- Change the declaration of output histogram
- Set the significance to 0.02 and 0.01 when
n_signal < 2
andn_background < 1
, respectively.
yt_optimization.h
:- Add
weight
data member - Add two new vectors
vec_signal_jets_with_pt_cut
andvec_signal_bjet_with_pt_cut
to keep jets and b-jets with pT requirement. - Add two histograms
h_events_survived
andh_events_survived_weighted
to keep the events after SR cut. - Add two data members
n_bjet_pTX
andn_jets_pTX
to keep number of jets and b-jets events with pT requirement. - Change the type of
events_survived_weighted
fromint
todouble
- Add new method
fill_vec_jets_with_pT_cut()
- Add new argument in
apply_signal_region_cuts()
- The method
debug_print()
now needs to pass argument - Remove
vec_N_bjet_pT_greater_than_some_value
,get_events_survived()
, andget_events_survived_weighted()
- Add
yt_optimization.cxx
:- Initialize
n_bjet_pTX
andn_jets_pTX
to zero and add branches for them. - Initialize two histograms
h_events_survived
andh_events_survived_weighted
- Delete two branches for
events_survived
andevents_survived_weighted
- Add two for loops to calculate
n_bjet_pTX
andn_jets_pTX
. - Modify method2 using
n_bjet_pTX
andn_jets_pTX
- Midify
apply_signal_region_cuts()
anddebug_print()
- Initialize
- SR1b1 events=253, events_weighted=0.386407
SR1b2 events=408, events_weighted=0.617939
SR3b1 events=342, events_weighted=0.516968
SR3b2 events=327, events_weighted=0.510207
- The events=342 in SR3b1 is different from Othmane's result (340)
- All the weighted events are different from Othmane's results but very close.
- It might because Othmane used different luminosity (36.47)
yt_optimization.cxx
:- Modify the code when N_bjet > 0
- jet pT > jet pT cut
ytEventSelection.cxx
: passEventNumber
andRunNb
(orrandom_run_number
) to optimizationyt_optimization.h
:- Add
run_number
,event_number
variable andvec_N_bjet_pT_greater_than_some_value
. - Add new methods
set_run_number()
,set_event_number()
, andfill_Nbjets_pT()
- Add
yt_optimization.cxx
:- Initialize
run_number
,event_number
, andluminosity
to zero. - Cout
run_number
andevent_number
- implement
fill_Nbjets_pT()
- B-jet pT > b-jet pT cut (not >=)
- Initialize
yt_optimization.cxx
::- Define constant
N_lepts
,N_bjets
,Bjet_pT
, andN_jets
- Use the above constant in method 2
- Define constant
ytOptimization_plots.C
: Plot cosmatic- Use the sam MET and Meff as what Chris did in
yt_optimization.cxx
,ytOptimization_plots.C
, andytOptimization_plots_method2.C
yt_optimization.h
: Change the number of elements in MET and Meff arrays definition
yt_optimization.cxx
:- Comment out the branches to reduce root file size
- Change
n_lept_cuts
toN_lept_cuts
- Change
n_bjet_cuts
toN_bjet_cuts
- Change
n_jets_cuts
toN_jets_cuts
- Uncomment method 1 and comment method 2
ytOptimization_plots.C
:- Use
signal_cross_section_kfactor_efficiency
value from SUSYTools. - Modify
hist_title
. - Comment unused
signal_derivation_stat_weights
,signal_cross_section_kfactor_efficiency
,background_derivation_stat_weights
, andbackground_cross_section_kfactor_efficiency
. - Add some new couts
- Set significance to 0 if it is less then zero or reater then 100.
- Plot cosmatic
- Use
ytOptimization_plots_method2.C
: New scriptytOptimization_plots.C
: change the type of luminosity tofloat
yt_optimization.cxx
:- Remove unused branches
- Calculate
lepton1_pT
,lepton2_pT
,jet1_pT
, andjet2_pT
- Add some couts in method2 for loop
ytEventSelection.cxx
:derivation_stat_weights
becomes an input of optimizationyt_optimization.h
:- Add TH1F histogram
h_met_over_meff
- Add TH3F histograms
h_method2_yields
andh_method2_yields_weighted
- Add new TTree leafs
- Change the cuts type form
const int
toconst float
because TH3F usesfloat
- Add binnings vector.
- Don't fill histogram in
set_derivation_stat_weights()
- Add new method
set_binning_default()
- Add TH1F histogram
yt_optimization.cxx
:- Change the cuts type form
const int
toconst float
. - Initialize new leafs to 0 or empty the vector.
- Add new branches for new leafs.
- Fill
h_derivation_stat_weights
after it is created. - Initialize new histograms
h_method2_yields
,h_method2_yields_weighted
- Correct the
weight
calculation. - Calculate new variable
met_over_meff
- Comment out method 1 and add method 2.
- Implement
set_binning_default()
- Change the cuts type form
ytEventSelection.cxx
: pass luminosity to optimizationyt_optimization.cxx
: Change the calculation of weightytOptimization_plots.C
: Comment the weight calculation because the root file contains correct weight now.
run_bkg_samples.sh
: Uselllvjj_EW6
(notllvvjj_EW6
)cutflow.cxx
: Uselllvjj_EW6
(notllvvjj_EW6
)
merge_bkg_samples.py
: New scriptrun_bkg_samples.sh
: Re-direct outputrun_signal_samples.sh
: Re-direct outputcutflow.cxx
: Change the input path
ytEventSelection.cxx
: Usemu20_mu8noL1
for v44 (notmu22_mu8noL1
)yt_cutflows.cxx
: Usemu20_mu8noL1
- The cutflow results agree
ytEventSelection.cxx
: UsePRWrandomRunNumber
instead of usingrandom_run_number
- Change the comment style about skim part
LinkDef.h
: AddDileptonTriggerWeight.h
ytEventSelection.h
:- Comment
yt_skim
related part - Comment the weighted histograms
- Comment the canvas
- Add
set_derivation_stat_weights()
- Comment
yt_optimization.h
: Arrange the order of codes.run_bkg_samples.sh
andrun_signal_samples.sh
: Add optimization in the script.yt_useful_functions.cxx
: UseSetPtEtaPhiM()
for the muon and define mu massyt_cutflows.cxx
: Commentpileupwgh
yt_optimization.cxx
:- Uncomment
h_derivation_stat_weights
- Use GeV for pT, met, meff
- Uncomment
cutflow.cxx
:- Add
isCutflow
andisOptimization
flag - Change
submitDir
based on the flag - Use
merged_all_data.root
- Add
ytEventSelection.cxx
:- Comment the skim related part, weighted histograms,
derivation_stat_weights
and the part to make plots - The Xsec relation calculationis are separated into signal and bkg. And correct the value if the sample doesn't be found.
- The Nvtx, AvgMu, NLeps, Njets, mll histograms are recalculated using the correct weight.
- Comment the skim related part, weighted histograms,
yt_cutflows.h
: Add 3 methods:get_mc_random_event_number()
get_AvgMu()
get_pileup_weight()
- `ytEventSelection.h:
- Add
yt_skim
- Add weighted and unweighted histograms of OSee and OSmumu AvgMu and mll.
- Add new method
set_isOptimization()
- Add
yt_cutflows.cxx
:- Comment the argument
PRW_weight
and calculate thepileupwgh
by myself. - Implement
get_AvgMu()
andget_pileup_weight()
- Comment the argument
ytEventSelection.cxx
:initialize()
: put skim and optimization in the if condition- Add codes for declaring and filling AvgMu and mll histograms
- Calculate
random_run_number
andpileup_weight
- Correct the calculation of MC weight
- Use
random_run_number
instead of usingPRWrandomRunNumber
- Put cut 7 and cut 9 in
if(!isSkim)
- Add
tag_pt_threshold
inytEventSelection
- Change histogram name from h_XXX_PRW to h_XXX_weighted
- histograms are separated into data and mc.
- Add
run_bkg_samples.sh
andrun_signal_samples.sh
to run over all samples.
- The background samples are added in the
cutflow.cxx
- If there are more than one root file in the dataset, the new way can pass the correct total
DerivationStat_Weight
toyt_optimization
class.
The current version should work and was testing using v44 4topSM sample. But I have to run over all v44 bkg samples and compare with Ximo's results to make sure the results are correct.