Python library for DataDrivenMisID modelling. This derives a single-track misID template and event yield from a control region in data. Such a task is executed via the assignment of per-event weights obtained from particle identification efficiency maps. In turn, these are (mostly) produced from bespoke high-purity, high-statistics calibration data samples via PIDCalib2.
where the true abundance of each species in the reference control sample,
Here,
The unfolding is executed by means of binned maximum-likelihood fits within. In turn, each fit is executed in bins of kinematics and occupaancy, to account for the variation of PID responses with momentum, pseudo-rapidity, and detector occupancy.
As an example, DDmisID
extracts the true abundance of each species, in each bin of kinematics and occupancy, as yields extracted in fits such as this one:
Binned maximum likelihood fit to orthogonal, high-purity partitions of the hadron-enriched data. The filled coloured histograms illustrate the post-fit extracted abundance of each species, accounting of cross-contamination between the partitions due to imperfect PID. Generated with in-house pseudo-data mimicking the LHCb reconstruction.
git clone [email protected]:reallyblaised/DDmisID.git
cd DDmisID
For regular use:
pip install -r requirements.txt
For developement (editable mode, and recommended until further notice):
pip install -e .
DDmisID runs through an engine that
- Builds and validates a user-specified configuration YAML file [by default
config/main.yml
]. - Orchestrates the DDmisID pipeline, powered by a Snakemake backend.
Open and modify config/main.yml
(or a custom path to a YAML file with the same key structure), following the in-inline field descriptios.
Parse the YAML configuration file and ensure it complies with the DDmisID engine specification:
$ ddmisid-engine build # sources config/main.yml by default
or, for custom config-file locations:
$ ddmisid-engine build --config-path=<custom_YAML_config_path>
Run
$ python -c "from ddmisid.engine import config; print(config)"
to verify that the configuration report is compatible with the user's directives.
Execute the pipeline, passing Snakemake’s dynamic flags as needed, for example:
ddmisid-engine run -- <snakemake options>
for example,
ddmisid-engine run -- --dryrun --cores 1
where, as a tip, --cores all
can be used to exploit all the resources available on your machine or cluster.
This project is licensed under the MIT License. See LICENSE for more information.