git clone [email protected]:cms-svj/model_building
cd model_building
./install.sh
source init.sh
This repository is built on the LCG 105 environment. Important software versions:
- Pythia8 3.10
- Delphes 3.5.1pre09
- HepMC 2.06.11
- ROOT 6.30.02
- coffea 0.7.21
- uproot 4.3.7
- awkward 1.10.3
A few predefined model configuration files are provided in the configs folder:
- The CMS model used in EXO-19-020 (largely based on arXiv:1503.00009 and arXiv:1707.05326).
- One of the Snowmass benchmark models from arXiv:2203.09503.
An example run command is:
./run_model helper -C configs/model_cms.py --steps all --events 10 --verbose
This command will, in order:
- load the CMS model configuration
- generate the Pythia and Delphes cards for this configuration
- run Pythia
- run Delphes
- make histograms
If the --steps
command is omitted, items 3, 4, and 5 will be skipped.
Items 3, 4, and 5 can be run separately by specifying just one of them in --steps
.
The input model configuration can be modified using command-line arguments, and the resulting configuration file will be generated along with the Pythia and Delphes cards.
Once histograms are created, an example of how to plot them, comparing different models, can be found in Plots.py.
An external Pythia card can be used (instead of generating a model by providing the helper with a parameter configuration):
./run_model external --card my_card.cmnd --stableIDs 53 4900211 --darkHadronIDs 4900111 4900113 4900211 4900213 --darkHadronFinalIDs 4900111 4900211 --pythia '' --steps all --events 10 --verbose
As shown, the lists of stable particle IDs, dark hadron IDs, and final dark hadron IDs must be provided manually in order for the Delphes output to be correct.
(The argument --pythia ''
prevents appending common settings to the Pythia card, which are included by default.)
The notebook example_MT.ipynb shows an example of interactively analyzing the generated events using coffea:
- applying selections
- computing new quantities
- filling histograms
- making plots
For programmatic analysis, follow Histogram.py and Plots.py as noted above.