Skip to content

Instantly share code, notes, and snippets.

View alexpearce's full-sized avatar

Alex Pearwin alexpearce

View GitHub Profile
@alexpearce
alexpearce / sqlite3_example.py
Last active August 29, 2015 14:08
Creating and manipulating a run number database.
import sqlite3
import random
# Create the database
con = sqlite3.connect('/path/to/database.db')
con.execute('CREATE TABLE runs (run INTEGER PRIMARY KEY)')
# Insert many runs...
runs = range(int(1e3))
random.shuffle(runs)
@alexpearce
alexpearce / sqlite3_timing.py
Created October 27, 2014 10:44
Timing operations on an SQLite database.
import timeit
import os
DB_PATH = 'database.db'
# Number of runs to generate
NRUNS = int(1e6)
insert_setup = """import sqlite3
con = sqlite3.connect('{0}')
con.execute('CREATE TABLE runs (run INTEGER PRIMARY KEY)')
@alexpearce
alexpearce / root.rb
Created November 20, 2014 14:02
Homebrew ROOT formula for installing ROOT 6.02.00
require 'formula'
class Root < Formula
homepage 'http://root.cern.ch'
url 'ftp://root.cern.ch/root/root_v6.02.00.source.tar.gz'
mirror 'http://ftp.riken.jp/pub/ROOT/root_v6.02.00.source.tar.gz'
version '6.02.00'
sha1 '98449e9a4d91cc487c5ae59c1128d20286f134cc'
head 'https://github.com/root-mirror/root.git', :branch => 'v6-02-00-patches'
# url "ftp://root.cern.ch/root/root_v5.34.22.source.tar.gz"
@alexpearce
alexpearce / .ganga.py
Created November 21, 2014 10:36
Method loaded by Ganga for automatically downloading job output
from os import makedirs
def download_lfns(job, path="/afs/cern.ch/work/a/apearce/Ganga"):
"""Downloads all Dirac files for all subjobs of a given job.
Keyword arguments:
job -- Ganga Job object. Only completed jobs/subjobs will be downloaded
path -- Prefix path to download to, will be suffixed by job_id/subjob_id
"""
print "Downloading LFNs to {0}/{1}".format(path, job.id)
@alexpearce
alexpearce / test_smeared_chisq.py
Created December 16, 2014 12:18
Test smeared log IP chi^2 shape
import ROOT
from ROOT import RooFit as RF
ROOT.gROOT.ProcessLine('#include "charmproduction/fitting/shape_classes/RooSmearedLogChiSquared.cxx"')
w = ROOT.RooWorkspace('w')
w.factory('x[-5, 5]')
w.factory('mu_ip[2, -10, 10]')
w.factory('alphaL_ip[1, 0.1, 10]')
w.factory('alphaR_ip[1, 0.1, 10]')
w.factory('RooSmearedLogChiSquared::pdf_ip(x, mu_ip, alphaL_ip, alphaR_ip)')
_____ _____ _____ _____
/\ \ /\ \ /\ \ /\ \
/::\ \ /::\____\ /::\ \ /::\ \
/::::\ \ /::::| | \:::\ \ /::::\ \
/::::::\ \ /:::::| | \:::\ \ /::::::\ \
/:::/\:::\ \ /::::::| | \:::\ \ /:::/\:::\ \
/:::/__\:::\ \ /:::/|::| | \:::\ \ /:::/__\:::\ \
/::::\ \:::\ \ /:::/ |::| | /::::\ \ /::::\ \:::\ \
/:::::
@alexpearce
alexpearce / test_simultaneous_fit.py
Created January 6, 2015 14:25
Test simultaneous fitting in kinematic bins.
import ROOT as R
from ROOT import RooFit as RF
from charmproduction import config, utilities
def create_binning(var, edges):
"""Return RooBinning for var with bin edges.
Lowest and highest bin edge are automatically added from
@alexpearce
alexpearce / monitor_requirements.txt
Created January 7, 2015 12:00
Python requirements files
Flask==0.10.1
Jinja2==2.7.3
MarkupSafe==0.23
Werkzeug==0.9.6
uWSGI==2.0.7
honcho==0.5.0
itsdangerous==0.24
redis==2.10.1
# Use a patched rq v0.4.6
# Fixes a problem where workers would have completed status before saving the payload
@alexpearce
alexpearce / fake_phi.py
Created January 12, 2015 16:06
Fake phi combination
phi_combination = CombineParticles(
'CombineCheatedphiToKK',
Preambulo=truth_matching_preambulo,
# There's no "anti-phi", so no [...]cc
DecayDescriptors=['phi(1020) -> K- K+'],
Inputs=[
kaons
],
# The D_s+ MC sample models the resonant phase space but doesn't insert
# actual resonant particles, so there isn't a real phi
@alexpearce
alexpearce / stdout_with_phi
Last active August 29, 2015 14:13
DaVinci log running over 23263020 MC with fake_phi options.
Using the master optionsfile: options.pkl
********************************************************************************
* ---- LHCb Login v8r3 ---- *
* Building with gcc48 on slc6 x86_64 system (x86_64-slc6-gcc48-opt) *
********************************************************************************
--- User_release_area is set to /afs/cern.ch/user/a/apearce/cmtuser
--- LHCBPROJECTPATH is set to:
/afs/cern.ch/lhcb/software/releases
/afs/cern.ch/sw/Gaudi/releases
/afs/cern.ch/sw/lcg/releases