Skip to content

Commit

Permalink
Add reconstructed analysis files
Browse files Browse the repository at this point in the history
  • Loading branch information
mvoorde authored and jalimena committed Mar 7, 2024
1 parent 2d55c92 commit d296338
Show file tree
Hide file tree
Showing 3 changed files with 443 additions and 0 deletions.
119 changes: 119 additions & 0 deletions examples/FCCee/bsm/LLPs/ExoticHiggsDecays/Reco_analysis_final.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
#Input directory where the files produced at the stage1 level are
inputDir = "/eos/experiment/fcc/ee/analyses/case-studies/bsm/LLPs/H_SS_4b/Reco_output_stage1/"

#Output directory where the files produced at the final-selection level are
outputDir = "Reco_output_finalSel/"


# # #Integrated luminosity for scaling number of events (required only if setting doScale to true)
# intLumi = 5e6 #pb^-1

# # #Scale event yields by intLumi and cross section (optional)
# doScale = True

# # #Save event yields in a table (optional)
# saveTabular = True

#Mandatory: List of processes
processList = {

#privately-produced signals
'exoticHiggs_scalar_ms20GeV_sine-5':{},
'exoticHiggs_scalar_ms20GeV_sine-6':{},
'exoticHiggs_scalar_ms20GeV_sine-7':{},
'exoticHiggs_scalar_ms60GeV_sine-5':{},
'exoticHiggs_scalar_ms60GeV_sine-6':{},
'exoticHiggs_scalar_ms60GeV_sine-7':{},

#centrally produced backgrounds
'p8_ee_ZZ_ecm240':{},
'p8_ee_WW_ecm240':{},
'p8_ee_ZH_ecm240':{},
}

###Dictionary for prettier names of processes (optional)
processLabels = {
#signals
'exoticHiggs_scalar_ms20GeV_sine-5': "$m_S$ = 20 GeV, sin $\theta = 1 * 10^{-5}$",
'exoticHiggs_scalar_ms20GeV_sine-6': "$m_S$ = 20 GeV, sin $\theta = 1 * 10^{-6}$",
'exoticHiggs_scalar_ms20GeV_sine-7': "$m_S$ = 20 GeV, sin $\theta = 1 * 10^{-7}$",
'exoticHiggs_scalar_ms60GeV_sine-5': "$m_S$ = 60 GeV, sin $\theta = 1 * 10^{-5}$",
'exoticHiggs_scalar_ms60GeV_sine-6': "$m_S$ = 60 GeV, sin $\theta = 1 * 10^{-6}$",
'exoticHiggs_scalar_ms60GeV_sine-7': "$m_S$ = 60 GeV, sin $\theta = 1 * 10^{-7}$",

#backgrounds
'p8_ee_WW_ecm240': "e^{-}e^{+} $\rightarrow$ WW",
'p8_ee_ZZ_ecm240': "e^{-}e^{+} $\rightarrow$ ZZ",
'p8_ee_ZH_ecm240': "e^{-}e^{+} $\rightarrow$ ZH",
}

#Link to the dictonary that contains all the cross section information etc...
procDict = "FCCee_procDict_spring2021_IDEA.json"

#Add MySample_p8_ee_ZH_ecm240 as it is not an offical process
procDictAdd={
'exoticHiggs_scalar_ms20GeV_sine-5': {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 8.858e-6, "kfactor": 1.0, "matchingEfficiency": 1.0},
'exoticHiggs_scalar_ms20GeV_sine-6': {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 8.858e-6, "kfactor": 1.0, "matchingEfficiency": 1.0},
'exoticHiggs_scalar_ms20GeV_sine-7': {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 8.858e-6, "kfactor": 1.0, "matchingEfficiency": 1.0},
'exoticHiggs_scalar_ms60GeV_sine-5': {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 2.618e-6, "kfactor": 1.0, "matchingEfficiency": 1.0},
'exoticHiggs_scalar_ms60GeV_sine-6': {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 2.618e-6, "kfactor": 1.0, "matchingEfficiency": 1.0},
'exoticHiggs_scalar_ms60GeV_sine-7': {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 2.618e-6, "kfactor": 1.0, "matchingEfficiency": 1.0},
}

#Number of CPUs to use
nCPUS = 2

#produces ROOT TTrees, default is False
doTree = False

###Dictionnay of the list of cuts. The key is the name of the selection that will be added to the output file
cutList = {
# For plotting
"selNone": "n_tracks > -1",

# For event selection
"preSel": "((n_RecoElectrons>1) && (RecoElectron_charge.at(0) != RecoElectron_charge.at(1))) || ((n_RecoMuons>1) && (RecoMuon_charge.at(0) != RecoMuon_charge.at(1)))",
"selZ": "(Reco_ee_invMass > 70 && Reco_ee_invMass < 110) || (Reco_mumu_invMass > 70 && Reco_mumu_invMass < 110)",
"selZ+nDVs_seltracks": "((Reco_ee_invMass > 70 && Reco_ee_invMass < 110) || (Reco_mumu_invMass > 70 && Reco_mumu_invMass < 110)) && filter_n_DVs_seltracks > 1",
"selZ+nDVs_merge": "((Reco_ee_invMass > 70 && Reco_ee_invMass < 110) || (Reco_mumu_invMass > 70 && Reco_mumu_invMass < 110)) && filter_n_DVs_merge > 1",
}

###Dictionary for prettier names of cuts (optional)
cutLabels = {
# For plotting
"selNone": "Before selection",

# For event selection
"preSel": "At least 2 oppositely charged leptons",
"selZ": "70 < $m_{ll}$ < 110 GeV",
"selZ+nDVs_seltracks": "n DVs $\geq$ 2",
"selZ+nDVs_merge": "n DVs $\geq$ 2 (merged)",
}

###Dictionary for the ouput variable/hitograms. The key is the name of the variable in the output files. "name" is the name of the variable in the input file, "title" is the x-axis label of the histogram, "bin" the number of bins of the histogram, "xmin" the minimum x-axis value and "xmax" the maximum x-axis value.

histoList = {
"n_tracks": {"name":"n_tracks", "title":"Number of reconstructed tracks", "bin":100, "xmin":-0.5,"xmax":99.5},
"n_RecoedPrimaryTracks": {"name":"n_RecoedPrimaryTracks", "title": "Number of reconstructed primary tracks", "bin":10, "xmin":-0.5,"xmax":9.5},
'n_seltracks_DVs': {"name":"n_seltracks_DVs", "title":"Number of DVs", "bin":12, "xmin":-0.5, "xmax":11.5},
'n_trks_seltracks_DVs': {"name":'n_trks_seltracks_DVs', "title":"Number of tracks from the DVs", "bin":30, "xmin":1.5, "xmax":29.5},
'invMass_seltracks_DVs': {"name":'invMass_seltracks_DVs', "title":"Invariant mass at the DVs [GeV]", "bin":40, "xmin":-0.5, "xmax":39.5},
"DV_evt_seltracks_chi2": {"name":"DV_evt_seltracks_chi2", "title":"The #chi^{2} distribution of the DVs", "bin":100, "xmin":-0.5, "xmax":11.5},
"Reco_seltracks_DVs_Lxy": {"name":"Reco_seltracks_DVs_Lxy", "title":"Transverse distance between PV and DVs [mm]", "bin":100, "xmin":0, "xmax":300},
"Reco_seltracks_DVs_Lxyz": {"name":"Reco_seltracks_DVs_Lxyz", "title":"Distance between PV and DVs [mm]", "bin":100, "xmin":0, "xmax":2000},
"DV_evt_seltracks_normchi2": {"name":"DV_evt_seltracks_normchi2", "title":"The normalised #chi^{2} distribution of the DVs", "bin":40, "xmin":0, "xmax":10},
"merged_DVs_n": {"name":"merged_DVs_n", "title":"Number of DVs", "bin":10, "xmin":-0.5, "xmax":9.5},
'n_trks_merged_DVs': {"name":'n_trks_merged_DVs', "title":"Number of tracks from the DVs from sel tracks + merge", "bin":30, "xmin":1.5, "xmax":29.5},
'invMass_merged_DVs': {"name":'invMass_merged_DVs', "title":"Invariant mass at the DVs [GeV]", "bin":40, "xmin":-0.5, "xmax":39.5},
"merged_DVs_chi2": {"name":"merged_DVs_chi2", "title":"The #chi^{2} distribution of the merged DVs", "bin":100, "xmin":-0.5, "xmax":11.5},
"merged_DVs_normchi2": {"name":"merged_DVs_normchi2", "title":"The normalised #chi^{2} distribution of the merged DVs", "bin":40, "xmin":0, "xmax":10},
"Reco_DVs_merged_Lxy": {"name":"Reco_DVs_merged_Lxy", "title":"Transverse distance between PV and DVs [mm]", "bin":100, "xmin":0, "xmax":300},
"Reco_DVs_merged_Lxyz": {"name":"Reco_DVs_merged_Lxyz", "title":"Distance between PV and DVs [mm]", "bin":100, "xmin":0, "xmax":2000},

'n_RecoElectrons': {"name":'n_RecoElectrons', "title": "Number of reconstructed electrons", "bin":10,"xmin":-0.5,"xmax":9.5},
"Reco_ee_invMass": {"name":"Reco_ee_invMass", "title": "Invariant mass of reconstructed e- e+ [GeV]", "bin":100,"xmin":50,"xmax":150},
'n_RecoMuons': {"name":'n_RecoMuons', "title": "Number of reconstructed muons", "bin":10,"xmin":-0.5,"xmax":9.5},
"Reco_mumu_invMass": {"name":"Reco_mumu_invMass", "title": "Invariant mass of reconstructed #mu- #mu+ [GeV]", "bin":100,"xmin":50,"xmax":150},


}
88 changes: 88 additions & 0 deletions examples/FCCee/bsm/LLPs/ExoticHiggsDecays/Reco_analysis_plots.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import ROOT

# global parameters
intLumi = 5.0e+06 #in pb-1

###If scaleSig=0 or scaleBack=0, we don't apply any additional scaling, on top of the normalization to cross section and integrated luminosity, as defined in finalSel.py
###If scaleSig or scaleBack is not defined, plots will be normalized to 1
#scaleSig = 0.
#scaleBack = 0.
ana_tex = 'e^{+}e^{-} #rightarrow Z h, Z #rightarrow l^{+}l^{-}, h #rightarrow ss #rightarrow b #bar{b} b #bar{b}'
delphesVersion = '3.4.2'
energy = 240
collider = 'FCC-ee'
inputDir = 'Reco_output_finalSelPlots/'
#formats = ['png','pdf']
formats = ['pdf']
# yaxis = ['lin','log']
yaxis = ['log']
stacksig = ['nostack']
outdir = 'Reco_plots/'
splitLeg = True

variables = [

#gen variables
"n_tracks",
"n_RecoedPrimaryTracks",
'n_seltracks_DVs',
'n_trks_seltracks_DVs',
'invMass_seltracks_DVs',
"DV_evt_seltracks_chi2",
"Reco_seltracks_DVs_Lxy",
"Reco_seltracks_DVs_Lxyz",
"DV_evt_seltracks_normchi2",
"merged_DVs_n",
'n_trks_merged_DVs',
'invMass_merged_DVs',
"merged_DVs_chi2",
"merged_DVs_normchi2",
"Reco_DVs_merged_Lxy",
"Reco_DVs_merged_Lxyz",

'n_RecoElectrons',
"Reco_ee_invMass",
'n_RecoMuons',
"Reco_mumu_invMass",
]


###Dictionary with the analysis name as a key, and the list of selections to be plotted for this analysis. The name of the selections should be the same than in the final selection
selections = {}
selections['ExoticHiggs'] = [
"selNone",
]

extralabel = {}
extralabel['selNone'] = "Before selection"

colors = {}
colors['exoticHiggs_scalar_ms20GeV_sine-5'] = ROOT.kRed
colors['exoticHiggs_scalar_ms20GeV_sine-6'] = ROOT.kBlue
colors['exoticHiggs_scalar_ms20GeV_sine-7'] = ROOT.kGreen
colors['exoticHiggs_scalar_ms60GeV_sine-5'] = ROOT.kBlack
colors['exoticHiggs_scalar_ms60GeV_sine-6'] = ROOT.kOrange+1
colors['exoticHiggs_scalar_ms60GeV_sine-7'] = ROOT.kViolet-4

plots = {}
plots['ExoticHiggs'] = {'signal':{
'exoticHiggs_scalar_ms20GeV_sine-5':['exoticHiggs_scalar_ms20GeV_sine-5'],
'exoticHiggs_scalar_ms20GeV_sine-6':['exoticHiggs_scalar_ms20GeV_sine-6'],
'exoticHiggs_scalar_ms20GeV_sine-7':['exoticHiggs_scalar_ms20GeV_sine-7'],
'exoticHiggs_scalar_ms60GeV_sine-5':['exoticHiggs_scalar_ms60GeV_sine-5'],
'exoticHiggs_scalar_ms60GeV_sine-6':['exoticHiggs_scalar_ms60GeV_sine-6'],
'exoticHiggs_scalar_ms60GeV_sine-7':['exoticHiggs_scalar_ms60GeV_sine-7'],
},
'backgrounds':{
#
}
}


legend = {}
legend['exoticHiggs_scalar_ms20GeV_sine-5'] = 'm_{S} = 20 GeV, sin #theta = 1e-5'
legend['exoticHiggs_scalar_ms20GeV_sine-6'] = 'm_{S} = 20 GeV, sin #theta = 1e-6'
legend['exoticHiggs_scalar_ms20GeV_sine-7'] = 'm_{S} = 20 GeV, sin #theta = 1e-7'
legend['exoticHiggs_scalar_ms60GeV_sine-5'] = 'm_{S} = 60 GeV, sin #theta = 1e-5'
legend['exoticHiggs_scalar_ms60GeV_sine-6'] = 'm_{S} = 60 GeV, sin #theta = 1e-6'
legend['exoticHiggs_scalar_ms60GeV_sine-7'] = 'm_{S} = 60 GeV, sin #theta = 1e-7'
Loading

0 comments on commit d296338

Please sign in to comment.