Clone the repository and work inside it:
git clone git@github.com:mhl0116/cscbkg.git
cd cscbkg
Install conda and get all the dependencies:
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b
# add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# stop conda from activating the base environment on login
conda config --set auto_activate_base false
conda config --add channels conda-forge
# install package to tarball environments
conda install --name base conda-pack -y
ANALYSISENVNAME="analysisenv"
# create environments with as much stuff from anaconda
# ipython==7.10.1 because of https://stackoverflow.com/questions/63413807/deprecation-warning-from-jupyter-should-run-async-will-not-call-transform-c
packages="uproot dask dask-jobqueue matplotlib pandas jupyter pyarrow fastparquet numba numexpr bottleneck ipython<=7.10.1"
conda create --name $WORKERENVNAME $packages -y
conda create --name $ANALYSISENVNAME $packages -y
# and then install residual packages with pip
conda run --name $ANALYSISENVNAME pip install yahist jupyter-server-proxy coffea jupyter_nbextensions_configurator awkward awkward0 uproot3 pdroot
conda activate $ANALYSISENVNAME
- Perform pre-selection (preselection.py), select chambers satisfying certain criteria for analysis, take root ntuple as input and save output into panda dataframe
- Make performance/diagnostic plots (plotter.py) related to CSC background study (rate vs lumi, rate vs BXID etc)
- In case one needs to make a fit for rate vs BXID in the large LHC empty bunches, use this script: fitbkg.py