Skip to content

cms-l1t-offline/cms-l1t-analysis

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

01e5951 · Jul 18, 2019
May 31, 2019
Oct 5, 2017
Jul 8, 2019
Aug 5, 2018
Jul 18, 2019
Jul 8, 2019
May 2, 2019
May 2, 2019
Feb 17, 2017
Jul 3, 2017
Jul 18, 2019
Apr 30, 2018
Apr 30, 2018
Apr 25, 2017
Nov 3, 2017
May 31, 2019
Aug 3, 2018
Mar 29, 2017
Jul 8, 2019
May 31, 2019
May 2, 2019
May 2, 2019
Feb 13, 2017
Feb 13, 2017
Aug 5, 2018
Aug 5, 2018
Nov 3, 2017
Apr 30, 2018
Jul 18, 2019
Mar 26, 2019
May 31, 2019
Jul 25, 2018

Repository files navigation

cms-l1t-analysis

Software package to analyse L1TNtuples

Latest stable version: https://github.com/cms-l1t-offline/cms-l1t-analysis/releases/tag/v0.5.1

Build Status DOI Code Health docs

DEV

  1. Read CONTRIBUTING.md
  2. Follow the instructions below

On Scientific Linux 6 with CVMFS available

This includes nodes lxplus.cern.ch & private clusters

git clone https://github.com/<your github user name>/cms-l1t-analysis.git
cd cms-l1t-analysis
git remote add upstream https://github.com/cms-l1t-offline/cms-l1t-analysis.git
git pull --rebase upstream master
source setup.sh
# you will need your grid cert
voms-proxy-init --voms cms
make setup

On OS X/other Linux/Windows

  1. Install Virtualbox
  2. Install Vagrant
  • You might need to also install vagrant-libvirt on some systems if you see "The provider 'libvirt' could not be found, but was requested to back the machine 'default'. Please use a provider that exists."
  1. Follow instructions below
git clone https://github.com/<your github user name>/cms-l1t-analysis.git
cd cms-l1t-analysis
git remote add upstream https://github.com/cms-l1t-offline/cms-l1t-analysis.git
# only on non Scientific Linux machines (e.g. OS X, Windows, Ubuntu, etc)
vagrant up
vagrant ssh
cd /vagrant
source setup.sh
# you will need your grid cert
voms-proxy-init --voms cms
make setup

running tests

Tests can be run either on an SL 6 machine or in the Vagrant box:

make test
# if a grid proxy is provided (e.g. via voms-proxy-init --voms cms)
# you can also run tests that require grid access:
make test-all

running benchmark

# install python requirements
pip install -r requirements.txt --user
make benchmark

Generating documentation (locally)

Documentation is automatically updated on http://cms-l1t-analysis.readthedocs.io/en/latest/ whenever a the master branch is updated. If you want to test documentation locally execute

# HTML version
make docs-html # produces output in docs/_build/html
make docs-latex # produces output in docs/_build/latex
# you might need to
# export PATH:/cvmfs/sft.cern.ch/lcg/external/texlive/2014/bin/x86_64-linux:$PATH
# for docs-latex

Prerequisites

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --ruby
source ~/.rvm/scripts/rvmsource ~/.rvm/scripts/rvm
gem install github_changelog_generator

Implementing and running an analysis script

"Analyzers" are the parts of the code that receive events from the input tuples, extracts the relevant data and puts this into the histograms.

You can see an example of an analyzer at: cmsl1t/analyzers/demo_analyzer.py.
To implement your own analyzer, all you need to do is make a new class in a file under cmsl1t/analyzers/ which inherits from cmsl1t.analyzers.BaseAnalyzer.BaseAnalyzer. You then need to implement two or three methods: prepare_for_event, fill_histograms, write_histograms, and make_plots. See the BaseAnalyzer class and the demo_analyzer for examples and documentation of these methods.

Once you have implemented an analyzer and written a simple configuration for it, you can run it with cmsl1t command:

cmsl1t -c config/demo.yaml -n 1000

Get help on the command line options by doing:

cmsl1t --help

Testing HTCondor submission

For HTCondor we have an all-in-one Docker container. From the code repo:

docker-compose up -d
docker exec -ti cmsl1tanalysis_cmsl1t_1 cdw
# do your tests

# logout once done

# shut down the container(s)
docker-compose down

NOTE: If you are on Linux you have to install docker-compose by hand:

sudo curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

to update you have to sudo rm -f /usr/local/bin/docker-compose first.

To build the docker container: docker-compose build or docker build -t kreczko/cms-l1t-analysis -f docker/Dockerfile ..

Releases

Make a new release

Since the changelog generator queries the repository you will need to give it a github authentication token to bypass the limits for unauthenticated access. You can create such tokens under https://github.com/settings/tokens .

export CHANGELOG_GITHUB_TOKEN=<from https://github.com/settings/tokens>
export RELEASE=<release version> #e.g. 0.3.0
git pull --rebase upstream master
make release