def __init__(self): Load('TMVABranchAdder') self.ba = root.TMVABranchAdder() self.ba.defaultValue = -1.2 self.ba.presel = 'fj1ECFN_2_4_20>0' for v in tagcfg.variables: self.ba.AddVariable(v[0], v[2]) for v in tagcfg.formulae: self.ba.AddFormula(v[0], v[2]) for s in tagcfg.spectators: self.ba.AddSpectator(s[0]) self.ba.BookMVA('top_ecf_bdt', data_dir + '/trainings/top_ecfbdt_v8_BDT.weights.xml')
def add_bdt(): # now run the BDT Load('TMVABranchAdder') ba = root.TMVABranchAdder() ba.treename = 'events' ba.defaultValue = -1.2 ba.presel = 'fj1ECFN_2_4_20>0' for v in tagcfg.variables: ba.AddVariable(v[0],v[2]) for v in tagcfg.formulae: ba.AddFormula(v[0],v[2]) for s in tagcfg.spectators: ba.AddSpectator(s[0]) ba.BookMVA('top_ecf_bdt',data_dir+'/trainings/top_ecfbdt_v8_BDT.weights.xml') ba.RunFile('output.root')
from time import clock, time import json which = int(argv[1]) submit_id = int(argv[2]) sname = argv[0] argv = [] import ROOT as root from PandaCore.Tools.Misc import * from PandaCore.Tools.Load import * import PandaCore.Tools.job_config as cb import PandaAnalysis.LPC_T3.job_utilities as utils from PandaAnalysis.Flat.analysis import monojet Load('PandaAnalyzer') data_dir = getenv('CMSSW_BASE') + '/src/PandaAnalysis/data/' def fn(input_name, isData, full_path): PInfo(sname + '.fn', 'Starting to process ' + input_name) # now we instantiate and configure the analyzer skimmer = root.PandaAnalyzer() analysis = monojet(True) analysis.processType = utils.classify_sample(full_path, isData) analysis.genOnly = False skimmer.SetAnalysis(analysis) skimmer.isData = isData skimmer.SetPreselectionBit(root.PandaAnalyzer.kDiMu)
def fn(shortName, longName, isData, xsec): # first we do some I/O stuff outdir = 'XXXX' outfilename = shortName + '.root' PInfo(sname, 'Output: %s/%s' % (outdir, outfilename)) if path.isfile('%s/%s' % (outdir, outfilename)): PWarning(sname, "Found %s, skipping!" % outfilename) return start = clock() eosPath = 'root://eoscms.cern.ch//store/user/snarayan' eosEXOPath = 'root://eoscms.cern.ch//store/group/phys_exotica' cernboxPath = 'root://eosuser//eos/user/s/snarayan' cernboxBPath = 'root://eosuser//eos/user/b/bmaier' fullPath = sub( r'\${CERNBOXB}', cernboxBPath, sub( r'\${CERNBOX}', cernboxPath, sub(r'\${EOS}', eosPath, sub(r'\${EOS2}', eosEXOPath, longName)))) PInfo(sname, fullPath) # xrdcp if remote, copy if local if 'root://' in fullPath: system('xrdcp %s input.root' % fullPath) else: system('cp %s input.root' % fullPath) # now we instantiate and configure the analyzer skimmer = root.PandaAnalyzer() skimmer.isData = isData skimmer.SetFlag('firstGen', False) # skimmer.SetFlag('puppi',False) skimmer.SetPreselectionBit(root.PandaAnalyzer.kRecoil) #skimmer.SetPreselectionBit(root.PandaAnalyzer.kMonotop) processType = root.PandaAnalyzer.kNone if not isData: if 'ST_' in fullPath: processType = root.PandaAnalyzer.kTop elif 'ZJets' in fullPath or 'DY' in fullPath: processType = root.PandaAnalyzer.kZ elif 'WJets' in fullPath: processType = root.PandaAnalyzer.kW elif 'GJets' in fullPath: processType = root.PandaAnalyzer.kA elif 'TTJets' in fullPath or 'TT_' in fullPath: processType = root.PandaAnalyzer.kTT skimmer.processType = processType # read the inputs try: fin = root.TFile.Open('input.root') tree = fin.FindObjectAny("events") infotree = fin.FindObjectAny("all") except: exit(2) # file open error => xrootd? skimmer.SetDataDir(getenv('CMSSW_BASE') + '/src/PandaAnalysis/data/') skimmer.SetOutputFile('output.root') skimmer.Init(tree, infotree) # run and save output skimmer.Run() skimmer.Terminate() # now run the BDT Load('Learning', 'TMVABranchAdder') ba = root.TMVABranchAdder() ba.treename = 'events' ba.defaultValue = -1.2 ba.presel = 'fj1ECFN_2_4_20>0' for v in tagcfg.variables: ba.AddVariable(v[0], v[2]) for v in tagcfg.formulae: ba.AddFormula(v[0], v[2]) for s in tagcfg.spectators: ba.AddSpectator(s[0]) ba.BookMVA( 'top_ecf_bdt', getenv('CMSSW_BASE') + '/src/PandaAnalysis/data/trainings/top_ecfbdt_v8_BDT.weights.xml') ba.RunFile('output.root') # stageout mvargs = 'mv $PWD/output.root %s/%s' % (outdir, outfilename) PInfo(sname, mvargs) system(mvargs) system('rm input.root') PInfo(sname, 'finished in %f' % (clock() - start)) start = clock()
parser.add_argument('--cut', metavar='cut', type=str, default='1==1') parser.add_argument('--region', metavar='region', type=str, default=None) args = parser.parse_args() lumi = 36560 blind = True linear = False region = args.region sname = argv[0] argv = [] import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * import PandaCore.Tools.Functions import PandaAnalysis.VBF.MonojetSelection as sel Load('Drawers', 'PlotUtility') ### DEFINE REGIONS ### cut = tAND(sel.cuts[args.region], args.cut) PInfo(sname, 'using cut: ' + cut) ### LOAD PLOTTING UTILITY ### plot = root.PlotUtility() plot.Stack(True) plot.Logy(not (linear)) if 'signal' in region and blind: plot.SetLumi(lumi / 5000.) else: plot.SetLumi(lumi / 1000) plot.SetSignalScale(10)
#!/usr/bin/env python import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * from os import getenv from sys import argv #import cfgSmall as cfg import makeInvariantRatios as cfg Load('Learning','TMVABranchAdder') workdir = getenv('SCRAMJETFLAT') ba = root.TMVABranchAdder() ba.treename='puppiCA15' for v in cfg.variables: ba.AddVariable(v[0],v[0]) for v in cfg.formulae: ba.AddFormula(v[0],v[0]) for s in cfg.spectators: ba.AddSpectator(s[0]) ba.BookMVA('top_ecf43_bdt',workdir+'/training/top_ecfbdt_43_BDT.weights.xml') ba.RunFile(workdir+'/'+argv[1]+'.root')
import json debug_level = 2 torun = argv[1] output = 'snapshot.root' if len(argv)>2: debug_level = int(argv[2]) if len(argv)>3: output = argv[3] argv = [] import ROOT as root from PandaCore.Tools.Load import * Load('Clusterer') camera = root.redpanda.Camera(debug_level) camera.firstEvent=1 camera.lastEvent=2 fin = root.TFile.Open(torun) tree = fin.FindObjectAny("events") camera.SetOutputFile(output) camera.Init(tree) camera.Run() camera.Terminate()
#!/usr/bin/env python from sys import exit,argv import argparse parser = argparse.ArgumentParser(description='skim a file') parser.add_argument('--input',type=str) parser.add_argument('--output',type=str,default=None) parser.add_argument('--cut',type=str) args = parser.parse_args() argv=[] from PandaCore.Tools.Load import * import ROOT as root Load('Tools','Cutter') c = root.Cutter() c.treeName = 'puppiCA15' if not args.output: args.output = args.input.replace('.root','_slim.root') c.Cut(args.input,args.output,args.cut)
ncontours = 999; stops = [ 0.10, 0.2000, 0.40, 0.600, 0.800, 1.0000] red = [255./255., 169./255., 91./255., 36./255., 8./255., 6./255.] green = [255./255., 194./255., 149./255., 99./255., 46./255., 0./255.] blue = [255./255., 243./255., 240./255.,240./255., 240./255., 233./255.] stopsArray = array('d',stops) redArray = array('d',red) greenArray = array('d',green) blueArray = array('d',blue) root.TColor.CreateGradientColorTable(len(stops), stopsArray, redArray, greenArray, blueArray, ncontours); ''' root.gStyle.SetNumberContours(999) root.gStyle.SetPalette(root.kBird) root.gStyle.SetPaintTextFormat(".3g") Load('CanvasDrawer') plot = root.CanvasDrawer() plot.SetTDRStyle() root.gStyle.SetPadRightMargin(0.2) c = root.TCanvas() cut1s = set([]) cut2s = set([]) if var3: listoffiles = glob(basedir + '/higgsCombine%s*%s*%s*.root' % (var1, var2, var3)) else: listoffiles = glob(basedir + '/higgsCombine%s*%s*.root' % (var1, var2)) for f in listoffiles:
#!/usr/bin/env python from os import getenv from sys import argv #import cfgModeled as cfg import cfgAll as cfg sample = argv[1] argv = [] import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * Load('TMVABranchAdder') workdir = getenv('PANDA_FLATDIR') trainingdir = '/home/snarayan/home000/store/scramjet/v7/training/' ba = root.TMVABranchAdder() ba.treename = 'events' ba.defaultValue = -1.2 ba.presel = 'fj1ECFN_2_4_20>0' for v in cfg.variables: ba.AddVariable(v[0], v[2]) for v in cfg.formulae: ba.AddFormula(v[0], v[2])
from re import sub from sys import argv, exit from os import system, getenv, path from json import load as loadJson from time import clock from random import shuffle from PandaCore.Tools.Misc import * from PandaCore.Tools.MultiThreading import GenericRunner from PandaCore.Tools.Load import * nPerJob = int(argv[2]) sname = argv[0] if __name__ == "__main__": Load('SCRAMJetAnalyzer', 'Analyzer') def fn(shortName, longName, counter, xsec, isData, outPath): outfileName = '%s_%i' % (shortName, counter) if path.isfile(outPath + '/' + outfileName + '.lock'): return # another job is processing this file if path.isfile(outPath + '/' + outfileName + '.root'): return # another job has processed this file system('touch %s/%s.lock' % (outPath, outfileName)) start = clock() eosPath = 'root://eoscms//eos/cms/store/user/%s' % (getenv('USER')) cernboxPath = 'root://eosuser//eos/user/%s/%s' % (getenv('USER')[0], getenv('USER')) cernboxBPath = 'root://eosuser//eos/user/b/bmaier'
from os import system, getenv, path from time import clock, time import json which = int(argv[1]) submit_id = int(argv[2]) sname = argv[0] argv = [] import ROOT as root from PandaCore.Tools.Misc import * from PandaCore.Tools.Load import * import PandaCore.Tools.job_management as cb import PandaAnalysis.Tagging.cfg_v8 as tagcfg Load('PandaLeptonicAnalyzer') data_dir = getenv('CMSSW_BASE') + '/src/PandaAnalysis/data/' stopwatch = clock() def print_time(label): global stopwatch now_ = clock() PDebug( sname + '.print_time:' + str(time()), '%.3f s elapsed performing "%s"' % ((now_ - stopwatch) / 1000., label)) stopwatch = now_ def copy_local(long_name):
#!/usr/bin/env python import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * from os import getenv import cfgInvar as cfg #import makeInvariantRatios as cfg Load('Learning', 'TMVATrainer') workdir = getenv('SCRAMJETFLAT') trainer = root.TMVATrainer('top_ecfbdt_50', workdir + 'training/') trainer.treename = 'puppiCA15' trainer.sigweight = 'ptweight*normalizedWeight' trainer.bgweight = 'ptweight_analytic*normalizedWeight' sanitycut = 'tau32>0 && pt<1000 && mSD>110 && mSD<210' #trainer.bgcut = tAND(sanitycut,'eventNumber%15==0') trainer.bgcut = sanitycut trainer.sigcut = tAND(sanitycut, 'matched==1 && gensize<1.2') for v in cfg.variables: trainer.AddVariable(v[0], v[1]) for v in cfg.formulae: trainer.AddVariable(v[0], v[1]) for s in cfg.spectators: trainer.AddSpectator(s[0], s[1])
#!/usr/bin/env python from sys import argv f1 = argv[1] f2 = argv[2] f3 = argv[3] argv = [] import PandaCore.Tools.Load as Load import ROOT as root Load.Load('Tools','DuplicateRemover') dr = root.DuplicateRemover() dr.Merge(f1,f2,f3)
if not args.cut: print 'please choose a cut' exit(1) elif args.cut=='mass': cut = 'massCut_' plotlabel = '110 < m_{SD} < 210 GeV' elif args.cut=='btag': cut = 'btagCut_' plotlabel = '#splitline{110 < m_{SD} < 210 GeV}{max SJ CSV>0.46}' elif args.cut=='masstau': cut = 'masstauCut_' plotlabel = '#splitline{110 < m_{SD} < 210 GeV}{#tau_{32}<0.6}' Load('Drawers','ROCTool') roc = root.ROCTool() fin = root.TFile(figsdir+'/'+cut+'hists.root') roc.Logy() roc.SetPlotRange(0.005,1) roc.InitCanvas(.65,.15,.94,.6) roc.SetFile(fin) roc.c.AddPlotLabel(plotlabel,.18,.77,False,42,.04) variables = [ ('top_ecfv7_bdt','ECF+#tau_{32}^{SD} BDT',1,1), ('top_ecfv6_bdt','ECF BDT',2,1), ('tau32SD','Groomed #tau_{32}',3,2), ('tau32','#tau_{32}',4,2),
#!/usr/bin/env python from sys import exit,argv import argparse parser = argparse.ArgumentParser(description='skim a file') parser.add_argument('--input',type=str) parser.add_argument('--output',type=str,default=None) parser.add_argument('--cut',type=str) args = parser.parse_args() argv=[] from PandaCore.Tools.Load import * import ROOT as root Load('Cutter') c = root.Cutter() c.treeName = 'events' if not args.output: args.output = args.input.replace('.root','_slim.root') c.Cut(args.input,args.output,args.cut)
def fitMC(nprongs, isPass, model='GAUSSEXPERF', smear=None, paramset=None): fmc = root.TFile(basedir + '/tag__prong%i.root' % nprongs) tmc = fmc.Get('prong%i' % nprongs) if isPass: cut = 'top_ecfv8_bdt>0.66' else: cut = 'top_ecfv8_bdt<0.66' ds = RooFitUtils.treeToDS(tmc, [mass, tag.rvar, weight.rvar], cut=cut, weight='weight') hmass = root.TH1D('hmass', 'hmass', nbins, 50, 350) tmc.Draw('mSD>>hmass', 'weight*(%s)' % cut, '') integral = hmass.Integral( ) # get the integral so we can do an extended likelihood by default smear_params = { 'mu': (0, -20, 20), 'sigma': (10, .1, 100), 'n_cb': (1, 0.01, 5), 'alpha': (-1, -100, 0), } dparams = {} dparams['fail'] = { 'a': (140, -1000, 1000), 'b': (58.1, 0.01, 1000), 'c': (-0.0155, -10, 0), 'alpha': (-1.4, -10, 10), 'mu': (165, 145, 185), 'sigma': (20, 10, 100), 'n_cb': (1.7, 0, 5), 'norm_gauss': (integral, 1, integral * 2), 'norm_bw': (integral, 1, integral * 2), 'norm_cb': (integral, 1, integral * 2), 'norm_experf': (integral * 0.3, 1, integral * 2), 'w_mu': (80, 78, 82), 'w_sigma': (8, 5, 20), } dparams['pass'] = { 'a': (200, -1000, 1000), 'b': (50, 0.01, 1000), 'c': (-0.0155, -10, 0), 'alpha': (-1.4, -10, 10), 'mu': (165, 145, 185), 'sigma': (20, 10, 100), 'n_cb': (1.7, 0, 5), 'norm_gauss': (integral, 1, integral * 2), 'norm_bw': (integral, 1, integral * 2), 'norm_cb': (integral, 1, integral * 2), 'norm_experf': (integral * 0.2, 1, integral * 2), 'w_mu': (80, 78, 82), 'w_sigma': (8, 5, 20), } dparams['fail2'] = { 'a': (200, -1000, 1000), 'b': (5.6, 0.01, 1000), 'c': (-0.0155, -10, 0), 'alpha': (-1.4, -10, 10), 'mu': (80, 70, 90), 'sigma': (20, 10, 100), 'n_cb': (1.7, 0, 5), 'norm_gauss': (integral, 1, integral * 2), 'norm_bw': (integral, 1, integral * 2), 'norm_cb': (integral, 1, integral * 2), 'norm_experf': (integral * 0.2, 1, integral * 2), 'w_mu': (80, 78, 82), 'w_sigma': (8, 5, 20), } if not paramset: params = dparams['pass'] if isPass else dparams['fail'] else: params = dparams[paramset] suffix = '_pass' if isPass else '_fail' model = cat.buildModel('prong%i' % nprongs + suffix, mass, model, params) if smear: smeared_model = cat.smearModel('prong%i_smeared' % nprongs, mass, model, smear, smear_params) smeared_model.fitTo(ds, root.RooFit.SumW2Error(False)) else: model.fitTo(ds, root.RooFit.SumW2Error(False)) Load('Drawers', 'CanvasDrawer') plot = root.CanvasDrawer() plot.Ratio(True) plot.SetTDRStyle() c = root.TCanvas() plot.SetCanvas(c) plot.SplitCanvas() plot.AddCMSLabel() pad1 = plot.GetPad1() pad1.cd() mass.setBins(nbins) frame = mass.frame(root.RooFit.Bins(nbins)) ds.plotOn(frame, root.RooFit.DrawOption('EP'), root.RooFit.MarkerSize(0.8), root.RooFit.Name('MC')) model.plotOn(frame, root.RooFit.Name('Fit')) frame.GetYaxis().SetTitle('Events/10 GeV') frame.SetMaximum(frame.GetMaximum() * 1.5) frame.Draw() pad2 = plot.GetPad2() pad2.cd() frame2 = mass.frame(root.RooFit.Bins(nbins)) frame2.addObject(frame.pullHist('MC', 'Fit'), 'EP') frame2.SetMinimum(-5) frame2.SetMaximum(5) frame2.GetXaxis().SetTitle('m_{SD} [GeV]') frame2.GetYaxis().SetTitle("#frac{Data-Fit}{#sigma_{Data}}") frame2.GetYaxis().SetNdivisions(5) frame2.GetYaxis().SetTitleSize(15) frame2.GetYaxis().SetTitleFont(43) frame2.GetYaxis().SetTitleOffset(1.55) frame2.GetYaxis().SetLabelFont(43) frame2.GetYaxis().SetLabelSize(15) frame2.GetXaxis().SetTitleSize(20) frame2.GetXaxis().SetTitleFont(43) frame2.GetXaxis().SetTitleOffset(4.) frame2.GetXaxis().SetLabelFont(43) frame2.GetXaxis().SetLabelSize(15) frame2.Draw() hZero = root.TH1D('zero', 'zero', nbins, 50, 450) hZero.SetLineColor(1) hZero.Draw('hist same') pad1.cd() plot.Draw( '~/public_html/figs/toptagging/datavalidation/v8/templates/parametric/', 'prong%i' % nprongs + suffix)
from os import path, getenv import argparse parser = argparse.ArgumentParser(description='make forest') parser.add_argument('--region', metavar='region', type=str, default=None) toProcess = parser.parse_args().region argv = [] import ROOT as root from PandaCore.Tools.Misc import * from PandaCore.Tools.Load import * import PandaCore.Tools.Functions import PandaAnalysis.MonoH.Selection as sel #import PandaAnalysis.MonoH.Selection_mw as sel #import PandaAnalysis.MonoH.Selection_t21 as sel Load('PandaAnalysisFlat', 'LimitTreeBuilder') subfolder = '' if toProcess == 'signal': subfolder = 'preselection/' elif toProcess == 'wmn': subfolder = 'cr_w_mu/' elif toProcess == 'wen': subfolder = 'cr_w_el/' elif toProcess == 'tm': subfolder = 'cr_ttbar_mu/' elif toProcess == 'te': subfolder = 'cr_ttbar_el/' elif toProcess == 'zmm': subfolder = 'cr_dimuon/' elif toProcess == 'zee':
args = parser.parse_args() args.outdir += '/' lumi = 36560. blind = True linear = False sname = argv[0] argv = [] import ROOT as root root.gROOT.SetBatch() from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * import PandaCore.Tools.Functions Load('Drawers', 'HistogramDrawer') plot = root.HistogramDrawer() plot.Logy(True) plot.SetTDRStyle() plot.InitLegend() plot.AddCMSLabel() plot.SetLumi(lumi / 1000) plot.AddLumiLabel(True) plot.SetNormFactor(True) plotr = root.HistogramDrawer() plotr.SetRatioStyle() plotr.InitLegend() plotr.AddCMSLabel() plotr.SetLumi(lumi / 1000)
parser = argparse.ArgumentParser(description='plot stuff') parser.add_argument('--indir',metavar='indir',type=str,default=basedir) parser.add_argument('--outdir',metavar='outdir',type=str,default=outdir) parser.add_argument('--sel',metavar='sel',type=str,default='tag') parser.add_argument('--cat',metavar='cat',type=str) args = parser.parse_args() outdir = args.outdir basedir = args.indir argv=[] import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * tcut = root.TCut Load('PandaAnalysisFlat','SFTreeBuilder') ### SET GLOBAL VARIABLES ### lumi = 12918. logy=False nlo = 'sf_ewkV*sf_qcdV' if args.sel=='mistag': cut = 'nFatjet==1 && fj1Pt>250 && fj1MaxCSV<0.46 && nLooseLep==1 && nTightMuon==1 && nLooseElectron==0 && nLoosePhoton==0 && nTau==0 && UWmag>250 && isojetNBtags==0' weight = '%f*normalizedWeight*sf_pu*sf_lep*%s*sf_sjbtag0*sf_btag0*sf_tt*sf_metTrig'%(lumi,nlo) outfileprefix = 'mistag_' elif args.sel=='photon': cut = 'nFatjet==1 && fj1Pt>250 && nLooseLep==0 && nLoosePhoton==1 && loosePho1IsTight==1 && nTau==0 && UAmag>250' weight = '%f*normalizedWeight*sf_pu*sf_lep*%s*sf_tt*sf_phoTrig*0.93'%(lumi,nlo) outfileprefix = 'photon_' else: cut = 'nFatjet==1 && fj1Pt>250 && fj1MaxCSV>0.46 && nLooseLep==1 && nTightMuon==1 && nLooseElectron==0 && nLoosePhoton==0 && nTau==0 && UWmag>250 && isojetNBtags==1'
#!/usr/bin/env python from sys import argv f1 = argv[1] f2 = argv[2] f3 = argv[3] argv = [] import PandaCore.Tools.Load as Load import ROOT as root Load.Load('DuplicateRemover') dr = root.DuplicateRemover() dr.Merge(f1, f2, f3)
#!/usr/bin/env python from sys import argv from os import getenv import argparse parser = argparse.ArgumentParser(description='reweight CSV shape for fakes') parser.add_argument('--reweight', metavar='reweight', type=str) parser.add_argument('--infile', metavar='infile', type=str) args = parser.parse_args() argv = [] import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * import PandaCore.Tools.Functions Load('Tools', 'BranchAdder') freweight = root.TFile.Open(args.reweight) hreweight = freweight.Get('hratio') ba = root.BranchAdder() ba.formula = 'isojet1CSV' ba.newBranchName = 'fakeCSVWeight' ba.cut = 'isojet1CSV>0 && isojet1Flav==0' fin = root.TFile(args.infile, 'UPDATE') tin = fin.Get('events') ba.AddBranchFromHistogram(tin, hreweight) fin.WriteTObject(tin, 'events', 'Overwrite') fin.Close()
#!/usr/bin/env python from sys import argv from os import getenv which = argv[1] trigger = argv[2] argv=[] import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * import PandaCore.Tools.Functions Load('BranchAdder') ba = root.BranchAdder() fk = root.TFile(trigger) h_ratio = fk.Get('hden_monojet_recoil_clone_passed') ba.formula = 'pfUZmag' ba.newBranchName = 'sf_metTrigZmm' fin = root.TFile(getenv('PANDA_FLATDIR')+which+'.root','UPDATE') tin = fin.Get('events') ba.AddBranchFromHistogram(tin,h_ratio) fin.WriteTObject(tin,'events','Overwrite') fin.Close()
#!/usr/bin/env python from ROOT import gSystem, gROOT import ROOT as root from array import array from glob import glob from re import sub from sys import argv from os import environ, system, path from PandaCore.Tools.process import * from PandaCore.Tools.Load import * Load('Tools', 'Normalizer') pds = {} for k, v in processes.iteritems(): if v[1] == 'MC': pds[v[0]] = (k, v[2]) else: pds[v[0]] = (k, -1) VERBOSE = False user = environ['USER'] system('mkdir -p /tmp/%s/split' % user) # tmp dir system('mkdir -p /tmp/%s/merged' % user) # tmp dir base = environ['SCRAMJETFLAT'] inbase = base + '/batch/'
which = int(argv[1]) sname = argv[0] if len(argv) > 2: nper = int(argv[2]) else: nper = 1 argv = [] import ROOT as root from PandaCore.Tools.Misc import * from PandaCore.Tools.Load import * import PandaAnalysis.Tagging.cfg_v8 as tagcfg if __name__ == "__main__": Load('PandaAnalysisFlat', 'PandaAnalyzer') def fn(shortName, longName, isData, xsec): # first we do some I/O stuff outdir = 'XXXX' outfilename = shortName + '.root' PInfo(sname, 'Output: %s/%s' % (outdir, outfilename)) if path.isfile('%s/%s' % (outdir, outfilename)): PWarning(sname, "Found %s, skipping!" % outfilename) return start = clock() eosPath = 'root://eoscms.cern.ch//store/user/snarayan' eosEXOPath = 'root://eoscms.cern.ch//store/group/phys_exotica' cernboxPath = 'root://eosuser//eos/user/s/snarayan'
#!/usr/bin/env python import ROOT as root from PandaCore.Tools.Misc import * from PandaCore.Tools.Load import * import re Load('Statistics', 'RooExpErf') def treeToDS(tree, rvars, cut=None, weight=None): args = ['data', 'data', root.RooArgSet(*rvars), root.RooFit.Import(tree)] if cut: args.append(root.RooFit.Cut(cut)) if weight: args.append(root.RooFit.WeightVar(weight)) ds = root.RooDataSet(*args) return ds def treeToKDE(tree, rvars, cut=None, weight=None, bw=1): ds = treeToDS(tree, rvars, cut, weight) kde = root.RooKeysPdf('kde', 'kde', rvars[0], ds, root.RooKeysPdf.MirrorBoth, bw) return kde def factoryExtractName(s): return s.split('::')[1].split('(')[0]
basedir = getenv('PANDA_FLATDIR') parser = argparse.ArgumentParser(description='plot stuff') parser.add_argument('--proc') parser.add_argument('--plot', type=str, default=None) args = parser.parse_args() argv = [] import ROOT as root from PandaCore.Tools.Load import * from PandaCore.Tools.Misc import * from PandaCore.Tools.root_interface import Selector if args.plot: Load('HistogramDrawer') plot = root.HistogramDrawer() plot.SetTDRStyle() plot.AddSqrtSLabel() plot.InitLegend() root.gStyle.SetOptStat(0) binning = (40, 450, 1200) n_partons = { 'Top_lo': 3, 'Top': 3, 'QCD': 1, 'Higgs': 2, 'W': 2,
from array import array from glob import glob from re import sub from sys import argv from os import environ, system, path sname = argv[0] arguments = [x for x in argv[1:]] argv = [] import ROOT as root from PandaCore.Tools.process import * from PandaCore.Tools.Misc import * from PandaCore.Tools.Load import * Load('Normalizer') pds = {} for k, v in processes.iteritems(): if v[1] == 'MC': pds[v[0]] = (k, v[2]) else: pds[v[0]] = (k, -1) VERBOSE = False user = environ['USER'] system('mkdir -p /tmp/%s/split' % user) # tmp dir system('mkdir -p /tmp/%s/merged' % user) # tmp dir inbase = environ['PANDA_ZEYNEPDIR']
# blue = [ 6./255., 8./255., 36./255., 91./255., 169./255., 255./255., 243./255., 240./255.,240./255., 240./255., 233./255.] stops = [0.0000, 0.50, 1.0000] red = [239. / 255., 255. / 255., 92. / 255.] green = [87. / 255., 255. / 255., 123. / 255.] blue = [76. / 255., 255. / 255., 237. / 255.] stopsArray = array('d', stops) redArray = array('d', red) greenArray = array('d', green) blueArray = array('d', blue) root.TColor.CreateGradientColorTable(len(stops), stopsArray, redArray, greenArray, blueArray, ncontours) root.gStyle.SetNumberContours(999) # root.gStyle.SetPalette(root.kLightTemperature) root.gStyle.SetPaintTextFormat(".1g") Load('Drawers', 'CanvasDrawer') plot = root.CanvasDrawer() plot.SetTDRStyle() root.gStyle.SetPadRightMargin(0.15) root.gStyle.SetPadLeftMargin(0.2) root.gStyle.SetPadBottomMargin(0.2) c = root.TCanvas() varlist = [ ('tau32', '#tau_{32}'), ('tau32SD', '#tau_{32}^{SD}'), ('maxcsv', 'max CSV', (50, 0, 1)), ('(ecfN_1_2_20/pow(ecfN_1_2_10,2.00))', 'e(1,2,2)/e(1,2,1)^{2}', (50, 2, 10)),
parser.add_argument('--outdir',metavar='outdir',type=str,default='.') parser.add_argument('--cut',metavar='cut',type=str,default=None) parser.add_argument('--pt',metavar='pt',type=str,default='inc') args = parser.parse_args() figsdir = args.outdir sname = argv[0] argv = [] import ROOT as root from PandaCore.Tools.Load import * cut = '' plotlabel = '110 < m_{SD} < 210 GeV' xcut = 'mSD>110 && mSD<210 && pt<1000' Load('PandaCoreDrawers') roc = root.ROCTool() fin = root.TFile(figsdir+'/'+'hists.root') roc.Logy() roc.SetPlotRange(0.005,1) roc.InitCanvas(.7,.2,.85,.45, False) roc.SetFile(fin) roc.c.AddPlotLabel(plotlabel,.2,.82,False,42,.04) variables = [ # ('top_ecfv14_bdt','ECF+#tau_{32}^{SD}+f_{rec} BDT v2',1,3), # ('top_ecfv12_bdt','ECF BDT v2',2,3), # ('top_ecfv8_bdt','ECF+#tau_{32}^{SD}+f_{rec} BDT',1,1), ('top_ecfv8_bdt','BDT',1,1),