# Index of the framework The main ingredients of the framework are wrapped in `src/` directories with supported directories in the root path. ## `src/data` : custom corrections Stores the customize corrections used in analysis. e.g. jet probality calibration, custom scale factors...etc. It has a structure similar to [`jsonpog-intergration`](https://gitlab.cern.ch/cms-nanoAOD/jsonpog-integration/) split by POGs, corrections. | Type | File type | Comments| | :---: | :---: | :---: | | `"DC"` |`.json` | Masked good lumi-section used for physics analysis| | `Prescales` | `.json.` | HLT paths for prescaled triggers| | `LUM` | `.histo.root` | Pileup reweight files, matched MC to data| | `MUO` | `.histo.root` | Muon ID/Iso/Reco/Trigger SFs| | `EGM` | `.histo.root` | Electron ID/Iso/Reco/Trigger SFs| | `BTV` | `.csv` or `.root` | b-tagger, c-tagger SFs| | `JME` | `.txt` | JER, JEC files| | `JPCalib` | `.root` | Jet probablity calibration, used in LTSV methods| ## `src/utils`: configurations of frameworks ### `histogrammer.py`: collections of hisograms & hisogram writter ### `selection.py`: collections of common selections ### `correction.py`: `coffea` corrections used in analysis **supported corrections in the current FW** | Type | corrections | systematics | Description| | ----- | --- | :---: | ----- | | scale
variation | event
based
syst | $\mu_R/\mu_F$
0.5,2| Evaluate renoramlization/ factorization
up and down independently
based on NanoAOD `LHEScaleWeight` | | PDF | event
based
syst | PDF sets| Evaluate PDF uncertainties of
`NNPDF31_nnlo_hessian_pdfas`
, PDF, alphaS, and PDF+alphaS
based on NanoAOD `LHEPDFWeight` | | parton
showering | event
based
syst | weights| Evaluate parton showering ISR/FSR
uncertainties
based on NanoAOD `PSWeight` | | top pT | SF | event
based
SF+syst | no SF | ttbar pT reweighting
based on [top PAG]( https://twiki.cern.ch/twiki/bin/viewauth/CMS/TopPtReweighting#TOP_PAG_corrections_based_on_the ) | | pileup | event
based
SF+syst | up/down | pileup SF from LUM POG
from jsonpog-integration
or self derived root file| | electron
ID/ISO/Reco | ele
SF+syst | up/down | electron ID/Iso/Reco SFs
from EGM using jsonpog-integration | | muon
ID/Iso | muon
SF+syst | up/down | muon ID/Iso SFs
from MUO in jsonpog-integration | | jet
veto | -- | -- | veto jets in problematic region
suggested by JME in jsonpog-integration | | jet
prob. | jet trk
prob. | apply MC
to data | veto jets in problematic
region suggested by
JME in jsonpog-integration | | JER/JEC | jet
energy
correction
or smearing | total
up/down
energy
mass
variation | JERC uncertainties from JME, support both txt-like
or files from jsonpog-integration | ### `sample.py`: refined MC sample list for each workflow ### `AK4_parameters.py`: correction, lumi configuration for each campaign ### `plot_utils.py`: plotting utilities ### `array_writter.py`: write out events into root file ## `src/helpers`: functionalities of the framework ### `xsection(_13TeV).py`: xsection diectionary ### `particle*.csv`: particle mass info ### `defintions.py`: definitions of histogram name ### `BTA_helper.py`: special tools for BTA workflow ### `func.py`: useful functionality ### `update_branch.py`: update missing branch (tagger likelihood ratio) ### `cTagSFReader.py`(deprecated): csv reader of cSF ## `src/workflows`: collections of workflow Collections of different selections used in commissioning and scale factor. Find the detail in [workflow section](./wf.md). ## `runner.py`: running coffea jobs ## `condor/`: standalone submission standalone condor submission script with futures executor. See the [details](scaleout.md#standalone-condor-jobs@lxplus/cmsconnect) ## `scripts`: plotting, post-processing, all in one scripts ### `fetch.py`: obtain dataset json file ### `suball.py`: all in one script to run commissioning/ quick data MC check.... ### Output post-processing ### `dump_prescale.py`: dump prescale info by `brilcalc` ### `dump_processed.py`: dump processed info from output coffea file: lumi & processed files ### `make_template.py`: convert coffea to ROOT hist ### `do_hadd.py`: hadd processed root file ### `missingFiles.py`: **for customiuzed ** check missing files not include and recreate new submission scripts ### Plotting scripts: ### `comparison.py`: data/data, MC/MC comparison ### `plotdataMC.py`: data/MC comparison ### `validation_plot.py`: plot ROC curve & efficiency ### `2Dhistograms.py`: plot 2D histogram from root file ### `correction_plot.py`: plot corelation matrix from root file ## `metadata`: collections of dataset json files Collections of json file for different campaigns. Split directory by campaign name. ## `testfile`: example coffea files