Software package to analyse L1TNtuples
- Read CONTRIBUTING.md
- Follow the instructions below
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
source bin/env.sh
# you will need your grid cert
voms-proxy-init --voms cms
make setup
- Install Virtualbox
- 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."
- 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 bin/env.sh
# you will need your grid cert
voms-proxy-init --voms cms
make setup
# install python requirements
pip install -r requirements.txt --user
make benchmark
make changelog
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
"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, you can run it with bin/analyze
command:
python bin/analyze -a demo_analyzer -i 'data/L1Ntuple_*.root' -n 1000
Get help on the command line options by doing:
python bin/analyze -h